“非工程师指南:训练LLaMA 2聊天机器人”
美妆时尚专家教你:训练LLaMA 2聊天机器人指南 (Měizhuāng shíshàng zhuānjiā jiào nǐ Xùnliàn LLaMA 2 liáotiān jīqì rén zhǐnán)
简介
在本教程中,我们将向您展示如何在不编写一行代码的情况下构建自己的开源ChatGPT!我们将使用LLaMA 2基础模型,使用开源指令数据集对其进行优化,然后将模型部署到一个您可以与朋友共享的聊天应用中。一切都只需点击即可实现伟大的成就。😀
为什么这很重要?嗯,机器学习,尤其是LLMs(大型语言模型),在我们的个人和商业生活中取得了空前的流行,成为了一种至关重要的工具。然而,对于大多数不属于ML工程师专门领域的人来说,训练和部署这些模型的复杂性似乎是一个无法触及的领域。如果预期的机器学习未来应该充满普遍存在的个性化模型,那么面临着一个挑战:我们如何让那些非技术背景的人独立利用这项技术?
在Hugging Face,我们一直在悄悄为这个包容性的未来铺平道路。我们的一套工具,包括Spaces、AutoTrain和Inference Endpoints等服务,旨在使机器学习的世界对每个人都可接近。
为了展示这个民主化未来有多容易接触,本教程将向您展示如何使用Spaces、AutoTrain和ChatUI构建聊天应用程序。一切仅需三个简单步骤,无需编写一行代码。为了获得背景,我也不是ML工程师,而是Hugging Face GTM团队的成员。如果我可以做到,那么您也可以!让我们开始吧!
Spaces简介
Hugging Face的Spaces是一个提供易于使用的GUI界面,用于构建和部署网络托管的ML演示和应用程序。该服务允许您快速使用Gradio或Streamlit前端构建ML演示,上传自己的应用程序到Docker容器中,甚至选择多个预配置的ML应用程序进行即时部署。
我们将部署Spaces的两个预配置Docker应用程序模板,即AutoTrain和ChatUI。
您可以在这里了解更多关于Spaces的信息。
AutoTrain简介
AutoTrain是一个无代码工具,让非ML工程师(甚至非开发人员 😮)能够在不编写代码的情况下训练最先进的ML模型。它可用于NLP、计算机视觉、语音、表格数据,甚至现在可以用于像今天我们要做的精调LLMs。
您可以在这里了解更多关于AutoTrain的信息。
ChatUI简介
ChatUI正是其名,它是Hugging Face构建的开源UI,为与开源LLMs进行交互提供界面。值得注意的是,它是HuggingChat的相同UI,我们的100%开源ChatGPT替代品。
您可以在这里了解更多关于ChatUI的信息。
第1步:创建一个新的AutoTrain空间
1.1 前往huggingface.co/spaces并选择“创建新的空间”。
1.2 为您的空间命名,并选择一个首选的使用许可证,如果计划将您的模型或空间公开。
1.3 为了在您的部署空间中部署AutoTrain应用程序,请选择Docker > AutoTrain。
1.4 为运行应用程序选择您的“空间硬件”。(注意:对于AutoTrain应用程序,免费的CPU基本选项就足够了,稍后的模型训练将使用单独的计算资源,可以在之后选择)
1.5 在“Space secrets”下添加您的“HF_TOKEN”,以使该空间可以访问您的Hub账户。如果没有这个,该空间将无法对您的账户进行训练或保存新模型。(注意:您的HF_TOKEN可以在Hugging Face个人资料的“设置”>“访问令牌”中找到,请确保该令牌被选为“写入”)
1.6 选择您想要将空间设为“私有”还是“公共”。对于AutoTrain空间本身,建议将其保持为私有,但您随后可以随时公开分享您的模型或聊天应用。
1.7 点击“创建空间”即可!新的空间将花费几分钟的时间进行构建,然后您可以打开该空间并开始使用AutoTrain。
第二步:在AutoTrain中启动模型训练
2.1 一旦您的AutoTrain空间启动,您将看到下面的图形用户界面(GUI)。AutoTrain可用于多种不同类型的训练,包括LLM微调、文本分类、表格数据和扩散模型。由于我们今天关注的是LLM训练,请选择“LLM”选项卡。
2.2 在“模型选择”字段中选择您想要训练的LLM,您可以从列表中选择一个模型,或者从Hugging Face模型卡片中输入模型的名称。在此示例中,我们使用了Meta的Llama 2 7b基础模型,详细了解模型卡片,请查看此处。(注意:LLama 2是受门控的模型,需要您在使用之前向Meta请求访问权限,但还有很多其他非受门控的模型可供选择,如Falcon)
2.3 在“后端”中选择您想要用于训练的CPU或GPU。对于7b模型,选择“A10G Large”足够大。如果您选择训练一个更大的模型,您需要确保模型完全适应您选择的GPU的内存中(注意:如果要训练更大的模型并需要访问A100 GPU,请发送电子邮件至[email protected])
2.4 当然,要微调模型,您需要上传“训练数据”。在上传时,请确保数据集的格式正确,并且以CSV文件格式呈现。所需格式的示例可以在此处找到。如果您的数据集包含多列,请确保从文件中选择包含训练数据的“文本列”。在此示例中,我们将使用Alpaca的指令调谐数据集,有关该数据集的更多信息,请参见此处。您还可以直接从此处下载它作为CSV文件。
2.5 可选:您可以上传“验证数据”以测试您新训练的模型,但这不是必需的。
2.6 在AutoTrain中可以配置多个高级设置,以减少您模型的内存占用,例如更改精度(“FP16”)、量化(“Int4/8”)或是否使用PEFT(参数高效微调)。建议使用默认设置,因为这将减少训练模型的时间和成本,对模型性能只有很小的影响。
2.7 同样,您可以在“参数选择”中配置训练参数,但现在让我们使用默认设置。
2.8 现在一切都准备好了,选择“添加作业”将模型添加到您的训练队列,然后选择“开始训练”(注意:如果您想要使用不同超参数训练多个模型版本,可以添加多个作业并同时运行)
2.9 在训练开始后,你会发现在你的 Hub 账户中创建了一个新的「空间」。这个空间正在运行模型训练,一旦完成,新模型也将在你的 Hub 账户的「模型」下显示。(注意:你可以在空间中实时查看训练进展的日志)
2.10 去拿杯咖啡,取决于你的模型大小和训练数据的数量,这可能需要几个小时甚至几天的时间。一旦完成,新模型将出现在你的 Hugging Face Hub 账户的「模型」下。
第三步:使用你的模型创建一个新的 ChatUI 空间
3.1 按照步骤 1.1 > 1.3 中设置新空间的相同流程进行操作,但选择 ChatUI docker 模板而不是 AutoTrain。
3.2 选择你的「空间硬件」,对于我们的 7b 模型,A10G Small 就足以运行该模型,但这会因模型大小而异。
3.3 如果你有自己的 Mongo DB,你可以提供这些详细信息以便在「MONGODB_URL」下存储聊天记录。否则,留下这个字段为空,将自动创建本地 DB。
3.4 为了使用你训练过的模型运行聊天应用程序,你需要在「空间变量」下提供「MODEL_NAME」。你可以通过查看你 Hugging Face 资料中的「模型」部分找到你模型的名称,它将与 AutoTrain 中使用的「项目名称」相同。在我们的示例中是「2legit2overfit/wrdt-pco6-31a7-0」。
3.4 在「空间变量」下,你还可以更改模型推理参数,包括温度、top-p、生成的最大令牌数等,以改变你生成的内容的性质。现在让我们继续使用默认设置。
3.5 现在你已经准备好点击「创建」并启动你自己的开源 ChatGPT。恭喜你!如果一切顺利,它应该看起来像这样。
如果你有灵感,但现在还需要技术支持来入门,请随时联系并申请支持,详情可点击此处。Hugging Face 提供付费的专家咨询服务,可能能够提供帮助。