はじめに: 奇妙なAIの挙動
先日、コーディングアシスタントに中国語で質問しました。「run.pyには早期停止(early stopping)がありますか?共有GPUサービスで実行していますが、トリガーされませんでした。」いつものように、技術トークン run.py は英語の原文のまま入力しました。すると、モデルの応答構造が韓国語で返ってきたのです。技術用語は英語のまま、説明文だけが韓国語で構成された応答でした。
奇妙なのは、これが初めてではないことです。中国語と英語を混ぜて使うと、かなりの頻度で韓国語の応答が現れました。単なる偶然でしょうか、それとも埋め込み空間のより深い構造的問題でしょうか?
埋め込み空間の構造に関する仮説
埋め込み空間は、言語の本質的特性よりも**タスクレジスタ(task register)**に基づいて構造化されている可能性が高いです。学術的ライティング、会話体、コーディングアシスタントの場合はエンジニアリング/コードレジスタがその例です。中国語は世界で最も多くの人口が使用していますが、エンジニアリングレジスタの自然な媒体ではなく、技術コーパスでの表現も限られています。
このような文脈では、review、branch、commit、PR、diff のようなエンジニアリングトークンが出現した瞬間、テキストは埋め込み空間で「中国語」として動作しなくなる可能性があります。代わりに「エンジニアリングアトラクターフィールド」に引き寄せられるのです。
実験1: 制御された言語ドリフト
この仮説を検証するため、英語の単語が中国語を段階的に置き換える文のシーケンスを構成しました。
| 段階 | 文 |
|---|---|
| 0 | 请帮我检查这个分支 |
| 1 | 请帮我 review 这个分支 |
| 2 | 请帮我 review 这个 branch |
| 3 | Please review this branch pull request commit |
| 4 | Please review this branch pull request commit code diff |
各文の埋め込みと韓国語/英語の代表クラスター間のコサイン類似度を計算しました。結果は以下の通りです。
| 段階 | 韓国語類似度 | 英語類似度 | Δ (EN − KO) |
|---|---|---|---|
| 0 | 0.4783 | 0.5141 | 0.0358 |
| 1 | 0.5235 | 0.5728 | 0.0492 |
| 2 | 0.5474 | 0.6140 | 0.0665 |
| 3 | 0.5616 | 0.7314 | 0.1698 |
| 4 | 0.5427 | 0.7398 | 0.1972 |
興味深いのは、韓国語の類似度が最初に増加し、その後英語の類似度に追い越されることです。さらに重要なのは、英語の類似度の増加が線形ではないことです。段階2から段階3の間に急激なジャンプが発生しており、これは漸進的なドリフトではなく相転移(phase transition)に似た挙動を示しています。
PCAで2次元に投影すると、初期段階では滑らかな軌道を示し、段階2と段階3の間で方向が急激に変わり、その後安定化します。埋め込みが線形的に移動するのではなく、アトラクターベイスン間を遷移していることを示唆しています。
実験2: 実際のモデル挙動
次に、最初に言及した実際のケースを分析します。
- A (中国語プロンプト): "run.py有早停吗?我在恒源云上跑,发现没有触发"
- B (韓国語応答): "원인을 찾았습니다. 결론: run.py에는 실제로 조기 종료가 없습니다. config.py에 USE_EARLY_STOPPING = True"
- C (Bを中国語に再翻訳): "我找到了原因。结论:run.py实际上没有早停。config.py里有 USE_EARLY_STOPPING = True。"
各テキストの埋め込みと中国語/英語/韓国語クラスター間の類似度を計算しました。
| テキスト | 韓国語類似度 | 英語類似度 | 中国語類似度 |
|---|---|---|---|
| A (中国語プロンプト) | 0.2003 | 0.2688 | 0.3134 |
| B (韓国語応答) | 0.2745 | 0.2983 | 0.1641 |
| C (中国語再翻訳) | 0.1634 | 0.3106 | 0.2798 |
注目すべきは、韓国語の応答を中国語に翻訳しても、埋め込みが中国語領域に戻らないことです。むしろ英語クラスターにさらに近づいています。翻訳は言語的形態を復元できますが、埋め込み位置は復元できません。
まとめと示唆
2つの実験はどちらも、埋め込み空間が言語境界ではなくタスク特性によって構造化されているという結論を示しています。エンジニアリング英語が支配する領域に文が入ると、言語的形態が変わっても埋め込み構造はエンジニアリングベイスンに留まります。これが、韓国語話者ではないのに韓国語で応答するという奇妙な挙動を説明します。
この技術の限界または注意点
この実験は特定の埋め込みモデルと限られた文サンプルに基づいています。モデルアーキテクチャや学習データによって結果は異なる可能性があります。また、コサイン類似度が埋め込み空間の構造を完全に説明するわけではありません。ただし、この現象自体は複数のモデルで観察される一般的なパターンと考えられます。
次のステップの学習方向
- t-SNE、UMAPなどの可視化ツールを使用した埋め込み空間の深層分析
- 多言語モデル(mBERT、XLM-R)での言語境界の実験
- プロンプトエンジニアリングによる言語混在問題の解決方法の研究
このテーマに興味があれば、AI埋め込み空間の言語ドリフト現象に関する原文を参照してください。
合わせて読みたい記事
