Integração de código aberto com projetos de Aprendizagem automática Azure

Você pode treinar, implementar e gerir o processo de aprendizagem automática de ponta a ponta em Azure Machine Learning usando bibliotecas e plataformas de aprendizagem de máquinas python de código aberto. Utilize ferramentas de desenvolvimento, como os Jupyter Notebooks e o Visual Studio Code, para alavancar os seus modelos e scripts existentes no Azure Machine Learning.

Neste artigo, saiba mais sobre estas bibliotecas e plataformas de código aberto.

Treine modelos de aprendizagem automática de código aberto

O processo de formação de machine learning envolve a aplicação de algoritmos aos seus dados de forma a conseguir uma tarefa ou resolver um problema. Dependendo do problema, pode escolher diferentes algoritmos que melhor se adaptem à tarefa e aos seus dados. Para obter mais informações sobre os diferentes ramos da aprendizagem automática, consulte o artigo de aprendizagem profunda vs machine learning e a folha de batota do algoritmo de aprendizagem automática.

Preservar a privacidade dos dados usando privacidade diferencial

Para treinar um modelo de aprendizagem automática, é preciso dados. Às vezes esses dados são sensíveis, e é importante ter certeza de que os dados são seguros e privados. A privacidade diferencial é uma técnica de preservação da confidencialidade da informação num conjunto de dados. Para saber mais, consulte o artigo sobre a preservação da privacidade dos dados.

Kits de ferramentas de privacidade diferenciais de código aberto como o SmartNoise ajudam-no a preservar a privacidade dos dados em soluções Azure Machine Learning.

Aprendizagem clássica de máquinas: scikit-learn

Para tarefas de treino envolvendo algoritmos clássicos de aprendizagem de máquinas tarefas tais classificação, agrupamento e regressão você pode usar algo como Scikit-learn. Para aprender a treinar um modelo de classificação de flores, veja como treinar com o artigo Scikit-learn.

Redes neurais: PyTorch, TensorFlow, Keras

Algoritmos de aprendizagem automática de código aberto conhecidos como redes neurais, um subconjunto de aprendizagem automática, são úteis para treinar modelos de aprendizagem profunda em Azure Machine Learning.

Os quadros de aprendizagem profunda de código aberto e os guias de como fazer incluem:

Treinar um modelo de aprendizagem profunda do zero requer muitas vezes grandes quantidades de tempo, dados e recursos de computação. Você pode encurtar o processo de treino usando a aprendizagem de transferência. A aprendizagem de transferência é uma técnica que aplica conhecimentos adquiridos desde a resolução de um problema para um problema diferente, mas relacionado. Isto significa que pode tomar um modelo existente reutilizá-lo. Veja o artigo de aprendizagem profunda vs machine learning para saber mais sobre a aprendizagem de transferências.

Aprendizagem de reforço: Ray RLLib

A aprendizagem do reforço é uma técnica de inteligência artificial que treina modelos usando ações, estados e recompensas: Os agentes de aprendizagem de reforço aprendem a tomar um conjunto de ações predefinidas que maximizam as recompensas especificadas com base no estado atual do seu ambiente.

O projeto Ray RLLib tem um conjunto de funcionalidades que permitem uma alta escalabilidade ao longo do processo de treino. O processo iterativo é simultaneamente intensivo em termos de tempo e recursos, à medida que os agentes de aprendizagem de reforço tentam aprender a forma ideal de alcançar uma tarefa. Ray RLLib também apoia nativamente estruturas de aprendizagem profunda como TensorFlow e PyTorch.

Para aprender a usar Ray RLLib com Azure Machine Learning, veja como treinar um modelo de aprendizagem de reforço.

Desempenho do modelo monitor: TensorBoard

A formação de um único ou vários modelos requer a visualização e inspeção das métricas desejadas para garantir que o modelo funciona como esperado. Você pode usar o TensorBoard em Azure Machine Learning para rastrear e visualizar métricas de experiência

Quadros para modelos interpretáveis e justos

Os sistemas de aprendizagem automática são utilizados em diferentes áreas da sociedade, como a banca, a educação e os cuidados de saúde. Como tal, é importante que estes sistemas sejam responsáveis pelas previsões e recomendações que fazem para evitar consequências não intencionais.

Quadros de código aberto como InterpretML e Fairlearn https://github.com/fairlearn/fairlearn) (trabalhar com a Azure Machine Learning para criar modelos de aprendizagem automática mais transparentes e equitativos.

Para obter mais informações sobre como construir modelos justos e interpretacionais, consulte os seguintes artigos:

Implementação do modelo

Uma vez treinados e prontos para a produção, tem de escolher como implantá-lo. A Azure Machine Learning fornece vários alvos de implantação. Para mais informações, consulte o local e como implementar o artigo.

Padriizar formatos de modelo com ONNX

Após o treino, o conteúdo do modelo, como parâmetros aprendidos, é serializado e guardado num ficheiro. Cada quadro tem o seu próprio formato de serialização. Ao trabalhar com diferentes quadros e ferramentas, significa que tem de implementar modelos de acordo com os requisitos do quadro. Para normalizar este processo, pode utilizar o formato Open Neural Network Exchange (ONNX). ONNX é um formato de código aberto para modelos de inteligência artificial. A ONNX apoia a interoperabilidade entre quadros. Isto significa que você pode treinar um modelo em um dos muitos quadros populares de aprendizagem de máquinas como PyTorch, convertê-lo em formato ONNX, e consumir o modelo ONNX em um quadro diferente como ML.NET.

Para obter mais informações sobre o ONNX e como consumir os modelos ONNX, consulte os seguintes artigos:

Pacote e implante de modelos como contentores

Tecnologias de contentores como o Docker são uma forma de implementar modelos como serviços web. Os contentores fornecem uma plataforma e uma forma agnóstica de recursos para construir e orquestrar ambientes de software reprodutíveis. Com estas tecnologias centrais, pode utilizar ambientes pré-configurados, imagens de recipientes pré-configurados ou personalizadas para implementar os seus modelos de aprendizagem automática, como clusters Kubernetes. Para fluxos de trabalho intensivos da GPU, pode utilizar ferramentas como o servidor de inferência NVIDIA Triton para fazer previsões usando GPUs.

Implementações seguras com encriptação homomórfica

A segurança das implementações é uma parte importante do processo de implantação. Para implementar serviços de inferenculação encriptados,utilize a encrypted-inference biblioteca Python de código aberto. O encrypted inferencing pacote fornece encadernações com base no Microsoft SEAL,uma biblioteca de encriptação homomórfica.

Operações de Aprendizagem automática (MLOps)

Machine Learning Operations (MLOps), comumente pensado como DevOps para machine learning permite-lhe construir fluxos de trabalho de aprendizagem automática mais transparentes, resilientes e reprodutíveis. Veja o que é artigo da MLOps para saber mais sobre MLOps.

Utilizando práticas de DevOps como integração contínua (CI) e implementação contínua (CD), pode automatizar o ciclo de vida de aprendizagem automática de ponta a ponta e capturar dados de governação à sua volta. Pode definir o seu pipeline de aprendizagem automática de CI/CD nas ações do GitHub para executar tarefas de formação e implantação de machine learning do Azure Machine Learning.

A captura de dependências de software, métricas, metadados, dados e modelação são uma parte importante do processo de MLOps, a fim de construir oleodutos transparentes, reprodutíveis e auditáveis. Para esta tarefa, pode utilizar o MLFlow em Machine Learning Azure, bem como ao treinar modelos de aprendizagem automática em Azure Databricks. Também pode implementar os modelos MLflow como um serviço web Azure.