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
62
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
Rails Girls Zürich Keynote
gr2m
94
13k
Side Projects
sachag
452
42k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Typedesign – Prime Four
hannesfritz
40
2.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Producing Creativity
orderedlist
PRO
344
39k
The Pragmatic Product Professional
lauravandoore
32
6.4k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
Bash Introduction
62gerente
611
210k
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を開発しませんか?
以上 ありがとうございました