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
360
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)
Claude Codeを使った情報整理術
knishioka
20
12k
Claude Skillsで"仕事の型"を配布する
knishioka
0
280
Claude Agent SDKで始める実践的AIエージェント開発
knishioka
0
130
AIがAIを拡張する時代へ ~Claude Codeで実現する高品質文書作成~
knishioka
0
160
MLflow × LLM 生成AI時代の実験管理とリスク低減
knishioka
0
150
Conductor: Git Worktreeで実現する並列AIコーディング
knishioka
0
120
ローカルLLMでファインチューニング
knishioka
0
2.1k
自作MCPサーバ入門
knishioka
0
140
成功と失敗の実像と生成AI時代の展望
knishioka
0
110
Other Decks in Technology
See All in Technology
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.6k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
17k
ソフトウェアエンジニアとAIエンジニアの役割分担についてのある事例
kworkdev
PRO
1
380
Eight Engineering Unit 紹介資料
sansan33
PRO
0
6.2k
旬のブリと旬の技術で楽しむ AI エージェント設計開発レシピ
chack411
1
120
あの夜、私たちは「人間」に戻った。 ── 災害ユートピア、贈与、そしてアジャイルの再構築 / 20260108 Hiromitsu Akiba
shift_evolve
PRO
0
470
善意の活動は、なぜ続かなくなるのか ーふりかえりが"構造を変える判断"になった半年間ー
matsukurou
0
310
#22 CA × atmaCup 3rd 1st Place Solution
yumizu
1
130
スクラムマスターが スクラムチームに入って取り組む5つのこと - スクラムガイドには書いてないけど入った当初から取り組んでおきたい大切なこと -
scrummasudar
1
1.6k
Digitization部 紹介資料
sansan33
PRO
1
6.4k
I tried making a solo advent calendar!
zzzzico
0
140
Data Hubグループ 紹介資料
sansan33
PRO
0
2.5k
Featured
See All Featured
WENDY [Excerpt]
tessaabrams
9
35k
Marketing to machines
jonoalderson
1
4.5k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
81
Deep Space Network (abreviated)
tonyrice
0
33
The Limits of Empathy - UXLibs8
cassininazir
1
200
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
160
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
330
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.3k
Done Done
chrislema
186
16k
Git: the NoSQL Database
bkeepers
PRO
432
66k
The untapped power of vector embeddings
frankvandijk
1
1.5k
Ruling the World: When Life Gets Gamed
codingconduct
0
120
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