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
LangGraphを使ったHuman in the loop
Search
西岡 賢一郎 (Kenichiro Nishioka)
December 28, 2024
Technology
470
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LangGraphを使ったHuman in the loop
機械学習の社会実装勉強会第42回 (
https://machine-learning-workshop.connpass.com/event/341138/
) の発表資料です。
西岡 賢一郎 (Kenichiro Nishioka)
December 28, 2024
More Decks by 西岡 賢一郎 (Kenichiro Nishioka)
See All by 西岡 賢一郎 (Kenichiro Nishioka)
AIエージェントを雇う前に決める5つのこと
knishioka
1
160
顧客に説明できる、 安全なAIの使い方 - 会計士・税理士向けAI活用勉強会 第2回
knishioka
0
110
ローカルLLM、実際どこまで使えるか
knishioka
0
54
会計士・税理士向け AI活用勉強会第1回
knishioka
0
110
権限は渡さない、操作だけ切り出す ― 自前MCPサーバー実践入門
knishioka
0
100
AIガバナンス実践 - 生成AIコネクタのデータ漏洩リスクと実務対策
knishioka
0
280
データサイエンスの現場から学ぶ 成功と失敗の実像と生成AI時代の展望
knishioka
0
110
ハーネスエンジニアリング入門
knishioka
0
780
OpenClawでPM業務を自動化
knishioka
2
700
Other Decks in Technology
See All in Technology
Bet AI Day 2026丨Agentは、「金融」という巨大産業の何を変えられるのか
layerx
PRO
0
950
From Vanilla Kubernetes to a Batteries-Included Platform: Developer Experience at 1,300+ Clusters
yosshi_
0
550
PM領域でのAI Agentの活用
lycorptech_jp
PRO
0
270
Self Healing Rollouts: Automating Production Fixes with Agentic AI
kdubois
0
150
Bet AI Day 2026丨Production-Ready AI Agents — エンタープライズの実務を任せるための設計と運用
layerx
PRO
3
2.3k
Microsoft 365 Copilot chat -tekoälypalvelun tietosuojaongelmat
hponka
0
330
Beyond the Hype: Practical AI for Your Oracle Database with MCP
thatjeffsmith
1
270
enechainの内製セルフサービスプラットフォーム
hiyosi
0
110
生成AI時代の クレデンシャルとパーミッション設計
nrinetcom
PRO
3
1.5k
設計の世代交代を乗り越える、14年続くAndroidアプリの開発戦略
sansantech
PRO
1
140
推論の観測、できていますか? 〜 Google Cloud Gemini Enterprise Agent Platformで 3つの Gemini モデルを実測して踏んだ、評価の罠 〜
shukob
PRO
0
150
Webとヘルスデータ
yukukotani
0
190
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
400
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Building Adaptive Systems
keathley
44
3.2k
The SEO Collaboration Effect
kristinabergwall1
1
550
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.9k
A Soul's Torment
seathinner
7
3.5k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
230
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
440
Transcript
LangGraphを使ったHuman in the loop 機械学習の社会実装勉強会 第42回 (2024/12/28) 1
自己紹介 名前: 西岡 賢一郎 X: @ken_nishi LinkedIn: https://www.linkedin.com/in/kenichiro-nishioka/ Facebook: https://www.facebook.com/kenichiro.nishioka
note: https://note.com/kenichiro YouTube: https://www.youtube.com/@kenichiro-nishioka 経歴 東京大学で位置予測アルゴリズムを研究し博士 (学術) を取得 東京大学の博士課程在学中にデータサイエンスをもとにしたサービスを提供する株式会社トライディアを 設立 トライディアを別のIT会社に売却し、CTOとして3年半務め、2021年10月末にCTOを退職 株式会社データインフォームド (CEO)・株式会社ディースタッツ (CTO)・CDPのスタートアップ (Sr. CSM) 自社および他社のプロダクト開発チーム・データサイエンスチームの立ち上げ経験 2
本日のアジェンダ 1. 概要 LLMアプリケーションにおけるHITLの意義 主要なデザインパターンとユースケース interrupt機能による実装方法 2. 期待される効果 LLM出力の品質向上 柔軟な制御フローの実現
開発効率の向上 3
Human in the loopの基本概念 なぜHITLが必要か LLMの出力における不確実性への対応 重要な判断における人間の介入 プロセスの信頼性確保 主要なアクション 承認/却下(Approve/Reject)
State編集(Edit State) 入力要求(Get Input) 4
Human in the loopの例 5
デザインパターン1: Approve/Reject Pattern 目的: クリティカルな操作前の確認 特徴: プロセスの一時停止 承認/却下に基づくルーティング 代替アクションの実行 ユースケース:
API呼び出し、重要な決定 6
デザインパターン2: Edit State Pattern 目的: Stateの確認と修正 特徴: 現在のStateの提示 編集可能な形式での表示 変更の反映と検証
ユースケース: 生成内容の修正、パラメータ調整 生成された回答をLLMに評価させ修正する 7
デザインパターン3: Get Input Pattern 目的: 明示的な入力の収集 特徴: 特定ステップでの入力要求 マルチターン対話のサポート コンテキストの拡充
ユースケース: 情報収集、意図の明確化 8
Human in the loopを実現するLangGraphの機能 interrupt: Graphの処理を一時停止 Command: Stateの更新, 処理再開, フロー制御
9
interrupt機能の基本 目的と役割 プロセスを一時停止して人間の介入を可能にする 現在のStateをクライアントに提示 人間からの入力を受け取って処理を再開 動作の仕組み ノード内でinterrupt()を呼び出し GraphInterrupt例外が発生してプロセスが停止 Stateが保存され、クライアントに通知 人間からの入力後、同じノードから処理を再開
10
Command機能の詳細 State更新(update)の使い方 人間からの入力でStateを更新 例:生成テキストの編集内容を反映, 承認情報の追加 処理再開(resume)の制御 interrupt後の再開値の指定 例:承認/却下の判断結果, 編集された内容 フロー制御(goto)のパターン
単純な遷移, 条件付き遷移, 複数ステップの指定 11
実装時の重要ポイント 1. State管理の考慮事項 チェックポインターの必要性: Stateの保存と復元に必須, セッション管理との連携 再実行時の考慮: 同じノードが複数回実行される可能性, べき等性の確保 2.
複数のinterruptの取り扱い 順序管理の重要性: 実行順序に基づく対応付け, スコープの理解 エラー処理: タイムアウトの設定, 例外時の代替フロー 3. ユーザビリティの考慮 適切なタイミングでの介入, 必要な情報の提示, 分かりやすい選択肢の提供 12
まとめ1 デザインパターンと実装戦略 Approve/Reject Pattern ユースケース:API実行承認、重要な更新の確認、リスク判断 -実装のポイント:明確な判断基準の設定、代替フローの準備 Edit State Pattern ユースケース:LLM出力の修正、パラメータ調整、データの補完
実装のポイント:Stateの永続化、変更履歴の管理 Get Input Pattern ユースケース:追加情報の収集、意図の明確化、選択肢の提示 実装のポイント:適切なプロンプト設計、タイムアウト管理 13
まとめ2 コア機能の活用ポイント interrupt機能: チェックポインターの設定、状態管理の設計、エラー処理戦略 Command機能: 状態更新の管理、フロー制御の最適化、再開ロジックの実装 実装のベストプラクティス 小規模なプロトタイプからの段階的な機能追加 明確な介入ポイントと判断基準の設定 エラー処理とリカバリー戦略の確立
ユーザビリティとパフォーマンスの最適化 14
お問い合わせ お仕事の依頼・機械学習・LLMの実装のご相談は、X, LinkedIn, Facebookなどで DMをください 機械学習を社会実装する仲間も募集中!! 15