Stanford Alpaca (羊驼):ChatGPT 学术版开源实现
Stanford Alpaca (羊駝):ChatGPT 學術版開源實現
文章目錄
- Stanford Alpaca (羊駝):ChatGPT 學術版開源實現
- 前言介紹
- Alpaca 在線體驗
- 查語病
- 寫代碼
- 連續對話能力
- 原理簡要分析
- 一些有意思的觀察
- 總結
前言介紹
最近 ChatGPT 大熱,讓人驚嘆其強大的對話、上下文理解、代碼生成等等能力,3 月 15 日 OpenAI 又放出了能實現圖像理解的多模態大模型 GPT-4,直讓人感覺通用人工智能 (AGI)仿佛離自己不遠了。有生之年看到人類命運共同體能有這樣的進展我是由衷的高興,并不自覺地給 OpenAI 點了一個贊:
但另一方面由于 GPT 系列模型 & ChatGPT 均未開源,再加上高昂的訓練成本所構成的堅不可摧的護城河,讓普通人 & 公司望而卻步,說實話,還是挺讓人焦慮的。當然焦慮的不止國內的研發人員,今天驚喜的發現斯坦福大學開源了學術版的 ChatGPT, 他們命名為 Alpaca (羊駝,沒錯,說的就是神獸),目前放出了在線體驗網址、數據生成代碼、訓練過程和超參,不久就會放出模型權重參數以及完整的訓練代碼。詳情如下:
- 在線體驗網址:https://alpaca-ai-custom2.ngrok.io/
- 模型介紹文章:https://crfm.stanford.edu/2023/03/13/alpaca.html Alpaca: A Strong Instruction-Following Model
- Github 代碼地址:https://github.com/tatsu-lab/stanford_alpaca
代碼剛放出來不久,我先 mark 一下,趁代碼量還比較少的時候趕緊看看,否則后面代碼越多看不過來🤣。簡單看了下這個開源庫,發現一些挺有意思的現象,待會分享,先說下 Alpaca 的體驗。
Alpaca 在線體驗
查語病
比如寫這篇文章的時候,突然不清楚上文寫的 “再加上高昂的訓練成本所構成的堅不可摧的護城河” 一句是否有語病,我就嘗試把它扔給 Alpaca 替我檢查一下,測試其智能程度,此外再驗證下它是否能識別中文,效果如下:
第一個紅框中輸入我的問題,第二個紅框是 Alpaca 的回答,它不僅指出 “堅不可摧的護城河” 沒有語病,還把這句話翻譯了一下。保險起見我還到 Google 中搜了一下,確認有句子是這樣用的,那我只能默認它是對的 🤣。
另外注意到第二個紅框下還有 “Upvote response” 和 “Downvote response” 兩個按鈕,用來給回答進行反饋。
寫代碼
給它出了一道簡單的編程題,LeetCode 中的鏈表反轉問題,讓它用 Python 實現一下:
居然寫對了,能運行🤣!算是一個小驚喜。說明這個模型雖然輕便,但也有足夠強的能力。
連續對話能力
為了測試 Alpaca 的連續對話能力,我仍然從代碼的角度進行提問;我首先讓它寫非常簡單的 python 代碼,可能 5 ~ 10 行的樣子,它順利的完成了:
之后我讓它將代碼寫復雜一些,我在提問的時候說的是 “make it more complex”, 其中 “it” 需要它理解了上下文,才能知道我指的是它前面所寫的簡單代碼:
我表揚它 “Good”,它還回我一句 “Perfect”,商業互吹這是… 但是回復的時候偷懶,只給了思路,但是沒有具體的 code, 因此我決定 CPU 它一下:“Talk is cheap, show me the code”:
果然,它給了一個稍微復雜的 code… 還挺好玩。
功能體驗就介紹到這。
原理簡要分析
Alpaca 本身的介紹 blog:https://crfm.stanford.edu/2023/03/13/alpaca.html 其實說的非常清晰了,模型的訓練流程基本可以用下圖來概括:
它使用 52K 個 intruction-following examples 來微調 Meta 的大語言模型 LLaMA 7B (Meta 開放了模型權重以及 Inference 代碼,詳見 https://github.com/facebookresearch/llama),從而生成了 Alpaca 7B。
但是這 52K 個 intruction-following examples 是如何生成的呢?Alpaca 團隊使用 https://github.com/yizhongw/self-instruct 提供的 175 個 seed tasks,這些 seed tasks 長這樣:
調用 OpenAI 的 text-davinci-003 模型,利用 OpenAI 的模型來產生有價值的 instructions!
不得不說,有點機智,這種方式很像蒸餾訓練啊。將 OpenAI 性能完備的模型作為 Teacher,來指導參數更少的 Alpaca 模型進行訓練,大幅降低了訓練成本 。其中調用 OpenAI API 的成本不到 500 美刀,另外微調 7B 參數的 LLaMA 模型,使用云服務商提供的 8 塊 80GB A100 顯卡,訓練 3 小時,消費不到 100 美刀。因此整體成本是小于 600 美刀。
相對來說,確實方便了獨立的研究人員、學術機構以及大部分公司。
一些有意思的觀察
在前言中曾說查看 https://github.com/tatsu-lab/stanford_alpaca 這個庫時發現一些有意思的現象。那是因為我在 PR (https://github.com/tatsu-lab/stanford_alpaca/pull/24) 中發現,這些研發人員看東西都超細致…
比如上面小哥發現 prompt.txt 行號標錯了:
這都能注意到,當時我就震驚了!也許是運行代碼時發現的錯誤也說不定,but never mind。
總結
本文簡要介紹了 Alpaca, 一個關于 ChatGPT 的學術版開源實現。最近想復現 ChatGPT 的工作有很多,我目前關注的幾個除了 Alpaca, 還有:
- OpenChatKit: https://github.com/togethercomputer/OpenChatKit
- ChatRWKV: https://github.com/BlinkDL/ChatRWKV
好想自己有多個分身,以有涯隨無涯,殆矣!
最后:可以在微信中搜索 “珍妮的算法之路” 或者 “world4458” 關注我的微信公眾號, 可以及時獲取最新原創技術文章更新. 🤣
總結
以上是生活随笔為你收集整理的Stanford Alpaca (羊驼):ChatGPT 学术版开源实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python-直线检测-提取邮票编码
- 下一篇: POI将网络图片添加到excel