基于Llama 3搭建中文版(Llama3-Chinese-Chat)大模型對話聊天機器人

前面兩篇博文,我們分別在個人筆記本電腦部署了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


微信公眾號:Python禪師

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/16569.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/16569.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/16569.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

匯編一:匯編語言前的基礎知識

計算機的工作原理就是取址執行,在哪兒執行呢,在cpu里面執行,從哪里面去取址呢?從內存中去取址,內存又被叫做存儲器 可是,cpu和存儲器是2個分開的硬件設備,那么是怎么做到把存儲器里面的東西傳給cpu呢,這就需要總線了 1.總線 總線一共可以分為3種, 一種是數據總線,一種是控制總…

OpenWrt U盤安裝使用 詳細教程 x86/64平臺 軟路由實測 系列一

1 官方穩定 版:OpenWrt 23.05 OpenWrt Downloads #根據實際情況選擇 PC支持uefi,選擇版本:https://downloads.openwrt.org/releases/23.05.3/targets/x86/64/openwrt-23.05.3-x86-64-generic-ext4-combined-efi.img.gz 2 rufus 制作U盤啟動 3 制作好的U盤,接入主…

Redux基礎

簡介 狀態管理工具,集中式管理react、vue、angular等應用中多個組件的狀態,是一個庫,使用之后可以清晰的知道應用里發生了什么以及數據是如何修改,如何更新的 在項目中添加 Redux 并不是必須的,根據項目需求選擇是否引入 Redux 三個原則 …

Linux部分漏洞處理

1、ICMP timestamp請求響應漏洞 ICMP timestamp請求響應漏洞是指,當網絡設備接收到ICMP timestamp請求時,它會返回當前時間戳作為響應,這可能導致設備的時間戳被暴露,進而可能被用于計算機時間戳協議(TLS)的…

PDF.js

什么是 PDF.js? PDF.js 是由 Mozilla 開發的一個用于呈現 PDF 文件的 JavaScript 庫。它允許開發者將 PDF 文件直接嵌入到網頁中,而無需使用插件或其他外部工具。PDF.js 使用 HTML5 技術,利用 Canvas 元素來呈現 PDF 內容,并提供…

基于集成經驗模態分解的心電信號降噪和基于希爾伯特變換的R峰檢測(MATLAB R2018)

近年來,心臟病已成為危害人類健康最常見的疾病。為了有效預防心臟疾病的發生,往往需要更加準確地采集與診斷心電信號,以便于更好地反映心臟情況。心電信號作為人體生理信號,對于識別心臟異常和心臟疾病具有重要的參考價值。心電信…

ubuntu如何安裝gitlab runner

一、什么是GitLab Runner GitLab Runner 是 GitLab 提供的一個開源工具,用于在構建、測試和部署過程中執行作業。它是 GitLab 持續集成和持續部署(CI/CD)工作流的核心組件之一。 GitLab Runner 有以下主要功能: 作業執行:GitLab Runner 會接收來自 GitLab 的作業請求,并在指定…

ROS基礎學習-ROS通信機制研究

研究ROS通信機制 研究ROS通信機制 0.前言1.話題通信1.1 理論模型1.2 話題通訊的基本操作1.2.1 C++1.2.2 Python0.前言 機器人是一種高度復雜的系統性實現,在機器人上可能集成各種傳感器(雷達、攝像頭、GPS…)以及運動控制實現,為了解耦合,在ROS中每一個功能點都是一個單獨的…

從File類開始,學習Java文件操作

哈嘍,各位小伙伴們,你們好呀,我是喵手。運營社區:C站/掘金/騰訊云;歡迎大家常來逛逛 今天我要給大家分享一些自己日常學習到的一些知識點,并以文字的形式跟大家一起交流,互相學習,一…

windows安裝SQL Server

