IndexGPT — ローカル研究支援ワークフロー(RAG・SFT・LoRA)
概要
IndexGPTは「RAG + SFT + LoRA」を軸にしたローカル研究アシスタントのためのワークフローです。PDFや論文の取り込み(パーシング)からベクトル化して索引化し、検索に基づくQAを行うことで情報抽出を支援します。さらに、検索結果や既存データからSFT用の教師データを生成し、LoRAを用いた効率的な微調整(低ランク適応)でローカルモデルの性能を向上させます。小規模プロジェクトながら、パイプライン全体を一貫して試せる点が特色です。
リポジトリの統計情報
- スター数: 63
- フォーク数: 0
- ウォッチャー数: 63
- コミット数: 3
- ファイル数: 9
- メインの言語: JavaScript
主な特徴
- RAG(Retrieval-Augmented Generation)中心のワークフローでPDF→検索→生成を連携
- SFT(教師あり微調整)用データの自動生成機能を備え、効率的に教師データを作成可能
- LoRAを利用した低コストな微調整(トレーニング)パイプラインを提供
- ローカル運用を想定し、Windows/LinuxやGPUを活かした環境に対応
技術的なポイント
IndexGPTは研究用途の探索的ワークフローをローカルで完結させることを目標にしており、以下の技術的要素が注目されます。まずRAGアプローチによって、ドキュメント(PDF等)から抽出されたテキストをベクトル化し、近傍検索に基づいて関連文書を抽出してから生成モデルで応答を作る流れを標準化しています。これにより大規模モデルに長い文脈を直接与えず、外部知識を効率的に利用できます。
SFT(Supervised Fine-Tuning)データ生成は、既存の検索結果や対話ログを整形して教師ペアに変換する自動化スクリプトにより支援されます。こうして得られたデータをもとにLoRA(Low-Rank Adaptation)でモデルの特定タスク対応力を上げる点が実務的です。LoRAはパラメータ全体を更新せず低ランク行列のみを学習するため、GPUメモリや学習コストの節約につながります。
実装面ではPython3.10+とNode.js18+を前提にしており、環境設定や設定ファイル(config.py)を通じてモデルパスやインデックス設定、トレーニングハイパーパラメータを管理します。ローカルファイルのパーシング、ベクトルストアの構築、検索・再ランキング、生成モデルの呼び出し、SFT/LoRAトレーニングの各ステップが明確に分離されており、実験の差し替えや段階的な検証がしやすい構成です。GPU推奨やWindowsフレンドリーな調整がなされているため、研究者や個人開発者が手元の環境で試しやすい点も特徴です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- LICENSE: file
- README.md: file
- README.zh-CN.md: file
- config.py: file
- scripts/: データ取り込み・トレーニングなどの実行スクリプト(存在を想定)
- docs/: 使用方法や設定例(小規模プロジェクトのドキュメント)
- package.json / requirements.txt: 環境依存パッケージ(Node/Pythonの両方を利用)
- …他 4 ファイル
ファイル構成は少数精鋭で、設定ファイル(config.py)を中心に環境依存の値やモデルのパス、インデックス設定、生データの配置場所などをまとめている想定です。READMEには導入手順や環境要件(Python 3.10+, Node.js 18+、GPU推奨)が明記され、Windows/Linux両対応の記載があります。
まとめ
ローカルでRAG→SFT→LoRAの一連ワークフローを試せる実践的なテンプレート。導入が容易で研究用途に向く。
リポジトリ情報:
- 名前: IndexGPT
- 説明: IndexGPT: 本地科研助手(RAG + SFT + LoRA)| Local research assistant for PDF parsing, retrieval QA, SFT data generation, and LoRA training.
- スター数: 63
- 言語: JavaScript
- URL: https://github.com/requestsession/IndexGPT
- オーナー: requestsession
- アバター: https://avatars.githubusercontent.com/u/24363434?v=4
READMEの抜粋: # IndexGPT
IndexGPT is a local research assistant workflow built around RAG + SFT + LoRA. It supports paper ingestion, retrieval-based QA, SFT data generation, LoRA training, and web chat in one project.
0. Project Identity
- Repository:
https://github.com/requestsession/IndexGPT - Maintainer:
requestsession
1. Environment
- Python: 3.10+
- Node.js: 18+
- OS: Windows/Linux (current repo is Windows-friendly)
- GPU: recommended for inference/training …