はじめに
こんにちは、ネットワールドの海野です。
今年も Japan VMUG UserCon 2025 が開催されました。多くの参加者が集まり、活用事例や最新の周辺技術、ちょっと興味深い昔話まで、さまざまな内容の登壇がありました。
今回、私はライトニングトークで「ESXi で仮想化した ARM 環境で LLM を動作させてみるぞ」という話をしました。
テーマはエッジコンピューティングとAI。具体的には、Raspberry Pi 5上でESXi-Armを動かし、その上で軽量な大規模言語モデル「TinyLlama」を試してみたという内容です。
VMUG UserCon って?
VMUGはVMware好きが集まるコミュニティです。UserConは年に一度のお祭りみたいなもので、新しい技術や活用事例の共有、ちょっとマニアックな技術談義が楽しめる場です。参加者や登壇者同士の交流も活発で、各自の近況や誤自宅の最新ファシリティといった会話があちこちで交わされていました(?)
なんでESXi on ARM?
Raspberry Pi 5が登場して、ARM環境での仮想化がより現実的になりました。VMware ESXi Arm Editionはエッジデバイス向けの仮想化環境として開発されていて、小型のハードウェア上で仮想マシンを動かせます。
エッジ環境でAIを活用するとなると、ハードウェアの制約をどう乗り越えるかが課題になります。そこで、低スペックでも動く軽量LLM「TinyLlama」を選んで、仮想環境でちゃんと動くのかを検証しました。
実験環境を構築する
TinyLlamaをESXi on ARM環境で動かすために、まず環境を整えました。
- ハードウェア: Raspberry Pi 5 (Broadcom BCM2712, 8GB RAM)
- 仮想化環境: VMware ESXi 8.0 U3c Arm Edition
- OS: Ubuntu Server for ARM 24.04.02
- LLM: TinyLlama (LLaMA 2を蒸留・量子化した軽量モデル)
実際に動かしてみる
セットアップが完了したので、llama_cpp.server
を起動し、APIサーバーを立ち上げました。
このコマンドでモデルが認識されていることを確認。あとは、実際にリクエストを投げてみるだけです。
curl -X POST http://localhost:8000/v1/completions -H "Content-Type: application/json" -d '{
"prompt": "Tell me about yourself",
"max_tokens": 50,
"temperature": 0.3
}
動作を軽くする工夫
TinyLlamaは、もともとLLaMA 2の蒸留・量子化版です。
- 蒸留 (Knowledge Distillation): 大規模LLMの知識を圧縮して小型モデルに落とし込む
- 量子化 (Quantization): 計算コストを抑えながら高速化
トラブルもいろいろ
スムーズに動いたかというと、そうでもありません。
- ディスク容量が足りなくなる → 不要なキャッシュを削除
- モジュールが見つからないエラーが発生 → パッケージを再インストール
- 出力の挙動が少しおかしい →
temperature
やtop_p
を調整
まとめ
Raspberry Pi 5 + ESXi-Arm環境でTinyLlamaを動かしてみました。
- エッジAI環境でのLLM動作は可能
- 量子化を活用すればGPUなしでも推論できる
- 思ったより動いたけど、実用にはもうひと工夫必要