Aprendendo ONNX para negociação - página 7

 

Implante modelos de aprendizado de máquina (TensorFlow/Caffe2/ONNX) - rápido e fácil



Implante modelos de aprendizado de máquina (TensorFlow/Caffe2/ONNX) - rápido e fácil

O vídeo demonstra como o aprendizado de transferência pode ser usado para classificar imagens e como integrar o modelo de classificação de imagem em um aplicativo de usuário final usando Python e TensorFlow. O apresentador usa um exemplo de aplicativo de comércio de carros para ilustrar os desafios enfrentados quando as fotos não são carregadas da perspectiva necessária e os rótulos precisam ser verificados manualmente, levando ao tédio e à ineficiência. Ele explica como superar esses desafios treinando uma rede neural existente para reconhecer perspectivas de fotos usando a técnica de aprendizado de transferência. Em seguida, ele mostra como testar e implantar o modelo na nuvem Oracle usando o projeto de código aberto GraphPipe. Por fim, o apresentador enfatiza a importância de levar os modelos de aprendizado de máquina da fase de laboratório para a fase de produção.

  • 00:00:00 Nesta seção, Jeroen Kloosterman explica como o aprendizado de máquina pode ser usado para classificação de imagem e como integrar o modelo de classificação de imagem em um aplicativo de usuário final. Ele destaca os desafios enfrentados por um aplicativo de comércio de carros em que as fotos não são carregadas da perspectiva necessária e os rótulos precisam ser verificados manualmente, levando ao tédio e à ineficiência. Para superar esses desafios, Jeroen usa a técnica de aprendizado de transferência treinando uma rede neural existente para reconhecer perspectivas de fotos usando Python e Tensorflow. Ao refazer apenas as últimas camadas da rede neural para reconhecer diferentes perspectivas, Jeroen Kloosterman treina com sucesso a rede para classificar as fotos automaticamente.

  • 00:05:00 Nesta seção, Jeroen mostra como testar o modelo, que foi treinado na seção anterior, e depois implantá-lo na nuvem Oracle usando o projeto de código aberto GraphPipe. Para começar, o script Python de retreinamento é chamado, que usa o TensorFlow para retreinar o modelo. Depois de configurar o ambiente na nuvem Oracle, o apresentador escreve um exemplo de cliente usando Python para chamar o classificador de imagem. A classificação retornada pelo modelo pode ser usada pelo front-end para mostrar uma mensagem ao usuário final do aplicativo de vendas de carros. Por fim, o apresentador enfatiza a importância de levar os modelos de aprendizado de máquina da fase de laboratório para a fase de produção.
 

Implante modelos de ML com Azure Functions e ONNX Runtime



Implante modelos de ML com Azure Functions e ONNX Runtime

O vídeo demonstra como implantar um modelo de aprendizado de máquina usando ONNX Runtime e Azure Functions no VS Code. O processo inclui criar um projeto Azure Function, atualizar o código com o script de pontuação, carregar o modelo do caminho do modelo, criar uma sessão de inferência com ONNX Runtime e retornar a saída. O vídeo também mostra como implantar a função no Azure e testá-la lá. Esse método permite a implantação eficiente de modelos por meio do Azure Functions e do ONNX runtime, permitindo fácil acesso aos resultados.

  • 00:00:00 Nesta seção, o vídeo mostra como implantar um modelo de aprendizado de máquina usando ONNX Runtime e Azure Functions no VS Code. O processo envolve criar um projeto Azure Function com Python e gatilho HTTP, atualizar o código com o script de pontuação, redimensionar e remodelar a imagem e pré-processá-la, carregar o modelo do caminho do modelo, criar uma sessão de inferência com ONNX Runtime e retornando a saída. Depois de verificar a funcionalidade do código, o vídeo mostra como implantar a função no Azure e testá-la lá.

  • 00:05:00 Nesta seção, o palestrante demonstra como testar a função implantada obtendo a URL da função e colando-a no teste. O palestrante demonstra como a função implantada pode ser usada para obter um resultado facilmente por meio do Azure Functions e ONNX runtime, permitindo a implantação eficiente de modelos.
 

Implantando no desktop com ONNX



Implantando na área de trabalho com ONNX

No vídeo "Deploying on Desktop with ONNX", Alexander Zhang discute os desafios da implantação em desktop e as soluções oferecidas pelo ONNX. O suporte a desktops tem seus desafios, pois há menos controle sobre as restrições do sistema na GPU ou no sistema operacional, bem como uma diversidade significativa nas GPUs de desktop. Para enfrentar esses desafios, Alexander conta com diferentes bibliotecas de inferência para cada um dos fornecedores de hardware que o Topaz labs suporta. ONNX é usado para especificar o mesmo modelo para todas essas bibliotecas, fornecendo resultados relativamente consistentes em diferentes hardwares enquanto economiza trabalho manual em cada modelo. No entanto, as conversões ONNX podem criar vários problemas, como ambigüidade, inconsistência e discrepâncias de qualidade, exigindo que os desenvolvedores executem conversões de teste e usem os deslocamentos ONNX mais recentes explicitamente. Para maximizar a taxa de transferência por meio de lotes e potencialmente executar em vários dispositivos e bibliotecas em paralelo, eles dividem as imagens em blocos e selecionam um tamanho apropriado com base na VRAM e, em seguida, executam os blocos por meio de inferência.

  • 00:00:00 Nesta seção, Alexander Zhang discute os desafios da implantação no desktop e as soluções oferecidas pelo ONNX. Adaptar-se aos fluxos de trabalho existentes, atender às expectativas de desempenho e acompanhar os avanços exige a entrega dos modelos de imagem mais recentes e de mais alta qualidade disponíveis. O suporte a desktops tem seus desafios, pois há menos controle sobre as restrições do sistema na GPU ou no sistema operacional, bem como uma diversidade significativa nas GPUs de desktop. Para enfrentar esses desafios, Alexander conta com diferentes bibliotecas de inferência para cada um dos fornecedores de hardware que o Topaz labs suporta. ONNX é usado para especificar o mesmo modelo para todas essas bibliotecas, fornecendo resultados relativamente consistentes em diferentes hardwares enquanto economiza trabalho manual em cada modelo. No entanto, as conversões ONNX podem criar vários problemas, como ambigüidade, inconsistência e discrepâncias de qualidade, exigindo que os desenvolvedores executem conversões de teste e usem os deslocamentos ONNX mais recentes explicitamente.

  • 00:05:00 Nesta seção, o palestrante explica que um dos motivos pelos quais eles mesmos fazem muitas conversões em vez de usar bibliotecas ou wrappers existentes é o desempenho. Eles também enfatizam a importância da flexibilidade para otimizar seus próprios modelos e necessidades de desempenho, se desejado, sem serem obrigados a escrever código específico para cada modelo. Para maximizar a taxa de transferência por meio de lotes e potencialmente executar em vários dispositivos e bibliotecas em paralelo, eles dividem as imagens em blocos e selecionam um tamanho apropriado com base na VRAM e, em seguida, executam os blocos por meio de inferência. No entanto, eles concluem que há dificuldades contínuas em garantir que as novas arquiteturas de modelo se comportem bem em todas as bibliotecas, mas continuam esperançosos de que sua estratégia superará esses desafios e fornecerá melhorias consistentes na qualidade da imagem.
 

