與 Gemini 采用同源技術的開放模型。
剛剛,谷歌殺入開源大模型。
開源領域大模型,迎來了重磅新玩家。
谷歌推出了全新的開源模型系列「Gemma」。相比 Gemini,Gemma 更加輕量,同時保持免費可用,模型權重也一并開源了,且允許商用。
Gemma 官方頁面:https://ai.google.dev/gemma/
本次發布包含兩種權重規模的模型:Gemma 2B 和 Gemma 7B。每種規模都有預訓練和指令微調版本。想使用的人可以通過 Kaggle、谷歌的 Colab Notebook 或通過 Google Cloud 訪問。
當然,Gemma 也第一時間上線了 HuggingFace 和 HuggingChat,每個人都能試一下它的生成能力:
盡管體量較小,但谷歌表示 Gemma 模型已經「在關鍵基準測試中明顯超越了更大的模型」,對比的包括 Llama-2 7B 和 13B,以及風頭正勁的 Mistral 7B。
而且 Gemma「能夠直接在開發人員的筆記本電腦或台式電腦上運行」。除了輕量級模型之外,谷歌還推出了鼓勵協作的工具以及負責任地使用這些模型的指南。
Keras 作者 François Chollet 對此直接表示:最強開源大模型的位置現在易主了。
在 HuggingFace 的 LLM leaderboard 上,Gemma 的 2B 和 7B 模型已經雙雙登頂。
新的 Responsible Generative AI Toolkit 爲使用 Gemma 創建更安全的 AI 應用程序提供指導和必備工具。谷歌還通過原生 Keras 3.0 兼容所有主流框架(JAX、PyTorch 和 TensorFlow),爲 Gemma 提供推理和監督微調(SFT)的工具鏈。
在各家大廠和人工智能研究機構探索千億級多模态大模型的同時,很多創業公司也正在緻力于構建體量在數十億級别的語言模型。而 Meta 去年推出的 Llama 系列震動了行業,并引發了人們對于生成式 AI 開源和閉源路線的讨論。
谷歌表示,Gemma 采用了與構建 Gemini 模型相同的研究和技術。不過,Gemma 直接打入開源生态系統的出場方式,與 Gemini 截然不同。谷歌也并未遵守在去年定下的「不再開放核心技術」的策略。
雖然開發者可以在 Gemini 的基礎上進行開發,但要麽通過 API,要麽在谷歌的 Vertex AI 平台上進行開發,被認爲是一種封閉的模式。與同爲閉源路線的 OpenAI 相比,未見優勢。
但借助此次 Gemma 的開源,谷歌或許能夠吸引更多的人使用自己的 AI 模型,而不是直接投奔 Meta、Mistral 這樣的競争對手。
谷歌這次沒有預告的開源,或許是想搶在 Meta 的 Llama 3 之前一天,畢竟此前有消息稱 Llama 系列本周就要上新(讓我們期待第一時間的評測對比)。
雖然才發布幾個小時,但 X 平台上已經有不少用戶曬出了使用體驗。有位用戶表示,Gemma -7B 速度很快,輸出也很穩定,好過 Llama-2 13B。
在開源模型的同時,谷歌還公布了有關 Gemma 的性能、數據集組成和建模方法的詳細信息的技術報告。在技術報告中,其他研究者發現了一些亮點,比如 Gemma 支持的詞彙表大小達到了 256K,這意味着它對英語之外的其他語言能夠更好、更快地提供支持。
以下是技術報告的細節。
Gemma 技術細節
總體來說,Gemma 是一個輕量級的 SOTA 開放模型系列,在語言理解、推理和安全方面表現出了強勁的性能。
技術報告鏈接:https://storage.googleapis.com/deepmind-media/gemma/gemma-report.pdf
谷歌發布了兩個版本的 Gemma 模型,分别是20 億參數和 70 億參數,并提供了預訓練以及針對對話、指令遵循、有用性和安全性微調的 checkpoint。其中70 億參數的模型用于 GPU 和 TPU 上的高效部署和開發,20 億參數的模型用于 CPU 和端側應用程序。不同的尺寸滿足不同的計算限制、應用程序和開發人員要求。
Gemma在 18 個基于文本的任務中的 11 個上優于相似參數規模的開放模型,例如問答、常識推理、數學和科學、編碼等任務。
下圖 1 爲 Gemma(7B)與 LLaMA 2(7B)、LLaMA 2(13B)和 Mistral(7B)在問答、推理、數學和科學、編碼等任務上的性能比較。可以看到,Gemma(7B)表現出了優勢(除了在問答任務上弱于 LLaMA 2(13B))。
接下來看 Gemma 的模型架構、訓練基礎設施、預訓練和微調方法。
模型架構
Gemma 模型架構基于 Transformer 解碼器,表 1 總結了該架構的核心參數。模型訓練的上下文長度爲 8192 個 token。
此外,谷歌還在原始 transformer 論文的基礎上進行了改進,改進的部分包括:
多查詢注意力:7B 模型使用多頭注意力,而 2B 檢查點使用多查詢注意力;
RoPE 嵌入:Gemma 在每一層中使用旋轉位置嵌入,而不是使用絕對位置嵌入;此外,Gemma 還在輸入和輸出之間共享嵌入,以減少模型大小;
GeGLU 激活:标準 ReLU 非線性被 GeGLU 激活函數取代;
Normalizer Location:Gemma 對每個 transformer 子層的輸入和輸出進行歸一化,這與僅對其中一個或另一個進行歸一化的标準做法有所不同,RMSNorm 作爲歸一化層。
訓練基礎設施
谷歌使用了自研 AI 芯片 TPUv5e 來訓練 Gemma 模型:TPUv5e 部署在由 256 個芯片組成的 pod 中,配置成由 16 x 16 個芯片組成的二維環形。
對于 7B 模型,谷歌在 16 個 pod(共計 4096 個 TPUv5e)上訓練模型。他們通過 2 個 pod 對 2B 模型進行預訓練,總計 512 TPUv5e。在一個 pod 中,谷歌對 7B 模型使用 16 路模型分片和 16 路數據複制。對于 2B 模型,隻需使用 256 路數據複制。優化器狀态使用類似 ZeRO-3 的技術進一步分片。在 pod 之外,谷歌使用了 Pathways 方法通過數據中心網絡執行數據複制還原。
預訓練
Gemma 2B 和 7B 分别在來自網絡文檔、數學和代碼的 2T 和 6T 主要英語數據上進行訓練。與 Gemini 不同的是,這些模型不是多模态的,也不是爲了在多語言任務中獲得最先進的性能而訓練的。
爲了兼容,谷歌使用了 Gemini 的 SentencePiece tokenizer 子集(Kudo 和 Richardson,2018 年)。它可以分割數字,不删除多餘的空白,并遵循(Chowdhery 等人,2022 年)和(Gemini 團隊,2023 年)所使用的技術,對未知 token 進行字節級編碼。詞彙量爲 256k 個 token。
指令調優
谷歌通過在僅文本、僅英語合成和人類生成的 prompt 響應對的混合數據上進行監督微調(SFT),以及利用在僅英語标記的偏好數據和基于一系列高質量 prompt 的策略上訓練的獎勵模型進行人類反饋強化學習(RLHF),對 Gemma 2B 和 Gemma 7B 模型進行微調。
實驗發現,監督微調和 RLHF 這兩個階段對于提高下遊自動評估和模型輸出的人類偏好評估性能都非常重要。
監督微調
谷歌根據基于 LM 的并行評估結果來選擇自己的混合數據,以進行監督微調。給定一組留出的(heldout) prompt, 谷歌從測試模型中生成響應,并從基線模型中生成相同 prompt 的響應,并要求規模更大的高性能模型來表達這兩個響應之間的偏好。
谷歌還構建不同的 prompt 集來突出特定的能力,例如指令遵循、真實性、創造性和安全性等。谷歌使用了不同的自動化 LM「judges」,它們采用了多種技術,比如思維鏈提示(chain-of-thought prompting)、對齊人類偏好等。
格式化
指令調優模型使用特定的格式化器進行訓練, 該格式化器在訓練和推理時使用額外的信息來标注所有指令調優示例。這樣做有以下兩個目的,1)指示對話中的角色,比如用戶角色;2)描述對話輪次,尤其是在多輪對話中。爲了實現這兩個目的,谷歌在分詞器(tokenizer)中保留了特殊的控制 token。
下表 3 爲相關格式化控制 token,表 4 爲對話示例。
人類反饋強化學習(RLHF)
谷歌使用 RLHF 對監督微調模型進一步微調,不僅從人類評分者那裏收集了偏好對,還在 Bradley-Terry 模型下訓練了獎勵函數,這類似于 Gemini。該策略經過訓練,使用一個具有針對初始調優模型的 Kullback – Leibler 正則化項的 REINFORCE 變體,對該獎勵函數進行優化。
與監督微調(SFT)階段一樣,爲了進行超參數調優,并額外減輕獎勵黑客行爲,谷歌依賴高容量模型作爲自動評估器,并計算與基線模型的比較結果。
評估
谷歌通過人類偏好、自動基準和記憶等指标,在廣泛的領域對 Gemma 進行了全面的評估。
人類偏好評估
除了在經過微調的模型上運行标準學術基準之外,谷歌對最終發布的候選模型進行了人類評估研究,以便與 Mistral v0.2 7B Instruct 模型進行比較。
與 Mistral v0.2 7B Instruct 相比,Gemma 7B IT 的正勝率爲 51.7%,Gemma 2B IT 的勝率爲 41.6%。在測試基本安全協議的約 400 條 prompt 中,Gemma 7B IT 的勝率爲 58%,而 Gemma 2B IT 的勝率爲 56.5%。表 5 中報告了相應的數字。
自動基準評估
谷歌還在一系列學術基準上将 Gemma 2B 和 7B 模型與幾個外部開源 LLM 進行了比較,如表 6 所示:
在 MMLU 上,Gemma 7B 的表現優于相同或較小規模的所有開源模型,還優于幾個較大的模型,包括 LLaMA2 13B。
然而,基準作者對人類專家表現的評估結果是 89.8%, Gemini Ultra 是第一個超過這一阈值的模型,可以看到 Gemma 仍有很大的改進空間,以達到 Gemini 和人類水平的性能。
但 Gemma 模型在數學和編碼基準測試中表現比較突出。在數學任務上,Gemma 模型在 GSM8K 和更難的 MATH 基準上的表現超過其他模型至少 10 分。同樣,它們在 HumanEval 上的表現比其他開源模型至少高出 6 分。Gemma 在 MBPP 上的表現甚至超過了經過代碼微調的 CodeLLaMA-7B 模型(CodeLLaMA 得分爲 41.4%,而 Gemma 7B 得分爲 44.4%)。
記憶評估
谷歌使用 Anil 等人采用的方法測試 Gemma 的記憶能力,具體而言,他們從每個語料庫中采樣 10000 個文檔,并使用前 50 個 token 作爲模型的 prompt。在此過程中,谷歌主要關注精準記憶,如果模型生成的後續 50 個 token 與文本中的真實後續文本完全匹配,則将該文本分類爲已記憶。圖 2 将評估結果與同等規模的 PaLM 和 PaLM 2 模型進行了比較,結果如下所示。
隐私數據
對大模型來說,隐私數據被記住的可能性是一件非常值得關注的事情。爲了使 Gemma 預訓練模型安全可靠,谷歌使用自動方法從訓練集中過濾掉某些隐私信息和其他敏感數據。
爲了識别可能出現的隐私數據,谷歌使用 Google Cloud 數據丢失防護 ( DLP ) 工具。該工具根據隐私數據的類别(例如姓名、電子郵件等)輸出三個嚴重級别。谷歌将最高嚴重性分類爲「敏感(sensitive)」,其餘兩個分類爲「隐私(personal)」,然後測量有多少存儲的輸出包含敏感或個人數據。
如下圖 3 所示,谷歌沒有觀察到存儲敏感數據的情況,但确實發現 Gemma 模型會記住一些上述分類爲潛在「隐私」的數據。值得注意的是,研究中使用的工具可能存在許多誤報(因爲其隻匹配模式而不考慮上下文),這意味着實驗結果可能高估了已識别的隐私數據量。
在記憶數據量方面,如下圖 4 所示,谷歌觀察到大約會多出 50% 的數據被記住,并且在數據集的每個不同子類别中幾乎是一緻的。
最後,谷歌還通過标準化 AI 安全基準評估了 Gemma 的安全性,結果如下表 8 所示。