世界首款真開源類ChatGPT大模型Dolly 2.0,可隨意修改商用
眾所周知,在 ChatGPT 的問題上 OpenAI 并不 Open,從 Meta 那里開源的羊駝系列模型也因為數據集等問題「僅限于學術研究類應用」,在人們還在因為尋找繞過限制方法的時候,主打 100% 開源的大模型來了。
4 月 12 日,Databricks 發布了 Dolly 2.0,這是兩周前發布的類 ChatGPT 人類交互性(指令遵循)大語言模型(LLM)的又一個新版本。
Databricks 表示,Dolly 2.0 是業內第一個開源、遵循指令的 LLM,它在透明且免費提供的數據集上進行了微調,該數據集也是開源的,可用于商業目的。這意味著 Dolly 2.0 可用于構建商業應用程序,無需支付 API 訪問費用或與第三方共享數據。
- 項目鏈接:https://huggingface.co/databricks/dolly-v2-12b
- 數據集:https://github.com/databrickslabs/dolly/tree/master/data
根據 Databricks 首席執行官 Ali Ghodsi 的說法,雖然已有其他大模型可以用于商業目的,但「它們不會像 Dolly 2.0 那樣與你交談。」而且基于 Dolly 2.0 模型,用戶可以修改和改進訓練數據,因為它是在開源許可下免費提供的。所以你可以制作你自己的 Dolly 版本。
Databricks 還發布了 Dolly 2.0 在其上進行微調的數據集,稱為 databricks-dolly-15k。這是由數千名 Databricks 員工生成的超過 1.5 萬條記錄的語料庫,Databricks 稱這是「第一個開源的、人工生成的指令語料庫,專門設計用于讓大型語言能夠展示出 ChatGPT 的神奇交互性。」
Dolly 2.0 是怎么誕生的
在過去的兩個月里,業界、學界紛紛追趕 OpenAI 提出了一波遵循指令的類 ChatGPT 大模型,這些版本被許多定義視為開源(或提供某種程度的開放性或有限訪問)。其中 Meta 的 LLaMA 最受人關注,它引發了大量進一步改進的模型,如 Alpaca、Koala、Vicuna 以及 Databricks 的 Dolly 1.0。
但另一方面,許多這些「開放」模型都處于「工業限制」之下,因為它們接受了旨在限制商業用途的條款的數據集的訓練 —— 例如來自 StanfordAlpaca 項目的 5.2 萬個問答數據集,是根據 OpenAI 的 ChatGPT 的輸出進行訓練的。而 OpenAI 的使用條款包括一條規則,即你不能使用 OpenAI 的服務反過來與其競爭。
Databricks 思考了解決這個問題的方法:新提出的 Dolly 2.0 是一個 120 億參數的語言模型,它基于開源 EleutherAI pythia 模型系列,專門針對小型開源指令記錄語料庫進行了微調(databricks-dolly-15k),該數據集由 Databricks 員工生成,許可條款允許出于任何目的使用、修改和擴展,包括學術或商業應用。
到目前為止,在 ChatGPT 的輸出上訓練的模型一直處于合法的灰色地帶。「整個社區一直在小心翼翼地解決這個問題,每個人都在發布這些模型,但沒有一個可以用于商業用途,」Ghodsi 表示。「這就是我們非常興奮的原因。」
「其他人都想做得更大,但我們實際上對更小的東西感興趣,」Ghodsi 在談到 Dolly 的微縮規模時說。「其次,我們翻閱了所有的答案,它是高質量的。」
Ghodsi 表示,他相信 Dolly 2.0 將啟動「雪球」效應,讓人工智能領域的其他人加入并提出其他替代方案。他解釋說,對商業用途的限制是一個需要克服的大障礙:「我們現在很興奮,因為我們終于找到了一個繞過它的方法。我保證你會看到人們將這 15000 個問題應用于現有的每一個模型,他們會看到這些模型中有多少突然變得有點神奇,你可以與它們互動。」
手搓數據集
要下載 Dolly 2.0 模型的權重,只需訪問 Databricks Hugging Face 頁面,并訪問 databricks-labs 的 Dolly repo,下載 databricks-dolly-15k 數據集。
「databricks-dolly-15k」數據集包含 15000 個高質量的人類生成的 prompt / 回復對,由 5000 多名 Databricks 員工在 2023 年 3 月和 4 月期間撰寫,專門設計用于指令調優大型語言模型。這些訓練記錄自然、富有表現力,旨在代表廣泛的行為,從頭腦風暴、內容生成到信息提取和總結。
根據該數據集的許可條款(Creative Commons Attribution-ShareAlike 3.0 Unported License),任何人都可因任何目的使用、修改或擴展這個數據集,包括商業應用。
目前,這一數據集是首個開源的、由人類生成的指令數據集。
為什么要創建這樣一個數據集?團隊也在博客中解釋了原因。
創建 Dolly 1.0 或任何遵循 LLM 的指令的一個關鍵步驟是,在指令和回復對的數據集上訓練模型。Dolly 1.0 的訓練費用為 30 美元,使用的是斯坦福大學 Alpaca 團隊用 OpenAI API 創建的數據集。
在 Dolly 1.0 發布之后,就有很多人要求試用,此外還有一部分用戶希望在商業上使用這個模型。
但是訓練數據集包含 ChatGPT 的輸出,正如斯坦福大學團隊所指出的,服務條款試圖阻止任何人創建一個與 OpenAI 競爭的模型。
此前,所有的知名指令遵循模型(Alpaca、Koala、GPT4All、Vicuna)都受到這種限制:禁止商業使用。為了解決這個難題,Dolly 團隊開始尋找方法來創建一個沒有商業用途限制的新數據集。
具體而言,團隊從 OpenAI 公布的研究論文中得知,最初的 InstructGPT 模型是在一個由 13000 個指令遵循行為演示組成的數據集上訓練出來的。受此啟發,他們開始研究是否可以在 Databricks 員工的帶領下取得類似的結果。
結果發現,生成 13000 個問題和答案比想象中更難。因為每個答案都必須是原創的,不能從 ChatGPT 或網絡上的任何地方復制,否則會「污染」數據集。但 Databricks 有超過 5000 名員工,他們對 LLM 非常感興趣。因此,團隊進行了一次眾包實驗,創造出了比 40 位標注者為 OpenAI 創造的更高質量的數據集。
當然,這項工作耗時耗力,為了激勵大家,團隊設立置一個競賽,前 20 名的標注者將獲得驚喜大獎。同時,他們也列出了 7 項非常具體的任務:
- 公開問答:例如「為什么人們喜歡喜劇電影?」或「法國的首都是什么?」在某些情況下,沒有一個正確的答案,而在其他情況下,需要借助于整個世界的知識;
- 封閉式問答:這些問題只用一段參考文獻中的信息就可以回答。例如,給定維基百科中關于原子的一段,人們可能會問:「原子核中質子和中子的比例是多少?」;
- 從維基百科中提取信息:在這里,標注者會從維基百科上復制一個段落,并從該段落中提取實體或其他事實信息,如重量或測量;
- 總結維基百科上的信息:對于這一點,注釋者從維基百科上提供了一段話,并被要求將其提煉為一個簡短的摘要;
- 集思廣益:這項任務要求進行開放式的構思,并列出相關的可能選項。例如「這個周末我可以和我的朋友做哪些有趣的活動?」;
- 分類:在這項任務中,標注者被要求對類別成員進行判斷(例如,列表中的項目是動物、礦物還是蔬菜),或者判斷一段短文的屬性,例如電影評論的情緒;
- 創意寫作:這項任務將包括寫一首詩或一封情書等內容。
以下是一些示例:
最開始,團隊對于是否能達到 10000 個結果持懷疑態度。但通過每晚的排行榜游戲,一周內就成功地突破了 15000 個結果。
隨后,出于對「占用員工生產力」的擔心,團隊關閉了比賽(這很合理)。
商業化的可行性
在數據集火速創建完成之后,團隊開始考慮商業應用的問題了。
他們想制作一個可在商業上使用的開源模型。盡管 databricks-dolly-15k 比 Alpaca(訓練 Dolly 1.0 的數據集)小得多,但基于 EleutherAI pythia-12b 的 Dolly 2.0 模型卻表現出高質量的指令遵循行為。
事后看來,這并不令人驚訝。畢竟最近幾個月發布的許多指令調優數據集包含合成數據,這些數據往往包含幻覺和事實錯誤。
另一方面,databricks-dolly-15k 是由專業人士生成的,質量很高,而且包含大多數任務的長篇答案。
以下是 Dolly 2.0 用于總結和內容生成的一些例子:
Dolly 團隊表示,根據最初的客戶反饋,像這樣的能力可在整個企業中進行廣泛的應用。因為很多企業希望擁有自己的模型,以此為自己的特定領域應用創建更高質量的模型,而不是將自己的敏感數據交給第三方。
Dolly 2 的開源為構建更好的大模型生態開了一個好頭。開放源代碼的數據集和模型鼓勵評論、研究和創新,有助于確保每個人都從人工智能技術的進步中受益。Dolly 團隊期望新模型和開源數據集將作為眾多后續工作的種子,幫助引導出更強大的語言模型。