Implantando modelos ONNX no Flink - Isaac Mckillen-Godfried



Implantando modelos ONNX no Flink - Isaac Mckillen-Godfried

Isaac McKillen-Godfried discute os desafios de incorporar modelos de aprendizado de máquina de última geração de ambientes de pesquisa em produção para utilização eficaz. O objetivo da palestra é facilitar a passagem de modelos dos ambientes de pesquisa para a produção e permitir a incorporação de modelos de última geração em diferentes plataformas. Ele explica as vantagens do formato ONNX e as diferentes opções para integrar modelos de deep learning em Java. Além disso, ele discute a implantação de modelos ONNX no Flink usando Jep, um interpretador Python escrito em Java, e explica um projeto de código aberto que permite que dados sejam consumidos do conector Flink Twitter e, em seguida, filtre tweets em outros idiomas. A palestra também destaca a atual implementação somente de CPU da implantação de modelos ONNX no Flink e o potencial para futuras implementações de GPU ou híbridas.

  • 00:00:00 Nesta seção do vídeo, o palestrante discute os desafios de incorporar modelos de aprendizado de máquina de última geração de ambientes de pesquisa à produção para utilização eficaz. Ele menciona que a maioria dos frameworks populares são escritos em Java e Scala, enquanto a maioria do código e documentos são escritos em Python. O objetivo da palestra é facilitar a passagem de modelos dos ambientes de pesquisa para a produção e permitir a incorporação de modelos de última geração em diferentes plataformas. O palestrante também fala sobre os desafios, incluindo o fraco suporte ao Python no Flink e a dificuldade de incorporar o ONNX ao Java. Ele também menciona a popularidade do PyTorch na comunidade de pesquisa e sua crescente implementação em estruturas de aprendizado de máquina.

  • 00:05:00 Nesta seção, o palestrante discute o formato ONNX e suas vantagens. ONNX é um formato de troca de rede neural aberta que permite fácil exportação e importação de modelos de várias estruturas. O objetivo do ONNX é possibilitar a execução de modelos em diferentes linguagens e frameworks, tornando-se uma ferramenta valiosa para desenvolvedores. Além disso, o palestrante fala sobre vários frameworks e ferramentas ONNX disponíveis para exportação e importação de modelos. Eles também apresentam um scorecard que mede o suporte de operações no ONNX, com TensorFlow e Caffe2 tendo um suporte considerável. Em seguida, o palestrante discute as diferentes opções para integrar modelos de aprendizado profundo em Java, incluindo a criação de um microsserviço, Python incorporado em Java e a execução de estruturas baseadas em JVM de back-end ONNX.

  • 00:10:00 Nesta seção, são discutidas as limitações do uso de Java com modelos ONNX, incluindo o suporte limitado de operações de rede neural em frameworks como Meno e Vespa. O processo de exportação também pode ser difícil e demorado e pode haver a necessidade de retreinar totalmente os modelos. Uma solução é usar assíncrono e microsserviços, mas essa abordagem requer dimensionamento e manutenção de um serviço separado. Outra abordagem discutida é o uso de Python embutido em Java (JEP), que permite o uso de qualquer biblioteca Python e funciona rapidamente com estruturas como Keras. No entanto, pode haver problemas com bibliotecas compartilhadas que precisam ser resolvidos.

  • 00:15:00 Nesta seção do vídeo, o palestrante discute a implantação de modelos ONNX no Flink e os possíveis problemas de configuração que podem surgir. Embora seja possível transferir primitivos Java para Python e vice-versa, pode haver problemas com a configuração de dependências. O palestrante recomenda a criação de uma imagem personalizada do Docker que inclua os pacotes Flink e Python para facilitar a configuração. O palestrante também destaca o Flair, um framework PyTorch para tarefas de NLP, e explica como integrá-lo ao Flink usando JEP. O código de exemplo usa uma função de mapa avançada para retornar os resultados do Flair como uma string.

  • 00:20:00 Nesta seção, o palestrante fala sobre a implantação de modelos ONNX no Flink usando Jep, um interpretador Python escrito em Java. O palestrante demonstra um exemplo de análise de sentimento em dados do Twitter com o conector Flink Twitter e explica a importância de carregar o modelo na parte aberta da função para evitar que ele recarregue a cada iteração. Eles também mostram como definir variáveis em Python usando Jep e como retornar o resultado para Java como uma string. O palestrante destaca o uso de um interpretador compartilhado no Jep para evitar erros durante o uso dos módulos Python e sugere a conversão do resultado para JSON para facilitar o processamento em Java.

  • 00:25:00 Nesta seção, Isaac McKillen-Godfried fala sobre um projeto de código aberto que permite que os dados sejam consumidos do conector Flink Twitter e, em seguida, filtre tweets em outros idiomas. Os dados seriam então processados por meio de modelos de reconhecimento de entidade nomeados multitarefa, que podem lidar com vários idiomas e modelos de idioma específicos. O reconhecimento de entidade nomeada e a análise de sentimento ocorreriam antes de serem convertidos em tabelas e usar consultas para agrupá-los por sua entidade e sentimento. Ao incorporar aprendizado profundo e outros modelos ao Flink, é possível ter uma visão em tempo real de entidades nomeadas e seus sentimentos no texto do Twitter. Embora os back-ends onnx não tenham maturidade, eles economizam tempo de ter que converter código e reescrever, e a execução do modelo em um cluster é rápida. McKillen-Godfried planeja fazer benchmarks para medir o aumento de latência em um futuro próximo.

  • 00:30:00 Nesta seção, Isaac Mckillen-Godfried discute a atual implementação somente de CPU da implantação de modelos ONNX no Flink e o potencial para futuras implementações de GPU ou híbridas que podem acelerar ainda mais o processo. Ele observa que só testou o modelo em CPUs e ainda não explorou as possibilidades de aumentar a eficiência por meio do uso de GPU.
 

