RamaLama は、containers 組織のもとで開発されたオープンソースのツールで、AIモデルをローカルで動かすことを、コンテナを扱うのと同じくらい簡単にします。目標は、AI推論を退屈で予測可能なものにすることです。RamaLama は、システムが検出したハードウェアに合わせてチューニングされた OCI(Open Container Initiative) コンテナイメージを取得することでホストの設定を処理するため、手作業による依存関係のセットアップは完全に不要になります。
すでに Podman や Docker を使っているなら、頭の中のイメージはなじみのあるものです。モデルはコンテナイメージと同様に取得され、一覧表示され、削除されます。
前提条件
RamaLama をインストールする前に、次のものを用意してください:
- Fedora システム(このガイドでは
dnfを使う Fedora を使用します) - Podman をインストール済みであること(RamaLama のデフォルトのコンテナエンジンとして使用されます)
- モデル保存用の十分なディスク容量(モデルのサイズは約 ~2GB から 10GB+ まで)
- 小さめのモデルには少なくとも 8GB RAM。7B+ パラメータのモデルには 16GB+ を推奨します
インストール
Fedora では、RamaLama はデフォルトのリポジトリから直接利用できます:
sudo dnf install ramalama
インストール後、バージョンを確認します:
ramalama version
期待する出力:
ramalama version x.x.x
動作の仕組み
初回実行時、RamaLama はシステムの GPU 対応を確認し、GPU が見つからない場合は CPU にフォールバックします。次に、推論の依存関係がすべて組み込まれた適切な OCI コンテナイメージを取得し、モデル実行レイヤを支える llama.cpp も含めます。モデルはローカルに保存され、以降の実行でも再利用されるため、モデルごとに取得が発生するのは 1 回だけです。
モデルレジストリ
RamaLama は複数のレジストリからモデルを取得(pull)することをサポートしています。デフォルトのレジストリは Ollama ですが、トランスポートのプレフィックスを使って、サポートされている任意のソースからモデルを参照できます:
| Registry | Prefix |
|---|---|
| Ollama |
ollama:// または プレフィックスなし |
| Hugging Face |
huggingface:// または hf://
|
| ModelScope |
modelscope:// または ms://
|
| OCI Registries | oci:// |
| RamaLama Registry | rlcr:// |
| 直接URL |
https://、 http://、 file://
|
モデルの取得と実行
Ollama から(デフォルト)
ramalama run granite3.1-moe:3b
これにより、Ollama レジストリから granite3.1-moe:3b モデルを取得し、対話型チャットセッションに入ります。初回実行時にはモデルがローカルストレージにダウンロードされ、その後の実行ではそれを再利用します。
Hugging Face から
ramalama run huggingface://MaziyarPanahi/Mistral-7B-Instruct-v0.3-GGUF
注: 一部の新しい Hugging Face モデルは、
gguf_init_from_file_impl: failed to read magicエラーで失敗することがあります。これはllama.cppとのフォーマット互換性の問題によるものです。その場合は、モデル名に「GGUF」を付けて検索し、同じモデルの事前変換された GGUF バージョンを Hugging Face 上で探してください。このケースでは、MaziyarPanahi/Mistral-7B-Instruct-v0.3-GGUFが互換性のある代替として機能しました。
便利なフラグ
コンテキストウィンドウサイズの設定;--ctx-size / -c
デフォルトでは、RamaLama はモデルのネイティブなコンテキスト長を上書きしません。llama3.1:8b のデフォルトは 131072 トークンで、KV キャッシュの確保には約 16GB が必要になり、多くの開発用マシンで扱える範囲を大きく超えます。
-c フラグを使ってコンテキストサイズを上限指定します:
ramalama run -c 16384 llama3.1:8b
16384 トークンのコンテキストサイズでは、llama3.1:8b に対して KV キャッシュは約 2GB 必要です。利用可能なメモリと目標モデルに対して適切な値を見つけるには、KV Cache Size Calculator を使えます。メモリに制約のあるマシンでは、このフラグがとても役立ちます。
温度の設定;--temp
温度はモデル出力のランダム性を制御します。デフォルトは通常 0.8 程度です。これを 0 に設定すると、モデルはより決定的になります:
ramalama run --temp 0 granite3.1-moe:3b
温度 0 は、事実ベースの Q&A や、出力を一定かつ再現可能にしたいベンチマークに有用です。ランダム性が下がる(幻覚が減るわけではない)点に注意してください。知識がモデルの学習データに存在しない場合、--temp 0 は単に一貫して間違った出力をするようになります。
推論バックエンドの選択;--backend
RamaLama はハードウェアに最適なバックエンドを自動検出しますが、明示的に上書きできます:
ramalama run --backend vulkan granite3.1-moe:3b # AMD/Intel または CPU フォールバック
ramalama run --backend cuda granite3.1-moe:3b # NVIDIA
ramalama run --backend rocm granite3.1-moe:3b # AMD ROCm
GPU のないシステムでは、RamaLama は自動的に CPU 推論へフォールバックします。
デバッグ出力を有効化;--debug
--debug はグローバルフラグであり、サブコマンドの前に置く必要があります:
ramalama --debug run granite3.1-moe:3b
これは、RamaLama が実行する基盤となるコンテナコマンド、ハードウェア検出の手順、レジストリ取得の詳細を出力します。モデル互換性の問題、予期しない動作、ハードウェア検出の問題などのトラブルシューティングに役立ちます。
モデルの管理
ローカルに保存されているモデルを一覧表示:
ramalama list
実行せずにモデルを取得:
ramalama pull llama3.1:8b
ローカルストレージからモデルを削除します:
ramalama rm llama3.1:8b
APIとしてモデルを提供する
RamaLamaは、モデルをOpenAI互換のRESTエンドポイントとして公開できます:
ramalama serve granite3.1-moe:3b
これにより、既定でポート 8080 上にローカルサーバーが起動します。クライアント側の書き方を変えずに、OpenAI互換の任意のクライアントからそのまま接続できます。ローカルモデルをアプリケーション、RAGパイプライン、またはLangChainやLlamaIndexのようなツールに統合するのに便利です。
Web UI
ramalama serve を実行すると、既定で http://localhost:8080 にブラウザベースのチャットインターフェースが利用可能になります。無効にするには:
ramalama serve --webui off granite3.1-moe:3b
Web UIは llama.cpp のHTTPサーバーに組み込まれたインターフェースによって動作しており、クライアントコードを書かずにモデルと素早くやり取りできるようにします。
注意点
- モデル形式の互換性: 一部のHugging Faceモデルは、RamaLamaで動作させるために事前に変換されたGGUF版を必要とします。迷った場合は、GGUF形式のモデルに従ってください。
-
メモリとコンテキストサイズ: メモリに制約のあるマシンで実行する前に、必ずモデルのデフォルトのコンテキスト長を確認してください。適切に上限を設けるには
-cを使用します。 - モデルサイズと精度: 小型モデル(3B)は高速で軽量ですが、ニッチな話題に関する知識が不足している可能性があります。事実の正確性を重視する場合、7B+モデルのほうが明らかに信頼性が高いです。
-
--debugフラグの位置: サブコマンドの前に指定する必要があります。つまりramalama --debug runであり、ramalama run --debugではありません。 -
RamaLamaはまだ積極的に開発中です: プロジェクトは進みが速いです。フラグ名、挙動、対応機能はバージョン間で変わることがあります。迷った場合は
ramalama --helpまたは公式ドキュメントを確認してください。


