Apache DolphinScheduler combinado com Ray AIR para melhorar a eficiência do treinamento do modelo de IA

guia

Com o advento da era AIGC, tecnologias de aprendizado de máquina também estão surgindo, como o nascimento de chatgpt e modelos de difusão, trazendo novas oportunidades e desafios para a inteligência artificial. Para empresas e indivíduos, se não conseguirem acompanhar essa onda de tendências, podem ser eliminados. Portanto, como pesquisar e aplicar a nova tecnologia de aprendizado de máquina tornou-se o foco de atenção de todas as esferas da vida. Como um excelente sistema de agendamento de código aberto, o Apache DolphinScheduler, combinado com o Ray AI Runtime, pode criar fluxos de trabalho de aprendizado de máquina reutilizáveis, melhorar a eficiência e a reutilização do trabalho de aprendizado de máquina e ajudar as empresas a lidar melhor com os desafios da era AIGC.

Neste artigo, apresentaremos as vantagens do Apache DolphinScheduler e do Ray AI Runtime e como combiná-los para criar um fluxo de trabalho de aprendizado de máquina reutilizável. Ele visa fornecer algumas ideias e orientações para os profissionais de aprendizado de máquina para ajudá-los a lidar melhor com os desafios da era AIGC.

visão geral

Apache DolphinSchedulerName

O Apache DolphinScheduler é um sistema de código aberto distribuído e facilmente extensível para agendamento de tarefas de fluxo de trabalho DAG visual. Aplicável a cenários de nível empresarial, fornece uma solução para visualizar tarefas operacionais, fluxos de trabalho e processos de processamento de dados ao longo do ciclo de vida.

O Apache DolphinScheduler foi projetado para resolver dependências complexas de tarefas de big data e fornecer aplicativos com dados e relacionamentos em várias orquestrações de OPS. Resolva o problema de que o ETL de P&D de dados depende da complexidade e não pode monitorar o status de integridade da tarefa. Apache DolphinScheduler monta tarefas em uma forma de streaming DAG (Directed Acyclic Graph, DAG), que pode monitorar o status de execução de tarefas em tempo hábil e oferece suporte a operações como repetição, falha de recuperação de nó especificado, suspensão, recuperação e encerramento de tarefas .

Apache DolphinScheduler tem as seguintes vantagens sobre outras ferramentas:

  • Alta escalabilidade, suporte multinuvem, multiambiente, cluster com suporte para dimensionamento elástico

  • Oferece suporte a mais de 30 tipos de tarefas do sistema e oferece suporte a extensões personalizadas

  • Visualização de suporte, Python, configuração de API, fácil de usar

  • Poderosos recursos de agendamento, suporte a gatilho de calendário de tempo, gatilho de dependência, suporte a dependência entre projetos e função multilocatário

  • Design distribuído para garantir a estabilidade do sistema

  • Design de permissão simples, suporte a LDAP

  • Bom desempenho, pode suportar milhões

  • A comunidade é muito ativa, pelo menos uma versão é lançada todo mês

04f6c723c45024522fe30017dd5cd8de.png
Apache DolphinSchedulerName

Raio LIGADO

O Ray AI Runtime (AIR) é um conjunto de ferramentas escalável e unificado para aplicativos de aprendizado de máquina. O AIR oferece a capacidade de dimensionar facilmente cargas de trabalho individuais, fluxos de trabalho de ponta a ponta e estruturas de ecossistema populares usando a linguagem de programação Python.

outside_default.png
Raio LIGADO

