Snowflake LLM training library
Project description

| Documentation | Blog |
Latest News
- [2025/05] Fastest Speculative Decoding in vLLM with Arctic Inference and Arctic Training
- [2025/03] Snowflake Arctic Embed Joins ArcticTraining: Simple And Scalable Embedding Model Training
- [2025/01] ArcticTraining: Simplifying and Accelerating Post-Training for LLMs
- [2024/12] SwiftKV: Accelerating Enterprise LLM Workloads with Knowledge Preserving Compute Reduction
ArcticTraining: Simplifying and Accelerating Post-Training for LLMs
ArcticTraining is a framework designed to simplify and accelerate the post-training process for large language models (LLMs). It addresses challenges in current frameworks, such as limited support for rapid prototyping and the lack of native data generation tools, by offering modular trainer designs, simplified code structures, and integrated pipelines for creating and cleaning synthetic data. These features enable users to enhance LLM capabilities, like code generation and complex reasoning, with greater efficiency and flexibility. Read more about ArcticTraining in our blog.
Projects
The projects folder contains various special projects we have released that build on-top of ArcticTraining. Each project includes it's own README and associated assets to get started:
Papers
Quickstart
To get started training a model with ArcticTraining, follow the steps below:
- Install the ArcticTraining package and its dependencies:
pip install arctic-training
- Create a training recipe YAML that uses the built-in Supervised Fine-Tuning (SFT) trainer:
type: sft
micro_batch_size: 2
model:
name_or_path: meta-llama/Llama-3.1-8B-Instruct
data:
sources:
- HuggingFaceH4/ultrachat_200k
checkpoint:
- type: huggingface
save_end_of_training: true
output_dir: ./fine-tuned-model
- Run the training recipe with the ArcticTraining CLI (see below). This will use the
DeepSpeedlauncher behind the scenes, you can pass any compatible DeepSpeed launcher arguments to the ArcticTraining CLI (e.g., --num_nodes, --num_gpus).
arctic_training path/to/sft-recipe.yaml
Customize Training
To customize the training workflow, you can modify the training recipe YAML we created in step 3 above. For example, you can change the model, dataset, checkpoint, or other settings to meet your specific requirements. A full list of configuration options can be found on the configuration documentation page.
Creating a New Trainer
If you want to create a new trainer, you can do so by subclassing the
Trainer or SFTTrainer classes and implementing the necessary
modifications. For example, you could create a new trainer from SFTTrainer
that uses a different loss function:
from arctic_training import SFTTrainer
class CustomTrainer(SFTTrainer):
name = "my_custom_trainer"
def loss(self, batch):
# Custom loss function implementation
return loss
This new trainer will be automatically registered with ArcticTraining when the
script containing the declaration of CustomTrainer is imported. By default,
ArcticTraining looks for a train.py in the current working directory to find
custom trainers. You can also specify a custom path to the trainers with the
code field in your training recipe:
type: my_custom_trainer
code: path/to/custom_trainers.py
model:
name_or_path: meta-llama/Llama-3.1-8B-Instruct
data:
sources:
- HuggingFaceH4/ultrachat_200k
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file arctic_training-0.0.5-py3-none-any.whl.
File metadata
- Download URL: arctic_training-0.0.5-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
173dcb6b7307b1cad7cd3d1dd044078e8b135afd0f34e0b826bc7ec2a1cd5f30
|
|
| MD5 |
710c5b811b97da6ccb1d75cd0fea661d
|
|
| BLAKE2b-256 |
a2a8b7f347d4b45768d934d547755a46676b12da0d76391fa35ee412285ae39d
|