Alpaca-cpp(羊驼-cpp): 可以本地运行的 Alpaca 大语言模型

Alpaca-cpp(羊驼-cpp): 可以本地运行的 Alpaca 大语言模型

系列文章

  • Stanford Alpaca (羊驼):ChatGPT 学术版开源实现
  • Alpaca-Lora (羊驼-Lora): 轻量级 ChatGPT 的开源实现(对标 Standford Alpaca)

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

I know。这几天介绍了很多 Alpaca,各种羊驼,似乎有些随心所欲、杂乱无章。但实际上,正如《寒战》中梁家辉饰演的李文斌被廉政公署问话时所说:“要在(每一个机构或岗位的)游戏规则里面把线头找出来 ”,找到线头,看似杂乱的内容才会有较好的可解释性。我这几篇文章的逻辑链如下:

从 Stanford-Alpaca 到 Alpaca-Lora,再到本篇要介绍的 Alpaca-cpp,都是为了寻找一种在资源约束下,能本地高效便捷运行大语言模型的方法。当我成功运行 Alpaca-cpp 时,体验很棒,丝滑流畅,而且由于突破了我 8G GPU 显存的限制,能直接使用 CPU 运行,那后续我还可以尝试 30B 甚至更大参数的大语言模型!

先看看效果:

我刚学大语言模型不久,对如何测试它的能力也不是特别清楚,简单问了它几个问题,如 “会不会中文?”、“长对话能力如何?”、“写写代码?” 之类的,初步看还不错,能理解我的意图。后续我可能会用那些我问过 ChatGPT 的复杂问题去测试它。BTW,ChatGPT 太牛了,我已经让它帮我干了点实事,让我的世界变好了 10 ~ 20min。

另外分享一篇比尔盖茨前两天发的文章 《The Age of AI has begun | Bill Gates》,文章稍长,还是提供了一点 insights。AI 正在重塑我们的工作和生活,我应该积极拥抱变化😂😂😂(懂得都懂)。

总览

本文简要介绍 Alpaca-cpp,可以使用本地电脑 CPU 流畅运行大语言模型 Alpaca/LLaMA 的 C++/C 框架。相关资源如下:

  • alpaca.cpp: https://github.com/antimatter15/alpaca.cpp
  • ggml-alpaca-7b-q4.bin 量化后的Alpaca模型: https://huggingface.co/Sosaka/Alpaca-native-4bit-ggml/blob/main/ggml-alpaca-7b-q4.bin
  • llama.cpp (alpaca.cpp 是 fork 本项目,代码基本一致): https://github.com/ggerganov/llama.cpp

太感谢这些开源大佬们,尝试让 AI 进入寻常百姓家,功德无量。

Alpaca-cpp 安装及本地运行

安装和运行方式都极其简单,本文介绍在 Linux 上的安装方法。

首先使用如下命令下载 alpaca.cpp 项目,

git clone https://github.com/antimatter15/alpaca.cpp

进入 alpaca.cpp 后,到 https://huggingface.co/Sosaka/Alpaca-native-4bit-ggml/blob/main/ggml-alpaca-7b-q4.bin 下载量化后的模型 ggml-alpaca-7b-q4.bin,然后使用

make chat

对项目进行编译。最后使用

./chat

直接运行程序即可,就能看到我在 “总览” 这一节中展示的聊天窗口。那种丝滑般的体验,言语无法精确描述,只能实际体验才好体会。

小结

本文非常非常 easy,有水文之嫌。但是及时传递消息也是有一定价值的(至少我是这么安慰自己)。Alpaca-cpp 是基于 llama-cpp 这个项目,代码基本完全相同,差别在 Alpaca-cpp 对 Alpaca-Lora 的权重进行了量化等预处理,然后用 llama-cpp 提供的功能去加载量化后的权重。

我大致看了一下 llama-cpp 的 C++/C code,只感慨大佬太强,代码写的真好,读起来是一种享受,注释非常清晰,核心逻辑读起来不用太费脑。找到优秀的开源项目并进行深入学习,一方面是吸取经验、提升技术,另一方面也趁机洗洗眼睛(仍旧是懂得都懂😂😂😂),获得一种精神上的愉悦~

