衛詩婕

最近兩周,有關開源 PK 閉源的討論吸引了許多人的關注。

事情是這樣的:

在不久前的百度create大會上,李彥宏放出觀點:開源模型的能力會被閉源遠遠甩在身後。 一時間,周鴻禕、傅盛等創業者紛紛表達了反對的觀點。

緊接著,在日期:3月15日淩晨 2 點,大洋彼岸,Meta 的開源大模型 Llama3 發佈,它被視作全球開源大模型的“頂配”,也是國內眾多大模型的“奶媽”——許多模型都是基於 Llama3 預訓練而來。 尤其值得注意的是,Llama 3 發佈了 8B 和 70B 的兩個版本,一些方面的性能已經超越了一部分閉源模型,還有一個 400B 的大參數模型正在來的路上(尚未發佈),但據稱,其性能將直逼 GPT-4。

看起來,李彥宏被打臉了。 但事實真的如此嗎?

為了釐清大模型開源的一系列問題,更生動、直觀地理解這些(對於普通人來說)略顯艱深的技術,我訪談了全球最大的開源 AI 社區 Huggingface 的中國區負責人王鐵震,試圖還原:開源在全球創新、以及在中國的發展歷史。

以下是訪談後整理的筆記:

01. 什麼是開源?

如果從國內互聯網歷史看,那時就有了許多獨特的開源文化,比如字幕組就是一種開源。

字幕本身它就是一個SRT檔——一個文檔上有時間線對應不同的文本。 志願者貢獻做字幕的過程和現在的開源幾乎一樣:比如會有人先在論壇里公佈:現在有某部電影需要配字幕,接下來,一些志願者就會報名,報名之後會有分工,水準高一些的人會負責審核——需要對齊所有人的工作、並檢查錯誤、最後壓片發佈。 審核這個角色需要有協調組織的能力、耐心和責任心,任務相對較重,影響力也更大。

如果類比到開源專案里,審核的角色叫做 maintainer(維護者)。 ta 是專案裡最核心的負責人,負責把大家交過來的所有代碼審核過之後,合併到主幹任務裡。 而分領不同任務的這些開發者就叫contributor(貢獻者)。

大致是這麼個流程:maintainer 定任務、分工給 contributor、maintainer 對齊、發佈。

02. 開源的價值與貢獻

過去一年,大模型的推理成本實際上下降了100倍。 這其中很多工作都是開源社群推動的。

因為在開源的機制和社區下,每一個推動工作的開發者,他可以不需要知道深度學習的所有數學原理,不需要自己有很多卡,只要有愛好、有想法,都可以參與貢獻自己的力量。

這大大降低了參與門檻和反覆運算週期,也是技術飛速發展的要素之一。

開源的信仰,即相信:眾人拾柴火焰高。

Hugging Face 的創始人 Clam 曾說過,“如果沒有開放科學,沒有開源,比如說谷歌沒有分享他們” attention is all you need“ 的論文、Bert 論文、原生擴散論文,我們可能要過30、40、 50 年才能夠達到今天的水準。 ”

而事實上,今天我們已經被開源包圍了:我們所使用的安卓系統、網頁瀏覽器如Chrome 和 Firefox,都是著名的開源專案。 以及區塊鏈領域——所有web3相關的工作都是開源。 開源意味著流程、分工、貢獻全都透明化,更能群策群力,也更能確保數據使用的安全性。

03. 開源的“烏托邦”主義:氛圍更好,更公開透明,更能調動大家的積極性

大廠的工程師都是經過非常嚴格的篩選,按理來說技術實力都很強,但他們卻不如開源社區里的開發者們有激情——開源社區里,開發者們可能一開始並不是特別厲害,但因為能夠參與到一些重要的開源專案,極有活力,效率也高,合作氛圍極其融洽。

與之相對的,是在科技大廠里常常因為組織架構調整,導致A做了很久的專案被B接手了,最後專案黃了。

開源社區更容易讓人參與到一個事情裡面,因為所有的事情都是公開透明的,全世界對這個事情感興趣的人都會加入進來。 尤其是專案早期,因為參與者少,每一個人的貢獻都是珍貴的。

