跳到正文
原文
Hugging Face:Blog(RSS)·· 2023-09-28精选AI 评分62

Hugging Face 无代码教程:微调 LLaMA 2 并部署自己的聊天应用

Non-engineers guide: Train a LLaMA 2 chatbot

AI 导读

Hugging Face 发布面向非工程师的教程,用 Spaces、AutoTrain 和 ChatUI 三个工具,零代码微调 LLaMA 2 7b 并部署为可分享的聊天应用。

推荐理由

Hugging Face 员工用 Spaces、AutoTrain 和 ChatUI 演示零代码微调 LLaMA 2 并部署聊天应用,步骤可复现。

正文 · AI 翻译

简介

在本教程中,我们将向你展示如何在不编写任何代码的情况下构建自己的开源 ChatGPT!我们将使用 LLaMA 2 基础模型,通过开源指令数据集对其进行微调以用于聊天,然后将模型部署到一个可以与朋友分享的聊天应用上。一切只需点击即可实现。😀

为什么这很重要?机器学习,尤其是 LLM(大型语言模型),其受欢迎程度出现了前所未有的激增,已成为我们个人和商业生活中的关键工具。然而,对于大多数不在机器学习工程这一专业领域的人来说,训练和部署这些模型的复杂性似乎遥不可及。如果机器学习的预期未来是一个充满无处不在的个性化模型的未来,那么前方就有一个迫在眉睫的挑战:我们如何赋能那些没有技术背景的人独立驾驭这项技术?

在 Hugging Face,我们一直在默默地为这个包容性未来铺路。我们的工具套件,包括 Spaces、AutoTrain 和 Inference Endpoints 等服务,旨在让每个人都能轻松进入机器学习的世界。

为了展示这个民主化未来有多么触手可及,本教程将向你展示如何使用 Spaces、AutoTrain 和 ChatUI 来构建聊天应用。只需三个简单步骤,无需编写一行代码。顺便说一下,我也不是机器学习工程师,而是 Hugging Face GTM 团队的一员。如果我能做到,你也能做到!让我们开始吧!

Spaces 简介

Hugging Face 的 Spaces 是一项服务,它提供了易于使用的 GUI,用于构建和部署托管在 Web 上的机器学习演示和应用。该服务允许你使用 Gradio 或 Streamlit 前端快速构建机器学习演示,在 Docker 容器中上传自己的应用,甚至可以选择多个预配置的机器学习应用立即部署。

我们将从 Spaces 部署两个预配置的 Docker 应用模板:AutoTrain 和 ChatUI。

你可以在这里阅读更多关于 Spaces 的内容。

AutoTrain 简介

AutoTrain 是一款无代码工具,让非机器学习工程师(甚至非开发者 😮)无需编写代码即可训练最先进的机器学习模型。它可用于 NLP、计算机视觉、语音、表格数据,甚至现在还可以像我们今天要做的那样微调 LLM。

你可以在这里阅读更多关于 AutoTrain 的内容。

ChatUI 简介

ChatUI 正如其名,它是 Hugging Face 构建的开源 UI,提供了与开源 LLM 交互的界面。值得注意的是,它也是 HuggingChat 背后的同一个 UI,后者是我们 100% 开源的 ChatGPT 替代品。

你可以在这里阅读更多关于 ChatUI 的内容。

第 1 步:创建一个新的 AutoTrain Space

1.1 前往 huggingface.co/spaces 并选择“Create new Space”。


1.2 为你的 Space 命名,如果你计划将模型或 Space 公开,请选择首选的使用许可。

1.3 为了在你部署的 Space 中从 Docker 模板部署 AutoTrain 应用,请选择 Docker > AutoTrain。


1.4 选择用于运行应用的“Space hardware”。(注意:对于 AutoTrain 应用,免费的 CPU basic 选项就足够了,稍后的模型训练将使用单独的计算资源,我们稍后可以选择)

1.5 在“Space secrets”下添加你的“HF_TOKEN”,以便让此 Space 访问你的 Hub 账户。没有它,Space 将无法训练或保存新模型到你的账户。(注意:你的 HF_TOKEN 可以在 Hugging Face 个人资料的 Settings > Access Tokens 中找到,确保该 token 被选为“Write”)

1.6 选择你希望将 AutoTrain Space 设为“Private”还是“Public”,对于 AutoTrain Space 本身,建议保持为 Private,但你之后随时可以公开分享你的模型或 Chat App。

