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

 

ONNX em MCUs



ONNX em MCUs

Rohit Sharma fala sobre os desafios e oportunidades de executar modelos ONNX em microcontroladores. Ele enfatiza que, embora esses dispositivos não tenham os recursos de servidores de alto desempenho, há um número crescente de aplicativos de aprendizado de máquina para dispositivos minúsculos devido à melhoria nos recursos de hardware e aos esforços da comunidade de IA para reduzir o tamanho do modelo. Sharma discute duas ferramentas para implementar aprendizado de máquina em microcontroladores com facilidade: DeepSea, um compilador avançado de código aberto que oferece suporte a Python e permite que os desenvolvedores criem algoritmos de ML personalizados, e Canvas, uma plataforma sem código/código baixo que fornece mais de 70 pequenos aplicativos de ML que podem ser personalizados para atender ao conjunto de dados do usuário. Ele fornece dois casos de uso para essas ferramentas, incluindo uma luva vestível que traduz gestos de sinais em palavras e detecção de palavras fracas para dispositivos assistidos por fala, como o Amazon Echo.

  • 00:00:00 Nesta seção, Rohit Sharma discute os desafios e oportunidades de executar modelos ONNX em microcontroladores, que são pequenos dispositivos operando com baterias por meses. Embora esses dispositivos não tenham os recursos de computação de servidores de alto desempenho com aceleradores ou computadores de placa única, o número crescente de aplicativos de aprendizado de máquina executados em dispositivos minúsculos se deve ao fato de que os provedores de MCU continuam a melhorar os recursos de hardware enquanto a comunidade de pesquisa de IA está trabalhando para reduzir o tamanho do modelo. Sharma explica que todos os minúsculos aplicativos de ML são aplicativos de IA de ponta, mas nem todos os aplicativos de IA de borda são pequenos aplicativos de ML, pois a diferença está enraizada no consumo de energia. Em seguida, ele discute o processo de compilação de modelos ONNX com o DeepSea, um compilador de biblioteca de aprendizado profundo independente de fornecedor e de código aberto e uma estrutura de inferência projetada para dispositivos de fator de forma pequeno, incluindo microcontroladores, IoT e dispositivos de ponta.

  • 00:05:00 Nesta seção, o palestrante descreve duas ferramentas para implementar aprendizado de máquina em microcontroladores com facilidade. A primeira ferramenta é o DeepSea, um compilador AOT (head-of-time) de código aberto que oferece suporte a Python e permite que os desenvolvedores criem algoritmos personalizados de aprendizado de máquina. A segunda ferramenta é o Canvas, uma plataforma sem código/baixo código que fornece uma galeria de mais de 70 pequenos aplicativos de aprendizado de máquina. O Canvas permite a personalização desses aplicativos para criar um pequeno modelo de aprendizado de máquina adequado ao conjunto de dados do usuário. O palestrante também forneceu dois casos de uso para essas ferramentas - uma luva vestível que converte gestos de sinais em palavras faladas e detecção de palavras fracas para habilitar dispositivos assistidos por fala, como o Amazon Echo.
 

Aproveite o poder do aprendizado de máquina com ONNX - Ron Dagdag



Aproveite o poder do aprendizado de máquina com ONNX - Ron Dagdag

