Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AIのAIによるAIのための出力評価と改善
Search
たまねぎ
June 25, 2025
Technology
3
900
AIのAIによるAIのための出力評価と改善
たまねぎ
June 25, 2025
Tweet
Share
More Decks by たまねぎ
See All by たまねぎ
[FlutterKaigi2024] Effective Form 〜Flutterによる複雑なフォーム開発の実践〜
chocoyama
1
13k
iOSDC2023:聴いて話すiOS 現実世界の「音」との連携
chocoyama
1
400
ハードウェア対応のリアル.pdf
chocoyama
0
120
20分でわかる!速習resultBuilder(iOSDC 2022)
chocoyama
7
3.8k
SwiftUIっぽくした話
chocoyama
1
730
SwiftUIとGraphQLでプロダクトの継続的な破壊に立ち向かう
chocoyama
6
2.7k
Other Decks in Technology
See All in Technology
スピンアウト講座04_ルーティン処理
overflowinc
0
1.3k
タスク管理も1on1も、もう「管理」じゃない - KiroとBedrock AgentCoreで変わった“判断の仕事”
yusukeshimizu
0
110
「活動」は激変する。「ベース」は変わらない ~ 4つの軸で捉える_AI時代ソフトウェア開発マネジメント
sentokun
0
110
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
qa
0
350
Phase03_ドキュメント管理
overflowinc
0
2.7k
How to install a gem
indirect
0
1.7k
JEDAI認定プログラム JEDAI Order 2026 受賞者一覧 / JEDAI Order 2026 Winners
databricksjapan
0
370
Phase12_総括_自走化
overflowinc
0
1.6k
MCPで決済に楽にする
mu7889yoon
0
120
Agent Skill 是什麼?對軟體產業帶來的變化
appleboy
0
240
Phase05_ClaudeCode入門
overflowinc
0
2.3k
SSoT(Single Source of Truth)で「壊して再生」する設計
kawauso
2
370
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
77
5.3k
New Earth Scene 8
popppiees
1
1.8k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
96
Building Applications with DynamoDB
mza
96
7k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
64
52k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
790
Java REST API Framework Comparison - PWX 2021
mraible
34
9.2k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
400
Ethics towards AI in product and experience design
skipperchong
2
240
How to build a perfect <img>
jonoalderson
1
5.3k
My Coaching Mixtape
mlcsv
0
86
Transcript
AIのAIによるAIのための出力評価と改善 AIの出力の質をあげる!チームの集合知を注入する方法
自己紹介 @_chocoyama(たまねぎ) 株式会社LayerX バクラク申請・経費精算チーム Flutterでモバイルアプリ作ってます よく使っているAI Coding Tools Claude Code,
Cursor 最近の悩み 老眼、鼻炎、知覚過敏と顔面周りのおぢ化が急速に進ん でいる © LayerX Inc. 2
「AIの出力の質をあげる!」 そもそも「質が上がった」ということをどう判断していますか?
AIの出力の質が上がったかどうか © LayerX Inc. 「ルールを追加したら、なんかいい感じに動いてそう」 「とりあえずルール見てくれてはいるから、なんかいい感じにやってくれてそう」 4
AIの出力の質が上がったかどうか →「なんかいい感じになってる」を脱しきれない もう少し主観的ではない形で評価したい! ※ 今日話す内容 x 完璧にうまくいっている o 試行錯誤しながら前に進んでいる ©
LayerX Inc. 「ルールを追加したら、なんかいい感じに動いてそう」 「とりあえずルール見てくれてはいるから、なんかいい感じにやってくれてそう」 5
弊チームのAI Codingの状況 © LayerX Inc. 1月ごろからCursor活用開始 ちょうどmdcファイルが使えるようになったぐらいのタイミング 元々活用していたTechDocumentsをそのままルールとしてimport なんとなくプロジェクトの文脈を理解してくれそう!という状態になる 一定レベルを超えない感覚があり、DesignDocやADRを一通りimportしてみるが、まぁまぁ...という感じ
Specっぽいのを入れてみたりしてみるが、良い感じにはならず... 6
改善したい! Tryしてみた
なんとなくの対策1:プロンプトの改善 © LayerX Inc. ルールの改善ではないため、根本的な基盤に対しては何も変化がない 個々の実装者のプロンプト力にも依存しており、再現性がない 8
なんとなくの対策2:ルールの追加や改善 © LayerX Inc. 足りてなさそうなルールの追加 ちゃんとワークしているのかよくわからない 「追加したルール見てくれてるから多分良さそう」から脱しきれない ルール設定のベストプラクティスへの準拠やAIによるルール改善を試す 対応内容によっては、明らかにアウトプット品質が低下 低下しなかったとしても、何が変わったのかイマイチわからない
9
なんとなくの対策3:AI Coding Agentの変更 © LayerX Inc. 「Claude Code使ってるとルールそんなに整備しなくてもいい感じだよ」 ルールの呪縛から逃れられるのであれば、それが一番楽 Cursor,
Cline, Roo Code → Claude Codeに切り替え 確かに良くなった感じがするが、うまくいかないこともまだまだ多い Flutter/Dartは弱い?プロジェクトが複雑すぎる? 10
そもそもルールがワークしてるか 把握できていない
何か対応を入れようとしてみても... その対応を入れたことで、どういった変化が 出るかがいまいち見えない 変わらないならまだしも、出力を悪化させる のは避けたい気持ちも生まれる 積極的にルールいじる動きになれない © LayerX Inc. 12
計測してみよう
どう計測するか LLMのアウトプットってシステマチックに評価できるもの...? © LayerX Inc. x「モデルの性能」自体を評価するような計測 o 実ユースケースに近い、アウトプットされたコードを評価するような計測 実行のたびに大きく結果が変わる 結果はテキストデータになるため、評価はある程度定性的に判断するしかない
14
世のプロダクトはどうやって評価している? © LayerX Inc. LangSmith がそれに近いアプローチをしている ※ LangSmith: LLMアプリケーションを構築するためのプラットフォーム 以下の組み合わせを構成し、LLMのアウトプットを評価
Datasets:評価対象となるもの(何を検証するか) Evaluators:出力を評価する関数(どう採点するか) Human:人が採点 Heuristic:ルールベースで採点 LLM-as-judge:LLMが採点 Pairwise:バージョンを比較して判定 15
エージェントに対する評価の方法 © LayerX Inc. Final Response:最終的なレスポンスだけを評価する ブラックボックス的にテキストレスポンスを評価することになるので、LLM-as-judge Evaluatorが効果的 「時間がかかる」 「内部の動作を評価していない」
「評価指標の定義が難しい」という欠点がある Single Step:エージェントのステップを単独で評価する 高速で実行でき、アプリケーションの失敗箇所を特定しやすい 「エージェントの全体像が把握できない」 「後半ステップのデータセット作成が困難」という欠点がある Trajectory:期待された経路をたどったかどうかを評価する エージェントが取った全てのステップを評価するアプローチ 複数の正しいパスがある場合に評価しづらい 16
今回試した組み合わせ → これを動かすための仕組みを用意した © LayerX Inc. 評価方法:Final Response Datasets:実装コード Evaluators:LLMが主体となり、人が最終チェック
17
構成 © LayerX Inc. Datasets Creator:Datasetsを生成する Evaluator:生成されたDatasetsを評価する 18
構成 © LayerX Inc. 簡単にするために、Datasets CreatorとEvaluatorをプロンプト化 このプロンプトを渡して、Agentに作業を委譲 19
構成 © LayerX Inc. 毎回プロンプト作るのも面倒→プロンプト生成作業もAgentに委譲 「プロンプト生成プロンプト」を用意 「担保したいこと」からDatasets CreatorとEvaluatorを自動生成 20
動作イメージ Claude CodeのCustom Slash Commandでプロンプ ト生成用プロンプトを実行 /create-benchmark で起動 © LayerX
Inc. 21
Datasets Creator 検証対象となるDatasets (実装コード)を生成する ためのタスクを定義したフ ァイル AIにはこれをプロンプトと して渡して、Datasetsを生 成してもらう ©
LayerX Inc. 22
Evaluator 生成されるDatasets(実装コード) をどう評価するか定義したファイル 最終的に、AIにこれを読ませながら成 果物の評価を行ってもらう © LayerX Inc. 23
評価の実行 Datasets Creatorと Evaluatorの内容に問題がな いことを確認 /benchmark で起動 LLMのアウトプットは一定 にはならない 複数回並列実行して総合的に判
断(Claude CodeのTaskツール で実現) © LayerX Inc. 24
結果 © LayerX Inc. 25
できるようになったこと © LayerX Inc. 「なんかよさそう」 「なんかイマイチ」という状態を客観的に評価できるようになった 変更前後の差分を見ることで、対応内容に価値があるかを判断しやすくなった (今後)モデルを変えるだけで、どういった変化が現れるか検証しやすくなった 26
実際に改善できたこと
1. ユビキタス言語の理解 © LayerX Inc. Claude Codeに乗り換えてから、ユビキタス言語の理解が足りてない気がする → ドメイン用語の理解度チェックのベンチマークを追加 28
1. ユビキタス言語の理解 © LayerX Inc. CLAUDE.mdにユビキタス言語の情報を追加 29
2. 定型的な実装の安定化 © LayerX Inc. すでに存在する実装パターンがあるが踏襲してくれない 30
2. 定型的な実装の安定化 © LayerX Inc. 実装の手順を記述したPlaybookを追加し、 CLAUDE.md にそのindex情報を追加 (コンテキストサイズを抑えるためimportまではしない) 31
課題 © LayerX Inc. 実行時間が長い コスト面を考えるとCIに載せられない try & errorも時間がないとできない(git worktreeなど活用して裏で回しておくことはできるが...)
これを実行する習慣は中々つかない 今回実験的にやってみているが、普段積極的にやるかと言うとやらない気がする... ここまで仕組み化はせず、プロジェクトで何個か挙動を確認するためのスニペットを持っておくぐらいでも十分 かも あくまでベンチマーク 実際の実装時に100%期待結果が出るとは限らない ある程度、個々のプロンプトにも左右される (が、近い将来"プロンプト力"のようなものは重要じゃなくなってくるかもしれない) 32
今後、より意味のあるものにするには 継続的に色々試していくぞ! © LayerX Inc. ベンチマークの作成と起動をオートにする 「うまくいかなかったこと」を溜めておく → これをトリガーに自律的に改善を回せたら良いかもしれない AIからの自動提案などと組み合わせる
それらの改善提案を適用すると、「Before/Afterでこうなるよ」を合わせて示す → 取り込むモチベーションになる 33
None
© LayerX Inc. 35