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
AI機能、動いてますか - AI機能を持つマルチテナントSaaSの開発で直面した課題
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
noy
March 25, 2026
Technology
15
0
Share
AI機能、動いてますか - AI機能を持つマルチテナントSaaSの開発で直面した課題
https://findy-tools.connpass.com/event/384629/
noy
March 25, 2026
More Decks by noy
See All by noy
新規事業×生成 AI の不確実性を乗り越える開発プロセス
noy72
0
990
開発合宿の裏側 - Web アプリケーションを素早く作る
noy72
0
92
Hatena Engineer Seminar #18 ビジネスプラットフォームチームで始めた『筋トレ』施策について
noy72
0
1.5k
Other Decks in Technology
See All in Technology
AI環境整備はどのくらい開発生産性を変えうるか? #AI駆動開発 #AI自走環境
ucchi0909
0
120
建設的な現実逃避のしかた / How to practice constructive escapism
pauli
4
310
システムは「動く」だけでは足りない 実装編 - 非機能要件・分散システム・トレードオフをコードで見る
nwiizo
2
320
Eight Engineering Unit 紹介資料
sansan33
PRO
3
7.2k
仕様通り動くの先へ。Claude Codeで「使える」を検証する
gotalab555
8
3.2k
2026年に相応しい 最先端プラグインホストの設計<del>と実装</del>
atsushieno
0
100
システムは「動く」だけでは 足りない - 非機能要件・分散システム・トレードオフの基礎
nwiizo
25
8.2k
Strands Agents × Amazon Bedrock AgentCoreで パーソナルAIエージェントを作ろう
yokomachi
2
270
Claude Teamプランの選定と、できること/できないこと
rfdnxbro
1
1.9k
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
23k
Proxmox超入門
devops_vtj
0
170
バックオフィスPJのPjMをコーポレートITが担うとうまくいく3つの理由
yueda256
1
300
Featured
See All Featured
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
A Soul's Torment
seathinner
6
2.6k
Amusing Abliteration
ianozsvald
1
150
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.3k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
160
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
170
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.7k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
160
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.3k
Transcript
AI機能、動いてますか id:noy72 AI機能を持つマルチテナントSaaSの開発で直面した課題 1 本番提供できる品質へ:SaaSにAI機能を実装するまでのリアル
自己紹介 2 松田 直也 株式会社 はてな エンジニアリングマネージャー id:noy72 2021年 株式会社はてな
新卒入社 • 社内サービスの開発 • 自社の広告配信結果のデータ基盤構築 • 新規事業『toitta』の開発
自己紹介 3 松田 直也 株式会社 はてな エンジニアリングマネージャー id:noy72 2021年 株式会社はてな
新卒入社 • 社内サービスの開発 • 自社の広告配信結果のデータ基盤構築 • 新規事業『toitta』の開発 AI機能を持つ マルチテナントSaaS
ユーザーが 何と⾔ったかに 深く向き合える。
5 https://ja.toitta.com/
6 AI を活用したインタビュー分析SaaS • ユーザーリサーチの支援 • 書き起こし & 話者分離 •
切片の抽出・分類 • 調査に沿ったレポート生成 そのほか様々な リサーチを支援する機能
前提 • この発表における AI = 主に生成 AI ◦ Google Cloud,
Azure などが 提供する API を利用する 7
8 こんな状況を考えてみる
9 AIを利用した機能を 開発していて……
10 評価基準を設計した ✓ 生成物の評価フローを作った ✓ リリースできる品質になった ✓
11 リリースして しばらく経ったら
12 「AI機能が使えません」
13 Q. 何があった?
14 例えば…… A. レートリミットに 達していた
15 AI の問題ではない
16 AI の問題ではない でも考えないといけない問題
AI機能、動いてますか AI機能を持つマルチテナントSaaSの開発で直面した課題 17
目次 1. レートリミット 2. ノイジーネイバー 3. フォールバック 18
19 1. レートリミット
レートリミットへの対処法 • 利用量を制限/調整する • レートリミットを緩くする ◦ → 上位プランにする ◦ →(水平スケール)
20
レートリミットへの対処法 • 利用量を制限/調整する • レートリミットを緩くする ◦ → 上位プランにする ◦ →(水平スケール)
21 これらで解決できる?
LLM にはリクエスト以外の制限もある • RPM制限:1分あたりのリクエスト数 • TPM制限:1分あたりのトークン数 22
LLM にはリクエスト以外の制限もある • RPM制限:1分あたりのリクエスト数 • TPM制限:1分あたりのトークン数 23 リクエスト数の制限だけでは不十分
お金で解決できないかも • Tier 制 ◦ 利用実績を積まないと利用量を増やせない • (リソース (GPU) が必要な分だけ
利用できるとは限らない) 24
toitta ではどうだったか • ユーザーインタビューは 1 時間程度 ◦ 文字に起こすと 1~2 万文字くらい
• 重要なポイントを漏れなく抽出するため、 文字起こしをいくつかに分けて処理 ◦ システムプロンプトには指示と抽出の例 25
toitta での対処法 • 流量制限+リトライ ◦ 流量を厳しく制限 ◦ トークンの制限はリトライでカバー • 詰まっているかどうかを監視する
◦ → 並列度の調整 26
27 2. ノイジーネイバー
ノイジーネイバー / うるさい隣人問題 複数のテナント(ユーザー)が 同じリソースを使う場合、 誰かが大量にリソースを使うと 他の人が使えなくなる。 28 ← この話ではない
ノイジーネイバー / うるさい隣人問題 29 テナントA テナントB BABA タスクキュー A も
B もサービスが利用できている状態
ノイジーネイバー / うるさい隣人問題 30 テナントA テナントB BAAAAAAAAAAAAA タスクキュー B はサービスが利用できない状態
対策サービスが案外ない 31 • AWS には去年追加された ◦ Amazon SQS フェアキュー •
Google Cloud にはない ◦ 量を制限することはできても 「誰」を考慮した制限はできない
対策サービスが案外ない 32 • AWS には去年追加された ◦ Amazon SQS フェアキュー •
Google Cloud にはない ◦ 量を制限することはできても 「誰」を考慮した制限はできない → 自前で実装
自前実装(1): Pub/Sub + Functions 33 テナントA テナントB AA B Function
テナントA: 3/25 10:13:58 テナントB: 3/11 13:25:11 (1) 最後に処理したテナント を取得&日付の更新 (2) 処理対象を取得 AI (3) 実行
自前実装(2) ジョブ管理コンポネの実 装 34 [メモリ] テナントA: 3/25 10:13:58 テナントB: 3/11
13/25:11 Cloud Run DB ID | テナントA | ステップ2 ID | テナントB | ステップ1 ID | テナントA | ステップ2 … (1) タスク取得 (2) 最後に処理したテナント を取得&日付の更新 ステップ1 ステップ2 (AI) (3) 実行
まだある課題 35 AI 機能 1 AI 機能 2 API ステップ1
ステップ2 (AI) タスク割り振り コンポネ ステップ2だけ 実行するには? AI 機能が複数あるときの タスクの優先順位は?
36 問. レートリミット、 ノイジーネイバーの対策をした これで十分か?
37 答. いいえ 障害は起こるため (実体験)
38 3. フォールバック
39 ロケーション / モデル / プラット フォーム を変える
(1)ロケーションの切り替え • 例) 米国で使えない ◦ → 台湾に切り替える 40
(2)モデルの切り替え • 例) Gemini 2.5 Pro が使えない ◦ → Gemini
2.5 Flash に切り替える • 問題 ◦ 生成物の品質が変わってしまう 41
(3)プラットフォームの切り替え • 例) Google Cloud で使えなくなった ◦ → Azure に切り替える
• 問題 ◦ コードが複雑になる ◦ 管理が大変 42
その変更は許される? • (特に BtoB だと)どのクラウドサービス、ど のリージョンを使うかをユーザーに伝えている ケースがある ◦ 利用規約, セキュリティチェックシート
など 43
44 まとめ
考えておくとよいこと • レートリミット ◦ アクセス量、トークン量などの制限をどこで調整するか? ◦ 利用量は増やせるか? • ノイジーネイバー ◦
どのユーザー / 処理をどこでどのように待たせるか? • フォールバック ◦ 障害時に何ができるか? ◦ (モデルを変える可能性があるなら)モデルを変更した際の品質はどうなるか? 45