第六十五回 时迁火烧翠云楼 吴用智取大名府-羊驼大模型的部署应用:llama.cpp和llama.c纯c编译安装部署 以及Ollama一键部署

本文介绍了LLaMA羊驼大模型的特性、开源性,以及在FreeBSD平台上通过llama.cpp和llama.c进行编译安装和部署的过程,同时提到了Ollama框架简化本地运行大型语言模型的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

吴用献计说,初春元宵节的时候,大名府每年都例行张灯,咱们里应外和就能破城。鼓上蚤石迁自告奋勇去城里放火策应。

大名府里梁中书最后决定还是照常张灯放火。石迁翻墙入城,城里客店却不收单身的客人,晚上就到东岳庙神像底下睡觉。

正月十三,石迁见到了乞讨的孔明,取笑他红红白白皮面,不像叫花子。看到孔亮,说他面皮白,不像是忍饥受饿的人。又碰到了杨雄刘唐,杨雄说你们三个在这里说话,小心被公差看见。五人最后在寺前见到了公孙胜和凌振。

人心齐,泰山移,正如梁山好汉们团结一心、齐心协力的精神,今天的科技界也有着类似的力量在推动着社会的进步,比如llama羊驼大模型的广泛推广和应用。

羊驼大模型的部署应用:llama.cpp和llama.c纯c编译安装部署 以及Ollama一键部署

llama羊驼大模型的简介

LLaMA羊驼模型是元宇宙平台公司(Meta)公开发布的一款大型语言模型。该模型建立在Transformer基础架构上,采用了多层神经网络结构,有助于捕捉和学习数据中的复杂模式。这种设计使得LLaMA模型在自然语言处理方面表现突出,能够进行语义分析、情感识别和文本生成,广泛应用于人工智能各种场景。

羊驼模型最显著的特点之一是它的开源性,这意味着任何研究人员或开发者都可以访问和使用该模型的源代码。此外,羊驼模型是在公开预训练数据上进行训练的,这保证了其通用性和可复现性。这种开源和公开训练的方式也促进了模型在各种任务上的广泛应用和性能优化。

llama.cpp编译安装

llama.cpp是一个使用c语言推理llama的软件包,它支持FreeBSD、Linux等多种平台。

GitHub - ggerganov/llama.cpp: LLM inference in C/C++

下载源码

git clone https://github.com/ggerganov/llama.cpp
 

编译

mkdir build
cd build
cmake ..
cmake --build . --config Release

大约只需要10-20分钟就能编译好,速度很快!

在Ubuntu下直接make install 或 sudo make install 捷克完成安装。

在FreeBSD里默认是没有sudo的,用root账户将编译好的文件放入/usr/bin又担心干干扰,所以使用加环境变量的方法解决安装问题。

创建env.sh文件,文件内容:

export PATH=/home/skywalk/github/llama.cpp/build/bin:$PATH

每次使用前执行source env.sh即可。

之所以不放入.cshrc或者.bashrc,也是不想让它影响整个系统。毕竟后面可能安装其它模型。

下载模型文件

llama中文模型

官网:GitHub - ymcui/Chinese-LLaMA-Alpaca-2: 中文LLaMA-2 & Alpaca-2大模型二期项目 + 64K超长上下文模型 (Chinese LLaMA-2 & Alpaca-2 LLMs with 64K long context models)

可以通过百度和谷歌网盘下载模型文件

下载地址:

以下是完整版模型,直接下载即可使用,无需其他合并步骤。推荐网络带宽充足的用户。

模型名称类型大小下载地址GGUF
Chinese-LLaMA-2-13B基座模型24.7 GB[百度] [Google] [🤗HF][🤗HF]
Chinese-LLaMA-2-7B基座模型12.9 GB[百度] [Google] [🤗HF][🤗HF]
Chinese-LLaMA-2-1.3B基座模型2.4 GB[百度] [Google] [🤗HF][🤗HF]
Chinese-Alpaca-2-13B指令模型24.7 GB[百度] [Google] [🤗HF][🤗HF]
Chinese-Alpaca-2-7B指令模型12.9 GB[百度] [Google] [🤗HF][🤗HF]
Chinese-Alpaca-2-1.3B指令模型2.4 GB[百度] [Google][🤗HF][🤗HF]

ps,huggingface的模型可以去镜像网站看看:HF-Mirror - Huggingface 镜像站

测试Chinese-Alpaca-2-1.3B模型

这个模型小一些,从百度网盘下载还方便一点。

将模型下载到本地后,是这些文件:

