位置: IT常识 - 正文

Alpaca-Lora (羊驼-Lora): 轻量级 ChatGPT 的开源实现(对标 Standford Alpaca)(lama羊驼)

编辑:rootadmin
Alpaca-Lora (羊驼-Lora): 轻量级 ChatGPT 的开源实现(对标 Standford Alpaca) Alpaca-Lora (羊驼-Lora): 轻量级 ChatGPT 的开源实现(对标 Standford Alpaca)文章目录Alpaca-Lora (羊驼-Lora): 轻量级 ChatGPT 的开源实现(对标 Standford Alpaca)总览前言(与正文可能无关,可以忽略)LoRA 简要介绍各类资源Alpaca-Lora Colab 体验本地安装环境准备运行 generate.py小结总览

推荐整理分享Alpaca-Lora (羊驼-Lora): 轻量级 ChatGPT 的开源实现(对标 Standford Alpaca)(lama羊驼),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:羊驼官方,adanza羊驼,alpacasa羊驼,asoul羊驼,羊驼 lama alpaca,羊驼 lama alpaca,alpacasa羊驼,羊驼 lama alpaca,内容如对您有帮助,希望把文章链接给更多的朋友!

本文介绍 Alpaca-Lora (羊驼-Lora),可以认为是 ChatGPT 轻量级的开源版本,它使用 Lora (Low-rank Adaptation) 技术在 Meta 的 LLaMA 7B 模型上微调,只需要训练很小一部分参数就可以获得媲美 Standford Alpaca 模型的效果;本文重点在它的本地安装方法…

前言(与正文可能无关,可以忽略)

前段时间介绍了 Stanford Alpaca (羊驼):ChatGPT 学术版开源实现,感觉大家热情高涨,可能 Stanford Alpaca 团队也感受到了这些热情,在线体验地址也暂时关闭了。我看 Stanford Alpaca 的训练代码已经开源,如果要训练的话,需要向 Meta 提交 LLaMA 的申请问卷,目前我已提交,在等 Meta 的邮件回复。

等待过程中惊奇的发现 Alpaca-LoRA: Low-Rank LLaMA Instruct-Tuning 项目,它居然可以直接访问 LLaMA-7B 模型!经过一番折腾,终于在本地成功部署,效果如下:

左边红框我要它输出一段 Python 代码,右边红框中它实现了一个加法函数,效果不错!可惜我 GPU 显存太小,只有 8G,模型参数量化后虽然可以成功加载,但是做预估时会报奇怪的错误,所以我最后一刻决定用 CPU 运行。。。先把问题解决再考虑后续优化。

本文主要介绍一下本地安装的方法。文中列出的资源可以在 “各类资源” 这一节中找到。

LoRA 简要介绍

关于 Alpaca-Lora 和 Stanford Alpaca 模型的区别,我先入为主的印象是,Stanford Alpaca 是在 LLaMA 整个模型上微调,而 Alpaca-Lora 则是利用 Lora 技术(LoRA: Low-Rank Adaptation of Large Language Models),在冻结原模型 LLaMA 参数的情况下,通过往模型中加入额外的网络层,并只训练这些新增的网络层参数。由于这些新增参数数量较少,这样不仅 finetune 的成本显著下降,还能获得和全模型微调类似的效果。想想最近 Stable Diffusion 文生图扩散模型(Stable Diffusion 原理介绍与源码分析(一、总览))的效果,在 LoRA 的加持下,可以生成很高质量的图片。

LoRA 的结构如下:

蓝色模块是原模型,而橙色模块则是新增网络层,通过控制参数 r 的大小,可以有效减少新增网络层的参数。

各类资源Alpaca-Lora 地址:https://github.com/tloen/alpaca-loraStandford Alpaca 地址:https://github.com/tatsu-lab/stanford_alpacaLora 的论文地址:https://arxiv.org/abs/2106.09685LLaMA-7B-HF 模型地址:https://huggingface.co/decapoda-research/llama-7b-hfLora 参数地址:https://huggingface.co/tloen/alpaca-lora-7b如何优雅的下载huggingface-transformers模型: https://zhuanlan.zhihu.com/p/475260268Alpaca-Lora Colab 体验