1.7 点击“Create Space”,就这样!新的 Space 需要几分钟来构建,之后你就可以打开 Space 并开始使用 AutoTrain。


第 2 步:在 AutoTrain 中启动模型训练

2.1 一旦你的 AutoTrain space 启动,你会看到下面的 GUI。AutoTrain 可用于多种不同类型的训练,包括 LLM 微调、文本分类、表格数据和扩散模型。由于我们今天专注于 LLM 训练,请选择“LLM”选项卡。

2.2 在“Model Choice”字段中选择你想训练的 LLM,你可以从列表中选择一个模型,或输入 Hugging Face 模型卡中的模型名称,在此示例中我们使用了 Meta 的 Llama 2 7b 基础模型,可从模型卡此处了解更多。(注意:LLama 2 是门控模型,需要你先向 Meta 请求访问权限才能使用,但也有很多其他非门控模型可供选择,比如 Falcon)

2.3 在“Backend”中选择你想用于训练的 CPU 或 GPU。对于 7b 模型,“A10G Large”就足够大了。如果你选择训练更大的模型,你需要确保该模型能完全放入你所选 GPU 的内存中。(注意:如果你想训练更大的模型并需要访问 A100 GPU,请发送邮件至 api-enterprise@huggingface.co)

2.4 当然,要微调模型,你需要上传“Training Data”。上传时,请确保数据集格式正确且为 CSV 文件格式。所需格式的示例可在此处找到。如果你的数据集包含多列,请务必从文件中选出包含训练数据的“Text Column”。在此示例中,我们将使用 Alpaca 指令微调数据集,有关该数据集的更多信息可在此处获取。你也可以直接从此处将其下载为 CSV。


2.5 可选:你可以上传“Validation Data”来测试你新训练的模型,但这不是必需的。

2.6 可以在 AutoTrain 中配置许多高级设置,以减少模型的内存占用,例如更改精度(“FP16”)、量化(“Int4/8”)或是否采用 PEFT(参数高效微调)。建议按默认设置使用这些选项,因为这会减少训练模型的时间和成本,并且对模型性能只有很小的影响。

2.7 同样,你可以在“Parameter Choice”中配置训练参数,但现在我们先使用默认设置。


2.8 现在一切都设置好了,选择“Add Job”将模型添加到你的训练队列,然后选择“Start Training”(注意:如果你想用不同的超参数训练多个模型版本,可以添加多个作业同时运行)

2.9 训练开始后,你会看到在你的 Hub 账户中创建了一个新的“Space”。这个 Space 正在运行模型训练,一旦完成,新模型也会显示在你的 Hub 账户的“Models”下。(注意:要查看训练进度,你可以在 Space 中查看实时日志)

2.10 去喝杯咖啡吧,根据你的模型和训练数据的大小,这可能需要几个小时甚至几天。完成后,一个新模型将出现在你的 Hugging Face Hub 账户的“Models”下。


第 3 步:使用你的模型创建一个新的 ChatUI Space

3.1 按照与步骤 1.1 > 1.3 相同的过程设置一个新的 Space,但选择 ChatUI docker 模板而不是 AutoTrain。

3.2 选择你的“Space Hardware”,对于我们的 7b 模型,A10G Small 足以运行该模型,但这会根据你的模型大小而有所不同。


3.3 如果你有自己的 Mongo DB,你可以提供这些详细信息,以便在“MONGODB_URL”下存储聊天日志。否则,将该字段留空,系统会自动创建一个本地 DB。

3.4 为了使用你训练好的模型运行聊天应用,你需要在“Space variables”部分提供“MODEL_NAME”。你可以通过查看你的 Hugging Face 个人资料中的“Models”部分找到你的模型名称,它将与你之前在 AutoTrain 中使用的“Project name”相同。在我们的示例中,它是“2legit2overfit/wrdt-pco6-31a7-0”。

3.4 在“Space variables”下,你还可以更改模型推理参数,包括 temperature、top-p、生成的最大 token 数等,以改变生成内容的性质。目前,我们先使用默认设置。


3.5 现在你可以点击“Create”并启动你自己的开源 ChatGPT 了。恭喜!如果你操作正确,它应该看起来像这样。


如果你受到启发,但仍需要技术支持才能开始,欢迎联系我们并在此申请支持。Hugging Face 提供付费的 Expert Advice 服务,或许能够帮到你。

来源:Hugging Face:Blog(RSS) · huggingface.co