由機器之心報告。
編輯:陳平、杜偉
想知道 Google GEMMA 和 Llama 2 和 Mistral 之間的異同嗎? 這篇文章值得一讀。就在幾天前,開源大模型領域的乙個大新玩家迎來了:谷歌推出了乙個新的開源模型系列,GEMMA。 與 Gemini 相比,GEMMA 更輕,同時可以免費使用,並且模型重量是開源和市售的。
谷歌發布了一款帶有兩個體重秤的型號:GEMMA 2B 和 GEMMA 7B。 儘管尺寸較小,但GEMMA在關鍵基準測試中的表現明顯優於大型型號,包括LLAMA-2 7B和13B,以及嶄露頭角的Mistral 7B。 同時,發布了關於GEMMA的技術報告。
在本文中,著名的機器學習和人工智慧研究人員 Sebastian Raschka 向我們介紹了與其他 LLM 相比,GEMMA 的一些獨特設計原則。
Raschka從模型的效能開始,他說任何看過技術報告的人都可能會有乙個問題,是什麼讓Gemma表現得如此出色? 原因沒有明確說明,但塞巴斯蒂安·拉施卡(Sebastian Raschka)認為可以從以下兩點得出結論:
首先是詞彙量大,GEMMA達到256000個單詞,而Llama為32000個單詞;
緊隨其後的是 6 萬億個代幣的訓練資料集,其中 Llama 只接受了三分之一的訓練。
在架構方面,Raschka概述了GEMMA與LLAMA 2 7B和OLMO 7B的架構。
在模型大小方面,Raschka 表示 Gemma 2b 具有多個查詢關注度,而 Gemma 7b 則沒有。 此外,與 Llama 2 相比,Gemma 7B 的前饋層相對較大,雖然它的層數較少(28 對 32),但 Gemma 中的引數數量相當多。
Raschka猜測,Gemma 7b實際上總共有93億個引數,如果考慮到重量綑綁,則為85億個引數。 權重共享意味著模型在輸入嵌入和輸出投影層中共享相同的權重,類似於 GPT-2 和 OLMO 1B(OLMO 7B 在沒有權重共享的情況下進行訓練)。
歸一化層
另乙個引人注目的細節是傑瑪的以下段落。
規範化位置。 Google 對每個 transformer 子層的輸入和輸出進行規範化,這與單獨規範化輸入或輸出的標準做法不同。 Google 使用 rmsnorm 作為歸一化層。乍一看,gemma 似乎在每個變壓器塊後面都有乙個額外的 rmsnorm 層。 然而,看看 Keras-NLP 專案的官方 ** 實現,原來 GEMMA 只使用了 GPT-2、LLAMA 2 和其他 LLM 使用的常規預規範化方案,如下圖所示。
GPT、LLAMA 2 和其他 LLM 中的典型層歸一化位置,GEMMA 中沒有什麼新東西。 **
Geglu活化
GEMMA 與其他架構的一大區別是它使用了 Geglu 啟用,這是在 2020 年谷歌的 Glu Variants Improve Transformer 中提出的。
*位址:Gelu代表高斯誤差線性單位,這是一種啟用函式,越來越多地被用作傳統Relu的替代品。 Gelu之所以受歡迎,是因為它能夠引入非線性特徵,並允許對負輸入值執行梯度傳播,這解決了RELU的主要限制之一,即完全阻止負值。
現在,作為 Gelu 的柵極線性單元變體,Geglu 的啟用分為兩部分,sigmoid 單元和線性對映單元(根據 sigmoid 單元的輸出逐個元素乘以),如下圖所示。
gelu 和 relu 啟用函式的圖形比較,**
同時,GEGLU 類似於其他 LLM(如 Llama 2、Mistral 等)使用的 Swiglu 啟用。 唯一的區別是 Geglu 使用的基礎啟用是 Gelu 而不是 Swish。
下圖顯示了 Gelu (GPT-2)、Swiglu (Llama 2) 和 Geglu (Gemma) 的偽**。
需要注意的是,使用 Swiglu 和 Geglu 的前饋模組比使用 Gelu 的常規前饋模組(僅線性)多了乙個線性層(分別為 Linear 1 和 Linear 2)。 然而,在 Swiglu 和 Geglu 前饋模組中,線性 1 和線性 2 通常是通過將單個線性層分成兩部分來獲得的,因此引數大小不會增加。
Geglu 比 Swiglu 好嗎? 沒有消融實驗來證實這一點。 Raschka 猜測 Google 選擇使用 Geglu 只是為了讓 Gemma 與 Llama 2 略有不同。
例如,GEMMA 向 RMSNORM 層新增偏移量 + 1,並通過隱藏層維度的開平方根來規範化嵌入。 這些細節在 gemma 中沒有提及或討論,因此它們的重要性尚不清楚。
結論
GEMMA 為開源 LLM 做出了巨大貢獻,證明了 7B 引數規模也可以帶來強大的模型,並有可能在現實世界的用例中取代 Llama 2 和 MISTRAL。
此外,已經有很多 7B 大小的開源模型,因此 Gemma 2B 更加有趣,因為它可以輕鬆執行在單個 GPU 上。 當然,gemma 2b 和 2 是一樣的7b 尺寸 phi-2 之間的對比也會很有趣。
參考鏈結: