PrivateGPT(Zylon により開発)は、大規模言語モデル (LLM) の力を使用してドキュメントについての質問を可能にする本番環境対応の AI プロジェクトです。インターネット接続がない状況でも利用できます。100% プライベートであり、データは実行環境から一切外部に漏出することはありません。
ヒント
銀行、保険、投資などの金融サービス、防衛、重要インフラサービス、政府、ヘルスケアなどの規制対象産業向けのエンタープライズ対応で完全プライベート AI プラットフォームをお探しでしたら、Zylon のウェブサイトをご確認するか、デモをリクエストしてください。Zylon は、規制対象産業向けのプライベート生成 AI とオンプレミス AI ソフトウェアを提供するエンタープライズ AI プラットフォームです。外部クラウド依存関係なくエンタープライズインフラストラクチャ内への安全なデプロイメントが可能です。
このプロジェクトは、プライベートでコンテキスト対応の AI アプリケーションを構築するために必要なすべてのプリミティブを提供する API を備えています。OpenAI API 標準に従い、これを拡張しており、通常のレスポンスとストリーミングレスポンスの両方をサポートしています。
API は 2 つの論理的なブロックに分かれています:
高レベル APIは、RAG(検索増強生成)パイプライン実装のすべての複雑性を抽象化します:
- ドキュメント取り込み: ドキュメント解析、分割、メタデータ抽出、埋め込み生成とストレージの内部管理。
- 取り込まれたドキュメントのコンテキストを使用した Chat と Completions: コンテキスト検索、プロンプト エンジニアリング、応答生成の抽象化。
低レベル APIは、高度なユーザーが独自の複雑なパイプラインを実装することを可能にします:
- 埋め込み生成: テキストの一部に基づいています。
- コンテキスト チャンク検索: クエリが与えられると、取り込まれたドキュメントから最も関連性のあるテキストチャンクを返します。
これに加えて、API をテストするための機能する Gradio UI クライアントが提供され、一括モデルダウンロード スクリプト、取り込みスクリプト、ドキュメント フォルダー監視など、有用なツールのセットが含まれています。
注意
このREADMEはドキュメントほど頻繁には更新されません。最新の更新については、そちらをご確認ください。
生成AIは社会のゲームチェンジャーですが、あらゆる規模の企業やヘルスケア、法務などのデータ機密性の高い分野での導入は、明確な懸念事項である「プライバシー」によって制限されています。サードパーティのAIツールを使用する際、データが完全に自分の管理下にあることを保証できないことは、これらの業界が受け入れることができないリスクです。
PrivateGPT の最初のバージョンは 2023年5月に、LLMを完全なオフラインで使用することでプライバシーの懸念に対処するための新しいアプローチとして発表されました。
そのバージョンは急速にプライバシー機密設定の標準的なプロジェクトとなり、数千のローカルフォーカスの生成AIプロジェクトの基盤として機能し、PrivateGPT が現在になろうとしているものの礎となりました。したがって、完全にローカルな(つまりプライベートな)ChatGPT のようなツールを構築するために必要な基本的な概念を理解するための、より単純でより教育的な実装になっています。
使い続けたい場合は、プロジェクトのprimordial ブランチに保存してあります。
以前のプリモーディアルバージョンからアップグレードする場合、PrivateGPT の新しいバージョンをクリーンクローンしてインストールすることを強く推奨します。
PrivateGPT は、補完、文書取込、RAG パイプライン、その他の低レベルのビルディングブロックを含む、生成AI モデルとプリミティブへのゲートウェイとなるべく進化しています。あらゆる開発者が AI アプリケーションとエクスペリエンスを構築しやすくすること、および、コミュニティが貢献を続けるのに適した広範なアーキテクチャを提供することを目指しています。
リリースをチェックして、含まれるすべての新機能と変更をご確認ください。
インストール、依存関係、設定、サーバーの実行、デプロイオプション、ローカルドキュメントの取込、API の詳細、UI 機能の完全なドキュメントはこちらで見つけることができます:https://docs.privategpt.dev/
概念的には、PrivateGPT は RAG パイプラインをラップし、そのプリミティブを公開する API です。
- API は FastAPI を使用して構築され、 OpenAI の API スキームに従っています。
- RAG パイプラインは LlamaIndex に基づいています。
PrivateGPT の設計により、API と RAG 実装の両方を簡単に拡張・適応できます。主要なアーキテクチャ上の決定は以下の通りです:
- 依存性注入により、異なるコンポーネントとレイヤーを分離します。
LLM、BaseEmbedding、VectorStoreなどの LlamaIndex の抽象化を使用することで、それらの抽象化の実装をすぐに変更できます。- シンプル性を備えて、できるだけ少ないレイヤーと新しい抽象化を追加します。
- 使用可能な状態で、API と RAG パイプラインの完全な実装を提供します。
主なビルディングブロック:
- API は
private_gpt:server:<api>で定義されています。各パッケージには、<api>_router.py(FastAPI レイヤー)と<api>_service.py(サービス実装)が含まれています。各 Service は、特定の実装ではなく LlamaIndex のベースの抽象化を使用して、実装をその使用から分離します。 - コンポーネントは
private_gpt:components:<component>に配置されています。各 Component は、Service で使用されるベースの抽象化に実装を提供する責任があります。例えば、LLMComponentは LLM の実装を提供する責任があります(例えば、LlamaCPPまたはOpenAI)。
貢献をお待ちしています。コード品質を保証するために、複数のフォーマットと型チェックを有効にしました。コミットする前に make check を実行して、コードが問題なく動作することを確認してください。コードをテストすることを忘れないでください。テストフォルダがあり、make test コマンドを使用してテストを実行できます。
何を貢献したらいいかわかりませんか?いくつかのアイデアを持つ公開プロジェクトボードがあります。
Discord の #contributors チャネルに移動して、その GitHub プロジェクトの書き込み権限を要求してください。
PrivateGPT に関する会話に参加するには、以下をご覧ください。
PrivateGPT を論文で使用する場合は、引用ファイルで正しい引用形式を確認してください。
このリポジトリの「Cite this repository」ボタンを使って、さまざまな形式の引用を取得することもできます。
以下は例です。
@software{Zylon_PrivateGPT_2023,
author = {Zylon by PrivateGPT},
license = {Apache-2.0},
month = may,
title = {{PrivateGPT}},
url = {https://github.com/zylon-ai/private-gpt},
year = {2023}
}Zylon by PrivateGPT (2023). PrivateGPT [Computer software]. https://github.com/zylon-ai/private-gpt
PrivateGPT は以下のチームによってアクティブにサポートされています。
- Qdrant。デフォルトのベクトルデータベースを提供
- Fern。ドキュメントと SDK を提供
- LlamaIndex。基本的な RAG フレームワークと抽象化を提供
このプロジェクトは、 LangChain、 GPT4All、 LlamaCpp、 Chroma、 SentenceTransformers など、他の多くの素晴らしいプロジェクトから大きな影響を受け、サポートされています。