如果想在线快速体验,可以使用 Colab,打开 Alpaca-Lora 项目 Github 主页,点击如下红框给出的链接即可。

网速极快,体验贼好,免去了本地安装的一切烦恼。。。

本地安装环境准备

虽然 README 文件中说使用 pip install -r requirements.txt 就 OK 了,但是我还是决定用 conda 创建一个虚拟环境,environment.yaml 文件如下:

name: alpacachannels: - pytorch - defaultsdependencies: - python=3.8.5 - pip=20.3 - cudatoolkit=11.3 - pytorch=2.0.0 - numpy=1.19.2 - pip: - datasets - loralib - sentencepiece - accelerate - bitsandbytes - gradio - appdirs - -e git+https://github.com/huggingface/transformers.git@main#egg=transformers - -e git+https://github.com/huggingface/peft.git@main#egg=peft

然后使用如下命令激活:(顺便吐槽一句,master 分支如今写成 main 分支,哈哈)

conda env create -f environment.yamlconda activate alpaca

激活后,可以再执行 pip install -r requirements.txt 进行 double check。

运行 generate.pyAlpaca-Lora (羊驼-Lora): 轻量级 ChatGPT 的开源实现(对标 Standford Alpaca)(lama羊驼)

正常情况下,如果有超过 8G 的 GPU 显存,并且网络之类的都相当 good 的话,那么直接运行 python generate.py 就能成功。

但这篇文章之所以有存在的必要,就是因为遇到太多不正常的情况😂😂😂

