Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Hiyouga LLaMA Factory MCA Workflow

From Leeroopedia


Knowledge Sources
Domains Distributed Training, Megatron-Core
Last Updated 2026-02-06 19:00 GMT

Overview

Provides Megatron-Core Adapter (MCA) training workflows for pre-training, supervised fine-tuning, and DPO with large-scale distributed parallelism.

Description

The mca/workflow module implements three training workflows using the mcore_adapter library for Megatron-style distributed training. run_pt handles pre-training with McaTrainer and DataCollatorForSeq2Seq. run_sft handles supervised fine-tuning with SFTDataCollatorWith4DAttentionMask, supporting sequence packing and optional freezing of vision tower, multi-modal projector, or language model layers for Qwen VL models. run_dpo handles Direct Preference Optimization using McaDPOTrainer with a configurable DPOConfig for loss type, beta, and label smoothing. All workflows use a _data_collator_wrapper that adjusts labels and input_ids by shifting one position to match MCA's internal shift logic (removing the last input token and first label token). The module validates model support against MCA_SUPPORTED_MODELS and supports expert model parallelism with max-length padding when expert_model_parallel_size is greater than 1.

Usage

Use these workflows when training with the Megatron-Core backend for large-scale distributed training with tensor, pipeline, and expert parallelism. This provides an alternative to the standard HuggingFace Trainer-based workflows, enabling training at scales requiring Megatron-style parallelism. Requires the mcore_adapter package to be installed.

Code Reference

Source Location

Signature

def _data_collator_wrapper(data_collator: Any) -> Callable

def _check_model_support(model_args: "ModelArguments") -> None

def run_pt(
    model_args: "ModelArguments",
    data_args: "DataArguments",
    training_args: "McaSeq2SeqTrainingArguments",
    finetuning_args: "FinetuningArguments",
    callbacks: Optional[list["TrainerCallback"]] = None,
) -> None

def run_sft(
    model_args: "ModelArguments",
    data_args: "DataArguments",
    training_args: "McaSeq2SeqTrainingArguments",
    finetuning_args: "FinetuningArguments",
    callbacks: Optional[list["TrainerCallback"]] = None,
) -> None

def run_dpo(
    model_args: "ModelArguments",
    data_args: "DataArguments",
    training_args: "McaSeq2SeqTrainingArguments",
    finetuning_args: "FinetuningArguments",
    callbacks: Optional[list["TrainerCallback"]] = None,
) -> None

Import

from llamafactory.train.mca.workflow import run_pt, run_sft, run_dpo

I/O Contract

Inputs

Name Type Required Description
model_args ModelArguments Yes Model loading configuration including model_name_or_path and trust_remote_code
data_args DataArguments Yes Dataset configuration including cutoff_len (adjusted +1/-1 for MCA shift), neat_packing, packing settings
training_args McaSeq2SeqTrainingArguments Yes MCA-specific training arguments including expert_model_parallel_size, sequence_packing, resume_from_checkpoint
finetuning_args FinetuningArguments Yes Contains freeze_vision_tower, freeze_multi_modal_projector, freeze_language_model, pref_beta, pref_loss, dpo_label_smoothing, plot_loss, include_effective_tokens_per_second
callbacks Optional[list[TrainerCallback]] No Additional trainer callbacks; SaveProcessorCallback is added automatically when a processor is present

Outputs

Name Type Description
None None Side effects: saves model, metrics, and trainer state to output_dir; generates loss plots if configured

Usage Examples

# Running MCA-based SFT training
from llamafactory.train.mca.workflow import run_sft

run_sft(
    model_args=model_args,
    data_args=data_args,
    training_args=mca_training_args,
    finetuning_args=finetuning_args,
)

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment