无需GPU无需网络“本地部署chatGPT”(更新StableVicuna)

news/2024/11/6 9:39:15/

想当初图像生成从DELL到stable diffusion再到苹果的移动部署过了两三年吧
聊天bot才发展几个月就可以边缘部署了,如果苹果更新silicon,npu和运存翻倍,争取apple watch也能本地内置,最快ios18 mac、ipad、iPhone能内置吧
又是一个平民百姓都高兴的开源项目,chatGPT这种级别的模型甚至能部署到树莓派上运行,然后在操作的过程中也遇到一些问题,这篇就是记录步数的这个过程。
已经为最新版的github更新了(2023.5.23),可以放心食用,实测运行速度快了很多。
哈工大的chinese llama效果不如vicuna7b,所以我把这一块的内容给删掉了。
vicuna7b的合成需要高运行内存的电脑,如果你的电脑不足30个G,可以直接私信我要合成好的模型,只有vicuna-7b的q4.0版本。
最近很多人反应老的vicuna-7b已经没办法在新的llama.cpp上使用了(主要是q4版本),可以问我要新的。

大佬的网址:https://github.com/ggerganov/llama.cpp

下载及生成

打开命令行输入下面的指令

git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make#对于Windows和CMake,使用下面的方法构建:
cd <path_to_llama_folder>
mkdir build
cd build
cmake ..
cmake --build . --config Release

在这里插入图片描述

模型下载

我觉得模型下载是最麻烦的,还好有别人给了

git clone https://huggingface.co/nyanko7/LLaMA-7B

好吧我直接给百度云
链接: https://pan.baidu.com/s/1ZC2SCG9X8jZ-GysavQl29Q 提取码: 4ret
–来自百度网盘超级会员v6的分享

在这里插入图片描述

然后安装python依赖,然后转换模型到FP16格式。然后第一个小bug会出现。

python3 -m pip install torch numpy sentencepiece# convert the 7B model to ggml FP16 format
python3 convert-pth-to-ggml.py models/7B/ 1

在这里插入图片描述

他会报找不到文件。
在这里插入图片描述
打开convert-pth-to-ggml.py文件,修改"/tokenizer.model"的路径,再运行python3 convert-pth-to-gaml.py ./models/7B 1,我顺便名字也改了。
在这里插入图片描述

文件找到了,然后出现第二个bug。。。。。
在这里插入图片描述

我一开始找不出问题,后来对比原网址和7B文件夹里的文件,才发现文件大小根本都不一样,我说几十个G的东西怎么git这么。
打开网站下图这个网址,点红色框的那两个下载。替换掉7B文件夹里的那两个文件。
在这里插入图片描述

在这里插入图片描述

将模型再转换成4位格式

# quantize the model to 4-bits
./quantize ./models/7B/ggml-model-f16.bin ./models/7B/ggml-model-q4_0.bin 2

在这里插入图片描述

推理

# run the inference
./main -m ./models/7B/ggml-model-q4_0.bin -n 128

在这里插入图片描述

想和chatGPT一样对话的话用下面这个指令,-n 控制回复生成的最大长度, --color是区分ai和人类的颜色,-i 作为参数在交互模式下运行, -r 是一种反向提示,-f 是一整段提示, --repeat_penalty 控制生成回复中对重复文本的惩罚力度,–temp 温度系数,值越低回复的随机性越小,反之越大。
更新了之后速度快了很多。

./main -m ./models/7B/ggml-model-q4_0.bin -n 256 --repeat_penalty 1.0 --color -i -r "User:" -f prompts/chat-with-bob.txt

让我们打开prompts/chat-with-bob.txt来看一下。
在这里插入图片描述

我们可以看到这相当于给了ai模型一个场景话题,然后你和ai之间就可以接着这个话题聊天。

我英文名叫zale,然后我把这个机器人叫作kangaroo,这样的身份和他聊天,你可以按自己的喜欢自己修改下面的代码。

./main -m ./models/7B/ggml-model-q4_0.bin -n 256 --repeat_penalty 1.0 --color -i -r "Zale:" \

写一个txt文件

"Transcript of a dialog, where the Zale interacts with an Assistant named Kangaroo. Kangaroo is helpful, kind, honest, good at writing, and never fails to answer the Zale's requests immediately and with precision.Zale: Hello, Kangaroo.
Kangaroo: Hello. How may I help you today?
Zale: Please tell me the largest city in Europe.
Kangaroo: Sure. The largest city in Europe is Moscow, the capital of Russia.
Zale:"

在这里插入图片描述

有点呆呆的,不过也算边缘部署的巨大进步了!
一个蛮有意思的发现,明明看得懂中文却跟我说不懂中文。。。。。
在这里插入图片描述
分享一段有意思的对话
在这里插入图片描述

Vicuna-7B

把原始的llama模型转换成huggleface的格式

python3 ~/anaconda3/envs/pytorch2/lib/python3.10/site-packages/transformers/models/llama/convert_llama_weights_to_hf.py \--input_dir ./llama-7b \--model_size 7B \--output_dir ./llama-7b-hf

这样生成的文件放在llama-7b-hf之中。
在这里插入图片描述

下载vicuna7b的权重文件,也可以理解为补丁。
注意融合vicuna7b模型需要30个G的内存,我特意买128G内存和4090的电脑,
如果有需要,可以私信我我看到的话直接把生成的模型发给你。
还有就是现在的模型是v1.1的版本,必须搭配使用transformers>=4.28.0 and fschat >= 0.2.0

python3 -m fastchat.model.apply_delta \--base-model-path ./llama-7b-hf/ \--target-model-path ./vicuna-7b/ \--delta-path ./vicuna-7b-delta-v1.1/

