先日の「ローカルLLM+RAG」をGPU上+より大規模モデル(13b)でも動かせるようにしてみた
つい先日に「大規模言語モデル「ELYZA-7b」と自作小説「計算士と空中戦艦」で「RAG」をしてみた: EeePCの軌跡」という記事を書いたばかりですが、あれはCPUが前提でした。
が、やはりもっと大きなモデル使いたいし、GPU対応にもしておきたい、ということで追加でやってみました。
以下、元記事(大規模言語モデル「ELYZA-7b」と自作小説「計算士と空中戦艦」で「RAG」をしてみた: EeePCの軌跡)ができているという前提で、その先にやる手順を書きます。
CUDA 12.1の導入
pytorchとllama-cpp-pythonの両方に対応しているCUDAということで、12.1を使うことにしました。
インストールの方法は、
CUDA Toolkit 12.1 Downloads | NVIDIA Developer
からインストーラーをダウンロードし、それをダブルクリックしてインストールするだけです。
なお、最近のpytorchではcuDNNは不要らしいですが、心配な方は、
cuDNN Archive | NVIDIA Developer
から最新の一つ古いくらいのバージョンをダウンロードしておくといいでしょう。
pytorchのGPU対応
pytorchの公式サイト
Previous PyTorch Versions | PyTorch
にある通り、以下のコマンドを入れます。
(CPU版から上書きするコマンドにしてます)
> pip install --upgrade --force-reinstall torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu121
ここではとりあえず、前回と同じバージョンのtorchにしておきました。
llama-cpp-pythonのGPU版インストール
以下のコマンドを入れて、入手します。
> pip install llama-cpp-python --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cu121 --upgrade --force-reinstall --no-cache-dir
なお、llama-cpp-pythonのバージョンは前回の0.2.20から0.2.75と上がりますが、この方がCPU動作時でも早くていい感じでした。
13bモデルダウンロード
前回同様、gitで13bのモデルをダウンロードします。
> git lfs clone https://huggingface.co/mmnga/ELYZA-japanese-Llama-2-13b-fast-instruct-gguf/ --include "ELYZA-japanese-Llama-2-13b-fast-instruct-q8_0.gguf"
この「-fast-」とついたモデルは、精度そこそこで1.8倍速いらしいので、こっちを使うことにします。
プログラムコードの変更
先の記事にあった「elyza_rag.py」の中身で、以下の3か所を書き換えます。
(旧)
model_path = f"models/ELYZA-japanese-Llama-2-7b-instruct-gguf/ELYZA-japanese-Llama-2-7b-instruct-q8_0.gguf"
(新)
(旧)
temperature=0.1,
model_kwargs={"n_ctx": 4096, "n_gpu_layers": 32},
(新)
temperature=0.1,
model_kwargs={"n_ctx": 4096, "n_gpu_layers": -1},
(旧)
(新)
書き換えたものを、別の名前で保存しておきます。
(ここでは「elyza_rag_13b_gpu.py」としておきます)
実行
あとは、普通に実行です。
> python elyza_rag_13b_gpu.py
GPU対応されたとはいえ、起動直後のインデックス化作業はそこそこかかります(数分)。
なお、我が家はメインメモリーが64GB、GPUがGeForce GTX1650Ti (GPUメモリー 4GB)という環境であるため、全然GPUメモリーが足りません。
が、メインメモリーの内、最大で半分までをGPUメモリーとして使える(共有GPUメモリ―として認識)ため、どうにか動きました。
実行中のメインメモリーはこんな感じ。
GPUの方も共有を含め、かなり目一杯使ってます。
そんな環境下ですが、前回と同じ質問を投げかけてその回答時間を比較します。
よく見たら、推論時間が回答の直上に書かれていたので、それを貼り付けます。
(CPUでも13bモデルを走らせての比較です。)
(CPU版)
(GPU版)
ざっと4分弱 → 2分強程度まで縮まりました。
残念ながらGPUがしょぼいので、さほど高速化の実感はありませんが、それでも速いことは速い。
さて、せっかくモデルのサイズを大きいものにしたので、それを実感できる文例を期待してます。
ということで、前回はおかしな回答か、あるいは回答不可と出た質問文を投げかけてみます。
## Question: ヴェテヒネンでのビスケットの食べ方は?
## Answer:
私は石のように硬いビスケットを豆スープに突っ込むと、少しだけ水分を含んで柔らかくなったそれにかじりつく。歯が折れそうな ほどの硬いビスケットを二欠け程口に含んだところで、豆スープを一気に流し込む。さらに干し肉にもかかじりつくと、今度はその独特の臭みをごまかすため、紅茶で口の中を洗浄する。
うん、まあ、文章を抜き出してきただけのような気がしますが。間違ってはいない。
## Question: ヴェテヒネンの乗員は何人いますか?
## Answer:
26名です。
これは簡単だったかな?でも7bモデルでは「回答できません」的なことを言われました。
## Question: 中央計算局とは?
## Answer:
中央計算局は真四角なコンクリート製で、窓がほとんどない殺風景な建屋だ。近所に並び立つ貴族街の優美で荘厳な屋敷や、窓の多 い軍司令本部の建物と比べると、味気ない場所ににしか見えない。
建物の特徴ではなく、何をするところかを聞きたかったんですが、質問が悪いですかね。
ということで、2分ほどで前回よりも良質な回答ができるようになりました。
が、読ませる文書ファイルがあまり良くないですね。できれば、もうちょっとビジネス文書的なもので試してみたいところです。
![]() |
![]()
« 大規模言語モデル「ELYZA-7b」と自作小説「計算士と空中戦艦」で「RAG」をしてみた | トップページ | Meta Quest 3に非純正のヘッドストラップをつけてみた »
「数値解析系」カテゴリの記事
- Claudeを使ってみましたが(2026.05.05)
- Google AI Plusにしてみた(2026.05.01)
- Gemini無料版で10万文字以上の文章を考察させてみた。(2026.04.25)
- 東京ビッグサイトへ行ってきました(展示・商談会)(2026.04.16)
- gemma4:26bを試してみた(2026.04.09)
« 大規模言語モデル「ELYZA-7b」と自作小説「計算士と空中戦艦」で「RAG」をしてみた | トップページ | Meta Quest 3に非純正のヘッドストラップをつけてみた »






コメント