ChatGPT開源替代來了!參數量200億,在4300萬條指令上微調而成

機器之心pro 發佈 2024-03-29T03:09:51.948990+00:00

OpenChatKit 是一個類 ChatGPT 開源工具包,內含一個 20B 參數量的大模型,而且該模型在 4300 萬條指令上進行了微調。

機器之心報導

編輯:張倩

OpenChatKit 是一個類 ChatGPT 開源工具包,內含一個 20B 參數量的大模型,而且該模型在 4300 萬條指令上進行了微調。

2023 年,聊天機器人領域似乎只剩下兩個陣營:「OpenAI 的 ChatGPT」和「其他」。

ChatGPT 功能強大,但 OpenAI 不太可能將其開源。「其他」陣營表現欠佳,但不少人都在做開源方面的努力,比如前段時間Meta 開源的 LLaMA。

除此之外,一個名為 EleutherAI 的開源 AI 研究團隊也一直在貢獻開源大模型成果。自 2020 年 7 月成立以來,該團隊先後開源了基於 GPT-3 的、包含 60 億參數的 NLP 模型 GPT-J,類 GPT 的27 億參數模型 GPT-Neo,以及 200 億參數的GPT-NeoX-20B。據悉,他們的最終目標是將開源模型的參數規模擴展到 1700 億左右,就像 GPT-3 一樣。

在 ChatGPT 火遍全球之際,EleutherAI 的這些開源成果派上了用場。一家名為 Together 的組織表示,他們基於 EleutherAI 開源的 GPT-Neo 和 GPT-J 構建了一個新的類 ChatGPT 開源項目 ——OpenChatKit。

項目連結:https://GitHub.com/togethercomputer/OpenChatKit

這個項目提供了一個強大的、開源的基礎,可以為各種應用創建專門和通用的聊天機器人。具體來說,它包含:

  • 一個參數量達 20B 的開源模型,該模型基於 EleutherAI 的 GPT-NeoX-20B,在 4300 萬條指令上進行了微調;
  • 一個參數量達 60 億的審核模型(moderation model),可以幫模型過濾不當內容;
  • 一個可擴展的檢索系統,可以幫模型檢索維基百科等資源庫,從而給出最新信息。

根據 Together 提供的連結,我們可以粗略看到 OpenChatKit 在摘要提取、問答、寫作等方面的表現。以下是 Together 提供的一些 demo:

想要深入了解 OpenChatKit 的讀者也可以親自測試。

測試連結:https://huggingface.co/spaces/togethercomputer/OpenChatKit

從目前的表現來看,OpenChatKit 可能還不太令人滿意。但在此開源項目的基礎上,社區有望構建出更加強大的聊天機器人應用。

參數量 20B 的指令調優大模型

GPT-NeoXT-Chat-Base-20B 是構成 OpenChatKit 基礎的大型語言模型。它基於 EleutherAI 的 GPT-NeoX 模型,並通過專注於對話互動的數據進行了微調。Together 在 Huggingface 上發布了這個模型的預訓練權重:https://huggingface.co/togethercomputer/GPT-NeoXT-Chat-Base-20B

Together 的開發者將模型調整的重點放在幾個任務上,如多輪對話、問答、分類、提取和總結。他們用 4300 萬條高質量指令對模型進行了微調,並與 LAION 和 Ontocord 合作,創建了該模型所基於的 OIG-43M 數據集。數據集信息參見:https://laion.ai/blog/oig-dataset/

OIG-43M 數據集示例。

開箱即用的 GPT-NeoXT-Chat-Base-20B 為一系列廣泛的自然語言任務提供了一個強大的基礎。從質量上看,它在 HELM 基準上的得分比其基礎模型 GPT-NeoX 高,特別是在涉及問答、提取和分類的任務上。

模型長處

OpenChatKit 有幾個任務是開箱即用的,包括:

1、將一份長的文件總結成一句話,並回答與該文件相關的問題,問答可進行多輪;

2、從非結構化文件中提取結構化信息,如下圖所示;

3、將一個句子或段落分為不同的類別(比如情緒是積極還是消極)。

利用 OpenChatKit 把一段長文字內容轉化成圖表。

模型短板

OpenChatKit 目前的短板包括:

  • 基於知識的封閉式問答。該聊天機器人可能會給出不正確的結果,需要用戶提供反饋;
  • 代碼相關任務。由於訓練數據中沒有足夠多的代碼,因此該聊天機器人在代碼方面表現欠佳;
  • 重複性。該聊天機器人有時會重複自己的回答,用戶可以點擊刷新,開始新的對話;
  • 上下文切換。該聊天機器人不太擅長轉換話題。
  • 創意寫作和較長的答案。該聊天機器人不會生成長的、有創意的文本,如論文或故事。

針對特定任務定製聊天機器人

在一般問答任務中,大型語言模型已經顯示出令人印象深刻的能力。當為特定的應用進行微調時,它們往往能達到更高的準確率。例如,谷歌的 PaLM 在醫學回答上達到了大約 50% 的準確率,但是通過添加指令支持和對醫學特定信息的微調,谷歌創造了 Med-PaLM,其準確率達到了 92.6%。同樣的方法也可以用於其他任務。

OpenChatKit 提供了一些工具來為專門的應用微調聊天機器人。其開發團隊正在與研究小組和公司合作,幫助他們為各種任務創建自定義模型。這些任務包括:

  • 教育助手:在開放的教科書數據集上進行微調,創建一個聊天機器人,通過自然對話幫助各年齡段的學生了解各種主題;
  • 金融問答:微調並利用美國證券交易委員會文件等金融數據的檢索,實現金融領域的問答;
  • 客戶支持代理:利用知識庫數據進行微調,創建聊天機器人,幫助終端用戶分辨問題並快速找到答案。

如何進行微調

微調需要的操作包括

  • 準備好你的數據集,使用指定格式的交互示例;
  • 將你的數據集保存為 jsonl 文件,並按照 OpenChatKit 的 GitHub 文檔對聊天模型進行微調;
  • 不要忘記審核模型!在開始使用你的微調模型之前,請注意審核模型可能需要過濾的域外問題。如果有必要,準備一些調節數據並微調審核模型。

這個過程的文檔和原始碼可以在 OpenChatKit 的 GitHub 連結中找到。由於 OpenChatKit 在 Apache-2.0 許可下完全開源,你可以為自己的應用或研究深入調整、修改或檢查權重。

用於實時更新答案的可擴展檢索系統

OpenChatKit 還包括一個可擴展的檢索系統。有了這個檢索系統,聊天機器人能夠將定期更新的內容或自定義的內容,如來自維基百科的知識、新聞提要或體育比賽成績納入回答中。

檢索增強系統的工作流程示例。

審核模型在必要時進行干預

OpenChatKit 的最後一個組件是一個由 GPT-JT 微調的 60 億個參數的審核模型。在聊天應用中,審核模型與主聊天模型同步運行,檢查用戶話語中是否有任何不適當的內容。基於審核模型的評估,聊天機器人可以將輸入的內容限制在經過審核的主題上。當然,這個審核模型只是一個基線,用戶可以根據不同的需求進行調整和定製。

在推理過程中,開發者進行了 few-shot 分類,將用戶問題分為五類。聊天機器人只在問題落入允許的分類中時才會做出回應。

參考連結:https://www.together.xyz/blog/openchatkit

關鍵字: