catch-img

【Llama2】Winodws CPUでのLlama.cppの使い方 | ローカル環境

この記事では、Windows環境のCPUを使ってLlama.cppによるテキスト生成をする方法(推論)について紹介しています。


目次[非表示]

  1. 1.Llama2とは
  2. 2.Windows環境のCPUでLlama2を動かす(Llama.cpp)
  3. 3.LLama 2 のモデル一覧
  4. 4.実行環境
  5. 5.Gitのインストール
  6. 6.w64devkitのインストール
  7. 7.Llama.cppのビルド
  8. 8.モデルのダウンロード
  9. 9.テキスト生成
    1. 9.1.プロンプトの実行
    2. 9.2.生成結果
    3. 9.3.日本語翻訳
  10. 10.LLMならGPUクラウド
  11. 11.まとめ


Llama2とは

Llama2(ラマツー)とは、Facebookを運営するMeta社が開発した言語生成AI(LLM)で、OpenAI社のChatGPTに匹敵するの性能を持っています。


Llama2の特徴としては、軽量モデルで高性能、そして無料で使えるオープンソースであるため、開発者にとって扱いやすいモデルになっています。

llama2


Llama2の詳細については、以下の記事で解説しています。


  Llama2とは?使い方・日本語性能・商用利用について解説 | 初心者ガイド この記事では、Llama2について幅広く解説しています。Llama2の性能や安全性、商用利用、日本語対応、様々な環境での使い方などに触れています。 業界最安級GPUクラウド | GPUSOROBAN


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の使い方は以下の記事で解説しています


  【Llama2】 Windows CPUでのllama-cpp-pythonの使い方 この記事では、Windows CPUのローカル環境を使ってLlama-cpp-pythonによるテキスト生成をする方法(推論)について紹介しています。 業界最安級GPUクラウド | GPUSOROBAN


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の最新バージョンをインストールします。

  Git - Downloading Package https://git-scm.com/download/win?_fsi=OWh5oBFR


自分のPCの32bit、64bitに合わせてインストーラーを選択します。

llama-cpp-widows+cpu


ダウンロードしたインストーラーを起動し、各ステップの[Next]ボタンをクリックしていきます。

ステップが多いですが、全てのステップでデフォルトの選択を変更することなく、連続して[Next]ボタンをクリックしていき、最後のステップで[install]ボタンをクリックします。

llama-cpp-widows+cpu


w64devkitのインストール

Githubにアクセスし、Windows 用のポータブル C / C++ 開発キットの[w64devkit]をダウンロードします。


  Releases 揃 skeeto/w64devkit Portable C and C++ Development Kit for x64 (and x86) Windows - skeeto/w64devkit GitHub


Githubを開いたら、[Assets]から[w64devkit-1.121.1.zip]をクリックしてダウンロードします。

llama-cpp-widows+cpu


ダウンロードが完了したら、ダウンロードしたファイルを右クリックし、[全て展開]を選択して解凍しておきます。


解凍が完了したら、解凍した[w64devkit]フォルダの配下にある[bin]フォルダにパスを通していきます。

Windows[スタート]の[検索窓]に”Powershell”と入力し、[管理者として実行する]をクリックします。

llama-cpp-widows+cpu


Powershellで次のコマンドを実行すると、[環境変数]の画面が表示されます。

Start C:\Windows\system32\rundll32.exe sysdm.cpl, EditEnvironmentVariables

llama-cpp-widows+cpu


[システム環境変数(S)]の一覧から[Path]の項目を選択し、[編集]をクリックします。

llama-cpp-widows+cpu


[新規(N)]ボタンをクリックし、入力欄にパスを入力し、[OK]ボタンを押します。

llama-cpp-widows+cpu


入力するパスは先ほど解凍した[w64devkit]フォルダの配下にある[bin]フォルダのパスです。

簡単にパスをコピーする方法は、[w64devkit]フォルダの配下にある[bin]フォルダを選択し、

[Shift]キーを押しながら[右クリック]して表示されるメニューから[パスのコピー]を選択します。

llama-cpp-widows+cpu


Llama.cppのビルド

Llama.cppのデータを格納するフォルダに移動して、[右クリック]から[Open Git Bash here]を選択します。

llama-cpp-widows+cpu


Git Bashで次のコマンドを実行し、llama.cppのリポジトリのクローンを作成します。

git clone https://github.com/ggerganov/llama.cpp

llama-cpp-widows+cpu


llama.cppフォルダに移動します

cd llama.cpp

llama-cpp-widows+cpu


Llama.cpp をビルドします。

make

llama-cpp-widows+cpu


モデルのダウンロード

