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
0
330
LangGraphを使ったHuman in the loop
機械学習の社会実装勉強会第42回 (
https://machine-learning-workshop.connpass.com/event/341138/
) の発表資料です。
西岡 賢一郎 (Kenichiro Nishioka)
December 28, 2024
Tweet
Share
More Decks by 西岡 賢一郎 (Kenichiro Nishioka)
See All by 西岡 賢一郎 (Kenichiro Nishioka)
AIがAIを拡張する時代へ ~Claude Codeで実現する高品質文書作成~
knishioka
0
70
MLflow × LLM 生成AI時代の実験管理とリスク低減
knishioka
0
89
Conductor: Git Worktreeで実現する並列AIコーディング
knishioka
0
80
ローカルLLMでファインチューニング
knishioka
0
1k
自作MCPサーバ入門
knishioka
0
47
成功と失敗の実像と生成AI時代の展望
knishioka
0
73
MCPが変えるAIとの協働
knishioka
1
220
LangFlowではじめるRAG・マルチエージェントシステム構築
knishioka
0
270
DeepSeekを使ったローカルLLM構築
knishioka
0
240
Other Decks in Technology
See All in Technology
FastAPIの魔法をgRPC/Connect RPCへ
monotaro
PRO
1
690
OCI Network Firewall 概要
oracle4engineer
PRO
1
7.8k
ZOZOのAI活用実践〜社内基盤からサービス応用まで〜
zozotech
PRO
0
150
DataOpsNight#8_Terragruntを用いたスケーラブルなSnowflakeインフラ管理
roki18d
1
320
Pure Goで体験するWasmの未来
askua
1
170
AIAgentの限界を超え、 現場を動かすWorkflowAgentの設計と実践
miyatakoji
0
120
SwiftUIのGeometryReaderとScrollViewを基礎から応用まで学び直す:設計と活用事例
fumiyasac0921
0
130
#普通の文系サラリーマンチャレンジ 自分でアプリ開発と電子工作を続けたら人生が変わった
tatsuya1970
0
930
【新卒研修資料】LLM・生成AI研修 / Large Language Model・Generative AI
brainpadpr
23
16k
Goに育てられ開発者向けセキュリティ事業を立ち上げた僕が今向き合う、AI × セキュリティの最前線 / Go Conference 2025
flatt_security
0
330
KAGのLT会 #8 - 東京リージョンでGAしたAmazon Q in QuickSightを使って、報告用の資料を作ってみた
0air
0
200
What is BigQuery?
aizack_harks
0
130
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
54
3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
The World Runs on Bad Software
bkeepers
PRO
71
11k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
20k
What's in a price? How to price your products and services
michaelherold
246
12k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
2.6k
The Straight Up "How To Draw Better" Workshop
denniskardys
237
140k
Context Engineering - Making Every Token Count
addyosmani
4
170
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
A better future with KSS
kneath
239
17k
The Pragmatic Product Professional
lauravandoore
36
6.9k
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