同時,因為參與門檻被降到最低,開源社區能實現更好的資源利用。

在公司里,往往需要押注(或者說賭)技術發展的方向——有人認為要做 a 技術,有人認為該做 b 技術,但最後得選定一個方向將資源集中。

但在開源社區,因為大家基於愛好自由選擇, a 和 b 兩個方向都會得到發展。

04. 大模型時代,第一次出現了開源和閉源「齊頭並進」

像Linux、MySQL、雲架構等開源技術,歷史上都一定滯後於當時最先進的技術。 大模型是第一次出現開源和閉源齊頭並進的狀態。

原因在於,開源技術,需要感興趣的開發者能在一起能夠有效地去協作,這需要一些基礎條件加持:比如高速網路、開源平臺等。 在 Linux 剛開始發展的那個時代,這些條件都不健全(比如能夠訪問到 Linux 代碼的人也比較少、沒有好的管理工具等)。

那時,開源技術只屬於少部分極客。 現在,網路、開源平臺和各類管理工具已經發展得很完備,所以當下的開源時代,更多人是可以參與建設的,甚至普通人。

全世界都在反對李彥宏?開源、閉源並不絕對對立

李彥宏在百度 create 大會上發言稱,“開源模型的能力會被閉源遠遠甩在身後。 “一時間,周鴻禕、傅盛等創業者都表達了不同的看法。

這並不是一個“開源一定會贏、或者閉源一定贏”的問題。

Robin 的話更多是基於企業價值觀和戰略選擇的一種輸出。 在 ChatGPT 出來之前,其實百度在開源領域的工作是非常非常好的,百度自己做了一個深度學習的框架叫 PaddlePaddle,它在 NLP 領域的一個庫叫 paddlenlp,當時也是獲得了非常大的影響。

ChatGPT 出現之後,可以看到百度在開源上的投入逐漸變小——也許閉源能給百度帶來更多優勢。

其實,開源、閉源是可以互相轉化的,其中的光譜非常寬。 比如 OpenAI 最早也是做開源的,比如發了whisper 這些開源的模型,只是後來他選擇了把大語言模型閉源。 再比如,Meta 也做了很多開源的工作,但其內部也有模型是不開源的,另外,開源模型和閉源模型也可以互相轉化——比如有一個開源模型,一家企業用自己的語料去微調它,這基礎上再做一些優化,最終形成的這個模型是閉源的,可能產生商業價值——這最後一公里(優化)是收費的,這仍然算閉源。

這道光譜很寬,光譜的最右側,是只有少數機構和公司才會做的全流程開源。

所謂全流程開源是指:模型數據集是什麼、怎麼洗、怎麼構建、如何做模型架構的選擇、如何去訓練這個模型(包括訓練日誌)、推理代碼和權重、部署——這些全部公開。

即,只要你有算力,就可以參照這整個流程,把你的數據用起來,然後訓練一個自己的模型。

將權重也公開的這類開源,叫 open source;而只發佈權重供訪問,而不告訴你權重是怎麼來的,這類叫 open access。 這類可能會和商業應用捆綁在一起——想要商業應用的話,需要購買授權。 除非是用於學術研究。

光譜再往左一點,可能是開放一個小一版的模型,如果想用更好的模型則需要採購更大的模型組。 這相當於拿開源做一個引流,我讓你先試用一下,如果你覺得效果不錯,我還有很多,你要不要?

許多開源項目的最後一公里是閉源,是為了更好地複製商業化。

硬體公司一般都很擁抱開源:比如英偉達,通過更好地支援整個開源社區,它可以賣更多的硬體;再比如說阿裡巴巴,通過開源,大家能更好地採購它的雲服務。 再比如Meta,能通過開源去解決它元宇宙(或者說遊戲)裡交互不足的問題,對它的股價也有好處。

往往,能產生商業模式的開源專案才能夠走得更遠。

如果按盈利模式來分,開源的商業化可以大致分為兩類:

  • 通過開源為產品或付費服務導流(for 銷售)
  • 通過開源建立企業良好的技術品牌形象(for 招聘)

