Trackio documentation

RapidFire AI 集成

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

RapidFire AI 集成

RapidFire AI 支持快速实验,让 AI 定制更简单、更快速、更具影响力。它专为智能体 RAG、上下文工程、微调以及 LLM 和其他 DL 模型的训练后优化而构建,无需额外资源即可实现 16-24 倍的吞吐量提升。它支持两个关键用例:

  • 微调与后训练:比较学习率、LoRA 配置、批大小以及其他训练超参数
  • RAG 优化:评估分块策略、嵌入模型、检索方法和重排序设置

在运行实验时,您通常会同时执行许多配置。RapidFire AI 提供原生的 Trackio 集成,以便以最小的配置开销来跟踪和可视化所有这些运行。

安装

Trackio 作为 RapidFire AI 的依赖项包含在内:

pip install rapidfireai

配置

在导入 RapidFire 组件之前,通过设置环境变量来启用 Trackio 作为跟踪后端:

import os

# Enable Trackio as the tracking backend
os.environ["RF_TRACKIO_ENABLED"] = "true"

# Optionally disable other tracking backends for standalone Trackio usage
os.environ["RF_MLFLOW_ENABLED"] = "false"
os.environ["RF_TENSORBOARD_ENABLED"] = "false"

您还可以设置 Trackio 项目名称:

export TRACKIO_PROJECT_NAME="my-experiment"

微调示例

如需查看完整可运行的示例,请参阅教程笔记本:

下面是一个使用 Trackio 跟踪运行微调实验的最小示例:

import os
os.environ["RF_TRACKIO_ENABLED"] = "true"

from rapidfireai import Experiment
from rapidfireai.automl import RFGridSearch, RFModelConfig, RFLoraConfig, RFSFTConfig

experiment = Experiment(experiment_name="my-sft-experiment", mode="fit")

config = RFModelConfig(
    model_name="TinyLlama/TinyLlama-1.1B-Chat-v1.0",
    peft_config=RFLoraConfig(r=8, lora_alpha=16, target_modules=["q_proj", "v_proj"]),
    training_args=RFSFTConfig(
        learning_rate=1e-4,
        max_steps=128,
        logging_steps=2,
        eval_strategy="steps",
        eval_steps=4,
    ),
    model_type="causal_lm",
)

experiment.run_fit(
    RFGridSearch(configs=[config], trainer_type="SFT"),
    create_model_fn,
    train_dataset,
    eval_dataset,
    num_chunks=4
)

RAG 优化示例

如需查看完整可运行的示例,请参阅教程笔记本:

RapidFire AI 还支持 RAG 流水线优化。以相同方式启用 Trackio 跟踪:

import os
os.environ["RF_TRACKIO_ENABLED"] = "true"

from rapidfireai import Experiment
from rapidfireai.evals.automl import List, RFGridSearch, RFLangChainRagSpec, RFvLLMModelConfig

experiment = Experiment(experiment_name="my-rag-experiment", mode="evals")

rag_spec = RFLangChainRagSpec(
    document_loader=your_document_loader,
    text_splitter=your_text_splitter,
    embedding_cls=your_embedding_class,
    search_kwargs={"k": List([5, 10])},  # 2 retrieval configs to compare
)

config_group = RFGridSearch({
    "vllm_config": RFvLLMModelConfig(rag=rag_spec, ...),
    "batch_size": 32,
    ...
})

experiment.run_evals(
    config_group=config_group,
    dataset=eval_dataset,
    num_actors=1,
    num_shards=4,
)

被跟踪的内容

RapidFire AI 会自动将以下内容记录到 Trackio:

微调指标:

  • loss、learning_rate、epoch、step - 训练进度
  • eval_loss - 验证损失
  • 来自您的 compute_metrics 函数的自定义指标(例如 rougeL、bleu)

RAG 评估指标:

  • 检索指标:Precision、Recall、F1 Score、NDCG@K、MRR
  • 生成指标:您自定义的指标(例如,Accuracy)

运行配置:

  • 每次运行的所有超参数
  • 模型设置、LoRA 配置、分块策略等。

查看仪表板

启动 Trackio 仪表板以可视化您的实验:

trackio show --project "my-sft-experiment"

或从 Python:

import trackio
trackio.show(project="my-sft-experiment")

仪表板会实时显示所有运行任务的训练曲线,方便您并排比较不同配置:

Trackio dashboard showing RapidFire AI fine-tuning metrics

Trackio 仪表板,用于比较 4 次采用不同超参数的微调运行。图表展示了训练损失、验证损失、学习率调度以及 ROUGE-L 分数——便于识别哪种配置(橙色显示的 Run 4)实现了最低损失和最佳生成质量。

文档:

Update on GitHub