マガジン

「例を3つ」と頼むと、良い例は何番目に来るか

遊びをつくる

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

一枚の紙の四つの欄に、画面、操作、目的、終わり方を絵で整理する机。
記事のテーマをもとに制作したAI生成の写真風イメージ。

ゲームの企画が行き詰まったとき、AIに「ゲームのアイデアを3つ出してください」と頼む場面を考えてみます。返ってきた3案のうち、多くの人は1番目から読みます。読んでいるうちに「これで十分」と感じれば、2番目と3番目は流し読みになるかもしれません。もし本当に良い案が3番目に置かれやすいのだとしたら、この読み方は良い案を取りこぼす癖になります。逆に1番目が最も強いのなら、先頭を採用する習慣は理にかなっています。 この記事の問いは、「例を3つ」と頼んだとき、最も良い例は何番目に来やすいかです。答えは書きません。使うAI、頼むお題、そして何をもって「良い」とするかによって答えが変わりうる問いなので、自分の環境で測れる実験の設計書として組み立てます。記録するのは3案の並び順と、並び順を伏せて採点した質の関係です。 必要なのは、同じ文面を新しい会話で繰り返し送る手間と、採点の時間です。プログラミングは必須ではありません。採点を手伝う短いHTMLだけ、途中に載せます。

この記事の目次
  1. 「良い」を先に決める
  2. 準備するもの
  3. 手順
  4. 結果の読み方
  5. 起こりやすい誤り
  6. 次の行動

「良い」を先に決める

測定の前に決めておくのは、「良い」の中身です。採点の途中で基準が変わると、並び順の影響と基準のぶれが区別できなくなります。ゲームのアイデアを題材にするなら、基準は次の3点が扱いやすいでしょう。

  • 遊びの核を一文で言えるか
  • 自分一人で作れる範囲に収まるか
  • 他の似たゲームとの違いを説明できるか

採点は、この3点を頭に置いたうえでの総合点を1〜5点で一つ付けるだけにします。軸ごとに点を付けると、記録の手間が増える割に、結果の読み方が複雑になります。基準の3行はメモに書き写し、採点中は常にそれを見えるところに置いてください。

もう一つ、実験の前に仮説を書き残しておきます。「1番目が最も良い」「3番目が最も良い」「どこでも同じ」のどれになりそうか、一行で十分です。結果を見てから「そう思っていた」と感じる後付けを防げます。

準備するもの

次のものを用意します。

  • 同じAIの同じ設定。モデル名と日付を記録します
  • お題を6つほど。ゲームのアイデア、敵キャラクターの名前、ステージの舞台設定、ゲームタイトルの案など、種類をばらけさせます
  • 毎回同じ依頼文。たとえば「〇〇の案を3つ出してください」だけにします。「おすすめ順に」「最も良いものを最初に」といった順序の指示は入れません
  • 並び順を隠して採点するための道具(後述のHTMLか、表計算の乱数列)

回数は、お題ごとに5回を目安にします。6お題×5回×3案で90案になります。この程度なら一度に採点しきれる量です。多ければ多いほどよいわけではなく、採点が雑になるほうが結果を損ないます。

記録シートは次の形にします。採点欄は最初は空にしておきます。

  • 例:敵キャラ名、回:1、位置(1〜3):1、案の文章:(貼り付け)、文字数:、点数(1〜5):
  • 例:敵キャラ名、回:1、位置(1〜3):2、案の文章:(貼り付け)、文字数:、点数(1〜5):

文字数の列は後で効いてきます。長い案ほど高く採点してしまう癖が、位置の効果に紛れ込むのを確かめるためです。

手順

  1. お題を6つ決め、基準の3行と仮説を書き残します。
  2. お題を一つ選び、新しい会話を開いて依頼文を送ります。返ってきた3案を、位置1、2、3のまま記録シートに貼ります。
  3. 会話を閉じ、新しい会話でもう一度同じ文面を送ります。これを5回繰り返します。同じ会話の中で「もう一度」と頼むと、前の回答が影響するため、必ず毎回新規にします。
  4. 6つのお題すべてで2〜3を行い、全部で90案を集めます。
  5. 位置を伏せてシャッフルし、1案ずつ点を付けます。
  6. 採点が終わってから、元の位置に戻して集計します。

5の手順で、位置の情報が見えないことが実験の要です。次のHTMLを保存してブラウザで開くと、シャッフルして一案ずつ表示し、1〜5のボタンで採点できます。textareaには、1行に1案を「回-位置|案の文章」の形式で貼ります。案の文章の中に改行がある場合は、あらかじめ1行にまとめてください。

