見出し画像

LLMsをローカルで動かしたい〜備忘録〜

前回の記事で、どうにかLLmaは動いたけど、あとはそのまま放置してました。その後、StableAIのモデルがでたという話もあり、また再度、トライした備忘録です。

以下のツイートをみてなんかできそうと思ったのでトライ。

振り返ってみて、頭の中の整理をChatGPTにしてもらいます。

1. **Windows**: オペレーティングシステム(OS)で、コンピュータの基本的な機能とインタフェースを提供します。

2. **Python**: プログラミング言語で、シンプルな構文と多くのライブラリを持ち、機械学習やデータ解析など多岐にわたる分野で使用されます。

3. **Conda**: Condaは、環境とパッケージ管理ツールで、異なるバージョンや依存関係のパッケージを隔離された環境で管理することができます。

4. **venv**: Pythonの仮想環境を作成するツールで、プロジェクトごとに異なるパッケージやバージョンを管理します。Condaと同様の役割を果たしますが、Condaは単にPythonの環境だけでなく他の言語やツールにも対応しています。

5. **CUDA**: NVIDIAのGPUを活用して高速な並列計算を行うためのプラットフォームです。深層学習などの分野で効果的に利用されます。

6. **PyTorch**: 機械学習や深層学習のためのライブラリで、Tensor操作に特化し、ニューラルネットワークモデルの構築やトレーニングを提供します。

関係性を説明します。

- **CondaとWindows**: CondaはWindows上でも動作し、Windows環境でPythonや他のプログラムの環境やパッケージを効果的に管理できます。

- **Condaとvenv**: venvはPythonの仮想環境を作成するツールで、Condaも仮想環境を管理するツールです。しかし、CondaはPythonだけでなく、複数のプログラミング言語やツールに対応するため、より幅広い環境管理が可能です。

- **CondaとCUDA**: Condaは環境管理の一環としてCUDAを含む異なるバージョンのライブラリやツールを管理できます。これにより、プロジェクトごとに異なるバージョンのCUDAやPyTorchを使用することができます。

- **PyTorchとCUDA**: PyTorchはCUDAを活用してGPU上で高速な深層学習モデルのトレーニングや推論を行います。この組み合わせにより、計算速度の向上が可能です。

- **PythonとPyTorchとConda**: Condaを使用してPython環境を管理し、その中でPyTorchをインストールして機械学習モデルを開発できます。また、Condaを通じてCUDAや他の必要なツールも管理できます。

AnacondaとMinicondaは、両方ともデータサイエンスや機械学習のための環境管理ツールで、Pythonと関連ツール・ライブラリのインストールと管理を容易にするために開発されました。以下にそれぞれの相違点とメリット・デメリットを説明します。

**Anaconda:**

**相違点:**
- **バンドルされているパッケージ数**: Anacondaは、多くのデータサイエンスや科学技術関連のパッケージを含む大規模なディストリビューションです。NumPy、Pandas、Matplotlib、Jupyter Notebookなど、多くのパッケージが最初から含まれています。

**メリット:**
- **簡単なセットアップ**: Anacondaはすべての主要なツールやライブラリが最初からインストールされているため、セットアップが簡単です。
- **バージョンの依存関係の管理**: Anacondaはパッケージ同士のバージョンの依存関係を自動的に解決してくれるため、環境の構築や管理が容易です。
- **GUIベースの環境管理**: Anaconda Navigatorと呼ばれるGUIベースのツールを使用して、環境の作成・切り替え・パッケージの管理などを行うことができます。

**デメリット:**
- **ディスクスペースの使用量**: Anacondaには多くのパッケージが含まれているため、ディスクスペースの使用量が比較的大きくなる場合があります。

**Miniconda:**

**相違点:**
- **最小限のインストール**: Minicondaは、Anacondaよりも最小限のパッケージしか含まれていない軽量なディストリビューションです。基本的なCondaパッケージとConda自体が含まれています。

**メリット:**
- **カスタマイズ可能な環境**: Minicondaをインストール後、必要なツールやライブラリを選んで追加でインストールすることができます。必要なものだけをインストールするため、ディスクスペースの節約ができます。
- **軽量**: パッケージの最小構成のため、ディスクスペースの使用量が少なくて済みます。

**デメリット:**
- **手動でパッケージを追加する必要がある**: Anacondaに比べて初期状態では必要なツールやライブラリが含まれていないため、必要なものを手動でインストールする必要があります。

**どちらを選ぶべきか:**
- もし最初から多くのツールやライブラリを使用する予定であれば、Anacondaを選ぶことが便利です。
- カスタマイズ性を重視して、必要なツールやライブラリだけを選びたい場合は、Minicondaを選ぶことが適しています。

どちらも状況やニーズに合わせて選択することが大切です。

minicondaを選んで、HPからインストール。
path設定でうまく行かなかったので、アンイストールして、インストールのパネル上でおすすめされてないけど、パスの設定も全部チェックをいれて再インストール。

