プロンプトは日本語と英語どちらが効果的か
深夜にバグを直していて途中でふと思い出したのだが、この問題もよく聞かれる。プロンプトは結局のところ日本語で書くべきか、英語で書くべきか。答えは「どのプログラミング言語がいいか」という問いと同じで――どの環境で動かすかによるのであって、言語そのものの優劣の話ではない。
モデルごとに話す、一律には決められない
Nano Banana、Seedreamのようなモデル。
このどちらも日本語の意味理解は悪くない。特にSeedreamは学習データの中で中国語のコンテンツの比率が高いが、この考え方は日本語にも通じるところがある。「夕方の路地裏、猫が塀の上にうずくまっている」と書けば、「路地裏」や「塀の上」のような文化的な文脈を含む言葉も正確に理解してくれる。英語に翻訳するとかえって細部が失われることがある。英語にはそもそも一対一で対応する単語が存在しないからだ。この種のモデルは、日本語をそのまま書けばよく、遠回りする必要はない。
Midjourney。
これは逆だ。MJの学習データとパラメータのエコシステムは、英語のプロンプトに関するコミュニティの経験の蓄積が一番多い。スタイルの単語、レンズの単語、光の単語は、ほぼすべて英語の専門用語体系だ(cinematic lighting、bokehなど)。これを無理に日本語に翻訳して与えると、モデルはおおよその意味は理解できるが、多くの慣習的なスタイルの描写語は、日本語版に対応する言葉がないか、あっても効果が落ちてしまう。このタイプのプラットフォームでは、なるべく英語を使うほうがよく、特にスタイルとパラメータの部分はそうだ。
Flux。
MJと似たロジックで、学習データが英語寄りのため、英語のプロンプトのほうが応答が安定している。
GPTの画像生成のようなモデル。
自然言語理解の路線を取るモデルは、日本語と英語の差がそれほど大きくない。もともと言語モデルの出自を持っているため、理解能力がより均等だからだ。この種のモデルは自分が書きやすい言語で書けばよく、悩む必要はない。
自分が実際にはまった落とし穴
以前、とても文学的な日本語の描写を無理に英語に翻訳して、日本語に強いモデルに与えたことがあったが、出来上がった画像はまったく雰囲気が違うものになってしまった――翻訳という工程自体がすでに一度の情報の欠落を伴うものであり、特に情感を含んだ形容詞は、日本語から英語への翻訳がほぼ意味を書き直すのと同じことになってしまう。あとになって気づいたのは、プロンプトの言語選びを間違えたのではなく、余計な手間として翻訳を一段挟んでしまったこと自体が、自分でノイズを一層加えたのと同じだったということだ。
つまりこういうことだ――対象のモデルが得意な言語で直接書けるなら、別の言語で考えてから翻訳するようなことはしないほうがいい。この翻訳の工程はほぼプラスの利益を生まない。
併用のテクニック、両方を活かす
あるモデルの言語の好みがはっきりしない場合、折衷案がある。主体と場面の描写は自分が一番自然に書ける言語で書く(通常は日本語がいい。描写の細部をより正確に伝えられるからだ)。スタイルと技術用語は英語で書く(cinematic、bokeh、film grainといった国際的に通用する写真用語は、日本語に訳すとかえって意味が失われる)。
人物写真系の描写を例に挙げると、「香雲紗のチャイナドレスを着た女性が籐の椅子に座っている、cinematic lighting、shallow depth of field」――主体のディテールは日本語で正確に、スタイルの単語は英語で本場らしく書くことで、両方とも損をしない。
ECの場面はむしろ判断しやすい
EC商品系の描写は、日本語でも英語でも、モデルは「純白背景」「商品を中央配置」「影なし」といった構造化された指示への理解がかなり安定している。この種の場面はもともと言語選びの影響が小さいので、悩む必要はなく、タイピングが速いほうを選べばいい。
一言ではまとめきれないので、二言にする
言語を選ぶという行為は、本質的には「モデルの学習データにより近いルート」を選ぶことだ。中国系のモデルは中国語に近く、国際的なモデルは英語に近く、自然言語モデルはどちらにも近い。本当に判断がつかないなら、プロンプトツールで両方試してみればいい。5分で済むことだし、30分悩むよりずっと価値がある。バグを直すのと同じで、推測するより一度実行してログを見るほうがいい。
