TL;DR

BabelSteeringは、英語のデータから抽出した「拒否ベクトル」と「過剰拒否ベクトル」を組み合わせてモデルの内部表現を操作し、追加学習なしで多言語の安全性を向上させる手法です。Gemma 7Bでは、8言語で有害プロンプトの拒否率が平均11ポイント向上し、汎用性能は維持されました。一方で、無害だが紛らわしいプロンプトへの過剰拒否も増加するというトレードオフがあります。

解説

AMI HAPPY

ねえ智也くん、このBabelSteeringって論文、タイトルからして面白そう!でも英語の安全ベクトルで多言語の安全性を上げるって、どういうこと?

TOMOYA NEUTRAL

ああ、簡単に言うと、モデルの内部表現を操作して、有害なプロンプトを拒否する方向にちょっとだけ押すんだ。英語で学習したベクトルを他の言語にも使えるようにしたのがポイントだよ。

AMI SURPRISED

へー、追加学習なしでできるんだって?それってすごくない?

TOMOYA NEUTRAL

うん、既存のモデルにベクトルを足すだけでいいから、学習コストがかからない。しかもGemma 7Bで8言語、平均11ポイントも拒否率が上がったらしい。

AMI SURPRISED

でも、なんで英語のベクトルで他の言語に効くの?言語によって文化とか違うんじゃない?

TOMOYA NEUTRAL

そこが面白いところで、モデルの内部表現には言語に共通する部分があるんだ。英語で抽出した「拒否ベクトル」が、他の言語でも似た方向を向いているらしい。

AMI NEUTRAL

なるほどね。で、具体的にはどうやってベクトルを作るの?

TOMOYA NEUTRAL

まず英語のデータから「拒否ベクトル」と「過剰拒否ベクトル」を抽出するんだ。拒否ベクトルは有害なプロンプトに拒否する方向、過剰拒否ベクトルは無害なのに拒否しすぎる方向を表す。

AMI NEUTRAL

それを組み合わせるってこと?

TOMOYA NEUTRAL

そう。過剰拒否ベクトルを引くことで、無害なプロンプトへの過剰拒否を抑えつつ、拒否ベクトルを足して有害なものへの拒否を強化する。

AMI NEUTRAL

なるほど!でも、評価はどうやってしたの?

TOMOYA NEUTRAL

8言語で有害プロンプトと無害プロンプトを用意して、拒否率を測ったんだ。有害プロンプトへの拒否率は上がったけど、無害なのに紛らわしいプロンプトへの過剰拒否も増えたって。

AMI NEUTRAL

あー、やっぱりトレードオフがあるんだね。でも、汎用性能は維持されたんでしょ?

TOMOYA NEUTRAL

うん、一般的なタスクの性能はほとんど落ちなかったらしい。だから実用的には使えるかもしれない。

AMI SAD

でも、過剰拒否が増えるのはちょっと困るよね。ユーザーがイライラしちゃうかも。

TOMOYA NEUTRAL

そうだね。今後の課題としては、過剰拒否を減らす方法を考える必要がある。

AMI HAPPY

でも、追加学習なしで多言語対応できるのは魅力的だね。コストも時間も節約できるし。

TOMOYA NEUTRAL

ああ、特にリソースが限られた環境では有効だと思う。

AMI HAPPY

それにしても、英語のベクトルが他の言語にも効くなんて、まるで世界共通の「拒否のツボ」があるみたいだね!

TOMOYA NEUTRAL

まあ、ツボというよりは、モデルが学習した共通の概念だよ。でも、その例えは面白いかも。