Vol.042025年6月25日
AI

評価 (evaluation) を test として書く

プロンプトを改善する作業を「気分」で続けると 1 週間で迷う。RSpec のように、判定可能な eval suite を最初に書く。

SoSoraEndo2025年6月25日2 min196

なぜ眠れなくなるか

プロンプトを変えるたびに、結果が「前より良い」か「前より悪い」かを判定できないから。これは RSpec を書かずにアプリを直し続けるのと同じ。

eval suite を書く

# spec/evaluations/summarizer_spec.rb
describe 'summarizer prompt v3' do
  cases = YAML.load_file('eval_cases.yml')
  cases.each do |c|
    it "produces <= 200 chars for: #{c['name']}" do
      result = ClaudeClient.summarize(c['input'])
      expect(result.length).to be <= 200
      expect(result).to include(c['must_contain'])
    end
  end
end

評価軸の選び方

  • 長さ — 文字数 / トークン数の上下限
  • 必須要素 — 含まれるべき固有名詞・数値
  • 形式 — JSON 構造 / 列の数
  • 回避 — 含まれてはいけない語彙

これらすべてを「人間判定」ではなく「機械判定」で書ける形にする。

まとめ

評価が test なら、プロンプト改善は green/red を見ながら進められる。「気分で続ける改善」から卒業できます。

Tags

Reaction

Share

X (Twitter)