入門開源大語言模型,最好的工具就是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中文模型,這方面的内容我們在後續的文章再進行分析。
作者:京東科技 彭建宏
來源:京東雲開發者社群