マガジン

AIに英語で指示すると何が変わるのか:同じ依頼を日本語と英語で比べる記録の取り方

遊びを見つける

執筆にClaudeを使用しています。

色鉛筆の線やゲームのスケッチが描かれたノートとカード。
記事のテーマをもとに制作したAI生成イメージ。実際のゲーム画面ではありません。

「英語で指示したほうがAIの出来がいい」という話はよく聞きます。一方で「日本語で十分」という声もあります。どちらも断言できるほどの根拠は、手元の感覚だけでは作れません。差があるように見えても、その日の出力のばらつきなのか、指示の言語によるものなのかは区別がつかないからです。 この記事は、その区別をつけるための実験の設計書です。小さなブラウザゲームを同じ内容で日本語と英語の両方で依頼し、結果を同じ物差しで記録します。結果そのものは書きません。使うAIやそのときの状態で変わるため、読者が自分の環境で記録を取って初めて意味を持つ数字になります。 必要なのは、チャット形式のAIと、生成されたHTMLをブラウザで開ける環境、それにメモを取る場所です。所要時間は、6回分の依頼と採点で1時間前後を見込んでください。

この記事の目次
  1. 何を確かめるのか
  2. 準備:条件を揃える
  3. 手順:1回分の流れ
  4. 記録と集計:1行1回のCSVにする
  5. 結果の読み方と、起こりやすい誤り
  6. 次の行動

何を確かめるのか

問いは一つに絞ります。同じ意味の仕様を、日本語で渡した場合と英語で渡した場合で、最初の出力の質と、直すまでの手間は変わるか、です。

「質」はあいまいなので、次の5項目に分けて数えます。

  • 動いたか(動けば1、動かなければ0)
  • 生成されたHTML全体の行数
  • AIから返ってきた確認質問の数
  • 仕様を満たすまでに必要だった追加の修正依頼の回数
  • 初回の出力で満たされていなかった仕様項目の数

行数は優劣の判定には使いません。長い・短いの傾向を知るための参考値です。

もう一つ決めておくことがあります。比べたいのは指示の言語であって、画面に出る文字の言語ではありません。英語で頼むと画面の文言まで英語になる可能性があるため、画面の文言は「日本語」と仕様に明記して固定します。

準備:条件を揃える

実験の価値は、条件をどれだけ揃えられるかで決まります。次の4点を先に決めておきます。

  1. 仕様を先に日本語で6項目に書き出す。 英語版は翻訳ソフトにまとめて通さず、項目ごとに意味が対応するよう自分で書きます。
  2. 会話は毎回新しく始める。 前の会話が残っていると、前回の出力が影響します。記憶機能があるツールでは、その機能をオフにします。
  3. 順番を交互にする。 日本語→英語→日本語…と固定すると、時間帯や慣れの影響が片方に偏ります。1回目は日本語から、2回目は英語から、と入れ替えてください。
  4. 各言語3回ずつ、合計6回行う。 1回ずつでは、ばらつきと差を区別できません。

使う仕様は次の6項目です。

日本語版

  1. 5×5のマス目を表示してください。
  2. マスをクリックするたびに、灰色→青→赤→灰色の順で色が変わるようにしてください。
  3. 画面の上部にクリック数を表示してください。
  4. 「リセット」ボタンで、全マスを灰色に戻し、クリック数を0にしてください。
  5. 外部ライブラリを使わず、1つのHTMLファイルで作ってください。
  6. 画面に表示する文言はすべて日本語にしてください。

英語版

  1. Show a 5x5 grid.
  2. Each click on a cell should cycle its color: gray, then blue, then red, then back to gray.
  3. Show a click counter at the top of the screen.
  4. A Reset button should turn every cell gray and set the counter to 0.
  5. Use a single HTML file with no external libraries.
  6. All on-screen text must be in Japanese.

冒頭には「次の仕様でブラウザゲームのHTMLを作ってください」にあたる一文を、それぞれの言語で付けます。英語版は "Please create the HTML for a browser game with the following spec." です。

AIから確認質問が返ってきた場合の返答も、固定文にしておきます。日本語は「仕様の範囲で、あなたの判断で進めてください。」、英語は "Please proceed using your own judgment within the spec." です。その場で言い回しを変えると、条件が揃わなくなります。

手順:1回分の流れ

1回ごとに、次の順で進めます。

  1. 新しい会話を開きます。
  2. 日本語版または英語版の仕様を、一度に貼り付けて送ります。
  3. 質問が返ってきたら、固定文で返し、質問の数を数えます。
  4. 出てきたHTMLを全文コピーし、game.html などの名前で保存してブラウザで開きます。この時点の出力を「初回出力」と呼びます。
  5. 初回出力の行数を、エディタの行番号で確認して記録します。
  6. 初回出力について、仕様の6項目を1つずつ操作して確かめます。たとえばマスを3回クリックして灰→青→赤→灰になるか、リセットでクリック数が0に戻るか、といった具合です。満たさない項目の数を数えます。
  7. 初回出力が動かない、または満たさない項目がある場合は、「○○が仕様どおりになっていません。直してください」と一言だけ伝えて修正を依頼します。何がどう違うかを細かく説明し始めると、修正の手間が指示言語の差ではなく説明の上手さの差になります。
  8. 仕様をすべて満たすまで繰り返し、依頼した回数を記録します。上限は3回とし、3回で満たさなければそこで打ち切ります。

