当前位置: 首页 > news >正文

使用Alpaca-LoRA微调类ChatGPT模型的实践指南

如何使用Alpaca-LoRA微调类似ChatGPT的模型

低秩自适应(LoRA)是一种用于微调模型的技术,相比之前的方法具有一些优势:

  • 它更快且占用更少内存,这意味着可以在消费级硬件上运行。
  • 输出文件要小得多(以兆字节计,而非千兆字节)。
  • 可以在运行时将多个微调后的模型组合在一起。

上个月,我们曾发布博文介绍如何使用LoRA更快地微调Stable Diffusion。我们的朋友Simon Ryu(又名@cloneofsimo)将LoRA技术应用于Stable Diffusion,使得人们仅用少量训练图像即可创建自定义训练风格,然后在预测时混合搭配这些风格以创建高度定制的图像。
时间过去一个月,我们看到LoRA正被应用于其他领域。现在它被用来微调像LLaMA这样的大语言模型。本月初,Eric J. Wang发布了Alpaca-LoRA项目,该项目包含使用PEFT(一个允许您获取各种基于transformers的语言模型并使用LoRA对其进行微调的库)来复现斯坦福Alpaca结果的代码。这其中的巧妙之处在于,它允许您在普通的硬件上廉价、高效地微调模型,并获得更小(或许可组合)的输出。
在这篇博文中,我们将展示如何使用LoRA和Alpaca训练数据来微调LLaMA。

前提条件

  • GPU设备:得益于LoRA,您可以在低规格的GPU(如NVIDIA T4)或消费级GPU(如4090)上完成此操作。如果您尚无访问带GPU设备的权限,请查看我们的获取GPU设备指南。
  • LLaMA权重:LLaMA的权重尚未公开发布。如需申请访问权限,请填写某研究中心的表格。

步骤1:克隆Alpaca-LoRA仓库

我们已经创建了原始Alpaca-LoRA仓库的一个分支,该分支添加了对Cog的支持。Cog是一种将机器学习模型打包到容器中的工具,我们将使用它来安装微调和运行模型所需的依赖项。

使用Git克隆仓库:

gitclone https://github.com/daanelson/alpaca-loracdalpaca-lora

步骤2:安装Cog

sudocurl-o /usr/local/bin/cog -L"https://github.com/replicate/cog/releases/latest/download/cog_$(uname-s)_$(uname-m)"sudochmod+x /usr/local/bin/cog

步骤3:获取LLaMA权重

将下载的权重放入名为unconverted-weights的文件夹中。文件夹结构应类似于:

unconverted-weights ├── 7B │ ├── checklist.chk │ ├── consolidated.00.pth │ └── params.json ├── tokenizer.model └── tokenizer_checklist.chk

使用以下命令将权重从PyTorch检查点转换为与transformers兼容的格式:

cog run python -m transformers.models.llama.convert_llama_weights_to_hf\--input_dir unconverted-weights\--model_size 7B\--output_dir weights

最终的目录结构应如下所示:

weights ├── llama-7b └── tokenizer

步骤4:微调模型

微调脚本默认配置为在性能较低的GPU上运行,但如果您的GPU内存更大,可以在finetune.py中将MICRO_BATCH_SIZE增加到32或64。

如果您有自己的指令调优数据集,请编辑finetune.py中的DATA_PATH以指向您自己的数据集。确保其格式与alpaca_data_cleaned.json相同。

运行微调脚本:

cog run python finetune.py

在40GB的A100 GPU上,这需要3.5小时,对于处理能力较弱的GPU,则需要更长时间。

步骤5:使用Cog运行模型

$ cog predict -iprompt="Tell me something about alpacas."Alpacas are domesticated animals from South America. They are closely related to llamas and guanacos and have a long, dense, woolly fleece that is used tomaketextiles. They are herd animals and liveinsmallgroupsinthe Andes mountains. They have a wide variety of sounds, including whistles, snorts, and barks. They are intelligent and social animals and can be trained to perform certain tasks.

后续步骤

以下是一些您接下来可以尝试的想法:

  • 使用您自己的数据集并微调您自己的LoRA,例如葡萄牙语微调指令LLaMA——Cabrita,或者微调LLaMA使其能像荷马·辛普森一样说话。
  • 将模型推送到某中心以在云端运行。如果您想要构建接口的API,或希望并行运行大规模评估,这会很方便。您需要将其保持为私有状态,以免权重公开。
  • 组合LoRA:可以组合不同的Stable Diffusion LoRA,从而在同一张图像中融合微调的风格和微调的对象。如果将其应用于语言模型,可能会产生哪些可能性?
  • 使用Alpaca数据集(或其他数据集)微调更大的LLaMA模型,并观察其表现。这应该可以通过PEFT和LoRA实现,尽管需要更大的GPU。

我们迫不及待地想看到您的成果。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

http://www.jsqmd.com/news/234607/

相关文章:

  • 腾讯开源HY-MT1.5翻译大模型:小参数实现高质量翻译
  • 项目经理能力强不强,看他遇事的反应就知道了!
  • 告别CUDA报错:预置镜像一键运行AI分类器
  • 星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!
  • 三菱FX3U源码探秘:老司机带你玩转硬核PLC
  • 腾讯混元翻译模型开源|HY-MT1.5实现多语言实时互译
  • 如何在Windows上配置Windows防火墙,零基础入门到精通,收藏这篇就够了
  • 支持术语干预与上下文翻译|HY-MT1.5大模型落地指南
  • 开发者福利:免费 .frii.site 子域名,一分钟申请即用
  • 三菱PLC功能块FB程序集(九个实用案例) - 清晰注释,成熟稳定应用,适用于伺服与变频器通讯...
  • 电机控制工程师的日常调试中,最头疼的就是手里没示波器还要调过零点。今天咱们撸起袖子聊聊无位置BLDC的反电势检测,手把手造个能跑的模型出来
  • vLLM加速HY-MT1.5-7B实战|实现低延迟高精度翻译服务
  • AI分类器商业应用:快速验证创意,成本可控1小时1块
  • AMAT 0100-01588 板
  • 科研党必备PDF提取神器|PDF-Extract-Kit一键实现文档结构化处理
  • PDF智能提取全攻略|基于PDF-Extract-Kit镜像高效解析文档
  • 基于HY-MT1.5的高效翻译实践|边缘部署与实时推理
  • 三菱Q系列PLC控制下的复杂设备自动化系统:精准调控伺服与通讯测试方案
  • 布局检测+OCR识别一体化|PDF-Extract-Kit镜像实践指南
  • 报错FAILED: ninja: ‘out_sys/target/common/obj/JAVA_LIBRARIES/==platform-lib-local_intermediates/
  • Qwen3-VL-WEBUI镜像使用指南|实现图文视频多模态理解
  • STM32驱动无刷直流电机:原理图与驱动程序实现
  • 西门子S7-1200 PLC编程实战详解:TP900触摸屏与多轴伺服控制、结构化编程实现设备与...
  • 一键部署腾讯混元翻译模型|HY-MT1.5镜像使用笔记
  • 西门子PLC1500与Fanuc机器人焊装系统集成方案
  • 构建企业级翻译中台|HY-MT1.5-7B与1.8B双模部署实践
  • 附合导线及四等水准平差表格程序:①附合导线输入坐标即可自动生成导线观测记录和计算表,复测报表...
  • 腾讯开源HY-MT1.5翻译模型实战|快速部署与API调用详解
  • 同规模领先水平:HY-MT1.8B翻译模型性能实测揭秘
  • 西门子PID程序详解:PLC 1200与多台变频器通讯,触摸屏操作,Modbus通讯报文指南...