O Open Neural Network Exchange (ONNX, ˈɒnɪks, Troca de Redes Neurais Abertas) é um formato de arquivo de código aberto de modelo de aprendizado de máquina intercambiável - multi framework e multi plataformas - implementado por empresas de tecnologia e organizações de pesquisa que estabelecem padrões abertos para representar um algoritmo de aprendizado de máquina e ferramenta de software em um formato padrão para representar modelos de aprendizado de máquina, que podem ser usadas em diferentes estágios do processo de desenvolvimento.
História O ONNX foi inicialmente chamado de Toffee, e foi desenvolvido pela equipe do PyTorch e do Facebook. Em setembro de 2017, foi renomeado para ONNX e anunciado pelo Facebook e pelaMicrosoft. Posteriormente a: IBM, Huawei, Intel, AMD, Arm e Qualcomm anunciaram suporte à esta iniciativa.
Em outubro de 2017, a Microsoft anunciou que iria adicionar o seu Cognitive Toolkit e a plataforma Project Brainwave à iniciativa. O Cognitive Toolkit é uma estrutura de código aberto usada para construir redes neurais do tipo profunda.
Em novembro de 2019, o ONNX foi aceito como projeto de pós-graduação na Linux Foundation AI.
Em outubro de 2020, a Zetane Systems tornou-se membro do ecossistema ONNX.
A Microsoft desenvolveu a biblioteca ONNX Runtime, uma biblioteca de inferência e treinamento de código aberto que implementa o modelo no formato ONNX, com inferência até 17 vezes mais rápida e treinamento até 1,4 vezes mais rápido em CPUs, GPUs e, aceleradores de hardware personalizados. O ONNX Runtime é escalável e multiplataforma plataformas: Windows, Linux e MacOS.
Características O ONNX é um formato intercambiável permite os desenvolvedores de IA usar o mesmo modelo com vários tipos de frameworks, estruturas de treinamento e, ferramentas de learning. E também permite usar o mesmo modelo em várias plataformas (nuvem, dispositivo móvel, desktop, etc). O modelo será integrado ao código fonte de programação, que permite usar o machine learning em seus aplicativos.
Interoperabilidade da estrutura Permitir que os desenvolvedores movam modelos de aprendizado de máquina entre diferentes estruturas, que podem ser usadas em diferentes estágios do processo de desenvolvimento, como treinamento, projeto de arquitetura ou implantação em dispositivos móveis. Este formato de arquivo é compatível com Cognitive, Caffe2, PyTorch, TensorFlow e, scikit-learn.
Otimização compartilhada Fornecer uma representação comum que possa ser usada por fornecedores de hardware e outros desenvolvedores para aplicar otimizações a modelos de redes neurais artificiais em várias estruturas de aprendizado de máquina.
Conteúdo O ONNX fornece definições de um modelo de grafo de computação extensível, operadores integrados e tipos de dados padrão, com foco na inferência (avaliação lógica). O formato do contêiner é o Protocol Buffers/protobuf (intercâmbio de informações estruturadas).
Cada grafo de fluxo de dados de computação é uma lista de nós que formam um grafo acíclico . Os nós têm entradas e saídas. Cada nó é uma chamada a um operador. Os metadados documentam o grafo. Os operadores integrados devem estar disponíveis em cada framework compatível com ONNX.
Os modelos podem ser treinados em uma única estrutura, como PyTorch ou TensorFlow, e então exportados para o formato ONNX. Esse formato permite que os modelos sejam transferidos de uma estrutura de treinamento para outros ambientes para teste ou implantação. Uma vez que um modelo neste formato pode ser executado em diferentes sistemas de tempo de execução ou em várias plataformas de hardware, como GPU ou aceleradores de IA especializados. O uso de um formato comum permite que a mesma representação do modelo seja usada em vários sistemas e estruturas.
MODEL = onnxruntime.InferenceSession("/home/models/my_model.onnx")
MODEL.run(None, {"image": image_np, "text": text_np})
Q-learning Agente inteligente PicklingTools — uma coleção de ferramentas de código aberto que permite que sistemas C++ e Python compartilhem informações de forma rápida e fácil.
Referências
Ligações externas
Comparação de software de aprendizado profundo (em inglês)
Categoria:Software de 2017 Categoria:Software usando a licença Apache Categoria:Aprendizagem de máquina Categoria:Software de matemática Categoria:Tecnologia da informação