](https://mseep.ai/app/ototao-unsloth-mcp-server)
卸下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、拥抱脸等)
快速开始
- 安装Uncloth:
pip install unsloth - 安装并构建服务器:
cd unsloth-server
npm install
npm run build- 添加到MCP设置:
{
"mcpServers": {
"unsloth-server": {
"command": "node",
"args": ["/path/to/unsloth-server/build/index.js"],
"env": {
"HUGGINGFACE_TOKEN": "your_token_here" // Optional
},
"disabled": false,
"autoApprove": []
}
}
}可用工具
check_安装
验证系统上是否正确安装了Uncloth。
参数:无
示例:
const result = await use_mcp_tool({
server_name: "unsloth-server",
tool_name: "check_installation",
arguments: {}
});list_supported_models
获取Uncloth支持的所有型号的列表,包括Llama、Mistral、Phi和Gemma变体。
参数:无
示例:
const result = await use_mcp_tool({
server_name: "unsloth-server",
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-server",
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-server",
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-server",
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-server",
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-server",
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