Implantando o modelo Tiny YOLOv2 ONNX no Jetson Nano usando o DeepStream



Implantando o modelo Tiny YOLOv2 ONNX no Jetson Nano usando o DeepStream

Este vídeo mostra a eficiência da utilização de um modelo Tiny YOLOv2 pré-treinado no formato ONNX para processar quatro streams de vídeo simultaneamente.
Os streams vêm de quatro arquivos distintos e são processados no Jetson Nano usando o DeepStream SDK. O sistema alcançou um FPS de aproximadamente 6,7 enquanto processava todos os quatro vídeos em paralelo.

https://github.com/thatbrguy/Deep-Stream-ONNX

 

O mecanismo de inferência ONNX Runtime é capaz de executar modelos de aprendizado de máquina em diferentes ambientes



Tempo de execução ONNX

O ONNX Runtime é um mecanismo de inferência de código aberto otimizado para desempenho, escalabilidade e extensibilidade, capaz de executar novos operadores antes de serem padronizados. O formato ONNX permite fácil representação e implantação de modelos desenvolvidos em ferramentas preferenciais de forma comum. A Microsoft fez parceria com a Xilinx para criar o provedor de execução para a biblioteca de software Vitis AI, que permite inferência e aceleração de IA em plataformas de hardware Xilinx. O kit de ferramentas Vitis AI consiste em ferramentas IP, bibliotecas, modelos e projetos de exemplos para desenvolvedores de FPGA, com números de benchmark mostrando aceleração máxima para soluções de imagens geoespaciais. O provedor de execução Vitis AI pode ser criado a partir da fonte ou implantado por meio de uma biblioteca de software pré-criada que será lançada em breve no Azure Marketplace.

  • 00:00:00 Nesta seção, Manash Goswami, gerente principal de programas para AI Frameworks da Microsoft, apresenta o ONNX Runtime, que é um mecanismo de inferência de código aberto usado para executar modelos ONNX. O formato ONNX permite que as equipes de ciência de dados usem suas ferramentas preferidas para o desenvolvimento de modelos, garantindo que o modelo possa ser representado e implantado de maneira comum e facilmente executável. O ONNX Runtime é otimizado para desempenho, extensibilidade e escalabilidade e oferece suporte a operadores personalizados, tornando-o capaz de executar novos operadores antes de serem padronizados. O tempo de execução é compatível com versões anteriores e posteriores e sua interface de provedor de execução permite a execução do modelo ML em diferentes plataformas de hardware. A Microsoft fez parceria com a Xilinx para criar o provedor de execução para a biblioteca de software Vitis AI, que executa modelos ONNX na plataforma Xilinx U250 FPGA.

  • 00:05:00 Nesta seção, aprendemos sobre a biblioteca de software Vitis AI, a plataforma de desenvolvimento Xilinx especializada em inferência de IA em plataformas de hardware Xilinx. O U250 FPGA está disponível para uso com a pilha de software Vitis AI em visualização privada no Azure, como a fila de VMs NP para os usuários. O kit de ferramentas Vitis AI consiste em ferramentas de IP otimizadas, bibliotecas, modelos e projetos de exemplo para desenvolvedores usarem com FPGAs, permitindo que eles combinem inferência e aceleração de AI. A Peakspeed, uma startup que fornece soluções analíticas geoespaciais, integra o ONNX Runtime e a pilha Vitis AI com o aplicativo ArcGIS Pro da Esri para criar as soluções de imagem geoespacial mais rápidas do mundo. A Peakspeed acelerou com sucesso o processo de correção geoespacial ou ortorretificação em CPUs, registrando números de referência comparando o TrueView em execução em um Azure NP que hospeda Xilinx U250 FPGA com o mesmo algoritmo em execução em uma CPU Xeon platinum.

  • 00:10:00 Nesta seção, Manash explica como desenvolvedores e clientes podem infundir seus aplicativos com aprendizado profundo usando o ONNX Runtime e a pilha Vitis AI para acelerar em terminais FPGA no Azure, bem como no local com hardware Xilinx U250. Ele também destaca que os desenvolvedores podem criar o provedor de execução Vitis AI com o ONNX Runtime da fonte, e a Xilinx lançará em breve uma imagem de VM no Azure Marketplace com todas as bibliotecas de software pré-criadas integradas em um só lugar para facilitar a implantação na VM Azure NP.
 

