世界を動かす技術を、日本語で。

オラマのマルチモーダルモデル向け新エンジン

2025年5月16日原文(ollama.com)

概要

  • Ollamaが 新エンジン でマルチモーダルモデルをサポート開始
  • Meta Llama 4やGoogle Gemma 3など 多様なビジョンモデル に対応
  • 画像認識や複数画像間の 関係推論 が可能
  • モデルの モジュール化・精度向上 ・効率的なメモリ管理を実現
  • 今後は より長い文脈対応やツール連携 も予定

Ollamaの新マルチモーダルエンジンと主要機能

新エンジンによるマルチモーダル対応

  • Ollamaが 新たなエンジン を導入し、画像・テキストを同時に扱えるマルチモーダルAIモデルをサポート開始
  • Meta Llama 4, Google Gemma 3, Qwen 2.5 VL, Mistral Small 3.1 など、主要なビジョンモデルに対応
  • 画像認識や複数画像間の 関係推論、ドキュメントスキャンなど多様な用途に活用可能

実用例: 画像や動画の理解・推論

  • 画像をアップロードし、「この画像には何が写っているか?」などの 質問を投げることが可能
    • 例:サンフランシスコFerry Buildingの画像を解析し、建物の特徴や周辺環境を説明
  • 画像内容から 場所や距離、移動方法 など実用的な質問にも回答
    • 例:Ferry BuildingからStanford Universityまでの距離やアクセス方法を提案
  • 複数画像を同時に入力し、共通点や違いを 推論・説明
    • 例:4枚の画像から共通して登場する動物(llama)や、特定画像内のマリンママル(dolphin)を特定

モデルのモジュール化と精度向上

  • モデルごとに 自己完結型設計 を採用し、他モデルへの影響を最小化
  • モデル固有の プロジェクション層 を持たせることで、統合や保守性を向上
  • 画像処理時に メタデータを付与 し、トークン分割や位置情報の精度を高めることにより、出力品質を維持
    • 例:大きな画像を分割処理する際の最適な境界設定や、因果的アテンション制御をモデルごとにチューニング

メモリ管理とパフォーマンス最適化

  • 画像キャッシュ機能で 再利用時の高速化 を実現
  • ハードウェア情報を取得し メモリ使用量を最適化、複数デバイスでの推論効率を向上
  • KVキャッシュ最適化 や、モデル固有のアテンション(例:スライディングウィンドウ、チャンクドアテンション)に対応
    • 例:Gemma 3のスライディングウィンドウアテンションを活用し、文脈長を拡張または高並列化を実現
    • Meta Llama 4 Scout/Maverick向けにチャンクドアテンションや2Dロータリー埋め込みを独自実装

今後の展望

  • より長い文脈長のサポート や、推論・思考能力の強化
  • ツール呼び出しやストリーミング応答 への対応
  • コンピュータビジョン・音声・動画生成などへの拡張を予定
  • モデル開発者・ハードウェアパートナー・コミュニティとの 連携強化 を継続

謝辞と協力パートナー

  • Google DeepMind, Meta Llama, Alibaba Qwen, Mistral, IBM Granite等、 オープンなビジョンモデル開発チーム に感謝
  • GGMLチーム (テンソルライブラリ開発)への協力感謝
  • NVIDIA, AMD, Qualcomm, Intel, Microsoft 等のハードウェアパートナーと連携し、幅広いデバイスでの推論最適化を推進

Hackerたちの意見

後で試してみるけど、この記事が実用的な例を使ってすぐに要点に入るのがいいね、その後に詳細が続くのも。

なんでollamaエンジンは新しいモデルをサポートするために変更しなきゃいけないの?新しいモデルが出るたびにollamaをアップグレードしなきゃならない。

こういうことがあるからだよね:https://github.com/ggml-org/llama.cpp/issues/12637 「モデルをサポートする」ってのがcppにとっては君が思ってる意味じゃないんだよ。それと、ビジョンモデルが部分的にしかサポートされてなくて、CLIツールしかなくて、llama-serverのサポートもなかった(それは最近やっと直ったけど)という長い経緯があって、実際のところollamaはlama.cppよりも早く動いていて、人々が求めているものを実装してるんだよ。そして、ずっと同じ批判をコピー&ペーストしてた人たちを黙らせることになるだろうね。「ただのllama.cppのラッパーじゃん、なんでcppを使わないの?」っていうやつらを。

これが出るタイミングはちょっと驚きだね、llama.cppがやっと(多分)安定したビジョン機能をメインにマージしたばかりだから:https://simonwillison.net/2025/May/10/llama-cpp-vision/ おそらくOllamaはこれにかなり前から取り組んでたんだろうね - 彼らはllama.cppへの初期の依存関係を断ち切ったみたいだ。自分たちの運命を自分たちでコントロールするのは理にかなってる。

これらのプロジェクトがマルチモーダルサポートを追加する際の違いは具体的に何か知ってる?どちらもLLaVAを長い間サポートしてきたけど、それには特別なケースが必要だったのかな?それがもう必要なくなったの?TFAでこれが言及されるのを期待してたんだけど、なんかOllamaにとってマルチモーダルが全く新しいものみたいに扱われてるのが気になる。

脇道にそれるけど、なんでollamaは一部の人に嫌われてるの?「自分でllama.CPPを動かすべきだ」っていう以外の説明をあんまり聞いたことがないんだよね。

cppはただ速くて、機能も多い、それだけだよ。

ここにちょっとした議論があるよ:https://www.reddit.com/r/LocalLLaMA/comments/1jzocoo/finally... Ollamaがllama.cppを適切にクレジットしていないようだね:https://github.com/ollama/ollama/issues/3185 - これは長年の問題で、まだ解決されていないみたい。他のプロジェクトにも影響が出ていて、llama.cppが直接使われているのにOllamaにクレジットされていることがあるみたいだ:https://github.com/ggml-org/llama.cpp/pull/12896 Ollamaは上流に貢献してない(それは問題ないけど、義務じゃないからね)、でも一人の開発者が貢献したって主張して、実際にはそうじゃなかったってのはちょっと変だね:https://www.reddit.com/r/LocalLLaMA/comments/1k4m3az/here_is... とはいえ、彼らは自分たちのフォークを維持しているみたいだから、誰でも欲しいものを選んで持っていけるよ:https://github.com/ollama/ollama/commits/main/llama/llama.cp...

最近のr/localLLaMaのOllamaに対する嫌悪スレッドだよ: https://www.reddit.com/r/LocalLLaMA/comments/1kg20mu/so_why_...

私にとって、OllamaはLLMのDockerみたいなもんだね。ユーザー体験はインスパイアされてるし、モデルファイルの構文もDockerfileの構文に影響を受けてる。初期のDockerの頃、DockerとLXCの論争があったけど、その時はDockerがLXCのラッパーに過ぎないって言われて、Dockerの素晴らしいユーザー体験の改善が軽視されてた。でも、長い間llama.cppへの認識がなかったのは問題だったと思う。今はそのプロジェクトを認めてるけどね。 [0]: https://github.com/ollama/ollama/blob/main/docs/modelfile.md

私にとっては、Ollamaはllama.cppのフロントエンドに過ぎないけど、Ollamaの人たちはそれをあまり認めないんだよね。

私はOllamaをやめたよ、だってOllamaはVulkanをサポートしてないから: https://news.ycombinator.com/item?id=42886680 消費者ハードウェアを気にするなら、Vulkanをサポートしなきゃダメだよ。Ollamaの開発者たちは明らかにそれを気にしてない。

Hacker Newsで議論の続きを見る