Neste vídeo, Ron Dagdag investiga a importância das estruturas de aprendizado de máquina, particularmente ONNX, que facilita a interoperabilidade entre as estruturas de aprendizado profundo e a implantação. Ele descreve as maneiras de obter modelos ONNX, incluindo a conversão de modelos existentes, modelos de treinamento com aprendizado de máquina automatizado do Azure e uso do serviço de visão personalizada do Azure. Dagdag enfatiza a decisão de implantar modelos de aprendizado de máquina na nuvem ou na borda e sugere aproveitar o ONNX para tornar o processo mais contínuo. Além disso, ele percorre o processo de uso do ML.NET da Microsoft para criar um modelo de aprendizado de máquina e demonstra como incorporar o modelo ONNX em um aplicativo usando o tempo de execução ONNX para inferência. Dagdag também explora o ONNX como um padrão aberto para aprendizado de máquina, suas várias plataformas e linguagens e ferramentas para tornar os modelos menores.

  • 00:00:00 Nesta seção, o palestrante discute como a programação tradicional difere do aprendizado de máquina, pois o aprendizado de máquina se concentra no treinamento de computadores para aprender algoritmos, enquanto a programação tradicional se concentra em entradas e cálculos. Os dados de treinamento são importantes no aprendizado de máquina e esses dados são usados para treinar máquinas para aprender algoritmos como parte do processo. O palestrante enfatiza a importância dos frameworks de aprendizado de máquina, como o ONNX (Open Neural Network Exchange), que serve como uma ponte entre os frameworks de aprendizado de máquina e a implantação. O ONNX ajuda a mover modelos entre estruturas de aprendizado profundo, garantindo a interoperabilidade entre as estruturas.

  • 00:05:00 Nesta seção, Ron Dagdag discute as diferentes maneiras de obter um modelo ONNX. Os cientistas de dados, semelhantes aos chefs, são responsáveis por criar e refinar a receita para melhorar o modelo de uma empresa, enquanto os modelos ONNX são como PDFs para representação neural de um gráfico de operações. Existem quatro maneiras de obter modelos ONNX, inclusive por meio do GitHub, o serviço de visão personalizada do Azure, convertendo modelos existentes e treinando-os usando o aprendizado de máquina automatizado do Azure. O processo de conversão de modelos para ONNX é simples, pois existem conversores disponíveis para alterar modelos de TensorFlow, Keras ou PyTorch para ONNX, com etapas importantes que incluem carregar o modelo existente, fazer a conversão e salvá-lo. No geral, o ONNX pode ajudar as empresas a integrar o aprendizado de máquina em seus aplicativos de maneira mais integrada.

  • 00:10:00 Nesta seção, o palestrante discute o uso de ONNX para modelos de aprendizado de máquina. O ONNX permite que os desenvolvedores identifiquem quais são os dados de entrada e saída de seus modelos ao visualizá-los. Ele pode ser usado por meio de conversão de linha de comando e escalar rapidamente com clusters de GPU na nuvem. O ONNX também oferece um registro de modelo que pode ajudar no controle de versões de modelos e na implantação. O palestrante enfatiza a diferença entre cientistas de dados e engenheiros de software, onde o primeiro gera uma receita secreta enquanto o último descobre como operacionalizá-la integrando-a com várias fontes, fornecendo dados e criando pipelines. O ONNX pode ser implantado em vários dispositivos, incluindo dispositivos Windows e endpoints de IoT.

  • 00:15:00 Nesta seção, o palestrante discute a decisão de implantar modelos de aprendizado de máquina na nuvem ou no edge, que se refere ao processamento mais próximo do usuário. Ele explica que a implantação na borda pode ser mais econômica, flexível e ter menor latência, o que é ideal ao processar vídeo ou imagens. Além disso, a implantação na borda pode ser necessária quando as regras e regulamentos determinam que os dados não devem sair de uma rede ou país específico. O palestrante sugere o uso do ONNX, um formato intermediário que pode converter modelos de diferentes estruturas de aprendizado de máquina, para tornar o processo de implantação mais contínuo.

  • 00:20:00 Nesta seção, o palestrante discute a estrutura ONNX e suas possíveis aplicações. O ONNX permite a conversão de modelos para diversos formatos, incluindo TensorFlow, Core ML e transfer learning, e possui um runtime de alto desempenho para execução dos modelos, denominado ONNX Runtime. O ONNX Runtime é multiplataforma e oferece suporte a operações tradicionais de aprendizado de máquina. Ele também possui uma versão GPU e uma API C#. No geral, o ONNX é uma ferramenta poderosa para desenvolvedores, e os usuários podem começar a usá-lo por meio do ecossistema ONNX usando a instância de contêiner docker. Em sua demonstração, o palestrante mostra como baixar e usar diferentes pacotes ONNX em C# para manipular dados usando quadros de dados.

  • 00:25:00 Nesta seção, o palestrante demonstra o processo de uso do ML.NET da Microsoft para criar um modelo simples de aprendizado de máquina que prevê o salário com base em anos de experiência. Ele primeiro divide os dados em conjuntos de treinamento e teste, cria um pipeline usando o contexto de ML e treina o modelo usando o conjunto de treinamento. Ele então avalia as métricas do modelo e as salva em um modelo ONNX. Em seguida, ele mostra como incorporar o modelo ONNX em um aplicativo usando o tempo de execução ONNX para inferência. Por fim, ele cria um contêiner de entrada para o aplicativo e executa o modelo para obter a pontuação.

  • 00:30:00 Nesta seção, o palestrante discute os benefícios de usar o tempo de execução ONNX, as diferentes equipes da Microsoft que o usaram no passado e como isso melhora seus processos. Ele também fala sobre o uso do Windows ML se você estiver implantando em dispositivos Windows, que está disponível nos dispositivos da família Windows em aplicativos win32 e WinRT, e conectando o tempo de execução ONNX usando APIs. O palestrante então explora o Direct ML, que é ideal para criar uma API de aprendizado de máquina de alto controle em tempo real e é melhor para jogos. Ele também destaca o ONNX JS para rodar modelos ONNX no navegador ou no nodejs, e a Embedded Learning Library, que permite começar a usar dispositivos que não possuem um sistema operacional completo ou Linux Mac.

  • 00:35:00 Nesta seção, Ron Dagdag discute o uso do ONNX como um padrão aberto para aprendizado de máquina e como ele pode ser convertido com eficiência em diferentes plataformas. Os modelos ONNX podem ser criados em diversas linguagens como dotnet, JavaScript e Python. O desempenho pode ser obtido por meio da implantação na nuvem ou na borda. O público fez perguntas como: você pode importar seu modelo ONNX em C#, qual é o consumo de memória do tempo de execução ONNX e como você pode converter um modelo de imagem grande em um modelo ONNX menor adequado para dispositivos menores. Dagdag sugeriu o uso de poda ou quantização para comprimir os modelos e reduzir seu tamanho. Ele também destacou que os slides e os códigos de demonstração estão disponíveis no repositório do GitHub, junto com o fichário para testar o código.

  • 00:40:00 Nesta seção, o palestrante discute o processo de tornar os modelos ONNX menores em termos de tamanho. O modelo ONNX é composto por gráficos de operações que identificam quais operações ele pode realizar. Embora possa não haver uma maneira específica de tornar um modelo ONNX menor, existe um utilitário que pode compactá-lo. Por ser um software de código aberto, é possível que um novo recurso seja lançado no futuro. Os espectadores são encorajados a enviar quaisquer perguntas adicionais a Ron por meio do bate-papo ou do site de perguntas e respostas.
 

