私の今まで経験してきた全てのLLMノウハウを詰め込んだ、LLMシステムの開発ガイドです。
初めてLLMシステムを開発したいと思った時でも、精度改善や運用に行き詰った時でも、何かしら役に立つと思います。
現在200ページ超。
今後も随時更新していきます。
2023/7/28 体裁修正、余計なページを削除
2023/12/12 RAG、API仕様、モデルのページを追加。また情報を最新化。
2024/04 名称を改め資料を大幅にアップデートしました!
2024/05 軽微なアップデートとRAGのGood practiceを追加
2024/08 価格やトークナイザのアップデートとAOAI DevDayで発表したTipsなどを追加
2024/12 全体的な修正、特にAI AgentおよびLLMOpsのページを拡充
1. LLM - GPTの全体像
LLM - GPT とは何なのか ~チャットAIを例にした動作イメージ~
LLM(Transformer Decoder)における言語処理の大まかな流れ
大規模言語モデル(LLM)が持つ基礎能力
デジタルツールとLLMの連携
GPTに関するFAQ
活用例
汎用作業支援ツールChatGPT
検索との統合 Microsoft Copilot
オフィス作業支援ツールとしての応用
プログラム開発支援としての応用
LLMに期待される用途の簡易マッピング
モダリティの拡張
GPT-4 with Visionによる画像・テキストのマルチモーダル処理
動画生成・変換AI Soraの登場
Voice モダリティ
生成AIの未来予測
LLMにおける主な課題
2. APIでのLLM利用
APIから生成AIを扱うことの意義
生成AIが使える 各社のAPI サービス
Microsoft と OpenAI
Azure OpenAI Serviceの解説
特長
API利用までのイメージ
提供可能なAIモデル一覧
各種パラメータの解説
Azure OpenAI Studio
課金単位、コスト計算方法
1分当たりのトークン制限(TPM)
Microsoft Entra IDによるAPIの認証の流れ
SLA
3. Prompt Engineering
GPT のテキスト生成時の影響要素
LLMサービス における裏の Prompt
Prompt の各パートの名称と役割
Prompt の書き方の大原則
Prompt の順序による解釈性~Lost in the Middle~
System Prompt の構造化の例(Markdown記法)
プロンプトエンジニアリングの例 (英会話講師を作る)
Prompt Engineering の ポイント
LLM が解釈しやすく処理する Prompt Processing
例示で精度を高める Few-shot Prompting
段階的な推論をさせる Chain of Thought
高度なreasoningを実行するo1モデルの登場
思考過程パターンを複数生成する Self Consistency
GPT 自身に出力の再帰的な修正をさせるRecursively Criticizes and Improves
Grounding を考えさせ、動的にタスク実行する ReAct
Step Back Prompt
GPT の開発補助に用いられるライブラリ
GPT パイプライン設計の重要性とPrompt flowの活用
プロンプトによる出力形式の限定の課題
Prompting Tips
4. RAG
RAGの基本
LLMの弱点
LLM における Hallucination
Retrieval Augmented Generation (RAG) アーキテクチャの図式
Fine tuningとRAGの比較
キーワード検索とベクトル検索
Azure AI Search のハイブリッド検索、セマンティックリランク
RAGの精度向上
ステップごとのRAGの精度影響因子
クエリ拡張・加工の各手法
Embedding モデルの調整
GPTによるドキュメントのQA化・ナレッジ化
Classification ステップ + フィルタリングによる検索空間の限定
GPT-4などの高精度かつコンテキスト長の大きいモデルによるリランク
チャンク幅チューニングによるピンポイント検索
GPT-4によるチャンク化で切れ目を判定
ドキュメントと質問の関連性や有益さを繰り返し吟味するSelf-RAG
5. AI Agent
企業における生成AIの活用トレンド
2023~2024におけるLLMによる作業削減施策
汎用・リアクティブから特化型・自律AIへ
AI Agent への期待
AI Agentとは
AI Agentにおけるタスクオーケストレーション
AI Agentによくある疑問や勘違い
簡易なAI Agentの例
単純なAgentでも状態遷移が多く発生
AIエージェントのアーキテクチャ例
特化型 AI Agent による開発方針の変遷
Agent設計のポイント①~「サービス」としてきちんと設計しよう~
Agent設計のポイント②~マルチ化で発生するトレードオフを認識せよ~
Agent設計のポイント③~評価環境が難しいことを認識しておく~
そのほかAI Agent開発に向けた重要な要素
AI Agentは企業を中心に発展が予想される
未来へ向けて我々は何を始めるべきか
6. LLMOps, 性能改善
速度性能確保
LLMのAPI利用時に時間が掛かる理由
対策1: 出力トークン数の抑制、並列化
対策2: PTUの利用
対策3: 軽量モデル への Fine tuning
LLMOps
AI・人間の違いから見る LLMOps の必要性
LLMOps とは (本資料の定義)
Human in the Loop を伴う LLMOps アーキテクチャ
LLMシステムにおけるチェック観点の例
LLMシステムにおけるチューニング対象
プロンプトの評価
入出力パターン別の評価方法
RAGのチューニング対象項目
RAGの評価
「ちょっと待て」 ~LLM as a Judgeの落とし穴~
評価役LLMの採点能力の検証
LLMシステムの運用におけるその他の話題
GPTシステムにおけるログの重要性
LLMに対する攻撃とその対策
Azure OpenAI におけるコンテンツフィルタリング機能
個人情報を意識したプロンプト・ログ管理