本教程将通过使用 Unsloth 免费微调 Llama-3 来创建自定义聊天机器人。它可以通过 PC 上的 Ollama 在本地运行,也可以通过 Google Colab 在免费的 GPU 实例中运行。你将能够以交互方式与聊天机器人交互,如下所示:
Unsloth 使微调变得更加容易,并且可以通过集成的自动模型文件创建将微调后的模型自动导出到 Ollama!
1、什么是 Unsloth?
Unsloth 使 Llama-3、Mistral、Phi-3 和 Gemma 等 LLM 的微调速度提高 2 倍,内存使用量减少 70%,并且准确度不会降低!我们将在本教程中使用提供免费 GPU 的 Google Colab。你可以访问以下免费笔记本:
- Ollama Llama-3 Alpaca(我们将使用的笔记本)
- CSV/Excel Ollama 指南
你还需要登录 Google 帐户!
2、什么是 Ollama?
Ollama 可让你快速简单地从自己的计算机运行语言模型!它会悄悄启动一个程序,该程序可以在后台运行 Llama-3 等语言模型。如果你突然想向语言模型提问,只需向 Ollama 提交请求,它就会快速将结果返回给你!
我们将使用 Ollama 作为我们的推理引擎!
3、安装 Unsloth
如果你从未使用过 Colab 笔记本,请快速入门笔记本本身:
- 每个“单元”上的播放按钮。单击此按钮可运行该单元的代码。您不能跳过任何单元,并且必须按时间顺序运行每个单元。如果遇到任何错误,只需重新运行之前未运行的单元即可。如果您不想单击播放按钮,另一个选项是单击 CTRL + ENTER。
- 顶部工具栏中的运行时按钮。您还可以使用此按钮并点击“全部运行”一次运行整个笔记本。这将跳过所有自定义步骤,并且可以成为一次不错的初次尝试。
- 连接/重新连接 T4 按钮。您可以单击此处获取更高级的系统统计信息。
第一个安装单元如下所示:请记住单击括号 [ ] 中的播放按钮。我们获取我们的开源 Github 包,并安装一些其他包。
4、选择要微调的模型
现在让我们选择一个要微调的模型!我们默认使用 Meta / Facebook 的 Llama-3,它经过了高达 15 万亿个“token”的训练。假设一个 token 相当于 1 个英文单词。这大约相当于 350,000 本厚厚的百科全书!其他流行的模型包括 Mistral、Phi-3(使用 GPT-4 输出进行训练)和谷歌的 Gemma(13 万亿个 token!)。
Unsloth 支持这些模型以及更多!事实上,只需从 Hugging Face 模型中心输入一个模型,看看它是否有效!如果它不起作用,我们会出错。
还有 3 个其他设置可以切换:
max_seq_length = 2048
。这决定了模型的上下文长度。例如,Gemini 的上下文长度超过 100 万,而 Llama-3 的上下文长度为 8192。我们允许您选择任意数字 - 但出于测试目的,我们建议将其设置为 2048。Unsloth 还支持非常长的上下文微调,并且我们表明我们可以提供比最佳长度长 4 倍的上下文长度。dtype = None
。将其保留为 None,但对于较新的 GPU,您可以选择 torch.float16 或 torch.bfloat16。load_in_4bit = True
。我们以 4 位量化进行微调。这将内存使用量减少了 4 倍,使我们能够在免费的 16GB 内存 GPU 中实际进行微调。4 位量化本质上将权重转换为一组有限的数字以减少内存使用量。这样做的缺点是准确度会下降 1-2%。如果您想要这种微小的额外准确度,请在较大的 GPU(如 H100)上将其设置为 False。
如果你运行该单元,你将获得一些 Unsloth 版本的打印输出,包括你正在使用的模型、你的 GPU 有多少内存以及一些其他统计数据。暂时忽略这些。