Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Go × 軽量ワークフロー言語で実 装する LLM ワークフロー Sales Retriever - 営業向けSaaSプロダクト 2025/2/17
Slide 2
Slide 2 text
自己紹介 ● 濱田 (@yohamta) ● Go言語 が好きなバックエンド開発者 ● 個人開発とスタートアップのプロダクト 開発に携わる 略歴 ● SIer, ゲーム業界, 楽天, 証券会社, スタートアップ → ? 模索中
Slide 3
Slide 3 text
本日のトピック 複雑な LLM ワークフローを軽量なワークフロー言語を用いて実装する話
Slide 4
Slide 4 text
プロダクトの概要
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
どんな営業でもトップ営業と同じように 企業のリサーチを行えるようにするプロダクト
Slide 7
Slide 7 text
メイン機能 ● テーブル形式の UI / UX ● 調べたいことを列として設定できる ● テーブルに行として企業を追加する → 自動でリサーチ
Slide 8
Slide 8 text
LLM を用いた自動 リサーチのワークフロー
Slide 9
Slide 9 text
LLMを用いたリサーチのワークフロー 調査項目を入力として、以下5つのステップで自動リサーチを行い、 その結果をテーブルのセルに保存する 1. 検索ワードの拡張 2. Web 検索処理 3. Web ページのコンテンツ取得 4. コンテンツの判定、重要箇所の抜粋 5. 要約 ※説明のため簡略化しています
Slide 10
Slide 10 text
リサーチのワークフロー実 装における課題
Slide 11
Slide 11 text
実装における課題 1. リサーチ間の依存関係を設定したい 2. 効率的に並列処理を行いたい
Slide 12
Slide 12 text
具体例 ● 多段階でのリサーチを行いたい(以下、例)
Slide 13
Slide 13 text
具体例 ● 多段階でのリサーチを行いたい(以下、例)
Slide 14
Slide 14 text
具体例 ● 多段階でのリサーチを行いたい(以下、例)
Slide 15
Slide 15 text
実装における課題(2/2) ● 大量の Web 検索, LLM の実行処理を行うため並列化が必須 大まかなワークフローのタスク数: 総タスク数 = リサーチ対象セル数 × 各セルに対する検索ワード拡張数 × Web 検索結果数 例: 10 列 × 4 キーワード × 検索結果 10 件 =400 タスク → どう実装するか?
Slide 16
Slide 16 text
簡易的なワークフロー 言語を実装
Slide 17
Slide 17 text
ワークフロー言語とは ● ワークフロー言語は一連のタスクの流れを記述するプログラミ ング言語の一種 ● 今回のようなリサーチ処理のタスクの流れをワークフロー言語 を用いて記述できる
Slide 18
Slide 18 text
LLMプロダクトにワークフロー言語を用いる恩恵 ● 再実行 ● 進捗、エラー箇所の監視 ● 分散・並行処理 ● 柔軟性 ○ 動的にワークフローの組み換えができる ● 拡張性 ○ 新しいタスク種別を追加しても, 基盤のコードを そのまま利用できる
Slide 19
Slide 19 text
具体例 タスクの依存関係をワークフロー言語で定義する例(YAML) タスク間の依存関係 ワークフロー言語表現
Slide 20
Slide 20 text
Goで実装する恩恵 ● シングルバイナリ ● 並行処理(goroutine + channel) ● 静的型付け ● 速度 ● 可読性 ● 標準ライブラリ ● 後方互換性 コード品質と生産性を両立しやすい言語
Slide 21
Slide 21 text
ワークフロー層の実装 ● ワークフロービルダー、実行レイヤを内部に包含 アプリケーション内部のモジュール構造
Slide 22
Slide 22 text
バックエンド全体で Go を採用 Workflow Executor Backend API Backend DB Workflow Job LLM API (Open AI etc) Company Data source Client
Slide 23
Slide 23 text
パフォーマンスの 比較(ざっくり)
Slide 24
Slide 24 text
β版と製品版の比較 ● β 版は Python で実装 ● 製品版は Go で実装し、ワークフロー機構を内蔵 ● 1回のリサーチ時間は 2~3 分 → 40秒程度になり、 ざっくり 70% ほど高速化
Slide 25
Slide 25 text
まとめ ● LLM に関する一連のタスクをワークフロー言語で記述することで様々な恩恵 が得られる ● Go 言語を用いてワークフローを実装することでアーキテクチャをシンプルに できる
Slide 26
Slide 26 text
宣伝
Slide 27
Slide 27 text
宣伝(1/2) ● Sales Retriever 社の開発初期メンバー募集中
Slide 28
Slide 28 text
宣伝(2/2) ● Dagu という OSS のワークフローエンジンを開発しています 🚀 dagu-org/dagu 🚀
Slide 29
Slide 29 text
宣伝(2/2) ● Dagu のユースケース ○ 衛星観測データの取り込みパイプライン ○ IoT のエッジデバイス上でのデータ処理 ○ メディアファイルの変換パイプライン ○ 従業員の入退社に関するワークフロー自動化
Slide 30
Slide 30 text
宣伝(2/2) ● スター1万を目指してOSSを開発しませんか?
Slide 31
Slide 31 text
以上 ありがとうございました