Transformers documentation
Axolotl
Axolotl
Axolotl es un marco de ajuste fino y entrenamiento posterior para modelos de lenguaje de gran escala. Admite el ajuste basado en adaptadores, el entrenamiento distribuido ND-parallel, GRPO y QAT. A través de TRL, Axolotl también gestiona flujos de trabajo de aprendizaje de preferencias, aprendizaje por refuerzo y modelado de recompensas.
Defina su ejecución de entrenamiento en un archivo de configuración YAML.
base_model: NousResearch/Nous-Hermes-llama-1b-v1
model_type: AutoModelForCausalLM
tokenizer_type: AutoTokenizer
datasets:
- path: tatsu-lab/alpaca
type: alpaca
output_dir: ./outputs
sequence_len: 512
micro_batch_size: 1
gradient_accumulation_steps: 1
num_epochs: 1
learning_rate: 2.0e-5Inicie el entrenamiento con el comando train.
axolotl train my_config.yml
Integración con Transformers
El ModelLoader de Axolotl envuelve el flujo de carga de Transformers.
La configuración del modelo se construye a partir de AutoConfig.from_pretrained(). La configuración de precarga establece el device map, la quantization config y el attention backend.
ModelLoaderselecciona automáticamente la clase AutoModel adecuada (AutoModelForCausalLM, AutoModelForImageTextToText, AutoModelForSequenceClassification) o una clase específica del modelo de la correspondencia multimodal. Los pesos se cargan confrom_pretraineddel loader seleccionado. Cuando se establecereinit_weights, Axolotl utilizafrom_configpara la inicialización aleatoria.Axolotl utiliza Transformers, PEFT y bitsandbytes para aplicar adaptadores después de la inicialización del modelo cuando se habilitan técnicas basadas en PEFT, como LoRA y QLoRA. Un gestor de parches aplica optimizaciones adicionales antes y después de la carga del modelo.
AxolotlTrainer extiende Trainer, añadiendo los mixins de Axolotl mientras utiliza el bucle de entrenamiento y las APIs de Trainer.
Recursos
- Documentación de Axolotl