后面打算深入学习一下 llama-cpp,作者直接手写了一个基于 C++/C 的深度学习框架,支持前向和反向传播。看 ggml.h 的注释,它的建图方式从我有限的理解来看,非常像 Tensorflow v1.0,需要先构建好静态图,传入数据后才能进行推理。而且研究本项目还能学习如何对模型进行 int8/int4 量化,相关函数在 utils.cpp 中实现。

再补充一点,关于 ggml-alpaca-7b-q4.bin 这个模型怎么来的。需要先用 https://github.com/tloen/alpaca-lora/pull/19/files 中提到的 export_state_dict_checkpoint.py 脚本对 Alpaca-Lora 的模型进行导出,应该是个 .pth 文件,然后使用 https://github.com/antimatter15/alpaca.cpp 提供的 convert-pth-to-ggml.py 工具将 .pth 模型转换成 llama-cpp 能识别的 ggml 模型 (llama-cpp 作者的 github 昵称是 ggerganov,所以我猜 ggml 应该指的是 ggerganov-Machine-Learning 的意思),之后再调用 https://github.com/antimatter15/alpaca.cpp/blob/master/quantize.cpp 对模型进行量化。

OK,先到这,要上班了。。。有点急。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/18416.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT 在软件功能测试中的应用探索

1 ChatGPT是什么 ChatGPT(Chat Generative Pre-trained Transformer,生成预训练转换器),是OpenAI实验室于2022年11月30日发布的一款可以用于互动的聊天工具。它是人工智能技术驱动的自然语言处理工具,可以通过理解和学习人类的语言进行对话&…

UDP实战模拟——聊天模拟器

udp 是个十分好用的,数据传输控制协议,聊天模拟器的创作,仅仅是展现它传输字符的良好体现,运行之前须去官网下载udp传输协议工具,名为SocketText,下载地址: http://www.zlmcu.com/download/Soc…

去面腾讯了(社招两年面试经验)

之前很多同学嚷嚷有没有社招经验,正好,我有个朋友去腾讯社招面试了。 他的面的是全栈开发岗位,工作两年,后端是Go,前端是 JavaScript Vue。 因为工作也没多久,就两年时间,所以大概率可能还是…

关于我拒绝了腾讯测试开发岗offer这件事

2022年刚开始有了向要跳槽的想法,之前的公司不能算大厂但在重庆也算是数一数二。开始跳槽的的时候我其实挺犹豫的 其实说是有跳槽的想法在2022年过年的时候就有了,因为每年公司3月会有涨薪的机会,所以想着看看那能不能涨(其实还是…

ChatGPT助力校招----面试问题分享(十)

1 ChatGPT每日一题:阻抗匹配的方法有哪些 问题:阻抗匹配是什么 ChatGPT:阻抗匹配是一种电路设计技术,用于确保电路中各个组件之间的电阻、电感和电容等参数相互匹配,以最大程度地传输信号或功率 当阻抗不匹配时&…

突破边界:高性能计算引领LLM驶向通用人工智能AGI的创新纪元

AGI | AIGC | 大模型训练 | GH200 LLM | LLMs | 大语言模型 | MI300 ChatGPT的成功带动整个AIGC产业的发展,尤其是LLM(大型语言模型,大语言模型)、NLP、高性能计算和深度学习等领域。LLM的发展将为全球和中国AI芯片、AI服务器市场…

推特被指欠公关公司83万美元;特斯拉因数据泄露或面临高额罚款;英伟达宣布为游戏提供定制化AI模型代工服务丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 NVIDIA推出DGX GH200 AI超级计算机 5月29日,NVIDIA宣布推出一款新型大内存AI超级计算机——由NVIDIA GH200 Grace Hopper超级芯片和NVIDIA NVLink Switch System 驱动的NVIDIA DGX™超级计算机&…

研发为底、生态为径、AI为翼——全国一体化算力算网调度平台正式发布

GPU | COMPUTEX | 算力 | GPU服务器 英伟达 | GH200 | 一体化算力算网调度平台 近年来,人工智能硬件、软件算法以及应用场景的丰富度不断增加,算法模型参数也不断增加,这带动了对数据中心并行计算算力的需求。因此,AI、高性能计算…

NLP大模型微调答疑

什么情况用Bert模型,什么情况用LLaMA、ChatGLM类大模型,咋选? 答:Bert 的模型由多层双向的Transformer编码器组成,由12层组成,768隐藏单元,12个head,总参数量110M,约1.1…

chatgpt赋能python:Python程序如何添加注释?

Python程序如何添加注释? Python程序是一种高级编程语言,由于其易读性和简便性而变得相当流行。Python被广泛应用于各种领域,包括Web开发,人工智能,数据分析等。在编写Python代码时,注释是一个很重要的因素…

九价hpv疫苗预约要交钱吗?

很多小姐姐不知道在预约九价hpv疫苗时是否需要交预约费用,今天我来详细介绍一下吧。 由于九价hpv疫苗货源比较少,数量有限,同时有年龄限制,一旦过了26周岁医院就不接收这批用户接种,因此很难被预约到。一般的医院机构实…

某人有100.000元,每经过一次路口,需要交费,规则如下:1)当现金>50000时每次交5% 2)当现金<=50000时,每次交1000编程, 计算该人可以经过多少次路口

