Mind Lab Toolkit (MinT)
开始使用

快速入门

本章带你在不到 30 分钟内完成首次 MinT 训练。流程包括:注册、安装 SDK、配置 API Key、组织数据、提交训练、拿到 LoRA 并进行采样。所有步骤都在远端 GPU 上执行,无需本地显卡。

五步概览

序号模块内容简介
1注册与登录通过白名单邮箱注册,获取企业版账号
2安装 SDKPython 3.11+,pip 安装 mindlab-toolkit
3配置 API Key拿到 sk-* Key,写入环境变量
4第一个训练任务组织数据集、构建 Rubric、跑一次 SFT
5部署与采样保存 LoRA 权重,调用 sampling_client 验证效果

1. 注册与登录

使用白名单邮箱注册并登录 MinT 企业版平台:https://mint-try.macaron.xin/。管理员会在企业账号中分配工作空间与算力配额。如尚未获得邀请,可联系销售:sales@mindlab.ltd

MinT 企业版登录页

图 1a — MinT 企业版登录页

MinT 企业版注册与工作台

图 1b — 登录后工作台

2. 安装客户端 SDK

MinT 客户端要求 Python 3.11 或以上。建议使用 venv 或 conda 创建独立环境:

pip install git+https://github.com/MindLab-Research/mindlab-toolkit.git

安装完成后会同时引入 mint 包以及与之兼容的 tinker(>= 0.15.0)运行时辅助库。导入 mint 时,会自动补丁 tinker 的密钥校验逻辑,使 sk-* 形式的 API Key 可以直接使用。

如果你已经有现成的 Tinker 训练脚本,只需替换一行 import 即可迁移到 MinT:

import mint as tinker

注意

在 MinT 训练循环中请不要调用 zero_grad_async,梯度归零由服务端统一处理。

3. 配置 API Key

macaron.im/mindlab/mint 申请到 sk- 开头的 API Key 后,将其写入环境变量。中国大陆区域请使用 mint-cn 端点:

export MINT_API_KEY=sk-your-api-key-here
export MINT_BASE_URL=https://mint.macaron.xin/   # 大陆区: https://mint-cn.macaron.xin/
export TINKER_BASE_URL=$MINT_BASE_URL
export TINKER_API_KEY=$MINT_API_KEY

项目根目录下的 .env 文件也会被自动加载,方便在团队内部分发配置。

4. 跑通第一个训练任务

MinT 的训练数据以 mint.types.Datum 序列表示:每条样本包含一个 token 序列与每个 token 的损失权重。对 SFT 而言,prompt 部分的损失权重为 0,response 部分为 1,整体经过 teacher-forcing 偏移。

import mint
from mint import types

def process_sft_example(example: dict, tokenizer) -> types.Datum:
    prompt_ids   = tokenizer.encode(example['prompt'])
    response_ids = tokenizer.encode(example['response'])
    all_tokens = prompt_ids + response_ids
    weights    = [0.0] * len(prompt_ids) + [1.0] * len(response_ids)
    return types.Datum(
        model_input=types.ModelInput.from_ints(tokens=all_tokens[:-1]),
        loss_fn_inputs={
            'target_tokens': all_tokens[1:],
            'weights':       weights[1:],
        },
    )

准备好数据后,用以下最小训练循环完成第一次 SFT:

service_client  = mint.ServiceClient
training_client = service_client.create_lora_training_client(
    base_model='Qwen/Qwen3-0.6B',
    rank=16, train_mlp=True, train_attn=True, train_unembed=True,
)
adam_params = types.AdamParams(learning_rate=5e-5)
for step, batch in enumerate(batches_of(data, batch_size=8)):
    fb  = training_client.forward_backward(batch, loss_fn='cross_entropy')
    opt = training_client.optim_step(adam_params)
    print(f'step={step} metrics={fb.result.metrics}')
    opt.result

脚本运行时,真正的计算发生在远端 GPU。客户端只在 .result 处阻塞,可以同时编排多个 forward_backward / optim_step 调用。

5. 部署与采样

训练完成后,保存当前 LoRA 权重并拿到一个可立即采样的客户端:

sampling_client = training_client.save_weights_and_get_sampling_client(name='my-run-v1')
prompt_ids = tokenizer.encode('3 * 7 =')
samples = sampling_client.sample(
    prompt=types.ModelInput.from_ints(prompt_ids),
    sampling_params=types.SamplingParams(max_tokens=16, temperature=0.7),
    num_samples=4,
)
for s in samples.sequences:
    print(tokenizer.decode(s.tokens))

故障排查

如果 _require_api_key 报错或预检超时,请检查 MINT_API_KEYMINT_BASE_URL 是否正确导出,以及 mint.macaron.xin / mint-cn.macaron.xin 是否可达。

下一步

跑通后建议看:SFT 监督微调了解超参与 Recipe;LoRA 与检查点了解在线挂载与合并部署两种形态;OpenAI 兼容 Endpoint了解业务侧对接。

本页目录