Gemma Developer Day in Tokyo に参加した記録
Gemmaの情報をキャッチアップする目的で Google 主催の Gemma Developer Day in Tokyo に参加した。Google CEO である Sundar Pichai の登場や、日本語向けGemma2モデルの新発表というサプライズも含め、参加者からはたくさんの様々な種類の刺激をいただきました。メモしていた内容をちょっと整理して公開します。
What’s new in Gemma 2
最初の発表は Google DeepMind の Product Management Director である Tris Warkentin から Gemma2 の紹介。そして日本語版 Gemma 2 2B モデルの新発表。これに加えGemma関連のコミュニティコンペティションを立ち上げることの新発表。
今回発表された日本語版Gemma2 2Bモデルは、彼らの実験において 日本語のほぼすべての人間による評価指標で GPT 3.5 を凌駕しているようです。コミュニティコンペ Unlock Global Communication with Gemma (Kaggle) はfine-tuningのレシピを共有し、あらゆる言語のためのモデルを作ることが目的。イベントに参加している開発者たちやコミュニティに知識の共有を促していました。 グローバルなAIエコシステムを作るという文脈で、協調的な精神が画期的な成果をもたらした一例として、Sakana AIのDiscoPOPの紹介がありました。
最後にサプライズゲストとして Google CEO の Sundar Pichai が登場。会場は大盛りあがり。 東京滞在中にイベント開催の話を耳にして、ちょっと立ち寄って挨拶したかったとのこと。 Gemmaと開発者コミュニティに対する高い期待が伝わります。
彼らのゴールは、最小のモデルで多くのタスクのサイズに対する性能のスタンダードを確立し、多くの興味深いオンデバイス・アプリケーションを解き放つこと。オープンモデルはこの進歩の推進力になるとのこと。(これだけ強いモデルをオープンにしていくなんて、大胆なこと考える。)
Fine-tuning Gemma for the world’s languages
続いて Google DeepMind の Research Scientist である Robert Dadashi からの発表。 多言語の Gemma2 の fine-tuning、特にここでは Gemma2 JPN の post-training についての技術的な細部の話。
Gemma2 は multi-lingual data(数兆トークンからなる)で pre-trained されたモデル。 Gemma Tokenizer は multi-lingual data によって訓練され、256k tokens で構成されている。 今回発表された Gemma2 JPN は post-training によって Gemma2 の日本語能力を後押ししている。
Gemma2 JPN の post-training は二つのステージがあり、supervised finetuning (SFT) と reinforcement learning with human feedback (RLHF) が行われている。 SFT はプロンプトからレスポンスを当てる標準的な分類タスク。RLHFはどのレスポンスが人間に好まれるのかの報酬モデルを使う、人間のフィードバックを使った強化学習モデル。
Gemma2のRLHFにおける報酬モデルは主に英語データに基づいて訓練されている。 これはバイアスを起こし英語以外のプロンプトに対する英語のレスポンスを崩壊させる傾向がある。 プロンプトとして「日本の首都はどこですか」が来たとき、レスポンスが「Tokyo」だと言語エラーとなる。レスポンスが「東京」だとエラーにならない。 Gemma2 2B(※Gemma2 JPN ではない)の言語エラー率はチャレンジングプロンプトに対して 29.6% に達した(10回のうち3回は言語エラーになるので、これはとても嬉しくない)。この問題に対処するソリューションを設計した。
最初のステップはより多くの日本語のプロンプトを集めること。(データ大事わかる)。 そして二つ目のステップは Prompt-instructed Reward Model と呼ぶものを導入すること。
preamble (前触れ) というものを導入して、言語の一貫性のある回答に加算報酬を与える。 これによって報酬スコアの言語一貫性を改善する。報酬モデルは、入力プロンプトが日本語であれば、回答も日本語であるべきだと理解する。つまり、これは報酬モデルのプロンプトチューニングだと考えることができる。これらのレシピによって、Gemma2 2B で 29.6% だった言語エラーは 0.6% に改善した。
そして新しい Gemma2 JPN を使う際のアドバイス。 一つは beam search を使うこと。これは言語崩壊の問題を軽減する必要があるため。 サンプリングに多様性を導入すると言語エラーは起こりやすくなる。 次はプロンプト戦略。モデルのパフォーマンスを向上させるためには良いプロンプトが重要。 「特定のスタイルで」「特定の回答長で」「特定の内容で」といった具合にプロンプトを設計していくことが重要とのこと。
(Fireside chat) Japanese and Korean developers share their experiences with Gemma
日本語と韓国語開発者の経験を共有する暖炉脇スタイルの会話。 日本語については東京科学大の岡崎先生が経験を共有してくれました。
岡崎先生からGoogleとのパートナーシップを通じて日本語ローカルLLMのエンハンスに取り組んでいくことが話されて驚いた。これより前に発表されていたかもしれないけど、自己紹介パートで初めて認識した。今後の成果がとても楽しみです。
Gemma2 は日本語タスクで非常に優れていると評価。10B パラメータ以下のなかでは Gemma2 9B はトップクラス。
一方で Gemma2 はコミュニティから過小評価されているかもしれないとも。これは評価が難しいことが問題にある。オープンソースの推論エンジンが Gemma2 をよくサポートしていなかったことが原因で、いまは例えば vLLM などはサポートしている のでモデルを正しく扱えるようになった。そして今回の日本語向けの Gemma2 2B JPN のアナウンスはとてもエキサイティングな話題。
英語以外の言語の性能について、Gemma2 がリリースされて驚いた点は Tokenizer の改善。以前のモデル(Llama2とかそのあたり?)は英語中心のボキャブラリで 32k ほどのトークンサイズだった。CKJ言語のサポートには不十分で、vocablary を拡張していく必要があった。いまはその必要がないので素晴らしい進歩。
データセットの準備について。これは極めて重要。 Swallow LLM を作ったとき、既存コーパスは品質が十分でなかったため、 コーパスをCommon Crawl データセットからゼロから作った。 そして continual pre-training を行うことで LLM を構築した。 ここでは 3D parallelism を使った。
Fireside chat 後半。英語以外のAIの未来についての話があって面白かった。 グローバルモデルにはバイアスの問題がある。 そのため自分たちのタスクであったり、自分たちの国のための 特化モデル (specialized model) が欲しいという話。
特定の国の文化をグローバルなモデルがフォローできないような状況がある。 また英語にアライメントされることで、機械っぽい話し方をするというギャップがある。(その言語特有の表現が消えてしまったり、うまく引き出せなくなることが容易にイメージできる)
Demo & Workshop
Gemma の周辺技術の紹介(DataCommons, Gemma Scope, PaliGemma, etc)からはじまり、推論やデプロイの話が続いた。最後に実際に手を動かして体験するワークショップと続いた。 公開されているアジェンダから見てもわかるように盛りだくさんで紹介しきれないので、post-training の研究の話だけピックアップして紹介する。あとで動画をアップロードするとメールでアナウンスされているので、それを見るのが一番いい。
X(Twitter)のハッシュタグ #GemmaDeveloperDay からも部分的に情報をたどることができます。
Post-training research with Gemma
Gemmaチームで post training の研究に取り組んでいる Léonard Hussenot から、Gemma は post-training の研究に適しているという話と、研究の例として BOND と WARM についての紹介がありました。
best model を開発するための pre-training と post-training の役割について。 pre-training は全世界の情報を圧縮するステップ。 純粋な imitation loss で大量のデータを用いて訓練することで、 可能な限り幅広い知識を持つ next-token predictor を作る。
一方で post-training はふるまいや個性を選択すること。 より特定のデータに対して訓練することで、next-token predictor を chatbot のような product に変えること。これはアプリケーションを開発する上で重要なステップとなります。
Gemmaはpost-trainingの研究に適している。 post-training の研究においてはコンパクトでcapableなモデルであることが求められる。 Gemmaはこれに適合している。実際にGemma2の開発であったり、Gemma2 JPN の fine-tuning の post-training のアルゴリズムであったり は、Gemma から直接生まれている。
Reinforcement learning from human feedback (RLHF) is a key driver of quality and safety in state-of-the-art large language models. Yet, a surprisingly simple and strong inference-time strategy is Best-of-N sampling that selects the best generation among N candidates. In this paper, we propose Best-of-N Distillation (BOND), a novel RLHF algorithm that seeks to emulate Best-of-N but without its significant computational overhead at inference time. Specifically, BOND is a distribution matching algorithm that forces the distribution of generations from the policy to get closer to the Best-of-N distribution. We use the Jeffreys divergence (a linear combination of forward and backward KL) to balance between mode-covering and mode-seeking behavior, and derive an iterative formulation that utilizes a moving anchor for efficiency. We demonstrate the effectiveness of our approach and several design choices through experiments on abstractive summarization and Gemma models. Aligning Gemma policies with BOND outperforms other RLHF algorithms by improving results on several benchmarks.
Aligning large language models (LLMs) with human preferences through reinforcement learning (RLHF) can lead to reward hacking, where LLMs exploit failures in the reward model (RM) to achieve seemingly high rewards without meeting the underlying objectives. We identify two primary challenges when designing RMs to mitigate reward hacking: distribution shifts during the RL process and inconsistencies in human preferences. As a solution, we propose Weight Averaged Reward Models (WARM), first fine-tuning multiple RMs, then averaging them in the weight space. This strategy follows the observation that fine-tuned weights remain linearly mode connected when sharing the same pre-training. By averaging weights, WARM improves efficiency compared to the traditional ensembling of predictions, while improving reliability under distribution shifts and robustness to preference inconsistencies. Our experiments on summarization tasks, using best-of-N and RL methods, shows that WARM improves the overall quality and alignment of LLM predictions; for example, a policy RL fine-tuned with WARM has a 79.4% win rate against a policy RL fine-tuned with a single RM.
(※以下BONDとWARMの論文は中身をまだ読んでいないので、私が間違って理解しているかもしれない点に注意してください)
post-trainingの研究の具体例として、BOND について紹介。Best-of-N sampling はよく知られた推論時の手法で、Nサンプル生成して最も良いスコアのものを返す方法。シンプルかつ強力な手法だけれど、N回モデルからサンプリングを実行する必要があり、コストが高いので、sustainableではない。
ここで、Best-of-N のサンプリング法の振る舞いを明示的な式として表できることに気づく。 元の分布に基づく Best-of-N 分布を明示的に表現する。これによってシンプルな distribution matching 問題に定式化できる(ジェームズ・ボンドやんけ)。 そうすることで、Best-of-N を使ったときの元のモデルの振る舞いに一致する振る舞いを学習する。
WARMについてはとてもシンプルな説明と結果の紹介。 1つのモデルを訓練するとき、複数の報酬モデルを weight space で加重平均するだけ。 これはとてもシンプルだけど、他のほとんどの技術よりもうまく機能する。 結果を見るとマージするモデルの数である M を増やすことで、parate-optimal な結果になることがわかります。
以上、Gemmaは研究するための素晴らしいモデルファミリーであるという話。
Happy Hour
Kaggle の Developer Advocate である Nilay に会うことができ、色々な意見交換をしました。めちゃ明るくて気さくな人なので、日本の kaggler は彼を見かけたら積極的に声をかけましょう。Kaggleステッカーをいただき、様々な写真を撮影したりしていました。
Kaggle に対してリクエストがないかと積極的に聞いてくれたので、Kaggle API のドキュメンテーション整備であったり notebook (code) に対する API 機能の拡充などをリクエストした。notebook に dataset をマウントするための手段はブラウザ上から手動でしか行えないのだけれど、kaggler はこの操作を無限回行うので API 経由で行えるようになると QoL が大変素晴らしいことになります。ぜひ!
(↑ は charmq さん& kuma さんと一緒撮影して kuma さんに加工していただいたものです。)