#
a smol course (um curso miudinho)

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.

## A participação é aberta a todos, gratuita e já está disponível!

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:

1. Dê um fork no repositório aqui
2. Leia o material, faça alterações, faça os exercícios, adicione seus próprios exemplos
3. Abra um PR no branch december_2024
4. 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.

##
Sumário do Curso

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

##
Por Que Pequenos Modelos de Linguagem?

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

##
Pré-requisitos

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.

##
Instalação

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`.

###
Usando uv

Com o `uv` instalado, você pode instalar o curso deste modo:

    uv venv --python 3.11.0
    uv sync

###
Usando pip

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

###
Google Colab

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

##
Engajamento

Vamos compartilhar isso, desse jeito um monte de gente vai poder aprender a ajustar LLMs sem precisar de um computador super caro.

Update on GitHub