Como superar o medo e começar a usar o Azure Machine Learning

Conheço muitos cientistas de dados — e provavelmente eu mesmo sou um deles — que trabalham em máquinas com GPUs, sejam locais ou virtuais, hospedadas na nuvem, usando o Jupyter Notebook ou algum ambiente de desenvolvimento Python. Durante meus dois anos como desenvolvedor especialista em IA/ML, fiz exatamente isso: preparei os dados em um servidor ou estação de trabalho comum e executei o treinamento em uma máquina virtual com GPU no Azure.

É claro que todos nós já ouvimos falar sobre Aprendizado de Máquina do Azure — uma plataforma em nuvem dedicada ao aprendizado de máquina. No entanto, após uma primeira olhada em artigos introdutóriosParece que o Azure ML cria mais problemas do que soluções. Por exemplo, no exemplo de treinamento mencionado, o treinamento do Azure ML é iniciado a partir de um Jupyter Notebook, mas o próprio script de treinamento é criado e editado como um arquivo de texto em uma das células — sem o benefício do preenchimento automático, realce de sintaxe ou outras vantagens de um ambiente de desenvolvimento normal. Por esse motivo, não utilizamos o Azure ML de forma consistente em nosso trabalho por muito tempo.

No entanto, descobri recentemente uma maneira de começar a usar o Azure ML de forma eficaz no meu trabalho! Tem interesse em saber mais?

Como superar o medo e começar a usar o Azure Machine Learning

O principal segredo é este: Extensão do Visual Studio Code para Azure MLEle permite que você desenvolva scripts de treinamento diretamente no VS Code, aproveitando ao máximo o ambiente. Você pode até executar o script localmente e, em seguida, enviá-lo para um cluster do Azure ML para treinamento com apenas alguns cliques. Conveniente, não é?

Ao mesmo tempo, você obtém os seguintes benefícios ao usar o Azure ML:

  • Na maior parte do tempo, você pode trabalhar localmente em sua máquina, em um ambiente de desenvolvimento integrado (IDE) conveniente, e Use a GPU apenas para treinamento de modelos.O conjunto de recursos de treinamento pode se ajustar automaticamente à carga de trabalho necessária e, definindo o número mínimo de nós como 0, você pode iniciar automaticamente a máquina virtual "sob demanda" quando houver tarefas de treinamento disponíveis.
  • você pode Armazene todos os resultados de aprendizagem em um só lugar., incluindo as métricas alcançadas e os modelos resultantes - não há necessidade de criar qualquer sistema ou ordem para armazenar todos os resultados.
  • Neste caso, Várias pessoas podem trabalhar em um projeto. — eles podem usar o mesmo cluster de computação, todos os experimentos serão enfileirados e eles também poderão ver os resultados dos experimentos uns dos outros. Um desses cenários é Utilizando o Azure ML no ensino de aprendizado profundoEm vez de fornecer a cada aluno uma máquina virtual com GPU, você pode criar um cluster único que todos possam usar de forma centralizada. Além disso, um placar compartilhado com a precisão do modelo pode servir como um bom elemento competitivo.
  • Com o Azure ML, você pode executar facilmente uma série de experimentos, como: otimização de hiperparâmetros Isso pode ser feito com algumas linhas de código, não há necessidade de realizar uma série de experimentos manualmente.

Espero ter convencido você a experimentar o Azure ML! Veja como começar:

Azure ML Workspace e Portal do Azure ML

O Azure ML está organizado em torno do conceito área de trabalho — Espaço de trabalho. O espaço de trabalho pode armazenar dados, experimentos para treinamento são enviados para ele e os resultados do treinamento — as métricas e os modelos resultantes — também são armazenados lá. Você pode visualizar o conteúdo do espaço de trabalho usando Portal de aprendizado de máquina do Azure — e a partir daí você pode realizar uma variedade de operações, desde carregar dados até monitorar experimentos e implantar modelos.

Você pode criar um espaço de trabalho através da interface web. Portal do Azure (Veja. instruções passo a passo), ou usando a linha de comando da CLI do Azure (instruções):

az extension add -n azure-cli-ml
az group create -n myazml -l northeurope
az ml workspace create -w myworkspace -g myazml

