使用 LoRA、llama.cpp 和 KitOps,只需 5 个简单步骤即可微调您的第一个大型语言模型 (LLM)。
语言学习模型(LLM)入门可能会让人望而生畏。在本教程中,我们将向您展示如何使用 LoRA 对大型语言模型进行微调,并借助llama.cpp和KitOps等工具来实现这一目标。
LoRA(低秩自适应)是一种以最小的计算开销高效自适应预训练模型的技术。我们将通过简单易懂的步骤,引导您完成设置、自适应过程和部署。
0. 先决条件
开始之前,您需要安装 Kit CLI 并从 Llama 下载一个可执行文件。
Kit CLI 已安装到您的系统——安装指南finetune可从llama.cpp项目下载——点击此处下载
1. 环境搭建
第一步,我们将设置您的环境
创建项目目录:mkdir /lora_finetuning
使用 Kit CLI 登录 GitHub 容器注册表。这需要您的 GitHub 用户名和密码。或者,您可以使用任何其他与 OCI 工件兼容的注册表:
kit login ghcr.io
2. 创建您的套件文件并参考您的基础模型
在项目目录中(/lora_finetuning),创建一个 Kitfile 文件,内容如下:
manifestVersion: "1.0"
package:
name: llama3 fine-tuned
version: 3.0.0
authors: ["Jozu AI"]
model:
name: llama3-8B-instruct-q4_0
path: ghcr.io/jozu-ai/llama3:8B-instruct-q4_0
description: Llama 3 8B instruct model
license: Apache 2.0
注意:请注意路径是如何指向另一个 ModelKit 的?在本例中ghcr.io/jozu-ai/llama3:8B-instruct-q4_0。
让我们通过调用来创建初始模型工具包。
kit pack /lora_finetuning -t fine-tuning:untuned
现在让我们将 ModelKit 解压到工作文件夹。请注意,Kit CLI 还会将您引用的模型解压到工作文件夹,以便您可以对其进行操作。
kit unpack fine-tuning:untuned -d /lora_finetuning --overwrite
3. 创建您的 LoRa 适配器
建议使用与基础模型相同的提示格式,但也可以使用任何文本文件。理想情况下,提供一个公共字符串来分隔每个在训练数据中未找到的示例。例如:'<s>'
<s> Example one text here.<s> Example two text here.
从项目目录运行微调命令:
cd /lora_finetuning
llama.cpp\finetune.exe --model-base ./llama3-8B-instruct-q4_0.gguf --train-data ./training-data.txt --threads 8 --sample-start "<s>" --lora-out lora_adapter.gguf
4. 使用您的 LoRA 适配器更新 Kitfile。
接下来,我们将更新 Kitfile 文件,使其包含 LoRA 适配器:
manifestVersion: "1.0"
package:
name: llama3 fine-tuned
version: 3.0.0
authors: ["Jozu AI"]
model:
name: llama3-8B-instruct-q4_0
path: ghcr.io/jozu-ai/llama3:8B-instruct-q4_0
description: Llama 3 8B instruct model
license: Apache 2.0
parts:
- path: ./lora-adapter.gguf
type: lora-adapter
datasets:
- name: fine-tune-data
path: ./training-data.txt
我们建议将训练数据包含在您的模型工具包中,这是一种最佳实践,可以更轻松地进行后续的训练迭代,但对于生产部署来说,这并不是必需的。
5. 将适配器装入模型套件并寄送。
包装您的调校车型kit pack /lora_finetuning -t fine-tuning:tuned
为远程存储库标记您的模型kit tag fine-tuning:tuned ghcr.io/jozuuser/finetuned:latest
将模型套件推送到远程存储库。kit push ghcr.io/jozuuser/finetuned:latest
结论
恭喜!您已完成模型微调并打包,可以部署了。您已成功更新 Kitfile 文件、打包模型并将其推送到远程仓库,使其可供各种应用程序使用。
如果您觉得本教程对您有所帮助,我们鼓励您加入 KitOps Discord 服务器并为 KitOps GitHub 仓库点赞以支持该项目。
文章来源:https://dev.to/jozu/fine-tune-your-first-large-language-model-llm-with-lora-llamacpp-and-kitops-in-5-easy-steps-1g7f