0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

音韻理解タスクにおけるLLMの推論トークンの中身の確認

0
Last updated at Posted at 2026-05-03

はじめに

前回、LLMは音韻の類似性判定のためのルールを指示すれば、推論トークンを消費することで、音韻の類似性を判定できることがわかりました。
一方で、非推論の状態では詳細な指示を与えても、判定に成功しないことから、おそらく、LLMは複数桁同士の掛け算を筆算で解くときのように、ステップバイステップで、入力単語をローマ字に直す、母音同士の一致を検証する、などの手順を推論トークンの中で具体的に出力しているのではと考えられます。

そこで、実際に推論トークンの中身を見てみました。

実験1

推論モデルで実行して、reasoning summaryを確認しました。

API リクエスト条件

  • model: gpt-5.4
  • reasoning: {"effort": "medium", "summary": "detailed"}
  • max_output_tokens: 1200

入力

system prompt

クエリ(Query)と単語一覧(Wordlist)が与えられます。
クエリと発音が似ている順に、単語一覧を並び替えてください。
以下の手順で判断してください。
- 1. クエリと比較対象単語から促音(ッ)、撥音(ン)、長音(ー)を削除
- 2. クエリと比較対象単語をそれぞれ小文字ローマ字に直す
- 3. 同じ母音が連続していれば2文字目以降を削除する。例えば「k a a」は「k a」にする。「カア」は実質「カー」であるため長音の削除に相当。同様に「ei」「ou」についてはそれぞれ「e」「o」にする。これも「エイ」「オウ」は実質「エー」「オー」であるため長音の削除に対応する
- 4. 母音(aiueo)の並びが一致していることを優先し、母音の一致が同程度であればなるべく子音が似ているものを、より発音が似ているとする。
出力は上位Top N件のインデックスのみ返してください。

Example:
Query: タロウ
Wordlist:
0. アオ
1. アオウヅ
2. アノウ
3. タキョウ
4. タド
5. タノ
6. タロウ
7. タンノ
Top N: 5
Reranked: 6, 4, 5, 7, 2

user prompt

ベンチマーク時は100件の単語が与えられますが、今回は10件の単語で試してみます。

Query: アウマル
Wordlist:
0. タクマル
1. アニマル
2. アキマル
3. サコマル
4. カネマル
5. トウマツ
6. イシマル
7. アツザワ
8. オスカル
9. ライアル
Top N: 10
Reranked:

出力

reasoning.summary

**Analyzing vowel and consonant patterns**

I'm noticing that words starting with vowels tend to work better for the first one or two positions. I should compare the last syllables, like "maru" versus "karu," and find any exact consonant matches. I'll convert the syllables as follows: ア(∅, a), ウ(∅, u), マ(m, a), and ル(r, u). I have several candidates to consider based on vowel and consonant placements.

日本語訳

**母音と子音のパターン分析**

母音で始まる単語は、最初の1~2音節でうまく機能する傾向があることに気づきました。「まる」と「かる」のように最後の音節を比較し、完全に一致する子音を探します。音節は次のように変換します:ア(∅、a)、ウ(∅、u)、マ(m、a)、ル(r、u)。母音と子音の位置に基づいて、検討すべき候補がいくつかあります。

usage

{
  "input_tokens": 465,
  "output_tokens": 1200,
  "output_tokens_details": {
    "reasoning_tokens": 1200
  },
  "total_tokens": 1665
}

考察

OpenAI APIで推論トークンの生データを取得する方法はおそらくないので、reasoning.summaryを見るのが精一杯でした。
そして、reasoning.summaryだけだと、指示通りの手順を踏んでいるのかはよくわかりませんでした。
ただ、母音の並びの一致度を優先するように指示しているのに、「最初の1~2音節でうまく機能する傾向があることに気づきました」「『まる』と『かる』のように最後の音節を比較し、完全に一致する子音を探します」などと言っており、若干ずれている気がします。
「アウマル」を母音と子音に分解することはできているようです。

実験2

推論モデルの推論トークンはsummaryしか見られないので、非推論モデルでCoTしてみました。
なお件数を絞った検証では、非推論CoTでも精度の向上はみられました。

API リクエスト条件

  • model: gpt-5.4
  • reasoning: {"effort": "none"}

プロンプト

長いので末尾に書きます。
実験1のプロンプトをCoT用に少し変えたものです。
候補単語は実験1では10件でしたが、実験2ではよりベンチマーク条件に近づけて100件にしてみました。

テストケース

非推論の状態だと失敗したテストケースを選びました。
結果を2件ほど示します。

結果

1

クエリは「アウマル」です。

Thoughts:  
クエリ「アウマル」を正規化すると、促音・撥音・長音の削除は影響なしで、そのままローマ字化して **a u m a r u**、母音列は **a-u-a-u** です。  
したがってまず母音列 **a-u-a-u** に近いものを優先し、その上で子音列の近さを見る。

