category
微调是在生产中部署开源大型语言模型(LLM)的关键步骤。它允许您自定义模型,以更好地满足您的特定需求和用例。本节提供了关于如何使用各种平台和工具微调开源LLM的全面指南。
Modal
Klu模态微调
在生产中使用Modal对开源大型语言模型(LLM)进行微调涉及几个步骤。这里有一个简明的指南,可以帮助您完成整个过程:
- 创建模式帐户--第一步是创建模式帐户。这是您唯一需要的本地依赖项。
- Install-Modal——使用命令pip-Install-Modal在当前Python虚拟环境中安装Modal。
- 设置模态令牌——使用命令Modal Token new在环境中设置模态令牌。
- 拥抱脸令牌——你需要在你的工作空间里有一个名为拥抱脸的秘密。使用HUGGINGFACE中的相同密钥(API令牌下的设置)填充HUGGING_FACE_HUB_TOKEN和HUGGINGFACE_TOKEN。
- 模特访问权限——对于几个模特,你需要转到拥抱脸页面,并同意获得访问权限的条款和条件(立即授予)。
- 启动培训作业--要启动培训作业,请使用命令mode run train.py--dataset sql_dataset.py--base chat7--run id chat7 sql。这个例子对Llama 7B Chat进行了微调,以生成SQL查询(在大约30分钟内为10个时期训练了10k个例子)。
Modal允许在可重复的环境中进行多GPU训练,使用您选择的分片技术可以轻松地在多达8个GPU上微调模型。您可以在代码中定义环境,这样您的微调运行工作对整个团队都是可重复的。你可以从你的应用程序或终端按需生成微调运行,并且只在使用GPU时支付GPU的费用。Modal还允许您轻松定义和运行超参数扫描。
请记住,微调通常是一个迭代过程。在验证和测试集上获得令人满意的性能后,实施强大的安全措施以保护LLM和应用程序免受潜在威胁和攻击至关重要。
最后,需要注意的是,微调是一种用于提高机器学习模型性能的技术。与提示设计相比,它提供了几个优势,包括提高了结果质量,能够在比提示中更多的示例上进行训练,由于更短的提示而节省了令牌,以及减少了请求延迟。
Together.ai
使用Together.ai对生产中的开源大型语言模型(LLM)进行微调涉及几个步骤。这里有一个简明的指南:
形成数据集首先,您需要创建数据集。这可以使用Python来完成。数据集的格式应使问题和答案配对。这里有一个Python代码片段可以帮助您做到这一点:
将熊猫作为pd导入
此代码读取包含问题和答案的CSV文件,将数据格式化为特定格式,然后将其保存为JSONL文件。
上传数据集一旦数据集准备好,您需要使用以下命令将其上传到Together.ai:
此命令将在上一步中创建的JSONL文件上载到Together.ai。
运行微调上传数据集后,您可以使用以下命令启动微调过程:
此命令启动Together.ai上的微调过程。
检查结果您可以使用以下命令检查微调过程的结果:
此命令列出微调过程的事件。
在生产中使用微调模型成功微调模型后,您可以在应用程序中使用它。这里有一个Python代码片段可以帮助您做到这一点:
这段代码为微调模型定义了一个类,并设置了模型端点和API键。
请记住,微调是一个可选步骤,可以提高LLM在特定任务中的性能。还值得注意的是,可以使用各种技术进行微调,例如低秩自适应(LoRA)。
SkyPilot
在生产中使用SkyPilot对开源大型语言模型(LLM)进行微调和部署需要几个步骤。这里有一个简明的指南,可以帮助您完成整个过程:
微调LLM
- 设置您的环境--克隆项目存储库并使用pip安装SkyPilot和DVC。配置您的云提供商凭据。您可以参考SkyPilot文档了解更多详细信息。
pip install skypilot[all] dvc[all]
微调您的模型——使用DVC进行可复制的管道和高效的数据集版本控制,使用SkyPilot按需启动云计算资源,使用HuggingFace Transformers进行高效的transformer模型培训。- 使用SkyPilot进行经济高效的微调——SkyPilot可以用于在您自己的云帐户中对您的私人数据进行经济有效的LLM微调。它通过支持自动恢复的现场实例微调,提供了高GPU可用性并降低了成本。
部署LLM
- 为您的模型服务——培训完成后,您可以在自己的云环境中使用一个命令为您的模式服务。
sky launch -c serve serve.yaml --env MODEL_CKPT=<your-model-checkpoint>/chatbot/7b
使用SkyPilot进行部署--SkyPilot通过在任何云上启动作业和集群,自动排队和运行它们,并通过在您能够使用的所有区域/地区/云中进行资源调配(自动故障切换),最大限度地提高GPU可用性,从而抽象出云基础设施。- 一键在云中启动vLLM——SkyPilot提供了一个简单的yaml服务。只需一个SkyPilot命令,您就可以在自己的云帐户中,在任何云上启动LLaMA-65B的vLLM。
解决GPU短缺问题——LLM通常需要高端GPU,如令人垂涎的A100-40GB或A100-80GB GPU。SkyPilot配备了一个自动故障切换设置器,如果无法设置请求的资源,该设置器会自动重试在不同区域(或云)中设置集群。- 使用托管现货作业可节省成本--SkyPilot支持可从抢占中自动恢复的托管现货作业。此功能通过使可抢占的点实例适用于长时间运行的作业,节省了大量成本(例如,GPU虚拟机高达70%)。
请记住,将<your-backet-name>和<your-wandb-api-key>替换为实际存储桶名称和wandb api密钥,并将<your-model-checket>替换为模型检查点的路径。
- 登录 发表评论
- 56 次浏览
Tags
最新内容
- 8 hours ago
- 10 hours 58 minutes ago
- 11 hours ago
- 3 days ago
- 3 days 9 hours ago
- 3 days 10 hours ago
- 3 days 10 hours ago
- 3 days 10 hours ago
- 1 week ago
- 1 week ago