修正依頼の言語は、その回の指示言語に合わせます。英語の回は "The reset button does not work as specified. Please fix it." のように短く返します。

動いたかどうかは、初回出力で判定します。ブラウザで開いて画面が出て、クリックに反応すれば1、白紙やエラーで何も操作できなければ0です。

記録と集計:1行1回のCSVにする

記録は、1回につき1行のCSVにします。列は次のとおりです。

lang,run,works,lines,questions,fixes,missing

lang は ja か en、run は1〜3、works は初回出力が動けば1、動かなければ0、lines は初回出力の行数、questions は確認質問の数、fixes は追加の修正依頼の回数、missing は初回出力で満たさなかった仕様項目の数(0〜6)です。

6行たまったら、次の最小HTMLに貼り付けて平均を出せます。テキストエリア内の例の2行は消して、自分の記録に置き換えてください。

html
<textarea id="t" rows="8" cols="50">lang,run,works,lines,questions,fixes,missing
ja,1,1,40,0,0,0
en,1,1,40,0,0,0</textarea>
<button onclick="go()">集計</button>
<pre id="o"></pre>
<script>
function go(){
  const rows=document.getElementById('t').value.trim().split('\n').slice(1).map(r=>r.split(','));
  const g={};
  for(const r of rows){
    const k=r[0];
    g[k]=g[k]||{n:0,s:[0,0,0,0,0]};
    g[k].n++;
    for(let i=0;i<5;i++) g[k].s[i]+=Number(r[2+i]);
  }
  const names=['動いた率','行数','質問','修正','不足'];
  let out='';
  for(const k in g){
    out+=k+'('+g[k].n+'回)\n';
    g[k].s.forEach((v,i)=>{out+='  '+names[i]+': '+(v/g[k].n).toFixed(2)+'\n';});
  }
  document.getElementById('o').textContent=out;
}
</script>

保存して .html として開けば、そのまま動きます。外部への通信はありません。平均だけでなく、元の6行も並べて見てください。3回のうち1回だけ極端に外れた値があると、平均がその1回に引っ張られるからです。

結果の読み方と、起こりやすい誤り

集計が済んだら、次の基準で読みます。

  • 両言語でほぼ同じ数字が並ぶ場合。 この仕様の規模では、指示の言語は大きな要因ではなかったと読めます。「どちらでもよい」が答えです。
  • 片方だけ、不足の数や修正回数が一貫して多い場合。 3回とも同じ向きにずれているなら、差の可能性があります。ただし3回では断定できないので、各言語を5回程度まで増やして同じ向きが続くか確かめてください。
  • 1回だけ極端な値がある場合。 ばらつきの可能性が高いです。その1回の出力を読み返し、仕様の読み違いなのか、単なる実装の癖なのかを見分けます。
  • 行数だけが違う場合。 優劣ではなく書き方の傾向です。見た目の整え方やコメントの量が違うだけかもしれません。

この結果は「この6項目の仕様、このAI、この時期」についてのものです。もっと複雑な仕様や別のAIには、そのまま当てはまりません。

次の誤りは、結果を歪めやすいので気をつけてください。

  • 英語版の仕様を後から言い換える。 日本語版にない条件を英語版にだけ足すと、比較になりません。6項目は固定です。
  • 翻訳ソフトの出力をそのまま使う。 項目の意味がずれていないか、自分の目で確認します。たとえば「cycle」を「循環させる」と直訳したまま使うと、日本語版と意味が合わなくなることがあります。
  • 採点の基準を途中で変える。 「赤」と言われて少し暗い赤が出たら合格にするか、先に決めておきます。
  • 画面の文言の言語を採点に混ぜる。 仕様6を満たさなかった場合は missing に数えますが、それ以外の項目の判定には影響させません。
  • 良さそうな出力だけ残す。 失敗した回も含め、6回分すべてを記録します。

次の行動

まず日本語版と英語版の6項目を手元に書き写し、1回目の依頼から始めてください。6行そろったら、集計ページに貼り付けて、平均より先に「6行を並べて見たときの印象」を一言書き残しておくと、あとで読み返す手がかりになります。

仕様を満たすHTMLができたら、アソバースへの投稿も試せます。直下の index.html として20MiB以内でアップロードでき、公開にはメールアドレスの確認が必要です。投稿画面の「紹介文と遊び方を作成」は、選択した言語で下書きを作ります。日本語と英語で下書きを作り、「この文章を使う」を押す前に読み比べると、ここでも指示言語の違いを観察できます。