这样融合的模型就在vicuna-7b的文件夹下。
在这里插入图片描述

可以直接用fastchat用测试一下,速度好快哦!!!确实fast

python3 -m fastchat.serve.cli --model-path ./vicuna-7b

回到llama.cpp之中,老三样

python3 convert-pth-to-ggml.py models/vicuna-7b/ 1./quantize ./models/vicuna-7b/ggml-model-f16.bin ./models/vicuna-7b/ggml-model-q4_0.bin 2./main -m ./models/vicuna-7b/ggml-model-q4_0.bin -n 256 --repeat_penalty 1.0 --color -i -r "User:" -f prompts/chat-with-bob.txt

在这里插入图片描述

在这里插入图片描述

实测理解能力和中文水平我认为都是目前最佳的边缘部署的模型,我觉得我可以把哈工大的中文模型部分给删了。目前使用下来不错,很有chatGPT那味。
我又试了一下i9-13900KF,速度是快了一些。
在这里插入图片描述

来点好玩的例子。
在这里插入图片描述

在这里插入图片描述

多模态部署

这个需要12g的显存,没有的朋友就图个乐。
用到的是miniGPT这个库。

1.准备环境

git clone https://github.com/Vision-CAIR/MiniGPT-4.git
cd MiniGPT-4
conda env create -f environment.yml
conda activate minigpt4

在这里插入图片描述
2.修改文件指向电脑里的vicuna-7b路径
在这里插入图片描述
3.下载pretrained MiniGPT-4 checkpoint
在这里插入图片描述
4.修改文件指向电脑里的pretrained MiniGPT-4 checkpoint路径
在这里插入图片描述
5.运行demo

python demo.py --cfg-path eval_configs/minigpt4_eval.yaml  --gpu-id 0

在这里插入图片描述

StableVicuna

据说效果远超原版vicuna,实测直接用transformer4.8.0即可转换,然后转换的原模型是huggle face格式的llama原模型。
之后的步骤不再重复和上面一样,运行起来似乎失去了中文能力,然后数学能力等有提升,感觉像文科生变成理科生。
在这里插入图片描述


http://www.ppmy.cn/news/950955.html

相关文章

一键部署自己的ChatGPT

最近尝试了下ChatGPT-Next-Web项目&#xff0c;可以一键免费部署你的私人 ChatGPT 网页应用&#xff0c;整体过程非常丝滑&#xff0c;觉得有必要推荐给大家。 只要提供api key&#xff0c;即可在1分钟内完成一键部署。有自己的域名的话还可以无障碍访问和使用&#xff0c;速度…

部署了一个ChatGPT

部署了一个ChatGPT ChatGPT火爆了一段时间了&#xff0c;但是基于一些不可描述的原因&#xff0c;不能注册使用。为了方便大家体验&#xff0c;我部署了一个服务&#xff0c;能简单地体验一下ChatGPT的强大。话不多说&#xff0c;直接展示几个例子截图。文章最后放上体验地址和…

王炸!10分钟把ChatGPT部署成24小时微信机器人!

ChatGPT最近大家都是玩的风生水起&#xff0c;不亦乐乎&#xff01;各种应用层出不穷&#xff0c;其中最接地气&#xff0c;也是最受小白欢迎的就是wx机器人&#xff0c;因为它能跟微信深入融合( 详细看文末专栏 用PythonChatGPT打造超强的微信机器人&#xff01;)&#xff0c;…

史上最简单的自建ChatGPT部署方案,只需要一个HTML文件

今天发现一个史上最简单的自建ChatGPT部署方案&#xff0c;只需要一个HTML文件&#xff0c;把它配置到Nginx就能跑起来。 效果如下&#xff1a; 他能做什么用&#xff1f; 平常我们使用chatgpt需要配魔法上网才能登上官方网站&#xff0c;对于很多人来说这是个很棘手的问题&a…

基于Docker如何快速部署自己的ChatGPT

背景 随着OpenAI在2022年底发布的LLM模型-ChatGPT展现出的强大效果&#xff0c;ChatGPT无疑成为了当下炙手可热的明星模型。 现有的基于GPT的开源项目已经非常多&#xff0c;本文以现有的高热度github开源项目chatgpt-web为例&#xff0c;教大家简单快速地搭建属于自己的Chat…

ChatGLM 本地部署搭建及测试运行

这篇简要说下清华开源项目 ChatGLM 本地部署的详细教程。清华开源项目 ChatGLM-6B 已发布开源版本&#xff0c;这一项目可以直接部署在本地计算机上做测试&#xff0c;无需联网即可体验与 AI 聊天的乐趣。 项目地址&#xff1a;GitHub - THUDM/ChatGLM-6B: ChatGLM-6B&#xf…

chatgpt源码部署教程

chatgpt是一个基于GPT-3模型的聊天机器人项目&#xff0c;它能够与用户进行自然语言交互&#xff0c;并提供各种实用的功能。然而&#xff0c;对于许多开发者来说&#xff0c;将chatgpt源码部署到自己的服务器上并不是一件容易的事情。在本篇文章中&#xff0c;我们将为大家提供…

【ChatGPT本地部署-- ChatGLM】

这里写自定义目录标题 ChatGPT本地部署--- ChatGLM(转载)一、什么是ChatGLM&#xff1f;二、本地部署三、模型与ChatGPT和GPT4AII 效果对比 ChatGPT本地部署— ChatGLM(转载) 目录 一、什么是ChatGLM&#xff1f; 二、本地部署 2.1 模型下载 2.2 模型部署 2.3 模型运行 …