高質量數據,由 ChatGPT「自我博弈」生成。
ChatGPT 出現之后,科技公司正在爭相追趕,學界也在不斷尋找開源且輕量的解決方案。
此前,人們基于 Meta 的 LLaMA 構建了一系列參數較少的新模型,只用幾十億參數就可以獲得接近 GPT-3.5 的效果。然而從 ChatGPT 和 GPT-4 的發展中我們可以看到,高質量的標注數據至關重要,OpenAI 對數據和標注工作下了很大力氣。
對于學界來說,很難在短期做同樣的事。最近,有研究者嘗試通過讓 ChatGPT 自我對話生成多輪對話的「數據集」,最終訓練出了強大的語言模型。
4 月 4 日,來自加州大學圣迭戈分校、中山大學和微軟亞研的研究者提出了「白澤」。
論文《Baize: An Open-Source Chat Model with Parameter-Efficient Tuning on Self-Chat Data》:
論文鏈接:https://arxiv.org/abs/2304.01196
白澤目前包括四種英語模型:白澤 -7B、13B 和 30B(通用對話模型),以及一個垂直領域的白澤 - 醫療模型,供研究 / 非商業用途使用,并計劃在未來發布中文的白澤模型。
白澤的數據處理、訓練模型、Demo 等全部代碼已經開源。
Github:https://github.com/project-baize/baize/blob/main/README.md
在線 Demo:https://huggingface.co/spaces/project-baize/baize-lora-7B
在新研究中,作者提出了一個自動收集 ChatGPT 對話的流水線,通過從特定數據集中采樣「種子」的方式,讓 ChatGPT 自我對話,批量生成高質量多輪對話數據集。其中如果使用領域特定數據集,比如醫學問答數據集,就可以生成高質量垂直領域語料。
白澤提出的訓練方法。通過利用 ChatGPT 的功能自動生成高質量的多輪聊天語料,讓 ChatGPT 與自己進行對話,模擬用戶和 AI 的響應。
為了在資源匱乏的環境中微調大語言模型,作者采用了有效利用計算資源的參數高效調優方法。該策略使最先進的語言模型保持了高性能和適應性。白澤改進了開源大型語言模型 LLaMA,通過使用新生成的聊天語料庫對 LLaMA 進行微調,該模型在單個 GPU 上運行,使其可供更廣泛的研究人員使用。
自聊天的過程是訓練內容的基礎,為了讓 ChatGPT 能夠有效生成數據,研究人員應用一個模板來定義格式和要求,讓 ChatGPT 的 API 持續為對話雙方生成抄本,直到達到自然停止點。對話以「種子」為中心,「種子」可以是一個問題,也可以是設置聊天主題的關鍵短語。
通過這樣的方法,研究人員分別收集了 5 萬條左右 Quora、StackOverflow(編程問答)和 MedQA(醫學問答)的高質量問答語料,并已經全部開源。
相比之下,Vicuna 使用從 sharegpt.com 上抓取的對話,這樣做的一個好處是收集到的數據質量很高。但是,此來源可能存在嚴重的隱私和法律問題。值得注意的是,sharegpt.com 最近已經禁止抓取,這意味著該數據源不再可用,Vicuna 難以復現。
在取得這些數據后,作者使用 LoRA(low-rank adaptation)方法在英偉達 A100 單卡下訓練了三種尺寸的白澤模型,最短訓練時長只需要 5 小時(醫療模型),最長也只需要 36 小時(30B 通用對話模型)。訓練的權重最大也僅有 54.6M 的參數量。
研究人員將白澤與 Alpaca-LoRA、ChatGPT 進行比較,展示了常識問答、事件分析、解釋笑話、問題拒答、寫代碼,以及醫療模型的健康咨詢等能力。
表 5:解釋雷曼兄弟破產??傮w而言,Baize-7B 提供了比 Alpaca-LoRA 更全面的答案,同時包含了 ChatGPT 答案中的大部分要點。另一方面,ChatGPT 提供了更長更詳細的答案。
表 6:解釋笑話的示例。Baize-13B 和 ChatGPT 可以成功解釋這個笑話,Alpaca-LoRA 未能做到。
表 7:聊天模型如何響應用戶不道德請求的示例。Baize 和 ChatGPT 拒絕回答不道德的問題,而 Alpaca-LoRA 提供答案。
除了一般模型外,研究人員還在醫療從業者的幫助下測試了 Baize-Healthcare,專業人員已確認白澤有關醫療問題的回應是適當的。
目前,「白澤」支持 20 種語言,對于英語以外的內容質量有限,繼承了 LLaMA 的知識,可能會出現幻覺,或用過時知識進行回答。
下一步,研究人員計劃探索引入強化學習以進一步提高白澤模型的性能。