5 pontos por GN⁺ 2025-05-17 | 1 comentários | Compartilhar no WhatsApp
  • A Ollama passou a oferecer suporte a modelos multimodais (texto + imagem) por meio de um novo motor
  • Há suporte a vários modelos visuais multimodais, como Llama 4 Scout e Gemma 3, tornando possível fazer perguntas que combinam imagem e texto
  • O novo motor oferece maior modularidade dos modelos, melhoria de precisão e gerenciamento eficiente de memória
  • Com cache de imagens e uso de metadados de hardware, ele entrega inferência mais rápida e otimização para o hardware
  • No futuro, estão previstas expansões de recursos como suporte a contextos mais longos, chamadas de ferramentas e streaming

Suporte da Ollama a modelos multimodais

Com a introdução de um novo motor multimodal, a Ollama passa a oferecer suporte a modelos de visão multimodal de última geração, que lidam de forma combinada com imagens e texto

Entendimento e raciocínio multimodal abrangentes

Llama 4 Scout

  • A Ollama oferece suporte ao Llama 4 Scout (109 bilhões de parâmetros, modelo mixture-of-experts)
  • Como exemplo, é possível fazer perguntas baseadas em localização a partir de quadros de vídeo
    • Ex.) detectar diversas características da imagem, como edifícios específicos, elementos do ambiente e informações de fundo
  • Em seguida, também é possível continuar naturalmente com várias perguntas complementares
    • Ex.) perguntas como "Qual é a distância deste prédio até Stanford?" e "Qual é a melhor forma de chegar lá?" recebem informações precisas
    • Fornece respostas adequadas a situações reais, incluindo diferentes meios de transporte, rotas e tempo estimado de deslocamento

Gemma 3

  • O Gemma 3 pode receber várias imagens ao mesmo tempo e analisar as relações entre elas
    • Ex.) em 4 imagens, consegue identificar rapidamente condições diversas, como animais ou plantas que aparecem em comum, a presença de uma cena específica ou situações incomuns
    • Como exemplo divertido, ao observar uma lhama e um golfinho boxeando, ele analisa quem venceria, compreendendo as características e a dinâmica dos indivíduos

Reconhecimento e análise de documentos

Qwen 2.5 VL

  • O modelo Qwen 2.5 VL é usado para reconhecimento de texto (OCR) e extração de informações textuais específicas dentro de imagens
    • Em exemplos reais de uso, ele consegue extrair informações de um cheque ou traduzir para o inglês inscrições verticais em chinês, como dísticos de primavera

Características do motor multimodal da Ollama

  • Até agora, a Ollama vinha oferecendo suporte a modelos com base no projeto ggml-org/llama.cpp, desenvolvendo com foco em usabilidade e portabilidade de modelos
  • Recentemente, diversos laboratórios passaram a divulgar modelos multimodais e, para ampliar ainda mais o suporte a modelos de acordo com o objetivo da Ollama, a empresa fortaleceu seu próprio motor
  • O novo motor trata modelos multimodais como entidades independentes e de primeira classe, além de ampliar a participação de parceiros e da comunidade

O significado da evolução do motor

  • Melhora a confiabilidade e a precisão da inferência local da Ollama e estabelece a base para dar suporte, no futuro, a vários campos multimodais (ex.: voz, geração de imagens, geração de vídeo, suporte a contextos longos e melhor uso de ferramentas)

Modularidade dos modelos

  • O “escopo de impacto” de cada modelo é isolado de forma independente, melhorando a confiabilidade e permitindo que desenvolvedores integrem novos modelos com facilidade
    • O ggml/llama.cpp tradicional oferecia suporte apenas a modelos de texto; no multimodal, o decodificador de texto e o codificador de visão ficam separados e são executados de forma independente
    • Como as imagens precisam ser incorporadas no algoritmo de visão e depois repassadas ao modelo de texto, isso permite implementar uma lógica enxuta para cada modelo
    • Dentro da Ollama, cada modelo pode separar sua própria camada de projeção de embeddings e sua estrutura específica de treinamento
    • Criadores de modelos podem se concentrar apenas em seus próprios modelos e treinamento, sem patches adicionais nem condicionais complexas
    • Alguns exemplos de arquitetura de modelos podem ser vistos no repositório GitHub da Ollama

Melhoria de precisão

  • Imagens grandes geram muitos tokens e podem exceder o tamanho do lote
    • Quando a imagem ultrapassa o lote, as informações de posição podem se perder
  • A Ollama aumenta a precisão ao adicionar metadados extras durante o processamento de imagens
    • Ela trata em detalhe itens como aplicação de causal attention, divisão em lotes dos embeddings de imagem e gerenciamento de fronteiras
    • Se os pontos de divisão forem inadequados, a qualidade da saída pode cair; por isso, os critérios são ajustados com base nos artigos de cada modelo
  • Outras ferramentas de inferência local implementam isso de maneiras variadas, mas a Ollama garante qualidade com um processamento preciso, alinhado ao design e ao método de treinamento de cada modelo

