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
290
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)
ローカルLLMでファインチューニング
knishioka
0
160
自作MCPサーバ入門
knishioka
0
11
成功と失敗の実像と生成AI時代の展望
knishioka
0
48
MCPが変えるAIとの協働
knishioka
1
180
LangFlowではじめるRAG・マルチエージェントシステム構築
knishioka
0
150
DeepSeekを使ったローカルLLM構築
knishioka
0
190
業務ツールをAIエージェントとつなぐ - Composio
knishioka
1
230
AIシステムの品質と成功率を向上させるReflection
knishioka
0
54
LangGraph Templatesによる効率的なワークフロー構築
knishioka
0
190
Other Decks in Technology
See All in Technology
Tech-Verse 2025 Keynote
lycorptech_jp
PRO
0
1.2k
AIの最新技術&テーマをつまんで紹介&フリートークするシリーズ #1 量子機械学習の入門
tkhresk
0
140
ひとり情シスなCTOがLLMと始めるオペレーション最適化 / CTO's LLM-Powered Ops
yamitzky
0
460
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
26k
AI導入の理想と現実~コストと浸透〜
oprstchn
0
140
生成AI時代 文字コードを学ぶ意義を見出せるか?
hrsued
1
680
GitHub Copilot の概要
tomokusaba
1
140
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
930
GeminiとNotebookLMによる金融実務の業務革新
abenben
0
240
生成AIで小説を書くためにプロンプトの制約や原則について学ぶ / prompt-engineering-for-ai-fiction
nwiizo
4
3.1k
CI/CD/IaC 久々に0から環境を作ったらこうなりました
kaz29
1
200
Understanding_Thread_Tuning_for_Inference_Servers_of_Deep_Models.pdf
lycorptech_jp
PRO
0
150
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Testing 201, or: Great Expectations
jmmastey
42
7.6k
A designer walks into a library…
pauljervisheath
207
24k
Docker and Python
trallard
44
3.4k
The Pragmatic Product Professional
lauravandoore
35
6.7k
The Invisible Side of Design
smashingmag
300
51k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Done Done
chrislema
184
16k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
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