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

这篇具有很好参考价值的文章主要介绍了Alpaca-cpp(羊驼-cpp): 可以本地运行的 Alpaca 大语言模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

系列文章

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

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

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

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

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

先看看效果:

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

我刚学大语言模型不久,对如何测试它的能力也不是特别清楚,简单问了它几个问题,如 “会不会中文?”、“长对话能力如何?”、“写写代码?” 之类的,初步看还不错,能理解我的意图。后续我可能会用那些我问过 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,先到这,要上班了。。。有点急。文章来源地址https://www.toymoban.com/news/detail-423289.html

到了这里,关于Alpaca-cpp(羊驼-cpp): 可以本地运行的 Alpaca 大语言模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 羊驼系列大模型LLaMa、Alpaca、Vicuna

    羊驼系列大模型:大模型的安卓系统 GPT系列:类比ios系统,不开源 LLaMa优势 用到的数据:大部分英语、西班牙语,少中文 模型下载地址 https://huggingface.co/meta-llama Alpaca是斯坦福从Meta的LLaMA 7B微调而来的全新模型 (套壳)仅用了52k数据,性能约等于GPT-3.5。 训练成本奇低,总成本

    2024年01月21日
    浏览(32)
  • 【类ChatGPT】中文羊驼大模型Alpaca-13B体验

    书接上回: https://blog.csdn.net/nlpstarter/article/details/129834424 推荐一个在本地部署中文类ChatGPT大模型的开源项目 https://blog.csdn.net/nlpstarter/article/details/129834424 之前在推荐了一个中文类ChatGPT的大模型,感兴趣的可以看一下上面的链接。今天看到最新推出了13B版本的模型,迫不及待

    2024年02月06日
    浏览(29)
  • 【类ChatGPT】中文LLaMA-2、Alpaca-2 二代羊驼大模型体验

    Meta发布的一代LLaMA已经掀起了一股开源大模型热潮,也有很多相关工作不断涌现。最近Meta全新发布了Llama-2,效果更上一层楼。而且最重要的是模型可以相对随意分发了,不像一代一样,meta不让开发者发布基于llama模型训练出来的权重(原版当然更不可以)。 既然有了Llama-

    2024年02月12日
    浏览(37)
  • GPT大语言模型Alpaca-lora本地化部署实践【大语言模型实践一】

    Alpaca模型是斯坦福大学研发的LLM(Large Language Model,大语言)开源模型,是一个在52K指令上从LLaMA 7B(Meta公司开源的7B)模型微调而来,具有 70亿 的模型参数(模型参数越大,模型的推理能力越强,当然随之训练模型的成本也就越高)。 LoRA,英文全称Low-Rank Adaptation of Large

    2024年02月05日
    浏览(35)
  • GPT大语言模型Alpaca-lora本地化部署实践【大语言模型实践一】 | 京东云技术团队

    Alpaca模型是斯坦福大学研发的LLM(Large Language Model,大语言)开源模型,是一个在52K指令上从LLaMA 7B(Meta公司开源的7B)模型微调而来,具有 70亿 的模型参数(模型参数越大,模型的推理能力越强,当然随之训练模型的成本也就越高)。 LoRA,英文全称Low-Rank Adaptation of Large

    2024年02月05日
    浏览(40)
  • 使用go-llama.cpp 运行 yi-01-6b大模型,使用本地CPU运行,速度挺快的

    https://github.com/ggerganov/llama.cpp LaMA.cpp 项目是开发者 Georgi Gerganov 基于 Meta 释出的 LLaMA 模型(简易 Python 代码示例)手撸的纯 C/C++ 版本,用于模型推理。所谓推理,即是给输入-跑模型-得输出的模型运行过程。 那么,纯 C/C++ 版本有何优势呢? 无需任何额外依赖,相比 Python 代码

    2024年02月20日
    浏览(37)
  • 使用llama.cpp在本地搭建vicuna 13B语言模型

    有人做了windows下的脚本放到github上了,直接运行就可以了。我在本机试了一下13B的模型能运行,但生成速度非常慢,回复一个问题基本上要花5分钟以上的时间。我的机器配置 3900X 32G内存。 https://github.com/mps256/vicuna.ps1

    2024年02月11日
    浏览(44)
  • 本地部署中文LLaMA模型实战教程,民间羊驼模型

    博文1:本地部署中文LLaMA模型实战教程,民间羊驼模型(本博客) 博文2:本地训练中文LLaMA模型实战教程,民间羊驼模型 博文3:精调训练中文LLaMA模型实战教程,民间羊驼模型 LLaMA大部分是英文语料训练的,讲中文能力很弱。如果我们想微调训练自己的LLM模型,基于一个大

    2024年02月04日
    浏览(33)
  • 【ollama】(2):在linux搭建环境,编译ollama代码,测试qwen大模型,本地运行速度飞快,本质上是对llama.cpp 项目封装

    https://github.com/ollama/ollama/tree/main/docs https://www.bilibili.com/video/BV1oS421w7aM/ 【ollama】(2):在linux搭建环境,编译ollama代码,测试qwen大模型,本地运行速度飞快,本质上是对llama.cpp 项目封装 要是失败执行,子模块更新: 需要编译 llama.cpp 的代码, 然后经过漫长的编译,就而可以

    2024年04月08日
    浏览(54)
  • 本地训练中文LLaMA模型实战教程,民间羊驼模型,24G显存盘它!

    博文1:本地部署中文LLaMA模型实战教程,民间羊驼模型 博文2:本地训练中文LLaMA模型实战教程,民间羊驼模型(本博客) 博文3:精调训练中文LLaMA模型实战教程,民间羊驼模型 在学习完上篇【1本地部署中文LLaMA模型实战教程,民间羊驼模型】后,我们已经学会了下载模型,

    2024年02月10日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包