Implante modelos de transformadores no navegador com #ONNXRuntime



Implante modelos de transformadores no navegador com #ONNXRuntime

O vídeo demonstra como ajustar e implantar um modelo BERT otimizado em um navegador usando o ONNXRuntime. O apresentador mostra como converter o modelo PyTorch para o formato ONNX usando a API Transformers, usar ONNXRuntime para quantificar o modelo para redução de tamanho e criar uma sessão de inferência. O vídeo também aborda as etapas necessárias para importar pacotes para JavaScript usando WebAssembly e como executar entradas de texto por meio do modelo transformado para classificação de emoções. Apesar de uma redução na precisão da previsão, o tamanho menor do modelo é ideal para implantação em um navegador. São fornecidos links para o modelo, conjuntos de dados, código-fonte e uma postagem no blog.

  • 00:00:00 Nesta seção, o apresentador do vídeo demonstra como operacionalizar modelos de transformadores e mostra o projeto final que inclui um modelo de transformador otimizado e implantado em um navegador. O modelo usado no projeto é um modelo bert otimizado que foi destilado pela Microsoft para reduzir seu tamanho e tornar o teste agnóstico. O conjunto de dados de emoções usado para ajustar o modelo está disponível no hub de abraços. O apresentador percorre o processo de ajuste fino usando a API dos transformadores e mostra como converter o modelo PyTorch no formato ONNX usando a ferramenta de conversão integrada dos transformadores. Finalmente, o pacote ONNX Runtime Web é usado para inferência em JavaScript, onde diferentes conjuntos de operações podem ser escolhidos dependendo dos operadores necessários.

  • 00:05:00 Nesta seção, o vídeo discute como implantar modelos de transformador no navegador com ONNXRuntime. Primeiro, o vídeo explica como usar o ONNXRuntime para quantizar o modelo para reduzir seu tamanho, após o que uma sessão de inferência é criada para os modelos não quantizados e quantizados. O vídeo demonstra como importar os pacotes necessários para JavaScript usando WebAssembly e como codificar entradas de texto antes de executá-las por meio do modelo ONNXRuntime. A demonstração mostra como o modelo transformado pode ser usado para prever diferentes emoções a partir de um texto de entrada. Apesar de um declínio na precisão da previsão, o vídeo conclui que o tamanho reduzido do modelo o torna ideal para implantação na web.

  • 00:10:00 Nesta seção, o apresentador explica como eles conseguiram pegar um grande modelo de transformador, destilá-lo e quantizá-lo e usar o ONNX Runtime para realizar inferência na borda. Eles também fornecem links para o modelo e conjuntos de dados usados, bem como o código-fonte e uma postagem no blog sobre a demonstração.
 

Open Neural Network Exchange (ONNX) na empresa: como a Microsoft dimensiona o Machine Learning



Open Neural Network Exchange (ONNX) na empresa: como a Microsoft dimensiona o ML - BRK3012

