ONNX é um formato open source para modelos de aprendizagem profunda que permite a interoperabilidade entre diferentes frameworks e ferramentas. É suportado por uma série de frameworks principais, incluindo PyTorch, TensorFlow e Microsoft Cognitive Toolkit. ONNX facilita a movimentação de modelos entre diferentes frameworks e o compartilhamento de modelos entre diferentes desenvolvedores. Como foi treinado o BERT? O BERT foi originalmente treinado no BooksCorpus (800 milhões de palavras) e na Wikipedia em inglês (2,5 mil milhões de palavras). É um objectivo de pré-formação de modelos de linguagem bastante padrão: Modelo de Linguagem Mascarada (MLM) + Previsão da Próxima Sentença (NSP).
Para MLM, 15% das palavras em cada frase são mascaradas aleatoriamente, e o modelo é treinado para prever as palavras mascaradas. Para NSP, o modelo recebe um par de frases e tem de prever se a segunda frase é ou não a frase seguinte no texto.
Há muita discussão no artigo sobre diferentes formas de fazer MLM e NSP, mas no final eles se acomodaram a uma abordagem bastante simples:
– Para o MLM, eles mascaram 15% das palavras com um símbolo [MASK], e depois prevêem as palavras mascaradas usando um softmax sobre um vocabulário de 30.522 palavras.
– Para NSP, eles simplesmente concatenam as duas frases com um símbolo [SEP] especial no meio, e depois predizem se a segunda frase é ou não a próxima frase no texto.
O BERT é treinado usando um objectivo de modelação de linguagem padrão: maximizar a probabilidade da próxima palavra no texto. Eles mascaram 15% das palavras em cada frase, e depois prevêem as palavras mascaradas usando um softmax sobre um vocabulário de 30.522 palavras.
Para NSP, eles simplesmente concatenam o
É ONNX mais rápido que TensorFlow?
A resposta curta é que depende.
ONNX é um padrão aberto relativamente novo para representar modelos de aprendizagem profunda que podem ser otimizados e executados em uma variedade de plataformas diferentes. TensorFlow é uma estrutura de código aberto amplamente utilizada para treinamento e implementação de modelos de aprendizagem profunda.
Em geral, os modelos ONNX devem ser capazes de funcionar mais rápido em média do que os modelos TensorFlow em qualquer plataforma que suporte ONNX. Isto porque a norma ONNX permite optimizações que não são possíveis com a estrutura TensorFlow.
Contudo, existem alguns factores que podem ter impacto no desempenho dos modelos ONNX vs. TensorFlow.
O primeiro é a qualidade do conversor do modelo ONNX. Se o conversor não for capaz de gerar um modelo ONNX otimizado, então o modelo provavelmente não funcionará tão rápido quanto um modelo TensorFlow otimizado de forma semelhante.
O segundo fator é a qualidade do tempo de execução do ONNX. Se o tempo de execução não for capaz de executar eficientemente o modelo ONNX, então o modelo provavelmente não funcionará tão rápido quanto um modelo TensorFlow otimizado de forma similar.
O terceiro fator é o suporte para ONNX na plataforma. Se a plataforma não tiver um bom suporte para ONNX, então o modelo provavelmente não rodará tão rápido quanto um modelo TensorFlow similarmente otimizado.
Então, em resumo, a resposta à pergunta “O ONNX é mais rápido que o TensorFlow?
Os modelos ONNX são mais rápidos que o PyTorch?
Não há uma resposta simples para esta pergunta. Depende de uma série de fatores, incluindo o tipo de modelo, o hardware sendo usado e a aplicação específica. Em geral, entretanto, os modelos ONNX tendem a ser mais rápidos do que os modelos PyTorch.
O que é ONNX PyTorch?
ONNX é um formato de código aberto para modelos de aprendizagem profunda que permite aos desenvolvedores mover mais facilmente modelos entre ferramentas e frameworks de última geração para treinamento, inferência e análise.
PyTorch é um framework de aprendizagem de máquinas de código aberto para modelos e algoritmos de aprendizagem profunda. É amplamente utilizado por pesquisadores e desenvolvedores na indústria e no meio acadêmico. O ONNX é de código aberto? Sim, ONNX é um projeto de código aberto. O código fonte está disponível no GitHub.