Linux Foundation Artificial Intelligence & Data Day - ONNX Community Meeting - 21 de outubro de 2021

Emma Ning (Microsoft) ONNX Runtime Web para inferência no navegador


001 ONNX 20211021 Ning ONNX Runtime Web para inferência no navegador

A gerente de produto da equipe do Microsoft AI Framework, Emma, apresenta o ONNX Runtime Web, um novo recurso do ONNX Runtime que permite aos desenvolvedores de JavaScript executar e implantar modelos de aprendizado de máquina em um navegador, com dois back-ends, incluindo web assembly para CPU e WebGL para GPU. O back-end de montagem da Web pode executar qualquer modelo ONNX, alavancar multi-threading e SIMD e oferecer suporte à maioria das funcionalidades nativas do ONNX Runtime, enquanto o back-end WebGL é uma implementação puramente baseada em JavaScript com APIs WebGL. O palestrante também discute a compatibilidade dos operadores ONNX com ambos os back-ends, fornece trechos de código para criar uma sessão de inferência e executar um modelo e apresenta um site de demonstração com vários cenários de modelos de imagem no navegador alimentados pelo modelo MobileNet. No entanto, o palestrante também reconhece que ainda há espaço para melhorias no aprimoramento do desempenho e consumo de memória do tempo de execução ONNX e na expansão dos operadores ONNX suportados.

  • 00:00:00 Nesta seção, Emma, gerente de produto da equipe do Microsoft AI Framework, apresenta o ONNX Runtime Web, uma nova solução para inferência no navegador. A ideia de aprendizado de máquina no navegador vem ganhando força, pois permite portabilidade entre plataformas com implementação de sistema por meio do navegador, protege a privacidade do usuário e acelera o desempenho sem enviar dados para o servidor. O ONNX Runtime Web é um novo recurso do ONNX Runtime que permite aos desenvolvedores de JavaScript executar e implantar modelos de aprendizado de máquina em um navegador, com desempenho de inferência aprimorado, cobertura de modelo e experiência de desenvolvimento. A arquitetura do ONNX Runtime Web compreende dois backends, incluindo web assembly para CPU e WebGL para GPU, que permitem ao ONNX Runtime Web acelerar a inferência em CPUs e GPUs. O back-end de montagem da web pode executar qualquer modelo ONNX, aproveitar multi-threading e SIMD e oferecer suporte à maioria das funcionalidades nativas do ONNX Runtime. O back-end WebGL, por outro lado, é uma implementação puramente baseada em JavaScript com APIs WebGL que fornecem acesso direto à GPU do computador, permitindo muitas técnicas de otimização para aumentar ainda mais o desempenho ao máximo.

  • 00:05:00 Nesta seção, o palestrante discute a compatibilidade dos operadores ONNX com os back-ends WebAssembly e WebGL, que suportam as plataformas mais populares do mundo da web. Eles fornecem um link para uma tabela que mostra as plataformas compatíveis e quais operadoras ONNX são suportadas. Eles também fornecem trechos de código que demonstram como criar uma sessão de inferência e executar um modelo com a web de tempo de execução ONNX, que permite uma experiência de desenvolvimento consistente para influência do lado do servidor e do lado do cliente. O palestrante então compartilha um site de demonstração apresentando vários cenários interessantes de visão no navegador alimentados por modelos de imagem, como a execução do modelo MobileNet em um navegador com a opção de escolher diferentes back-ends. O palestrante reconhece que ainda há espaço para melhorias em termos de adição de mais operadores ONNX e otimização do desempenho da web em tempo de execução ONNX e consumo de memória, além de trabalhar em mais demos para mostrar seus recursos.
 