05. 大模型具「黑盒效應」,不可編碼、不可解釋,所以無法開源?

如果把開源視作:把一個搭成的積木模型共用給大家,每個人都可以複製一份帶回家,然後自己重新優化組裝。

那麼有另外一種觀點認為,大模型它並不是傳統意義上的軟體開源,因為模型是有黑盒效應的,它不可編碼,不可解釋,是沒有辦法真正開源、讓大家一起做貢獻的。

這種說法對嗎?

其實,模型的可解釋性和是否能被全部開源無關。 就好像炒菜,食物上發生的化學反應是非常複雜且難以理解的,但我們可以分享菜譜、讓大家可以重複地製作這道菜 (open source),並基於此,作一些個人口味上的調整,而不僅僅是免費讓別人來吃這個菜(open access)。

如何在開源模型上,去訓一個自己的模型?

在 open access 的模型上訓練的過程: 1. import Transformers(將模型載入tranformers 庫)——2. 喂數據、模型輸出完成推理——3. 微調(SFT)——4. 繼續預訓練( Continuous Pre-training)。

可以將微調的過程簡單理解為:模型就像一個剛進大學的大學生,微調的目的是將他變成某個領域的專家。 怎麼做呢?搜集這個領域的知識(是他從前沒見過的),教給他,再給他一套測試題,使其通過測試題后,就完成了微調的訓練,接下來他就可以上崗工作、解決現實問題了。

再舉個例子,微調還要解決“模型是誰”的問題:比如你的模型是用 llama 3微調出來、要解決企業客服的需求。 那麼,當使用者問“你是誰”時,它不能回答“我是 llama3”,而要回答,“我是XX企業的智慧客服XX。 “相當於告訴這個大學生,你的社會身份是什麼。

而 open source 的模型所公佈的、open access沒公佈的那些過程,則相當於一個孩子從入學到大學畢業,整個過程經歷了什麼。

可以將繼續預訓練的過程簡單理解為:讓一個數學系學生,解決化學問題——修雙學位、成為複合型人才、解決複雜問題。

06. 創業者、開發者如何更科學、經濟地使用開源模型?

有許多人並非傳統做 AI 技術出身,但是看到大模型的能力,希望將其與自己領域的一些應用結合起來。

通常,給這類開發者的建議是:

  1. 先拿最好的閉源模型去試,看它是否解決你的問題。 如果通過prompting就能解決問題,那麼不需要微調。 而且早期使用閉源能使產品很快上線,可以積累一波原始用戶數據和需求。
  2. 如果閉源解決不了,或者調用閉源模型成本太高,再去嘗試開源模型,先從小參數的開始,用專門領域的語料去訓練,此時,第一階段積累的使用者需求會是優勢,因為你更了解使用者的query(需求)是什麼樣子,那麼就能更好地準備對應語料,將語料喂給模型完成微調,然後在私有環境部署。 看一下模型效果,如何效果可以,就足夠了。

如果微調的效果還是不如意,接下來則需要繼續預訓練( Continuous Pre-training)。 這相當於將一個初級行業應用者培養成一個行業專家。 但需要注意的是,這個過程中需要知道原廠在訓練模型時,數據配比是什麼樣,要將這些數據配比資訊加入的continuous pretrain的過程中,否則性能會有損失。

07. 做微調(SFT)、繼續預訓練(Continuous Pre-Training)分別需要具備哪些條件?

微調:需要算力、語料、數據。

(微調對算力的要求比推理高得多,調一個非常小的模型至少需要一個A100或者8個H100。 以及數據的處理也是一個經驗活——整理語料對並不難,隨著工具的成熟,只需要勾選、配對就好了,相當於用word 、excel,很容易;但難點在於:1. 對需求場景的洞察,2. 如何判斷模型生成的品質好壞,這是專家才能做的。 )

但微調的成本,國內大部分創業公司都能負擔得起。

繼續預訓練:成本在微調的基礎上要再上升一個量級,難度也更大。

08. 改模型是什麼?有哪些方法?

通常,為了模型達到更好效果、性能、或者成本更經濟等目的,也可以使用一系列魔改的方式。 魔改通常比微調的工作量更輕量一些。