condaとpythonのバージョンをVSCodeのterminalで確認できる。(その前に、拡張でterminalを入れろとBardが言ったので、どれかもう忘れたけど、terminalをいれたら、terminalの文字表示がハイカラになった)

pytorchのインストールに手こずった記録
pythonのバージョンの関係で、1系統のHPからのダウンロードがうまく行かず、2系統でインストールができた。

PyTorchのバージョン1系統と2系統にはいくつかの違いがあります。以下でそれぞれの特徴や違いを解説します。

**PyTorch 1系統:**

PyTorch 1.xシリーズは初期のバージョンであり、多くの機能を提供しています。以下に主な特徴を示します。

1. **静的グラフ**: PyTorch 1系統では、計算グラフが動的に構築されるのではなく、静的な計算グラフを使用しています。これにより、柔軟性が犠牲になるかわりに、最適化やデバッグが容易になります。

2. **TorchScript**: PyTorch 1.0からはTorchScriptが導入され、Pythonコードを静的な計算グラフにコンパイルできるようになりました。これにより、モデルの最適化やデプロイメントが向上しました。

3. **動的な計算グラフ**: PyTorch 1系統は、動的な計算グラフをサポートしており、ループや条件文といった動的な構造を含むモデルの構築が容易です。

4. **コミュニティの成熟度**: PyTorch 1系統は、ディープラーニングコミュニティで非常に広く使用されており、豊富なドキュメンテーションやチュートリアルが利用可能です。

**PyTorch 2系統:**

PyTorch 2.xシリーズは、1系統の弱点を補うために導入された新しいバージョンです。以下に主な特徴を示します。

1. **トレーシングモード**: PyTorch 2系統では、動的グラフを使用しながらも、トレーシングモードを使用して高速化することができます。これにより、1系統の動的な計算グラフと静的な計算グラフの利点を組み合わせることができます。

2. **TorchScript 2.0**: PyTorch 2系統では、TorchScriptが改良され、より多くのPython構文をサポートし、パフォーマンスを向上させることができます。

3. **パフォーマンスの向上**: PyTorch 2系統は、モデルのトレーニングと推論のパフォーマンスを向上させるための最適化が進められています。

4. **メンテナンス性とバグ修正**: PyTorch 2系統は、コードベースの改善とバグ修正が行われ、メンテナンス性が向上しています。

選択肢の決定は、プロジェクトのニーズや要件によります。PyTorch 1系統は広く使われており、多くの情報が利用可能です。一方、PyTorch 2系統はより高速で最適化された機能を提供しますが、新しいバージョンなので一部の機能が未熟な場合があります。プロジェクトの性質や要件に応じて、適切なバージョンを選択することが大切です。

以下に`requirements.txt`についての簡潔な説明を提供します。

**`requirements.txt`とは何ですか?**

`requirements.txt`は、Pythonプロジェクトの依存関係を指定するためのテキストファイルです。このファイルには、プロジェクトが必要とするライブラリやモジュールの名前とバージョン情報が含まれます。他の環境やマシンでプロジェクトを再現する際に、依存関係を確実に満たすために使用されます。

**例:**

```
numpy==1.19.5
pandas>=1.1.0
matplotlib
requests~=2.25.1
```

- `numpy==1.19.5`: 特定のバージョン1.19.5のNumPyを要求
- `pandas>=1.1.0`: 1.1.0以上のPandasを要求
- `matplotlib`: どのバージョンでもMatplotlibを要求
- `requests~=2.25.1`: 2.25.1系統のバージョンを要求

**インストール:**

```
pip install -r requirements.txt
```

このコマンドを使って、`requirements.txt`内に指定されたライブラリとバージョンがインストールされます。

**生成と共有:**

```
pip freeze > requirements.txt
```

`pip freeze`コマンドを使用して、現在の環境にインストールされているライブラリとそのバージョン情報を一覧化し、`requirements.txt`を生成することもできます。また、他の人とプロジェクトを共有する際に、同じ環境を再現するために`requirements.txt`を提供することが一般的です。

上記のrequirements.txtのところで、ひっかかって、エラーを読解させたら、navidia cuda toolkitが必要と言われて、インストール。

このエラーは、CUDA_HOMEという環境変数が設定されていないために発生しています。CUDA_HOMEは、NVIDIAのGPUコンピューティングプラットフォームのCUDAツールキットのインストールパスを指す環境変数です。

このエラーを解決するためには、以下の手順に従ってください。

1. **CUDAをインストールする**: まず、NVIDIAの公式ウェブサイトから適切なCUDAツールキットをダウンロードし、インストールしてください。

2. **CUDA_HOME環境変数を設定する**:
- Windowsの場合:
- スタートメニューを右クリックし、システムを選択して「システム情報」を開きます。
- 左側の「システムの詳細設定」をクリックします。
- 「環境変数」ボタンをクリックします。
- システム環境変数のセクションで、「新規作成」をクリックします。
- 変数名に「CUDA_HOME」、変数値にCUDAツールキットのインストールパス(通常は `C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\バージョン番号`)を入力します。

