GPT4All LLM を使用してコードをローカルで分析します。必要なファイルをすべてダウンロードした後は、データの共有やインターネット接続は必要ありません。 Eunomia は、imatinez オリジナルの privateGPT プロジェクトに基づいています。 Eunomia は、提供されたソース コード ファイルのみを分析し、クエリに基づいて回答を提供するように制限しています。
新しい Django プロジェクトで
C++ プロジェクトの場合
LLM | ダウンロード | バックエンド | サイズ |
---|---|---|---|
? ggml-gpt4all-l13b-snoozy.bin | ダウンロード | ラマ | 8.0GB |
⁉️ ggml-nous-gpt4-vicuna-13b.bin | ダウンロード | ラマ | 8.0GB |
? ggml-gpt4all-j-v1.3-groovy.bin | ダウンロード | gptj | 3.7GB |
ラング | 拡大 |
---|---|
パイソン | .py |
C++ | .cpp と .hpp |
ジャワ | .java と .jar |
JS | .js |
ルビー | .rb |
さび | .rs |
行く | 。行く |
スカラ座 | .scala と .sc |
迅速 | 。迅速 |
PHP | .php |
ラテックス | .tex |
以下は、Langchain で現在サポートされているすべての言語を含む、Langchain の言語クラスのソース コードへのリンクです。
Eunomia は、Chroma を使用して、 が実行されるディレクトリ内のファイルを含むベクトルストアを作成し、langchain を使用してそのベクトルストアを選択した LLM にフィードします。 ChatGPT にアクセスできないため、現時点では GPT4All モデルのみがサポートされています。
まず、次を使用してフォルダー内にリポジトリのクローンを作成します。
https://github.com/Ngz91/Eunomia.git
リポジトリのクローンを作成した後、 pip install -r requirements.txt
を実行して、requirements.txt ファイルに依存関係をインストールする必要があります (Python 環境内でこれを行うことをお勧めします)。
次に、「モデル テスト済み」セクションでサポートされているモデルの 1 つをダウンロードし、Eunomia フォルダー内のフォルダー内に保存します。
example.env
名前を.env
に変更し、変数を適切に編集します。
PERSIST_DIRECTORY: is the folder you want your vectorstore in
LLM: Path to your GPT4All or LlamaCpp supported LLM
BACKEND: Backend for your model (refer to models tested section)
EMBEDDINGS_MODEL_NAME: SentenceTransformers embeddings model name (see https://www.sbert.net/docs/pretrained_models.html)
MODEL_N_CTX: Maximum token limit for the LLM model
TARGET_SOURCE_CHUNKS: The amount of chunks (sources) that will be used to answer a question
IGNORE_FOLDERS: List of folders to ignore
重要: Eunomia を実行するには 2 つの方法があります。1 つはpython path/to/Eunomia.py arg1
使用する方法で、もう 1 つはバッチ スクリプトを作成して Python Scripts フォルダー内に配置する方法です (Windows では、UserAppDAta の下にあります)。 LocalProgamsPythonPythonxxxScripts) を使用し、 eunomia arg1
直接実行します。 Eunomia の動作の性質上、バッチ スクリプトを作成し、コードを分析するフォルダー内で実行することをお勧めします。 example.bat
ファイルを例としてバッチ ファイルを自分で設定することができますが、パスpython pathtoEunomia.py %1
編集して、マシン内の Eunomia.py が存在するパスを指すようにすることを忘れないでください。ここからはバッチスクリプトを例にして説明していきます。
Python 環境をアクティブ化し (作成した場合)、コードが存在するフォルダーに移動し、ファイルを取り込んで、選択した LLM が質問に答えるためのコンテキストとして使用するベクターストアを作成します。
eunomia ingest
初めてスクリプトを実行するときは、埋め込みモデル自体をダウンロードするためにインターネット接続が必要です。インジェストを再度実行するときは、インターネット接続は必要ありません。
すべてが正しく行われた場合は、次のような内容が表示されます。
Creating new vectorstore
Loading documents from D:FolderSomeTest
Loading new documents: 100%|██████████████████████████████| 7/7 [00:00<?, ?it/s]
Loaded 7 new documents from D:Projectstests
Split into 14 chunks of text (max. 1000 tokens each)
Creating embeddings. May take some minutes...
Vectorstore created, you can now run 'eunomia start' to use the LLM to interact with your code!
ベクターストアが作成されたら、次のコマンドを実行して Eunomia を起動できます。
eunomia start
初回は数秒かかります。モデルのロードが完了すると、モデルが正常にロードされた場合は次のようなプロンプトが表示されます。
Found model file.
gptj_model_load: loading model from 'models\ggml-gpt4all-j-v1.3-groovy.bin' - please wait ...
gptj_model_load: n_vocab = 50400
gptj_model_load: n_ctx = 2048
gptj_model_load: n_embd = 4096
gptj_model_load: n_head = 16
gptj_model_load: n_layer = 28
gptj_model_load: n_rot = 64
gptj_model_load: f16 = 2
gptj_model_load: ggml ctx size = 5401.45 MB
gptj_model_load: kv self size = 896.00 MB
gptj_model_load: ................................... done
gptj_model_load: model size = 3609.38 MB / num tensors = 285
______ __ __ __ __ ______ __ __ __ ______
/ ___ / / / "-. / __ / "-./ / / __
__ _ \ -. \ / \ -./ \ \ __
_____\ _____\ _\"_\ _____\ _ _\ _\ _ _
/_____/ /_____/ /_/ /_/ /_____/ /_/ /_/ /_/ /_//_/
Enter a query:
注: LLM のロード時にエラーが発生した場合は、使用している LLM に正しいバックエンドを使用していることを確認してください。また、一部の回答は不完全または間違っている可能性があります。テスト中に、さまざまなチャンク サイズ、チャンクの重複、n_ctx、および target_source_chunks を試すことでこの問題を改善できることがわかりました。他のモデルを使用して、これまでにテストしたモデルよりも応答が優れているかどうかをテストできます。これらのモデルを langchain およびそれぞれのバックエンドで使用する方法を忘れずに検索してください。
このソフトウェアを使用するには、Python 3.10 以降がインストールされている必要があります。以前のバージョンの Python はコンパイルできません。
pip install
プロセス中にホイールを構築中にエラーが発生した場合は、コンピューターに C++ コンパイラーをインストールする必要がある場合があります。
Windows 10/11 に C++ コンパイラーをインストールするには、次の手順に従います。
gcc
コンポーネントを選択します。 Intel ハードウェア (M1 ではない) を搭載した Mac を実行している場合、 pip インストール中にClang: エラー: The Clang Compiler doesn't support '-march=native' が発生する可能性があります。
その場合は、pip インストール中にアーチフラグを設定します。例: ARCHFLAGS="-arch x86_64" pip3 install -rrequirements.txt
これは、LLM と Vector 埋め込みを使用した質問応答のための完全にプライベートなソリューションの実現可能性を検証するテスト プロジェクトです。これは本番環境に対応しておらず、本番環境で使用することを意図していません。モデルの選択はパフォーマンスではなくプライバシーを考慮して最適化されています。ただし、パフォーマンスを向上させるために、さまざまなモデルとベクトルストアを使用することは可能です。