當前位置: 妍妍網 > 碼農

手把手案例!怎樣拿開源的GPT-2訓練小模型,挑戰GPT-3.5

2024-06-21碼農

當前業內普遍認可的一個觀點是,大模型(LLM)參數規模越大,其效能越強,表現得越像人類。

然而,一個只有 5 億參數的小模型(SLM),在做文件摘要任務時,其表現卻超過了 GPT-3.5。 這聽起來很不可思議。官方曾公布 GPT-3.5 的參數量為 1750 億,是該小模型的 300 倍。

這是怎麽做到的?

基於 「大數據、大算力、強演算法」 的大模型的大規模預訓練已經成為了一項極其燒錢的競賽,有能力加入這場競賽的玩家並不多。

因此,越來越多的 AI 領域的研究關註如何讓小模型高效工作,比如讓低品質小模型 GPT-2 制作高品質的數據集,再用來訓練小模型,就能與千億級參數量的大模型 GPT-3 相匹敵。

在 2024 年數據與 AI 峰會上,華盛頓大學教授、麥克亞瑟獎學金獲得者,艾倫人工智慧研究所 (Allen Institute for Artificial Intelligence,AI2) 常識 AI 的高級研究主任 Yejin Choi 分享了這一過程。

以下為 Yejin Choi 在 2024 年數據與 AI 峰會上的演講:

我來這裏要跟你們分享一些看似不可能實作的可能性。

去年,當有人問 Sam Altman 如何讓印度的創業公司為印度建立基礎模型時,他的回答是,不用費那個勁了。這根本沒希望。

首先,我希望印度的創業公司不會輕易放棄。其次,這種對話可能會在任何地方發生。無論是在美國的任何一所大學,或是創業公司,或是研究機構,他們都可能面臨沒有足夠計算能力的問題。

所以,這就引出了我們要討論的問題:不可能的提煉。如何以環保的方式訓練出你的小型語言模型,使其效果堪比真實模型。

當前的方法與挑戰

目前我們聽到的最佳做法是大規模的預訓練,緊接著進行大規模的後訓練,例如 RLHF。

如果我告訴你我打算從 GPT-2 開始,那個不被大眾關註的小型、低品質模型,我也不知道為什麽,但以某種方式,我們將創造或提煉出一個高品質的小型模型,然後與可能大兩個數量級的更強大的模型競爭。

這聽起來應該很不可能,尤其是當你可能聽說過一篇論文,標題是【模仿大型語言模型的虛假希望】。

雖然他們所報告的對於他們進行的特定評估實驗來說是真實的,但請不要過分泛化,認為所有的小型語言模型都無法媲美大型模型。

因為還有許多其他反例證明特定於任務的符號知識精餾可以奏效在許多不同的任務和領域中其中一些來自我的實驗室。

然而今天,我只想關註一個任務即如何學習語言中的抽象。為了簡化這個任務,我們從句子摘要開始這是我們的第一個不可能的任務。

任務一:句子摘要

目標是在沒有極端規模的預訓練、沒有大規模的 RLHF、以及沒有大規模的有監督數據集的情況下實作這一目標。這些東西並不總是必要的。但等一下,我們必須使用通常是所有三個,至少是其中一部份。

但如果沒有這些,我們如何能和更大的模型一較高下呢?關鍵的直覺是當前的 AI 能做得多好取決於它所接受的訓練數據。我們必須有某種優勢。我們不能沒有任何優勢,所以那個優勢將來自數據。

順便說一下,我們必須合成數據,因為如果數據已經存在於互聯網上某處 OpenAI 已經對其進行了爬取,那就不是你的優勢了,他們也有,所以你必須創造出一些真正新穎的東西,比現有的東西更好。

通常,精餾是從大型模型開始的,但我們將丟棄它,以向你展示我們可能對隱藏的可能性視而不見。所以我現在就開始示範。從 GPT-2 開始,那個品質很差的模型。

然後我將進行一些創新,我馬上就會概述,制作出高品質的數據集,然後可以用來訓練小模型,這個模型將成為執行特定任務的強大模型。

但問題是,GPT-2 甚至無法理解你的提示詞。你無法利用 GPT-2 進行提示詞工程。你讓它總結你的句子,它生成的一些輸出,完全沒有任何意義。