O Open Neural Network Exchange (ONNX) é apresentado como uma solução para os desafios na implantação de modelos de aprendizado de máquina para produção, incluindo o gerenciamento de várias estruturas de treinamento e metas de implantação, com a Microsoft já adotando amplamente o ONNX para produtos como Bing, Bing ads e Office 365 O ONNX permite escalabilidade e manutenção de modelos de aprendizado de máquina, bem como melhorias significativas de desempenho e economia de custos atribuídas ao uso de aceleradores de hardware, como GPUs. Além disso, o ecossistema ONNX inclui parceiros como a Intel para otimização de tempo de execução, com kits de desenvolvimento prontamente disponíveis e técnicas de quantização disponíveis para converter modelos FP32 em tipos de dados de menor precisão, resultando em maior eficiência. Os palestrantes também destacam os benefícios da utilização do ONNX para computação de borda, pois o tempo de execução é flexível e pode implantar modelos em diferentes plataformas de hardware.

  • 00:00:00 Nesta seção, os apresentadores discutem a escala das iniciativas de aprendizado de máquina da Microsoft, incluindo mais de 180 milhões de usuários ativos mensais no Office 365 e a tecnologia de aprendizado de máquina implantada em centenas de milhões de dispositivos Windows. Eles também mencionam que a Microsoft usa mais de seis estruturas de aprendizado de máquina e que há desafios na implantação de modelos de aprendizado de máquina na produção. Eles apresentam o ONNX e o ONNX Runtime como soluções para esses desafios, que podem ser usados com aceleradores de hardware como Intel e NVIDIA e no aprendizado de máquina do Azure.

  • 00:05:00 Nesta seção do vídeo, o palestrante discute os desafios que surgem ao treinar modelos de aprendizado de máquina e implantá-los na produção. Com tantas estruturas de treinamento e alvos de implantação diferentes, torna-se difícil gerenciar e manter o desempenho eficiente do aplicativo. Para resolver esse problema, a Microsoft apresenta o ONNX (Open Neural Network Exchange), um padrão do setor que permite a conversão de modelos de aprendizado de máquina para o formato ONNX, independentemente da estrutura usada para treinamento. Isso permite a implantação de modelos ONNX em qualquer estrutura compatível, tornando a solução mais flexível e escalável. Além disso, a Microsoft está construindo um forte ecossistema de parceiros para oferecer suporte ao ONNX e garantir seu sucesso como padrão do setor.

  • 00:10:00 Nesta seção, o palestrante discute casos reais de uso de produção de Open Neural Network Exchange (ONNX) e ONNX runtime para mostrar como eles agregam valor comercial aos produtos e clientes da Microsoft. Alguns dos produtos da Microsoft, como Bing, Bing ads e Office 365, já adotaram amplamente o ONNX e o ONNX runtime e obtiveram melhorias significativas no desempenho do modelo e na latência reduzida. Por exemplo, com o tempo de execução ONNX e ONNX, o recurso de verificação gramatical do Office 365 obteve uma melhoria de 14,6 vezes no desempenho, resultando em redução de custos e latência. Outro caso de uso, OCR, também se beneficiou significativamente do ONNX e do ONNX runtime.

  • 00:15:00 Nesta seção, o palestrante discute como a Microsoft está usando o Open Neural Network Exchange (ONNX) para dimensionar o aprendizado de máquina em vários cenários, incluindo melhorar a qualidade e o desempenho de seu serviço comunitário de OCR dos Serviços Cognitivos do Azure, bem como melhorar sua qualidade de pesquisa e permitindo novos cenários como perguntas e respostas com assistentes pessoais. O palestrante também menciona como o ONNX e o ONNX Runtime melhoraram a velocidade dos modelos de aprendizado de máquina em 3,5 vezes e 2,8 vezes, respectivamente, trazendo grande valor para suas equipes de produto. Eles também destacam a importância de treinar modelos de aprendizado de máquina para realmente entender o significado semântico das imagens para melhorar a pesquisa multimídia.

  • 00:20:00 Nesta seção, os palestrantes discutem o uso de modelos Open Neural Network Exchange (ONNX) em produtos da Microsoft, especificamente o recurso de pesquisa visual do Bing. O ONNX permite o dimensionamento e a manutenção de modelos de aprendizado de máquina, bem como melhorias significativas de desempenho e economia de custos, obtidas por meio do uso de aceleradores de hardware, como GPUs. Os palestrantes também destacam a versatilidade do ONNX, que pode ser executado em várias plataformas, incluindo x64 e arquiteturas baseadas em ARM, e é um mecanismo de inferência de código aberto para modelos ONNX, disponível em Windows, Mac e Linux. O uso do ONNX permite a otimização da execução em hardware de destino específico sem alterar a interface do modelo, tornando-o uma ferramenta valiosa para dimensionar e manter implantações de produção.

  • 00:25:00 Nesta seção, o palestrante discute a interface do provedor de execução usada para executar modelos ONNX em diferentes plataformas de hardware, incluindo CPUs, GPUs e FPGAs. O ecossistema de parceiros inclui a Intel, com quem a Microsoft colaborou na otimização do tempo de execução usando provedores de execução baseados em VINO aberto. Eles também oferecem kits de desenvolvimento prontamente disponíveis, incluindo o stick de computação neural, para acelerar as cargas de trabalho de IA para vários setores, como manufatura, varejo e transporte. A Microsoft e a Intel também colaboraram na quantização para converter modelos FP32 em um tipo de dados de precisão mais baixa, resultando em menor largura de banda de memória, espaço reduzido de memória do modelo e maior número de quatro picos por watt com perda mínima de precisão.

  • 00:30:00 Nesta seção, o palestrante discute como eles foram capazes de usar instruções de processamento de vetores e fusão de gráficos para melhorar o desempenho e os requisitos de memória de núcleos de gem inteiros para redes neurais convolucionais. Eles conseguiram 4x mais computação e 4x menos requisitos de memória. Eles mostraram os benefícios de usar o n-graph como um provedor de execução junto com sua capacidade de processamento de hardware, mostrando a escalabilidade no desempenho para vários tamanhos de lote. A perda de precisão foi muito pequena e atendeu aos benefícios motivacionais da quantização. Eles também discutiram as diferentes maneiras de gerar modelos ONNX, como usando ONNX Model Zoo, Azure Machine Learning Experimentation e serviços de visão personalizados da Microsoft.

  • 00:35:00 Nesta seção, o palestrante explica como executar sessões de inferência usando o tempo de execução ONNX em um aplicativo. Depois de converter o modelo, o usuário o carrega no tempo de execução do ONNX e começa a analisar o gráfico. O tempo de execução identifica as otimizações disponíveis e consulta o hardware subjacente para identificar que tipo de operação é compatível com as bibliotecas de hardware. O tempo de execução do ONNX foi projetado para ser consistente, portanto, os trechos de código para Python e C-sharp são muito semelhantes. O palestrante também cita o AutoML, que permite ao usuário inserir dados para receber uma proposta de aplicativo que converte automaticamente o código em Python e C-sharp. Além disso, o palestrante descreve uma imagem do docker que inclui conversores para diferentes estruturas e permite que o usuário comece rapidamente com o tempo de execução do ONNX. O fluxo de trabalho é demonstrado por meio do uso do Azure Notebooks.

  • 00:40:00 Nesta seção, o palestrante discute como utilizar o Open Neural Network Exchange (ONNX) e as ferramentas de aprendizado de máquina da Microsoft para dimensionar modelos na empresa. O processo envolve o uso de um espaço de trabalho de ML para criar um arquivo de pontuação que inclui etapas de pré-processamento e inferência. O palestrante demonstra como criar imagens de contêiner para o computador e ambiente de destino, incluindo imagens de base, como uma imagem de base de tempo de execução ONNX. Por fim, as imagens são implantadas em um serviço IKS em nuvem com a capacidade de enviar imagens de teste para inferência nos terminais de CPU e GPU.

  • 00:45:00 Nesta seção, o palestrante demonstra a flexibilidade do tempo de execução do Open Neural Network Exchange (ONNX) mostrando uma demonstração em que o mesmo código é usado para apontar um aplicativo para diferentes plataformas de hardware, como CPUs versus GPUs e x86 versus ARM. O palestrante também apresenta uma demonstração da implantação de tempo de execução ONNX e modelos em dispositivos de ponta, especificamente no Intel up squared, para detectar cenários de segurança em um cenário de trabalhador de fábrica usando feed de vídeo pré-gravado e pós-processamento de caixas delimitadoras. O código usado na demonstração é idêntico, mas diferentes aceleradores de hardware são usados para otimizar o aplicativo. O palestrante resume que o ONNX se torna o formato comum para representar modelos de redes neurais e que o tempo de execução do ONNX permite a implantação tanto na nuvem quanto em dispositivos de ponta.

  • 00:50:00 Nesta seção, os apresentadores discutem os benefícios de usar o Open Neural Network Exchange (ONNX) para criar e implantar aplicativos de aprendizado de máquina com o Azure. Eles também abordam questões do público sobre aprendizado de máquina em diferentes processadores, usando ONNX com pipelines existentes e a possibilidade de voltar do ONNX para estruturas anteriores. Além disso, eles mencionam seus planos para expandir o ONNX Model Zoo com cenários e dados direcionados.

  • 00:55:00 Nesta seção, os palestrantes discutem os benefícios do ONNX em termos de flexibilidade de framework, já que os modelos ONNX podem ser usados com uma variedade de frameworks para servir. Eles também mencionam a integração do ONNX com o aprendizado de máquina do Azure, que permite aos usuários carregar a telemetria de inferência para retreinamento ou experimentação. A sessão também discute a possibilidade de integração do ONNX com o Excel nativamente, embora ainda esteja em desenvolvimento. Eles também abordam a questão de criar algoritmos personalizados e convertê-los em ONNX, com a opção de usar o Python para manipular o formato de arquivo ONNX. Por fim, a sessão menciona a necessidade de uma abordagem para assinatura de modelos ONNX para distribuição, o que será levado como feedback para futuras melhorias.
 

