天天看點

如何優雅的使用ollama| 京東雲技術團隊

作者:京東雲開發者
如何優雅的使用ollama| 京東雲技術團隊

入門開源大語言模型,最好的工具就是ollama,這是一款簡單的大模型本地部署架構,支援基于指令行的方式運作多種大語言模型,并提供了相應的Python和JS SDK,可以基于此友善實作Chatbot UI。這篇文章就以京東雲智算平台為例(其他平台也是類似,甚至可以在本地電腦運作),分享如何一鍵安裝ollama的基本操作。

首先,在控制台建立GPU執行個體,待執行個體狀态為運作中後,一鍵安裝ollama應用。如果要手動安裝,可以參考ollama的官網,但下載下傳模型需要一段等待時間。

如何優雅的使用ollama| 京東雲技術團隊

安裝完成後,點選自定義應用,就可以看到ollama Web UI,平台預置了llama2-7b(latest),llama3-8b(latest), llama3-70b, qwen-4b(latest)模型,如果需要更多的模型,可以使用ollama pull指令進行下載下傳,ollama官方的模型倉庫參見這裡:https://ollama.com/library。

如何優雅的使用ollama| 京東雲技術團隊

我租的GPU顯示卡是4090(平台給的名字叫GN-FP32-83 24G * 1卡),運作llama3-8b,llama2和qwen都很快,但運作llama3-70b就會非常慢,好在llama3-70b廢話不多,直接回答了問題。下圖中第一個回答是llama3-8b的,第二個回答是llama3-70b的。

如何優雅的使用ollama| 京東雲技術團隊

我們可以基于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上和它進行對話,效果如下:

如何優雅的使用ollama| 京東雲技術團隊

再對比下原來llama3的回答,就能輕松看到效果了。

如何優雅的使用ollama| 京東雲技術團隊

在使用llama的過程中,我發現llama對中文的支援并不好,它可以了解中文,但回答卻總是用英語進行。如何建構自己的llama3中文模型,這方面的内容我們在後續的文章再進行分析。

作者:京東科技 彭建宏

來源:京東雲開發者社群