Otimização do gerenciamento de memória

  • Cache de imagens: uma imagem processada uma vez permanece armazenada na memória, acelerando o processamento de prompts subsequentes. Enquanto o limite de memória não for atingido, a imagem é mantida
  • Previsão de memória e otimização do cache KV: em cooperação com fabricantes de hardware e parceiros de sistemas operacionais, a Ollama reconhece com precisão os metadados de hardware e busca otimizar o uso de memória
    • São realizados processos de validação por versão de firmware e benchmarking de novos recursos
  • A Ollama também otimiza causal attention separadamente por modelo, oferecendo ajustes específicos para cada modelo, e não apenas em nível de grupo
    • Exemplo:
      • Gemma 3, do Google DeepMind: com sliding window attention, aloca apenas parte do comprimento de contexto, deixando o restante da memória para inferência simultânea e outros usos
      • Llama 4 Scout, Maverick e outros, da Meta: suporte a chunked attention, embeddings rotacionais 2D e implementação de suporte a contexto longo em modelos mixture-of-experts
  • No caso de modelos cujas camadas de attention não estejam completamente implementadas, eles podem até “funcionar”, mas no longo prazo podem apresentar queda na qualidade da saída e resultados anormais

Planos futuros

  • Suporte a comprimentos de contexto mais longos
  • Reforço das capacidades de inferência/raciocínio
  • Fornecimento de chamadas de ferramentas e respostas em streaming
  • Expansão de recursos para uso direto do computador

Agradecimentos

  • Organizações e pesquisadores que contribuíram para o desenvolvimento dos modelos
    • Agradecimentos a vários laboratórios e membros da comunidade que se dedicaram ao desenvolvimento de modelos de visão, como Google DeepMind, Meta Llama, Alibaba Qwen, Mistral e IBM Granite
  • GGML
    • A biblioteca de tensores da equipe GGML é um elemento central do motor de inferência da Ollama. Ela permite acesso direto ao GGML em Go, sendo útil para grafos de inferência personalizados e para o desenho de arquiteturas complexas de modelos
  • Parceiros de hardware
    • Agradecimentos aos parceiros de hardware, como NVIDIA, AMD, Qualcomm, Intel e Microsoft, que colaboraram para melhorar o desempenho de inferência em diversos dispositivos

