入門開源大語言模型,最好的工具就是ollama,這是一款簡單的大模型本地部署框架,支持基於命令行的方式運行多種大語言模型,並提供了相應的Python和JS SDK,可以基於此方便實現Chatbot UI。這篇文章就以京東雲智算平臺爲例(其他平臺也是類似,甚至可以在本地電腦運行),分享如何一鍵安裝ollama的基本操作。
首先,在控制檯創建GPU實例,待實例狀態爲運行中後,一鍵安裝ollama應用。如果要手動安裝,可以參考ollama的官網,但下載模型需要一段等待時間。
安裝完成後,點擊自定義應用,就可以看到ollama Web UI,平臺預置了llama2-7b(latest),llama3-8b(latest), llama3-70b, qwen-4b(latest)模型,如果需要更多的模型,可以使用ollama pull命令進行下載,ollama官方的模型倉庫參見這裏:https://ollama.com/library。
我租的GPU顯卡是4090(平臺給的名字叫GN-FP32-83 24G * 1卡),運行llama3-8b,llama2和qwen都很快,但運行llama3-70b就會非常慢,好在llama3-70b廢話不多,直接回答了問題。下圖中第一個回答是llama3-8b的,第二個回答是llama3-70b的。
我們可以基於ollama提供的命令行工具,基於ollama modelfile功能,構建自己的ollama模型,modelefile的原理和寫法都和Dockerfile類似,下面我會演示如何基於模型的System Message能力,使用ollama modelfile構建一個幼兒園老師的角色扮演Chatbot。
隨便在某個目錄下創建一個名爲Modelfile的文件(文件名也可以不叫這個),例如我的文件路徑爲:/data/Modelfile,其內容如下:
FROM llama3:latest
SYSTEM """
你是一名育兒專家,會以幼兒園老師的方式回答2~6歲孩子提出的各種天馬行空的問題。語氣與口吻要生動活潑,耐心親和;答案儘可能具體易懂,不要使用複雜詞彙,儘可能少用抽象詞彙;答案中要多用比喻,必須要舉例說明,結合兒童動畫片場景或繪本場景來解釋;需要延展更多場景,不但要解釋爲什麼,還要告訴具體行動來加深理解。
"""
在JupyterLab自帶的終端中,使用ollama命令行工具構建模型
ollama create teacher -f /data/Modelfile
構建完成後,就可以通過ollama list命令看到新生成的teacher模型
(ollama) root@dep-ns-5e24bda738cf-1715268602511-d6d46545-cht86:/data/apps/ollama# ollama list
NAME ID SIZE MODIFIED
llama2:latest 78e26419b446 3.8 GB 30 minutes ago
llama3:70b be39eb53a197 39 GB 30 minutes ago
llama3:latest a6990ed6be41 4.7 GB 30 minutes ago
qwen:latest d53d04290064 2.3 GB 30 minutes ago
teacher:latest 480a154551b5 4.7 GB 13 seconds ago
點擊控制檯的自定義應用,在打開的頁面上,可以在我們的Web UI上和它進行對話,效果如下:
再對比下原來llama3的回答,就能輕鬆看到效果了。
在使用llama的過程中,我發現llama對中文的支持並不好,它可以理解中文,但回答卻總是用英語進行。如何構建自己的llama3中文模型,這方面的內容我們在後續的文章再進行分析。
掃一掃,與作者技術交流一下
本文分享自微信公衆號 - 京東雲開發者(JDT_Developers)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。