Skip to main content
Together AI supports two fine-tuning implementations:
  • LoRA: Trains a small set of adapter weights on top of the frozen base model.
  • Full fine-tuning: Updates every weight in the base model.
LoRA is the default on Together AI, because it trains 0.1% to 1% of the parameters that full fine-tuning would, costs less, and produces a compact adapter rather than a full set of model weights. Both supervised fine-tuning and preference fine-tuning support LoRA and full fine-tuning.

Choose a method

Use LoRA when:
  • You’re starting a new fine-tune: LoRA gets you a working model fastest and at the lowest cost.
  • You want to ship multiple adapters from the same base: Adapters are small and can be swapped on a single hosted base model.
  • You’re tuning style, format, or domain vocabulary: These are the kinds of updates that LoRA handles best.
Use full fine-tuning when:
  • The base behavior needs a substantial change: A model that doesn’t know the task you’re training for may need every weight updated, not just an adapter.
  • LoRA results plateau below your target: Try increasing lora_r and lora_alpha first, and if quality still falls short, switch to full fine-tuning.

Set the method on your job

The lora parameter defaults to True. Pass lora=False (or --no-lora on the CLI) to run a full fine-tune instead. Everything else about the job stays the same.

LoRA settings

For the parameters that tune LoRA itself (lora_r, lora_alpha, lora_dropout, lora_trainable_modules), see the fine-tuning API reference.

Default target modules

When you don’t set lora_trainable_modules, it defaults to all-linear, which applies LoRA to the modules listed for each model in the tables below. To customize, pass a comma-separated list of module names instead. Each module you list must appear in the model’s allow-list. Whitespace around module names is ignored, but a non-empty value that parses to no modules (for example "," or " , ") is rejected.

Text models

Multimodal models

Target MoE expert layers

On mixture-of-experts (MoE) models, you can apply LoRA to the expert feed-forward projections instead of the attention projections. Set lora_trainable_modules to the expert modules w_up, w_gate, and w_down. Together uses a compact shared-factor adapter layout across experts, so the adapter stays small even on very large models. Use expert targeting when your task depends on the model’s domain knowledge (the feed-forward experts) rather than its attention patterns — for example, adapting an MoE base to a new domain or task family.
You can’t combine expert and attention modules in one job. Pass either the attention projections (the default) or the expert projections, not both, or the job fails validation. Expert LoRA is available on these models:
  • Mixtral: mistralai/Mixtral-8x7B-v0.1, mistralai/Mixtral-8x7B-Instruct-v0.1.
  • Qwen3 MoE: Qwen/Qwen3-30B-A3B-Base, Qwen/Qwen3-30B-A3B, Qwen/Qwen3-30B-A3B-Instruct-2507, Qwen/Qwen3-235B-A22B, Qwen/Qwen3-235B-A22B-Instruct-2507, Qwen/Qwen3-Coder-30B-A3B-Instruct.
  • Qwen3-Next: Qwen/Qwen3-Next-80B-A3B-Instruct, Qwen/Qwen3-Next-80B-A3B-Thinking.
  • GLM-4: zai-org/GLM-4.6, zai-org/GLM-4.7.
Every expert-LoRA job produces a LoRA adapter served on top of the base model. Unlike a standard LoRA, an expert-LoRA adapter is never merged into a full set of weights, so deploy it as an adapter on any of the models above. See adapter upload.

What to expect from full fine-tuning

  • Supported models: Full fine-tuning is available for a subset of the models that support LoRA. Large mixture-of-experts models, long-context variants, and some vision-language models are LoRA-only. See supported models for the per-model breakdown.
  • Smaller batch sizes: Because full fine-tuning updates every weight, it carries a larger memory footprint, so the maximum batch size for a given model is generally smaller than the LoRA equivalent.
  • Higher cost: Full fine-tuning trains every parameter rather than the 0.1% to 1% a LoRA job touches, so it consumes more compute and costs more. See pricing for details.
To check a single model before submitting a job, read supports_full_training from the model limits endpoint. When it’s False, the model is LoRA-only, and passing lora=False returns a validation error.

Serve your model

How you deploy depends on the method:
  • LoRA: After the job completes, deploy the merged model on a dedicated endpoint. See deployment.
  • Full fine-tuning: The job produces a complete model rather than a compact adapter. Deploy it on a dedicated endpoint, or download the weights for local use. See deployment.