所以你再試一次,因為它的輸出通常有隨機性。你可以生成很多不同的例子,比如幾百個例子,我們發現它的表現幾乎總是不好,像好的不到 0.1%。

解決方法與進展

但是有誌者事竟成。所以我們想出了許多不同的辦法。這其中包括我們的神經解碼。這是一種即時推理演算法,可以將任何邏輯約束加入到你的語言模型輸出中。

對於任何現成的模型,我們都可以使用這個來引導輸出的語意空間。 但是因為 GPT-2 太糟糕了,即使使用了這個,成功率也只有 1%。

但這比零要好。現在我們已經有了進展。因為如果你生成大量的樣本,然後進行篩選,你實際上可以這樣得到一些好的例子。 然後,聰明的學生們提出了許多不同的想法。

我就不詳述技術細節了,但我們找到了一些方法。為了能更容易找到好的例子,我們需要將成功的機率提高到 10% 以上。

總體的流程是這樣的:首先,從一個品質較差的教師模型開始,生成大量的數據點。然後,由於數據中存在大量的雜訊,需要進行嚴格的過濾。

我們使用了一個三層過濾系統。雖然細節並不重要,但我要強調其中的第一個,即 Intel Monte 過濾器,它基於現成的 Intel Monte 分類器,能判斷一個摘要是否能從原文中邏輯推斷出來。

這個模型並不完美,可能只有 70% 到 80% 的準確度。但是,當你大力使用它來過濾數據時,它的表現已經足夠好了。

然後,我們使用這些數據來訓練一個更小的模型,這個模型可以成為下一代學生的教師模型。我們重復了這個過程幾次,最終得到了高品質的 DIMM sum 數據和高品質的模型。

在與那時最好的模型 GPT-3 進行對比時,那時,GPT-3 是最好的摘要模型。

但當 ChatGPT 問世後,我們成功地超過了 GPT-3,人們似乎不再關心其他的,因為 ChatGPT 能做任何事情,包括摘要,所以我們為什麽還要費心呢?

任務二:文件摘要

接下來是我們的 「不可能完成的任務 2」。我們現在將與 ChatGPT 3.5 展開競爭。並且,要讓我們的挑戰更具難度 —— 我們現在要總結的是整個文件,而不僅僅是句子。然後,我們還要做到以上所有這些而不依賴於那個現成的蘊含分類器。

我的意思是,實際上你可以這麽做,就像從學術角度來看,我們想看看我們能在多大程度上打破關於規模的普遍假設。

因此,我們在 InfoSumm 的新工作是一種基於資訊理論的蒸餾方法其中關鍵的想法是我們將不再使用那個現成的 Imitating Humans LLM。我們將使用一些公式,這個公式其實只有三行,包括一些你可以用現成的語言模型來計算的條件機率得分。

實驗與成果

現在時間還早,所以我們不深入討論這些公式的細節。但我可以大體上告訴你,如果你把這些公式重新排列一下,你可以將此理解為點對點互資訊的特例。你可以用它來過濾你的數據。

因此,我們使用的是和之前相同的整體框架。我們現在使用 PTHEA 2.8 億參數模型,因為我們覺得它比 GPT-2 稍好一些。

至於過濾,我們現在使用的是我之前向你們展示過的那三個簡短的公式。然後我們就做同樣的事情。這一次,我們讓模型變得更小,只有 5 億參數模型。這帶來了高品質的文件摘要數據集,以及模型。

那麽我們的表現如何呢?正如我們所承諾的,至少在這個任務上,我們的表現能與 ChatGPT-3.5 媲美,或者,根據評測的設定和標準,我們的表現甚至有所超越。你可以在我們的論文中找到更多的細節。

總的來說,我展示了我們如何學習文件摘要,即使不依賴於大規模預訓練模型和其他大規模資源。

然而,這兩篇論文背後的真正研究問題是,我們如何學習進行抽象思考。

因為現在的做法就是讓模型盡可能地大。越大越好。但是我們人類,無法像模型那樣記住所有的上下文,比如一百萬個 Token。沒有人能記住上下文中的一百萬個 Token。你會立刻抽象出我剛才告訴你的所有事情。但是你仍然記得我到目前為止說的所有話。

