https://liaoxuefeng.com/blogs/all/2024-05-06-llama3/
史上最強開源AI大模型——Meta的LLaMa3一經發布,各項指標全面逼近GPT-4。它提供了8B和70B兩個版本,8B版本最低僅需4G視訊記憶體即可執行,可以說是迄今為止能在本地執行的最強LLM。
雖然LLaMa3對中文支援不算好,但HuggingFace上很快出現了各種針對中文的微調模型,本文將從零開始介紹如何在本地執行釋出在HuggingFace上的各種LLaMa3大模型。
準備環境
本文的演示環境是Mac M1 16G記憶體,自備工具,使用開源Ollama執行大模型,使用Open WebUI作為前端訪問介面,透過瀏覽器訪問,體驗十分接近GPT:
安裝軟體
首先安裝Ollama,它可以讓我們非常方便地執行各種LLM。從Ollama官網下載,執行,點選安裝Ollama命令列,然後在命令列測試Ollama是否已正常執行:
$ ollama -v
ollama version is 0.1.32
下載模型
Ollama可以直接下載內建的幾種模型,但選擇有限。我們更希望從HuggingFace下載以便方便地評估各種模型,所以,這裡我們並不從Ollama直接下載,而是從HuggingFace下載。
在HuggingFace搜尋llama3
,設定Languages
為Chinese
,可以看到若干基於LLaMa3的中文模型:
我們選擇一個GGUF格式的模型,GGUF格式是llama.cpp團隊搞的一種模型儲存格式,一個模型就是一個檔案,方便下載:
點選Files
,可以看到若干GGUF檔案,其中,q越大說明模型質量越高,同時檔案也更大,我們選擇q6,直接點選下載按鈕,把這個模型檔案下載到本地。
匯入模型
下載到本地的模型檔案不能直接匯入到Ollama,需要編寫一個配置檔案,隨便起個名字,如config.txt
,配置檔案內容如下:
FROM "/Users/liaoxuefeng/llm/llama3-8b-cn-q6/Llama3-8B-Chinese-Chat.q6_k.GGUF"
TEMPLATE """{{- if .System }}
<|im_start|>system {{ .System }}<|im_end|>
{{- end }}
<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
"""
SYSTEM """"""
PARAMETER stop <|im_start|>
PARAMETER stop <|im_end|>
第一行FROM "..."
指定了模型檔案路徑,需要修改為實際路徑,後面的模板內容是網上覆制的,無需改動。
然後,使用以下命令匯入模型:
$ ollama create llama3-cn -f ./config.txt
llama3-cn
是我們給模型起的名字,成功匯入後可以用list
命令檢視:
$ ollama list
NAME ID SIZE MODIFIED
llama3-cn:latest f3fa01629cab 6.6 GB 2 minutes ago
可以下載多個模型,給每個模型寫一個配置檔案(僅需修改路徑),匯入時起不同的名字,我們就可以用Ollama方便地執行各種模型。
執行模型
使用Ollama的run
命令可以直接執行模型。我們輸入命令ollama run llama3-cn
:
出現>>>
提示符時就可以輸入問題與模型互動。輸入/exit
退出。
搭建Web環境
使用命令列互動不是很方便,所以我們需要另一個開源的Open WebUI,搭建一個能透過瀏覽器訪問的介面。
執行Open WebUI最簡單的方式是直接以Docker執行。我們安裝Docker Desktop,輸入以下命令啟動Open WebUI:
$ docker run -p 8080:8080 -e OLLAMA_BASE_URL=http://host.docker.internal:11434 --name open-webui --restart always -v open-webui-data:/app/backend/data ghcr.io/open-webui/open-webui:main
引數-p 8080:8080
將Open WebUI的埠對映到本機。引數-e OLLAMA_BASE_URL=http://host.docker.internal:11434
告訴Open WebUI透過本機的11434訪問Ollama,注意地址必須寫host.docker.internal
,不能寫127.0.0.1
。
開啟瀏覽器我們就可以訪問http://127.0.0.1:8080,第一次訪問需要註冊,註冊和登入是完全基於本地環境的,登入後就可以看到類似GPT的UI。
我們在聊天介面點選右上角配置按鈕,點選Connections
,點選重新整理按鈕,如果一切無誤,會顯示Server connection verified
:
在聊天介面的頂部選擇一個模型,就可以愉快地開始和LLaMa3聊天了:
API
Open WebUI還提供了與OpenAI類似的API,使用前先點選設定 - Account,生成一個API Key,然後在命令列用curl測試:
$ curl -X POST -H "Authorization: Bearer sk-959c8b27a48145bfb83bdb396ff3eeae" -H "Content-Type: application/json" http://localhost:8080/ollama/api/generate -d '{"model":"llama3-cn:latest","stream":false,"prompt":"廖雪峰老師的網站提供了哪些教程?"}'
{"model":"llama3-cn:latest","created_at":"2024-05-01T14:42:28.009353Z","response":"廖雪峰老師是一位知名的技術專家和作家,他的網站提供了一系列關於程式設計、技術和個人成長的教程和資源。這些教程涵蓋了廣泛的主題,包括...
由於模型是執行在本地,Open WebUI也將資料儲存在本地,所以隱私性可謂拉滿。如果對一個模型不滿意,還可以從HuggingFace下載更多的模型來評估,非常方便。