Existem também algumas relacionadas à área de trabalho. recursos computacionais (ComputarDepois de criar um script para treinar o modelo, você pode Enviar um experimento para execução. na área de trabalho e especifique alvo de computação — O script será empacotado, executado no ambiente computacional necessário e, em seguida, todos os resultados do experimento serão salvos no espaço de trabalho para posterior análise e uso.

Roteiro de treinamento para MNIST

Vamos considerar um problema clássico. reconhecimento de dígitos manuscritos usando o conjunto de dados MNIST. Você pode executar qualquer um dos seus próprios scripts de treinamento da mesma maneira.

Existe um script em nosso repositório. train_local.py, que treina um modelo de regressão linear simples usando a biblioteca SkLearn. Claro, eu entendo que esta não é a melhor maneira de resolver o problema — estamos usando-a como exemplo porque é a mais simples.

O script primeiro baixa os dados MNIST do OpenML e depois usa a classe. LogisticRegression para treinar o modelo e, em seguida, imprime a precisão resultante:

mnist = fetch_openml('mnist_784')
mnist['target'] = np.array([int(x) for x in mnist['target']])

shuffle_index = np.random.permutation(len(mist['data']))
X, y = mnist['data'][shuffle_index], mnist['target'][shuffle_index]

X_train, X_test, y_train, y_test = 
  train_test_split(X, y, test_size = 0.3, random_state = 42)

lr = LogisticRegression()
lr.fit(X_train, y_train)
y_hat = lr.predict(X_test)
acc = np.average(np.int32(y_hat == y_test))

print('Overall accuracy:', acc)

Você pode executar o script no seu computador e obter o resultado em poucos segundos.

Execute o script no Azure ML.

Se executarmos o script de treinamento por meio do Azure ML, teremos duas vantagens principais:

  • Inicie o treinamento em um recurso computacional arbitrário, que normalmente é mais poderoso do que um computador local. O Azure ML empacotará automaticamente nosso script com todos os arquivos do diretório atual em um contêiner Docker, instalará as dependências necessárias e o enviará para execução.
  • Gravar os resultados em um registro unificado no espaço de trabalho do Azure ML. Para aproveitar esse recurso, precisamos adicionar algumas linhas de código ao nosso script para registrar a precisão resultante:

from azureml.core.run import Run
...
try:    
    run = Run.get_submitted_run()
    run.log('accuracy', acc)
except:
    pass

A versão correspondente do script é chamada train_universal.py (É um pouco mais sofisticado do que o descrito acima, mas não muito.) Este script pode ser executado tanto localmente quanto em um recurso computacional remoto.

Para executar o código no Azure ML a partir do VS Code, você precisa fazer o seguinte:

  1. Certifique-se de que a extensão do Azure esteja conectada à sua assinatura. Selecione o ícone do Azure no menu à esquerda. Se não estiver conectado, uma notificação aparecerá no canto inferior direito (é isso), clicando nele, você poderá fazer login pelo navegador. Você também pode clicar Ctrl-Shift-P Para abrir a linha de comando do VS Code, digite Login do Azure.

  2. Em seguida, na seção Azure (ícone à esquerda), encontre a seção APRENDIZAGEM DE MÁQUINAS:

Como superar o medo e começar a usar o Azure Machine Learning
Aqui você deverá ver diferentes grupos de objetos dentro da área de trabalho: recursos computacionais, experimentos, etc.

  1. Acesse a lista de arquivos e clique com o botão direito do mouse no script. train_universal.py e selecione Azure ML: Execute como experimento no Azure.

Como superar o medo e começar a usar o Azure Machine Learning

  1. Isso abrirá uma série de caixas de diálogo na área do prompt de comando do VS Code: confirme a assinatura do Azure ML e o espaço de trabalho que você está usando e selecione Criar um novo experimento:

Como superar o medo e começar a usar o Azure Machine Learning
Como superar o medo e começar a usar o Azure Machine Learning
Como superar o medo e começar a usar o Azure Machine Learning

  1. Selecione para criar um novo recurso de computação. Criar novo computador:

    • Computar Determina o recurso computacional no qual o treinamento será realizado. Você pode escolher um computador local ou um cluster na nuvem AmlCompute. Recomendo criar um cluster de máquinas escalável. STANDARD_DS3_v2, com um número mínimo de máquinas igual a 0 (e o máximo pode ser 1 ou mais, dependendo da sua necessidade). Isso pode ser feito através da interface do VS Code ou antecipadamente através de Portal de ML.

    Como superar o medo e começar a usar o Azure Machine Learning

  2. Em seguida, você precisa selecionar a configuração. Configuração de computação, que define os parâmetros do contêiner criado para o treinamento, em particular, todas as bibliotecas necessárias. No nosso caso, como estamos usando o Scikit-Learn, selecionamos SkLearnEm seguida, basta confirmar a lista de bibliotecas sugerida pressionando Enter. Se você usar alguma biblioteca adicional, especifique-a aqui.

    Como superar o medo e começar a usar o Azure Machine Learning
    Como superar o medo e começar a usar o Azure Machine Learning

  3. Uma janela será aberta com um arquivo JSON descrevendo o experimento. Você pode editar alguns parâmetros aqui, como o nome do experimento. Depois disso, clique no link. Submeter experimento logo dentro deste arquivo:

Como superar o medo e começar a usar o Azure Machine Learning

  1. Após enviar seu experimento com sucesso pelo VS Code, você verá um link para Portal de ML do Azure, onde você pode acompanhar o status e os resultados do experimento.

Como superar o medo e começar a usar o Azure Machine Learning
Você sempre poderá encontrá-lo na seção posterior. Experimentos Portal de ML do Azure, ou na seção Aprendizado de Máquina do Azure na lista de experimentos:

Como superar o medo e começar a usar o Azure Machine Learning

  1. Se você fez alguma alteração no código ou modificou algum parâmetro desde então, executar o experimento novamente será muito mais rápido e fácil. Clicar com o botão direito do mouse no arquivo exibirá um novo item de menu. Repita a última execução — basta selecioná-lo e o experimento será iniciado imediatamente:

Como superar o medo e começar a usar o Azure Machine Learning
Você sempre pode encontrar os resultados das métricas de todas as execuções no Portal do Azure ML; não é necessário registrá-los.

Agora você sabe que executar experimentos com o Azure ML é simples e fácil, além de oferecer diversos benefícios interessantes.

Mas você pode ter notado algumas desvantagens. Por exemplo, a execução do script levou significativamente mais tempo. É claro que empacotar o script em um contêiner e implantá-lo no servidor leva tempo. Se o cluster fosse reduzido a 0 nós, levaria ainda mais tempo para iniciar a máquina virtual. Isso é especialmente perceptível quando estamos experimentando com problemas simples como o MNIST, que levam alguns segundos para serem resolvidos. No entanto, na vida real, quando o treinamento leva horas, ou mesmo dias ou semanas, esse tempo adicional se torna insignificante, especialmente em comparação com o desempenho significativamente maior que um cluster de computação pode fornecer.

Qual é o próximo?

Espero que, após a leitura deste artigo, você consiga utilizar o Azure ML em seu fluxo de trabalho para executar scripts, gerenciar recursos computacionais e centralizar resultados. No entanto, o Azure ML pode oferecer ainda mais benefícios!

Você pode armazenar dados em seu espaço de trabalho, criando um repositório centralizado e de fácil acesso para todas as suas tarefas. Você também pode executar experimentos usando a API em vez do Visual Studio Code — isso pode ser especialmente útil se você precisar realizar a otimização de hiperparâmetros e executar um script várias vezes com parâmetros diferentes. Além disso, o Azure ML possui tecnologia integrada para isso. Hyperdrive, o que permite uma busca e otimização de hiperparâmetros mais sofisticadas. Discutirei essas funcionalidades na minha próxima publicação.

Recursos úteis

Para uma compreensão mais aprofundada do Azure ML, você pode achar os seguintes cursos do Microsoft Learn úteis:

Fonte: habr.com

Compre hospedagem confiável para sites com proteção DDoS, servidores VPS VDS 🔥 Compre hospedagem de sites confiável com proteção contra DDoS, servidores VPS/VDS | ProHoster