O AIR se baseia no melhor das bibliotecas de Ray, incluindo pré-processamento, treinamento, ajuste, pontuação, serviço e aprendizado de reforço, criando um ecossistema para as necessidades de integração. Pré-processamento, treinamento, ajuste, pontuação, saque e aprendizado por reforço

  • Pré-processamento : o pré-processamento de dados é uma técnica comum para converter dados brutos em recursos para modelos de aprendizado de máquina. O Ray AIR fornece vários pré-processadores e interfaces que podem ser aplicados a dados de treinamento offline e dados de inferência online.

  • Treinamento : o Ray Train pode expandir o treinamento do modelo de estruturas comuns de aprendizado de máquina, como Torch, XGBoost e TensorFlow, e integra-se perfeitamente com as bibliotecas Ray, como Ray Tune e Predictors.

  • Tuning : Tune é uma biblioteca Python para realizar experimentos e ajustar hiperparâmetros em qualquer escala. Usando algoritmos avançados, como treinamento baseado em população (PBT) e HyperBand/ASHA, você pode ajustar suas estruturas de ML favoritas, como PyTorch, XGBoost, Scikit-Learn, TensorFlow e Keras.

  • Pontuação : Depois de concluir o treinamento do modelo, o Ray AIR Predictor pode ser usado para inferência e previsão.

  • Servindo : Ray Serve é uma biblioteca de serviço de modelo extensível para construir APIs de inferência online. Ele oferece suporte a uma variedade de estruturas, concentrando-se em fortes recursos de combinação de modelos, criando serviços de inferência complexos e desenvolvendo o Ray, que pode facilmente expandir um grande número de máquinas.

  • Aprendizado por Reforço : RLlib é uma biblioteca de código aberto para aprendizado por reforço que oferece suporte a uma variedade de cargas de trabalho de RL altamente distribuídas e de nível de produção e fornece uma API unificada e simples para uma ampla variedade de aplicativos do setor. Se você deseja treinar agentes em um ambiente multiagente, usando apenas conjuntos de dados off-line ou usando um simulador conectado externamente, o RLlib fornece uma solução fácil de usar.

Crie fluxos de trabalho de aprendizado de máquina reutilizáveis

Neste exemplo, criamos um fluxo de trabalho de aprendizado de máquina reutilizável usando Apache DolphinScheduler e Ray AIR.

O caso de exemplo vem do treinamento e serviço de dados tabulares com Keras e Ray AIR.

Todo o código está disponível aqui dolphinscheduler-ray-example

Iniciar Apache Dolphinscheduler

Execute o seguinte comando para iniciar o DolphinScheduler Standalone

docker run --name dolphinscheduler-standalone-server -p 12345:12345 -p 25333:25333 -p 8265:8265 -d jalonzjg/dolphinscheduler-standalone-server:3.1.4-ray

Altere o comando para iniciar as seguintes portas

  • 12345: Usado para acessar a IU do DolphinScheduler

  • 25333: Para enviar fluxos de trabalho usando o SDK pydolphinscheduler

  • 8265: painel de raios

Em seguida, podemos fazer login http://<ip>:12345/dolphinscheduler/uipara acessar o Apache Dolphinscheduler

  • Nome de usuário: administrador

  • Senha: dolphinscheduler123

Criar um fluxo de trabalho

DolphinScheduler pode usar python para enviar fluxos de trabalho, execute o seguinte comando, você precisa estar no diretório dolphinscheduler-ray-example

python3 -m pip install -i https://pypi.org/simple/ apache-dolphinscheduler==4.0.0
export PYDS_HOME=./
python3 pyds-workflow.py

Depois de fazer login no DolphinScheduler, podemos ver os seguintes itens

7083d65a9bf6b3e1fdcc4b0decf9bee4.png

Depois de clicar no projeto, podemos ver 3 fluxos de trabalho

  • start-ray: inicia um cluster ray no docker

  • stop-ray: pare o cluster do raio

  • pipeline: treine o modelo e implante o modelo no cluster ray local

30ba766d337398a93d5aae689777117b.png

cluster de raio inicial

c98c90043e9f3ce40d983e14737cde74.png

Em seguida, podemos fazer login no painel do ray <ip>:8265visitando

1c0a8e8fd406bf1af91cc35610e76e3f.png

executar pipeline

4de7bcf34f3bc870ff7b3f6d87871883.png

parâmetros de inicialização

  • tamanho do batch

  • época

Para o fluxo de trabalho definido pelo DolphinScheduler, você pode criar um fluxo de trabalho de aprendizado de máquina reutilizável por meio de parâmetros, sendo necessário apenas extrair os parâmetros da tarefa.

exibição de tarefa

Em seguida, podemos visualizar as tarefas correspondentes na instância do fluxo de trabalho

  • train_model: modelo de treinamento, incluindo obtenção de dados e modelo de treinamento, consulte train_model.pyo arquivo para obter detalhes

  • servindo: Implante o modelo, use o Ray AIR Predictor para implantar rapidamente o modelo, consulte serving.pyo arquivo para obter detalhes

  • test_serving: modelo para testar a implantação, consulte test_serving.pya documentação para obter detalhes

