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