上位候補の要点:
- **サコマル, タクマル** はともに語尾 **マル** が完全一致し、全体も **a-u-a-u** で母音一致。
- **アニマル** も **a-i-a-u** で3/4近く、かつ **-マル** が一致。
- **アキマル, カネマル** も **-マル** 一致で有力。ただし母音は **a-i-a-u**, **a-e-a-u**。
- **アダム, イグマ, オグマ** は短いが **a-u-a / i-u-a / o-u-a** で中核の **u-a** や **m** が近い。
- **アマノ, アサマ, アズマ, アヅマ** は **a-a-o / a-a / a-u-a / a-u-a** で、特に **アズマ, アヅマ** は母音の形が比較的近く、子音もそこそこ近い。
- **タムラ, サムラ, ナカムラ, オカムラ** などの **ムラ** 系は末尾が近いが、**マル** と順序が異なるため一段下。

Reranked: 85, 89, 35, 17, 84, 28, 53, 82, 27, 33

トップ3は85. サコマル、89. タクマル、35. アニマルでした。
母音が完全一致するタクマル(ベンチマーク上でも正解とされるもの)が2位に来ており、CoTなしで失敗していたことを考えると、精度は上がったといえます。
ただCoTを見るとサコマルは母音が一致していないのに「完全母音一致」としており変です。他も母音の分析が正確でないものがいくつかありました。

2

クエリは「アシオト」です。

Thoughts:  
クエリ「アシオト」を正規化すると、
- 促音・撥音・長音削除: 変化なし
- ローマ字: a shi o to
- 母音列: a i o o → 連続母音整理後 a i o

各候補も同様に見て、まず母音列が a i o に一致するものを最優先。その中で子音列が近いものを上位にしました。

特に近い候補:
- 29. アシザワ → a shi za wa, 母音列 a i a a → a i a で末尾が違うためやや劣る
- 28. アシキ → a shi ki, 母音列 a i i → a i で短いが冒頭子音が非常に近い
- 81. オシオ → o shi o, 母音列 o i o で1母音違いだが「シオ」が一致
- 86. シオタ → shi o ta, 母音列 i o a で前半に「シオト」と近い並び
- 13. アオト → a o to, 母音列 a o で後半「オト」が一致
- 7. アイト → a i to, 母音列 a i o で完全一致、語尾も to 一致
- 17. アキト → a ki to, 母音列 a i o で完全一致
- 60. イトイ → i to i, 母音列 i o i でずれる
- 95. マコト → ma ko to, 母音列 a o o → a o で語尾「ト」が一致
- 0. アイ → a i, 母音列 a i で前半のみ一致

母音列 a i o 完全一致を最優先すると、
- 7. アイト
- 17. アキト
が強いです。

その次に、冒頭「アシ」が一致または近いもの、
- 28. アシキ
- 29. アシザワ
- 30. アシダ
を上位に置きます。

さらに「シオ」「オト」など部分的に近いものとして
- 81. オシオ
- 86. シオタ
- 13. アオト
- 48. イシオカ
- 27. アシカリ
を続けます。

Reranked: 7, 17, 28, 30, 29, 81, 86, 13, 48, 27

トップ3は7. アイト、17. アキト、28. アシキでした。
こちらは非推論のときと同様に不正解でした。
Thoughtsを見ると、連続母音の削除に関する指示を誤解して、母音のみa-i-o-oと取り出したあとに、o-oの連続を除いています。
当然、本来は、子音も含めた表記のときに連続している母音を除くべきです。
プロンプトではその点、間違いなく、明記していますが、勘違いしてしまったようです。

全体考察

当初の期待、「ステップバイステップで、入力単語をローマ字に直す、母音同士の一致を検証する、などの手順を推論トークンの中で具体的に出力しているのではと考えられます」は、すぐ確かめられるかと思いましたが、意外とそうでもありませんでした。
推論モードだとreasnong.summaryしか見られないため、そもそも確認ができませんでした。非推論モードのCoTでも、すべての単語を逐一ローマ字にするような手続きは踏めていませんでした。
ただ、前回の結果から、精度が上がることは確かなので以下のどちらかかなと思います。

  • 確認できていない推論モードでは、指示された手順を踏んでいる可能性がある
  • 人間にとってわかりやすいCoTではないが、精度の向上には寄与する

次は、カナではなくローマ字として単語を与えた場合のrerank性能をみてみたいです。

参考

実験2のプロンプト

システムプロンプト

