ailia LLM

ローカル LLM を実行するためのライブラリです。GGUF を読み込み、チャット機能を簡単に実装できます。NPU(QNN)にも対応しており、NPU を使用した高速な推論も可能です。

はじめに

プラットフォームを選び、最初のローカルチャットを動かしてみましょう。

1

インストール

ailia LLM の Python パッケージを PyPI からインストールします。

pip3 install ailia_llm

Python や git をまだインストールしていない方は、Python 環境のセットアップ(Windows / Mac / Linux) を先にご覧ください。

PyPI で見る
2

サンプルを実行

ailia-models から example.py をダウンロードして実行します。初回実行時に Gemma 4 E2B の GGUF ファイルをダウンロードし、チャット応答をストリーミング生成します。画像入力は example_vlm.py、音声入力は example_alm.py、Function Calling は example_tool_use.py、MTP(Multi-Token Prediction)は example_mtp.py を同じフォルダから取得してください。

wget https://raw.githubusercontent.com/ailia-ai/ailia-models/master/large_language_model/gemma4/example.py
python3 example.py

Windows の場合は python3 の代わりに python を使用してください。

example.py example_vlm.py (画像入力) example_alm.py (音声入力) example_tool_use.py (Function Calling) example_mtp.py (MTP)

動作環境

ailia LLM はデスクトップとモバイル上でローカル LLM を動かします。必要メモリはモデルサイズと量子化で変動します。

対応 OS

  • Windows 10 / 11
  • macOS 11 以降
  • Linux (Ubuntu 20.04 以降)
  • iOS 13 / Android 7 以降

言語とコンパイラ

  • Python 3.6 以降 / Dart・Flutter 3.19 以降
  • C++17 (VS 2019 以降 / Xcode 14.2 以降 / clang)
  • C# / Unity 2021.3.10f1 以降
  • GPU: Metal (iOS / macOS) / Vulkan (Windows)

モデル形式

  • GGUF (llama.cpp 互換)
  • Llama / Gemma / Mistral / Qwen
  • Phi / DeepSeek ほか
  • Q4 / Q5 / Q8 量子化

メモリ目安

  • 2B Q4: 約 2 GB RAM
  • 7B Q4: 約 5 GB RAM
  • 13B Q4: 約 9 GB RAM
  • Streaming token-by-token output

プロジェクトで API を使う

自分のアプリケーションでチャットをストリーム生成する最小サンプル。

import ailia_llm

model = ailia_llm.AiliaLLM()
model.open("gemma-4-E2B-it-Q4_K_M.gguf")

messages = [{"role": "user", "content": "あなたの名前は何ですか?"}]
for delta in model.generate(messages):
    print(delta, end="")

より高度な使い方

NPU での推論、Tool Use、画像・音声入力のガイドです。

プラットフォーム別 API リファレンス

Python

C++

Unity

Flutter

JNI

よくある質問

ailia LLM についてのよくある質問。

対応しているモデル形式は?

ailia LLM は llama.cpp と同じ GGUF 形式を読み込みます。Hugging Face のチェックポイントは llama.cpp 同梱の convert_hf_to_gguf.py で GGUF に変換するか、Hugging Face で配布されている変換済み GGUF をダウンロードして利用できます。

対応しているモデルアーキテクチャは?

Llama / Gemma / Mistral / Qwen / Phi / DeepSeek など、llama.cpp が対応するアーキテクチャに準じます。互換性は llama.cpp の上流に追従します。

生成されるトークンをストリーミングで受け取るには?

model.generate(messages) はモデルがトークンをデコードするたびに差分文字列を返すイテレータです。これを順に受け取ってバッファに足すか直接表示すれば、ストリーミング UX を実現できます。

必要なメモリ量は?

メモリ使用量はおおむね GGUF ファイルサイズ + KV キャッシュ+中間テンソル分です。目安として Q4 量子化では 2B ≈ 2 GB、7B ≈ 5 GB、13B ≈ 9 GB になります。メモリが限られる端末では、より小さいモデルや高い量子化 (Q4 → Q3) を選んでください。

GPU 推論に対応していますか?

はい。ailia LLM は iOS / macOS で Metal、Windows で Vulkan を使用します (ailia SDK / Speech / Voice と異なり cuDNN は不要です)。GPU が無い環境では CPU フォールバックします。詳しくは Vulkan セットアップガイド を参照してください。

NPU 推論に対応していますか?

はい。対応する Android 端末と Windows on Arm 端末では、QNN バックエンドにより Hexagon NPU で推論できます。GGUF を PC 上で SoC 専用の QNN Model に変換して端末で実行します。Gemma 4 E2B / E4B のテキスト・画像・音声入力に対応していますが、利用できるモデルは SoC によって異なります。詳しくは ailia LLM NPU(QNN)ガイド を参照してください。

VLM / ALM に対応していますか?

はい。画像入力を使う VLM と音声入力を使う ALM に対応しています。対応モデルとマルチモーダルプロジェクタを読み込み、ailiaLLMSetMultimodalPrompt または ailiaLLMSetPromptJson で画像・音声を渡します。モデルごとの対応状況は ailiaLLMGetMultimodalCapabilities で確認できます。詳しくは マルチモーダル ガイド を参照してください。

Tool Use(Function Calling)に対応していますか?

はい。ailia LLM 1.5.0 以降では、Gemma 4 の Function Calling を利用できます。ailiaLLMSetTools でツールを定義し、ailiaLLMSetPromptJson で JSON 履歴を渡します。生成後は ailiaLLMGetResponseJson で tool_calls を含む応答を取得し、実行結果を tool ロールのメッセージとして返します。詳しくは ailia LLM Tool Use ガイド を参照してください。

資料

関連記事

ailia Tech Blog のモデル解説・リリースノート・チュートリアルです。

ailia LLM: エッジデバイスに LLM を実装
tech.ailia.ai
Gemma 3: マルチモーダル対応のローカル LLM
tech.ailia.ai
Qwen2-VL: ローカルで動く Vision-Language Model
tech.ailia.ai
MatMulNBits: ONNX 向け 4bit 量子化
tech.ailia.ai
KVCache: Attention 計算をキャッシュして高速化
tech.ailia.ai
Flash Attention: Attention を高速化
tech.ailia.ai