Web and Machine Learning W3C Workshop Summer 2020

ONNX.js - Uma biblioteca Javascript para executar modelos ONNX em navegadores e Node.js



ONNX.js - Uma biblioteca Javascript para executar modelos ONNX em navegadores e Node.js

ONNX.js é uma biblioteca JavaScript que permite aos usuários executar modelos ONNX em navegadores e Node.js. Ele otimiza o modelo na CPU e na GPU com várias técnicas e oferece suporte à criação de perfil, registro e depuração para facilitar a análise. A biblioteca oferece suporte a todos os principais navegadores e plataformas e permite a paralelização usando web workers para melhor desempenho em máquinas multicore. Usando o WebGL para acessar os recursos da GPU, ele fornece melhorias significativas de desempenho e reduz a transferência de dados entre a CPU e a GPU. Embora seja necessário mais otimização e suporte do operador, o palestrante incentiva as contribuições da comunidade para melhorar o ONNX.js.

  • 00:00:00 Nesta seção, Emma da Microsoft fala sobre ONNX.js, que é uma biblioteca JavaScript usada para executar modelos ONNX em navegadores e Node.js. JavaScript é uma linguagem muito importante usada por 95% dos sites e é a linguagem do lado do cliente mais popular usada para aplicativos eletrônicos, como GitHub Desktop e VS Code. Apesar da percepção de que o JavaScript não foi projetado para computação de alto desempenho, existem técnicas disponíveis para fazer com que o JavaScript e o aprendizado de máquina funcionem bem juntos. Um benefício de usar o aprendizado de máquina do lado do cliente inclui proteção de privacidade, permitindo análise em tempo real, permitindo uma experiência consistente de IA em várias plataformas e acelerando o desempenho utilizando GPUs sem exigir a instalação de bibliotecas ou drivers. O ONNX.js é semelhante ao TensorFlow.js e fornece modelos de aprendizado de máquina no formato ONNX, que é uma estrutura padrão.

  • 00:05:00 Nesta seção, aprendemos sobre a comunidade ONNX, que foi estabelecida em 2017 pela Microsoft e pelo Facebook para fornecer um padrão de formato aberto e neutro em janelas. ONNX.js é uma implementação JavaScript pura de ONNX que permite aos usuários executar modelos ONNX em um navegador e carregar JS. Ele otimiza o modelo tanto na CPU quanto na GPU com várias técnicas avançadas de tecnologia e possui três back-ends habilitados, dois para CPU usando JavaScript e WebAssembly e um para GPU usando WebGL. O ONNX.js também fornece um criador de perfil, logger e outros utilitários para fácil depuração e análise, e oferece suporte a todos os navegadores nas principais plataformas para criar facilmente aplicativos de IA em todas as plataformas. Por fim, o uso de web workers permite a paralelização em operadores pesados, o que melhora significativamente o desempenho em máquinas com vários núcleos.

  • 00:10:00 Nesta seção, o palestrante discute os benefícios de usar WebGL, uma API padrão popular para acessar recursos de GPU, para acelerar a criação de gráficos em JavaScript. O uso do WebGL permite várias otimizações para reduzir a transferência de dados entre a CPU e a GPU, além de reduzir os ciclos de processamento da GPU, resultando em melhorias significativas de desempenho. O palestrante também fornece um exemplo de fluxo de ponta a ponta do uso do ONNX.js para executar um modelo e demonstra como usar o ONNX.js com um exemplo de HTML e ferramentas npm e de limite. Além disso, o palestrante discute a necessidade de mais otimização e suporte para mais operadores ONNX e incentiva as contribuições da comunidade para melhorar o ONNX.js.
 