クエリ(Query)と単語一覧(Wordlist)が与えられます。
    クエリと発音が似ている順に、単語一覧を並び替えてください。
    以下の手順で判断してください。
    - 1. クエリと比較対象単語から促音(ッ)、撥音(ン)、長音(ー)を削除
    - 2. クエリと比較対象単語をそれぞれ小文字ローマ字に直す
    - 3. 同じ母音が連続していれば2文字目以降を削除する。例えば「k a a」は「k a」にする。「カア」は実質「カー」であるため長音の削除に相当。同様に「ei」「ou」についてはそれぞれ「e」「o」にする。これも「エイ」「オウ」は実質「エー」「オー」であるため長音の削除に対応する
    - 4. 母音(aiueo)の並びが一致していることを優先し、母音の一致が同程度であればなるべく子音が似ているものを、より発音が似ているとする。
    出力は上位Top N件のインデックスのみ返してください。

Example:
Query: タロウ
Wordlist:
0. アオ
1. アオウヅ
2. アノウ
3. タキョウ
4. タド
5. タノ
6. タロウ
7. タンノ
Top N: 5
Reranked: 6, 4, 5, 7, 2

ユーザープロンプト

1


    Query: アウマル
    Wordlist:
    0. アイカタ
1. アイカワ
2. アイキョウ
3. アイコウ
4. アイサカ
5. アイザワ
6. アイダ
7. アイハラ
8. アイバ
9. アイバラ
10. アイモト
11. アオタ
12. アオマツ
13. アオヤギ
14. アオヤマ
15. アカマ
16. アカマツ
17. アキマル
18. アキムラ
19. アキラ
20. アクツ
21. アサクラ
22. アサハラ
23. アサマ
24. アサムラ
25. アスプロ
26. アズハタ
27. アズマ
28. アダム
29. アダメス
30. アチラ
31. アツザワ
32. アツタ
33. アヅマ
34. アドゥワ
35. アニマル
36. アマノ
37. アマヤ
38. アユカワ
39. アラマキ
40. アリアス
41. アリクラ
42. アリハラ
43. アリマ
44. アリマチ
45. アリムラ
46. アワツ
47. アンザイ
48. アンシュウ
49. アンドウ
50. アンラク
51. イイハラ
52. イエムラ
53. イグマ
54. イケマツ
55. イシマル
56. イソムラ
57. イタクラ
58. イチムラ
59. イナクラ
60. イマヅ
61. イマムラ
62. イムラ
63. イワムラ
64. ウエハラ
65. ウエマ
66. ウエマツ
67. ウエムラ
68. ウチムラ
69. ウッズ
70. ウメツ
71. ウメムラ
72. エダムラ
73. エムラ
74. オオクラ
75. オオハラ
76. オオマチ
77. オオマツ
78. オオムラ
79. オオムロ
80. オカムラ
81. オクハラ
82. オグマ
83. オスカル
84. カネマル
85. サコマル
86. サムラ
87. シマムラ
88. タウラ
89. タクマル
90. タムラ
91. トウマツ
92. ナカムラ
93. ノムラ
94. ハウエル
95. パウエル
96. マルク
97. マーシャル
98. ヤーナル
99. ライアル
    Top N: 10
    Reranked:

2


    Query: アシオト
    Wordlist:
    0. アイ
1. アイウチ
2. アイカタ
3. アイキ
4. アイキョウ
5. アイコウ
6. アイダ
7. アイト
8. アイバ
9. アイモト
10. アオイ
11. アオキ
12. アオタ
13. アオト
14. アオノ
15. アキエダ
16. アキタ
17. アキト
18. アキヒロ
19. アキモト
20. アキヨシ
21. アキーノ
22. アギー
23. アギーラ
24. アサオ
25. アサオカ
26. アシカガ
27. アシカリ
28. アシキ
29. アシザワ
30. アシダ
31. アソウ
32. アベショウタ
33. アボット
34. アマモト
35. アラウホ
36. アラオカ
37. アリアス
38. アリゾノ
39. アリタ
40. アリトウ
41. アリモト
42. アリヨシ
43. イイオ
44. イオウ
45. イオキ
46. イコウ
47. イシイ
48. イシオカ
49. イシグロ
50. イシド
51. イシドウ
52. イシドコ
53. イシハタ
54. イシブロ
55. イシモト
56. イシワタ
57. イソノ
58. イチオカ
59. イデモト
60. イトイ
61. イトウ
62. イナオ
63. イノウ
64. イノコ
65. イノモト
66. イヒロオ
67. イモト
68. イヨノ
69. イリョウ
70. イワオ
71. イワモト
72. ウィット
73. ウエモト
74. ウチオ
75. ウチゾノ
76. ウメモト
77. エノモト
78. オオタ
79. オオト
80. オギモト
81. オシオ
82. オシモト
83. カキモト
84. カジモト
85. キシモト
86. シオタ
87. タキモト
88. タニモト
89. ナイト
90. ナリモト
91. ニシモト
92. ハギモト
93. ハシモト
94. ハリモト
95. マコト
96. マツモト
97. ヨシモト
98. ライト
99. ワキモト
    Top N: 10
    Reranked:
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?