ollamaのダウンロード
https://ollama.com/download/windows
ollamaのインストール
OllamaSetup.exe
インストールが成功したか確認
PS C:\Users\admin> ollama --version
ollama version is 0.14.2
コード解析向けLLMを入れる
PS C:\Users\admin> ollama pull codellama:7b
PS C:\Users\admin> ollama pull deepseek-coder:6.7b
PS C:\Users\admin> ollama pull mistral
今、入っているLLM
PS C:\Users\admin> ollama list
NAME ID SIZE MODIFIED
mistral:latest 6577803aa9a0 4.4 GB 17 seconds ago
deepseek-coder:6.7b ce298d984115 3.8 GB 28 minutes ago
codellama:7b 8fdf8f752f6e 3.8 GB 19 hours ago
とりあえず起動して、自分が作ったpython を実行してみる
解析させたコード
import hashlib
import csv
import base64
base64_salt = "IgIMZ9QskMK0sqkNum5WWw=="
salt = base64.b64decode(base64_salt)
password_range = range(10000)
r_table = []
for password in password_range:
password_str = f"{password:04d}"
salted_password = salt + password_str.encode() + salt
hash_result = hashlib.sha256(salted_password).hexdigest()
r_table.append([password_str, hash_result])
csv_filename = "r_table.csv"
with open(csv_filename, mode='w', newline='') as file:
writer = csv.writer(file)
writer.writerow(["Password", "Hash"])
writer.writerows(r_table)
csv_filename
やばい、intel CORE i7 が発熱し、ファンが唸り声を上げて、回り始めた。
CPUの使用率 60%台後半
GPUの使用率 0%
シールを見ると、NVIDIA GEFORCE RTX と書いてるけど、型番は?
PS C:\Users\admin> nvidia-smi
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 572.83 Driver Version: 572.83 CUDA Version: 12.8 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 4060 ... WDDM | 00000000:01:00.0 Off | N/A |
| N/A 47C P0 17W / 115W | 0MiB / 8188MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
GPUを使うように
PS C:\Users\admin> setx OLLAMA_CUDA 1
成功: 指定した値は保存されました。
再起動
今度は?
チャッピー並みの速度が出たが、英語だ。
日本語にして
無視
チャッピーにお願い方法を聞いたら、「日本語で説明してください」と入力せよとアドバイス
その結果
このスクリプトは、指定されたパスワード範囲から SHA-256 ハッシュを生成する Python スクリプトです。以下が含まれています。
1. `import hashlib`: この行は、Python でハッシュ生成に使用される `hashlib` モジュールをインポートします。
2. `import csv`: この行は、CSVファイルを読み書きするために使用される `csv` モジュールをインポートします。
3. `import base64`: この行は、Base64エンコーディングとデコードを行うために使用される `base64` モジュールをインポートします。
4. `base64_salt = "IgIMZ9QskMK0sqkNum5WWw=="`: この行では、Base64エンコーディングされた salt を定義します。
5. `salt = base64.b64decode(base64_salt)`: この行では、Base64エンコーディングされた salt をデコードして変数 `salt` に代入します。
6. `password_range = range(10000)`: この行では、パスワード範囲を定義します。
7. `r_table = []`: この行では、空のリスト `r_table` を初期化します。
8. `for password in password_range`: このループでは、パスワード範囲内の各パスワードについて SHA-256 ハッシュを生成します。
9. `password_str = f"{password:04d}"`: この行では、現在のパスワードを文字列に変換し、先頭にゼロを追加します。
10. `salted_password = salt + password_str.encode() + salt`: この行では、 salt と現在のパスワード文字列を連結して salting されたパスワードを生成します。
11. `hash_result = hashlib.sha256(salted_password).hexdigest()`: この行では、 `hashlib` モジュールを使用して salting されたパスワードに対する SHA-256 ハッシュを生成し、 `.hexdigest()` メソッドを使用して16進数のダイジェストを文字列として取得します。
12. `r_table.append([password_str, hash_result])`: この行では、パスワード文字列とそれに対するハッシュ結果をリストに追加します。
13. `with open(csv_filename, mode='w', newline='') as file`: この行では、CSVファイルを書き込むために使用されるファイルオブジェクトを作成します。
14. `writer = csv.writer(file)`: この行では、CSVファイルの書き込みに使用される `csv.writer()` 関数を使用して、ファイルオブジェクトに対する CSVライターオブジェクトを作成します。
15. `writer.writerow(["Password", "Hash"])`: この行では、CSVファイルにヘッダー行を書き込みます。
16. `writer.writerows(r_table)`: この行では、リスト `r_table` の各要素を CSVファイルに書き込みます。各行には、パスワード文字列とそれに対するハッシュ結果が含まれています。
17. `csv_filename`: この行では、出力される CSVファイルの名前を定義します。
LLMの比較
codellama:7b
「日本語にして」は無視される
「日本語で説明してください」とお願いしないと日本語にならない
「概要だけにして」も無視される
deepseek-coder:6.7b
質問も回答も英語のみ
mistral
codellama:7bと類似の動き
codellama:7bより優れている点はよくわからなかった
結局、codellama:7bだけ残して、他は消した。
ollama + codellama:7b のディスク使用量 約17GB
GPUがintelオンボードの場合でも動くかは不明。