這就是人類的驚人智慧,我們還不知道如何透過 AI 模型有效地實作這一點。我相信這是可能的。我們只是還沒有盡力去探索,因為我們被大規模的迷惑了。

任務三:Infini-gram

那麽,Infini-gram 就是我們面臨的第三個挑戰。稍微轉換一下話題,現在的任務是讓經典的統計 N-gram 語言模型在神經語言模型中發揮一定的作用。

你們中有多少人還在討論 n-gram 模型呢?我也不清楚。你們現在還在學習這個嗎?

這裏我們設定 n 等於無窮大。我們將在數萬億的 token 上完成這個計算,反應時間必須非常快,而且我們甚至不需要使用一顆 GPU。哇!我來告訴你們這有多麽困難。

假設,如果你要在一個經典的 n-gram 語言模型中索引 5 萬億個 token,且 n 無限大,那麽你大概需要處理 2 千萬億個唯一的 n-gram 序列。你需要列舉,排序,計數,儲存一些錯誤,這可能需要占用大約 32 太字節的硬碟空間,甚至更多。

我們又怎麽知道呢?但這個數據量實在太大了。我們無法處理。

如果你看看其他人建立的大規模經典 N-gram 模型,那就是 Google。在 2007 年,由 Jeff Dean 和其他人帶領的團隊,他們只處理了 2 萬億個 token—— 我的意思是,對於那個時代來說,這已經是很大的數量了。

他們使用的是五元 n-gram,這就產生了大約 3000 億個不同的 n-gram 序列,這些序列他們都需要進行列舉、排序、計數等操作。這個數量實在是太龐大了。

大家其實並沒有進一步增加這個數量。那麽,我們到底是如何做到將這個數量無限擴大的呢?

在我解釋我們如何做到這一點之前,如果你感興趣的話,我邀請你去檢視這個線上演示:http://Infini-gram.io/demo。

在這裏,你可以搜尋你想要的任何 token。這裏有一個例子,它是一個 48 個字元的詞。我不明白為什麽這個詞會存在。但是如果你去搜尋它,你會發現它不僅存在,而且還有超過 3000 個例項。這個搜尋過程耗時 5.5 毫秒。

此外,它還會向你展示如何對這個長詞進行分詞。你也可以試試搜尋多個詞,看看下一個可能出現的詞是什麽。

比如,"行動勝過語言",那麽接下來可能是什麽詞呢?該網站會向你展示可能出現的下一個詞。而且,這個過程非常快速。

解決方法與進展

那麽,我們是如何做到這一切的呢?

你可能會驚訝地發現,我們的方法其實非常簡單。有一種叫做字尾陣列的數據結構,可能並不是所有的演算法課程都會教授,但是有一些課程會教授。這是一種我們非常小心地實施的數據結構。所以我們用字尾陣列索引整個網路語料庫。

事實上,我們並沒有預先計算這些 n-gram 的統計數據。我們只是預先準備好這個數據結構。當你進行特定的查詢時,我們會即時計算。多虧了這個數據結構 —— 我們可以做得非常快,尤其是在使用 C++ 實作的情況下。

我知道現在 AI 研究中,C++ 可能不是大家首選的語言,但實際上,使用 C++ 會讓程式執行得更快。

這樣做的成本有多低呢?其實我們只花了幾百美元就索引了全部內容,而且,為 API 服務的成本也相當低。即便沒有 GPU,它的速度也非常快。不同型別的 API 呼叫的延遲只有幾十毫秒。你可以利用這個做很多事情。

我現在可以分享的一點是,你可以用我們的 Infinigram 插值你的神經語言模型,降低困惑度,這是常用於評估語言模型品質的指標。

我認為這只是我們能做的事情的冰山一角。實際上,我還在研究一些我希望能分享,但現在還不能告訴你們的東西。

不過我們已經開始提供這些 API 端點。從幾周前開始計數,到現在我們已經提供了 6000 萬次 API 呼叫,這還不包括我們自己的使用。我非常想知道人們是如何使用我們的 InfiniGram 的。