#OpenVINO Execution Provider para #ONNX Runtime - #OpenCV Weekly #Webinar Ep. 68



#OpenVINO Execution Provider para #ONNX Runtime - #OpenCV Weekly #Webinar Ep. 68

O OpenVINO Execution Provider for ONNX Runtime foi o principal tópico de discussão neste OpenCV Weekly Webinar. O produto visa acelerar o desempenho dos modelos ONNX em hardware Intel, exigindo o mínimo de esforço do usuário. O webinar discutiu os desafios da implantação de modelos de aprendizado profundo no mundo real, com o OpenVINO apresentado como a solução para esses desafios. O OpenVINO pode otimizar modelos de IA para desempenho eficiente em vários dispositivos e hardware. O tempo de execução ONNX, um projeto de código aberto projetado para acelerar a inferência de aprendizado de máquina, foi amplamente discutido. O webinar também apresentou uma demonstração da melhoria de desempenho obtida com o OpenVINO Execution Provider para ONNX Runtime, bem como seus recursos, como inferência multithread, suporte completo para vários plug-ins e cache de modelo. A integração entre OpenVINO e PyTorch por meio do OpenVINO Execution Provider também foi discutida. Os apresentadores abordaram questões do público sobre tópicos como compatibilidade com dispositivos ARM e perda potencial de desempenho ou precisão ao usar formatos de intercâmbio ONNX.

  • 00:00:00 Nesta seção, os anfitriões apresentam seus convidados, Devon Agarwal e Prita Veeramalai, que são gerente técnico de produto e engenheiro de estrutura de IA, respectivamente, no OpenVINO. Eles fornecem uma breve introdução ao programa e discutem alguns brindes futuros para os telespectadores. O principal tópico de discussão gira em torno do provedor de execução OpenVINO para tempo de execução ONNX, que visa acelerar o desempenho dos modelos ONNX em hardware Intel com o mínimo de esforço exigido do usuário. Os anfitriões também descrevem a agenda da sessão, que inclui uma visão geral do aprendizado profundo e seus desafios, seguida de uma introdução ao OpenVINO e seus recursos.

  • 00:05:00 Nesta seção do vídeo, o palestrante apresenta o OpenVINO Execution Provider para ONNX Runtime e explica sua finalidade. Eles também fornecem uma visão geral do OpenVINO, ONNX e ONNX Runtime, seguido por um guia sobre como começar a usar o OpenVINO Execution Provider para ONNX Runtime e integrá-lo aos aplicativos ONNX. O palestrante também discute o conjunto de recursos do produto e os planos futuros, incluindo uma prévia de um produto de pré-visualização beta para desenvolvedores. A conversa então se move para a importância do aprendizado profundo no mundo de hoje, a necessidade de IA em dispositivos de ponta e as demandas de computação para IA. O vídeo também aborda os desafios associados ao desenvolvimento e implantação de modelos de aprendizado profundo, incluindo necessidades únicas de inferência, desafios de integração e a ausência de uma solução única para todos.

  • 00:10:00 Nesta seção, são discutidos os desafios de implantar modelos de aprendizado profundo no mundo real. Existem desafios técnicos decorrentes da desconexão entre o treinamento de rede de aprendizado profundo e a inferência que ocorre em plataformas incorporadas. Existem também variações de linguagem de programação e hardware, que requerem uma API dedicada para comunicação de software e hardware. O kit de ferramentas OpenVINO da Intel é apresentado como uma solução para esses desafios. O kit de ferramentas simplifica o fluxo de trabalho de desenvolvimento e permite que os desenvolvedores escrevam um aplicativo uma vez e o implantem na arquitetura Intel, fornecendo uma abordagem de gravação única e implantação em qualquer lugar. O kit de ferramentas é capaz de implantar aplicativos voltados para CPU, iGPU, Movidius VPU e GNA. Pode ser valioso em vários setores, incluindo industrial, saúde e ciências da vida, varejo, segurança e proteção, oferecendo resultados mais rápidos, precisos e eficientes para implantação no mundo real.

  • 00:15:00 Nesta seção, o palestrante explica o conceito do OpenVino e como ele otimiza modelos de IA para dispositivos de ponta. Eles explicam como, uma vez construídos em estruturas como PyTorch ou TensorFlow, os modelos de IA devem ser otimizados para desempenho eficiente em dispositivos específicos, como CPUs, GPUs ou VPUs. O OpenVino automatiza esse processo de conversão para vários dispositivos e hardware, garantindo que os modelos sejam otimizados para desempenho eficiente no dispositivo em que são implantados. O palestrante passa a explicar o que é ONNX, um formato aberto para representar modelos de aprendizado de máquina, definindo um conjunto comum de operadores como os blocos de construção de modelos de aprendizado de máquina e aprendizado profundo. No geral, o ONNX permite que os desenvolvedores de IA usem uma variedade de estruturas, ferramentas, tempos de execução e compiladores sem se preocupar com as implicações de inferência downstream.

  • 00:20:00 Nesta seção, os palestrantes discutem o formato ONNX, um modelo intermediário aberto que permite a conversão de modelos produzidos por diferentes ferramentas para serem lidos em um formato padronizado. O tempo de execução ONNX é um projeto de código aberto projetado para acelerar a inferência de aprendizado de máquina em vários sistemas operacionais e plataformas de hardware. Ele identifica automaticamente oportunidades de otimização e fornece acesso à melhor aceleração de hardware disponível. O provedor de execução OpenVINO para ONNX permite que o poder do kit de ferramentas OpenVINO acelere a inferência de modelos ONNX em CPUs, GPUs e VPUs Intel. Ele permite que os usuários executem inferência usando APIs de tempo de execução ONNX enquanto integram facilmente o kit de ferramentas OpenVINO como back-end.

  • 00:25:00 Nesta seção, é discutida a integração entre o tempo de execução ONNX e o provedor de execução OpenVINO. Essa integração permite a execução eficiente de modelos de aprendizado profundo em dispositivos Intel. O kit de ferramentas OpenVINO fornece bibliotecas otimizadas para executar modelos em dispositivos Intel. Quando o provedor de execução do OpenVINO está ativado, ele seleciona de forma inteligente quais operadores no modelo devem ser executados no back-end do OpenVINO para máxima eficiência. Os operadores restantes são executados usando a estrutura de tempo de execução ONNX nativa. O usuário pode instalar o provedor de execução OpenVINO compilando a partir do código-fonte, puxando a imagem do Docker ou usando pip install. O pacote OpenVINO de tempo de execução ONNX pode ser encontrado no PyPI.

  • 00:30:00 Nesta seção do webinar, os apresentadores discutem como usar o OpenVINO Execution Provider para ONNX Runtime e demonstram seus recursos. Eles explicam como instalar o produto usando pip e fornecem trechos de código para mostrar como importar a biblioteca de tempo de execução ONNX e iniciar uma sessão de inferência. Eles também mostram como é fácil usar o OpenVINO Execution Provider com uma simples modificação em uma linha de código existente. Os apresentadores convidam os espectadores a digitalizar códigos QR para acessar demos e amostras para experimentar por si mesmos.

  • 00:35:00 Nesta seção, o vídeo apresenta uma demonstração da melhoria de desempenho obtida com o OpenVINO Execution Provider (EP) para ONNX Runtime. O vídeo mostra uma comparação entre os 5 fps alcançados com o provedor de execução da CPU e os 8 fps alcançados com o OpenVINO EP. Além disso, o vídeo apresenta uma demonstração de quantização usando o OpenVINO EP para ONNX Runtime, que resultou em um ganho de desempenho de 2x com perda insignificante de precisão. O notebook de demonstração está disponível no Intel DevCloud, que fornece acesso remoto ao hardware real da Intel para benchmarking e análise.

  • 00:40:00 acabou com a demonstração? Nesta seção, o apresentador demonstra como iniciar o OpenVINO Execution Provider para ONNX Runtime e selecionar o hardware, como i3, i5, xenon ou Core i9, e a divisão gráfica. Eles também mostram o notebook Jupyter e a amostra de detecção de objetos, que usa vídeo de entrada e um modelo ONNX para executar interferência no dispositivo. O apresentador explica que há suporte para CPU, GPU e mídia FP16 VADM, e também menciona o provedor de execução da CPU, que é o back-end de tempo de execução ONNX nativo. Por fim, o apresentador discute a utilidade do OpenVINO Execution Provider para testar diferentes hardwares sem comprar ou alugar cada dispositivo.

  • 00:45:00 Nesta seção, são discutidos os recursos do OpenVINO Execution Provider. Ele oferece inferência multiencadeada, suporte completo para vários plug-ins e cache de modelo. A quantização de modelos e o particionamento de gráficos também estão disponíveis, bem como APIs para vários idiomas. Otimizações de buffer IO estão presentes para desempenho aprimorado e salvamento de arquivo externo está disponível para modelos ONNX. Uma pergunta é feita para o público ganhar um prêmio, e uma prévia da integração do OpenVINO para modelos PyTorch é compartilhada.

  • 00:50:00 Nesta seção, eles discutem a integração do OpenVINO com o PyTorch por meio do provedor de execução do OpenVINO. Este produto pode acelerar o desempenho dos modelos PyTorch em hardware Intel usando apenas duas linhas adicionais de código. O usuário pode agrupar seu nn.module no módulo de inferência tocha orp/ort, que prepara o módulo para inferência usando o provedor de execução OpenVINO e exporta o módulo para um gráfico na memória por meio de onnx.export. A sessão ONNXruntime então particiona o gráfico em subgráficos com operadores suportados e não suportados para particionamento de subgráficos, e os nós compatíveis com OpenVINO serão executados pelo provedor e podem ser executados em CPUs, GPUs ou VPUs Intel, enquanto todos os outros nós cairão de volta no provedor de execução de ML de CPU padrão. O processo de instalação é simples, com a opção de compilar a partir do código-fonte, fazer uma instalação pip simples e obter acesso a toda a gama de APIs do Python.

  • 00:55:00 Nesta seção, os anfitriões do OpenCV Weekly Webinar leem perguntas do público sobre tópicos como a compatibilidade do OpenVINO com dispositivos ARM e perda potencial de desempenho ou precisão ao usar formatos de intercâmbio ONNX. Os anfitriões e apresentadores explicam que o OpenVINO pode realmente rodar e dar um impulso nos dispositivos de CPU ARM, e o ONNX pode até melhorar o desempenho para a maioria dos modelos. No entanto, é sempre aconselhável testar a precisão em um conjunto de teste ao converter de um formato para outro. Os apresentadores também esclarecem que o ONNX oferece suporte a modelos de forma dinâmica, ao contrário de uma pergunta do público. Por fim, os anfitriões e apresentadores agradecem ao público e a Phil, o organizador, pela ótima apresentação e sessão informativa.
 

