Together AI 支持微调 Hugging Face 任意模型
如今 AI 的发展速度令人惊叹。每天都有数百个新模型出现在 Hugging Face Hub 上,有些是 Llama 或 Qwen 等流行基础模型的变体,有些则采用了新颖的架构,或是针对特定领域从头训练的。无论是基于临床数据训练的医疗 AI、为特定编程语言优化的编码助手,还是针对特定文化背景微调的多语言模型,Hugging Face Hub 已成为开源 AI 创新的核心。
但挑战也随之而来:找到一个出色的模型只是开始。当你发现一个模型 90% 符合你的用例,但还需要那额外的 10% 定制化时,该怎么办?传统的微调基础设施复杂、昂贵,通常需要大量的 DevOps 专业知识来搭建和维护。
这正是 Together AI 和 Hugging Face 今天要弥合的鸿沟。我们宣布推出一项强大的新功能,让整个 Hugging Face Hub 的模型都可以利用 Together AI 的基础设施进行微调。现在,Hub 上的任何兼容 LLM,无论是来自 Meta 还是个人贡献者,都可以像使用 Together 平台一样轻松、可靠地进行微调。🚀
5 分钟快速上手
以下是在 Together AI 平台上开始微调 HF 模型所需的全部步骤:
#pip install together
from together import Together
client = Together(api_key="your-api-key")
file_upload = client.files.upload("sft_examples.jsonl", check=True)
# Fine-tune any compatible HF model
job = client.fine_tuning.create(
model="togethercomputer/llama-2-7b-chat", # Base model for configuration
from_hf_model="HuggingFaceTB/SmolLM2-1.7B-Instruct", # Your chosen HF model
training_file=file_upload.id,
n_epochs=3,
learning_rate=1e-5,
hf_api_token="hf_***", # for private repos
hf_output_repo_name="my-username-org/SmolLM2-1.7B-FT" # to upload model back to hub
)
print(f"Training job started: {job.id}")
就这么简单!你的模型将在 Together 的基础设施上进行训练,并可用于推理、下载,甚至上传回 Hub!对于私有仓库,只需使用 hf_api_token="hf_xxxxxxxxxxxx" 添加你的 HF token 即可。
工作原理
如上例所示,当你在 Together AI 上微调 Hugging Face 模型时,实际上需要指定两个模型:
- 基础模型 (
model参数):来自 Together 官方模型目录 的模型,它提供了基础设施配置、训练优化和推理设置。 - 自定义模型 (
from_hf_model参数):你实际要微调的 Hugging Face 模型。
你可以把基础模型看作一个“训练模板”。它告诉系统如何最优地分配 GPU 资源、配置内存使用、设置训练流程,并为推理准备模型。为了获得最佳效果,你的自定义模型应具有与基础模型相似的架构、近似的大小和序列长度。
如上例所示,如果你想微调 HuggingFaceTB/SmolLM2-1.7B-Instruct(它使用 Llama 架构),你会使用 togethercomputer/llama-2-7b-chat 作为基础模型模板,因为它们共享相同的底层架构。
这个集成是双向的。Together AI 可以从 Hugging Face Hub 拉取任何兼容的公共模型进行训练,在拥有适当 API token 的情况下,也可以下载私有仓库的模型。训练完成后,如果你指定了 hf_output_repo_name,你微调好的模型可以自动推送回 Hub,供你的团队或更广泛的社区使用。
一般来说,所有参数在 100B 以下的 CausalLM 模型都预期可以工作。关于如何选择基础模型和自定义模型的完整指南,请阅读我们的详细文档!
这对开发者意味着什么
这个集成解决了许多人实际面临的问题:在 Hugging Face 上找到了一个好模型,却没有基础设施来为你的特定需求进行微调。现在,你只需几个 API 调用,就能从发现一个有潜力的模型,到拥有一个定制版本并投入生产。
最大的好处是消除了摩擦。你不再需要花费数天时间搭建训练基础设施,也不再受限于各个平台官方支持的模型。现在,你可以用 Hub 上的任何兼容模型进行实验。找到了一个接近你需求的专用编码模型?用你的数据训练它!📈
对于团队来说,这意味着更快的迭代周期。你可以快速测试多种模型方案,基于社区创新进行构建,甚至可以将自己微调好的模型作为进一步定制化的起点。
团队如何使用此功能?
此功能的 Beta 测试用户和早期采用者已经在各种不同的用例中看到了成果。
Slingshot AI 已将此功能直接集成到他们的模型开发流程中。他们不再局限于 Together 的模型目录,现在可以在自己的基础设施上运行部分训练流程,将这些模型上传到 Hub,然后使用 Together AI 微调平台对这些模型进行持续微调。这极大地加速了他们的开发周期,并使他们能够轻松尝试各种模型变体。
Parsed 在他们的工作中展示了这种方法的力量,证明了经过精心微调的小型开源模型可以超越更大的闭源模型。通过对模型进行精心策划的数据集微调,他们在保持成本效益和完全控制模型的同时,实现了更优的性能。
我们从其他客户那里看到的常见用法包括:
- 领域适应:将通用模型专业化,应用于医疗、金融或法律等行业。团队发现已经具备某些领域知识的模型,然后使用 Together 的基础设施,根据他们的特定数据和需求进行适配。
- 迭代式模型改进:从一个社区模型开始,微调它,然后将结果作为进一步优化的起点。这产生了一种复合改进效应,如果从头开始则很难实现。
- 社区模型专业化:利用已经针对特定任务(如编码、推理或多语言能力)优化的模型,并进一步为专有用例进行定制。
- 架构探索:在新架构和模型变体发布时快速测试它们,而无需等待它们被添加到官方平台。
团队报告的最显著优势是 价值实现速度。他们不再需要花费数周时间搭建训练基础设施或花费数月从头训练模型,而是可以从社区中识别有潜力的起点,并在几天内让专业化模型投入生产。
成本效益是另一个主要好处。通过从已经具备相关能力的模型开始,团队需要更少的训练轮次,并且可以使用更小的数据集来达到目标性能,从而显著降低计算成本。
也许最重要的是,这种方法让团队能够利用开源社区的集体智慧。每一次突破、每一次专门的适配、每一个新颖的架构,都可能成为他们自己工作的起点。
展示你的成果!🔨
对于如此大规模的功能,我们正在根据实际使用情况积极改进体验,所以你的反馈将直接影响平台的发展!
可以从我们的实施指南开始,查看示例和故障排除技巧。如果你遇到问题或想分享你的构建成果,请加入我们的 Discord,我们的团队在那里,社区也非常活跃,乐于互相帮助。
如果你对 Together AI 的微调功能有任何反馈,或想更深入地探索它来满足你的任务需求,随时欢迎联系我们!
觉得有用?分享给更多人