HuggingFaceのサイトにアクセスし、検索窓に[TheBloke/Llama-2]と入力すると、

TheBloke/Llama-2-(7b or 13b or 70b)-Chat-GGUFが表示されます。


  Hugging Face – The AI community building the future. We’re on a journey to advance and democratize artificial intelligence through open source and open science. https://huggingface.co/


llama-cpp-windows


この記事ではTheBloke/Llama-2-7b-Chat-GGUFを選択しています。

*末尾がGGMLと書かれたものは古い形式になりますので、選ばないようにご注意ください。


モデルのページに遷移したら、[Files and versions]のタブを開きます。

llama-cpp-windows


モデルの一覧が表示されますので、ダウンロードする対象のモデルの[ダウンロード]アイコンにカーソルを合わせて、右クリックで[リンクのアドレス]を選択し、コピーします。

llama-cpp-windows


Git bashでモデルを格納するディレクトリに移動します。

cd ~/llama.cpp/models


先程コピーしたURLを使って、モデルをダウンロードします。

curl -O -L https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF/resolve/main/llama-2-7b-chat.Q4_K_M.gguf


ダウンロードしたモデルのファイル名の末尾に[?download=true]が付いている場合はこの部分を除外する形でファイル名を変更してください。


テキスト生成

プロンプトの実行

熱帯魚を購入するのに何が必要かというプロンプトを実行してます。

~/llama.cpp/main -ngl 32 -m ~/llama.cpp/models/llama-2-7b-chat.q4_K_M.gguf --color -c 4096 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "[INST] <<SYS>>\nWhat you need to keep tropical fish?\n<</SYS>>\n{prompt}[/INST]"


生成結果

 [INST] <<SYS>>\nWhat you need to keep tropical fish?\n<</SYS>>\n{prompt}[/INST]  To keep tropical fish, you will need the following:

