ChatGPT開源平替來了,開箱即用!前OpenAI團(tuán)隊(duì)打造,GitHub剛發(fā)布就攬獲800+星
本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
ChatGPT的開源平替來了,源代碼、模型權(quán)重和訓(xùn)練數(shù)據(jù)集全部公開。
它叫OpenChatKit,由前OpenAI研究員共同打造。
效果是這樣兒的:
可以用簡單的語言解釋機(jī)器學(xué)習(xí)的概念,也可以回答測試者提出的第二個小問題。
信息提取也難不倒它,比如將一大段計劃用表格表示。
據(jù)悉,OpenChatKit一共包含200億參數(shù),在EleutherAI的GPT-NeoX-20B(GPT-3開源替代品)上進(jìn)行了微調(diào),還可以連接其它API或數(shù)據(jù)源進(jìn)行檢索等等。
這不,GitHub剛剛上線,就已經(jīng)獲得了800+標(biāo)星。
有網(wǎng)友感嘆“事情進(jìn)展得也太快了吧”,作者則回應(yīng):
安全帶系緊,享受“飆車”吧。
來看看它具體怎么玩?
OpenChatKit,你的平替ChatGPT
據(jù)介紹,OpenChatKit一共包含4個基本組件:
1、一個指令調(diào)優(yōu)的大型語言模型。
用EleutherAI的GPT-NoX-20B對聊天功能進(jìn)行了微調(diào),后者在carbon-negative計算上具有4300萬條指令。
調(diào)整重點(diǎn)是多輪對話、問答、分類、提取和摘要等幾個任務(wù)。
2、定制配方(recipe)。
用來幫助微調(diào)模型使其能夠?yàn)樘囟ㄈ蝿?wù)提供高精度的結(jié)果,只需要準(zhǔn)備自己的數(shù)據(jù)集。
3、一個可擴(kuò)展的檢索系統(tǒng)。
可以讓你在推理時從文檔存儲庫、API或其他實(shí)時更新信息源添加信息。
4、一個由GPT-JT-6B微調(diào)而成的調(diào)節(jié)模型(moderation model)。可以過濾模型對一些問題的響應(yīng)。
這樣的OpenChatKit可以為各種應(yīng)用程序創(chuàng)建專用和通用的聊天機(jī)器人。
在GitHub上的倉庫,你可以找到它的訓(xùn)練代碼、測試推理代碼以及通過檢索增強(qiáng)模型的代碼。
具體如何使用?
首先,在開始之前,安好PyTorch和其他依賴項(xiàng)。
先從作者團(tuán)隊(duì)的網(wǎng)站(Together)安裝Miniconda,然后用此repo根目錄下的environment.yml文件創(chuàng)建一個名為OpenChatKit的環(huán)境。
由于repo使用Git LFS來管理文件,所以還需要按照他們網(wǎng)站上的說明進(jìn)行安裝,然后運(yùn)行g(shù)it lfs install。
接著,關(guān)于預(yù)訓(xùn)練權(quán)重。
GPT-NeoXT-Chat-Base-20B是GPT NeoX的200億參數(shù)變體,它在會話數(shù)據(jù)集上進(jìn)行了微調(diào)。
作者在Huggingface上的GPT-Next-Chat-Base-20B發(fā)布了預(yù)訓(xùn)練權(quán)重。
數(shù)據(jù)集方面,OpenChatKit模型是在LAION、Together和Ontocord.ai共同構(gòu)建的OIG數(shù)據(jù)集上訓(xùn)練的。
同樣,從Huggingface下載數(shù)據(jù)集,然后在repo的根目錄運(yùn)行以下命令就行:
python data/OIG/prepare.py。
(你也可以貢獻(xiàn)新的數(shù)據(jù)來改善模型效果~)
然后就可以預(yù)訓(xùn)練基礎(chǔ)模型了。
方法是在根目錄用以下命令下載GPT-NeoX-20B模型:
python pretrained/GPT-NeoX-20B/prepare.py。
它的權(quán)重放在pretrained/GPT-NeoX-20B/EleutherAI_gpt-neox-20b目錄中。
下載好之后,執(zhí)行bash training/finetune_GPT-NeoXT-Chat-Base-20B.sh腳本,開始配置和訓(xùn)練。
訓(xùn)練會啟動8個進(jìn)程,管道并行度為8,數(shù)據(jù)并行度為1。Checkpoints則將保存到repo根目錄的model_ckpts目錄中。
在推理之前,請務(wù)必將模型轉(zhuǎn)換為Hugginface格式。
為了幫助你測試模型,作者也在這里提供了一個簡單的測試命令行工具來進(jìn)行交互,執(zhí)行命令:
python inference/bot.py。
默認(rèn)情況下,腳本會在目錄下加載名為GPT-NeoXT-Chat-Base-20B model的模型,但我們可以通過—model進(jìn)行改變。
都弄好之后,在提示符處輸入文本,模型就會回復(fù)了。
最后,作者還提供了一個用維基百科進(jìn)行擴(kuò)展搜索的例子,操作也比較簡單,感興趣的同學(xué)可以自行查看。
關(guān)于作者
OpenChatKit的歸屬單位叫Together。
這是一家去年7月才成立的創(chuàng)業(yè)公司,專門為AI行業(yè)做去中心化的云服務(wù)。
CEO是Vipul Ved Prakash,他曾在蘋果做了5年高級總監(jiān)。
CTO是Zhang Ce,蘇黎世聯(lián)邦理工學(xué)院計算機(jī)專業(yè)的助理教授。
據(jù)推特博主Itamar Golan稱,OpenChatKit的作者包含多位前OpenAI研究員。
總的來說,OpenChatKit開箱即用,擅長多項(xiàng)任務(wù),包括帶有上下文的總結(jié)和問題回答、信息提取、文本分類等。
但它還不太擅長創(chuàng)意寫作(尤其是編長故事)、寫代碼,以及有時可能會重復(fù)響應(yīng)你的請求、在切換話題時表現(xiàn)遲鈍……
不過,正如Together在博客中說的那樣:
這個模型不是發(fā)布完就完了,它是一個開源項(xiàng)目的開始。
或許我們可以持續(xù)關(guān)注一波~
那么,如果你感興趣,傳送門在這里:
?https://github.com/togethercomputer/OpenChatKit?
?https://huggingface.co/spaces/togethercomputer/OpenChatKit