public class ChapterPractice {public static void main(String[] args){//方法一double i 100000;int count 0;//统计次数while(i>50000){i i - i*0.05;count;if (i < 50000 ){break;}}while(i < 50000){i - 1000;count;if (i < 1000){break;}}System.out.pri…

计算机软考铁路不认,软考高级工程师容易考吗

摘要&#xff1a; 软考高级工程师容易考吗为你介绍有些考生在选择软考考试级别和资格的时候会担心考试难度&#xff0c;是不是级别越高就越难考呢&#xff1f;软考高级到底容易考吗&#xff1f;... 有些考生在选择软考考试级别和资格的时候会担心考试难度&#xff0c;是不是级别…

DVWA 不跳转_网上国网:自动交费功能,不跑腿少动手

交电费你还去营业网点交吗&#xff1f; 线上交费少跑腿&#xff0c; 不跑腿来少动手&#xff0c; 自动交费来帮您&#xff0c; 自动交费&#xff0c;so easy&#xff01;&#xff01;&#xff01; 注&#xff1a;非费控用户使用自动交费功能需先进行智能交费签约。 下载网上国网…

无盘服务器费用,无盘系统真的省钱吗?

由于网吧的成本控制严格&#xff0c;因此所有配件几乎没有冗余。出色的主机配置系统可以使网吧长时间有效运行。因此&#xff0c;许多网吧将采用无盘系统。可节省一定的成本。如果该配置不能满足多台计算机的操作&#xff0c;则操作系统将被卡住并且响应缓慢&#xff0c;并且实…

oracle数据库不交费能用吗,如何减少Oracle数据库的License和支持费用

大家知道,Oracle的数据库License和支持费用是很贵的,但是,Oracle又是很多企业关键业务的首选,不得不用。今天,我们就简单聊一下,从服务器和存储的角度,特别是从存储的角度,如何帮助大家减少Oracle的License和支持费用。 我们先来看看一个普通的中型ORACLE普通数据库(不…

无线网dns服务器未交费,中国电信为什么网上交费了还上不了wifi

(1)设置TCP/IP 在您的电脑上装好无线网卡后(笔记本您基本是已经安装好的),右键桌面网上邻居图标-属性, 在弹出窗口中会出现无线网络连接的图标,然后右键无线网络连接-属性, 在弹出窗口中双击常规选项卡下的Internet协议(TCP/IP), 在新的弹出窗口中选择自动获取IP地址和自动…

会员系统需要服务器吗,连锁会员系统的服务器费用是怎么产生的?又该怎么交费?...

很多客户在了解我们的会员管理软件时都会有这样的疑问&#xff1a;什么是服务器?为什么连锁会员软件要收取服务器费?但是单机版系统却不需要呢?如果要使用连锁的会员软件&#xff0c;可以不使用服务器吗?服务器能放在我们自己这边吗?对于这一系列类似的问题&#xff0c;小…

计算机二级无法交费,二级计算机啥时候交费截止

二级计算机啥时候交费截止以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01; 二级计算机啥时候交费截止 最近的一次截止是23号 计算机二级啥时候查 计算机二级考试成绩查询时间一般为考试结束后…