1 comentários

 
GN⁺ 2025-05-17
Comentários do Hacker News
  • Surpresa ao saber do anúncio de um novo engine no Ollama neste momento; compartilha a impressão de que isso vem do fato de o llama.cpp finalmente ter incluído recursos de visão estáveis na branch principal, coroando um esforço de longa data; supõe que o Ollama já vinha se preparando para isso há bastante tempo; acha que faz sentido a decisão de romper a dependência inicial do llama.cpp e seguir de forma independente
  • Expressa curiosidade sobre qual é a diferença prática entre a forma como os dois projetos adicionaram recursos multimodais; como já existia suporte a LLaVA há muito tempo, questiona se antes era necessário algum tratamento especial; esperava que o TFA mencionasse essa diferença, mas ficou confuso com o fato de o multimodal no Ollama ser tratado como algo completamente novo
  • Considera que o termo multimodal deveria incluir não só texto e imagem, mas também áudio (e potencialmente vídeo); argumenta que, se o modelo só tem geração ou análise de imagem, então “modelo de visão” seria um nome mais preciso; destaca a necessidade de distinguir claramente modelos multimodais, como Qwen2.5-Omni, de modelos como Qwen2.5-VL; explica que, nesse sentido, o novo engine do Ollama adicionou suporte a "visão"
  • Diz ter interesse em lidar com entrada de vídeo e pergunta se Qwen2.5-Omni e o Ollama aceitam entrada de vídeo
  • Embora se fale muito sobre o “novo engine” do Ollama, gostaria de ver informações concretas sobre como ele foi implementado; como llama.cpp também é um projeto impressionante, se realmente criaram um engine substituto, quer ver exemplos de como isso foi feito; supõe que a biblioteca de tensores GGML tenha papel central; entende que a estrutura provavelmente usa FFI no Go para escrever diretamente o funcionamento do modelo (por exemplo, uma implementação do Gemma3) enquanto aproveita as funções do GGML; acha que esses detalhes técnicos deveriam ter sido apresentados de forma mais explícita no blog oficial
  • O Ollama vinha sendo criticado por falta de transparência, atribuição opaca de créditos e decisões pouco centradas no usuário; nesta publicação, porém, ficou surpreso ao ver mais atribuições a contribuidores; especula que isso seja um ajuste em resposta às críticas dos usuários
  • Confessa que a convenção de nomes com “*llama” no mundo dos LLMs é confusa demais; há tantos projetos com nomes parecidos com llama que isso só aumenta a confusão
  • Compartilha a dificuldade de acompanhar a velocidade do avanço em AI/ML; se a pessoa não presta atenção o tempo todo, fica difícil entender o que está acontecendo; menciona também a preferência por nomes “meme”; lembra que antes houve modas com personagens de Vila Sésamo, a família YOLO de modelos e que nem artigos de conferência escapam disso
  • Saindo um pouco do tema, pergunta por que o Ollama é visto de forma negativa por alguns usuários; observa que normalmente não havia muita explicação além de “rode o llama.cpp diretamente”
  • Compartilha links do Reddit e de issues no GitHub para mostrar que existe um problema antigo de o Ollama não dar crédito adequadamente ao llama.cpp; aponta que, em alguns casos, projetos usam diretamente o llama.cpp, mas o crédito acaba indo para o Ollama; diz que o Ollama não contribui diretamente (embora isso não seja obrigatório), mas mantém internamente um fork, de modo que quem tiver interesse pode aproveitar o código por meio de cherry-pick quando quiser
  • Além das questões de cultura/licença/FOSS já mencionadas, reclama do formato de armazenamento de arquivos; critica o fato de o Ollama ter introduzido seu próprio armazenamento em disco e registro, o que dificulta a reutilização; supõe que tenha havido a intenção de desenhar uma estrutura proprietária pensando em monetização no longo prazo; isso até poderia ter o objetivo de evitar armazenamento duplicado, como no Docker, mas na prática só piora a usabilidade; como resultado, surge o incômodo de manter arquivos enormes, acima de 30 GB, em duplicidade, e até um problema pequeno acaba parecendo grande; considera melhor um formato padrão compatível com vários ecossistemas; acabou deixando de usar o Ollama por causa dessa inconveniência
  • Avalia o Ollama como uma solução no mundo dos LLMs parecida com o Docker; a experiência do usuário e a sintaxe dos arquivos de modelo também passam a impressão de terem sido inspiradas no Dockerfile; lembra da época inicial do Docker, quando havia debates entre Docker e LXC, e de como a inovação de experiência do usuário do Docker era subestimada; ainda assim, considera problemático o longo histórico de falta de reconhecimento ao llama.cpp; acrescenta que hoje já existe algum nível de crédito mais aberto
  • Reclama que o Ollama não colabora com a comunidade; por ser uma empresa financiada por VC, ainda restam dúvidas sobre seu modelo de receita; em outras alternativas como llama.cpp, lmstudio e ramalama, a situação de cada uma é mais clara; afirma que o ramalama contribui bastante para vários projetos open source relacionados e compartilha um link do GitHub como referência
  • Acha lamentável que o Ollama aja como se não fosse apenas um front-end para o llama.cpp, sem deixar isso claro nem reconhecer esse fato
  • Aponta que o exemplo de “tradução de dísticos verticais chineses” do Ollama contém vários erros de tradução; supõe que o autor do blog não seja de fato falante de chinês; analisa em detalhe como o conteúdo real de cada parte difere do resultado mostrado pelo Ollama
  • O mantenedor que fez esse exemplo aparece diretamente na discussão e deixa claro que é chinês, reforçando a credibilidade; considera que a tradução para o inglês em si estava bastante correta; enfatiza que não estão escondendo nem manipulando os erros do modelo ou da demo; compartilha a esperança de que a qualidade do modelo melhore mais no longo prazo
  • Diz que pretende testar por conta própria; elogia o formato da matéria por trazer exemplos práticos e detalhes logo de cara
  • Considera que a força do Ollama sempre foi permitir rodar modelos imediatamente, sem configuração complicada, usando apenas comandos simples do Docker; porém, quando é preciso trabalhar com imagens e vídeo, surge uma limitação técnica porque o Docker não usa GPU; pergunta como o Ollama pretende manter o suporte à integração com Docker no futuro e se isso não corre o risco de virar um aspecto secundário do projeto
  • Outra pessoa comenta que em algumas plataformas é possível usar GPU no Docker, embora exija mais configuração, e que a NVIDIA fornece documentação sobre isso
  • Acha engraçado que, no exemplo de orientação de rota em Stanford, tenha surgido informação errada; comenta como curiosidade de trânsito local que a CA-85 fica mais ao sul de Palo Alto
  • Conta que usa modelos locais com o Ollama há quase um ano e está satisfeito; porém, como utiliza quase sempre recursos voltados a texto, mal teve contato com suporte multimodal como o Llava; pede recomendações de projetos úteis e legais construídos com modelos locais multimodais, pois gostaria de encontrar ideias para projetos pessoais