前言
最近 Github Copilot 出了點(diǎn)問題,發(fā)現(xiàn)身邊不少同學(xué)如失左膀右臂。之前看到有網(wǎng)友方向通過本地部署 LLM 實(shí)現(xiàn)了類似 Copilot 的功能,借此機(jī)會我也來嘗試自己部署一套看看能否在 Copilot 無法使用期間臨時(shí)過渡一下。
本文作者:煙花易冷
原文地址:
工具介紹
整套工具鏈我選擇了比較熱門的 ollama 部署 deepseek 模型,然后和 IDE 上的 continue.dev 插件進(jìn)行聯(lián)動(dòng),實(shí)現(xiàn)類似 Github Copilot 的代碼提示與問答功能。
ollama
ollama 是一個(gè)輕量級、可擴(kuò)展的框架,專為在本地運(yùn)行大型語言模型而設(shè)計(jì)。它簡化了模型的設(shè)置和配置過程,包括 GPU 的使用,可以很方便地運(yùn)行并管理常見的開源大模型。在其官網(wǎng)有一個(gè)模型倉庫可以檢索到當(dāng)前支持的全部模型,基本上主流的開源模型都能找到,一些常用的模型如下:
在這里我主要應(yīng)用 ollama 來下載安裝 deepseek 模型,并提供對應(yīng)的 HTTP API,如果有同學(xué)使用了其他方法的話(如 LM Studio)也是可以的。再提一嘴,ollama 的 api 部分采用了 gin 框架,cli 部分采用了 cobra,是不是后端的同學(xué) DNA 要?jiǎng)恿耍ㄍ敌Γ?/p>
deepseek coder 模型
deepseek coder 是知名私募巨頭幻方量化旗下的人工智能公司深度求索自主研發(fā)的大語言模型,數(shù)學(xué)和編碼能力突出。核心功能是代碼自動(dòng)補(bǔ)全和智能代碼建議。它可以理解你的意圖,并根據(jù)你的上下文提供相關(guān)的代碼片段。
除了 deepseek 以外,還有 codellama、starcode 等開源模型也可以用作代碼生成類的場景,不同模型之間對比參考可以參考 deepseek 放出來的一張圖一張圖:

詳細(xì)的文章可以參考:https://maimai.cn/article/detail?fid=1819575131&efid=LlF0X9Eadl1kryiJ2Qrtcw
continue.dev 插件
continue.dev 是一款開源的 AI 輔助編程插件,支持 VSCode 和 Jetbrains IDE,也支持自定義 API 接口。在這里我便是利用 continue.dev 對接 ollama 的接口,去實(shí)現(xiàn)代碼的自動(dòng)完成功能。
我的開發(fā)機(jī)配置
MacBook Air M1 2020 版
8 核心 Arm CPU, 16G 運(yùn)行內(nèi)存
部署過程
安裝 ollama
首先進(jìn)入到 ollama 官網(wǎng)下載頁,選擇合適的系統(tǒng)版本進(jìn)行安裝
安裝完成后可以直接在終端里執(zhí)行 ollama 看看效果。對于 Mac 系統(tǒng),安裝完成后將會在任務(wù)欄展示一個(gè)小圖標(biāo)并自動(dòng)運(yùn)行 ollama 服務(wù)端。如果是 Linux 系統(tǒng)的話需要手動(dòng)執(zhí)行一下 ollama serve 啟動(dòng)。
下載并運(yùn)行對應(yīng)的模型
安裝完成之后,只需要簡單運(yùn)行一條命令即可下載 deepseek code 模型。在這里我選擇的是 6.7b 的版本
ollama pull deepseek-coder:6.7b
我們可以通過下面的命令看到當(dāng)前已經(jīng)下載的模型
ollama list
也可以直接運(yùn)行模型進(jìn)行簡單的人機(jī)對話的話
ollama run deepseek-coder:6.7b

安裝 continue.dev 插件并配置對應(yīng)的模型
這里以 VSCode 為例,直接進(jìn)入到插件市場,搜索 continue 然后安裝即可

這個(gè)插件大約250M,下載過程比較緩慢,完成安裝后需要進(jìn)行簡單的配置。
使用效果
這里簡單試了一下自動(dòng)完成的能力,與 github copilot 的用法基本一致,能夠正常為我們生成注釋、代碼片段以及通過對話的方式生成單元測試。


總結(jié)
整個(gè)流程跑下來,確實(shí)是能夠?qū)崿F(xiàn)類似于 Copilot 的效果,并且可以脫離互聯(lián)網(wǎng)運(yùn)行,但是個(gè)人認(rèn)為它的功能還是相對雞肋。
由于是本地部署,個(gè)人開發(fā)機(jī)配置并不算高,因此模型的響應(yīng)速度不太理想。
所選擇的模型跑出來的效果不盡人意。由于時(shí)間的緣故,我基本上按照網(wǎng)友們的評論跟帖選擇了 deepseek 6.7b 的模型,其他同種類的模型如 codellama、starcoder 都沒來得及試用,加之開發(fā)機(jī)無獨(dú)立顯卡、內(nèi)存空間不大而選擇了 6.7b 的版本,“代碼提示”的效果遠(yuǎn)不如 GPT4 模型完善,具體表現(xiàn)為條件判斷不嚴(yán)謹(jǐn)、部分代碼提示出現(xiàn)非預(yù)期錯(cuò)誤等等。
根據(jù)網(wǎng)友使用家用電腦跑大模型的案例,由于電腦沒有獨(dú)立的GPU,使用CPU運(yùn)算時(shí)將會增大內(nèi)存的帶寬負(fù)擔(dān),有出現(xiàn)內(nèi)存受損的情況。雖然不排除是個(gè)例,但是長時(shí)間讓開發(fā)機(jī)處于滿載狀態(tài)會不會影響壽命確實(shí)是個(gè)值得思考的問題。
時(shí)間匆忙,行文催促,并未對各個(gè)模型的效果做詳細(xì)對比,虛心接受各位前輩的指教。