privateGPT を使って日本語ドキュメントを解析させる(git bash)

privateGPT を使って日本語ドキュメントを解析させる(git bash)

2023/11/01 21:00:00
Program, Ai
PrivateGPT

前提 #

インストール手順 #

以下の手順でインストールを進める。

  1. visual studio community 2022 インストール
  2. git bash に gcc インストール
  3. privateGPT インストール

詳細は以下の privateGPT 公式を参照すること

visual studio community 2022 インストール #

以下の公式サイトから visual studio community 2022 インストーラ(VisualStudioSetup.exe) をダウンロードし実行する
https://visualstudio.microsoft.com/ja/vs/whatsnew/

インストーラ起動後、以下のチェックを入れてインストールを完了させる

  • 「ワークロード」の「ユニバーサル Windows プラットフォーム開発」にチェック
  • 「個別のコンポーネント」の「cmake」と入力すると出てくる「Windows 用 C++ CMake ツール」にチェック

インストール完了後、window terminal か windows メニューから「Developer Command Prompt for VS2022」 起動して実行パスを調べておく

windows メニュー の場合:

windows terminal の場合:

調べる方法は以下の通り

$ echo %PATH%
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.37.32822\bin\HostX86\x86;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\VCPackages;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\bin\Roslyn;C:\Program Files\Microsoft Visual Studio\2022\Community\Team Tools\Performance Tools;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\;C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\\x86;C:\Program Files (x86)\Windows Kits\10\bin\\x86;C:\Program Files\Microsoft Visual Studio\2022\Community\\MSBuild\Current\Bin\amd64;C:\Windows\Microsoft.NET\Framework\v4.0.30319;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\TortoiseGit\bin;C:\Program Files\dotnet\;C:\Users\developer\AppData\Roaming\Python\Scripts;C:\Users\developer\AppData\Roaming\Python\Scripts;C:\home\developer\.pyenv\pyenv-win\bin;C:\home\developer\.pyenv\pyenv-win\shims;C:\Program Files\Emacs\emacs-29.1\bin;C:\Users\developer\AppData\Local\Microsoft\WindowsApps;C:\Users\developer\AppData\Local\Microsoft\WinGet\Links;C:\Users\developer\.dotnet\tools;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\Linux\bin\ConnectionManagerExe

このパスは、git bash の PATH 変数に追加する
git bash を起動し以下を実施する。

# .add_path_vs2022 というファイルを作成し、PATH変数に先ほどのvs2022パスを追加する
$ cd ~
$ vim .add_path_vs2022
export PATH=$PATH:"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.37.32822\bin\HostX86\x86;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\VCPackages;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\bin\Roslyn;C:\Program Files\Microsoft Visual Studio\2022\Community\Team Tools\Performance Tools;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\;C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\\x86;C:\Program Files (x86)\Windows Kits\10\bin\\x86;C:\Program Files\Microsoft Visual Studio\2022\Community\\MSBuild\Current\Bin\amd64;C:\Windows\Microsoft.NET\Framework\v4.0.30319;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\TortoiseGit\bin;C:\Program Files\dotnet\;C:\Users\developer\AppData\Roaming\Python\Scripts;C:\Users\developer\AppData\Roaming\Python\Scripts;C:\home\developer\.pyenv\pyenv-win\bin;C:\home\developer\.pyenv\pyenv-win\shims;C:\Program Files\Emacs\emacs-29.1\bin;C:\Users\developer\AppData\Local\Microsoft\WindowsApps;C:\Users\developer\AppData\Local\Microsoft\WinGet\Links;C:\Users\developer\.dotnet\tools;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja;C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\Linux\bin\ConnectionManagerExe"
  • ※ $ source ~/.add_path_vs2022 が必要なのは、$ poetry run python scripts/setup 、$ PGPT_PROFILES=local poetry run python -m private_gpt を実施するときのみかもしれない。。。
  • ※ この場合、source .add_path_vs2022 を毎回実行しないといけないので、vs2022 しか使わないのなら、.bash_profile に source .add_path_vs2022 を追記してもかまわない。

git bash に gcc インストール #

git bash を管理者権限で起動し以下を実施する

# gcc がインストールされてる場合は実施しなくてもいい
# $ gcc --version で 2023/11/1 現在で 13.2.0 なら動作実績がある。(privateGPT 0.1.0)
# $ pacman -Syu を実施して更新してから gcc をインストールしたいけど、git で "BUG: strbuf.c:404: your vsnprintf is broken (returned -1)" となってしまう場合があるのでやめたほうがいい
$ pacman -S mingw-w64-x86_64-gcc
# 確認
$ gcc --version
gcc.exe (Rev2, Built by MSYS2 project) 13.2.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty;
not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

privateGPT インストール #

git bash を起動し以下を実施する

# vs2022 のパスを通しておく  
$ source ~/.add_path_vs2022

# poetry 動作確認
$ poetry --version
Poetry (version 1.6.1)

# privateGPTインストール
$ git clone https://github.com/imartinez/privateGPT.git
$ cd privateGPT

