Ollama and Continue: 設定開源 AI 程式碼助手
Ollama 與 Continue 提供了一個框架,用於建立一個完全開源、可在筆記型電腦或遠端伺服器上本地運行的 AI 程式碼助手。這種整合讓開發者能夠在 Visual Studio Code 和 JetBrains 編輯器中直接使用進階的自動補全和對話功能,同時保持對其程式碼和數據的控制權。
用於對話和自動補全的本地模型配置
開發者可以根據其可用的硬體資源(VRAM)配置不同的 LLM 來處理特定的程式碼任務。
高性能單一模型:Codestral 22B
Mistral AI 的 Codestral 22B 推薦給希望使用單一模型同時處理自動補全和對話的使用者。雖然它在程式設計任務方面能力極強,但它需要大量的 VRAM,且受限於非生產用途授權,其用途僅限於研究和測試。
優化的多模型設置:DeepSeek Coder 和 Llama 3
對於 VRAM 有限的使用者或偏好專業化模型的使用者,可以進行拆分配置:
- 自動補全: DeepSeek Coder 6.7B 推薦用於高效的程式碼補全。
- 對話: Llama 3 8B 推薦用於對話介面。
Ollama 的多個併發請求處理能力允許這些模型在硬體支援的情況下同時運行。如果硬體不支援,使用者可以將本地模型與遠端託管或 SaaS 提供商結合使用。
本地程式碼庫上下文與檢索
Continue 與 Ollama 整合,提供本地 RAG(檢索增強生成)功能,確保程式碼庫上下文保持私密。
使用 @codebase 進行程式碼庫索引
@codebase 上下文提供者允許助手從本地專案中檢索相關程式碼片段。這是透過經由 Ollama 運行的 nomic-embed-text 嵌入模型並使用 LanceDB 進行索引來實現的。這讓開發者能夠提出專案特定的問題,例如在自己的程式碼中查詢特定模型的預設上下文長度。
使用 @docs 進行文件整合
@docs 提供者允許使用者索引外部文件網站。透過提供一個 URL(例如 Ollama 的 GitHub README),助手可以檢索並使用特定的文件章節作為對話查詢的上下文,並保持檢索過程在本地進行。
模型微調與自定義
Continue 允許團隊利用其自身的開發數據來改進其 AI 助手。
微調 StarCoder 2
Continue 會自動將開發數據(包括已接受的自動補全建議)儲存到 .continue/dev_data。這些數據可以用於微調像 StarCoder 2 這樣的模型。推薦的工作流程如下:
- 將已接受的 tab 建議提取到 Hugging Face Datasets。
- 使用 Hugging Face Supervised Fine-tuning Trainer。
- 將微調後的模型推送到 Ollama 模型庫,以便進行團隊範圍的部署和接受率衡量。
Sources
相關
- Dispatch
- Dispatch
- Dispatch
- 專案
- 專案