首页 > 科技周边 > 人工智能 > 如何在设备上运行羊驼毛

如何在设备上运行羊驼毛

尊渡假赌尊渡假赌尊渡假赌
发布: 2025-03-10 11:26:09
原创
500 人浏览过

How to Run Alpaca-LoRA on Your Device

随着生成式 AI 的持续火热,全球开发者纷纷抓住机遇,利用自然语言构建令人兴奋的应用程序。最近,一种名为 ChatGPT 的工具尤其引人注目。

ChatGPT 是 OpenAI 开发的一种语言模型,旨在充当能够进行类似人类对话的 AI 驱动的聊天机器人。虽然它是一个非常有用的工具,但并非没有问题。ChatGPT 不是开源的,这意味着源代码无法访问也无法修改。它也极其占用资源,这使得构建您自己的实现成为一个糟糕的解决方案。

这些问题催生了一系列 ChatGPT 的替代方案,例如 Alpaca-LoRA,它们能够像 ChatGPT 一样运行,但具有开源许可证且资源需求更少。

在本教程中,我们将重点关注 Alpaca-LoRA。我们将介绍它是什么,在您的设备上运行它所需的先决条件以及执行它的步骤。

什么是 Alpaca LoRA?

2023 年 3 月初,Eric J. Wang 发布了 Alpaca-LoRA 项目。这是一个包含代码的项目,用于使用参数高效微调 (PEFT) 再现 Standford Alpaca 的结果;这是一个允许开发者使用 LoRA 微调基于 Transformer 的模型的库。

大型语言模型的低秩自适应 (LoRA) 是一种用于加速大型模型训练过程同时减少内存消耗的方法。

它的工作原理如下:

  • 冻结现有权重。将模型想象成一个复杂的相互连接的节点网络(这些是“权重”)。通常,您会在训练期间调整所有这些节点以改进模型。LoRA 表示:“让我们不要触碰这些;让我们保持原样。”
  • 添加新权重。然后,LoRA 向此网络添加一些新的、更简单的连接(新权重)。
  • 仅训练新权重。与其调整整个复杂的网络,不如只专注于改进这些新的、更简单的连接。

通过这样做,您可以节省时间和计算机内存,同时仍然使您的模型在任务中表现更好。

LoRA 的优势

LoRA 的优势包括:

  • 可移植性 - 秩分解权重矩阵包含比原始模型少得多的可训练参数;因此,训练好的 LoRA 权重很容易移植,可以在树莓派上运行。
  • 可访问性 – 与传统的微调相比,LoRA 已被证明可以显著减少 GPU 内存使用量;这使得在 Tesla T4、RTX 3080 或甚至 RTX 2080 Ti 等消费级 GPU 上进行微调成为可能。

Alpaca:开源模型

另一方面,Alpaca 是一个基于大型语言模型 Meta AI (LLaMA) 的开源指令微调 AI 语言模型。它是由斯坦福大学的研究人员团队开发的,旨在使大型语言模型 (LLM) 更易于访问。

这便引出了 Alpaca-LoRA。

Alpaca-LoRA 模型是斯坦福 Alpaca 模型的一个资源消耗较少的版本,它利用 LoRA 来加快训练过程,同时消耗更少的内存。

Alpaca-LoRA 先决条件

要在本地运行 Alpaca-LoRA 模型,您必须拥有 GPU。它可以是低规格的 GPU,例如 NVIDIA T4,也可以是像 4090 这样的消费级 GPU。根据该项目创建者 Eric J. Wang 的说法,该模型“在一台 RTX 4090 上运行需要数小时”。

**注意:本文中的说明遵循 Eric J. Wang 在 Alpaca-LoRA 代码库中提供的说明。*

四步运行 Alpaca-LoRA 的方法

步骤 1:创建虚拟环境(可选)

虚拟环境是用于存储特定项目所需的与 Python 相关的依赖项的隔离容器。这有助于将不同项目所需的依赖项分开,从而更容易共享项目并减少依赖项冲突。

