Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
LLMで構造化出力の成功率をグンと上げる方法
Search
Keisuke Takiguchi
August 05, 2025
Technology
3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LLMで構造化出力の成功率をグンと上げる方法
DeNA x AI Talks #1 登壇資料
Keisuke Takiguchi
August 05, 2025
Other Decks in Technology
See All in Technology
30座EKS, 180次升級淬煉的EKS Upgrade Skill 的歷程
eric8230
0
180
空間オーディオで過去の 自分(ゴースト)と競うランニング 〜HealthKitのルートを足音に変える実装〜
nao_randd
0
240
【技術的負債conf】事業成長に伴う技術的負債の説明責任とAIによるモニタリング、認知的負債について
i35_267
3
1.8k
リアーキテクチャ後の障害ゼロを目指したShadow Testingの取り組み
nihonbuson
PRO
1
160
「守り」で活用するオンデバイスLLM 〜写ってはいけないを総力戦で防ぐ〜 / iOSDC Japan 2026
nakamuuu
0
170
積み重なった技術負債への挑戦 〜初手としての全社ゴト化〜
techtekt
PRO
0
1.3k
SREの視点で考えるSIEM活用術 〜AWS環境でのセキュリティ強化〜
cscengineer
PRO
0
110
AIを活用するために決めた "やらないこと" - 価値に注目する / Not betting on AI
soudai
PRO
3
550
SREへの勘違いに気づいた後の話
tomodakengo
0
110
なぜ「決定性」が 決定的に重要なのか? Durable Execution 基盤の数理的理解 #serverlessjp / ServerlessDays Tokyo 2026
ytaka23
3
710
ユーザー価値を届け続けるためにウォンテッドリーが大切にしている文化
kotaminato
0
180
The Knowledge Spine: A Machine-Executable Ontology for Governed Marketing Activation
vananth22
0
110
Featured
See All Featured
The Language of Interfaces
destraynor
162
27k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
690
Building AI with AI
inesmontani
PRO
1
1.2k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
760
Thoughts on Productivity
jonyablonski
76
5.4k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
520
Music & Morning Musume
bryan
48
7.4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
The Spectacular Lies of Maps
axbom
PRO
1
1k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Transcript
© DeNA Co., Ltd. 1 LLMで構造化出力の成功率を グンと上げる方法 IT本部AI・データ戦略統括部AI技術開発部AIイノベーショングループ 滝口 啓介
2025年 8月 5日
© DeNA Co., Ltd. 2 自己紹介 2020:DeNA 新卒入社 → 音声チームで研究開発
• 音声合成 / 音声変換の研究開発 • 七声ニーナPJ 2022:エアフレンド株式会社 • LINEのチャットアプリ → iOS / Android向けアプリへ移行 • 音声AI開発エンジニアとして、 TTS / 音声認識モデルの学習、 データ収集、インフラ(AWS)運用、バックエンド保守など 2024/2:DeNA 中途 • アニメ×AI PJ 、エンタメ系 PJに参画 • 現在はイノベーション事業本部にて新規プロダクト開発中 大学 • 学士:慶應義塾大学 理工学部 情報工学科 ◦ 粒子系リアルタイムシミュレーション / CGとか色々 • 修士:慶應義塾大学院 理工学研究科 開放環境科学科 ◦ 深層(階層)強化学習 / HAI 趣味 • ギター / シーシャ / VR / VTuber 滝口 啓介 IT本部AI・データ戦略統括部 AI技術開発部 AIイノベーショングループ
© DeNA Co., Ltd. 3 構造化出力、使ってますか...? 失敗しやすい構造化出力、成功率をあげるには? 実際に試してみた 目次
© DeNA Co., Ltd. 4 構造化出力、使ってますか...? LLM(大規模言語モデル)を活用したプロダクト開発の需要が高まっていますね!! LLMをプロダクトへ組み込む際、その出力を「構造化出力」として扱うことが多いかと思います なぜ構造化出力が重要か? •
出力の一貫性 : 出力要素を定義することで、生成される値の一貫性を担保 • 型安全性 : 期待するデータ型(数値、文字列、ブーリアンなど)を保証 • データ処理のしやすさ : 抽出した情報を容易に解析・処理が行いやすい 構造化出力で直面しがちな課題 一方で構造化出力は生成に失敗することも多く、以下のような課題も存在します。 • 複雑な構造 : データモデルが入れ子構造だったりで複雑化すると、出力が崩れやすくなる • 温度設定 : 出力の多様性を高めるため温度パラメータを高く設定する場合、同様に崩れやすい
© DeNA Co., Ltd. 5 失敗しやすい構造化出力、成功率をあげるには? 1. 明確で具体的なプロンプト設計 2. 少数例(
Few-shot prompting)の提供 3. モデルの選択と設定 4. 構造化出力に特化した LLM推論ライブラリを使用( 今日一番伝えたいところ! )
© DeNA Co., Ltd. 6 明確で具体的なプロンプト設計 LLMはプロンプトの内容に厳密に従おうとするため、これが最も重要。 • 出力形式を明示 ◦
JSON、XML、YAML、CSVなど、どのような形式で出力してほしいかを明確に指定 ◦ 可能であれば、具体的なスキーマや例も記載 • データ型の指定 ◦ 数値、文字列、booleanなど、各フィールドのデータ型を明確に指定 • 列挙型の指定 ◦ 特定の値のセットから選択させる場合は、そのセットを明示 ◦ 例: "status"は'pending', 'approved', 'rejected'のいずれかにしてください。 • 禁止事項を明記 ◦ 余計な説明や前置き、後書きを含めないよう指示します。 ◦ 例: JSONオブジェクトのみを出力し、それ以外のテキストは一切含めないでください。
© DeNA Co., Ltd. 7 少数例の提供(Few-shot prompting) プロンプトだけでは伝わりにくいニュアンスや複雑な構造がある場合、具体的な入出力例をいくつか示すことで 生成の品質や構造化出力の成功率が上がる可能性がある
© DeNA Co., Ltd. 8 モデルの選択と設定 構造化出力に強いモデルの利用 • モデルごとに構造化出力に対して強い /
弱いモデルがあり、適切なモデルを選択すると良い • 例: gemini-2.0-flash は比較的構造化出力に強いが、 gemini-flash-2.5-lite は成功率が落ちる、など 温度(Temperature)の設定 : • 低い温度(例 : 0.0〜0.3): 出力の多様性を抑え、より決定論的で予測可能な出力を生成させる際には温 度を低く設定、構造化出力時は温度を低く設定する方が良い • 高い温度 : 出力の多様性が上がるため、よりランダムな生成結果が欲しい場合に向いていますが、構造 化出力には不向きです max_tokensの設定 • 想定する構造定義のサイズに対して、適切な max_tokensを設定 構造化出力を途中で切れないように、十分な長さを確保
© DeNA Co., Ltd. 9 構造化出力に特化したLLM推論ライブラリ とはいえ、 ・温度パラメータ高い状態でも構造化出力使いたい! ・軽量なモデル(gemini-2.5-flash-liteやOllamaで動かす軽量ローカルモデル)でも構造化出力したい! と思うこともあると思います(僕は思いました
😌) そこで、Outlines [https://github.com/dottxt-ai/outlines] の出番です! 構造化出力の「確実性」を追求するライブラリ • LLMからの出力を、特定のフォーマット( JSON, XML, YAMLなど)やスキーマに厳密に従わせるための Pythonライブラリ • LLMで普通に構造化出力を行う場合、前述の通り、指定したフォーマットから逸脱したり、無関係なテキス トが混入したりするという課題があったが • Outlinesは、「構造化出力の失敗」という共通の課題 を解決するために設計された
© DeNA Co., Ltd. 10 Outlinesの仕組み 文法誘導型生成 (Grammar-Guided Generation): LLMがトークンを生成する際に、事前に定義された文法(正規表現、
JSON Schemaなど)に合致するトークン のみを選択肢として提示することで、 LLMが常に指定された形式に沿った出力を生成 主要な特徴 : • 高精度: 期待通りの構造化出力を(ほぼ) 100%の精度で実現 • シンプルさ : 非常にシンプルな実装で、既存の LLMコードに容易に統合可能 • 多様なモデル対応 : OpenAI、Hugging Face、Local LLMなど、様々なLLMバックエンドをサポート • 文法定義 : ◦ 正規表現 (Regex): 特定のパターンにマッチする文字列を生成 ◦ JSON Schema: JSON構造、データ型、制約を厳密に定義、それに従った JSONを生成 ◦ Pydanticモデルによる型定義 : PythonのPydanticモデルを直接スキーマとして利用可能
© DeNA Co., Ltd. 11 Outlines 実装例
© DeNA Co., Ltd. 12 ということで 実際にOutlinesを使ってみたので、その実験内容と結果をまとめました
© DeNA Co., Ltd. 13 概要 タスク例:天気情報集約 ・入力プロンプト "東京の明日の詳細な天気分析を作成してください。気温は 25度、湿度は60%、風速は3m/s、曇りのち晴れの予想で、
大気圧1013hPa、紫外線指数中程度、花粉情報も含めてく ださい。" ・出力の失敗例 中身が空のjsonが吐き出される ・期待する出力の成功例
© DeNA Co., Ltd. 14 全体の結果 出力が None になったり、 定義した構造化出力に
合わない出力が生成される エラーが発生 構造化出力は成功するが、 中身のデータが空になる ようなエラーが発生(↓)
© DeNA Co., Ltd. 15 個々のタスクの結果 ・入力プロンプト "ユーザー田中太郎( 30歳、エンジニア)の詳細プロフィールを作成してください。好みはプ ログラミング、読書、旅行で、設定はダークモード有効、通知
ON、言語設定は日本語、メ タデータにはアカウント作成日 2023-01-15、最終ログイン2024-01-20、アクティビティス コア85.5、タグは['技術者', '読書家', '旅行者']を含めてください。", ・出力の成功例 ・出力の失敗例 中身が空のjsonが吐き出される
© DeNA Co., Ltd. 16 (再掲)天気情報集約タスクの結果 タスク例:天気情報集約 ・入力プロンプト "東京の明日の詳細な天気分析を作成してください。気温は 25度、湿度は60%、風速は3m/s、曇りのち晴れの予想で、
大気圧1013hPa、紫外線指数中程度、花粉情報も含めてく ださい。" ・出力の失敗例 中身が空のjsonが吐き出される ・出力の成功例
© DeNA Co., Ltd. 17 サマリー