前面兩篇博文,我們分別在個人筆記本電腦部署了Llama 3 8B參數大模型,并使用Ollama搭建了基于 Web 可視化對話聊天機器人,可以在自己電腦上愉快的與Llama大模型 Web 機器人對話聊天了。但在使用過程中,筆者發現Llama大模型經常出現中文問題英文回答的問題,需要使用中文回答等提示詞告訴大模型用中文回答,體驗還不是最好的。今天,本博文就來解決這個問題,讓我們有個中文版的Llama 3Web 對話機器人(Llama3-Chinese-Chat)……
第一篇Llama 3 8B大模型部署和 Python 版對話機器人博文:玩轉 AI,筆記本電腦安裝屬于自己的 Llama 3 8B 大模型和對話客戶端
第二篇基于Ollama部署Llama 3 8B大模型 Web 版本對話機器人博文:一文徹底整明白,基于 Ollama 工具的 LLM 大語言模型 Web 可視化對話機器人部署指南
注意: 因為本博文介紹的是Llama 3 中文版(Llama3-Chinese-Chat)對話機器人,涉及到前面兩篇博文內容,特別是第二篇 Web 版本對話機器人部署,因此建議按照前文博文部署好Llama 3 8B大語言模型。
HF 上選擇排名最高的模型
模型列表官網地址:https://huggingface.co/models
模型列表國內鏡像(推薦):https://hf-mirror.com/models
在模型列表頁面按照關鍵字llama chinese
搜索,并按照趨勢排序,可以看到中文版模型:
可以看出,第一名模型的下載數量和點贊數量,比第二名要多好多,我們就選擇shenzhi-wang這位作者發布的模型。
方式一:通過 GGUF 量化模型安裝(推薦)
GGUF 安裝比較簡單,下載單個文件即可:
下載到本地之后,按照我的第一篇博文,即可進行控制臺聊天了:
啟動大模型Shell 腳本:
source ./venv/bin/activatepython -m llama_cpp.server --host 0.0.0.0 --model \./Llama3-8B-Chinese-Chat-q4_0-v2_1.gguf \--n_ctx 20480
Python 對話客戶端代碼:
from openai import OpenAI# 注意服務端端口,因為是本地,所以不需要api_key
ip = '127.0.0.1'
#ip = '192.168.1.37'
client = OpenAI(base_url="http://{}:8000/v1".format(ip),api_key="not-needed")# 對話歷史:設定系統角色是一個只能助理,同時提交“自我介紹”問題
history = [{"role": "system", "content": "你是一個智能助理,你的回答總是容易理解的、正確的、有用的和內容非常精簡."},
]# 首次自我介紹完畢,接下來是等代碼我們的提示
while True:completion = client.chat.completions.create(model="local-model",messages=history,temperature=0.7,stream=True,)new_message = {"role": "assistant", "content": ""}for chunk in completion:if chunk.choices[0].delta.content:print(chunk.choices[0].delta.content, end="", flush=True)new_message["content"] += chunk.choices[0].delta.contenthistory.append(new_message)print("\033[91;1m")userinput = input("> ")if userinput.lower() in ["bye", "quit", "exit"]: # 我們輸入bye/quit/exit等均退出客戶端print("\033[0mBYE BYE!")breakhistory.append({"role": "user", "content": userinput})print("\033[92;1m")
運行 Python 客戶端即可:
按照第二篇博文,部署基于 Web 版對話機器人:一文徹底整明白,基于 Ollama 工具的 LLM 大語言模型 Web 可視化對話機器人部署指南
基于 GGUF 量化模型生成 Ollama模型文件,假設文件名為Modelfile-Chinese
,內容如下:
FROM ./Llama3-8B-Chinese-Chat-q4_0-v2_1.gguf
執行 Ollama 模型轉換,Llama-3-8B-Chinese
為 Ollama 模型名:
$ ollama create Llama-3-8B-Chinese -f ./Modelfile-Chinese
transferring model data
using existing layer sha256:242ac8dd3eabcb1e5fcd3d78912eaf904f08bb6ecfed8bac9ac9a0b7a837fcb8
creating new layer sha256:9f3bfa6cfc3061e49f8d5ab5fba0f93426be5f8207d8d8a9eebf638bd12b627a
writing manifest
success
可以通過 Ollama 查看目前的大模型列表:
$ ollama list
NAME ID SIZE MODIFIED
Llama-3-8B-Chinese:latest 37143cf1f51f 4.7 GB 42 seconds ago
Llama-3-8B:latest 74abc0712fc1 4.9 GB 3 days ago
可以看到我們剛安裝的大模型:Llama-3-8B-Chinese
啟動ollama-webui-lite項目,可以選擇Llama-3-8B-Chinese模型和對話聊天了:
$ npm run dev> ollama-webui-lite@0.0.1 dev
> vite dev --host --port 3000VITE v4.5.3 ready in 1797 ms? Local: http://localhost:3000/? Network: http://192.168.101.30:3000/? press h to show help
方式二:通過 Ollama 拉取模型文件
這種方式比較簡單,無需下載 GGUF 模型文件,可以讓 Ollama 直接拉取模型文件并完成安裝:
# Llama3-8B-Chinese-Chat的4位量化版本(對機器性能要求最低)
ollama run wangshenzhi/llama3-8b-chinese-chat-ollama-q4# Llama3-8B-Chinese-Chat的8位量化版本(對機器性能要求中等)
ollama run wangshenzhi/llama3-8b-chinese-chat-ollama-q8# Llama3-8B-Chinese-Chat的f16未量化版本(對機器性能要求最高)
ollama run wangshenzhi/llama3-8b-chinese-chat-ollama-fp16
Ollama 自動下載并完成安裝,之后啟動ollama-webui-lite項目,就可以使用了~
我的本博客原地址:https://ntopic.cn/p/2024052101