使用说明
卸下MCP服务器
MCP服务器 不懒 -该库使LLM微调速度提高了2倍,内存减少了80%。
什么是Uncloth?
Unloth是一个库,它大大提高了微调大型语言模型的效率:
- 速度:与标准方法相比,微调速度快2倍
- 记忆:VRAM使用率降低80%,允许在消费级GPU上对较大型号进行微调
- 上下文长度:长达13倍的上下文长度(例如,80GB GPU上Llama 3.3的89K令牌)
- 准确度:模型质量或性能没有损失
Unloth通过用OpenAI的Triton语言编写的自定义CUDA内核、优化的反向传播和动态4位量化来实现这些改进。
特征
- 优化Llama、Mistral、Phi、Gemma和其他型号的微调
- 用于高效训练的4位量化
- 扩展上下文长度支持
- 用于模型加载、微调和推理的简单API
- 导出为各种格式(GGUF、拥抱脸等)
安装
当前状态: 从源代码安装(如下)。该包是为npm准备的 (
name,bin,server.json注册表清单已到位),但 尚未 发表 --thenpx-下一节中的基于配置仅在 npm发布土地。
-
在将运行微调的机器上安装Uncloth:
pip install unsloth -
从源构建服务器:
git clone https://github.com/OtotaO/unsloth-mcp-server.git cd unsloth-mcp-server npm install npm run build -
指向您的MCP客户端(克劳德桌面, 克劳德代码, 克莱恩, 光标,…)在建成的入口点:
{ "mcpServers": { "unsloth": { "command": "node", "args": ["/path/to/unsloth-mcp-server/build/index.js"], "env": { "HUGGINGFACE_TOKEN": "your_token_here" } } } }HUGGINGFACE_TOKEN是可选的(仅适用于门控/私人模式)。省略env如果你不使用,请屏蔽。
npm发布后(计划中)
一旦发布到npm unsloth-mcp-server,相同的客户端可以通过以下方式在stdio上运行它 npx 没有克隆/构建:
{
"mcpServers": {
"unsloth": {
"command": "npx",
"args": ["-y", "unsloth-mcp-server"],
"env": { "HUGGINGFACE_TOKEN": "your_token_here" }
}
}
}
对于 克劳德代码: claude mcp add unsloth -- npx -y unsloth-mcp-server
可用工具
check_安装
验证系统上是否正确安装了Uncloth。
参数:无
示例:
const result = await use_mcp_tool({
server_name: "unsloth",
tool_name: "check_installation",
arguments: {}
});
list_supported_models
获取Uncloth支持的所有型号的列表,包括Llama、Mistral、Phi和Gemma变体。
参数:无
示例:
const result = await use_mcp_tool({
server_name: "unsloth",
tool_name: "list_supported_models",
arguments: {}
});
load_model
加载带有Unloth优化的预训练模型,以实现更快的推理和微调。
参数:
model_name(必填):要加载的模型名称(例如,“unsloth/Llama-3.2-1B”)max_seq_length(可选):模型的最大序列长度(默认值:2048)load_in_4bit(可选):是否以4位量化加载模型(默认值:true)use_gradient_checkpointing(可选):是否使用梯度检查点来节省内存(默认值:true)
示例:
const result = await use_mcp_tool({
server_name: "unsloth",
tool_name: "load_model",
arguments: {
model_name: "unsloth/Llama-3.2-1B",
max_seq_length: 4096,
load_in_4bit: true
}
});
finetune_型号
使用LoRA/QLoRA技术使用Unloth优化对模型进行微调。
参数:
model_name(必填):要微调的型号名称dataset_name(必填):用于微调的数据集名称output_dir(必填):保存微调模型的目录max_seq_length(可选):训练的最大序列长度(默认值:2048)lora_rank(可选):LoRA微调排名(默认值:16)lora_alpha(可选):用于LoRA微调的Alpha(默认值:16)batch_size(可选):训练批量大小(默认值:2)gradient_accumulation_steps(可选):梯度累积步数(默认值:4)learning_rate(可选):培训学习率(默认值:2e-4)max_steps(可选):最大训练步数(默认值:100)dataset_text_field(可选):数据集中包含文本的字段(默认值:'text')load_in_4bit(可选):是否使用4位量化(默认值:true)
示例:
const result = await use_mcp_tool({
server_name: "unsloth",
tool_name: "finetune_model",
arguments: {
model_name: "unsloth/Llama-3.2-1B",
dataset_name: "tatsu-lab/alpaca",
output_dir: "./fine-tuned-model",
max_steps: 100,
batch_size: 2,
learning_rate: 2e-4
}
});
generate_text
使用微调的Uncloth模型生成文本。
参数:
model_path(必填):通往微调模型的路径prompt(必填):文本生成提示max_new_tokens(可选):要生成的最大令牌数(默认值:256)temperature(可选):文本生成温度(默认值:0.7)top_p(可选):Top-p用于文本生成(默认值:0.9)
示例:
const result = await use_mcp_tool({
server_name: "unsloth",
tool_name: "generate_text",
arguments: {
model_path: "./fine-tuned-model",
prompt: "Write a short story about a robot learning to paint:",
max_new_tokens: 512,
temperature: 0.8
}
});
导出模型
将微调后的Unloth模型导出为各种格式以进行部署。
参数:
model_path(必填):通往微调模型的路径export_format(必填):导出格式(gguf、ollama、vllm、hugginface)output_path(必填):保存导出模型的路径quantization_bits(可选):量化位(用于GGUF导出)(默认值:4)
示例:
const result = await use_mcp_tool({
server_name: "unsloth",
tool_name: "export_model",
arguments: {
model_path: "./fine-tuned-model",
export_format: "gguf",
output_path: "./exported-model.gguf",
quantization_bits: 4
}
});
高级用法
自定义数据集
您可以通过正确格式化自定义数据集并将其托管在Hugging Face上或提供本地路径来使用它们:
const result = await use_mcp_tool({
server_name: "unsloth",
tool_name: "finetune_model",
arguments: {
model_name: "unsloth/Llama-3.2-1B",
dataset_name: "json",
data_files: {"train": "path/to/your/data.json"},
output_dir: "./fine-tuned-model"
}
});
内存优化
对于硬件有限的大型型号:
- 减少批量大小并增加梯度累积步骤
- 使用4位量化
- 启用渐变检查点
- 尽可能缩短序列长度
故障排除
常见问题
- CUDA内存不足:减小批量大小,使用4位量化,或尝试较小的模型
- 导入错误:确保安装了正确版本的割炬、变压器和无纺布
- 未找到型号:检查您是否使用受支持的型号名称或是否有权访问私有型号
版本兼容性
- Python:3.10、3.11或3.12(不是3.13)
- CUDA:建议11.8或12.1+
- PyTorch:2.0+推荐
性能基准
| 模型 | VRAM | 解布速度 | VRAM缩减 | 上下文长度 |
|---|---|---|---|---|
| Llama 3.3(70B) | 80GB | 快2倍 | >75% | 长13倍 |
| Llama 3.1(8B) | 80GB | 快2倍 | >70% | 长12倍 |
| Mistral v0.3(7B) | 80GB | 快2.2倍 | 少75% | - |
需求
- Python 3.10-3.12
- 支持CUDA的NVIDIA GPU(推荐)
- Node.js和npm
许可证
阿帕奇-2.0