首先是模型参数的下载,包括 LLaMA-7B-HF 大模型(地址:https://huggingface.co/decapoda-research/llama-7b-hf)以及 Lora 参数 (地址:https://huggingface.co/tloen/alpaca-lora-7b),下载报 HTTP Requests 之类的错误。

我参考 《如何优雅的下载huggingface-transformers模型》(地址:https://zhuanlan.zhihu.com/p/475260268)一文,安装 huggingface_hub 进行模型下载,速度非常快,执行如下命令下载模型:

>>> from huggingface_hub import snapshot_download>>> snapshot_download(repo_id="decapoda-research/llama-7b-hf")

结果如下:

不过快下载完的时候报错中断,我把上面的命令重新执行一次,就能正常接着下载:

模型下载成功后,终端会输出模型的保存地址,可以使用 stat -Lc "%n %s" * 命令大致看下各文件大小有没有缺斤少两的,和 Hugging Face 上的模型大小简单对比一下:

该命令中, -L 表示对 soft link 进行处理,-c "%n %s" 指定输出格式,其中 %n 表示文件的名字,%s 表示文件大小,我看着文件大小符合预期。

别忘了 LoRA 模型哈: 执行 snapshot_download(repo_id="tloen/alpaca-lora-7b") 下载 Lora 参数。

然后接着运行 generate.py,可是在如下代码报错:

直接注释即可。

解决上述问题后,我使用 8G 的 GPU 运行,仍然会在中途报 ZeroDivisionError: integer division or module by zero:

我是通过去修改 accelerate 这个包的源码避开这个问题的,需要简单读一下 get_max_memory() 函数的实现。最后运行成功界面如下:

不过也注意到显存快到极限了。因此就算避开了上述问题,由于 GPU 显存天然的限制(就像游戏中要你氪金,你偏不氪,那么体验肯定不会好),后面再其他地方仍会报错,我尝试解决无果,最终决定在 CPU 上运行…

再贴一次成功后的画面:

小结

本文介绍了 ChatGPT 轻量级的开源版本 Alpaca-Lora (羊驼-Lora),它使用 Lora (Low-rank Adaptation) 技术在 Meta 的 LLaMA 7B 模型上微调,只需要训练很小一部分参数就可以获得媲美 Standford Alpaca 模型的效果。此外还较为详细的介绍了其在本地安装的方法。

经此一役,愈发感慨 GPU 的重要性,哪怕多给我 1G,也不至于如此窘迫。为了省出一点显存资源,我把其他能关闭的进程都关闭了,还得去 debug 之类的… 当初想着自己不玩大型游戏,觉得 8G 够用了… 人类对算力的需求是永无止境的。好好加班,攒信仰!

(对了,可以在微信中搜索 “珍妮的算法之路” 或者 “world4458” 关注我的微信公众号, 及时获取最新原创技术文章更新。。。)

本文链接地址:https://www.jiuchutong.com/zhishi/297550.html 转载请保留说明!

上一篇:【1】从零开始学习目标检测:YOLO算法详解(小说《从零开始》)

下一篇:0.96寸OLED显示汉字,数字,英文,图片,GIF动画+取模软件使用+代码解析(0.96寸OLED显示汉字)

  • 华为p40截屏有几种方法(华为p40屏幕截图)

    华为p40截屏有几种方法(华为p40屏幕截图)

  • 支付宝紧急联系人在哪里设置(支付宝紧急联系人怎么删除)

    支付宝紧急联系人在哪里设置(支付宝紧急联系人怎么删除)

  • 腾讯视频青少年模式怎么解除(腾讯视频青少年模式是什么意思)

    腾讯视频青少年模式怎么解除(腾讯视频青少年模式是什么意思)

  • 网络协议都有什么(网络协议有什么语义和同步关系三个要素组成)

    网络协议都有什么(网络协议有什么语义和同步关系三个要素组成)

  • 不同牌子的内存条能双通道吗(不同牌子的内存条能混搭用吗)

    不同牌子的内存条能双通道吗(不同牌子的内存条能混搭用吗)

  • 电脑硬盘能当移动硬盘用吗(电脑硬盘当移动硬盘c盘文件删除)

    电脑硬盘能当移动硬盘用吗(电脑硬盘当移动硬盘c盘文件删除)

  • 充电宝一万毫安可以用多久(充电宝一万毫安够用吗)

    充电宝一万毫安可以用多久(充电宝一万毫安够用吗)

  • 蓝牙耳机说话对方能听见吗(蓝牙耳机说话对着哪)

    蓝牙耳机说话对方能听见吗(蓝牙耳机说话对着哪)

  • 苹果qq音乐被别的程序中断(苹果qq音乐不受别的应用影响?)

    苹果qq音乐被别的程序中断(苹果qq音乐不受别的应用影响?)

  • 身边的人工智能有哪些(举例身边的人工智能)

    身边的人工智能有哪些(举例身边的人工智能)

  • 手机微信和平板微信可以同时登录吗(手机微信和平板微信消息能同步吗)

    手机微信和平板微信可以同时登录吗(手机微信和平板微信消息能同步吗)

  • mkv格式用什么播放器(mkv格式用什么播放器可以播放苹果手机)

    mkv格式用什么播放器(mkv格式用什么播放器可以播放苹果手机)

  • 苹果xr闪光灯在哪里设置(苹果xr闪光灯在哪里关)

    苹果xr闪光灯在哪里设置(苹果xr闪光灯在哪里关)

  • 旁白模式怎么解锁(旁白模式怎么解锁iPhone)

    旁白模式怎么解锁(旁白模式怎么解锁iPhone)

  • 手机怎样订高铁票(手机怎么订高铁票)

    手机怎样订高铁票(手机怎么订高铁票)

  • oppoa11x怎么找回隐藏的应用图标(oppoa11怎么找回手机)

    oppoa11x怎么找回隐藏的应用图标(oppoa11怎么找回手机)

  • oppoa9有fm收音机吗(oppoa9收音机在哪)

    oppoa9有fm收音机吗(oppoa9收音机在哪)

  • 酷我音乐能自己录歌吗(酷我音乐自己怎么唱)

    酷我音乐能自己录歌吗(酷我音乐自己怎么唱)

  • 抖音黑名单上的人能看见我作品吗(抖音黑名单上的人能看见我直播吗)

    抖音黑名单上的人能看见我作品吗(抖音黑名单上的人能看见我直播吗)

  • ios13特点(iphone 13 新特性)

    ios13特点(iphone 13 新特性)

  • ipad下载的视频在哪里(ipad下载的视频在哪)

    ipad下载的视频在哪里(ipad下载的视频在哪)

  • 换了新手机怎么把电话号码转过去(换了新手机怎么配对iphonewatch)

    换了新手机怎么把电话号码转过去(换了新手机怎么配对iphonewatch)

  • Wi-Fi不会要求输入密码:6个解决此问题的快速解(wifi不让输入密码怎么办)

    Wi-Fi不会要求输入密码:6个解决此问题的快速解(wifi不让输入密码怎么办)

  • 浏览器中外文显示异常(浏览器显示英语怎么设置成中文)

    浏览器中外文显示异常(浏览器显示英语怎么设置成中文)

  • 全网最新的vue.js下载和安装的3种方法(2023年)(全网最新的暗号)

    全网最新的vue.js下载和安装的3种方法(2023年)(全网最新的暗号)

  • c语言中空指针是什么(c语言的空指针)

    c语言中空指针是什么(c语言的空指针)

  • 个人所得税全年一次性奖金优惠政策
  • 金税开票软件怎么修改开票人
  • 已认证进项税转出怎样做账务处理
  • 退多缴纳的所得税 现金流如何处理
  • 普通发票领多了会怎么样
  • 其他权益工具账务处理内容
  • 企业弥补以前年度亏损顺序
  • 查找出资产负债表的软件
  • 应收账款余额百分比法是什么意思
  • 小企业会计制度科目表
  • 福利企业的税收优惠政策
  • 什么产品可视同自产产品享受退税优惠
  • 技术转让收入纳税调整
  • 嵌入式软件产品增值税即征即退
  • 接受投资款尚未工商变工账务怎么做处理?
  • 专用发票可以开安装费吗?
  • 核定征收怎么交企业所得税
  • 修理厂普通发票
  • 电子税务局实名采集怎么弄
  • 长期待摊费用当月减少当月摊销吗
  • 对外出租设备
  • 生育津贴公司账户怎么维护
  • 机会成本怎么计量
  • 简易征收发票认证了之后怎么处理
  • 电子税务局财报怎么报
  • 政策性搬迁的会计实用报告
  • 资源综合利用企业税收优惠
  • 以旧换新计税依据
  • 低值易耗品怎么结转
  • 关税保险费计算方法
  • 加工费计入成本怎么计算所得税
  • 违约金条款的特点
  • 在win7系统中,添加打印机驱动程序
  • linux系统中安装软件的批处理文件
  • 旧房转让土地增值税计算案例
  • win10怎么启用
  • mssearch.exe - mssearch是什么进程 有什么用
  • 电脑麦克风没声音是什么原因
  • css 宽度 自适应 占满
  • Cookie 的 SameSite 属性
  • 前端基础
  • 递归最小二乘法辨识参数
  • 报表里主营业务怎么填
  • 母公司给子公司借款要利息吗
  • 农业种植会计
  • 资本化支出影响营业利润吗
  • 免征文化事业建设费条件的销售额标准
  • 没有发票的运输费用怎么入账
  • 金税盘的维护费怎么报税
  • 期末调汇汇兑损益科目
  • 企业专家咨询费标准
  • 行政事业单位支出范围和标准
  • 民营医院的发票在哪里领
  • 税局关于企业费用报销
  • 房地产企业资产负债率的正常范围
  • js操作剪切板
  • 在查询结果中添加字母
  • mysql 元数据管理
  • mysql5.5改密码
  • 备受大家关注的成语
  • 如何隐藏windows激活水印
  • windows7回收站图标没了
  • win10搜索设置选项
  • sed 处理多行
  • css文件放在什么目录
  • 深入理解ffmpeg pdf
  • 新版unity
  • python提取xml的值
  • jquery中ajax处理跨域的三大方式
  • centos6.7安装问题
  • 欢迎使用来电提醒业务是什么意思
  • js类的实现
  • jquery的筛选
  • python设计gui
  • javascript函数大全
  • Intent传List、Map
  • python async
  • 地税是地方税吗
  • 从日本带化妆品回国会被扣吗
  • 中国涉农金融体系包括哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设