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

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

概要

  • 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の開発者たちは明らかにそれを気にしてない。

既に言及された「文化」やライセンス、FOSSの問題に加えて、私は様々なアプリケーションでモデルの重みを再利用できるようにしたかったんだけど、Ollamaは独自のディスクストレージ方式とレジストリを持って出荷することに決めたみたい。おそらく、最終的にはこれを何らかの形で収益化したいからだと思う、たぶん「プライベート」な重みを彼らのレジストリにホストするような感じで。なぜ彼らがファイルを「ブロブ」に分割するのがLLMの重みに意味があると思ったのか理解できない。重複を減らしたかったのかもしれないけど、結局は何の利益もなく複雑にしてるだけだと思う。私のようなユーザーにとっては、Ollamaと他のエコシステムで重みを使いたかっただけなのに、+30GBの大きなファイルを重複させる羽目になってる。だから、私は他のほとんど同じように動くものを使ってて、Ollamaは使ってない。

10年もいる人なら、Embrace, Extend, Extinguishモデルの匂いを100マイル先から嗅ぎ取れるよ。彼らは明らかに市場をキャッチして、他の人の仕事の上に立ってお金を取れる「エンタープライズライセンス」に切り替えるつもりだ。

彼らはコミュニティと協力しようとしないんだよね。それに、VCに支えられてる会社だから、どうやってマネタイズするつもりなのかもオープンな疑問だよ。llama.cpp、lmstudio、ramalama(コンテナ/RH)を選ばない理由はないよ。それぞれで何を得られるかは少なくとも分かるし。Ramalamaは実際にllama.cpp/whisper.cppにかなり貢献してるし(他のプロジェクトも多分)、私にとってはより良いソリューションを提供してくれるんだ。https://github.com/ollama/ollama/pull/9650 https://github.com/ollama/ollama/pull/5059

俺にとってはR1の大失敗と彼らの不誠実さが問題。ユーザーをここまで大胆に誤導して、ただ hype に乗っかろうとするプロジェクトをどうして信じ続けられるのか、全く理解できない。

マルチモーダルがテキスト、画像、音声(+潜在的に動画)を含むことを願ってる。もしモデルが画像生成や画像分析だけをサポートしてるなら、ビジョンモデルの方が適切な用語だと思う。Qwen2.5-OmniとQwen2.5-VLのようなマルチモーダルモデルを区別することを目指すべきだね。この意味では、Ollamaの新しいエンジンはビジョンサポートを追加してる。

動画入力を扱うのにすごく興味があるんだけど、Qwen2.5-OmniとOllamaでそれができるのかな?

私にとってOllamaの強みは、シンプルなDockerコマンドを実行するだけでローカルで簡単に動かせることだったけど、画像や動画が関わるとDockerはGPUを使わないから選択肢ではなくなっちゃった。Ollamaが今後Docker統合をどうサポートするつもりなのか、もしくは私が思っているほど重要な部分ではないのか、ちょっと気になるね。

DockerでGPUを使えるよ - 少なくともいくつかのプラットフォームではね。ただ、設定がちょっと多いけど、nvidiaが手助けするための詳細を載せてるよ。https://docs.nvidia.com/datacenter/cloud-native/container-to...

ほぼ1年近くOllamaを使ってローカルモデルを動かしてるけど、めっちゃ気に入ってる。ただ、Llavaとかのマルチモーダルサポートにはほとんど手を付けてないんだ。だって、私の個人的な使い方はテキストベースだからさ。質問なんだけど、ここでローカルモデルを使って作ったクールで役立つマルチモーダルプロジェクトって何かある?個人プロジェクトのアイデアを探してるんだ。

彼らの例「縦の中国の春の対句を英語に理解して翻訳する」にはたくさんの間違いがあるよ。ブログ記事を書いた人はその例を見せびらかすために中国語を実際には知らないんじゃないかな。実際に書かれている内容は:上:家和国盛 左:和谐生活人人舒畅迎新春 右:平安社会家家欢乐辞旧岁 Ollamaが見たもの:上:盛和家国(正しい文字だけど順番が違う) 左:「新春」を舒畅(快適)と読んでる 右:家家欢欢乐乐辞旧岁(文字を重複させて最初の4つを省略してる)

あの例を実行したメンテナーの一人なんだ。私は中国人だよ。英語の翻訳はかなり正確だと思った。モデルの間違いを隠したり、デモを偽ったりはしないよ。もちろん、時間が経つにつれてモデルがもっと改善されることを期待してる。

LLMの世界での'*llama'という命名規則は、私にとっては多分もっと混乱するべきじゃないと思う。ここにはたくさんのラマがいるよ。

残念ながら、AI/MLのスピードはめっちゃ速いんだよね。常に注意を払う以外に追跡する方法が分からない。フィールドもミームっぽい名前が大好きだし。数年前はみんなセサミストリートのキャラクターの名前をモデルにつけてたし、YOLOファミリーのモデルもあった。会議の論文も免れないし、実際、最も「違反者」だよ。

新しいエンジンについてたくさん話してるけど、実際にどう実装されてるのか詳細を見てみたいな。llama.cppはすごい成果だから、それに代わるものを主張するなら、どうやってやったのかの例を見せてほしい!この部分に基づいて: > 我々はマルチモーダルモデルを一級市民としてサポートする新しいエンジンを目指し、Ollamaのパートナーがコミュニティにもっと直接貢献できるようにする - GGMLテンソルライブラリ。GitHubのリンクをクリックしてみたら: https://github.com/ollama/ollama/blob/main/model/models/gemm... 俺の理解では、GGMLライブラリ(llama.cppのバックボーンとなるもの)は、Goから呼び出せるFFI(外部関数インターフェース)を公開しているはずだから、OllamaのGoコードでは、GGMLの魔法を呼び出すモデルの振る舞い(Gemma 3みたいな)を自分たちで実装できるってことだよね?合ってるかな?こういう詳細はブログ記事の最初に載せてほしいと思ってたんだけど。

Ollamaは透明性がないことで知られていて、クレジットも少なく、ユーザーに対して反ユーザー的な決定をしてるよね。この投稿でのクレジットの量には驚いた。これについてかなり批判を受けてるから、調整してるのかもしれないね。