1、下載 下載網頁:SQL Server 下載 | Microsoft 2022版下載地址:https://go.microsoft.com/fwlink/p/?linkid2215158&clcid0x404&culturezh-tw&countrytw 下載結果:SQL2022-SSEI-Dev.exe 打開選第三個,下載介質&…

自定義Linux命令,顯示docker鏡像、容器信息

1、修改環境變量(僅對當前用戶有效) vim ~/.bashrc2、給命令取別名 alias dpsdocker ps --format "table{{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Ports}}" alias disdocker images#保存并退出 :wq3、讓配置重新生效 source ~/.bashrc4、測試&…

ChatGPT技術演進簡介

chatGPT(chat generative pre-train transformer, 可以對話的預訓練trasformer模型),討論點: 1、chatGPT為什么突然火了 2、GPT 1.0、2.0、3.0、3.5 、4和4o區別和特性,在不同應用場景中如何選對模型 3、未…

基于ESP8266的無線通信系統設計

本文介紹了一種基于ESP8266的無線通信系統設計方案。ESP8266是一款功能強大且成本低廉的WiFi模塊,非常適合用于構建無線通信系統。本設計主要圍繞ESP8266模塊的功能特點,闡述了系統的硬件組成、軟件設計以及實際應用示例。 關鍵詞:ESP8266&a…

【docker】倉庫harbor的部署

harbor介紹 Harbor 是一個用于存儲和管理 Docker 鏡像的開源倉庫。它提供了一系列的功能,比如用戶管理、訪問控制、鏡像管理、日志審計和安全掃描等。Harbor 可以作為私有倉庫來使用,也可以與公有倉庫(如 Docker Hub)集成使用。 …

python數據分析——apply 1

參考資料:活用pandas庫 apply是指把函數同時作用于DataFrame的每一行或每一列。類似于編寫一些跨每行或每列的for循環,并同時調用apply函數。 1、函數 函數是對python代碼進行分組和復用的一種方法。如果某段代碼會被多次使用,并且使用時是需…

JS Lab

如何用 JavaScript 在瀏覽器中彈窗如何在 JavaScript 中制作鼠標滑過按鈕改變背景顏色如何在 JS 中點擊按鈕使數字增加如何在 JS 中循環打印多少次 HTML <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title…

優化FPGA SelectIO接口VREF生成電路

引言&#xff1a;FPGA設計中使用了各種PCB SelectIO?接口VREF生成電路。有時即使在以前的設計中已經成功的在電路板上設計了VREF生成電路&#xff0c;也會在VREF引腳上發現大量噪聲&#xff08;200–400mV&#xff09;。大量VREF噪聲的存在可能導致高性能SelectIO接口&#xf…

瑞昱半導體AMB82 MINI(RTL8735B)Arduino 方法介紹

介紹瑞昱半導體&#xff08;Realtek &#xff09;AMB82-Mini 物聯網 AI開發板 Ameba是一個易于編程的平臺&#xff0c;用于開發各種物聯網應用程序。AMB82 MINI配備了各種外設接口&#xff0c;包括WiFi、BLE、GPIO INT、I2C、UART、SPI、PWM、ADC。通過這些接口&#xff0c;AM…

找出只出現一次的數字

輸入一些數字&#xff0c;每個數字以逗號分隔&#xff0c;其中有一個數字出現1次&#xff0c;其余數字均會出現2次。請找出那個只出現一次的數字! 提示&#xff1a;使用字典的方式實現 # 輸入一些數字&#xff0c;每個數字以逗號分隔 input_nums input("請輸入一些數字…

從0開始學統計-秩和檢驗

1.什么是秩和檢驗&#xff1f; 秩和檢驗&#xff0c;也稱為Wilcoxon 秩和檢驗&#xff0c;是一種非參數統計檢驗方法&#xff0c;用于比較兩個獨立樣本的中位數是否有顯著差異。它不要求數據滿足正態分布假設&#xff0c;因此適用于小樣本或者數據不滿足正態分布假設的情況。 …