3. **システムを再起動する**:
環境変数の変更を反映させるために、システムを再起動してください。

4. **Pythonパッケージのインストールを再試行する**:
ターミナルでプロジェクトのディレクトリに移動し、`requirements.txt`ファイルに記載されているパッケージをインストールし直してみてください。これにより、`auto-gptq`パッケージのセットアッププロセスが正常に実行されるはずです。

上記の手順に従って、CUDA_HOME環境変数を設定し、必要なCUDAパッケージが正しくインストールされるようにしてください。これにより、エラーが解消されるはずです。

NVIDIA CUDA Toolkit(以下、CUDA Toolkit)は、NVIDIAが開発した並列コンピューティングプラットフォームであり、GPU(グラフィックスプロセッシングユニット)を利用して高性能な計算を行うためのソフトウェアとツールのセットです。CUDA Toolkitは、GPUを利用した高速な並列計算を可能にし、特に科学計算やディープラーニングなどの分野で広く使用されています。

主な特徴と要点は以下の通りです。

1. **GPUコンピューティング**: CUDA Toolkitを使用することで、一般的なGPUを高性能なコンピューティングデバイスとして活用できます。これにより、従来のCPUに比べて数百倍から数千倍もの高速化が可能です。

2. **並列処理**: CUDA Toolkitは、多数のスレッドやワープ(ハードウェア上のスレッドグループ)を使用して、同時に多くの演算を行うことができる並列処理をサポートします。これにより、大規模な計算問題を効率的に処理できます。

3. **GPUカーネル**: CUDA Toolkitでは、GPU上で実行されるカーネル関数を記述することができます。これにより、GPUの並列処理能力を最大限に活用して計算を実行することができます。

4. **深層学習**: CUDA Toolkitは、ディープラーニングフレームワーク(例: TensorFlow、PyTorch)やライブラリ(例: cuDNN)と連携し、ニューラルネットワークのトレーニングや推論を高速化するために使用されます。

5. **GPUアクセラレーション**: CUDA Toolkitは、一般的なアプリケーションに対してもGPUアクセラレーションを提供します。例えば、科学計算やシミュレーション、ビデオ処理など、さまざまな分野で高速な計算が可能です。

総括すると、NVIDIA CUDA Toolkitは、一般のGPUを高性能な計算デバイスに変え、並列処理と高速な演算を可能にするプラットフォームです。これにより、科学、工学、データ科学、機械学習などの分野で大規模な計算を効率的に行うことができるようになります。

こんどこそ走るかなと思ったら、またエラー。以下の設定をしないと駄目と言われた。

Windowsの開発者モード(Developer Mode)は、Windows 10およびWindows 11において、開発者向けの機能やツールを有効にするための設定です。開発者モードを有効にすると、コンピュータに対する制限が緩和され、開発者がより自由にカスタマイズやデバッグを行うことができるようになります。具体的な例としては、システムファイルの変更やデバッグツールの利用が挙げられます。

開発者モードを有効にする手順は以下の通りです(Windows 10およびWindows 11で共通です):

1. **スタートメニューを開く**: Windowsアイコンをクリックしてスタートメニューを開きます。

2. **設定を開く**: 歯車アイコンをクリックして「設定」を開きます。

3. **更新とセキュリティを選択**: 設定ウィンドウで「更新とセキュリティ」を選択します。

4. **開発者向けに開く**: 左側のメニューから「開発者向け」を選択します。

5. **開発者モードを有効にする**: 「開発者モード」のセクションで、「開発者モード」のトグルスイッチをオンにします。

6. **確認ダイアログを閉じる**: ダイアログが表示される場合、確認のためのメッセージが表示されます。それを閉じます。

これで開発者モードが有効になりました。有効にした後、Windowsの設定やカスタマイズがより柔軟に行えるようになりますが、注意が必要です。開発者モードを有効にすることでセキュリティリスクが増加する可能性があるため、注意深く使用することが重要です。開発者モードが不要な場合は、セキュリティを保つために無効にしておくことも検討してください。

なんか注意してしないといけないらしいけど、ここまで来たから、開発者モードにすることにした。

ここまできて、どうにか動きました。StabiityAIやRinnaモデル。

上のようにストレートに進んだわけでなくて、BardやChatGPTに尋ねながら、あっちいったり、こっちいったり彷徨いましたが、振り返って整理したら、こんな道筋だったのだろうなという覚書です。

まだ理解できてないこと・・・いろいろ。
BaseモデルとInstructモデルって何がどう違うの?
それ以前に、VSCodeの使い方がまだよく理解できていない。フォルダ単位でプロジェクト管理なのかな? 操作方法がみえていなのでどっかで学習しないと・・・

備忘録記事でした。


#IT #ChatGPT #テクノロジー #使い方 #入門 #始め方 #利用方法 #ChatGPTの使い方 #ChatGPTに訊いてみた #AI #AIとやってみた

この記事が参加している募集

この記事を最後までご覧いただき、ありがとうございます!もしも私の活動を応援していただけるなら、大変嬉しく思います。