0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【llama.cpp / Ubuntu】会社に100万円のPCが落ちていたのでwindows消してLocalLLM構築してみた

Posted at

こんにちは。最近、会社によく出社するのですが、開発部の部屋を漁っていたら誰のものでもないPCを発見しました。
調べてみると結構いい性能だったので、ubuntuを入れてLocakLLMを構築してみようと思います。

この記事は、coins Advent Calendar 2025 の10日目の記事です。

スクリーンショット 2025-12-10 141343.png

構築するパソコンのスペック

会社に落ちていたPCのスペックは以下の通りです。

項目 スペック
CPU Intel 13世代 i9
GPU RTX 5000 Ada
RAM 64GB
SSD 6TB

なんかすごいスペックで、放置されてたとは思えない。
そもそもなぜこのスペックのノートPCを買ったのか、ちなみにとんでもなく重くて持ち運べる重さではないです。
社長に聞いたところ、昔お金のないといった社員のPCを買い取ってお金を渡したそう。

こんなPC買うからお金がないのでは...

Windowsを消してUbuntuを入れる

とりあえず、Windowsを消していきたいと思います。
特に変わったことはしていないので詳しいことは省略しますが、Ubuntu ISOをUSBに書き込みブータブルUSBを作成して「ディスクを削除してUbuntuをインストール」を選択し実行しました。今回はデュアルブートにはせず、完全にWindowsを消し去りました。

参考にした記事を添付しておきます。

入れるLLMを決める

DeepseekとMixtralで悩みましたが、今回はRTX 5000 AdaのVRAMを最大限生かせてコーディングや技術関連に強いとされている、DeepSeek Coder 33B を採用しようと思います。

DeepSeek Coder 33B GGUFのダウンロード

システムエラーやパスの問題を回避するため、仮想環境とPythonスクリプトを使ってモデルファイルを確実にダウンロードします。

Hugging Face CLIの準備と仮想環境の有効化

cd ~/llama.cpp
python3 -m venv .venv-hf
source .venv-hf/bin/activate
pip install huggingface-hub hf-transfer

GGUFファイルのダウンロード

cd models
nano download_hf.py

download_hf.py の内容:

import os
from huggingface_hub import hf_hub_download

os.environ['HF_HUB_ENABLE_HF_TRANSFER'] = '1'

hf_hub_download(
    repo_id="TheBloke/deepseek-coder-33B-instruct-GGUF",
    filename="deepseek-coder-33b-instruct.Q4_K_M.gguf",
    local_dir='.',
    local_dir_use_symlinks=False
)

print("ダウンロードが完了しました。")
python download_hf.py
deactivate

llama.cppのビルド手順

RTX 5000 Adaの性能を引き出すため、CMakeと-DGGML_CUDA=ONオプション を使用し、GPUアクセラレーションを有効にしてビルドします。

1. 依存関係のインストール

# CUDA Toolkit (nvcc)と開発用ライブラリの確認/インストール
sudo apt install nvidia-cuda-toolkit cmake libcurl4-openssl-dev -y
git clone https://github.com/ggerganov/llama.cpp.git

2. ビルドの実行

cd ~/llama.cpp
rm -rf build  # 以前のビルドを削除
mkdir build
cd build

# CMakeの設定: GGML_CUDAを有効化。CURLエラー回避のため無効化(-DLLAMA_CURL=OFF)
cmake .. -DGGML_CUDA=ON -DLLAMA_CURL=OFF

# makeの実行: i9-13th Genの全コア(-j)を使用
make -j$(nproc)

トラブルシューティング

構築過程でエラーが色々出たのでその解決方法を書いておきます。

エラーメッセージの例 原因 解決策
bash: ./main: No such file or directory ビルドが成功していない、または実行ファイル名が変わった。 cd ~/llama.cpp/build でビルドが完了しているか確認し、./bin/llama-cli で実行する。
CUDA Toolkit not found CUDA開発環境(nvcc)がない。 sudo apt install nvidia-cuda-toolkit を実行し、nvcc --version で確認。
Could NOT find CURL CURLの開発ライブラリがない。 sudo apt install libcurl4-openssl-dev を追加でインストールし、ビルドを再実行する。
huggingface-cli: command not found 仮想環境が有効化されていない。 source .venv-hf/bin/activate を再度実行し、プロンプトに (.venv-hf) が表示されているか確認する。
Permission denied aptコマンドでsudoを使い忘れている。 sudo を付けてコマンドを再実行するか、他のaptプロセスを終了する。

DeepSeek Coder 33Bの実行と最適化

ビルドに成功し、実行ファイルが ./build/bin/llama-cli に生成されたら、以下のコマンドで起動します。

実行コマンド

# ~/llama.cpp ディレクトリにいることを確認
cd ~/llama.cpp

# ライブラリパスの設定と llama-cli の実行
LD_LIBRARY_PATH=./build/bin:$LD_LIBRARY_PATH ./build/bin/llama-cli \
   -m models/deepseek-coder-33b-instruct.Q4_K_M.gguf \
   -p "Write a C++ function to reverse a string in-place." \
   -ins \
   -n 512 \
   --n-ctx 4096 \
   --n-gpu-layers 1000 \
   --n-threads $(nproc)

起動が確認できてチャットもできるようになりました!

IMG_0547.jpg

おわりに

会社の人が使えるLocalLLMができました。調教できていないのでこっからしていくのが楽しみです。
まだ、社長には見せれていないので喜んでくれることを祈っています。

皆さんも身近にあるPCでLocalLLM構築してみてはいかがでしょうか?

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?