ls -l ~/work/model/chinesellama/
total 4935424
-rw-r--r--  1 skywalk  skywalk      339595  3月 24 20:30 chinesellama.tar.gz
-rw-r--r--  1 skywalk  skywalk         671  3月 24 20:06 config.json
-rw-r--r--  1 skywalk  skywalk         170  3月 24 20:06 generation_config.json
-rw-r--r--  1 skywalk  skywalk  2525058738  3月 24 21:01 pytorch_model.bin
-rw-r--r--  1 skywalk  skywalk         435  3月 24 20:08 special_tokens_map.json
-rw-r--r--  1 skywalk  skywalk         766  3月 24 20:08 tokenizer_config.json
-rw-r--r--  1 skywalk  skywalk      844403  3月 24 20:08 tokenizer.model

转换模型

python convert.py ~/work/model/chinesellama/

模型写入:Wrote /home/skywalk/work/model/chinesellama/ggml-model-f16.gguf

执行

main -m ~/work/model/chinesellama/ggml-model-f16.gguf  -p "Building a website can be done in 10 simple steps:\nStep 1:" -n 400 -e

我的8G内存本本直接崩了,意料之中。

不过整个流程算是跑通了!

使用llama.cpp,可以在FreeBSD下跑llama中文模型,太棒了!

同理在Ubuntu下也可以很愉快的跑llama模型拉!

llama.c编译安装

 llama2.c 用纯c 700行代码推理llama2 模型!关键还是跨平台的,FreeBSD下一样好使!

官网:GitHub - karpathy/llama2.c: Inference Llama 2 in one file of pure C

下载代码:

git clone https://github.com/karpathy/llama2.c

进入项目目录并下载模型:

cd llama2.c
wget https://karpathy.ai/llama2c/model.bin -P out

这个模型是stories15M模型

编译并运行:

gcc -O3 -o run run.c -lm
./run out/model.bin

英文小说输出效果:

Once upon a time, there was a big bookcase in a little girl's room. The little girl, named Lucy, loved to read. She would sit on the chair and read all day. One day, Lucy saw a scary monster in her room. The monster had big teeth and big eyes. Lucy was scared, but she wanted to find out who was scary.
Lucy thought and thought. Then, she had an idea. She would change her clothes and draw a face on the monster with a big crayon. The monster thought it was a funny picture. Lucy went back to her room and started to draw on the bookcase.
As Lucy drew, the monster from the book came to life! It was a funny looking monster that looked at Lucy's drawings. Lucy was not scared anymore. She laughed and played with her new friend. The monster and Lucy were happy friends forever.
achieved tok/s: 44.499106

可以下载更大的模型,比如stories110M.bin:

https://huggingface.co/karpathy/tinyllamas/resolve/main/stories110M.bin

具体模型如下:

modeldimn_layersn_headsn_kv_headsmax context lengthparametersval lossdownload
260K64584512260K1.297stories260K
OG28866625615M1.072stories15M.bin
42M512888102442M0.847stories42M.bin
110M7681212121024110M0.760stories110M.bin

理论上,可以推理任何的llama模型,不过作者说因为是float32推理,所以大于7b的不建议。

总结

llama.cpp和llama2.c能在FreeBSD平台进行AI推理,真的是太棒了!

Ollama一键部署

 Ollama是一个用于在本地运行大型语言模型(LLM)的开源框架。它旨在简化在Docker容器中部署LLM的过程,使得管理和运行这些模型变得更加容易。Ollama提供了类似OpenAI的API接口和聊天界面,可以非常方便地部署最新版本的GPT模型并通过接口使用。此外,Ollama还支持热加载模型文件,用户无需重新启动即可切换不同的模型。

参考资料:

官网:GitHub - ollama/ollama: Get up and running with Llama 2, Mistral, Gemma, and other large language models.

 介绍文章:

从22K star的超强工具:Ollama,一条命令在本地跑 Llama2 - 知乎

下载和安装:

curl https://ollama.ai/install.sh | sh

 运行例子:

ollama run phi
# ollama run llama 

phi更小,更方便测试。然后就会进入交互对话的界面了,比如:

ollama run phi

>>> 你好
 Hello!  How can I assist you today?


>>>  中国首都是哪里?
 Beijing is the capital city of China and it

详细安装可以参考:解锁智能未来:用Ollama开启你的本地AI之旅-CSDN博客

正月十五,小旋风柴进和铁叫子乐和去找蔡福,让他带路去牢中救卢俊义。石迁到翠云楼放火,梁山大批人马杀入,李成护着梁中书且走且战,夺路而逃。

燕青拿住李固和贾氏,卢俊义把家里的金银财宝都装上车子运上梁山。

李成、梁中书与闻达的军马和兵一处,碰到了混世魔王樊瑞和项充李衮。

欲知梁中书一行人马怎的,且听下回分解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值