Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LLMと生きていくためのアーキテクチャ

Wisteria30
October 04, 2024
66

 LLMと生きていくためのアーキテクチャ

Wisteria30

October 04, 2024
Tweet

Transcript

  1. 自己紹介: かっか(@kakka_q) 修士 -> 某AI企業(小田原リモート男) 社会人2年目 ソフトウェアエンジニア 技術スタック:Python・Go・TS・Azure(Terraform)・ML 趣味:Open the

    futureなスマホを使うこと(GMSのないスマホや折りたたみスマホ も...) 推しツール:Arc, Kagi Search, ast-grep, ghq
  2. 似た感じで書けそう?? Controller • 事前にエンドポイントを公開し、 UseCaseと紐 づける • リクエストをハンドリングし、 UseCaseに処理 を委譲

    AI Agent • 自然言語のインターフェースを持ち、事前に 連携ツールと紐づける • 自然言語を解析し、最適なツールに適切な パラメータで処理を委譲
  3. 直面する課題 • LLMの得意な書き方と相反する ◦ ペライチは簡単だが、複雑な依存関係がファイルを横断すると途端に精度が落ちる • 開発人数が減る中、分かりきっている冗長な詰め替え処理を粛々と行う • 市場からの要望と速度の圧 ◦

    LLMでブーストした世の開発スピードについていく必要 ◦ AIで何かする系の機能は技術が枯れてないので、時にはダイナミックな修正が必要 ▪ 抽象化の難易度とコードが生きてる期間の ROIが合わない 総じて重厚・冗長過ぎて速度が出ない
  4. プロダクトを未来に連れていくためには? • LLMで好き勝手できる部分とコアドメインを分離する • トランザクションスクリプト ◦ 依存関係が少なく、Readのみの箇所をモジュールとして独立させ LLMの幅を効かせる ◦ データ構造も半構造化データを使うなど上手にサボる

    • Always-Valid Domain Model ◦ Validationされたデータのみが扱われる Commandなどが呼ばれる箇所 ◦ 不正な状態が存在し得ないようにドメインモデルを定義することで、ビジネスロジックの厳密性 を確保する ◦ モデルが半構造化データを受け取る場合でも、 I/Fは厳密に取る