如何用幾美元訓練出可以在 Raspberry Pi 上運行的 Chat bot

最近各種 AI 的發展實在太快,就在上篇文章後,這幾天的新聞有:

大型語言模型的普及化

這些新聞都是巨企如何花大錢研發巨型的模型,但是比較讓我在意的是小型模型的後續發展。

今年一月 ,ARK Investment 在曾預言 AI (主要指大型語言模型) 的訓練成本將持續下降,他們預測到 2030 年成本將下跌至 $30 美元。‌

來源:https://research.ark-invest.com/hubfs/1_Download_Files_ARK-Invest/Big_Ideas/ARK%20Invest_013123_Presentation_Big%20Ideas%202023_Final.pdf

不久 LLaMA 就橫空出世。它的特點正是把訓練成本大幅下降,其中 7B 的模型成本估計只需 ~$82-329k (來源),它的性能在很多方面也可以跟 GPT-3 比較。 ‌‌

但真正的突破之後才開始。

去年一月,OpenAI 公佈了 InstructGPT。它使用 RHLF 的方法訓練 GPT-3。這方法簡單來說就是大量用人工寫例子再用人工去為 AI 結果評分,從中教導 GPT 正確的回應方法。這方法讓原本只是自動完成的 GPT-3 變成可以跟隨指令,是後來 ChatGPT 的基礎。

在 LLaMA 公佈後不久,Stanford Alpaca 出現了。它使用了 Self-Instruct 的方法達成 RHLF 的效果:首先人工編寫了 175 個範例,再用 GPT-3  產生 52000 個例子,這過程花費了 $500 美元。接著再把這些例子用來訓練 LLaMA 7B 的模型,在 8 個 80GB A100 下訓練了三小時,這過程用了 $100 美元。‌

來源: https://crfm.stanford.edu/2023/03/13/alpaca.html

他們的網站可以看到示範,雖然和 ChatGPT 還有一定距離,但這個模型對指示的回應明顯地比 LLaMA 更強,這進步幾乎等於 GPT-3 到 InstructGPT 的進步了。這只是用最小的 7B 模型訓練了數小時的成果!

大型語言模型的奇點

但接著有更厲害的發展:alpaca-lora。該技術結合了低秩適應(Low-Rank Adaptation,LoRA)與 8-bit 優化器,從而成功地重現了 Stanford Alpaca 的實現。在這些優化策略的幫助下,僅需使用一台搭載 RTX 4090 顯示卡的設備,在大約四小時的時間內便可實現接近 Stanford Alpaca 的效果。

此模型能夠支持 8-bit 甚至 4-bit 的量化(quantization),並在 CPU 上用 llama.cpp 運行。正如標題所述,這意味著各類電腦設備,包括 Raspberry Pi 和智能手機,都可以實現 GPT-3 等級的性能。

我照著 alpaca-lora 的方法,果然真的在四小時後就得到了自己的 chat bot。‌              

在筆者電腦 (M1 Pro Max) 運行的效果,7B 4Bit 模型下可以做到每秒 20 個 token

這是一些我用 llama.cpp 測試的效果:

Instruction: Tell me about alpacas.

Response: Alpacas are South American camelids native to Peru and Bolivia. They have been domesticated for over 5000 years, but it wasn't until the late 20th century that they began being farmed in North America. Alpaca fleece is used for clothing, blankets, and other textiles due to its softness and warmth. [end of text]

---

Instruction: Tell me about the president of Mexico in 2019.

Response: The current President of Mexico is Andrés Manuel López Obrador, who was elected to office on July 1st, 2018 and took office as President on December 1st, 2018. He is the first left-wing president in Mexican history and has made it his mission to tackle corruption, poverty and inequality in Mexico

---

Instruction: List all Canadian provinces in alphabetical order.

Response: Alberta, British Columbia, Manitoba, New Brunswick, Newfoundland and Labrador, Nova Scotia, Ontario, Prince Edward Island, Quebec, Saskatchewan

---

Instruction: Tell me five words that rhyme with 'shock'.

Response: Flock, mock, rock, sock and stock

使用 Lora 和 4bit 後它的效果肯定跟原本的 Stanford Alpaca 有差,但其中的成本可是由原本 $100 美元減到幾美元啊。要是在去年說你可以用這個價錢做這種東西出來誰會相信?

我驚覺這一刻很可能就是大型語言模型的奇點。這並非意味著AI將取代人類,而是大型語言模型的應用將以驚人的速度變得越來越便宜,應用場景將愈發廣泛。

運用 Stanford Alpaca 的方法,誰也可以利用 OpenAI 或其他人工智能產生大量的資料去訓練自己的模型。沒有一百億美元的資金元聘請肯雅工人撰寫指令?借助GPT-4,我們可以在秒速生成同樣的資料,而成本僅為原先的千分之一。

留意 Stanford Alpaca 僅使用了基於 GPT-3 的 LLaMA 7B 模型進行內容生成和訓練。倘若使用更強大的 65B 模型,配合 GPT-4 生成內容,其能力必將超越之前的版本。由於成本如此低廉,相信很快就會有人實現這一目標。然而,這並非終極目標。

必須指出,LLaMA 並非開放免費的模型,理論上無法用於商業用途。同樣地,OpenAI 及其他公司也禁止使用其 API 訓練競爭對手的模型。然而,寶盒已經打開,誰又能阻止這股潮流呢?我們有理由相信,未來將會出現真正開源且免費的模型,通過自動生成的資料進行訓練。對於此後的發展,我充滿期待。