總結

總結一下,我的演講主要是說:

  • AI 的效能,至少在目前的形態下,取決於它的訓練數據。

  • 過去和現在的 AI 主要依賴於人類生成的數據,但未來可能會依賴於 AI 生成的數據。

  • 我知道人們對此有很多擔憂,可能擔心品質不高,可能存在偏見。因此,你不能以普通的方式來進行這項工作。你應該以更有創新性的方式來進行。

    但是,越來越多的證據表明,這種方法是有效的。

    例如,使用 Meta 的 SAM(Segment Anything)進行影像分割就是 AI 合成影像分割註釋的一個例子。雖然有人類的驗證幫助,但是單靠人類無法對如此多的影像樣本進行註釋。

    這是另一個例子。Microsoft 的論文 "Textbooks are all you need" 是另一個例證。當你有真正高品質的數據,例如教科書級別的數據,經過合成,你實際上可以在許多、許多不同的任務中與規模更大的對手競爭。

    可能在某些方面,它並不像大型模型那樣具有廣泛的適用性,但這對於滿足許多商業需求來說是非常出色的。你可能不需要通才,你可能需要專家。

    此外,"Textbooks are all you need" 也意味著,品質是最重要的。這並不僅僅關乎數量,更在於品質。DALL-3 就是一個很好的例子。為什麽它會突然之間超越了 DALL-E 2 呢?很大程度上是因為它有更好的影像標註。但是,究竟是哪些更好的影像標註呢?

    在此之前,我們使用了所有好的影像標註。他們將這些影像標註進行了合成。這就是我們獲得高品質數據的方式。

    當然,你需要小心翼翼地進行,但是有越來越多的任務特定符號知識蒸餾的例子,包括我自己實驗室的工作,都證明了這是可行的。這真的可以讓小模型發揮出驚人的潛力。

    所以,這更關乎數據的品質、新穎性和多樣性,而不僅僅是數量。

    如果你還想進一步了解如何構建小模型套用,實作工程化落地,可以關註 2024 亞太人工智慧與機器人產業峰會暨 GOTC 全球開源技術峰會 ,微軟高級雲技術布道師(AI 方向)盧建暉 將在 「LLMOps 最佳實踐」 論壇上進行深入講解。

    盧建暉常年活躍於不同技術社群推廣技術,不僅是微軟 Build / Ignite / Teched 大會講師,同時也是 PyCon、.NET Conf 講師,著有 Semantic Kernel Cookbook 和 Phi 3 Cookbook,現在主要專註在 SLM 和 SLMOps,以及生成式人工智慧套用落地上。

    「LLMOps 最佳實踐」 論壇還將邀請廣東智用人工智慧套用研究院工業 & 社群 CTO 張善友, 楓清科技(Fabarta)大語言模型、演算法專家 王斐 ,小碼科技創始人、Agents-Flex 作者 楊福海 ,阿裏雲技術專家 蔡健 ,全棧工程師、LLM 技術科普作者 莫爾索 等,帶領開發者探索和分享 LLMOps 的最新實踐、技術和工具,深入討論如何高效、可靠地管理和運維大規模語言模型,確保它們在生產環境中的最佳效能。

    報名 GOTC 2024:

    掃碼或長按辨識二維碼

    2024 亞太人工智慧與機器人產業峰會暨 GOTC 全球開源技術峰會 由中國人工智慧學會與開源中國聯合舉辦,將於 7 月 13-14 日 杭州 隆重舉行。

    本次峰會將匯聚全球頂尖的專家、學者、企業領袖及開源技術代表,深入探討機器人技術、軟體開發、開源技術和 AI 大模型等前沿領域。

    會議將重點展示機器人在制造、醫療、物流和服務等行業的最新套用,探討智慧演算法和自主學習能力如何提升機器人效能,並分享開源技術在推動技術創新與協作中的關鍵作用。

    此外,峰會還將關註 AI 大模型的最新研究進展及其在實際套用中的挑戰與機遇。


    Reference

    https://www.youtube.com/watch?v=OBkMbPpLCqw

    https://huggingface.co/spaces/liujch1998/infini-gram

    END

    熱門文章

    -

    -

    -

    -

    -