Como executar modelos PyTorch no navegador com ONNX.js



Como executar modelos PyTorch no navegador com ONNX.js

O vídeo explica as vantagens de executar um modelo PyTorch em um navegador usando JavaScript e ONNX.js, incluindo melhor tempo de resposta, escalabilidade, disponibilidade offline e maior privacidade do usuário. O vídeo também mostra o processo de conversão de um modelo PyTorch em um modelo ONNX, carregando-o em uma sessão ONNX.js e executando a inferência no navegador. Preparação de dados, depuração e aumentos também são discutidos, e o palestrante demonstra como tornar o modelo mais robusto usando técnicas de aumento de dados. O vídeo fornece um código de amostra e um site de demonstração para que os usuários experimentem o modelo por conta própria.

  • 00:00:00 Nesta seção, Eliot Wait discute os benefícios de executar um modelo PyTorch em um navegador usando JavaScript. Em primeiro lugar, a execução do modelo no navegador oferece melhor tempo de resposta e evita a latência de envio de dados de e para um servidor. Em segundo lugar, a criação de um site apenas com arquivos estáticos torna mais fácil escalar e lidar com mais usuários. Em terceiro lugar, o modelo funcionará offline, portanto, desde que os arquivos JavaScript já estejam instalados, eles ainda poderão ser usados sem acesso à Internet. Em quarto lugar, hospedar o modelo no navegador aumenta a privacidade do usuário, pois os dados não são compartilhados com nenhum servidor. No entanto, se o modelo for muito grande ou demorar muito para ser calculado nos dispositivos do usuário, é recomendável hospedá-lo em um servidor. Por fim, Eliot ilustra como converter facilmente modelos PyTorch em JavaScript usando um modelo Mnest para reconhecimento de dígitos manuscritos.

  • 00:05:00 Nesta seção, o vídeo explica a diferença entre usar TensorFlow.js e ONNX.js e sugere o uso de TensorFlow.js para treinamento e ONNX.js para inferência. ONNX significa "troca de rede neural aberta" e define um formato de arquivo comum para modelos de aprendizado de máquina. O vídeo mostra o processo de conversão de um modelo PyTorch em um modelo ONNX usando o método arch.onnx.export e mostra como carregar o modelo em uma sessão de inferência ONNX.js para executar a inferência no navegador. O vídeo fornece um código de amostra para criar a sessão, carregar o modelo e executar a inferência em uma entrada fictícia, que retorna um mapa de saída somente leitura.

  • 00:10:00 Nesta seção, o vídeo discute como resolver um erro que ocorre ao tentar executar o modelo PyTorch no navegador usando ONNX.js. Especificamente, a mensagem de erro afirma que o operador log-softmax não tem suporte no momento pelo ONNX.js, mas o apresentador de vídeo mostra que o operador softmax tem suporte. O vídeo também apresenta um site de demonstração onde os usuários podem desenhar números e ver as previsões de saída do modelo PyTorch. No entanto, o apresentador observa que há um problema com o carregamento do modelo, que é corrigido garantindo que o modelo tenha sido carregado antes de passar os dados por ele. Por fim, o vídeo apresenta uma versão atualizada do código do modelo que remodela uma lista de dados de imagem em um tensor de 280x280x4, permitindo que o modelo preveja valores de dígitos com base na entrada de pixel.

  • 00:15:00 Nesta seção do vídeo, o palestrante explica como preparar dados para um modelo PyTorch que será executado no navegador usando ONNX.js. Eles extraem o quarto canal de uma imagem desenhada para remodelá-la na forma esperada para imagens PyTorch. Eles também aplicam o operador average pool e dividem o tensor por 255 para ajustar os valores da imagem dentro do intervalo esperado. Além disso, eles explicam como normalizar os dados subtraindo a média do conjunto de dados e dividindo-a pelo desvio padrão. O palestrante identifica um erro devido ao formato antigo da entrada fictícia e explica como corrigi-lo. Eles também explicam como depurar e aplicar o aumento de dados para tornar o modelo mais preciso, girando e traduzindo os dados da imagem antes de passá-los pelo modelo.

  • 00:20:00 Nesta seção, o palestrante demonstra como tornar o modelo mais robusto adicionando aumento de dados ao script de treinamento. Esses aumentos incluem traduções, dimensionamento e cisalhamento dos dígitos, produzindo amostras mais resistentes para o modelo aprender. O palestrante então retreina o modelo do zero e o testa, observando que, embora ainda possa melhorar, o aumento de dados adicionado o tornou mais robusto em geral. O palestrante convida os espectadores a experimentar o modelo por conta própria usando o link na descrição do vídeo.
 