# 3.11.x があることを確認
$ pyenv install --list
...
3.11.6
...
# ここでは 3.11.6 をインストールする
$ pyenv install 3.11.6
$ pyenv local 3.11.6

# python 動作確認
$ python -V
3.11.6

# 仮想環境をプロジェクトローカルに作成することを明示する
#  default だと null とっているので true にして privateGPT ディレクトリ内に.venvを配置する
$ poetry config virtualenvs.in-project true

# 仮想環境作成(.venvが作成される)
$ poetry install --with ui,local

ここからは、シンボルリンクが管理者権限でないと張れないらしいので、管理者権限で git bash を起動する

# vs2022 のパスを通しておく  
$ source ~/.add_path_vs2022

# privateGPT ディレクトリに移動
$ cd privateGPT
# 仮想環境を有効にする(activate)
$ poetry shell

# privateGPT をセットアップ(modelをダウンロードして配置してくれてるっぽい)
$ poetry run python scripts/setup

# GPU があるなら追加でビルド指定がある。。。けど何していいかわからん。。。。
# これ必要か不明。。。
# CMAKE_ARGS='-DLLAMA_CUBLAS=on' poetry run pip install --force-reinstall --no-cache-dir llama-cpp-python

実行 #

管理者権限で git bash を起動し以下を実施する

# vs2022 のパスを通しておく  
$ source ~/.add_path_vs2022

# privateGPT ディレクトリに移動
$ cd privateGPT
# 仮想環境を有効にする(activate)
$ poetry shell

# privateGPT用の web サーバ起動
# http://localhost:8001 , http://localhost:8001/docs  で待ち受けてるらしい。。。
$ PGPT_PROFILES=local poetry run python -m private_gpt

上記の状態でブラウザで http://localhost:8001 アクセスすると以下の画面が表示され会話可能な状態になる

ドキュメントを追加する #

今の状態だと会話できるだけなので、解析させたいドキュメントを追加する
ここでは以下のドキュメントを追加して実験する

$ emacs aws_clf.txt

クラウドプラクティショナーとは
クラウドプラクティショナーとは、AWSの認定資格の一つであり、クラウドの概念を含めAWSの主要サービスのテクノロジーやセキュリティなどAWSクラウドの知識とスキルを身に付けて効果的に利用できることの証明です。クラウドプラクティショナーは、AWSのサービスやユースケースのみならず、セキュリティや料金モデルなど幅の広い知識が必要とされます。

クラウドプラクティショナーで証明できる能力
クラウドプラクティショナーで証明できる能力としては、AWSクラウドが何なのか、またグローバルインフラストラクチャを定義でき、アーキテクチャ原理を説明スキル。 AWSプラットフォームの主なサービスと一般ユースケース、セキュリティとコンプライアンスの側面及び共有セキュリティモデルの説明スキル。請求、アカウントマネジメント、料金モデルの理解。AWSクラウドにおいてのデプロイと運用の重要点の説明スキルが挙げられます。

AWS認定試験内での位置づけ
AWSの認定試験の中では入門的なものとなっていて、エンジニアをはじめとして営業、マネージャー、コンサルタントとAWSに関わる人からの注目が高い資格です。また、クラウドプラクティショナーは日経SYSTEMSが実施した「ITエンジニアがこれから取得したい思うIT資格」の調査にて、No.1を獲得するなど世間の関心の高さも見て取れます。

学習方法
学習方法は参考書が重要ですが、AWSのサービスはアップデートするのが非常に早いため、参考書で網羅することは難しいと考えたほうが良いでしょう。そのためAWSではオンラインでデジタルセミナーなど受講することが可能で、いくつかは無料で提供されているため活用することをオススメします。また、試験の問題と傾向に慣れておく必要があるため事前に模擬試験や模擬問題集を解いておくと良いでしょう。

AWSクラウドプラクティショナー認定試験の概要
AWSクラウドプラクティショナー認定試験は、試験時間90分間、受験料11,000円(税別)、1000点満点中700点以上が合格ラインとされています。クラウドの概念、セキュリティ、テクノロジー、請求と料金と4つのカテゴリーに分かれて出題されます。

合格者には次回以降の模擬試験1回分が無料になり、試験1回分が半額になったりするなどの特典が与えられます。

追加する手順は以下の通り。
git bash 起動

# 上記の手順で設置した privateGPT ディレクトリに遷移する
$ cd privateGPT

# 検索対象エリア作成を作成し、aws_clf.txt を配置しておく
$ mkdir in_docs
$ cp aws_clf.txt in_docs/.

# 解析開始+常に監視
# おそらくこの状態だと、in_docs ディレクトリにドキュメントが配置されるたびに解析が実行されると思われる
# 追加するドキュメントないのであれば Ctrl+C で終了しても構わない
$ make ingest in_docs -- --watch

# ついでに、削除する場合は、解析を停止し、local_data 内を削除すればいいらしい(.gitignore以外)
$ git clean -fdx local_data
# もちろん、in_docs 内も削除したいなら、、、
$ rm -rf in_docs/*

上記、ドキュメント追加後に再度質問すると以下になる。

参考URL #