O crescente interesse em grandes modelos de linguagem (LLMs) levou a uma proliferação de ferramentas e wrappers projetados para simplificar o processo de treinamento.
As opções populares incluem FastChat do LMSYS (usado para treinar Vicuna) e a biblioteca Transformers/trl do Hugging Face (usada em meu último post). Além disso, cada grande projeto LLM (como o WizardLM) tende a ter seu próprio roteiro de treinamento inspirado na implementação original do Alpaca.
Neste artigo, usaremos Axolotl, uma ferramenta criada pelo OpenAccess AI Collective. Iremos usá-lo para ajustar o modelo Code Llama 7b no conjunto de dados evol-instruct que consiste em 1.000 amostras de código Python.
Por que Axolote?
A principal atração do Axolotl é que ele fornece uma solução completa com inúmeras funções, arquitetura de modelo e comunidade ativa. Aqui está uma lista rápida das minhas coisas favoritas:
Configuração: Todos os parâmetros para treinar o LLM são armazenados de forma organizada em arquivos de configuração yaml. Isso facilita o compartilhamento e a duplicação de modelos. Você pode ver um exemplo para Llama 2 aqui.
Flexibilidade do conjunto de dados: Axolotl permite especificar vários conjuntos de dados usando diferentes formatos de prompt, por exemplo, alpaca ( {“instruction”: “…”, “input”: “…”, “output”: “…”}), sharegpt: chat ( {"conversations ": [{"from": "…", "value": "…"}]}) e conclusão bruta ({"text": "…"}). A combinação de conjuntos de dados é perfeita e elimina o incômodo de unificar formatos de prompt.
Características: Axolotl inclui SOT