unsloth、transformers、llama.cpp、Ollama、LM Studio、vLLM、LLaMA Factoryの関係とWindowsセットアップ
導入
大規模言語モデル(LLM)の開発・運用には多様なツールが存在する。本記事では6つの主要ツールを紹介し、その概要と用途、Windows環境でのセットアップ手順を示す。これらのツールは学習と推論の2つの段階で用いられ、それぞれ異なる役割を持つ。
動作確認用モデル:LFM2.5-1.2B
本記事ではLiquid AI社のLFM2.5-1.2Bをツールの動作確認に使用する。軽量で動作が速く、日本語を含む多言語に対応する。
公式情報: https://www.liquid.ai/blog/introducing-lfm2-5-the-next-generation-of-on-device-ai
各ツールの概要と関係
学習ツール
transformers:機械学習ライブラリ。事前学習済みモデルの読み込み、推論、ファインチューニングを実行する。他のツールの基盤となる。
unsloth:transformersベースのファインチューニング高速化ライブラリ。少ないメモリで高速にモデルを学習できる。Colabノートブックが提供されており、すぐに試せる。Windows環境でも動作する。
LLaMA Factory:Web UIとCLIを提供するファインチューニングプラットフォーム。コードを書かずにモデルを学習できる。Windows環境ではWSLまたはDockerが必要。
推論ツール
llama.cpp:C++実装の推論エンジン。量子化によりモデルサイズを削減し、CPUでも実行できる。以下の3つのツールの基盤となる。
Ollama:llama.cppベースの推論プラットフォーム。モデルの自動ダウンロードと管理を行う。Pythonから簡単に利用できる。
LM Studio:llama.cppのGUIツール。マウス操作でモデルを選択・実行できる。コマンドライン操作が不要。
vLLM:ローカルGPU上でLLMをAPIサーバーとして動かす。OpenAI互換のインターフェースを提供。WSL環境で使用する。GPU(CUDA)が必要である。
ツール間の関係
【基盤】transformers(PyTorch上の機械学習ライブラリ)
【学習フェーズ】
transformers → 基本的な学習機能
unsloth → transformersの高速化
LLaMA Factory → 統合プラットフォーム(transformers + unsloth + Web UI)
【推論フェーズ】
llama.cpp → 推論エンジン
├─ Ollama → モデル管理 + Pythonライブラリ
├─ LM Studio → GUI
└─ vLLM ⇒ APIサーバ
代表的なワークフロー
学習:transformers/unsloth/LLaMA Factory
↓
変換:GGUF形式へエクスポート
↓
推論:llama.cpp/Ollama/LM Studio
状況別のツール選択
モデルを学習したい場合
初めてモデルを学習する
unslothのColabノートブックを使う。Googleアカウントがあればブラウザだけで学習を開始できる。環境構築が不要。
コードを書かずに学習したい
LLaMA Factoryを使う。Web UIでモデルとデータセットを選択し、ボタンをクリックするだけで学習できる。ただしWindows環境ではWSLまたはDockerのセットアップが必要。
自分のWindows PCで学習したい
unslothを使う。Windows環境でネイティブに動作する。GPUがあれば高速に学習できる。
モデルを実行したい場合
コマンドラインが苦手
LM Studioを使う。アプリを起動し、モデルを選択してクリックするだけで実行できる。
Pythonプログラムから利用したい
Ollamaを使う。数行のPythonコードでモデルを呼び出せる。モデルは自動的にダウンロードされる。
API サーバとして利用したい
vLLM を利用。
推論パラメータを細かく調整したい
llama.cppを使う。コマンドラインオプションで詳細な設定が可能。性能測定にも適している。
状況の組み合わせ
デモやプレゼンテーションでモデルを見せたい
LM Studioを使う。視覚的にわかりやすく、操作も簡単。
研究でモデルの性能を詳細に測定したい
llama.cppを使う。実行時間やメモリ使用量を詳細に計測できる。
簡単な方法でモデルを試したい
学習:unslothのColabノートブック(環境構築不要)
推論:LM Studio(インストールして即実行可能)
Windowsでのセットアップ
前提環境
- Windows 10/11
- CUDA対応NVIDIA GPU(GPU訓練を行う場合)
- 管理者権限のコマンドプロンプト(環境構築時)
インストール全体の流れ
- Python 3.12、Visual Studio Build Tools(基盤環境)
- PyTorch(CUDAバージョンに合わせて選択)
- transformers v5 → LFM2.5で動作確認
- unsloth → LFM2.5で動作確認
- llama.cpp → LFM2.5 GGUFで動作確認
- Ollama → LFM2.5で動作確認
- LM Studio → LFM2.5で動作確認
- LLaMA Factory(オプション、WSL環境)
Python 3.12 のインストール(Windows 上) [クリックして展開]
以下のいずれかの方法で Python 3.12 をインストールする。Python がインストール済みの場合、この手順は不要である。
方法1:winget によるインストール
管理者権限のコマンドプロンプトで以下を実行する。管理者権限のコマンドプロンプトを起動するには、Windows キーまたはスタートメニューから「cmd」と入力し、表示された「コマンドプロンプト」を右クリックして「管理者として実行」を選択する。
winget install -e --id Python.Python.3.12 --scope machine --silent --accept-source-agreements --accept-package-agreements --override "/quiet InstallAllUsers=1 PrependPath=1 AssociateFiles=1 InstallLauncherAllUsers=1"
--scope machine を指定することで、システム全体(全ユーザー向け)にインストールされる。このオプションの実行には管理者権限が必要である。インストール完了後、コマンドプロンプトを再起動すると PATH が自動的に設定される。
方法2:インストーラーによるインストール
- Python 公式サイト(https://www.python.org/downloads/)にアクセスし、「Download Python 3.x.x」ボタンから Windows 用インストーラーをダウンロードする。
- ダウンロードしたインストーラーを実行する。
- 初期画面の下部に表示される「Add python.exe to PATH」に必ずチェックを入れてから「Customize installation」を選択する。このチェックを入れ忘れると、コマンドプロンプトから
pythonコマンドを実行できない。 - 「Install Python 3.xx for all users」にチェックを入れ、「Install」をクリックする。
インストールの確認
コマンドプロンプトで以下を実行する。
python --version
バージョン番号(例:Python 3.12.x)が表示されればインストール成功である。「'python' は、内部コマンドまたは外部コマンドとして認識されていません。」と表示される場合は、インストールが正常に完了していない。
Build Tools for Visual Studio 2022 のインストール(Windows 上)
以下のコマンドを管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
REM VC++ ランタイム
winget install --scope machine --accept-source-agreements --accept-package-agreements --silent --id Microsoft.VCRedist.2015+.x64
REM Build Tools + Desktop development with C++(VCTools)+ 追加コンポーネント(一括)
winget install --id Microsoft.VisualStudio.2022.BuildTools --accept-source-agreements --accept-package-agreements ^
--override "--passive --wait --norestart --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --add Microsoft.VisualStudio.Component.VC.Llvm.Clang --add Microsoft.VisualStudio.ComponentGroup.ClangCL --add Microsoft.VisualStudio.Component.VC.CMake.Project --add Microsoft.VisualStudio.Component.Windows11SDK.26100"
--add で追加されるコンポーネント
上記のコマンドでは,まず Build Tools 本体と Visual C++ 再頒布可能パッケージをインストールし,次に setup.exe を用いて以下のコンポーネントを追加している。
VCTools:C++ デスクトップ開発ワークロード(--includeRecommendedにより、MSVC コンパイラ、C++ AddressSanitizer、vcpkg、CMake ツール、Windows 11 SDK 等の推奨コンポーネントが含まれる)VC.Llvm.Clang:Windows 向け C++ Clang コンパイラClangCL:clang-cl ツールセットを含むコンポーネントグループ(MSBuild から Clang を使用するために必要)VC.CMake.Project:Windows 向け C++ CMake ツールWindows11SDK.26100:Windows 11 SDK(ビルド 10.0.26100)
インストール完了の確認
winget list Microsoft.VisualStudio.2022.BuildTools
上記以外の追加のコンポーネントが必要になった場合は Visual Studio Installer で個別にインストールできる。
2. NVIDIA CUDA
- 前提条件(CUDA インストール前): NVIDIA GPU,NVIDIA ドライバ,および Build Tools for Visual Studio もしくは Visual Studio が必要である.
- インストール中の注意: なるべく他のウインドウはすべて閉じておくこと.
以下のコマンドを管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
REM CUDAをシステム領域にインストール、最新版に更新(NVIDIA GPU搭載機のみ)
winget install --scope machine --id Nvidia.CUDA -e --silent --accept-package-agreements --accept-source-agreements
winget upgrade --scope machine --id Nvidia.CUDA -e --silent --accept-package-agreements --accept-source-agreements
REM CUDA のパス設定
set "CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.1"
set "CUDNN_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.1"
if exist "%CUDA_PATH%" setx CUDA_PATH "%CUDA_PATH%" /M >nul
if exist "%CUDNN_PATH%" setx CUDNN_PATH "%CUDNN_PATH%" /M >nul
for /f "skip=2 tokens=2*" %a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path') do set "SYSTEM_PATH=%b"
if exist "%CUDA_PATH%\bin" (
echo "%SYSTEM_PATH%" | find /i "%CUDA_PATH%\bin" >nul
if errorlevel 1 setx PATH "%CUDA_PATH%\bin;%SYSTEM_PATH%" /M >nul
)
REM 環境変数TEMP, TMPの設定(一時ファイルの保存先を短いパスに変更)
mkdir C:\TEMP
set "TEMP_PATH=C:\TEMP"
setx TEMP "%TEMP_PATH%" /M >nul
setx TMP "%TEMP_PATH%" /M >nul
3. PyTorchのインストール
https://pytorch.org のインストールガイドに従い、自環境のCUDAバージョンに対応したコマンドを取得して実行する。CUDAバージョンは以下で確認できる。
nvcc --version
Python 3.12, CUDA 12.6 以上の場合は、以下のコマンドを管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
REM PyTorch をインストール(GPU対応版)
set "CUDA_TAG=cu126"
set "PYTHON_PATH=C:\Program Files\Python312"
"%PYTHON_PATH%\Scripts\pip" install -U torch torchvision torchaudio --index-url https://download.pytorch.org/whl/%CUDA_TAG%
4. transformers v5のインストールと動作確認
以下のコマンドを管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
pip install -U transformers
LFM2.5-1.2B-Instructモデルで動作確認を行う。以下のPythonコードを実行する。
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
import torch
model_id = "LiquidAI/LFM2.5-1.2B-Instruct"
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="auto",
torch_dtype=torch.bfloat16,
)
tokenizer = AutoTokenizer.from_pretrained(model_id)
streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
prompt = "日本の首都はどこですか?"
input_ids = tokenizer.apply_chat_template(
[{"role": "user", "content": prompt}],
add_generation_prompt=True,
return_tensors="pt",
return_dict=False,
tokenize=True,
).to(model.device)
output = model.generate(
input_ids,
do_sample=True,
temperature=0.1,
top_k=50,
top_p=0.1,
repetition_penalty=1.05,
max_new_tokens=128,
streamer=streamer,
)
初回実行時にモデルのダウンロード(約2.4GB)が行われる。応答テキストが表示されれば、transformersのインストールは正常に完了している。
5. unslothのインストールと動作確認
手順1でVisual Studio Build Tools(C++ワークロード、Clang、CMake、Windows SDK)のインストールが完了していれば、以下のコマンドでインストールできる。
以下のコマンドを管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
pip install -U unsloth
LFM2.5をunslothで読み込んで動作確認を行う。動作にはGPUが必要である。
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="LiquidAI/LFM2.5-1.2B-Instruct",
max_seq_length=2048,
dtype=None,
load_in_4bit=True,
)
prompt = "日本の首都はどこですか?"
input_ids = tokenizer.apply_chat_template(
[{"role": "user", "content": prompt}],
add_generation_prompt=True,
return_tensors="pt",
tokenize=True,
).to(model.device)
FastLanguageModel.for_inference(model)
output = model.generate(
input_ids,
max_new_tokens=128,
temperature=0.1,
repetition_penalty=1.05,
)
print(tokenizer.decode(output[0], skip_special_tokens=True))
4bit量子化でモデルが読み込まれ、応答が得られれば正常である。
エラーが発生する場合は、公式ドキュメント(https://docs.unsloth.ai/get-started/install-and-update/windows-installation)を参照する。
6. llama.cppのセットアップと動作確認
リリースページ(https://github.com/ggml-org/llama.cpp/releases)から、最新版のWindows用ビルド済みバイナリをダウンロードして展開する。CPU版のファイル名の形式は llama-b{バージョン番号}-bin-win-cpu-x64.zip、NVIDIA GPU版は llama-b{バージョン番号}-bin-win-cuda-x64.zip である。
コマンドプロンプトでダウンロードと展開を行う場合は、以下のコマンドを管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
次のコマンドでは、ダウンロードURLとして、CPU版・バージョン7966を指定しているため、最新版に置き換えること。NVIDIA GPU版を使う場合は「cpu」の部分も置き換えること。
cd "C:\Program Files"
curl -L -o llama-cpp.zip https://github.com/ggml-org/llama.cpp/releases/download/b7966/llama-b7966-bin-win-cpu-x64.zip
mkdir llama-cpp
tar -xf llama-cpp.zip -C llama-cpp
cd llama-cpp
LFM2.5のGGUF版で動作確認を行う。対話モードで使用する場合は以下のコマンドを実行する。-hfオプションにより、初回実行時にHugging FaceからGGUFファイル(Q4_K_M: 731MB)が自動的にダウンロードされる。
cd "C:\Program Files\llama-cpp"
llama-cli -hf LiquidAI/LFM2.5-1.2B-Instruct-GGUF:Q4_K_M -cnv --temp 0.1 --repeat-penalty 1.05
「>」が表示されたら、例えば「日本の首都はどこですか?」のように入力する。応答が表示されれば正常である。終了するには /bye と入力する。
7. Ollamaのセットアップと動作確認
以下のコマンドを管理者権限のコマンドプロンプトで実行する
(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
curl -L -o "%TEMP%\OllamaSetup.exe" https://ollama.com/download/OllamaSetup.exe
"%TEMP%\OllamaSetup.exe" /VERYSILENT /NORESTART
上記のコマンドを用いたインストールの代わりに、https://ollama.com/download からWindows用インストーラーを入手してインストールしてもよい。
LFM2.5を用いて動作確認を行う。Ollamaの公式ライブラリにはLFM2.5-1.2B-Thinking(推論特化版)が登録されており、ここではこのモデルを使用する。次のコマンドを実行すると、初回実行時にモデルファイル(Q4_K_M: 731MB)が自動的にダウンロードされる。
ollama run lfm2.5-thinking
「>>> Send a message」のようなプロンプトが表示されたら、任意の質問を入力する(例:「日本の首都はどこですか?」)。応答が表示されれば正常である。終了するには /exit と入力する。
8. LM Studioのセットアップと動作確認
- LM Studio のインストール
以下のコマンドを管理者権限のコマンドプロンプトで実行する (手順:Windowsキーまたはスタートメニュー →
cmdと入力 → 右クリック → 「管理者として実行」)。winget install ElementLabs.LMStudio --scope machinewingetを用いたインストールの代わりに、https://lmstudio.ai/download からWindows用インストーラーを入手してインストールしてもよい。
- モデルのダウンロード
LFM2.5で動作確認を行う。LM Studio を起動し、検索バー(Ctrl+Shift+Mでモデル管理画面を開く)で「LFM2.5」と検索し、LFM2.5-1.2B-Instruct-GGUF(Q4_K_M推奨、約731MB)をダウンロードする。
- チャットの開始と設定
ダウンロードが終了したら、チャット画面に切り替える。「New Chat」と表示されたときは、クリックする。
チャット画面ででモデルを選択する。
モデルの設定画面が開いたときは、必要であれば設定変更を行い「Load Model」をクリック。
- 動作確認
任意の質問を入力する(例:「日本の首都はどこですか?」)。応答が表示されれば正常である。
9. vLLMのセットアップと動作確認(WSL環境)
ローカルでLLMをAPIサーバーとして動かし、OpenAI互換のインターフェースで利用する。vLLMはWindowsネイティブには対応していないため、WSL環境で使用する。GPU(CUDA)が必要である。
- WSLのインストール(未導入の場合)
以下のコマンドを管理者権限のコマンドプロンプトで実行する (手順:Windowsキーまたはスタートメニュー →
cmdと入力 → 右クリック → 「管理者として実行」)。wsl --install - 再起動後、Ubuntuが自動的にセットアップされる。ユーザー名とパスワードを設定する。
- NVIDIA GPU をWSLから利用するための確認
Windows側にNVIDIAドライバがインストールされていれば、WSL2からGPUを利用できる。以下をWSL内で実行して確認する。
wsl nvidia-smi
- vLLM のインストールと API サーバの起動(WSL内で実行)>
Python の仮想環境の作成と vllm のインストール。それを用いたOpenAI互換のAPIサーバーを起動を行う。
以下のコマンドを管理者権限のコマンドプロンプトで実行する (手順:Windowsキーまたはスタートメニュー →
cmdと入力 → 右クリック → 「管理者として実行」)。先頭の「wsl bash」は、wsl で bash を起動するためのもの。vllm の初回実行時にはモデルのダウンロードが自動で行われる。
wsl bash python3 -m venv vllm-env source vllm-env/bin/activate pip install -U vllm vllm serve LiquidAI/LFM2.5-1.2B-Instruct --host 0.0.0.0 --port 8000 --dtype auto
- 動作確認
コマンドプロンプトを別に開き、以下のコマンドを実行し、応答が返れば正常である。
wsl bash curl http://localhost:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "LiquidAI/LFM2.5-1.2B-Instruct", "messages": [{"role": "user", "content": "日本の首都はどこですか?"}], "temperature": 0.1, "max_tokens": 128 }'
- OpenAI互換APIのため、PythonからはOpenAIライブラリを使用してアクセスできる。
from openai import OpenAI client = OpenAI( base_url="http://localhost:8000/v1", api_key="dummy", ) response = client.chat.completions.create( model="LiquidAI/LFM2.5-1.2B-Instruct", messages=[{"role": "user", "content": "日本の首都はどこですか?"}], temperature=0.1, max_tokens=128, ) print(response.choices[0].message.content)
10. LLaMA Factoryのセットアップ(WSL環境)
LLaMA Factoryは一部ライブラリ(vLLM等)がWindowsネイティブに非対応のため、WSL(Windows Subsystem for Linux)環境で動作させる。以下はWSL上のUbuntuでの手順である。
WSLのインストール(未導入の場合)
管理者権限のコマンドプロンプトまたはPowerShellで以下を実行する。
wsl --install
再起動後、Ubuntuが自動的にセットアップされる。ユーザー名とパスワードを設定する。
NVIDIA GPU をWSLから利用するための確認
Windows側にNVIDIAドライバがインストールされていれば、WSL2からGPUを利用できる。以下をWSL内で実行して確認する。
nvidia-smi
LLaMA Factoryのインストール(WSL内で実行)
# Python環境の準備
sudo apt update && sudo apt install -y python3-pip python3-venv git
# 仮想環境の作成と有効化
python3 -m venv ~/llamafactory-env
source ~/llamafactory-env/bin/activate
# LLaMA Factoryのインストール
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"
Web UI起動(WSL内で実行)
source ~/llamafactory-env/bin/activate
cd ~/LLaMA-Factory
llamafactory-cli webui
ブラウザで表示されるURL(通常 http://localhost:7860 )にWindows側からアクセスする。Web UIが表示されれば、インストールは正常に完了している。
代替:Dockerによるセットアップ
WSLを使用せず、Docker環境でも動作させられる。GPU対応のコンテナ起動方法を含む詳細は、公式ドキュメント(https://llamafactory.readthedocs.io)を参照する。
docker pull hiyouga/llamafactory:latest
追加リソース
公式ドキュメント
- transformers: https://huggingface.co/docs/transformers
- unsloth: https://docs.unsloth.ai
- llama.cpp: https://github.com/ggml-org/llama.cpp
- Ollama: https://ollama.com/docs
- LM Studio: https://lmstudio.ai/docs
- vLLM: https://docs.vllm.ai
- LLaMA Factory: https://llamafactory.readthedocs.io
- Liquid AI LFM2.5: https://docs.liquid.ai
- LFM2.5 Hugging Face: https://huggingface.co/LiquidAI/LFM2.5-1.2B-Instruct