O que é SynapseML?
O SynapseML (anteriormente conhecido como MMLSpark) é uma biblioteca de código aberto que simplifica a criação de pipelines de ML (aprendizado de máquina) massivamente escalonáveis. O SynapseML fornece APIs simples, redigidas e distribuídas para uma ampla variedade de diferentes tarefas de aprendizado de máquina, como análise de texto, visão, detecção de anomalias e muitas outras. O SynapseML é criado na estrutura de computação distribuída do Apache Spark e compartilha a mesma API que a biblioteca SparkML/MLLib, permitindo que você insira perfeitamente modelos SynapseML em fluxos de trabalho existentes do Apache Spark.
Com o SynapseML, você pode criar sistemas escalonáveis e inteligentes para resolver desafios em domínios como detecção de anomalias, pesquisa visual computacional, aprendizado profundo, análise de texto e outros. O SynapseML pode treinar e avaliar modelos em clusters de computadores de nó único, de vários nós e elasticamente redimensionáveis. Isso permite dimensionar seu trabalho sem desperdiçar recursos. O SynapseML é utilizável em Python, R, Scala, Java e .NET. Além disso, sua API se abstrai sobre uma ampla variedade de bancos de dados, sistemas de arquivos e armazenamentos de dados de nuvem para simplificar experimentos, independentemente de onde os dados estejam localizados.
O SynapseML requer Scala 2.12, Spark 3.0+ e Python 3.6+.
Principais recursos do SynapseML
Uma API unificada para criar, treinar e pontuar 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 estruturas de aprendizado de máquina diferentes em uma só API que é escalonável, independente de dados e linguagem e funciona para aplicativos em lote, de streaming e de serviços.
Uma API unificada padroniza muitas ferramentas, estruturas, algoritmos e simplifica a experiência de aprendizado de máquina distribuído. Ele permite aos desenvolvedores compor rapidamente estruturas de aprendizado de máquina diferentes, manter o código limpo e habilitar fluxos de trabalho que exigem mais de uma estrutura. Por exemplo, fluxos de trabalho, como aprendizado supervisionado pela Web ou criação do mecanismo de pesquisa, exigem vários serviços e estruturas. O SynapseML protege os usuários dessa complexidade extra.
Use 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 os Serviços de IA do Azure, a fim de resolver rapidamente desafios de IA em larga escala relacionados a negócios e pesquisas. O SynapseML permite que os desenvolvedores insiram mais de 50 serviços ML de última geração diretamente nos sistemas e nos bancos de dados deles. Esses algoritmos prontos para o uso podem analisar uma ampla variedade de documentos, transcrever conversas de vários palestrantes em tempo real e traduzir texto para mais de 100 idiomas diferentes. Para obter mais exemplos de como usar a IA pré-criada para resolver tarefas rapidamente, consulte os Exemplos de serviço "cognitivo" 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 as respostas comuns de limitação para certificar-se de que os trabalhos não sobrecarreguem os serviços de back-end. Além disso, ele usa retiradas exponenciais para lidar com conexões de rede não confiáveis e respostas com falha. Por fim, 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 os computadores de trabalho enviem solicitações enquanto aguardam uma resposta do servidor e podem gerar um aumento de dez vezes na taxa de transferência.
Ampla compatibilidade do ecossistema com o ONNX
O SynapseML permite que os desenvolvedores usem modelos de vários ecossistemas de ML diferentes por meio da estrutura ONNX (Open Neural Network Exchange). Com essa integração, você pode executar uma ampla variedade de modelos clássicos e de aprendizado profundo 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 o 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, como também permite a inferência distribuída em uma ampla variedade de ecossistemas de ML. Em particular, as ferramentas ONNXMLTools convertem modelos do TensorFlow, scikit-learn, scikit-learn, Core ML, LightGBM, XGBoost, H2O e do PyTorch para ONNX a fim de proporcionar inferência acelerada e distribuída ao usar o SynapseML.
Criar sistemas de IA responsáveis
Depois de criar um modelo, é imperativo que os pesquisadores e engenheiros entendam suas limitações e seu comportamento antes de implantá-lo. O SynapseML ajuda desenvolvedores e pesquisadores a criarem sistemas de IA responsáveis introduzindo novas ferramentas que revelam por que os modelos fazem determinadas previsões e como melhorar o conjunto de dados de treinamento para eliminar desvios. O SynapseML acelera drasticamente o processo de compreensão do modelo treinado de um usuário, habilitando os desenvolvedores a distribuir a computação por centenas de computadores. Mais especificamente, o SynapseML inclui implementações distribuídas de SHAP (Explicações Aditivas Shapley) e LIME (Explicações Agnósticas de Modelo Localmente Interpretáveis) para explicar as previsões dos modelos de visão, texto e tabela. Ele também inclui ferramentas como ICE (Expectativa Condicional Individual) e análise de dependência parcial para conjuntos de dados tendenciosos reconhecidos.
Suporte empresarial no Azure Synapse Analytics
O SynapseML geralmente está disponível no Azure Synapse Analytics com suporte empresarial. Você pode criar pipelines de aprendizado de máquina em larga escala usando os Serviços de IA do Azure, LightGBM, ONNX e outros recursos selecionados do SynapseML. Ele inclui até modelos para protótipo rápido de sistemas de machine learning distribuídos, como mecanismos de pesquisa visual, pipelines de manutenção preditiva, tradução de documentos e muito mais.
Próximas etapas
Para saber mais sobre o SynapseML, consulte SynapseML: uma biblioteca de aprendizado de máquina simples, multilíngue e maciçamente paralela.