Importando redes neurais com ONNX



Importando redes neurais com ONNX

Este vídeo explora a importância do projeto Open Neural Network Exchange (ONNX) no aprendizado de máquina e seus benefícios na conversão de modelos em várias ferramentas. O palestrante discute os desafios de carregar modelos manualmente ou usando ferramentas automatizadas e como o ONNX elimina esse problema por meio de seu modelo computacional baseado em gráficos. O palestrante também destaca as vantagens do ONNX na conversão manual de modelos complexos e sua compatibilidade com diferentes frameworks. O vídeo aborda modelos de rede parametrizados, a estrutura do ONNX e possíveis desafios que podem surgir ao usar o projeto. Apesar desses desafios, o palestrante acredita que o ONNX prosperará devido ao apoio substancial de várias empresas.

  • 00:00:00 Nesta seção, o palestrante discute a importância do ONNX no aprendizado de máquina e as dificuldades enfrentadas ao carregar modelos manualmente ou por ferramentas automatizadas. O palestrante explica que com a introdução do PyTorch e do TensorFlow, a maioria dos modelos é desenvolvida nesses frameworks, dificultando a inserção de modelos externos em outros frameworks. O processo manual de conversão de modelos é demorado e tedioso, pois o processo envolve vincular pesos à arquitetura, o que não é uma coisa divertida de se fazer. O palestrante discute o crescimento do repositório de redes neurais e como eles adicionaram vários modelos ao repositório desde a versão 12. Eles também apresentam o MobileNet, uma rede de classificação de imagens que foi lançada em 2018, que reduz o tamanho das redes de classificação de imagens e executa mais rápido.

  • A seção 00:05:00 enfoca a importância dos modelos de rede parametrizados e por que eles são necessários no repositório da rede neural. Sem parametrização, o repositório se tornaria muito longo e difícil de navegar. Ele também explica como escolher um modelo não padrão e fornece um exemplo do modelo BPE, que converte segmentos em palavras ou subpalavras, dependendo do idioma. A seção também destaca a necessidade de ONNX na conversão manual, pois a conversão manual de modelos complexos como o famoso modelo lançado em 14 de fevereiro de 2019 pode ser um desafio.

  • 00:10:00 Nesta seção, o palestrante descreve os detalhes da função do codificador de rede usado no modelo GPD2. Essa função tem todo o pré-processamento que o modelo precisa e converte uma string em uma lista de tokens. Além disso, fornece o índice posicional e possui um vetor de tamanho 768, dependendo do tamanho do modelo que está sendo utilizado. O palestrante explica que não era viável criar a arquitetura para a rede de camadas 800-1000 manualmente, e por isso eles precisavam do ONNX. A vantagem de usar o ONNX é que ele elimina a necessidade de manter um único conversor para cada tipo e possui um zoológico de modelos que os usuários podem aproveitar para importar diferentes modelos com eficiência.

  • 00:15:00 Nesta seção, o YouTuber discute os benefícios e as especificações do projeto Open Neural Network Exchange (ONNX). O projeto possibilita a conversão de modelos a partir de ferramentas de última geração, facilitando a escolha da melhor ferramenta para criação de modelos. A ONNX possui uma vasta lista de parceiros da comunidade, incluindo grandes empresas, facilitando a movimentação de modelos entre diversas ferramentas. O projeto fornece ferramentas de otimização de hardware e ferramentas de visualização, que faltam em muitos outros frameworks. O YouTuber acredita que, como o projeto tem apoio considerável de várias empresas, ele continuará a prosperar.

  • 00:20:00 Nesta seção, o palestrante discute a estrutura do ONNX, um modelo computacional baseado em grafos que possui operadores implementados externamente ao grafo. Cada nó no grafo é referenciado como um operador e tem uma ou mais entradas e saídas que devem ser portáveis entre as estruturas. O palestrante dá um exemplo de como funciona o ONNX, demonstrando com uma função interna que pega o modelo no formato de protocolo e o converte em uma Associação matemática. O gráfico contém os metadados relacionados ao modelo. O palestrante então explica como o gráfico tem nós diferentes e passa um tempo discutindo as propriedades de uma camada de convolução, que é um dos nós do gráfico. Por fim, ele mostra como obter informações sobre as dimensões da camada.

  • 00:25:00 Nesta seção, o palestrante discute alguns dos problemas que podem surgir ao trabalhar com o ONNX. Existem certos erros que podem ocorrer com o operador de remodelação quando ele não possui dimensões de crachá, portanto, a cobertura do operador precisa ser aprimorada para suportar esses tipos de casos. O palestrante menciona que há trabalho futuro a ser feito em termos de adição de suporte para RNNs e hiper-redes estáticas, além de conectar outras ferramentas como inferência de versão e forma e verificadores de modelo. Além disso, melhorar a cobertura do operador continua sendo um trabalho em andamento. No entanto, o palestrante destaca que o ONNX está sendo desenvolvido ativamente e conta com o apoio de grandes empresas.