【Llama2】Winodws CPUでのLlama.cppの使い方 | ローカル環境
この記事では、Windows環境のCPUを使ってLlama.cppによるテキスト生成をする方法(推論)について紹介しています。
目次[非表示]
- 1.Llama2とは
- 2.Windows環境のCPUでLlama2を動かす(Llama.cpp)
- 3.LLama 2 のモデル一覧
- 4.実行環境
- 5.Gitのインストール
- 6.w64devkitのインストール
- 7.Llama.cppのビルド
- 8.モデルのダウンロード
- 9.テキスト生成
- 10.LLMならGPUクラウド
- 11.まとめ
Llama2とは
Llama2(ラマツー)とは、Facebookを運営するMeta社が開発した言語生成AI(LLM)で、OpenAI社のChatGPTに匹敵するの性能を持っています。
Llama2の特徴としては、軽量モデルで高性能、そして無料で使えるオープンソースであるため、開発者にとって扱いやすいモデルになっています。
Llama2の詳細については、以下の記事で解説しています。
Windows環境のCPUでLlama2を動かす(Llama.cpp)
Llama.cppはもともとMacBookでLlamaを実行することを目指して開発されたランタイムですが、Windows環境でも利用することができます。
Windows環境のCPUを利用して、4bit量子化されたLlama2モデルを実行することが可能です。
CPUでLlama2の推論を行うことが出来ますが、生成までに時間がかかりますので、GPUの使用を推奨しています。
Llama.cppはC言語で書かれたプログラムですが、Pythonで使えるllama-cpp-pythonもあります。
llama-cpp-pythonの使い方は以下の記事で解説しています
LLama 2 のモデル一覧
「Llama.cpp」を利用するには、「Llama 2」モデルをGGUF形式に変換する必要があります。HuggingFaceには、変換済みのモデルが公開されています。
Llama.cppの量子化モデルは、2bit~8bitまでたくさんのバリエーションがありますが、大半のモデルは低品質になりますので推奨されていません。
HiggingFaceで推奨されているモデルは以下の通りです。
量子化メソッドの[Q4_K_M]、[Q5_K_S]、[Q5_K_M]が推奨されています。
model_id |
メモリ(RAM)の使用量※ |
ストレージの使用量 |
量子化メソッド |
量子化bit |
llama-2-7b-chat.Q4_K_M.gguf |
6.58 GB |
4.08GB |
Q4_K_M |
4bit |
llama-2-7b-chat.Q5_K_S.gguf |
7.15 GB |
4.65GB |
Q5_K_S |
5bit |
llama-2-7b-chat.Q5_K_M.gguf |
7.28 GB |
4.78GB |
Q5_K_M |
5bit |
llama-2-13b-chat.Q4_K_M.gguf |
10.37 GB |
7.87 GB |
Q4_K_M |
4bit |
llama-2-13b-chat.Q5_K_S.gguf |
11.47 GB |
8.97 GB |
Q5_K_S |
5bit |
llama-2-13b-chat.Q5_K_M.gguf |
11.73 GB |
9.23 GB |
Q5_K_M |
5bit |
llama-2-70b-chat.Q4_K_M.gguf |
43.92 GB |
41.42 GB |
Q4_K_M |
4bit |
llama-2-70b-chat.Q5_K_S.gguf |
33.07 GB |
30.57 GB |
Q5_K_S |
5bit |
llama-2-70b-chat.Q5_K_M.gguf |
51.25 GB |
48.75 GB |
Q5_K_M |
5bit |
※メモリ(RAM)の使用量には、GPUオフロードが含まれていません。GPUを使用する場合は、RAMの使用量が減り、代わりにGPUメモリ(VRAM)が使用されます。
※Llama.cppで扱うモデル形式は過去GGMLが使われていましたが、現在はGGUFが使われています。
実行環境
この記事では以下のスペックのローカル環境のWidows PCを使用しました。
- OS:Windows 11
- CPU:Intel Core i5-113
- メモリ:8GB
Gitのインストール
こちらのページからGitの最新バージョンをインストールします。
自分のPCの32bit、64bitに合わせてインストーラーを選択します。
ダウンロードしたインストーラーを起動し、各ステップの[Next]ボタンをクリックしていきます。
ステップが多いですが、全てのステップでデフォルトの選択を変更することなく、連続して[Next]ボタンをクリックしていき、最後のステップで[install]ボタンをクリックします。
w64devkitのインストール
Githubにアクセスし、Windows 用のポータブル C / C++ 開発キットの[w64devkit]をダウンロードします。
Githubを開いたら、[Assets]から[w64devkit-1.121.1.zip]をクリックしてダウンロードします。
ダウンロードが完了したら、ダウンロードしたファイルを右クリックし、[全て展開]を選択して解凍しておきます。
解凍が完了したら、解凍した[w64devkit]フォルダの配下にある[bin]フォルダにパスを通していきます。
Windows[スタート]の[検索窓]に”Powershell”と入力し、[管理者として実行する]をクリックします。
Powershellで次のコマンドを実行すると、[環境変数]の画面が表示されます。
[システム環境変数(S)]の一覧から[Path]の項目を選択し、[編集]をクリックします。
[新規(N)]ボタンをクリックし、入力欄にパスを入力し、[OK]ボタンを押します。
入力するパスは先ほど解凍した[w64devkit]フォルダの配下にある[bin]フォルダのパスです。
簡単にパスをコピーする方法は、[w64devkit]フォルダの配下にある[bin]フォルダを選択し、
[Shift]キーを押しながら[右クリック]して表示されるメニューから[パスのコピー]を選択します。
Llama.cppのビルド
Llama.cppのデータを格納するフォルダに移動して、[右クリック]から[Open Git Bash here]を選択します。
Git Bashで次のコマンドを実行し、llama.cppのリポジトリのクローンを作成します。
llama.cppフォルダに移動します
Llama.cpp をビルドします。
モデルのダウンロード
HuggingFaceのサイトにアクセスし、検索窓に[TheBloke/Llama-2]と入力すると、
TheBloke/Llama-2-(7b or 13b or 70b)-Chat-GGUFが表示されます。
この記事ではTheBloke/Llama-2-7b-Chat-GGUFを選択しています。
*末尾がGGMLと書かれたものは古い形式になりますので、選ばないようにご注意ください。
モデルのページに遷移したら、[Files and versions]のタブを開きます。
モデルの一覧が表示されますので、ダウンロードする対象のモデルの[ダウンロード]アイコンにカーソルを合わせて、右クリックで[リンクのアドレス]を選択し、コピーします。
Git bashでモデルを格納するディレクトリに移動します。
先程コピーしたURLを使って、モデルをダウンロードします。
ダウンロードしたモデルのファイル名の末尾に[?download=true]が付いている場合はこの部分を除外する形でファイル名を変更してください。
テキスト生成
プロンプトの実行
熱帯魚を購入するのに何が必要かというプロンプトを実行してます。
生成結果
日本語翻訳
LLMならGPUクラウド
Llama2やその他のLLMを使用する際には、モデルサイズやタスクに応じて必要なスペックが異なります。
LLMで使用されるGPUは高価なため、買い切りのオンプレミスよりも、コストパフォーマンスが高く柔軟な使い方ができるGPUクラウドをおすすめしています。
GPUクラウドのメリットは以下の通りです。
- 必要なときだけ利用して、コストを最小限に抑えられる
- タスクに応じてGPUサーバーを変更できる
- 需要に応じてGPUサーバーを増減できる
- 簡単に環境構築ができ、すぐに開発をスタートできる
- 新しいGPUを利用できるため、陳腐化による買い替えが不要
- GPUサーバーの高電力・熱管理が不要
コスパをお求めなら、メガクラウドと比較して50%以上安いGPUクラウドサービス「GPUSOROBAN」がおすすめです。
大規模なLLMを計算する場合は、NVIDIA H100のクラスタが使える「GPUSOROBAN AIスパコンクラウド」がおすすめです。
まとめ
この記事では、Windows環境のCPUでLlama.cppを用いて推論をする方法を紹介しました。
CPUでは生成までにかなりの時間を要しますので、GPUの使用を推奨しています。
Llama2に関する詳細な情報は、以下の記事でまとめて紹介していますので、あわせてご覧ください。