透過Ollama在本機電腦執行大型語言模型(LLM):Windows與VS Code篇

延續macOS篇的設定,本文將說明在Windows系統透過Ollama在本機安裝執行大型語言模型,並與Visual Studio Code程式編輯器協作的方式。在撰寫本文時,Ollama Windows為預覽(Preview)版,我在使用過程沒遇過問題。請到Ollama官網下載並執行Ollama Windows安裝程式,點擊“Install”進行安裝。

Ollama Windows安裝程式

安裝完畢後,開啟命令提示字元,輸入“ollama -v”,它將回報安裝的版本編號,代表安裝成功。

輸入“ollama -v”

日後電腦開機時(Mac和Windows都一樣),Ollama也會一併啟動,但不使用時,它幾乎不占用資源。在我的Windows 11系統上,從工作管理員查看它占用0% CPU和不到10MB主記憶體。

執行“ollama run codellama”下載與執行Meta公司提供的Code Llama模型,並且請它用Python TensorFlow編寫一個簡單的神經網路程式。

下載與執行Code Llama模型

測試無誤後,輸入“/bye”關閉Ollama。

在Visual Studio Code中使用AI協助開發程式

微軟的VS Code程式編輯器有許多支援大語言模型的AI程式助手延伸模組,能在編輯器裡面提供生成程式碼、偵錯(除錯)、優化和交談等功能,其中一個“Continue”模組支援多個線上LLM服務,也支援本機端的Ollama服務。請在VS Code的「延伸模組」欄位搜尋“continue”並安裝它。

搜尋並安裝continue

安裝完畢並啟用它,編輯器會出現如下的歡迎畫面,建議你把Continue模組拖曳到編輯器右側,這樣才不會遮擋檔案總管窗格。日後要開啟Continue窗格,請按下Ctrl + LCommand + L鍵。以下內容將把”Continue”模組簡稱為「AI助手」

Continue的歡迎畫面

接著顯示此AI助手的基本操作說明,請點擊「標記完成」。

Continue的基本操作說明

接著顯示如下的歡迎畫面,左側三個方框文字的“Fully local”(完全在本地端)說明它支援Ollama, LM Studio和其他LLM服務,你編寫的程式碼不會外流,但它們採用的是能力比較不那麼強大的語言模型。

點擊Custom(自訂)方框,將會開啟config.json設置檔,稍後我們會編輯這個檔案,現在先不理它。

config.json設置檔

點擊左下角的“Continue”繼續,它將開啟此「AI助手」延伸模組面板,以及操作教學的Python程式檔。AI助手面板底下的「語言模型」選單,提供數個「免費試用(Free Trial)」的線上語言模型,例如:Claude 3 Sonnet, GPT-4 Turbo, Gemini Pro, Mixtral,…。

操作教學畫面

點擊目前開啟的Python程式內容,AI助手將在其中標示一些文字,例如,在函式定義上面顯示“Highlight this function”(反白選取這個函式),這些文字不會存入程式檔。

反白選取函式

點擊“Highlight this function”,它將選取名為“mysterious_function”(代表「謎之函式」)的程式碼,然後按下Ctrl + L鍵,被選取的程式碼將被複製到AI助手的對話框。

先說明一下,你也可以自行選取一段程式碼,然後按下Ctrl + L鍵。在選取或編輯程式碼的過程,VS Code編輯器右下角可能會彈出如下的「找不到”starcode2:3b”語言模型」錯誤訊息,請先忽略它,稍後再解決。

找不到starcode2:3b語言模型錯誤

在AI助手的對話框輸入「請問這段程式碼的用途?」,”Claude 3 Sonnet”回答如下:

Claude 3 Sonnet

這個例子告訴我們,有些程式設計師會故意把程式碼寫得讓他人很難看懂,但AI助手可輕易看破這些伎倆。

從AI助手面板底下的「語言模型」選單換個模型,再問同樣的問題試試,底下是“Gemini Pro”的答覆:

Gemini Pro

在VS Code裡面執行本機的離線大型語言模型

「語言模型」選單現有的模型都是要連線到雲端的免費試用版,請點擊AI助手面板下方的「設置」鈕,在開啟的config.json檔案裡的“models”成員當中,加入底下的敘述:

, 
{ 
  "title": "Code Llama",    // 自訂的標題 
  "provider": "ollama",     // 自訂的供應商名稱 
  "model": "codellama"      // 已安裝於本機的大型語言模型名稱 
}

設置語語言模型

順便解決之前的「找不到”starcode2:3b”語言模型」錯誤訊息,同樣在此config.json檔,往下找到"tabAutoCompleteModel"(Tab鍵自動完成模型)成員,此處預設採用“Starcoder2 3b”模型,根據Ollama的Starcoder2網頁說明,這個模型的”3b”版由17種程式語言和3兆多個token(語意單元)訓練而成。若要使用這個模型,請在終端機(命令提示字元)輸入:

ollama pull starcoder2:3b

我沿用之前下載的“Code Llama”模型,因此將此設置改成右下圖的模樣,也沒有下載starcoder2。這個"tabAutoCompleteModel"設定程式編輯器「程式碼自動完成」所採用的語言模型。

Tab鍵自動完成模型

上圖最後的“allowAnonymousTelemetry”(允許匿名遙測)預設為true,代表允許Continue模組在背地裡以匿名的方式蒐集這個工具的使用情況,如果你不允許,可設成false。修改完畢後,按Ctrl + S鍵儲存。

底下是採用本機的Code Llama解釋「謎之函式」的回答:

Code Llama

使用AI助手生成程式碼

安裝在VS Code的AI程式助手可以根據提示詞或程式裡的註解,自動產生程式碼。底下是在一個“SimpleWeb”資料夾新增一個hello.py空白文件,然後按下Ctrl + I或者Mac上的Command + I(代表Insert,插入),在彈出面板輸入程式碼的需求,再按下Enter鍵:

生成程式碼

AI助手將產生對應的程式碼;補充說明,你不需要事先在終端機執行”ollama run”之類的命令,只要之前安裝的Ollama應用程式處於執行狀態即可。

生成程式碼

如果你接受這段生成的程式碼,請按下Ctrl或Command + Shift + Enter:若不接受,則按Ctrl或Command + Shift + 刪除鍵。底下是接受之後,在第5行插入一個“#”註解開頭符號,AI助手將自動提示註解文字(以灰色斜體字呈現)。

自動提示註解

按Tab鍵即可接受提示文字。

接受提示

你也能在程式中自行輸入註解,按下Enter鍵後,AI助手會提示對應的程式碼:

從註解產生程式碼

Posts created 471

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top