Grandes modelos de transformadores baseados em atenção obtiveram ganhos maciços no processamento de linguagem natural (PLN). No entanto, treinar essas redes gigantes do zero requer uma enorme quantidade de dados e computação. Para conjuntos de dados de PNL menores, uma estratégia simples, mas eficaz, é usar um transformador pré-treinado, geralmente treinado de forma não supervisionada em conjuntos de dados muito grandes, e ajustá-lo no conjunto de dados de interesse. Abraçando o rosto mantém um grande zoológico de modelos desses transformadores pré-treinados e os torna facilmente acessíveis, mesmo para usuários iniciantes.
No entanto, ajustar esses modelos ainda requer conhecimento especializado, porque eles são bastante sensíveis aos seus hiperparâmetros, como taxa de aprendizado ou tamanho do lote. Neste post, mostramos como otimizar esses hiperparâmetros com o framework open-source Sintonia Syne para otimização de hiperparâmetro distribuído (HPO). Syne Tune nos permite encontrar uma melhor configuração de hiperparâmetros que alcança uma melhora relativa entre 1-4% em comparação com hiperparâmetros padrão em populares COLA conjuntos de dados de referência. A escolha do próprio modelo pré-treinado também pode ser considerado um hiperparâmetro e, portanto, ser selecionado automaticamente pelo Syne Tune. Em um problema de classificação de texto, isso leva a um aumento adicional na precisão de aproximadamente 5% em comparação com o modelo padrão. No entanto, podemos automatizar mais decisões que um usuário precisa tomar; demonstramos isso expondo também o tipo de instância como um hiperparâmetro que usamos posteriormente para implantar o modelo. Ao selecionar o tipo de instância correto, podemos encontrar configurações que equilibram custo e latência de maneira otimizada.
Para uma introdução ao Syne Tune, consulte Execute trabalhos de ajuste de hiperparâmetro e arquitetura neural distribuídos com o Syne Tune.
Otimização de hiperparâmetros com Syne Tune
Vamos usar o COLA conjunto de benchmarks, que consiste em nove conjuntos de dados para tarefas de compreensão de linguagem natural, como reconhecimento de vinculação textual ou análise de sentimentos. Para isso, adaptamos Hugging Face's run_glue.py roteiro de treinamento. Os conjuntos de dados GLUE vêm com um conjunto de treinamento e avaliação predefinido com rótulos, bem como um conjunto de teste de retenção sem rótulos. Portanto, dividimos o conjunto de treinamento em conjuntos de treinamento e validação (divisão de 70%/30%) e usamos o conjunto de avaliação como nosso conjunto de dados de teste de validação. Além disso, adicionamos outra função de retorno de chamada à API Trainer do Hugging Face que relata o desempenho da validação após cada época de volta ao Syne Tune. Veja o seguinte código:
Começamos otimizando os hiperparâmetros de treinamento típicos: a taxa de aprendizado, a taxa de aquecimento para aumentar a taxa de aprendizado e o tamanho do lote para ajustar um BERT pré-treinado (bert-base-case), que é o modelo padrão no exemplo Hugging Face. Veja o seguinte código:
Como nosso método HPO, usamos ASHA, que amostra configurações de hiperparâmetros de maneira uniforme e aleatória e interrompe iterativamente a avaliação de configurações com desempenho insatisfatório. Embora métodos mais sofisticados utilizem um modelo probabilístico da função objetivo, como BO ou MoBster existe, usamos ASHA para este post porque ele vem sem suposições sobre o espaço de busca.
Na figura a seguir, comparamos a melhoria relativa no erro de teste em relação à configuração de hiperparâmetro padrão do Hugging Faces.
Para simplificar, limitamos a comparação a MRPC, COLA e STSB, mas também observamos melhorias semelhantes também para outros conjuntos de dados GLUE. Para cada conjunto de dados, executamos o ASHA em um único ml.g4dn.xlarge Amazon Sage Maker instância com um orçamento de tempo de execução de 1,800 segundos, o que corresponde a aproximadamente 13, 7 e 9 avaliações de funções completas nesses conjuntos de dados, respectivamente. Para explicar a aleatoriedade intrínseca do processo de treinamento, por exemplo, causada pela amostragem de mini-lote, executamos o ASHA e a configuração padrão para cinco repetições com uma semente independente para o gerador de números aleatórios e relatamos a média e o desvio padrão do melhora relativa ao longo das repetições. Podemos ver que, em todos os conjuntos de dados, podemos, de fato, melhorar o desempenho preditivo em 1-3% em relação ao desempenho da configuração padrão cuidadosamente selecionada.
Automatize a seleção do modelo pré-treinado
Podemos usar o HPO não apenas para encontrar hiperparâmetros, mas também para selecionar automaticamente o modelo pré-treinado correto. Por que queremos fazer isso? Como nenhum modelo único supera todos os conjuntos de dados, temos que selecionar o modelo certo para um conjunto de dados específico. Para demonstrar isso, avaliamos uma variedade de modelos populares de transformadores da Hugging Face. Para cada conjunto de dados, classificamos cada modelo por seu desempenho de teste. A classificação entre os conjuntos de dados (veja a figura a seguir) muda e não um único modelo com a pontuação mais alta em todos os conjuntos de dados. Como referência, também mostramos o desempenho absoluto do teste de cada modelo e conjunto de dados na figura a seguir.
Para selecionar automaticamente o modelo certo, podemos converter a escolha do modelo como parâmetros categóricos e adicioná-lo ao nosso espaço de pesquisa de hiperparâmetros:
Embora o espaço de pesquisa agora seja maior, isso não significa necessariamente que seja mais difícil otimizar. A figura a seguir mostra o erro de teste da configuração melhor observada (com base no erro de validação) no conjunto de dados MRPC de ASHA ao longo do tempo quando pesquisamos no espaço original (linha azul) (com um modelo pré-treinado com base em BERT ) ou no novo espaço de pesquisa aumentada (linha laranja). Com o mesmo orçamento, a ASHA é capaz de encontrar uma configuração de hiperparâmetros de desempenho muito melhor no espaço de pesquisa estendido do que no espaço menor.
Automatize a seleção do tipo de instância
Na prática, podemos não nos preocupar apenas em otimizar o desempenho preditivo. Também podemos nos preocupar com outros objetivos, como tempo de treinamento, custo (em dólares), latência ou métricas de justiça. Também precisamos fazer outras escolhas além dos hiperparâmetros do modelo, por exemplo, selecionando o tipo de instância.
Embora o tipo de instância não influencie o desempenho preditivo, ele impacta fortemente o custo (em dólares), o tempo de execução do treinamento e a latência. Este último torna-se particularmente importante quando o modelo é implantado. Podemos colocar o HPO como um problema de otimização multiobjetivo, onde visamos otimizar vários objetivos simultaneamente. No entanto, nenhuma solução única otimiza todas as métricas ao mesmo tempo. Em vez disso, nosso objetivo é encontrar um conjunto de configurações que negociem de maneira otimizada um objetivo em relação ao outro. Isso é chamado de Conjunto de Pareto.
Para analisar ainda mais essa configuração, adicionamos a escolha do tipo de instância como um hiperparâmetro categórico adicional ao nosso espaço de pesquisa:
Usamos MO-ASHA, que adapta o ASHA ao cenário multiobjetivo usando classificação não dominada. Em cada iteração, o MO-ASHA também seleciona para cada configuração o tipo de instância em que queremos avaliá-la. Para executar o HPO em um conjunto heterogêneo de instâncias, o Syne Tune fornece o back-end SageMaker. Com esse back-end, cada avaliação é avaliada como um trabalho de treinamento independente do SageMaker em sua própria instância. O número de trabalhadores define quantos trabalhos do SageMaker executamos em paralelo em um determinado momento. O otimizador em si, MO-ASHA em nosso caso, é executado na máquina local, um notebook Sagemaker ou em um trabalho de treinamento separado do SageMaker. Veja o seguinte código:
As figuras a seguir mostram a latência versus erro de teste à esquerda e latência versus custo à direita para configurações aleatórias amostradas pelo MO-ASHA (limitamos o eixo para visibilidade) no conjunto de dados MRPC após executá-lo por 10,800 segundos em quatro trabalhadores. A cor indica o tipo de instância. A linha preta tracejada representa o conjunto de Pareto, ou seja, o conjunto de pontos que dominam todos os outros pontos em pelo menos um objetivo.
Podemos observar uma compensação entre latência e erro de teste, o que significa que a melhor configuração com o menor erro de teste não atinge a menor latência. Com base em sua preferência, você pode selecionar uma configuração de hiperparâmetro que sacrifica o desempenho do teste, mas vem com uma latência menor. Também vemos a troca entre latência e custo. Ao usar uma instância ml.g4dn.xlarge menor, por exemplo, aumentamos apenas marginalmente a latência, mas pagamos um quarto do custo de uma instância ml.g4dn.8xlarge.
Conclusão
Neste post, discutimos a otimização de hiperparâmetros para ajustar modelos de transformadores pré-treinados do Hugging Face com base no Syne Tune. Vimos que, ao otimizar hiperparâmetros como taxa de aprendizado, tamanho do lote e taxa de aquecimento, podemos melhorar a configuração padrão cuidadosamente escolhida. Também podemos estender isso selecionando automaticamente o modelo pré-treinado por meio da otimização de hiperparâmetros.
Com a ajuda do backend SageMaker do Syne Tune, podemos tratar o tipo de instância como um hiperparâmetro. Embora o tipo de instância não afete o desempenho, ele tem um impacto significativo na latência e no custo. Portanto, ao converter o HPO como um problema de otimização multiobjetivo, podemos encontrar um conjunto de configurações que trocam de maneira otimizada um objetivo em relação ao outro. Se você quiser experimentar você mesmo, confira nosso caderno de exemplo.
Sobre os autores
Aaron Klein é um cientista aplicado na AWS.
Matias Seeger é Cientista Aplicado Principal da AWS.
David Salinas é um cientista aplicado sênior na AWS.
Emily Webber ingressou na AWS logo após o lançamento do SageMaker e vem tentando contar ao mundo sobre isso desde então! Além de criar novas experiências de ML para os clientes, Emily gosta de meditar e estudar o budismo tibetano.
Cédrico Archambeau é Cientista Aplicado Principal da AWS e Fellow do European Lab for Learning and Intelligent Systems.
- Coinsmart. A melhor troca de Bitcoin e criptografia da Europa.
- Platoblockchain. Inteligência Metaverso Web3. Conhecimento Ampliado. ACESSO LIVRE.
- CryptoHawk. Radar Altcoin. Teste grátis.
- Fonte: https://aws.amazon.com/blogs/machine-learning/hyperparameter-optimization-for-fine-tuning-pre-trained-transformer-models-from-hugging-face/
- "
- 10
- 100
- 7
- 9
- a
- Sobre
- absoluto
- acessível
- Conta
- Alcançar
- em
- Adicional
- afetar
- Todos os Produtos
- permite
- Apesar
- Amazon
- quantidade
- análise
- analisar
- Outro
- api
- aplicado
- aproximadamente
- arquitetura
- aumentado
- automatizar
- automaticamente
- média
- AWS
- eixo
- Porque
- referência
- MELHOR
- Melhor
- entre
- Pós
- Preto
- pino
- impulsionar
- orçamento
- Prédio
- Cuidado
- casas
- causado
- escolha
- escolhas
- escolhido
- classe
- classificação
- código
- como
- comparado
- Computar
- Configuração
- ao controle
- Clientes
- dados,
- decisões
- demonstrar
- implantar
- implantado
- distribuído
- Não faz
- Dólar
- cada
- facilmente
- Eficaz
- Europa
- avaliar
- avaliação
- exemplo
- Experiências
- especialista
- estender
- Rosto
- Moda
- Figura
- seguinte
- Quadro
- da
- cheio
- função
- mais distante
- Além disso
- gerador
- ajudar
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- Como funciona o dobrador de carta de canal
- Como Negociar
- Contudo
- HTTPS
- Impacto
- importante
- melhorar
- melhoria
- Crescimento
- de treinadores em Entrevista Motivacional
- influência
- instância
- Inteligente
- interesse
- IT
- se
- Trabalho
- Empregos
- ingressou
- Conhecimento
- laboratório
- Rótulos
- língua
- grande
- Maior
- lançado
- Leads
- aprendizagem
- LIMITE
- Line
- local
- máquina
- fazer
- FAZ
- maciço
- significado
- métodos
- Métrica
- poder
- ML
- modelo
- modelos
- mais
- múltiplo
- natural
- necessariamente
- Cria
- redes
- caderno
- número
- objetivos
- obtido
- otimização
- Otimize
- otimizando
- original
- Outros
- próprio
- particularmente
- Pagar
- atuação
- realização
- por favor
- pontos
- Popular
- prática
- Diretor
- Problema
- processo
- em processamento
- fornece
- alcance
- Posição
- Denunciar
- repórter
- Relatórios
- representa
- exige
- Resultados
- Execute
- corrida
- mesmo
- Cientista
- Pesquisar
- segundo
- semente
- selecionado
- sentimento
- conjunto
- contexto
- mostrar
- periodo
- semelhante
- simples
- solteiro
- Tamanho
- solução
- sofisticado
- Espaço
- específico
- divisão
- padrão
- começo
- Estado
- Ainda
- Estratégia
- sistemas
- tarefas
- teste
- A
- o mundo
- assim sendo
- tempo
- comércio
- Training
- tratar
- tremendo
- julgamento
- compreensão
- us
- usar
- usuários
- geralmente
- utilizar
- validação
- visibilidade
- Wikipedia
- sem
- trabalhadores
- mundo
- investimentos