O que axolotl faz?
Rotinas de configuração que concedem a agentes especializados a capacidade de submeter execuções personalizadas de fine-tuning LoRA com base em interações com falha.
Visão Geral
Esta habilidade capacita agentes de IA a melhorar seu desempenho através de fine-tuning automático e adaptativo. Quando o agente encontra uma interação que resulta em falha (por exemplo, um erro de código, uma resposta incorreta ou um loop de feedback negativo), o Axolotl analisa o contexto e prepara uma execução de fine-tuning LoRA sob medida para corrigir o comportamento.
Como Funciona
- Detecção de Falha: O agente monitora interações e identifica falhas com base em critérios configuráveis (ex.: códigos de erro, outputs inesperados, feedback do usuário).
- Extração de Contexto: A falha é decomposta em componentes acionáveis: prompt original, resposta do agente, erro observado e metadados relevantes (ex.: versão do modelo, timestamp).
- Geração de Configuração: Uma rotina de configuração é montada com base em templates pré-definidos. Isso inclui parâmetros LoRA (
lora_r,lora_alpha,lora_target_modules), dataset (derivado do contexto da falha) e hiperparâmetros de treinamento (num_epochs,learning_rate). - Submissão do Job: A configuração é submetida a um executor compatível (local, SLURM, Kubernetes, ou script Docker). O job de fine-tuning é executado de forma assíncrona.
- Atualização do Agente: Após a conclusão, os pesos LoRA são salvos e disponibilizados para o agente, que pode carregá-los em tempo de execução ou em uma nova sessão.
Plataformas Suportadas
- Claude Code: Integração via hooks de pós-processamento e API de ferramentas.
- Cursor: Uso de regras de workspace e comandos customizados.
- Codex: Integração via extensões de plugin e scripts de automação.
- Execução Genérica: Suporte para qualquer agente que possa executar comandos shell e fazer chamadas HTTP.
Pré-requisitos
- Python 3.10+
torch(>=2.0.0)transformers(>=4.30.0)peft(>=0.5.0)datasets(>=2.10.0)- Acesso a um modelo base compatível (ex.:
meta-llama/Llama-2-7b-chat-hf,mistralai/Mistral-7B-v0.1) - (Opcional) Docker para execução isolada
Instalação
pip install axolotl-skill # Pacote fictício, substituir pelo real
Ou use Docker:
docker pull openaccess/axolotl:latest
Configuração
Crie um arquivo axolotl_config.yaml no diretório de trabalho do agente:
model:
base_model: meta-llama/Llama-2-7b-chat-hf
lora:
r: 8
alpha: 16
dropout: 0.05
target_modules:
- q_proj
- v_proj
training:
batch_size: 4
micro_batch_size: 1
num_epochs: 3
learning_rate: 2e-4
dataset_path: ./failed_interactions.jsonl
executor:
type: local # opções: local, slurm, kubernetes, docker
docker_image: openaccess/axolotl:latest
Uso
Exemplo de Script de Envio
from axolotl_skill import submit_finetune
# Extraído de uma interação com falha
failure_context = {
"original_prompt": "Explique o conceito de closure em JavaScript.",
"agent_response": "Uma closure é...",
"error": "Resposta incompleta, faltou mencionar escopo léxico.",
"model_id": "llama-2-7b-chat"
}
# Submete um fine-tuning LoRA com base na falha
job_id = submit_finetune(failure_context)
print(f"Job de fine-tuning submetido: {job_id}")
Integração com Claude Code
Adicione ao seu .claude/settings.json:
{
"tools": {
"axolotl": {
"enabled": true,
"command": "python -m axolotl_skill.claude_tool"
}
}
}
Integração com Cursor
Adicione uma regra no .cursorrules:
Sempre que houver uma falha de execução, execute o comando `axolotl submit --from-last-error` para preparar um fine-tuning corretivo.
Exemplo de Configuração de Template
templates/lora_default.yaml:
lora_r: 8
lora_alpha: 16
lora_dropout: 0.1
lora_target_modules:
- q_proj
- k_proj
- v_proj
- o_proj
use_rslora: true
Exemplo de Saída de Log
[Axolotl] Interação com falha detectada: "Resposta incompleta"
[Axolotl] Extraindo contexto...
[Axolotl] Template LoRA carregado: lora_default
[Axolotl] Dataset criado com 1 amostra
[Axolotl] Submetendo job de fine-tuning...
[Axolotl] Job ID: ft-20250328-abc123
[Axolotl] Status: submitted
Solução de Problemas
- Erro de GPU insuficiente: Reduza
batch_sizeoumicro_batch_sizena configuração. - Falha ao baixar modelo: Verifique se o token do Hugging Face está configurado como variável de ambiente
HF_TOKEN. - Job travado: Verifique se o executor (Docker/SLURM) está em execução e com recursos disponíveis.
Contribuição
Veja o arquivo CONTRIBUTING.md para diretrizes de contribuição.
Licença
Este projeto está licenciado sob a licença Apache 2.0.