Classificação de dígitos na CPU com demonstração ONNX Runtime



Classificação de dígitos na CPU com demonstração ONNX Runtime

O Open Neural Network Exchange (ONNX) fornece um formato de código aberto para modelos de aprendizado profundo e aprendizado de máquina. Podemos treinar nossos modelos em qualquer estrutura que preferirmos e depois converter o modelo para o formato ONNX. Com o ONNX Runtime da Microsoft, podemos executar uma sessão de inferência com modelos onnx em qualquer ambiente, o que nos dá uma implementação um pouco mais rápida. Aqui está uma demonstração simples do mesmo. O modelo é treinado para reconhecer dígitos usando o conjunto de dados MNIST com PyTorch. Estou executando uma sessão de inferência na CPU do Linux.

https://github.com/NagarajSMurthy/Digit-recognizer

 

Bilhões de inferências NLP na JVM usando ONNX e DJL



Bilhões de inferências NLP na JVM usando ONNX e DJL

O CTO de uma empresa de inteligência de mídia discute como eles usam JVM e DJL e Hugging Face para tokenização NLP no pipeline de aprendizado de máquina para explorar o cenário de mídia para vários casos de uso. À medida que os recursos do produto foram direcionados para isso, o aprendizado de máquina e o sistema de modelagem se tornaram peças essenciais para manter tudo funcionando, pois atingiram uma escala em que a CPU não poderia mais ser suficiente. Eles passaram de um modelo de ponto flutuante de 32 bits para 16 bits, o que levou a um aumento de 3% na eficácia, mas enfrentaram erros de conversão e raros vazamentos de memória durante o processo, que resolveram substituindo várias implementações. Eles investiram em robustez adicionando CI alimentado por GPU e configurando uma pilha lógica avançada do Prometheus que monitora a latência de várias inferências e a latência de tokenização. Seus planos futuros incluem melhorar a eficiência da GPU e adicionar mais modelos ao sistema criando uma configuração multi-GPU.

  • 00:00:00 Nesta seção do vídeo, Viet, o CTO de uma empresa de inteligência de mídia, discute como a infraestrutura de sua empresa é baseada na JVM e como eles a usam para explorar o cenário de mídia para vários casos de uso, como o lançamento de produtos rastreamento e rastreamento de reputação. Ele explica que seu sistema é alimentado por JVM e eles usam DJL e Hugging Face para tokenização NLP no pipeline de aprendizado de máquina. O aprendizado de máquina e o sistema de modelagem da empresa não são mais apenas itens essenciais, mas peças essenciais para manter tudo funcionando à medida que os recursos de seus produtos o direcionam. Eles atingiram uma escala onde a CPU não poderia mais ser suficiente, então eles olham para o Cubernates como um sistema para dimensioná-lo horizontalmente. O sistema deles está gerando bilhões de inferências por dia e eles fazem aceleração de GPU e usam 8 milhões de sites para construir um sistema de rastreador da web inteiro.

  • 00:05:00 Nesta seção, o palestrante discute sua experiência ao trabalhar com o ecossistema ONNX. Eles falam sobre a mudança do modelo de ponto flutuante de 32 bits para 16 bits, o que levou a um aumento de 3% na eficácia. No entanto, eles enfrentaram erros de conversão durante esse processo, o que resultou em uma saída inesperada do modelo ONNX. Eles também encontraram vazamentos de memória raros que resolveram substituindo várias implementações. O palestrante explica que eles investiram em robustez adicionando CI alimentado por GPU e configurando uma pilha lógica Prometheus avançada que monitora a latência de várias inferências e a latência de tokenização. Por fim, eles discutem seus planos futuros, que incluem melhorar a eficiência da GPU e adicionar mais modelos ao sistema criando uma configuração multi-GPU.
 

