ChatGPT的開源替代品來了,原始碼、模型權重和訓練資料集全部公開。
它叫OpenChatKit,由前OpenAI研究員共同打造。
Introducing OpenChatKit 🚀 -
— Itamar Golan 🤓 (@ItakGol) March 11, 2023
The first open-source alternative to ChatGPT!
A team of ex-OpenAI fellows at Together have released a 20B chat-GPT model, fine-tuned for chat using EleutherAI's GPT-NeoX-20B, with over 43 million instructions under the Apache-2.0 license.
>>> pic.twitter.com/egPu53RWiQ
效果大概是這樣:
可以用簡單的語言解釋機器學習的概念,也可以回答測試者提出的第二個小問題。
Introducing OpenChatKit 🚀 -
— Itamar Golan 🤓 (@ItakGol) March 11, 2023
The first open-source alternative to ChatGPT!
A team of ex-OpenAI fellows at Together have released a 20B chat-GPT model, fine-tuned for chat using EleutherAI's GPT-NeoX-20B, with over 43 million instructions under the Apache-2.0 license.
>>> pic.twitter.com/egPu53RWiQ
資訊提取也難不倒它,例如將一大段計畫用表格表示。
據悉,OpenChatKit一共包含200億參數,在EleutherAI的GPT-NeoX-20B(GPT-3開源替代品)上進行了微調,還可以連接其它API或資料來源進行檢索等等。
這不,GitHub剛剛上線,就已經獲得了2000多個星星。
有網友感歎「事情進展得也太快了吧」,作者則回應:「綁好安全帶,享受『飆車』吧。」
OpenChatKit,替代ChatGPT
據介紹,OpenChatKit一共包含4個基本組件:
1、一個指令最佳化大型語言模型
用EleutherAI的GPT-NoX-20B對聊天功能進行了微調,後者在carbon-negative運算上具有4300萬條指令。
調整重點是多輪對話、問答、分類、提取和摘要等幾個任務。
2、定制方法(recipe)
用來説明微調模型使其能夠為特定任務提供高精度的結果,只需要準備自己的資料集。
3、一個可擴充的檢索系統
可以讓你在推理時從文件檔案儲存庫、API或其他即時更新資訊源加入訊息。
4、一個由GPT-JT-6B微調而成的調節模型(moderation model)。可以過濾模型對一些問題的回應
這樣的OpenChatKit可以為各種應用程式創建專用和通用的聊天機器人。
在GitHub上的倉庫,你可以找到它的訓練程式碼、測試推理代碼以及通過檢索增強模型的程式碼。
具體如何使用?
首先,在開始之前,安好PyTorch和其他依賴項。
先從作者團隊的網站(Together)安裝Miniconda,然後用此repo根目錄下的environment.yml檔創建一個名為OpenChatKit的環境。
由於repo使用Git LFS來管理檔,所以還需要按照他們網站上的說明進行安裝,然後運行git lfs install。
接著,關於預訓練權重。
GPT-NeoXT-Chat-Base-20B是GPT NeoX的200億參數變體,它在會話資料集上進行了微調。
作者在Huggingface上的GPT-Next-Chat-Base-20B發表了預訓練權重。
資料集方面,OpenChatKit模型是在LAION、Together和Ontocord.ai共同構建的OIG資料集上訓練的。
同樣,從Huggingface下載資料集,然後在repo的根目錄運行以下命令就行:
python data/OIG/prepare.py。
(你也可以貢獻新的資料來改善模型效果~)
然後就可以預訓練基礎模型了。
方法是在根目錄用以下命令下載GPT-NeoX-20B模型:
python pretrained/GPT-NeoX-20B/prepare.py。
它的權重放在pretrained/GPT-NeoX-20B/EleutherAI_gpt-neox-20b目錄中。
下載好之後,執行bash training/finetune_GPT-NeoXT-Chat-Base-20B.sh腳本,開始配置和訓練。
訓練會啟動8個進程,管道並行度為8,資料並行度為1。Checkpoints則將保存到repo根目錄的model_ckpts目錄中。
在推理之前,請務必將模型轉換為Hugginface格式。
為了説明你測試模型,作者也在這裡提供了一個簡單的測試命令列工具來進行互動,執行命令:
python inference/bot.py。
預設情況下,腳本會在目錄下載入名為GPT-NeoXT-Chat-Base-20B model的模型,但我們可以通過—model進行改變。
都弄好之後,在提示符處輸入文本,模型就會回復了。
最後,作者還提供了一個用維基百科進行擴充搜索的例子,操作也相對簡單,感興趣的人可以自行查看。
關於作者
OpenChatKit的歸屬單位叫Together。
這是一家去年7月才成立的創業公司,專門為AI行業做去中心化的雲端服務。
CEO是Vipul Ved Prakash,他曾在蘋果做了5年高級總監。
CTO是Zhang Ce,蘇黎世聯邦理工學院電腦專業的助理教授。
據推特Itamar Golan稱,OpenChatKit的作者包含多位前OpenAI研究員。
總的來說,OpenChatKit開箱即用,擅長多項任務,包括具有上下文的總結和問題回答、資訊提取、文本分類等。
但它還不太擅長創意寫作(尤其是編長故事)、寫程式,以及有時可能會重複回應你的請求、在切換話題時表現遲鈍……
不過,正如Together在部落格中說的那樣:
這個模型不是發表完就結束了,它是一個開源專案的開始。
那麼,如果你感興趣,連結在這裡:
資料來源:
加入電腦王Facebook粉絲團