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
Go × 軽量ワークフロー言語で実装する LLM ワークフロー
Search
Yota Hamada
February 17, 2025
0
150
Go × 軽量ワークフロー言語で実装する LLM ワークフロー
Yota Hamada
February 17, 2025
Tweet
Share
More Decks by Yota Hamada
See All by Yota Hamada
IP電話自動応答システムの実現
yohamta
1
63
Featured
See All Featured
Optimizing for Happiness
mojombo
376
70k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
KATA
mclloyd
29
14k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
Into the Great Unknown - MozCon
thekraken
35
1.6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
GraphQLとの向き合い方2022年版
quramy
44
13k
Practical Orchestrator
shlominoach
186
10k
Transcript
Go × 軽量ワークフロー言語で実 装する LLM ワークフロー Sales Retriever - 営業向けSaaSプロダクト
2025/2/17
自己紹介 • 濱田 (@yohamta) • Go言語 が好きなバックエンド開発者 • 個人開発とスタートアップのプロダクト 開発に携わる
略歴 • SIer, ゲーム業界, 楽天, 証券会社, スタートアップ → ? 模索中
本日のトピック 複雑な LLM ワークフローを軽量なワークフロー言語を用いて実装する話
プロダクトの概要
None
どんな営業でもトップ営業と同じように 企業のリサーチを行えるようにするプロダクト
メイン機能 • テーブル形式の UI / UX • 調べたいことを列として設定できる • テーブルに行として企業を追加する
→ 自動でリサーチ
LLM を用いた自動 リサーチのワークフロー
LLMを用いたリサーチのワークフロー 調査項目を入力として、以下5つのステップで自動リサーチを行い、 その結果をテーブルのセルに保存する 1. 検索ワードの拡張 2. Web 検索処理 3. Web
ページのコンテンツ取得 4. コンテンツの判定、重要箇所の抜粋 5. 要約 ※説明のため簡略化しています
リサーチのワークフロー実 装における課題
実装における課題 1. リサーチ間の依存関係を設定したい 2. 効率的に並列処理を行いたい
具体例 • 多段階でのリサーチを行いたい(以下、例)
具体例 • 多段階でのリサーチを行いたい(以下、例)
具体例 • 多段階でのリサーチを行いたい(以下、例)
実装における課題(2/2) • 大量の Web 検索, LLM の実行処理を行うため並列化が必須 大まかなワークフローのタスク数: 総タスク数 =
リサーチ対象セル数 × 各セルに対する検索ワード拡張数 × Web 検索結果数 例: 10 列 × 4 キーワード × 検索結果 10 件 =400 タスク → どう実装するか?
簡易的なワークフロー 言語を実装
ワークフロー言語とは • ワークフロー言語は一連のタスクの流れを記述するプログラミ ング言語の一種 • 今回のようなリサーチ処理のタスクの流れをワークフロー言語 を用いて記述できる
LLMプロダクトにワークフロー言語を用いる恩恵 • 再実行 • 進捗、エラー箇所の監視 • 分散・並行処理 • 柔軟性 ◦
動的にワークフローの組み換えができる • 拡張性 ◦ 新しいタスク種別を追加しても, 基盤のコードを そのまま利用できる
具体例 タスクの依存関係をワークフロー言語で定義する例(YAML) タスク間の依存関係 ワークフロー言語表現
Goで実装する恩恵 • シングルバイナリ • 並行処理(goroutine + channel) • 静的型付け •
速度 • 可読性 • 標準ライブラリ • 後方互換性 コード品質と生産性を両立しやすい言語
ワークフロー層の実装 • ワークフロービルダー、実行レイヤを内部に包含 アプリケーション内部のモジュール構造
バックエンド全体で Go を採用 Workflow Executor Backend API Backend DB Workflow
Job LLM API (Open AI etc) Company Data source Client
パフォーマンスの 比較(ざっくり)
β版と製品版の比較 • β 版は Python で実装 • 製品版は Go で実装し、ワークフロー機構を内蔵
• 1回のリサーチ時間は 2~3 分 → 40秒程度になり、 ざっくり 70% ほど高速化
まとめ • LLM に関する一連のタスクをワークフロー言語で記述することで様々な恩恵 が得られる • Go 言語を用いてワークフローを実装することでアーキテクチャをシンプルに できる
宣伝
宣伝(1/2) • Sales Retriever 社の開発初期メンバー募集中
宣伝(2/2) • Dagu という OSS のワークフローエンジンを開発しています 🚀 dagu-org/dagu 🚀
宣伝(2/2) • Dagu のユースケース ◦ 衛星観測データの取り込みパイプライン ◦ IoT のエッジデバイス上でのデータ処理 ◦
メディアファイルの変換パイプライン ◦ 従業員の入退社に関するワークフロー自動化
宣伝(2/2) • スター1万を目指してOSSを開発しませんか?
以上 ありがとうございました