html
<!doctype html>
<meta charset="utf-8">
<title>ブラインド採点</title>
<textarea id="src" rows="8" cols="60" placeholder="1-1|案の文章"></textarea>
<button id="go">シャッフルして開始</button>
<div id="box"></div>
<pre id="out"></pre>
<script>
const rows = [];
let i = 0;
document.getElementById("go").onclick = () => {
  const lines = document.getElementById("src").value.split("\n").filter(l => l.includes("|"));
  lines.forEach(l => {
    const [id, ...t] = l.split("|");
    rows.push({ id: id.trim(), text: t.join("|"), score: null });
  });
  for (let k = rows.length - 1; k > 0; k--) {
    const j = Math.floor(Math.random() * (k + 1));
    [rows[k], rows[j]] = [rows[j], rows[k]];
  }
  i = 0;
  show();
};
function show() {
  const box = document.getElementById("box");
  if (i >= rows.length) {
    box.textContent = "採点終了";
    document.getElementById("out").textContent =
      "id,score\n" + rows.map(r => r.id + "," + r.score).join("\n");
    return;
  }
  box.innerHTML = "";
  const p = document.createElement("p");
  p.textContent = (i + 1) + "/" + rows.length + "  " + rows[i].text;
  box.appendChild(p);
  for (let s = 1; s <= 5; s++) {
    const b = document.createElement("button");
    b.textContent = s;
    b.onclick = () => { rows[i].score = s; i++; show(); };
    box.appendChild(b);
  }
}
</script>

画面に出るのは案の文章だけで、idは終了後のCSVに出力されます。お題が混ざる場合は、idの先頭にお題の記号を付けておくと、集計が楽になります(例:「A1-1」)。

採点の途中で休憩したくなったら、全体を2回に分けて、それぞれで貼る案を無作為に半分ずつにします。順番に前半・後半と分けると、お題の偏りが入り込みます。

加えて、一部の案(たとえば10案ほど)は、日を改めて同じ方法で再採点します。これは次の節で、採点そのもののぶれ幅を知るために使います。

結果の読み方

集計は二つの見方でします。

一つ目は、位置ごとの平均点です。位置1、2、3それぞれの点数を平均します。

二つ目は、各回の3案のうちで最高点が付いた位置の回数です。同点が複数あるときは、その回を位置の数で按分します(位置1と3が同点の最高なら、それぞれに0.5回)。偶然だけで決まるなら、どの位置も全体の3分の1付近に落ち着くはずです。

読むときの判断基準は、次の順に置きます。

  1. 再採点で出た差を見ます。同じ案に付けた点が、1回目と2回目でどの程度ずれたかが、自分の採点のぶれ幅です。位置による平均点の差がこのぶれ幅より小さければ、その差は読み取らないことにします。
  2. お題ごとに分けて、同じ向きの傾向が出ているかを見ます。6お題のうち一つだけで傾向が出て、他では逆なら、位置の効果というよりお題の性質です。
  3. 文字数との関係を見ます。位置1の案がいつも長く、長い案が高得点なら、効いているのは位置ではなく長さかもしれません。

その上で、結果に応じた次の行動を決めます。

  • 位置1が高い傾向があるなら、先頭を起点に読む習慣は合理的です。ただし、他の位置にも最高点が出た回があったことは忘れないでください。「毎回の最良」ではなく「傾向」です
  • 後ろの位置が高い傾向があるなら、先頭で止めずに最後まで読むと得をします。依頼文に「少なくとも最後まで比較してから選びます」と自分への手順を決めておくと有効です
  • 位置による差がぶれ幅の内側に収まるなら、並び順を気にしても意味が薄いことになります。3案すべてを同じ基準で見比べるだけで十分です

もう一つ、余力があれば、案どうしの似かたも記録します。後ろの案ほど前の案に似ていく傾向があるのか、逆に離れていくのかは、採点とは別に「前の案と核が同じか」を「はい/いいえ」で付けるだけで確かめられます。似た案が続くなら、3案という数の中身は実質1〜2案かもしれません。

起こりやすい誤り

実験の信頼性を損ないやすい点を挙げます。

  • 採点時に位置が見えている。ID列を見ながら採点すると、無意識に「最初だから」と傾きます。HTMLを使うか、別の人に乱数順に並べ替えてもらってください
  • 会話を続けて頼んでしまう。2回目以降は直前の回答を踏まえた案になりやすく、位置の影響とは別物になります
  • 基準が採点中に変わる。最初の数案で厳しく、後半で甘くなるのは典型的です。見かけたら、最初の10案だけ再採点して差を確かめます
  • お題が一種類しかない。敵キャラ名だけで出た傾向を、ゲームのアイデア全般に当てはめることはできません
  • 依頼文に順序の指示が混じる。「ベスト順に」と書けば、並び順の意味が変わってしまいます。また、AIの回答に「おすすめは2番です」などの注記が付いたら、その一文は記録から外して採点してください
  • 3案が互いにほとんど同じ。差が出にくい状況なので、お題を変えるか、依頼文に「異なる方向性で」といった条件を足した別の実験として切り分けます
  • モデルや設定が途中で変わる。記録の日付とモデル名を毎回残し、途中で更新が入ったら、その前後を別集計にします

次の行動

まずは一つのお題だけで、5回分の15案を集めて採点してみてください。傾向が見えなくても、基準の3行を決めて並び順を隠して採点するだけで、自分がどの案を選びがちかに気づく手がかりになります。そこで選んだアイデアを小さな作品にして、アソバースの投稿画面(入力、表示の確認、公開の3段階)に出してみると、案の良し悪しを遊ぶ人の反応で確かめる次の実験につながります。