Aquarium: A sturdy and well-maintained aquarium is essential for housing tropical fish. The size of the aquarium will depend on the number and size of the fish you plan to keep.
Water: Tropical fish require warm water, typically between 72°F and 82°F (22°C to 28°C). You will need to use a water heater to maintain the desired temperature range.
Decorations: Tropical fish appreciate a well-decorated aquarium with plants, rocks, and other hiding places. This will help them feel more secure and comfortable in their environment.
Filters: A good filter system is crucial for maintaining clean and healthy water conditions in an aquarium. There are different types of filters available, including mechanical, biological, and chemical filters.
Food: Tropical fish require a varied diet that includes both meaty and plant-based foods. You can feed them flake food, pellets, or live foods such as brine shrimp or bloodworms.
Gravel or substrate: A good quality gravel or substrate is important for the overall health of your aquarium. It helps to filter the water and provides a comfortable surface for the fish to swim on.
Lighting: Tropical fish require adequate lighting to thrive. You can use either LED or fluorescent lights, depending on your preference.
Water conditioner: Tropical fish are sensitive to changes in water chemistry, so it's important to use a water conditioner to remove chlorine and heavy metals from the water.
Test kits: You will need test kits to monitor the water quality in your aquarium, including pH, ammonia, nitrite, and nitrate levels.
Water changes: Regular water changes are important for maintaining a healthy environment for your tropical fish. You should change about 10-15% of the water every week.
Fish net: A good quality fish net is essential for removing fish from one location to another in the aquarium.
Water heater: If you plan to keep tropical fish that require a specific temperature range, you will need a water heater to maintain the desired temperature.
Algae scraper: Algae can grow rapidly in an aquarium, so it's important to use an algae scraper to remove it from the glass walls and decorations.
Aquarium cleaning supplies: You will need various cleaning supplies such as a scrubber, algae magnet, and gravel vacuum to keep your aquarium clean and well-maintained.
By providing these basic necessities, you can create a healthy and thriving environment for your tropical fish to live and flourish. [end of text]
llama_print_timings:        load time =   11687.78 ms
llama_print_timings:      sample time =     683.10 ms /   641 runs   (    1.07 ms per token,   938.37 tokens per second)
llama_print_timings: prompt eval time =   11086.93 ms /    34 tokens (  326.09 ms per token,     3.07 tokens per second)
llama_print_timings:        eval time = 7029687.04 ms /   640 runs   (10983.89 ms per token,     0.09 tokens per second)
llama_print_timings:       total time = 7047860.98 ms
Log end


    日本語翻訳

    [INST] <<SYS>>\n熱帯魚を飼うのに必要なものは何ですか?\n<</SYS>>\n{prompt}[/INST] 熱帯魚を飼うには次のものが必要です:
    
    水槽: 熱帯魚を飼育するには、丈夫で手入れの行き届いた水槽が不可欠です。 水槽のサイズは、飼育する魚の数と大きさによって異なります。
    水: 熱帯魚は通常 22°C ~ 28°C (72°F ~ 82°F) の温水を必要とします。 希望の温度範囲を維持するには給湯器を使用する必要があります。
    装飾: 熱帯魚は、植物、岩、その他の隠れ場所でよく装飾された水槽を好みます。 これにより、彼らは自分たちの環境でより安全で快適に感じることができます。
    フィルター: 水槽内の清潔で健康的な水の状態を維持するには、優れたフィルター システムが不可欠です。 機械式フィルター、生物学的フィルター、化学フィルターなど、さまざまな種類のフィルターが利用可能です。
    餌: 熱帯魚には、肉と植物ベースの餌の両方を含む、多様な餌が必要です。 フレークフード、ペレット、またはブラインシュリンプや赤虫などの生きた餌を与えることができます。
    砂利または底床: 良質の砂利または底床は、水槽全体の健康にとって重要です。 水を濾過し、魚が泳ぐのに快適な水面を提供します。
    照明: 熱帯魚が成長するには適切な照明が必要です。 LED照明でも蛍光灯でもお好みに合わせてご使用いただけます。
    水質調整剤: 熱帯魚は水質の変化に敏感なので、水中から塩素や重金属を除去するために水質調整剤を使用することが重要です。
    テストキット: pH、アンモニア、亜硝酸塩、硝酸塩レベルなど、水槽の水質を監視するにはテストキットが必要です。
    水替え: 熱帯魚の健康的な環境を維持するには、定期的な水替えが重要です。 毎週、水を約 10 ~ 15% 交換する必要があります。
    魚網: 水槽内のある場所から別の場所へ魚を移動させるには、高品質の魚網が不可欠です。
    給湯器: 特定の温度範囲を必要とする熱帯魚を飼育する場合は、希望の温度を維持するために給湯器が必要になります。
    藻スクレーパー: 藻は水槽内で急速に成長する可能性があるため、藻スクレーパーを使用してガラスの壁や装飾品から藻を取り除くことが重要です。
    水族館の清掃用品: 水槽を清潔に保ち、適切に維持するには、スクラバー、藻類用マグネット、砂利掃除機など、さまざまな清掃用品が必要です。
    これらの基本的な必需品を提供することで、熱帯魚が生きて繁栄できる健康的で繁栄した環境を作り出すことができます。 
    [end of text]


      LLMならGPUクラウド

      Llama2やその他のLLMを使用する際には、モデルサイズやタスクに応じて必要なスペックが異なります。

      LLMで使用されるGPUは高価なため、買い切りのオンプレミスよりも、コストパフォーマンスが高く柔軟な使い方ができるGPUクラウドをおすすめしています。


      GPUクラウドのメリットは以下の通りです。

      • 必要なときだけ利用して、コストを最小限に抑えられる
      • タスクに応じてGPUサーバーを変更できる
      • 需要に応じてGPUサーバーを増減できる
      • 簡単に環境構築ができ、すぐに開発をスタートできる
      • 新しいGPUを利用できるため、陳腐化による買い替えが不要
      • GPUサーバーの高電力・熱管理が不要


      コスパをお求めなら、メガクラウドと比較して50%以上安いGPUクラウドサービス「GPUSOROBAN」がおすすめです。

        生成AIに最適なGPUクラウド「高速コンピューティング」|GPUSOROBAN GPUSOROBANの高速コンピューティングは、NVIDIAの高速GPUが業界最安級で使えるクラウドサービスです。NVIDIA A100を始めする高速GPUにより、画像生成AI、大規模言語モデルLLM、機械学習、シミュレーションを高速化します。 業界最安級GPUクラウド | GPUSOROBAN


      まとめ

      この記事では、Windows環境のCPUでLlama.cppを用いて推論をする方法を紹介しました。

      CPUでは生成までにかなりの時間を要しますので、GPUの使用を推奨しています。

      Llama2に関する詳細な情報は、以下の記事でまとめて紹介していますので、あわせてご覧ください。


        Llama2とは?使い方・日本語性能・商用利用について解説 | 初心者ガイド この記事では、Llama2について幅広く解説しています。Llama2の性能や安全性、商用利用、日本語対応、様々な環境での使い方などに触れています。 業界最安級GPUクラウド | GPUSOROBAN


      MORE INFORMATION

      GPUでお困りの方はGPUSOROBANで解決!
      お気軽にご相談ください

      10日間無料トライアル
      詳しい資料はこちら
      質問・相談はこちら