Skip to main content

the avatar of Alessandro de Oliveira Faria

DeepSeek 3.1: Por que a atualização importa para o mercado

No dia 19 de agosto de 2025 a startup chinesa DeepSeek anunciou uma atualizaçao para o seu modelo de inteligência artificial V3. O anúncio ocorreu em uma postagem no grupo oficial da empresa no WeChat e descreveu a nova versão — batizada de V3.1 — como um ajuste experimental pronto para testes. Embora a companhia não tenha divulgado documentação técnica, a atualização é mais um capítulo na corrida chinesa para desafiar gigantes ocidentais como OpenAI e Anthropic.

O que muda com o V3.1

Segundo a publicação citada pela Bloomberg Línea, o V3.1 conta com uma janela de contexto mais longa, permitindo que o modelo considere uma quantidade maior de informação por consulta. Uma janela de contexto grande é essencial para manter conversas longas e relembrar informaçoes passadas sem perder coerência. A startup afirma que isso resultará em conversas mais longas com melhor recuperação, mas não apresentou detalhes técnicos adicionais.

A falta de detalhes é significativa porque a versão V3, lançada em dezembro de 2024, foi publicizada como um modelo de código aberto com 671 bilhões de parâmetros na arquitetura mixture‑of‑experts (MoE). Apenas 37 bilhões de parâmetros são ativados a cada token durante a inferência, o que reduz o custo de computação sem sacrificar desempenhoi. Entre as especificações divulgadas estão:

  • Janela de contexto de 128 000 tokens e capacidade de processar cerca de 60 tokens por segundo, três vezes mais rápido que a versão V2.
  • Latência de ~0,76 segundo por token e preço de US$ 0,27 por milhão de tokens de entrada e US$ 1,10 por milhão de tokens de saída, o que torna o DeepSeek V3 um dos modelos open source de melhor custo‑benefício.
  • Um mecanismo de seletividade que ativa apenas alguns “especialistas” da rede (MoE), combinando rapidez e capacidade de raciocínio.

O fato de a janela de contexto da nova versão V3.1 ser “mais longa” sugere que poderá ultrapassar esses 128 000 tokens. Isso beneficiaria aplicações que exigem grande volume de informações, como análises de documentos extensos ou códigos longos. Contudo, sem documentação pública, ainda não está claro qual será o tamanho final da janela nem se houve alterações na arquitetura MoE.

Por que essa atualização é relevante

Mesmo com poucos detalhes, o lançamento do V3.1 reforça dois pontos:

  1. Avanços rápidos a baixo custo. O DeepSeek V3 foi treinado com 14,8 trilhões de tokens usando 2,7 milhões de horas de GPU, um custo estimado em US$ 5,6 milhões, significativamente inferior aos valores gastos por rivais ocidentais. Ainda assim, a versão V3 superou modelos como Llama 3.1 e Claude 3.5 em vários testes de matemática e programação. O novo V3.1 mostra que a empresa continua apostando em melhoras incrementais e baratas, em vez de saltos geracionais.
  2. Pressão sobre os líderes dos EUA. A velocidade de desenvolvimento e a popularidade dos modelos da DeepSeek desafiaram empresas americanas como OpenAI. O modelo R1, lançado em janeiro de 2025, chegou a superar rivais ocidentais em métricas padronizadas e custou apenas US$ 6 milhões para treinar. Essa escalada de inovações chinesas levou a reduções de preços e novos modelos “econômicos” por parte de empresas como Google (Gemini 2.5 Pro) e OpenAI (o3 Mini).

A DeepSeek também se destaca por adotar uma estratégia de aperfeiçoamentos contínuos. Em vez de lançar diretamente o esperado sucessor R2, a empresa evolui o modelo R1 por meio de atualizações incrementais. A atualização R1‑0528, de maio de 2025, incorporou mecanismos de auto‑verificação para aumentar a precisão em matemática e fatos, elevando a pontuação em benchmarks c em quase 30%. Essa versão gerou 728 linhas de código para criar um aplicativo de animação 3D com partículas, resultado comparável ao Claude 4 da Anthropic. A abordagem incremental reduz custos e permite corrigir falhas mais rapidamente, mas traz desvantagens de lentidão na inferência e limitações em suporte multilíngue.

O que ainda falta

Embora o DeepSeek V3.1 amplie a capacidade de contexto, a empresa ainda não publicou documentação em plataformas como o Hugging Face. Isso impede a comunidade de testar o modelo em diferentes cenários e avaliar o impacto real da mudança. Usuários e desenvolvedores também aguardam o lançamento do R2, sucessor do R1; segundo a mídia chinesa, atrasos teriam ocorrido devido ao perfeccionismo e às falhas de Liang Wenfeng, CEO da empresa.

