MPT-30B は、8k コンテキスト長でトレーニングされた強力なオープンソース モデルで、オリジナルの GPT-3 よりも優れたパフォーマンスを発揮します。発表
MPT-30B の量子化バージョンを使用すると、インターネット接続なしで自分のコンピュータ上でドキュメントをプライベートにチャットできます。
32 GB の RAM とpython 3.10
を備えた最小システム仕様。
pip install poetry
git clone {insert github repo url}
poetry install
.env.example
ファイルを.env
にコピーします。 cp .env.example .env
python download_model.py
または、ここにアクセスしてファイルをダウンロードしてください。次に、ルート ディレクトリにmodels
フォルダーを作成し、そこにファイルを配置します。
デフォルトでは、このリポジトリは、取り込まれるドキュメントを保存するためのsource_documents
フォルダーです。そこにあるドキュメントを自分のものに置き換えることができます。
サポートされているドキュメント拡張子は次のとおりです。
.csv
: CSV、.docx
: Word ドキュメント、.doc
: Word ドキュメント、.eml
: 電子メール、.epub
: EPub、.html
: HTML ファイル、.md
: マークダウン、.pdf
: ポータブル ドキュメント フォーマット (PDF)、.pptx
: PowerPoint ドキュメント、.txt
: テキストファイル(UTF-8)、次に、このスクリプトを実行して取り込みます
python ingest.py
出力は次のようになります。
Creating new vectorstore
Loading documents from source_documents
Loading new documents: 100% | ██████████████████████ | 1/1 [00: 01< 00:00, 1.73s/it]
Loaded 1 new documents from source_documents
Split into 90 chunks of text (max. 500 tokens each)
Creating embeddings. May take some minutes...
Using embedded DuckDB with persistence: data will be stored in: db
Ingestion complete ! You can now run question_answer_docs.py to query your documents
ローカルのベクターストアを含むdb
フォルダーが作成されます。ドキュメントのサイズに応じて、ドキュメントごとに 20 ~ 30 秒かかります。必要なだけドキュメントを取り込むことができ、すべてがローカルの埋め込みデータベースに蓄積されます。空のデータベースから開始する場合は、 db
フォルダーを削除します。
注: 取り込みプロセス中、ローカル環境からデータが流出することはありません。エンベディング モデルがダウンロードされるときの最初の取り込みスクリプト実行時を除き、インターネット接続がなくても取り込みが可能です。
次のスクリプトを実行して質問し、ドキュメントから回答を取得します。
まず、コマンドラインをロードします。
poetry run python question_answer_docs.py `
または
make qa
次に、コマンド ラインでEnter a question:
input」を要求されるまで待ちます。質問を入力して Enter キーを押します。
exit
と入力してスクリプトを終了します。
注: コンピューターのメモリ、プロンプト要求、ソース ドキュメントから返されるチャンクの数に応じて、モデルがプロンプトに応答するまでに 40 ~ 300 秒かかる場合があります。
このチャットボットはインターネットに接続していなくても使用できます。
[オプション] プレーンチャットボットを実行する
ドキュメントとチャットしたくなく、単に MPT-30b チャットボットと対話したい場合は、取り込みフェーズをスキップして、単純にチャットボット スクリプトを実行できます。
poetry run python chat.py `
または
make chat
元のテンプレートについては abacaj の著作がここにあります。 privateGPT 取り込みロジックとドキュメントのガイダンスについては imartinez の著作がここにあります。 MPT-30B GGML モデルについては TheBloke の著作がここにあります。