Este é um curso prático sobre alinhar modelos de linguagem para o seu caso de uso específico. É uma maneira útil de começar a alinhar modelos de linguagem, porque tudo funciona na maioria das máquinas locais. Existem requisitos mínimos de GPU e nenhum serviço pago. O curso é baseado na série de modelos de SmolLM2, mas você pode transferir as habilidades que aprende aqui para modelos maiores ou outros pequenos modelos de linguagem.
Este curso é aberto e avaliado por pares (peer reviewed). Para começar o curso, abra um pull request (PR) e envie seu trabalho para revisão. Aqui estão as etapas:
- Dê um fork no repositório aqui
- Leia o material, faça alterações, faça os exercícios, adicione seus próprios exemplos
- Abra um PR no branch december_2024
- Tenha seu material revisado e mesclado no branch principal
Isso deve te ajudar a aprender e a construir um curso feito pela comunidade, que está sempre melhorando.
Podemos discutir o processo neste tópico de discussão.
Este curso fornece uma abordagem prática para trabalhar com pequenos modelos de linguagem, desde o treinamento inicial até a implantação de produção.
Módulo | Descrição | Status | Data de Lançamento |
---|---|---|---|
Instruction Tuning (Ajuste de Instrução) | Aprenda sobre o ajuste fino supervisionado, modelos de bate-papo e a fazer o modelo seguir instruções básicas | ✅ Completo | 3 Dez, 2024 |
Preference Alignment (Alinhamento de Preferência) | Explore técnicas DPO e ORPO para alinhar modelos com preferências humanas | ✅ Completo | 6 Dez, 2024 |
Parameter-efficient Fine-tuning (Ajuste Fino com Eficiência de Parâmetro) | Aprenda sobre LoRA, ajuste de prompt e métodos de adaptação eficientes | ✅ Completo | 9 Dez, 2024 |
Evaluation (Avaliação) | Use benchmarks automáticos e crie avaliações de domínio personalizadas | ✅ Completo | 13 Dez, 2024 |
Vision-language Models (Modelos de Conjunto Visão-linguagem) | Adapte modelos multimodais para tarefas visão-linguagem | ✅ Completo | 16 Dez, 2024 |
Synthetic Datasets (Conjuntos de Dados Sintéticos) | Criar e validar conjuntos de dados sintéticos para treinamento | 🚧 Em Progresso | 20 Dez, 2024 |
Inference (Inferência) | Infira modelos com eficiência | 📝 Planejado | 23 Dez, 2024 |
Projeto Experimental | Use o que você aprendeu para ser o top 1 na tabela de classificação! | 🚧 Em Progresso | Dec 23, 2024 |
Embora os grandes modelos de linguagem tenham mostrado recursos e capacidades impressionantes, eles geralmente exigem recursos computacionais significativos e podem ser exagerados para aplicativos focados. Os pequenos modelos de linguagem oferecem várias vantagens para aplicativos de domínios específicos:
- Eficiência: Requer significativamente menos recursos computacionais para treinar e implantar
- Personalização: Mais fácil de ajustar e se adaptar a domínios específicos
- Controle: Melhor compreensão e controle do comportamento do modelo
- Custo: Menores custos operacionais para treinamento e inferência
- Privacidade: Pode ser executado localmente sem enviar dados para APIs externas
- Tecnologia Verde: Defende o uso eficiente de recursos com redução da pegada de carbono
- Desenvolvimento de Pesquisa Acadêmica Mais Fácil: Oferece um ponto de partida fácil para a pesquisa acadêmica com LLMs de ponta com menos restrições logísticas
Antes de começar, verifique se você tem o seguinte:
- Entendimento básico de machine learning e natural language processing.
- Familiaridade com Python, PyTorch e o módulo
transformers
. - Acesso a um modelo de linguagem pré-treinado e um conjunto de dados rotulado.
Mantemos o curso como um pacote para que você possa instalar dependências facilmente por meio de um gerenciador de pacotes. Recomendamos uv para esse fim, mas você pode usar alternativas como pip
ou pdm
.
Com o uv
instalado, você pode instalar o curso deste modo:
uv venv --python 3.11.0
uv sync
Todos os exemplos são executados no mesmo ambiente python 3.11, então você deve criar um ambiente e instalar dependências desta maneira:
# python -m venv .venv
# source .venv/bin/activate
pip install -r requirements.txt
A partir do Google Colab você precisará instalar dependências de maneira flexível com base no hardware que está usando. Pode fazer deste jeito:
pip install transformers trl datasets huggingface_hub
Vamos compartilhar isso, desse jeito um monte de gente vai poder aprender a ajustar LLMs sem precisar de um computador super caro.