Pular para o conteúdo principal

Recursos para Fine-Tuning de LLM

Uma coleção selecionada de notebooks, conjuntos de dados, artigos, ferramentas e comunidades para fine-tuning de LLM.


📓 Notebooks Oficiais do Curso​

Notebooks por Módulo​

MóduloNotebookDescrição
Módulo 4Treinamento LoRAFine-tuning básico LoRA com PEFT
Módulo 5Treinamento QLoRATreinamento quantizado em 4 bits
Módulo 6Preparação de DadosPipelines de formatação de dataset
Módulo 7SFTTrainerFluxo de treinamento completo
Módulo 8Treinamento DPOOtimização por preferência
Módulo 10DeployExportação e serving de modelo

🤗 Recursos Hugging Face​

Bibliotecas Essenciais​

BibliotecaFinalidadeInstalação
transformersCarregamento e inferência de modelospip install transformers
peftFine-tuning eficiente em parâmetrospip install peft
trlTreinamento com RL e SFTpip install trl
datasetsCarregamento e processamento de datasetspip install datasets
accelerateTreinamento distribuídopip install accelerate
bitsandbytesQuantizaçãopip install bitsandbytes

Modelos Base Recomendados​

ModeloParâmetrosCaso de UsoLink HF
Llama-3.18B/70BUso geralmeta-llama/Llama-3.1-8B
Mistral7BPerformance eficientemistralai/Mistral-7B-v0.3
Qwen2.50.5B-72BMultilíngueQwen/Qwen2.5-7B
Phi-33.8BPequeno e capazmicrosoft/Phi-3-mini-4k-instruct
Gemma 22B/9B/27BModelo aberto do Googlegoogle/gemma-2-9b

📊 Conjuntos de Dados para Treinamento​

Datasets para Instruction Tuning​

DatasetTamanhoFormatoCaso de Uso
databricks/dolly-15k15KAlpacaInstruções gerais
OpenAssistant/oasst1161KConversasModelos de chat
teknium/OpenHermes-2.51M+ShareGPTAlta qualidade
HuggingFaceH4/ultrachat_200k200KConversasChat
meta-math/MetaMathQA395KMatemáticaRaciocínio matemático

Datasets de Preferência/DPO​

DatasetParesCaso de Uso
Anthropic/hh-rlhf170KUtilidade e segurança
argilla/ultrafeedback-binarized60KPreferências gerais
Intel/orca_dpo_pairs12KTreinamento DPO

Datasets de Código​

DatasetTamanhoLinguagens
codeparrot/github-codeGrandeDiversas
sahil2801/CodeAlpaca-20k20KDiversas
iamtarun/python_code_instructions_18k18KPython

📚 Artigos Científicos​

Artigos Fundamentais​

ArtigoAnoContribuição Principal
LoRA: Low-Rank Adaptation2021Método LoRA introduzido
QLoRA: Efficient Finetuning2023LoRA quantizado em 4 bits
Prefix-Tuning2021Prompts contínuos
P-Tuning v22021Deep prompt tuning
AdaLoRA2023Alocação adaptativa de rank

Artigos sobre Alinhamento​

ArtigoAnoContribuição Principal
DPO: Direct Preference Optimization2023RLHF simplificado
ORPO: Monolithic Preference Optimization2024SFT+alinhamento combinados
Constitutional AI2022Alinhamento baseado em princípios
RLHF Training at Scale2022Artigo do InstructGPT

Artigos sobre Mesclagem de Modelos​

ArtigoAnoMétodo
TIES-Merging2023Resolução de conflitos
DARE2023Drop e rescale
Model Soups2022Média de pesos

🛠️ Ferramentas & Frameworks​

Ferramentas de Treinamento​

FerramentaFinalidadeLink
AxolotlCLI fácil para fine-tuningOpenAccess-AI-Collective/axolotl
LLaMA-FactoryFramework unificado de fine-tuninghiyouga/LLaMA-Factory
UnslothFine-tuning 2x mais rápidounslothai/unsloth
MLXTreinamento em Apple Siliconml-explore/mlx

Inferência & Deploy​

FerramentaFinalidadeLink
vLLMServing de alta vazãovllm-project/vllm
Text Generation InferenceServing HuggingFacehuggingface/text-generation-inference
llama.cppInferência em CPUggerganov/llama.cpp
OllamaExecução local de modelosollama/ollama

Mesclagem de Modelos​

FerramentaFinalidade
mergekitToolkit para mesclagem de modelos
LazyMergeKitNotebook Colab para mesclagem

Rastreamento de Experimentos​

FerramentaFinalidade
Weights & BiasesRastreamento de experimentos
MLflowCiclo de vida de ML
TensorBoardVisualização de treinamento

☁️ Recursos de Computação​

Provedores de GPU em Nuvem​

ProvedorMelhor ParaModelo de Preço
Google ColabAprendizado, pequenos experimentosGratuito + Pro
Lambda LabsAcesso a A100/H100Por hora
RunPodAluguel flexível de GPUPor hora
Vast.aiGPU de baixo custoMarketplace
AWS SageMakerCorporativoPor instância

Requisitos de Memória de GPU​

Tamanho do ModeloFT CompletoQLoRALoRA
7B~28GB~6GB~14GB
13B~52GB~10GB~26GB
70B~280GB~48GB~140GB

🌐 Comunidades​

Servidores Discord​

Fóruns & Discussões​

Blogs & Newsletters​


📖 Livros & Cursos​

Livros Recomendados​

LivroAutorFoco
Natural Language Processing with TransformersTunstall, von Werra, WolfNLP prático com HF
Build a Large Language Model (From Scratch)Sebastian RaschkaFundamentos de LLM

Cursos Online​

CursoPlataformaFoco
Curso de NLP da Hugging FaceHFTransformers & NLP
Full Stack LLM BootcampFSDLLLMs em produção
Fast.aiFast.aiDeep learning

🧪 Benchmarks & Avaliação​

LLM Leaderboards​

Ferramentas de Avaliação​

FerramentaFinalidade
lm-evaluation-harnessBenchmarks abrangentes
HELMAvaliação holística
MT-BenchConversas multi-turn

💡 Templates de Início Rápido​

Treinamento QLoRA Básico​

from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import LoraConfig, get_peft_model, prepare_model_for_kbit_training
from trl import SFTTrainer

# 4-bit quantization config
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
)

# Load model
model = AutoModelForCausalLM.from_pretrained(
"meta-llama/Llama-3.1-8B",
quantization_config=bnb_config,
)

# LoRA config
lora_config = LoraConfig(
r=16,
lora_alpha=32,
target_modules=["q_proj", "v_proj"],
lora_dropout=0.05,
task_type="CAUSAL_LM",
)

# Prepare and train
model = prepare_model_for_kbit_training(model)
model = get_peft_model(model, lora_config)

trainer = SFTTrainer(
model=model,
train_dataset=dataset,
# ... training args
)
trainer.train()

Voltar para o Início do Curso