O que é o SynapseML?

O SynapseML (anteriormente conhecido como MMLSpark) é uma biblioteca open source que simplifica a criação de pipelines de machine learning (ML) extremamente dimensionáveis. O SynapseML fornece APIs simples, compostas e distribuídas para uma grande variedade de diferentes tarefas de machine learning, como análise de texto, visão, deteção de anomalias, entre muitas outras. O SynapseML baseia-se na arquitetura de computação distribuída do Apache Spark e partilha a mesma API que a biblioteca SparkML/MLLib, o que lhe permite incorporar facilmente modelos SynapseML em fluxos de trabalho existentes do Apache Spark.

Com o SynapseML, pode criar sistemas dimensionáveis e inteligentes para resolver desafios em domínios como deteção de anomalias, imagem digitalizada, aprendizagem profunda, análise de texto, entre outros. O SynapseML pode preparar e avaliar modelos em clusters de computadores de nó único, de vários nós e de redimensionamento elástico. Isto permite-lhe dimensionar o seu trabalho sem desperdiçar recursos. O SynapseML pode ser utilizado em Python, R, Scala, Java e .NET. Além disso, a sua API abstrai uma grande variedade de bases de dados, sistemas de ficheiros e arquivos de dados na cloud para simplificar as experimentações, independentemente da localização dos dados.

O SynapseML requer Scala 2.12, Spark 3.0+e Python 3.6 ou superior.

Principais funcionalidades do SynapseML

Uma API unificada para criar, preparar e classificar modelos

O SynapseML oferece uma API unificada que simplifica o desenvolvimento de programas distribuídos tolerantes a falhas. Em particular, o SynapseML expõe muitas arquiteturas de machine learning diferentes numa única API que é dimensionável, agnóstica em termos de dados e linguagem e funciona para aplicações de lote, transmissão em fluxo e serviço.

Uma API unificada uniformiza muitas ferramentas, arquiteturas, algoritmos e simplifica a experiência de machine learning distribuída. Permite aos programadores compor rapidamente estruturas de machine learning diferentes, manter o código limpo e ativar fluxos de trabalho que requerem mais do que uma arquitetura. Por exemplo, os fluxos de trabalho, como a aprendizagem supervisionada pela Web ou a criação de motores de busca, requerem vários serviços e arquiteturas. O SynapseML protege os utilizadores desta complexidade extra.

Utilizar modelos inteligentes pré-criados

Muitas ferramentas no SynapseML não necessitam de um conjunto de dados de preparação com etiquetas grandes. Em vez disso, o SynapseML fornece APIs simples para serviços inteligentes pré-criados, como os serviços de IA do Azure, para resolver rapidamente desafios de IA em larga escala relacionados com a empresa e a investigação. O SynapseML permite que os programadores incorporem mais de 50 serviços ML de última geração diretamente nos seus sistemas e bases de dados. Estes algoritmos prontos a utilizar podem analisar uma grande variedade de documentos, transcrever conversações de vários orador em tempo real e traduzir texto para mais de 100 idiomas diferentes. Para obter mais exemplos de como utilizar a IA pré-criada para resolver tarefas rapidamente, veja os exemplos "cognitivos" do SynapseML.

Para tornar a integração do SynapseML nos serviços de IA do Azure rápida e eficiente, o SynapseML introduz muitas otimizações para fluxos de trabalho orientados para o serviço. Em particular, o SynapseML analisa automaticamente as respostas comuns de limitação para garantir que as tarefas não sobrecarregam os serviços de back-end. Além disso, utiliza recuos exponenciais para processar ligações de rede pouco fiáveis e respostas falhadas. Por fim, as máquinas de trabalho do Spark mantêm-se ocupadas com novos primitivos de paralelismo assíncronos para o Spark. O paralelismo assíncrono permite que as máquinas de trabalho enviem pedidos enquanto aguardam uma resposta do servidor e podem gerar um aumento dez vezes superior no débito.

Ampla compatibilidade de ecossistemas com a ONNX

O SynapseML permite que os programadores utilizem modelos de muitos ecossistemas de ML diferentes através da arquitetura Open Neural Network Exchange (ONNX). Com esta integração, pode executar uma grande variedade de modelos clássicos e de aprendizagem profunda em escala com apenas algumas linhas de código. O SynapseML processa automaticamente a distribuição de modelos ONNX para nós de trabalho, criação de batches e colocação em memória intermédia de dados de entrada para débito elevado e agendamento de trabalho em aceleradores de hardware.

Trazer o ONNX para o Spark não só ajuda os programadores a dimensionar modelos de aprendizagem profunda, como também permite a inferência distribuída através de uma grande variedade de ecossistemas de ML. Em particular, a ONNXMLTools converte modelos do TensorFlow, scikit-learn, Core ML, LightGBM, XGBoost, H2O e PyTorch para ONNX para inferência acelerada e distribuída com o SynapseML.

Criar sistemas de IA responsáveis

Depois de criar um modelo, é imperativo que os investigadores e engenheiros compreendam as suas limitações e comportamentos antes da implementação. O SynapseML ajuda os programadores e investigadores a criar sistemas de IA responsáveis ao introduzir novas ferramentas que revelam porque é que os modelos fazem determinadas predições e como melhorar o conjunto de dados de preparação para eliminar preconceitos. O SynapseML acelera drasticamente o processo de compreensão do modelo preparado de um utilizador ao permitir que os programadores distribuam a computação por centenas de máquinas. Mais especificamente, o SynapseML inclui implementações distribuídas de Shapley Additive Explanations (SHAP) e Explicações de Model-Agnostic Interpretáveis Localmente (LIME) para explicar as predições de modelos tabulares, de texto e de visão. Também inclui ferramentas como a Expectativa Condicional Individual (ICE) e a análise parcial de dependências para conjuntos de dados tendenciosos reconhecidos.

Suporte empresarial no Azure Synapse Analytics

O SynapseML está geralmente disponível no Azure Synapse Analytics com suporte empresarial. Pode criar pipelines de machine learning em grande escala com serviços de IA do Azure, LightGBM, ONNX e outras funcionalidades do SynapseML selecionadas. Inclui até modelos para criar rapidamente protótipos de sistemas de machine learning distribuídos, como motores de busca visual, pipelines de manutenção preditiva, tradução de documentos e muito mais.

Passos seguintes