AI/RAGシステム開発
AIを活用した業務効率化とナレッジマネジメント
概要
大規模言語モデル(LLM)とRAG(Retrieval-Augmented Generation)技術を活用し、企業の業務効率化を実現するAIシステムの開発を行っています。特に、社内のナレッジを統合して活用するシステムの構築を得意としています。
AWS BedrockやChatGPT APIを使用した実践的なAIアプリケーション開発の経験があり、プロンプトエンジニアリングからインフラ構築まで一貫して対応できます。
主要技術スタック
大規模言語モデル(LLM)
- AWS Bedrock: Claude 3 Sonnet/Haiku、Titan Embeddingsなど、複数のモデルを用途に応じて使い分け
- OpenAI API: GPT-4、GPT-3.5-turboを使用したアプリケーション開発
- Azure OpenAI Service: エンタープライズ向けのセキュアなLLM活用
検索・ベクトルデータベース
- Amazon Kendra: エンタープライズ向けインテリジェント検索サービス
- Amazon OpenSearch: 全文検索とベクトル検索の組み合わせ
- Pinecone: ベクトル検索特化型データベース
- Weaviate: オープンソースのベクトルデータベース
開発フレームワーク・ライブラリ
- LangChain: LLMアプリケーション開発フレームワーク
- LlamaIndex: データコネクターとインデックス管理
- Semantic Kernel: Microsoftのオーケストレーション フレームワーク
- Haystack: NLPパイプラインフレームワーク
プログラミング言語
- Python: メインの開発言語(boto3、requests、FastAPIなど)
- TypeScript: フロントエンド・Node.jsバックエンド
RAG(Retrieval-Augmented Generation)システム
RAGとは
RAGは、外部の知識ベースから関連情報を検索し、その情報をLLMに与えることで、より正確で文脈に沿った回答を生成する手法です。LLMの「ハルシネーション(事実と異なる情報の生成)」を減らし、最新情報や企業固有の情報を活用できる点が特徴です。
RAGシステムのアーキテクチャ
1. データ収集・前処理
- データソース統合: Notion、Google Drive、Confluence、Backlogなど複数のデータソースからAPIで情報を収集
- テキスト抽出: PDF、Word、スライドなど様々なフォーマットからテキストを抽出
- チャンク分割: 長文を適切なサイズに分割(Recursive Character Text Splitter等を使用)
- メタデータ付与: 作成者、更新日時、カテゴリなどのメタデータを追加
2. ベクトル化・インデックス作成
- Embedding生成: テキストをベクトル表現に変換(Titan Embeddings、OpenAI Embeddings等)
- インデックス登録: ベクトルデータベースやKendraにインデックスを作成
- メタデータインデックス: 高速なフィルタリングのためのメタデータインデックス
3. 検索(Retrieval)
- セマンティック検索: 質問文をベクトル化し、類似度の高いドキュメントを検索
- ハイブリッド検索: セマンティック検索とキーワード検索を組み合わせ
- リランキング: 検索結果を関連度でソートし直し、上位N件を選択
- コンテキスト圧縮: トークン数制限に合わせて情報を圧縮
4. 回答生成(Generation)
- プロンプト構築: 検索結果をコンテキストとしてプロンプトに挿入
- LLM呼び出し: AWS BedrockやOpenAI APIで回答を生成
- ソース明示: 回答に情報源のURLや引用を付加
- 後処理: フォーマット整形、リンク生成など
実装したRAGの最適化手法
チャンク戦略の最適化
- 適切なチャンクサイズ: 512〜1024トークン程度に調整(ドメインに応じて変動)
- オーバーラップ: チャンク間で20%程度のオーバーラップを設定し、文脈の断絶を防ぐ
- セマンティック分割: 段落や見出しなど、意味のまとまりでチャンクを分割
プロンプトエンジニアリング
- Few-shot Learning: 例示を含めて回答品質を向上
- Chain-of-Thought: 段階的な思考プロセスを促すプロンプト
- 制約の明示: 「検索結果のみに基づいて回答」などの制約を明記
- 出力フォーマット指定: Markdown、JSON等の形式を指定
ハルシネーション対策
- ソース明示の強制: 必ず情報源を明記するよう指示
- 不明時の対応: 情報がない場合は「わかりません」と回答するよう指示
- 信頼スコア: 回答の確実性をスコア化
- ファクトチェック: 重要な情報は複数ソースで検証
開発実績
ものしりAI(社内ナレッジベースAI SaaS)
プロジェクト詳細を見る → / monoshiri.ai を見る
- AWS Bedrock Cohere Embed v4 + Amazon S3 Vectors によるマルチテナント RAG 基盤
- 管理画面 / LINE / チャットウィジェット / MCP プロトコルの4チャネル対応
- テナント × フォルダ単位でベクトルインデックスを物理分離し、情報漏洩リスクを排除
- Stripe Checkout + Webhook 冪等処理による課金基盤
- Next.js 15 + NestJS + Aurora MySQL + Terraform で企画・開発・運営をソロで担当
社内RAG質問回答システム
- Notion、Google Drive、Backlog等のマルチソース統合
- Slackからの自然言語質問に対する高精度な回答
- 月間3,000件以上の質問処理
- 情報検索時間を70%削減
カスタマーサポート自動化
- FAQとマニュアルを基にした自動回答システム
- 多言語対応(日本語、英語、中国語)
- 問い合わせ対応時間を50%削減
- 顧客満足度92%を達成
社内ドキュメント自動生成
- 既存ドキュメントから新規ドキュメントのドラフトを生成
- 議事録の自動要約と TODO抽出
- 仕様書の自動レビューと改善提案
AI開発における考慮事項
コスト最適化
- モデル選択: 用途に応じて適切なモデルを選択(GPT-4は高品質だがコスト高、GPT-3.5-turboは低コスト)
- プロンプト最適化: 不要なトークンを削減し、簡潔なプロンプトを設計
- キャッシング: 同じ質問への回答をキャッシュし、API呼び出しを削減
- バッチ処理: 複数リクエストをまとめて処理
セキュリティとプライバシー
- データ匿名化: 個人情報を除去してからLLMに渡す
- アクセス制御: ユーザーの権限に応じた情報のみを検索対象に
- ログ管理: 質問内容と回答のログを適切に管理
- データ保持ポリシー: LLMプロバイダーのデータ保持ポリシーを確認
評価とモニタリング
- 回答品質の定量評価: BLEU、ROUGE等のメトリクスで評価
- ユーザーフィードバック: 高評価/低評価での満足度収集
- A/Bテスト: プロンプトやパラメータの最適化
- エラー監視: API呼び出し失敗やタイムアウトの監視
今後の展開
マルチモーダルAI
画像、音声、動画など、テキスト以外のデータも扱えるマルチモーダルAIシステムの開発を進めています。
エージェント開発
LangChainのAgentやFunction Callingを活用し、複雑なタスクを自律的に実行できるAIエージェントの開発に取り組んでいます。
ファインチューニング
企業固有のデータでLLMをファインチューニングし、より専門的で正確な回答を生成するシステムの研究を進めています。
提供できる支援
- RAGシステムの設計・開発
- 既存システムへのAI機能追加
- プロンプトエンジニアリングコンサルティング
- AI活用の技術顧問・アドバイザリー
- 社内向けAI勉強会の実施
AI/RAGシステム開発に関するご相談はお気軽にどうぞ
SNSリンクを見る