出品|開(kāi)源中國(guó)
GitHub Copilot 是 GitHub 去年 6 月推出的人工智能模型,這是一個(gè)利用機(jī)器學(xué)習(xí)技術(shù)為開(kāi)發(fā)者提供代碼建議和代碼補(bǔ)全的工具,能夠幫助開(kāi)發(fā)者更快完成編程任務(wù)。但由于 GitHub Copilot 訓(xùn)練使用的數(shù)據(jù)集,以及該工具如今成為了一款向開(kāi)發(fā)者收費(fèi)的商業(yè)性產(chǎn)品,GitHub Copilot 也引發(fā)了一些爭(zhēng)議。
那有沒(méi)有一個(gè)能夠替代 GitHub Copilot 的工具呢?
近日美國(guó)紐約大學(xué)計(jì)算機(jī)科學(xué)和工程系助理教授 Brendan Dolan-Gavitt 開(kāi)源了一個(gè)名為 FauxPilot 的項(xiàng)目,根據(jù)介紹,這是 GitHub Copilot 的替代品,能夠在本地運(yùn)行并且不會(huì)上傳用戶的數(shù)據(jù),如果開(kāi)發(fā)者使用的是自己訓(xùn)練的 AI 模型,也無(wú)需再擔(dān)心生成代碼的許可問(wèn)題。
GitHub Copilot 依賴于 OpenAI Codex,后者是一個(gè)基于 GPT-3 的自然語(yǔ)言轉(zhuǎn)代碼系統(tǒng),使用了存儲(chǔ)在 GitHub 上的 “數(shù)十億行公共代碼” 進(jìn)行訓(xùn)練。而 FauxPilot 并沒(méi)有使用 Codex,為了方便開(kāi)發(fā)者使用它依賴了 Salesforce 的 CodeGen 模型,CodeGen 同樣也是使用公共開(kāi)源代碼進(jìn)行訓(xùn)練的。
目前 Salesforce CodeGen 提供了 3.5 億、20 億、60 億 和 160 億參數(shù)的模型,但在 FauxPilot 這邊只看到 3.5 億、60 億和 160 億的模型,暫時(shí)沒(méi)有 20 億模型可用,這就對(duì)訓(xùn)練模型需要使用的 GPU 提出了較高的要求。因?yàn)?3.5 億參數(shù)的模型僅需要 2GB VRAM;而稍高一個(gè)檔次的 60 億參數(shù)模型所需要的 VRAM 就大幅上漲到了 13GB,這就需要至少 RTX 3090 的顯卡才能跑,就更不用說(shuō) 160 億的模型了。
由于 CodeGen 模型同樣是通過(guò)公共代碼訓(xùn)練的,因此給出的代碼建議可能仍然存在版權(quán) / 許可方面的問(wèn)題。開(kāi)發(fā)者 Dolan-Gavitt 表示,有足夠計(jì)算能力的公司或開(kāi)發(fā)者可以使用自己專有的代碼庫(kù)或使用特定協(xié)議的開(kāi)源代碼庫(kù)(如只含 GPL 協(xié)議的代碼倉(cāng)庫(kù))訓(xùn)練模型,將訓(xùn)練好的模型導(dǎo)入 FauxPilot 即可正常使用,這樣也無(wú)需再擔(dān)心產(chǎn)生的代碼會(huì)有許可問(wèn)題了。這就是 FauxPilot 可以在本地運(yùn)行的好處,它也能夠?yàn)槠髽I(yè)提供一種在內(nèi)部運(yùn)行人工智能輔助軟件的方式。
FauxPilot 的另一個(gè)特點(diǎn)是對(duì)于隱私方面的考慮,它不會(huì)讀取公司或開(kāi)發(fā)者編寫的代碼,也不會(huì)將這些信息共享給第三方。
FauxPilot 在 GitHub 上的地址如下:https://github.com/moyix/fauxpilot