生成AIに文章の下書きを任せていると、途中から口調が変わることがあります。私も、手元のミニPCで軽めの量子化モデルにブログの草稿を書かせたことがあるのですが、後半に差し掛かるにつれて敬語が崩れ始め、最終的には「〜だ」「〜する」といった常体に変わってしまいました。生成が終わった段階で読み返すと、まるで別の人が書き継いだような違和感があり、修正にかなりの時間を要しました。
この現象は、モデルの規模や量子化の方式と深く関わっています。小さなモデルほど、長いコンテキストの中で一貫したレジスターを保ち続けることが難しい傾向があります。8B程度のモデルでは、数千トークンを超える生成を続けると、内部的な自己注意が初期の文脈から離れていき、後半では直前のトークンの影響を強く受けるようになります。結果として、最初に設定した敬語のモードが薄れ、訓練データに多く含まれる常体表現に引き戻されてしまうのです。
量子化も影響を与えます。q4_K_Mのような中程度の量子化では、モデルの重みが圧縮されることで、細かなニュアンスの制御がやや鈍くなります。特に日本語の敬語体系のような、微妙な文法的・文化的差異を維持する能力は、量子化のビット数が下がるにつれて低下します。q2_Kやq3_K_Mに落とすと、日本語の読みやすさ自体が損なわれるのは明白で、敬語の崩壊はその症状の一つにすぎません。
私が実際に体感したのは、Llama 3 8Bのq4_K_Mで数千トークンの文章を生成させた場合です。冒頭は丁寧な「です・ます調」で統一されていたのに、中盤あたりから「〜である」「〜だろう」が混じり、終盤ではほぼ常体になりました。生成速度自体は許容範囲内でしたが、一貫性の欠如が問題でした。これは、モデルが「この文章は敬語で書く」という意図を長距離で保持できなかったことの表れです。
対策はいくつかあります。最も単純なのは、生成する長さを短く抑えることです。数百トークン程度に区切って逐次生成させ、都度口調をリセットする形で指示を出す方法です。もう一つは、推論時の温度パラメータと繰り返しペナルティを調整することです。温度を下げて生成のランダム性を減らし、繰り返しペナルティを強めることで、モデルはより均一なパターンに張り付こうとします。ただし、これらは根本的な解決ではなく、あくまで症状を緩和するに留まります。
私にとって最も確実だったのは、AIの出力を下書きとして受け取り、最終的な口調調整は自分で行うという方法です。特に文末だけは、人間の手で触れる価値があります。AIに任せた一行のコードが、自分の手癖を少しずつ書き換えていくように、AIに任せた文章も、自分の声から遠ざかっていくリスクを常に抱えています。生成AIの便利さに頼りすぎず、「自分の言葉」に戻す意識を持ち続けることが、違和感のない文章を生むために必要です。
最後まで敬語を保てないモデルに、私が求めるのは速度ではなく一貫性です。速く生成されても、途中で別人になってしまう文章には、読む気が削がれてしまいます。ローカルLLMの限界を知った上で、人間が介入すべきポイントを明確に持つ。それが、生成AIと上手に付き合うための最低限の条件だと考えます。