2dbbb659af0356fcffaf137790a2de3e9.png

Em seguida, podemos clicar duas vezes na tarefa correspondente para visualizar o log da tarefa, conforme mostrado na figura abaixo

beab4f8d5a75ebaa0efc2f8cb7644d03.png

Como prática de combinar DolphinScheduler e Ray AI Runtime, implementamos um fluxo de trabalho de aprendizado de máquina reutilizável por meio de dados tabulares para treinamento e implantação.

Ao mesmo tempo, como um tempo de execução de aprendizado de máquina distribuído de alto desempenho, o Ray AI Runtime tem excelente desempenho e escalabilidade e é excelente na aceleração do treinamento e raciocínio de aprendizado de máquina. A combinação com o DolphinScheduler permite que o DolphinScheduler agende e gerencie melhor as tarefas distribuídas de aprendizado de máquina. A combinação dos dois pode atender melhor aos requisitos reais de aplicativos de fluxos de trabalho de aprendizado de máquina. Ao mesmo tempo, o DolphinScheduler e o Ray AI Runtime têm vantagens complementares, que podem aproveitar melhor seus respectivos pontos fortes e fortes e continuar a promover o desenvolvimento de aprendizado de máquina e aplicativos práticos.

Com o advento da era AIGC (conteúdo gerado por IA), as empresas precisam lidar com várias tarefas complexas de aprendizado de máquina, como chatgpt de treinamento, difusão e outros modelos. Essas tarefas precisam ser executadas em um ambiente distribuído, exigindo agendamento e gerenciamento eficientes. A combinação do DolphinScheduler e do Ray AI Runtime pode fornecer às empresas um fluxo de trabalho de aprendizado de máquina eficiente e escalável, ajudando as empresas a treinar e gerenciar tarefas complexas de aprendizado de máquina para obter maior sucesso na era AIGC.

Participe da contribuição

Com o rápido crescimento do código aberto na China, a comunidade Apache DolphinScheduler deu início a um desenvolvimento vigoroso. Para fazer um agendamento melhor e fácil de usar, damos as boas-vindas aos parceiros que amam o código aberto para se juntar à comunidade de código aberto e contribuir para a ascensão do código aberto da China. , Deixe o código aberto local se tornar global.

cb796316c68a23edd5475f52e5e3970d.png

Há muitas maneiras de participar da comunidade DolphinScheduler, incluindo:

c99d0964281d8c015ae687d4e58b5a04.png

Contribuindo com o primeiro PR (documentação, código) Também esperamos ser simples, o primeiro PR é usado para se familiarizar com o processo de envio e colaboração da comunidade e sentir a simpatia da comunidade.

A comunidade reuniu a seguinte lista de problemas para iniciantes: https://github.com/apache/dolphinscheduler/issues/5689

Lista de problemas não iniciantes: https://github.com/apache/dolphinscheduler/issues?q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22

Como participar no link de contribuição: https://dolphinscheduler.apache.org/zh-cn/community/development/contribute.html

Vamos lá, a comunidade de código aberto DolphinScheduler precisa da sua participação para contribuir com a ascensão do código aberto da China, mesmo que seja apenas um pequeno ladrilho, o poder combinado é enorme.

A participação no código aberto permite que você concorra de perto com especialistas de todas as esferas da vida e melhore rapidamente suas habilidades. Se você quiser contribuir, temos um grupo de incubação de sementes para colaboradores. Você pode adicionar o assistente da comunidade WeChat (Leonard-ds) para ensinar a você (colaboradores) Independente do nível, a pergunta deve ser respondida, a chave é ter um coração disposto a contribuir).

409fcb48ca59226bccf47f80cf763fee.jpeg

Adicionar assistente da comunidade WeChat (Leonard-ds) 

Indique que deseja participar da contribuição ao adicionar o WeChat Assistant.

Vamos lá, a comunidade de código aberto está ansiosa pela sua participação.

Clique para ler o texto original, acenda a Estrela para nos apoiar62873f6a6207fbf95ed09d538b90f7a7.png

Acho que você gosta

Origin blog.csdn.net/DolphinScheduler/article/details/130377286
Recomendado
Clasificación