年初的時候特別火的一種方式是model merger,把兩個架構一樣但是權重不一樣的模型給混合一下,就好像是:大學裡面招了兩個高中畢業生,一個特別擅長寫代碼,一個特別擅長寫小說。 model merger 就試圖將兩個人合二為一。

還有量化(quantization),比如模型的權重一般是B16,通過魔改,可以用更低的精度讓這個模型變得更小(比如把 B16 降到 INT4 后,模型就會有一個四倍的性能和存儲上的提升)。

09. Llama 3 發佈,如何理解它在行業中的影響?

Llama 3. 它是由24. 000 塊 GPU 組成的定製集群上使用 15 萬億個 token 訓練的。 國內有哪些公司能夠擁有這個級別的算力和數據?

首先,這個量級的算力是國內大部分人和公司無法拿到的,太燒錢了。 海外像Google、微軟、 Meta 這種公司級別驅動的開源專案,才能調動這個驚人級別的算力。

而從純社區向(背後沒有公司支援)角度來說,沒有什麼開源社區能有這麼大的能量。 開源社區通常通過捐贈方式獲得算力支援,但最多也就是在百卡級別(當然這已經不便宜了),千卡都很少。 因為到了千卡級別后,對整個數據中心的Infra基礎設施已經有了非常高的要求:

比如,如果計算過程中卡燒了怎麼辦(畢竟要沒日沒夜地跑)——要換卡,以及在軟體上當卡掉了時,能不能把所有的訓練狀態保存,卡修好之後再重新啟動,包括做自動規避、如何讓GPU的利用率保持在高量級等等。

總之,一旦計算規模到了千卡級別,運營側就會產生很複雜、很大的問題。 更別提萬卡甚至10萬卡級別了。 Meta 在訓練 LLAMA3 時候的算力投入可以算是開源模型中的頂配。

對未來大模型發展趨勢的一些判斷

  1. Llama 3 發佈的三個不同參數版本,其中 8B 是對開發者更友好的,400B值得期待,但能用的人沒那麼多。

同樣的模型架構,參數大的模型一定比參數小的模型:1. 更智慧,2. 知識豐富度更好。

但,大模型也會比小模型:1. 貴(成本高); 2. 慢(輸出等待時長更久);3. 對硬體適配的要求更高(需要的GPU多) ;4. 難(運營複雜度更高);5. 距離端上部署更遙遠;6. 可玩性更弱(能玩起來的人不夠多,比如做各種魔改、定製化等)。

  1. 訓練模型、選擇參數時,需要神農嘗百草。

開發者通常會面臨很多種超參數的選擇,需要像“神農嘗百草”一樣,試不同參數的組合,大家一般會先從小的模型開始試,在小的模型上觀察到一些現象後,再用這個推測,當模型 scale 變大,是否也符合這種現象,再用大一些的模型去試。

  1. 模型會先變大,再變小。

模型先變大,指的是先做大模型,把能力做上去,先解決從 0 到 1 的問題。

再變小,指的是解決它的實用性(包括成本、性能、效率等)。

  1. 也許很快,模型要拼的就不是單一維度的能力,而是差異化。

據傳, Llama 3 的 400B 參數可能超越 GPT-4 的部分性能。 如果事實的確如此,意味著開源模型的能力也會到達一個基本可用的狀態(GPT-4被認為是基本可用的)。 這對很多公司是一個巨大的技術紅利。

舉個例子,現在很多企業的較難任務的拆解和分派,還是由GPT-4完成的,未來這些工作逐步可以被開源模型取代。 對於企業而言,使用開源模型也更利於隱私保護。

一旦開源和閉源模型都達到了可用的這一條線,那麼後面的競爭可能會是什麼?

可能就需要大家在模型上做一個差異化:未來,大家不再用一個榜單來評測,而是在不同的領域去分別看不同模型的特點——比如,寫代碼方面,ABC做得更好;創作方面,DEF做得更好。

很難衡量兩個都可用的模型,差距是多少。 更可能是在不同生態位上錯位競爭。

原文出處: 什麼是大模型的開源閉源之爭?