At[e agora a nova versão V3.1 reforça a estratégia da DeepSeek de crescer de maneira incremental, respondendo rapidamente ao feedback e garantindo que a empresa permaneça no radar global da inteligência artificial. Enquanto a comunidade espera por detalhes técnicos e pelo R2, o anúncio de uma janela de contexto ainda maior sinaliza que a corrida por modelos com memória mais longa e preços acessíveis está apenas começando.

Link: https://huggingface.co/deepseek-ai/DeepSeek-V3.1-Base

the avatar of Alessandro de Oliveira Faria

OpenAI se rende as LLM Abertas


Depois de mais de cinco anos, a OpenAI finalmente fez um grande retorno ao cenário de modelos de código aberto com o lançamento dos modelos GPT-OSS. Este movimento marca o primeiro passo significativo da empresa para se reaproximar da comunidade Open Source desde o GPT-2 em 2019, prometendo transformar completamente o panorama da inteligência artificial

O Que São os Modelos GPT-OSS?

Os modelos GPT-OSS chegam com uma arquitetura MOI (Mixture of Experts) impressionante, apresentando 36 camadas e 128 especialistas por camada, ativando apenas quatro especialistas por token. O mais empolgante é que esses modelos vêm com uma licença Apache 2.0, o que significa que qualquer pessoa pode baixá-los, inspecioná-los, modificá-los e até mesmo utilizá-los comercialmente sem preocupações com restrições de copyleft ou riscos de patentes.

Principais Características e Capacidades:

Licença Permissiva: Crie e use livremente em suas aplicações sem pagar nada.
Projetado para Tarefas de Agente: Aproveita o uso eficiente de instruções e ferramentas dentro da cadeia de pensamento, incluindo pesquisa na web e execução de código Python.
Cadeia de Pensamento Completa: Acesse a cadeia de pensamento completa para facilitar a depuração e aumentar a confiança nas saídas do modelo.

Dois Modelos para Diferentes Necessidades

A OpenAI lançou não um, mas dois modelos de código aberto:

1. GPT-OSS 120B: Este é o modelo mais robusto e potente, projetado para ser executado em data centers ou servidores. É considerado um “modelo grande”.

2. GPT-OSS 20B: Este é um modelo de “tamanho médio”, ideal para a maioria dos desktops e laptops, sendo mais acessível para rodar em computadores domésticos

É importante notar que, para rodar o modelo 120B localmente, você precisará de uma máquina muito poderosa, quase um “PC da NASA”. No entanto, o modelo 20B é muito mais fácil de ser executado na maioria dos equipamentos com uma configuração razoável.

Acessibilidade e Segurança

A boa notícia é que você não precisa de uma super máquina para experimentar esses modelos. Ambos estão disponíveis online em plataformas como o playground da Hugging Face e via OpenRouter, permitindo que você os utilize diretamente da internet sem necessidade de download.

Para quem prefere rodar os modelos localmente, sugiro obter direto Via Hugging Face ou GitHub.

A segurança é uma prioridade para a OpenAI. Ambos os modelos passaram por treinamento e avaliação de segurança rigorosos, com testes abrangentes de versões maliciosas. Além disso, esses métodos de treinamento e testes foram revisados e informados por especialistas externos em segurança, marcando um avanço significativo nos padrões de segurança de modelos abertos.

Desempenho e Impacto

Os testes iniciais da comunidade mostram que os modelos GPT-OSS são bastante competentes e funcionam muito bem, comparáveis a modelos pagos que temos hoje no mercado. Há um comparativo que os coloca muito próximos dos modelos pagos da OpenAI, como o OpenAI GPT-3 e o OpenAI GPT-4 Mini em termos de raciocínio, o que é notável para uma tecnologia gratuita.

As possibilidades são infinitas, desde a execução de jogos como Space Invaders com código gerado pela IA, até a visualização e localização de objetos em imagens complexas, e o resumo conciso de documentos extensos (o modelo 120B levou cerca de 1 segundo para resumir 60 páginas em um parágrafo).

Muitos consideram esses dois modelos de código aberto como apenas “aperitivos” para o aguardado lançamento do GPT-5, que deve acontecer ainda esta semana…

Conclusão

O lançamento dos modelos GPT-OSS pela OpenAI é um marco significativo, reafirmando o compromisso da empresa com a comunidade open source e disponibilizando tecnologia de ponta de forma gratuita. Seja você um desenvolvedor, pesquisador ou apenas um entusiasta, esses modelos oferecem uma oportunidade incrível para experimentar, personalizar e inovar com inteligência artificial.

Links:
https://huggingface.co/openai/gpt-oss-120b
https://huggingface.co/openai/gpt-oss-20b

the avatar of Alessandro de Oliveira Faria

IA com LMCache e vLLM: Inferência de LLMs de gente grande.

Com a crescente demanda por modelos de linguagem de grande escala (LLMs), a eficiência da inferência se tornou um gargalo crítico, especialmente em cenários onde latência, custo e escalabilidade são fatores essenciais. O LMCache surge como uma solução inovadora nesse cenário, revolucionando a forma como os tokens são pré-processados (prefill) e decodificados durante a inferência — e fazendo isso com integração transparente a motores como o vLLM.

Por que a infraestrutura atual está ficando para trás?

O tempo de prefill (processamento inicial de tokens no contexto) e o custo de decodificação (geração de novos tokens) são duas das maiores causas de latência em LLMs. Mesmo com arquiteturas otimizadas como FlashAttention e KV-caching em GPUs modernas, o uso repetido de contextos semelhantes (com prompts quase idênticos, como ocorre em assistentes e RAGs) ainda gera redundância computacional.

É aí que o LMCache entra como game-changer.


LMCache: Cache para Tokens de LLM

O que é?

O LMCache é uma espécie sistema de cache semântico especializado para modelos de linguagem. Ele permite que tokens de saída (logits) previamente inferidos em contextos semelhantes sejam reutilizados, eliminando a necessidade de computação redundante.

Imagine que você tem um assistente que responde a milhares de prompts que começam com “Você é um assistente útil…”. Em vez de recalcular sempre os mesmos embeddings e estados do modelo, o LMCache detecta similaridade e recupera partes da resposta direto do cache.

Principais Benefícios:

  • Até 4× mais throughput em workloads típicos de assistentes.
  • Menor latência de resposta, especialmente na primeira tokenização (prefill).
  • Redução de custo em GPU/HW por inferência.
  • Totalmente compatível com vLLM (integração oficial e em produção).
  • Cache persistente com Redis ou DuckDB (ideal para escala).

Inovação Técnica: “SpecDecode” e “ShortestPrefillFirst”

1. SpecDecode – Execução Especulativa + Cache

O SpecDecode introduz a combinação de decodificação especulativa (speculative decoding) com o LMCache. A ideia é gerar múltiplos tokens candidatos rapidamente usando um modelo pequeno e validar a sequência com o modelo maior. Ao combinar isso com o LMCache, temos:

  • Inferência ultrarrápida sem comprometer a qualidade
  • Redução do número de chamadas ao modelo principal
  • Reutilização massiva de logits decodificados

Essa técnica é particularmente eficiente para tarefas de completions longos, como geração de documentos ou agentes autônomos.

2. ShortestPrefillFirst – Ordenação Inteligente de Requisições

No artigo Shortest Prefill First, os autores propõem reordenar os pedidos de inferência por comprimento de contexto. Essa estratégia melhora a utilização do cache porque permite que o LMCache maximize o reuso de prefixos mais curtos e mais comuns antes de processar prompts longos e únicos.

Resultado? Melhor paralelismo e menos fragmentação no uso da KV-cache da GPU.


🔧 Integração com vLLM: Zero Modificações em Modelos

Se você já usa vLLM, integrar com o LMCache é simples

# 1. launch vLLM
vllm serve Qwen/Qwen2-VL-2B-Instruct \
--kv-transfer-config '{"kv_connector":"LMCacheConnectorV1","kv_role":"kv_both"}' \
--no-enable-prefix-caching --enforce-eager

# 2. POST an image prompt twice – watch the logs
curl -X POST http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" \
-d @first_image.json
curl -X POST http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" \
-d @first_image.json # instant response, log shows ~16k KV hits

🏁 Conclusão: Caminho Inevitável para LLMs em Produção

O LMCache, aliado ao vLLM, marca uma virada de paradigma na inferência de LLMs. Ao aplicar técnicas de cache, ordenação inteligente e decodificação especulativa, é possível alcançar níveis inéditos de performance e economia.

Se sua empresa ou projeto depende de LLMs com alto volume ou precisa escalar assistentes com contexto repetitivo (como RAGs, copilots ou workflows empresariais), implementar LMCache é uma decisão estratégica.

🔗 Referências:

the avatar of Alessandro de Oliveira Faria

GLM-4.5 Melhor e mais barata que o DeepSeek

O cenário da inteligência artificial está passando por uma transformação acelerada — e a China vem ganhando destaque ao combinar inovação, eficiência e acessibilidade. Um dos marcos mais recentes dessa evolução é o lançamento do modelo GLM-4.5, desenvolvido pela startup chinesa Z.ai (anteriormente Zhipu), que promete oferecer desempenho de ponta com menor custo computacional e financeiro.

Uma Nova Era para IAs de Código Aberto

O GLM-4.5 chega como uma resposta direta à crescente demanda por modelos abertos, acessíveis e eficientes, competindo com nomes de peso como DeepSeek e até mesmo OpenAI. Com 355 bilhões de parâmetros e arquitetura baseada em Mixture of Experts (MoE), o modelo une três pilares fundamentais: raciocínio complexo, geração de código e operação agentiva (capacidade de executar tarefas autônomas em múltiplas etapas).

O destaque? Ele opera com apenas oito chips Nvidia H20, uma alternativa desenvolvida especialmente para o mercado chinês, respeitando restrições de exportação dos EUA.

Comparativo do GLM-4.5 com diversos modelos da OpenAI, Anthropic, Google DeepMind, xAI, Alibaba, Moonshot e DeepSeek em 12 benchmarks que abrangem IA agentiva (3), raciocínio (7) e programação (2). No geral, o GLM-4.5 ficou em 3º lugar, e o GLM-4.5 Air em 6º (Imagem: Z.ai)

Oportunidade Estratégica: Chips H20 e a Corrida Computacional

O sucesso do DeepSeek em escalar IA com chips H20 despertou o interesse de gigantes como Tencent, Alibaba e ByteDance, que agora estão aumentando seus pedidos pelos mesmos chips. O GLM-4.5, sendo ainda mais econômico e eficiente, impulsionou essa tendência. Mesmo com as exportações de H20 temporariamente suspensas, a Nvidia já anunciou que pretende retomar os envios em breve — sinal de que a disputa por poder computacional continua aquecida.

Por que o GLM-4.5 se Destaca?

  • Aberto e gratuito para desenvolvedores
  • Custo de uso extremamente competitivo:
    • Entrada: $0,11 por milhão de tokens (vs. $0,14 da DeepSeek)
    • Saída: $0,28 por milhão de tokens (vs. $2,19 da DeepSeek)
  • Alto desempenho em benchmarks de raciocínio, como MMLU Pro e AIME24
  • Alta eficiência em tarefas agenticas, com 90,6% de sucesso em chamadas de ferramentas
  • Suporte nativo a raciocínio estruturado, codificação full-stack e navegação web

Z.ai terá custo inferior ao da DeepSeek, já considerada uma IA mais barata (Imagem: Mojahid Mottakin / Shutterstock.com)

Capacidade Agentiva: Um Novo Paradigma

O GLM-4.5 é construído sobre o conceito de IA agentiva, que permite ao modelo dividir automaticamente tarefas complexas em subtarefas, otimizando a precisão e velocidade. Isso o torna ideal para casos como:

  • Geração de aplicações web completas (frontend, backend e banco de dados)
  • Criação de materiais de apresentação, como slides, pôsteres e relatórios
  • Automação de pesquisas e coleta de dados em múltiplas etapas

Em benchmarks como o BrowseComp, ele respondeu corretamente a 26,4% das perguntas — à frente de Claude-4-Opus, por exemplo.

Crescimento Chinês e Apoio de Gigantes

A Z.ai não é uma novata. Fundada em 2019, já captou mais de US$ 1,5 bilhão em investimentos de pesos-pesados como Alibaba, Tencent, Qiming Venture Partners e fundos estatais chineses. O modelo GLM-4.5 coloca a empresa no radar de gigantes ocidentais, a ponto de ter sido citada em alertas da própria OpenAI sobre o avanço da IA chinesa.

Outras startups chinesas também estão inovando: a Moonshot, por exemplo, lançou o Kimi K2 — voltado para tarefas de programação, com desempenho acima do Claude e ChatGPT em benchmarks específicos.

Conclusão

O lançamento do GLM-4.5 representa mais do que um avanço técnico — é uma jogada estratégica da China para democratizar o acesso à IA de alto desempenho. Com custos reduzidos, arquitetura avançada e capacidades agentivas, o modelo abre novas possibilidades para startups, desenvolvedores independentes e grandes corporações que buscam soluções potentes, abertas e eficientes.

A corrida global da IA está longe de terminar — mas a China está claramente acelerando.

the avatar of Alessandro de Oliveira Faria

Kimi K2: Um Salto na Inteligência Agêntica Aberta

Kimi K2 é o mais novo modelo de linguagem de código aberto da Moonshot AI, projetado para ir além de um chatbot tradicional. Ele não apenas responde perguntas, mas também pode agir de forma autônoma, utilizando ferramentas, executando código e coordenando tarefas complexas. Nesta análise rápida, vamos destacar as principais capacidades e diferenciais do Kimi K2, seus avanços técnicos em relação às versões anteriores da série Kimi, e as potenciais aplicações práticas desse modelo de inteligência artificial de última geração.

Kimi K2: o “faça-tudo” da IA em linguagem simples

Imagine um assistente virtual que não só conversa, mas abre planilhas, roda códigos, gera relatórios e conclui tarefas sozinho. Esta é a especativa é o Kimi K2, o novo modelo de inteligência artificial (IA) aberto da Moonshot AI. A seguir, você vai entender por que tanta gente está falando dele — sem precisar ser engenheira(o) de software.


1. O que é o Kimi K2?

O Kimi K2 promete ser um “supercérebro” digital de código aberto. Ele foi treinado com volumes gigantescos de texto e, por isso, sabe responder perguntas sobre praticamente qualquer assunto. A grande novidade é que ele foi pensado para agir, não apenas para falar. Por exemplo, pode receber uma ordem (“analise estes dados de vendas”), abrir a ferramenta certa, fazer cálculos, criar gráficos e entregar o resultado — tudo sem intervenção humana.


2. Por que ele é diferente dos chatbots tradicionais?

  • Time de especialistas sob o capô – Em vez de um único modelo monolítico, o Kimi K2 funciona como uma equipe de mini-especialistas. Cada um entra em ação quando seu conhecimento é mais útil. Assim ele mantém alta qualidade sem desperdiçar energia.
  • Leitura de “livros” inteiros de uma vez – Ele consegue analisar documentos muito longos (até 128 mil palavras em uma única passada). Pense em contratos extensos, códigos-fonte ou relatórios empresariais sem precisar fatiar tudo em pedaços menores.
  • Treinamento para usar ferramentas – Durante o aprendizado, o modelo “jogou” em cenários simulados onde precisava escolher a ferramenta certa (por exemplo, Python ou planilhas) para resolver problemas. Esse treino faz com que ele seja naturalmente bom em automatizar fluxos de trabalho.

3. O que ele já provou que consegue fazer?

Nos testes independentes mais usados pela comunidade:

  • Conhecimento geral: desempenho entre os melhores modelos abertos.
  • Matemática e lógica: acertos de nível avançado.
  • Programação: escreve e corrige código com alta taxa de sucesso.

Em demonstrações da própria Moonshot AI, o Kimi K2 recebeu um banco de dados salarial em branco e, sozinho, fez filtros, criou gráficos, rodou testes estatísticos e gerou um relatório HTML interativo — sem que alguém precisasse digitar um só comando.


4. Quanto custa e como testar?

A Moonshot AI publicou o modelo no repositório Hugging Face sob licença aberta, o que significa que qualquer pessoa pode baixar gratuitamente, treinar com seus próprios dados e até usar em projetos comerciais. Há também serviços online já oferecendo uma interface pronta, sem instalação. Para usar com o llama.cpp use o Pull Request #14654 or llama.cpp um fork especial.


5. Limitações e próximos passos

  • Ainda não “enxerga” imagens ou vídeos, mas a Moonshot AI já sinalizou que a próxima versão deve ganhar visão multimodal.
  • Como qualquer IA, está sujeita a erros de alucinações; é prudente revisar antes de confiar cegamente nos resultados.

Resumindo

O Kimi K2 marca um salto de geração na IA aberta: sai o “bot que conversa”, entra o agente que faz. Ele reúne poder de processamento, leitura de contextos gigantes e habilidade de usar ferramentas para entregar trabalho real — de graça e sem portas fechadas. Para curiosas(os) e profissionais, vale a pena acompanhar: ele pode ser o motor por trás de novos assistentes pessoais, automações de escritório e até aplicativos que ainda nem imaginamos.

the avatar of Alessandro de Oliveira Faria

Visão computacional para o trade marketing em tempo real.

Nos últimos anos, a convergência de três frentes de pesquisa — gaze estimation, detecção de esqueleto e análise facial — redefiniu a forma como monitoramos o comportamento do consumidor no ponto de venda. Ao combinar esses algoritmos em um fluxo único de processamento, conseguimos responder a duas perguntas cruciais para quem gerencia vitrines e gôndolas:

  1. Onde exatamente as pessoas estão olhando?
  2. Quem são essas pessoas em termos de perfil demográfico?

1. Detecção de esqueleto com OpenPose 📐

O OpenPose continua sendo referência quando precisamos rastrear pose corporal em tempo real. Ele identifica até 25 pontos-chave do corpo humano, fornecendo as coordenadas dos ombros, quadris, joelhos, pés e, principalmente, da cabeça. Ao mapear essas articulações é possível:

  • Calcular a distância do shopper até a prateleira
  • Estimar o ângulo da cabeça (fundamental para a etapa de gaze)
  • Identificar o lado do corpo que está voltado para a gôndola

Esse contexto espacial evita falsos positivos típicos de câmeras instaladas em diagonal ou distâncias variáveis.

2. Gaze estimation 👀

Vários modelos open-source ( https://github.com/fkryan/gazelle ) evoluíram bastante em robustez a iluminação adversa. Uma vez conhecido o vetor de pose da cabeça (via OpenPose), o modelo de gaze refina a estimativa calculando a orientação das pupilas dentro da órbita ocular. A saída é um vetor 3D que, projetado no plano da câmera, aponta para um ponto na gôndola.

Agrupando esses pontos ao longo do tempo, geramos mapas de calor que revelam:

  • Prateleiras com maior tempo médio de fixação
  • Padrões de atenção ao lançar um novo layout ou preço promocional
  • Focos de desvio do olhar quando há ruído visual (ex.: excesso de wobblers)

3. Análise facial para demografia 🧑🏾‍🤝‍🧑🏼

Modelos de classificação facial leves ou variantes com MobileNet — adicionam a camada demográfica sem comprometer o FPS do pipeline. Mesmo com baixa resolução (por exemplo, 120 × 120 px), os classificadores informam faixas etárias, gênero provável e grupos étnicos majoritários, tudo em conformidade com as salvaguardas de privacidade vigentes (GDPR/LGPD).

4. Da visão ao insight acionável 📊

Quando unificamos as três saídas (pose + gaze + demografia) em um data lake de tempo real, surge uma visão 360° do público-alvo:

Métrica Exemplo de insight
Tempo médio de fixação (seg) por faixa etária Jovens adultos (18-24 anos) dedicam 2,3× mais tempo à seção de snacks proteicos
Ponto focal dominante 65 % do olhar converge para prateleiras ao nível dos olhos, reforçando a necessidade de planograma premium nesse espaço
Conversão olhar → ação Mulheres 25-34 anos que olham para produtos sem glúten convertem 1,8× mais em compra do que a média

Essas correlações orientam testes A/B de layout, campanhas de preço dinâmico e reposicionamento instantâneo de mercadoria — tudo baseado em evidência, não intuição.

5. Desafios éticos e operacionais ⚖

  • Privacidade : anonimização on-device (blur/embedding) antes de enviar dados a qualquer servidor.
  • Viés algorítmico : treinar e validar modelos em dados representativos da população local.
  • Latência : GPUs compactas (Jetson Orin, Intel ARC) ou aceleração OpenVINO/ONNX RT são essenciais para manter 30 FPS em múltiplas câmeras.

Conclusão

A sinergia entre gaze estimation, OpenPose e análise facial abre portas para uma era de merchandising guiado por dados em tempo real. Se antes dependíamos de pesquisas de campo demoradas ou estimativas subjetivas, hoje é viável ajustar displays, messaging e mix de produtos quase instantaneamente, maximizando engajamento e conversão. Para quem opera no varejo, investir nessa stack tecnológica não é mais futurismo — é vantagem competitiva tangível.

the avatar of Alessandro de Oliveira Faria

OpenVINO 2025.2.0 agora suporta o GGUF, veja como utilizar.

A Intel anunciou o lançamento do OpenVINO™ 2025.2.0, destacando avanços importantes para desenvolvedores de IA generativa. Uma das grandes novidades desta versão é a compatibilidade com o formato GGUF, amplamente utilizado por modelos baseados no llama.cpp. Agora, é possível carregar modelos GGUF diretamente em pipelines Python e C++ usando o OpenVINO GenAI, que converte esses modelos para grafos otimizados e realiza inferência acelerada por GPU de forma dinâmica.

Essa integração já foi validada com modelos populares como DeepSeek-R1-Distill-Qwen, Qwen2.5 Instruct e LLaMA 3.2 Instruct, abrangendo variantes de 1B a 8B parâmetros. Com isso, o OpenVINO se posiciona como uma solução poderosa para executar modelos LLM localmente com alta performance, baixo consumo de memória e suporte direto ao ecossistema GGUF.

O problema: incompatibilidade direta entre tokenizadores

Os modelos treinados e distribuídos no formato GGUF, mesmo que otimizados para execução leve, ainda dependem de um tokenizador — o componente responsável por transformar texto em IDs numéricos que o modelo pode entender. Esses tokenizadores geralmente vêm da biblioteca Hugging Face Transformers, mas a API da OpenVINO exige um formato próprio para integração nativa.

Assim, é necessário um processo de conversão entre esses dois mundos — Hugging Face e OpenVINO — para que a inferência funcione corretamente, especialmente quando envolvem modelos com templates de chat personalizados, como os da família Qwen.

Como converter um tokenizador Hugging Face para uso com modelos GGUF no OpenVINO

Com o avanço da inteligência artificial generativa, cresce a demanda por rodar modelos de linguagem de forma eficiente em hardware local, como CPUs e GPUs Intel. A versão 2025.2 do OpenVINO trouxe uma grande novidade nesse sentido: suporte direto ao formato GGUF, utilizado por modelos otimizados com llama.cpp. No entanto, para que um modelo GGUF funcione corretamente dentro de um pipeline OpenVINO, é necessário converter o tokenizador original da Hugging Face para um formato compatível com a API da OpenVINO.

Este artigo apresenta e explica um programa em Python que realiza exatamente essa conversão, permitindo utilizar modelos como Qwen2.5 Instruct ou LLaMA 3.2 com inferência local acelerada via OpenVINO.

Baixando o modelo GGUF

Antes de executar qualquer conversão, é necessário baixar o arquivo .gguf do modelo desejado. Neste exemplo, usamos o modelo Qwen2.5-0.5B-Instruct, que é compatível com o novo suporte a GGUF no OpenVINO 2025.2.

Utilize o comando abaixo para fazer o download diretamente do Hugging Face:

wget "https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct-GGUF/resolve/main/qwen2.5-0.5b-instruct-q4_0.gguf?download=true" -O qwen2.5-0.5b-instruct-q4_0.gguf

Salve o arquivo .gguf em uma pasta, por exemplo, gguf_models/, que será usada no processo de conversão.

A solução: conversão do tokenizador com template customizado

O programa apresentado é responsável por:

  1. Carregar o tokenizador Hugging Face de um modelo GGUF.
  2. Converter esse tokenizador para o formato OpenVINO.
  3. Injetar um template de chat compatível com a estrutura de mensagens esperada pelo modelo.
  4. Salvar os arquivos resultantes (tokenizer.xml e detokenizer.xml) para uso direto no pipeline.



Análise do código

A função principal do programa é convert_ov_tokenizers(). Ela recebe dois argumentos: o diretório onde está o modelo e o nome do arquivo .gguf.

hf_tokenizer = AutoTokenizer.from_pretrained(
    output_dir, gguf_file=gguf_file, trust_remote_code=True)

Essa linha carrega o tokenizador padrão da Hugging Face, mesmo com base em arquivos GGUF, graças à opção trust_remote_code.

Em seguida, ocorre a conversão para o formato OpenVINO:

ov_tokenizer, ov_detokenizer = convert_tokenizer(hf_tokenizer, with_detokenizer=True)

Aqui, são criados dois objetos: um tokenizador OpenVINO e um detokenizador, necessário para reconstruir o texto após a inferência.

Antes de salvar, o script injeta um chat template customizado, que define como o histórico de mensagens será apresentado ao modelo:

ov_tokenizer.set_rt_info(chat_template, "chat_template")

Esse passo é especialmente importante para modelos como Qwen, onde o comportamento do modelo depende do formato da conversa.

Por fim, os dois componentes são salvos em disco no formato XML:

ov.save_model(ov_tokenizer, output_dir / "openvino_tokenizer.xml")
ov.save_model(ov_detokenizer, output_dir / "openvino_detokenizer.xml")

Esses arquivos serão utilizados posteriormente no pipeline de inferência da OpenVINO para processar texto de entrada e reconstruir a saída do modelo em linguagem natural.


Execução prática

A função main() define o caminho onde está o modelo .gguf e dispara o processo de conversão, medindo também o tempo necessário para a tarefa.

path_model = Path("gguf_models")
convert_ov_tokenizers(path_model, "qwen2.5-0.5b-instruct-q4_0.gguf")

Abaixo o código completo.

from pathlib import Path
import time
from transformers import AutoTokenizer
from openvino_tokenizers import convert_tokenizer
import openvino as ov


chat_template = {
"{%- if tools %}\n {{- '<|im_start|>system\\n' }}\n {%- if messages[0]['role'] == 'system' %}\n {{- messages[0]['content'] }}\n {%- else %}\n {{- 'You are Qwen, created by Alibaba Cloud. You are a helpful assistant.' }}\n {%- endif %}\n {{- \"\\n\\n# Tools\\n\\nYou may call one or more functions to assist with the user query.\\n\\nYou are provided with function signatures within <tools></tools> XML tags:\\n<tools>\" }}\n {%- for tool in tools %}\n {{- \"\\n\" }}\n {{- tool | tojson }}\n {%- endfor %}\n {{- \"\\n</tools>\\n\\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\\n<tool_call>\\n{\\\"name\\\": <function-name>, \\\"arguments\\\": <args-json-object>}\\n</tool_call><|im_end|>\\n\" }}\n{%- else %}\n {%- if messages[0]['role'] == 'system' %}\n {{- '<|im_start|>system\\n' + messages[0]['content'] + '<|im_end|>\\n' }}\n {%- else %}\n {{- '<|im_start|>system\\nYou are Qwen, created by Alibaba Cloud. You are a helpful assistant.<|im_end|>\\n' }}\n {%- endif %}\n{%- endif %}\n{%- for message in messages %}\n {%- if (message.role == \"user\") or (message.role == \"system\" and not loop.first) or (message.role == \"assistant\" and not message.tool_calls) %}\n {{- '<|im_start|>' + message.role + '\\n' + message.content + '<|im_end|>' + '\\n' }}\n {%- elif message.role == \"assistant\" %}\n {{- '<|im_start|>' + message.role }}\n {%- if message.content %}\n {{- '\\n' + message.content }}\n {%- endif %}\n {%- for tool_call in message.tool_calls %}\n {%- if tool_call.function is defined %}\n {%- set tool_call = tool_call.function %}\n {%- endif %}\n {{- '\\n<tool_call>\\n{\"name\": \"' }}\n {{- tool_call.name }}\n {{- '\", \"arguments\": ' }}\n {{- tool_call.arguments | tojson }}\n {{- '}\\n</tool_call>' }}\n {%- endfor %}\n {{- '<|im_end|>\\n' }}\n {%- elif message.role == \"tool\" %}\n {%- if (loop.index0 == 0) or (messages[loop.index0 - 1].role != \"tool\") %}\n {{- '<|im_start|>user' }}\n {%- endif %}\n {{- '\\n<tool_response>\\n' }}\n {{- message.content }}\n {{- '\\n</tool_response>' }}\n {%- if loop.last or (messages[loop.index0 + 1].role != \"tool\") %}\n {{- '<|im_end|>\\n' }}\n {%- endif %}\n {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n {{- '<|im_start|>assistant\\n' }}\n{%- endif %}\n"}

def convert_ov_tokenizers(output_dir, gguf_file):
hf_tokenizer = AutoTokenizer.from_pretrained(
output_dir, gguf_file=gguf_file, trust_remote_code=True)
# hf_tokenizer_chat_template = hf_tokenizer.get_chat_template()
# Qwen2.5 GGUF model stored chat_template is different from HF tokenizers_config.json, replace as chat_tempalte with HF tokenizers_config
ov_tokenizer, ov_detokenizer = convert_tokenizer(
hf_tokenizer, with_detokenizer=True)
ov_tokenizer.set_rt_info(chat_template, "chat_template")

ov.save_model(ov_tokenizer, output_dir / "openvino_tokenizer.xml")
ov.save_model(ov_detokenizer, output_dir / "openvino_detokenizer.xml")


def main():
path_model = Path("gguf_models")

start = time.perf_counter()
convert_ov_tokenizers(path_model,"qwen2.5-0.5b-instruct-q4_0.gguf")
end = time.perf_counter()
print(f"Convert OpenVINO tokenizer finished, elapsed: {(end - start) *1e3:.3f} ms")

if '__main__' == __name__:
main()

Executando inferência com modelos GGUF no OpenVINO: guia prático com Qwen 2.5

Com o suporte nativo ao formato GGUF introduzido no OpenVINO™ 2025.2, ficou mais fácil executar modelos de linguagem grandes (LLMs) de forma otimizada em CPUs ou GPUs Intel. Além da conversão de tokenizadores (já explicada em outro artigo), o próximo passo é realizar a inferência em tempo real, com suporte a streaming de texto, integração com o tokenizador OpenVINO e controle de parâmetros como o número máximo de tokens gerados.

Neste artigo, vamos analisar passo a passo um código funcional que realiza inferência com streaming de tokens, utilizando o modelo Qwen2.5-0.5B-Instruct no formato GGUF, com backend CPU.

🛠 Requisitos

Antes de rodar este código, certifique-se de que:

  • Você já converteu o tokenizador com o convert_tokenizer e salvou os arquivos openvino_tokenizer.xml e openvino_detokenizer.xml.
  • O arquivo .gguf do modelo está presente (neste exemplo, qwen2.5-0.5b-instruct-q4_0.gguf na pasta gguf_models/).
  • As bibliotecas openvino, openvino_genai e openvino_tokenizers estão instaladas.

Descrição do código de inferência

from pathlib import Path
import time
import openvino as ov
import openvino_genai
from openvino_tokenizers import convert_tokenizer

Essas bibliotecas fornecem a base para rodar a inferência e utilizar o tokenizador OpenVINO. openvino_genai é o novo módulo que lida com pipelines LLM em OpenVINO.


📡 Função streamer() – exibindo os tokens em tempo real

def streamer(subword):
    print(subword, end='', flush=True)
    return openvino_genai.StreamingStatus.RUNNING

Esta função é chamada a cada novo token gerado pelo modelo, permitindo exibir o texto na tela conforme a resposta é construída, simulando o comportamento de um chatbot.


⚙ Função principal main()

max_new_tokens = 40 
prompt = "What is OpenVINO?"

Define o número máximo de tokens que o modelo pode gerar e o texto de entrada (prompt).


🔄 Inicialização do tokenizador e modelo

tokenizer = openvino_genai.Tokenizer("gguf_models/")
pipe = openvino_genai.LLMPipeline("gguf_models/qwen2.5-0.5b-instruct-q4_0.gguf", tokenizer, "CPU")
  • O tokenizador é carregado do diretório onde os arquivos .xml foram salvos.
  • O LLMPipeline é a estrutura que junta o modelo .gguf, o tokenizador e o dispositivo de execução ("CPU" neste caso).

🧠 Configuração de geração

config = openvino_genai.GenerationConfig()
config.max_new_tokens = max_new_tokens

Você pode personalizar a geração ajustando parâmetros como:

  • max_new_tokens
  • temperatura, top_k, top_p (não usados aqui, mas disponíveis via GenerationConfig)

💬 Ciclo de chat

pipe.start_chat()
print("\nPrompt: ", prompt)
print("Start generation ...")
print("\nResponse: \n")
pipe.generate(prompt, config, streamer)
pipe.finish_chat()

Essas chamadas controlam o ciclo de conversação com o modelo:

  • start_chat(): inicia um novo histórico (importante para manter contexto).
  • generate(...): realiza a inferência com streaming em tempo real.
  • finish_chat(): encerra o contexto da conversa atual.

🧪 Exemplo de saída

Prompt:  What is OpenVINO?
Start generation ...

Response: 
OpenVINO™ is an open-source toolkit developed by Intel for optimizing and deploying AI inference ...

Abaixo o código completo:

from pathlib import Path
import time

import openvino as ov
import openvino_genai
from openvino_tokenizers import convert_tokenizer

def streamer(subword):
print(subword, end='', flush=True)
return openvino_genai.StreamingStatus.RUNNING

def main():
max_new_tokens = 40

prompt = "What is OpenVINO?"
tokenizer = openvino_genai.Tokenizer("gguf_models/")
pipe = openvino_genai.LLMPipeline("gguf_models/qwen2.5-0.5b-instruct-q4_0.gguf", tokenizer, "CPU")

config = openvino_genai.GenerationConfig()
config.max_new_tokens = max_new_tokens
pipe.start_chat()
print("\nPrompt: ", prompt)
print("Start generation ...")
print("\nResponse: \n")
pipe.generate(prompt, config, streamer)
pipe.finish_chat()


if '__main__' == __name__:
main()

Conclusão

O suporte ao formato GGUF no OpenVINO representa um marco importante para a execução de LLMs de forma local e eficiente. No entanto, para que essa integração funcione, é crucial garantir que o tokenizador esteja no formato esperado. Este programa oferece uma solução prática e robusta para converter tokenizadores da Hugging Face para uso direto com pipelines de inferência da OpenVINO, incluindo o suporte a templates de chat específicos.

Com isso, desenvolvedores podem aproveitar o melhor dos dois mundos: a comunidade e o ecossistema da Hugging Face com a performance e eficiência do OpenVINO.

Este exemplo deste documento demonstra como realizar inferência local e eficiente com um modelo LLM em formato GGUF usando OpenVINO 2025.2. A combinação do LLMPipeline, Tokenizer e função streamer() permite simular o comportamento de um assistente de IA de forma fluida e otimizada para CPUs.

Esse pipeline é ideal para aplicações corporativas, embarcadas ou offline, onde o custo computacional e a latência precisam ser reduzidos sem depender de serviços em nuvem.

the avatar of Alessandro de Oliveira Faria

10 anos de computação heterogênea com C++ SYCL

O Khronos® Group comemora um marco importante: o décimo aniversário do SYCL™. Publicado pela primeira vez em maio de 2015, o SYCL evoluiu de uma proposta ambiciosa para se tornar um componente essencial na programação heterogênea, permitindo que desenvolvedores escrevam código C++ de forma unificada e portátil para uma ampla gama de aceleradores — de CPUs e GPUs a FPGAs e hardware especializado em IA, de forma agnóstica ao fornecedor.

Recentemente, a comunidade de desenvolvedores e os membros do SYCL Working Group do Khronos se reuniram no International Workshop on OpenCL and SYCL (IWOCL 2025) para apresentar os avanços mais recentes no ecossistema SYCL e celebrar esta conquista.

De conceito a referência em computação de alto desempenho

A jornada do SYCL começou com uma especificação provisória apresentada em março de 2014, com sua primeira demonstração ocorrendo durante a SuperComputing 2014. Já em 2015, a versão inicial foi oficialmente ratificada. Desde então, o padrão amadureceu consideravelmente, acompanhando as crescentes demandas da computação moderna.

Inicialmente concebido como um modelo de programação C++ para OpenCL, o SYCL tornou-se um padrão robusto e independente de fornecedores, alimentando aplicações críticas em áreas como HPC, inteligência artificial, pesquisa científica e até software de produção gráfica — como o uso do backend SYCL no Blender Cycles, discutido na IWOCL.

“Na última década, o SYCL passou de uma ideia promissora para uma ferramenta indispensável na programação heterogênea”, afirma Tom Deakin, presidente do SYCL Working Group, professor na Universidade de Bristol e líder do grupo de pesquisa em computação de alto desempenho. “Sua proposta de um modelo de programação único e portável para múltiplas arquiteturas foi chave para sua ampla adoção.”

SYCL na prática: experiência com aceleração de vídeo

No ano de 2019 iniciei as pesquisas da especificação oneAPI Level Zero. Em 2020, desenvolvi uma solução de processamento de vídeo em SYS/C++ utilizando aceleração via codecs AVC, HEVC e AV1, disponibilizados pela biblioteca oneVPL — uma aplicação real do potencial do SYCL em ambientes de alto desempenho.

Use a força. Leia os fontes. Viva o SYCL C++.

Leia mais aqui: https://www.khronos.org/blog/a-decade-of-heterogeneous-c-compute-acceleration-with-sycl

the avatar of Alessandro de Oliveira Faria

Feliz dia da toalha e do Orgulho NERD!

O Dia do Orgulho Nerd, ou Dia do Orgulho Geek é uma iniciativa que advoga o direito de toda pessoa ser um nerd ou um geek. Teve origem na Espanha (“dia del orgullo friki”, em espanhol).[1]

O dia do orgulho nerd é celebrado em 25 de maio desde 2006, comemorando a première do primeiro filme da série Star Wars, em 1977. O dia 25 de maio também é o Dia da Toalha, em homenagem ao escritor Douglas Adams.

Origens

Em 2006, este dia foi celebrado pela primeira vez em toda a Espanha e na internet, graças à publicidade dada por alguns meios, como:

A maior concentração aconteceu em Madri, onde 300 Nerds demonstraram seu orgulho com um pacman humano.

Comemorações de 2007

Em 2007 a celebração contou com mais ajuda de instituições oficiais (como o Circo Price, de Madri) e teve comemoração mais ampla por toda a Espanha. Atividades oficiais foram anunciadas no Pilar de la Horadada, Cádiz, Huesca, Calaf, Huelva, e Valência. Houve uma campanha Doação de Sangue Nerd. Entre outros atos, foi exibido o filme Gritos no corredor.

2008: O dia do Orgulho Nerd chega à América

Em 2008, o Dia do Orgulho Nerd atravessou o Atlântico e foi comemorado oficialmente na América, onde foi divulgado por numerosos bloggers, unidos pelo lançamento do site GeekPrideDay. O matemático e autor John Derbyshire, vencedor do Prêmio Livro de Euler e blogger geek, anunciou[2] que apareceria na parada da Quinta Avenida, vestido de número 57, na ala dos números primos – o que fez alguns bloggers dizerem que iriam procurá-lo.

Direitos e deveres dos nerds

Foi criado um manifesto para celebrar o primeiro Dia do Orgulho Nerd, que incluía a seguinte lista de direitos e deveres dos nerds:[3]Direitos

  1. O direito de ser nerd.[3]
  2. O direito de não ter que sair de casa.[3]
  3. O direito a não ter um par e ser virgem.[3]
  4. O direito de não gostar de futebol ou de qualquer outro esporte.[3]
  5. O direito de se associar com outros nerds.[3]
  6. O direito de ter poucos (ou nenhum) amigo.[3]
  7. O direito de ter o tanto de amigos nerds que quiser.[3]
  8. O direito de não ter que estar “na moda”.[3]
  9. O direito ao sobrepeso (ou subpeso) e de ter problemas de visão.[3]
  10. O direito de expressar sua nerdice.[3]
  11. O direito de dominar o mundo.[3]

Deveres

  1. Ser nerd, não importa o quê.[3]
  2. Tentar ser mais nerd do que qualquer um.[3]
  3. Se há uma discussão sobre um assunto nerd, poder dar sua opinião.[3]
  4. Guardar todo e qualquer objeto nerd que tiver.[3]
  5. Fazer todo o possível para exibir seus objetos nerds como se fosse um “museu da nerdice”.[3]
  6. Não ser um nerd generalizado. Você deve se especializar em algo.[3]
  7. Assistir a qualquer filme nerd na noite de estréia e comprar qualquer livro nerd antes de todo mundo.[3]
  8. Esperar na fila em toda noite de estreia. Se puder ir fantasiado, ou pelo menos com uma camisa relacionada ao tema, melhor ainda.[3]
  9. Não perder seu tempo em nada que não seja relacionado à nerdice.[3]
  10. Tentar dominar o mundo.[3]