[FlexFlow Bootcamp 2020] FlexFlow Front-End Supports: TensorFlow Keras, PyTorch, ONNX, and more



[FlexFlow Bootcamp 2020] FlexFlow Front-End Supports: TensorFlow Keras, PyTorch, ONNX, and more

In this section of the video, the speaker discusses the FlexFlow Python API, which supports TensorFlow Keras, PyTorch, and ONNX. The process of creating and training a model involves adding operators to the model, compiling the model, creating data loaders, and initializing/training the model using the fit function or customized training procedures. The speakers also discuss support for Keras and PyTorch models in FlexFlow, as well as the ability to import pre-existing models through the ONNX intermediate representation. However, it is important to ensure consistency between the library used to build FlexFlow and the one used to build the ONNX python package.

  • 00:00:00 In this section of the video, the presenters introduce the front-end support in FlexFlow, specifically the Python API. The FlexFlow runtime is built on top of the Legion runtime, which is a task-based program system developed by researchers from Stanford University, NVIDIA, and Los Alamos. The Python API calls the C++ API through the cffi library, and a thin layer of Python API provides the same performance as using the C++ API. The presenters then discuss the steps to create a model with the FlexFlow Python API, which involves first creating a configuration file and then creating an input tensor in NCHW format. Additionally, they introduce support for Keras and ONNX.

  • 00:05:00 In this section of the video, the speaker discusses the process of creating and training a model using the FlexFlow Python API, which supports TensorFlow Keras, PyTorch, and ONNX. The speaker begins by explaining how to add operators to the model, such as the convolution 2D operator, which always takes an input tensor and returns an output tensor. The next step is to compile the model, which allocates tensors and optimizes the parallelization strategy and model fusion. Then, data loaders are created, and the model is initialized and trained using the fit function or customized training procedures. The speaker also highlights the similarities between the Python and C++ APIs and presents a list of operators supported by FlexFlow, with the ability to implement new operators upon request. Finally, the speaker discusses the support for Keras and PyTorch models in FlexFlow, with a demo scheduled for the hands-on exercise.

  • 00:10:00 In this section, the speakers discuss importing pre-existing models into FlexFlow, specifically through the ONNX intermediate representation. The ONNX package allows for models to be exported from other deep learning frameworks, such as PyTorch or TensorFlow, and imported into FlexFlow using the same file name. However, it is important to ensure that the library used to build FlexFlow is the same as the one used to build the ONNX python package. ONNX support is still a work in progress, and patches are welcome.
 

Learning Machine Learning com .NET, PyTorch e o ONNX Runtime



Learning Machine Learning com .NET, PyTorch e o ONNX Runtime

