Qual é SynapseML?
SynapseML (anteriormente conhecido como MMLSpark), é uma biblioteca de código aberto que simplifica a criação de pipelines de aprendizado de máquina (ML) massivamente escaláveis. O SynapseML fornece APIs simples, combináveis e distribuídas para uma ampla variedade de diferentes tarefas de aprendizado de máquina, como análise de texto, visão, deteção de anomalias e muitas outras. O SynapseML é construído na estrutura de computação distribuída Apache Spark e compartilha a mesma API que a biblioteca SparkML/MLLib, permitindo que você incorpore perfeitamente modelos SynapseML em fluxos de trabalho existentes do Apache Spark.
Com o SynapseML, você pode criar sistemas escaláveis e inteligentes para resolver desafios em domínios como deteção de anomalias, visão computacional, aprendizado profundo, análise de texto e outros. O SynapseML pode treinar e avaliar modelos em clusters de computadores de nó único, multinó e elasticamente redimensionáveis. Isto permite-lhe escalar o seu trabalho sem desperdiçar recursos. SynapseML é utilizável em Python, R, Scala, Java e .NET. Além disso, sua API abstrai uma ampla variedade de bancos de dados, sistemas de arquivos e armazenamentos de dados em nuvem para simplificar os experimentos, não importa onde os dados estejam localizados.
SynapseML requer Scala 2.12, Spark 3.0+ e Python 3.6+.
Principais características do SynapseML
Uma API unificada para criar, treinar e pontuar modelos
SynapseML oferece uma API unificada que simplifica o desenvolvimento de programas distribuídos tolerantes a falhas. Em particular, o SynapseML expõe muitas estruturas diferentes de aprendizado de máquina sob uma única API que é escalável, agnóstica em dados e linguagem e funciona para aplicativos em lote, streaming e serviço.
Uma API unificada padroniza muitas ferramentas, estruturas, algoritmos e simplifica a experiência de aprendizado de máquina distribuído. Ele permite que os desenvolvedores componham rapidamente estruturas de aprendizado de máquina diferentes, mantém o código limpo e permite fluxos de trabalho que exigem mais de uma estrutura. Por exemplo, fluxos de trabalho como aprendizagem supervisionada pela Web ou criação de mecanismos de pesquisa exigem vários serviços e estruturas. SynapseML protege os usuários dessa complexidade extra.
Utilize modelos inteligentes pré-construídos
Muitas ferramentas no SynapseML não exigem um grande conjunto de dados de treinamento rotulado. Em vez disso, o SynapseML fornece APIs simples para serviços inteligentes pré-criados, como serviços de IA do Azure, para resolver rapidamente desafios de IA em grande escala relacionados a negócios e pesquisa. O SynapseML permite que os desenvolvedores incorporem mais de 50 diferentes serviços de ML de última geração diretamente em seus sistemas e bancos de dados. Esses algoritmos prontos para uso podem analisar uma ampla variedade de documentos, transcrever conversas com vários falantes em tempo real e traduzir texto para mais de 100 idiomas diferentes. Para obter mais exemplos de como usar IA pré-construída para resolver tarefas rapidamente, consulte os exemplos "cognitivos" do SynapseML.
Para tornar a integração do SynapseML com os serviços de IA do Azure rápida e eficiente, o SynapseML introduz muitas otimizações para fluxos de trabalho orientados a serviços. Em particular, o SynapseML analisa automaticamente respostas comuns de limitação para garantir que os trabalhos não sobrecarreguem os serviços de back-end. Além disso, ele usa back-offs exponenciais para lidar com conexões de rede não confiáveis e respostas com falha. Finalmente, as máquinas de trabalho do Spark permanecem ocupadas com novas primitivas de paralelismo assíncrono para o Spark. O paralelismo assíncrono permite que as máquinas de trabalho enviem solicitações enquanto aguardam uma resposta do servidor e pode gerar um aumento de dez vezes na taxa de transferência.
Ampla compatibilidade do ecossistema com ONNX
O SynapseML permite que os desenvolvedores usem modelos de muitos ecossistemas de ML diferentes por meio da estrutura Open Neural Network Exchange (ONNX). Com essa integração, você pode executar uma ampla variedade de modelos clássicos e de aprendizagem profunda em escala com apenas algumas linhas de código. O SynapseML lida automaticamente com a distribuição de modelos ONNX para nós de trabalho, envio em lote e buffer de dados de entrada para alta taxa de transferência e agendamento de trabalho em aceleradores de hardware.
Trazer o ONNX para o Spark não só ajuda os desenvolvedores a escalar modelos de aprendizado profundo, mas também permite inferência distribuída em uma ampla variedade de ecossistemas de ML. Em particular, ONNXMLTools converte modelos de TensorFlow, scikit-learn, Core ML, LightGBM, XGBoost, H2O e PyTorch para ONNX para inferência acelerada e distribuída usando SynapseML.
Crie sistemas de IA responsáveis
Depois de construir um modelo, é imperativo que os pesquisadores e engenheiros entendam suas limitações e comportamento antes da implantação. SynapseML ajuda desenvolvedores e pesquisadores a construir sistemas de IA responsáveis, introduzindo novas ferramentas que revelam por que os modelos fazem certas previsões e como melhorar o conjunto de dados de treinamento para eliminar vieses. O SynapseML acelera drasticamente o processo de compreensão do modelo treinado de um usuário, permitindo que os desenvolvedores distribuam computação em centenas de máquinas. Mais especificamente, SynapseML inclui implementações distribuídas de Shapley Additive Explanations (SHAP) e Locally Interpretable Model-Agnostic Explanations (LIME) para explicar as previsões de visão, texto e modelos tabulares. Também inclui ferramentas como Expectativa Condicional Individual (ICE) e análise de dependência parcial 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. Você pode criar pipelines de aprendizado de máquina em grande escala usando os serviços de IA do Azure, LightGBM, ONNX e outros recursos SynapseML selecionados. Ele ainda inclui modelos para prototipar rapidamente sistemas de aprendizado de máquina distribuídos, como mecanismos de pesquisa visual, pipelines de manutenção preditiva, tradução de documentos e muito mais.
Próximos passos
Para saber mais sobre o SynapseML, consulte SynapseML: uma biblioteca de aprendizado de máquina simples, multilíngue e massivamente paralela.