使用它来运行 Alpaca-LoRA 模型并非强制性要求,但建议这样做。

要在 Windows 操作系统的命令提示符下创建虚拟环境,请运行以下命令:

<code>py -m venv venv</code>
登录后复制
登录后复制

这将在您当前的工作目录中创建一个名为 venv 的虚拟环境。

**注意:您可以使用您想要的任何名称来替换第二个 venv 为您首选的名称。*

在安装任何依赖项之前,您必须激活虚拟环境。运行以下命令来激活您的虚拟环境:

<code>venv\Scripts\activate.bat</code>
登录后复制
登录后复制

当您不再使用虚拟环境时,请运行以下命令将其停用:

<code>deactivate</code>
登录后复制

现在您可以开始运行 Alpaca-LoRA 了。

步骤 2:设置

运行 Alpaca-LoRA 模型的第一步是从 GitHub 克隆代码库并安装执行所需的依赖项。

使用以下命令安装 GitHub 代码库:

<code>git clone https://github.com/tloen/alpaca-lora.git</code>
登录后复制

然后使用以下命令导航到您刚刚安装的 alpaca-lora 代码库:

<code>cd alpaca-lora</code>
登录后复制

并运行以下命令安装依赖项:

<code>pip install -r requirements.txt</code>
登录后复制

步骤 3:微调模型(可选)

alpaca-lora 代码库包含一个名为 finetune.py 的文件。finetune.py 包含参数高效微调 (PEFT) 应用于 LLaMA 模型的简单应用程序,以及其他内容。

如果您希望调整模型的超参数,则必须执行此文件,但这并非强制性要求。根据代码库作者的说法,“无需超参数调整,LoRA 模型产生的输出与斯坦福 Alpaca 模型相当。进一步调整可能会实现更好的性能……”

以下是关于如何使用 finetune.py 文件的示例:

<code>python -m finetune.py \
    --base_model 'decapoda-research/llama-7b-hf' \
    --data_path 'yahma/alpaca-cleaned' \
    --output_dir './lora-alpaca' \
    --batch_size 128 \
    --micro_batch_size 4 \
    --num_epochs 3 \
    --learning_rate 1e-4 \
    --cutoff_len 512 \
    --val_set_size 2000 \
    --lora_r 8 \
    --lora_alpha 16 \
    --lora_dropout 0.05 \
    --lora_target_modules '[q_proj,v_proj]' \
    --train_on_inputs \
    --group_by_length</code>
登录后复制

步骤 4:运行模型/推理

alpaca-lora 代码库中还有一个名为 generate.py 的文件。执行 generate.py 将执行以下操作:

  • 从 Hugging Face 模型中心读取基础模型
  • 从 tloen/alpaca-lora-7b 读取模型权重
  • 启动一个 Gradio 界面,在其中对指定的输入执行推理。

在撰写本文时,用于训练模型的最新 Alpaca-LoRA 适配器是 alpaca-lora-7b。这是在 2023 年 3 月 26 日使用以下命令进行的:

<code>py -m venv venv</code>
登录后复制
登录后复制

如果您希望使用不同的适配器,您可以通过使用指向您首选适配器目标的链接运行 generate.py 文件来实现。

<code>venv\Scripts\activate.bat</code>
登录后复制
登录后复制

总结

Alpaca-LoRA 是斯坦福 Alpaca 模型的一个资源消耗较少的版本。它通过利用大型语言模型的低秩自适应 (LoRA) 来实现此目标,这可以加快训练过程,同时比原始 Alpaca 模型消耗更少的内存。

通过以下教程,了解有关大型语言模型 (LLM) 和生成式 AI 的更多信息:

  • Meta AI LLaMA 简介
  • 如何使用 PyTorch 训练 LLM:分步指南

以上是如何在设备上运行羊驼毛的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板