Neste vídeo sobre aprendizagem de aprendizado de máquina com .NET, PyTorch e o ONNX Runtime, os palestrantes apresentam o ONNX Runtime e explicam as diferentes etapas para treinar um modelo de aprendizado de máquina. Eles também demonstram como usar o formato ONNX com .NET para aprendizado profundo e discutem a importância de entender os hiperparâmetros e o método de otimização para previsões precisas do modelo. Os palestrantes também mostram como usar o tempo de execução ONNX para carregar um modelo e fazer previsões, bem como lidar com possíveis erros com um bloco try ao executar uma sessão. Além disso, eles discutem o uso do vetor de incerteza para mostrar a incerteza da IA em suas previsões e mencionam alguns setores onde a IA está sendo usada, como detecção de fraudes e sistemas de recomendação.

  • 00:00:00 Nesta seção do vídeo "Learning Machine Learning with .NET, PyTorch and the ONNX Runtime", os hosts apresentam o ONNX Runtime e como ele pode ser usado com .NET para deep learning. Eles explicam que depois que um modelo é treinado, a próxima etapa é trazer o arquivo do modelo para o projeto e obter a resposta. Eles usam o exemplo de reconhecimento de números e mostram um repositório Py Torch GitHub com um modelo de rede neural convolucional. Eles também destacam a utilidade do VS Code como um IDE para Python, com seus recursos e funcionalidades integrados.

  • 00:05:00 Nesta seção, o palestrante discute como eles usam dados de teste para treinar seu modelo de aprendizado de máquina e, depois de descobrir a melhor maneira de ajustar os botões, eles salvam o modelo e desligam a água. Eles demonstram um exemplo de modelo que treinaram com imagens de números de zero a nove, explicando que há dez elementos na saída porque as imagens são apenas de zero a nove. Eles também enfatizam a importância da função de perda, que mede a diferença entre o resultado previsto e o resultado real, e a precisão, que mede quantos resultados estão corretos ou incorretos. O palestrante sugere que escolher a forma correta do modelo, hiperparâmetros como taxa de aprendizado, tamanho do lote e épocas e testar diferentes conjuntos de dados são etapas essenciais para garantir que o algoritmo de aprendizado de máquina alcance alta precisão.

  • 00:10:00 Nesta seção do vídeo, os palestrantes discutem o uso do formato ONNX, descrito como o "PDF para redes neurais". Eles demonstram a criação de um arquivo ONNX e, em seguida, mostram como usá-lo em um aplicativo .NET usando o tempo de execução ONNX. O uso da variável global da sessão de inferência é explicado, a fim de evitar a necessidade de recarregar o arquivo para cada inferência. A importância de entender o método de otimização do modelo e hiperparâmetros também é destacada. Finalmente, as diferenças de tamanho entre os modelos são discutidas e como isso afeta a dificuldade de fazer previsões.

  • 00:15:00 Nesta seção, o palestrante explica como usar o tempo de execução ONNX para carregar um modelo e fazer previsões, especificamente no contexto da visão computacional. Eles demonstram usando um exemplo de desenho do número 3 e convertendo-o em uma imagem de 28 por 28 pixels, seguido pela criação de uma única matriz flutuante e tirando a média de todas as cores enquanto subtrai 255. O palestrante também discute o uso do tensor de t , um tipo de dados usado pelo tempo de execução ONNX, para indexação eficiente na memória e a importância de normalizar a imagem para entrada adequada. Eles também mostram como criar um tensor a partir do valor ONNX nomeado e como lidar com possíveis erros com um bloco try ao executar uma sessão.

  • 00:20:00 Nesta seção, os palestrantes estão demonstrando o processo de uso do PyTorch e .NET no reconhecimento de números usando aprendizado de máquina. O sistema identifica dígitos como matrizes e é treinado para identificar dígitos específicos usando algoritmos de otimização. O sistema não tem a capacidade de dizer "não sei" e, em vez disso, sempre dará uma resposta de melhor esforço, mesmo que esteja errada quando apresentada a uma entrada desconhecida. A saída final é um vetor de probabilidades, que é então transformado em um formato legível por humanos.

  • 00:25:00 Nesta seção, o palestrante discute como um vetor de incerteza pode ser usado para mostrar a incerteza da IA em suas previsões. O palestrante observa que esse recurso só está disponível se for treinado em um conjunto de dados de incerteza. O palestrante esclarece a diferença entre os estágios de treinamento e inferência no aprendizado de máquina e como eles são separados no ML.NET. O palestrante também menciona que o formato ONNX pode ser usado em aplicativos .NET e que geralmente é usado para conjuntos de dados mais complexos, como modelos de redes neurais. Por fim, o palestrante menciona que a IA está sendo usada atualmente em vários setores, como detecção de fraudes e sistemas de recomendação.
 

Como ler e escrever um modelo ONNX em ML.NET



Como ler e escrever um modelo ONNX em ML.NET

O vídeo começa apresentando o ONNX - um formato aberto criado pela Microsoft e pelo Facebook que permite a troca de modelos de aprendizado de máquina entre diferentes frameworks. O apresentador explica como o ML.NET, uma biblioteca de machine learning de plataforma cruzada e de código aberto, tem suporte para modelos ONNX. O vídeo então mostra como criar e exportar um modelo ML.NET para um arquivo ONNX, usando o pacote ONNX Runtime. Depois que o modelo ONNX é criado, o vídeo explica como usá-lo para fazer previsões sobre novos dados no ML.NET. No geral, o vídeo fornece um guia abrangente sobre como usar modelos ONNX com ML.NET para aplicativos de aprendizado de máquina.