Se você está planejando um sistema de busca em PDFs com o pplx-embed-v2-late, há um detalhe importante que pode passar despercebido: a Perplexity liberou os pesos, mas ainda não publicou um preço de API para o v2-late nem incluiu o modelo no catálogo público da API de Embeddings. Hoje, o caminho viável é montar uma solução multimodal de recuperação hospedada por conta própria, usando os preços atuais da API v1 apenas como referência.
A resposta sobre preços: o v2-late não aparece na tabela pública da API de Embeddings
Em 7 de outubro de 2026, o guia oficial de início rápido da API de Embeddings lista quatro modelos v1. pplx-embed-v2-late-0.6b e pplx-embed-v2-late-9b não aparecem ali, portanto ainda não há uma estimativa defensável de preço por token para o v2-late.
| Modelo da Perplexity listado atualmente na documentação da API | Preço por 1 milhão de tokens | Entrada indicada |
|---|---|---|
pplx-embed-v1-0.6b | $0.004 | Textos, consultas e frases independentes |
pplx-embed-v1-4b | $0.030 | Textos, consultas e frases independentes |
pplx-embed-context-v1-0.6b | $0.008 | Blocos relacionados do mesmo documento |
pplx-embed-context-v1-4b | $0.050 | Blocos relacionados do mesmo documento |
Essas são tarifas de uso sob demanda da API, não preços da família de embeddings de interação tardia. O anúncio de lançamento da Perplexity afirma que embeddings de interação tardia, densos e contextuais serão disponibilizados gradualmente na API Platform. Isso descreve um cronograma de lançamento, não um endpoint v2-late ativo nem um compromisso de preço.
Para decidir quanto reservar, separe o orçamento em duas frentes:
- Gasto com API gerenciada: disponível para os modelos v1 acima; ainda não há tarifa publicada para o v2-late.
- Gasto com hospedagem própria: tempo de GPU, renderização das páginas, armazenamento do modelo, armazenamento do índice de tokens e vetores e atendimento das consultas do v2-late.
Não multiplique o preço da v1 pela quantidade de páginas de um PDF e trate o resultado como uma cotação do v2-late. As representações são diferentes, e a API v1 trabalha com embeddings de texto, não com o fluxo documentado de páginas renderizadas.
O que o pplx-embed-v2-late realmente oferece
A Perplexity publica dois checkpoints de interação tardia: pplx-embed-v2-late-0.6b e pplx-embed-v2-late-9b. O model card do modelo 9B informa 340M de parâmetros ativos para o modelo menor e 7.4B para o maior. Ambos produzem vetores de 128 dimensões por token e usam MaxSim, em vez de reduzir cada página a um único vetor.
| Modelo | Parâmetros ativos | ViDoRe v3 image nDCG@10 | ViDoRe v3 Markdown nDCG@10 | Uso prático |
|---|---|---|---|---|
pplx-embed-v2-late-0.6b | 340M | 62.3% | 61.2% | Consultas mais leves ou implantações menores |
pplx-embed-v2-late-9b | 7.4B | 65.2% | 64.7% | Modelo de maior qualidade para indexação e recuperação |
Os números de benchmark são resultados do model card, não de um teste independente com PDFs: o 9B lidera por 2.9 pontos percentuais na recuperação de imagens e por 3.5 pontos na recuperação de Markdown, com cerca de 21,8 vezes mais parâmetros ativos. Os dois checkpoints têm licença MIT no Hugging Face.
O detalhe mais importante para a implantação é o espaço de embeddings compartilhado: segundo a Perplexity, um índice criado com o 9B pode ser consultado pelo modelo 0.6B. Você pode usar o 9B para codificar documentos offline e o 0.6B apenas nas consultas, mas valide antes o recall entre os modelos — isso não elimina o armazenamento do índice criado pelo 9B.
Uma configuração funcional para recuperação em PDFs
No fluxo do v2-late, cada página renderizada do PDF é tratada como um documento de imagem. Assim, uma consulta textual pode encontrar as palavras, a estrutura de uma tabela, um gráfico ou o layout da página sem depender de OCR como representação principal da busca. Esse é o mesmo padrão de documentos visuais descrito na documentação de recuperação visual do Sentence Transformers.
“Sem OCR” significa que o OCR não é o sinal usado na recuperação. O texto extraído continua sendo útil para filtros, citações, acessibilidade e uma busca alternativa.
1. Renderize as páginas e preserve os metadados
Renderize cada página como uma imagem RGB em uma resolução estável e mantenha um registro associado:
| Campo | Exemplo |
|---|---|
document_id | contract-2026-04 |
page_number | 17 |
image_path | pages/contract-2026-04/017.png |
source_uri | URL interna do objeto PDF |
text_fallback | Texto extraído opcionalmente |
Mantenha document_id e page_number no registro de recuperação, em vez de deixá-los apenas no nome do arquivo da imagem. Depois de encontrar uma página relevante, busque também as páginas adjacentes do mesmo documento, porque uma tabela, nota de rodapé ou definição costuma continuar na página seguinte.
2. Instale o encoder compatível
O model card do 9B exige bibliotecas recentes:
pip install "sentence-transformers>=6.0.0" "transformers>=5.4.0" pillow
O exemplo publicado usa MultiVectorEncoder, e o model card seleciona CUDA para carregar o checkpoint 9B:
from PIL import Image
from sentence_transformers import MultiVectorEncoder
model = MultiVectorEncoder(
"perplexity-ai/pplx-embed-v2-late-9b",
device="cuda",
)
Use o identificador do 0.6B quando o checkpoint maior não couber no hardware disponível para servir o modelo. O model card não informa um mínimo oficial de VRAM, uma tabela de throughput ou uma garantia de latência. Por isso, meça o impacto da resolução das páginas, do tamanho do lote e da GPU antes de definir a capacidade da infraestrutura.
3. Codifique consultas de texto e imagens de páginas separadamente
O modelo exige chamadas assimétricas. O texto da consulta passa por encode_query; as páginas renderizadas passam por encode_document:
query_embeddings = model.encode_query([
"Which clause governs termination after a material breach?"
])
page = Image.open("pages/contract-2026-04/017.png").convert("RGB")
page_embeddings = model.encode_document([page])
scores = model.similarity(query_embeddings, page_embeddings)
print(scores)
Não misture textos e imagens em um único lote de codificação. O model card destaca que as entradas devem ser homogêneas e que este checkpoint espera a configuração dos marcadores [Q] e [D] . O método model.similarity() aplica MaxSim sobre as representações em nível de token.
Em uma coleção real, codifique as páginas offline, persista a representação multivetorial em um índice de interação tardia e mantenha os metadados das páginas em um armazenamento separado. Coleções pequenas podem usar pontuação exaustiva. Em maior escala, use um sistema compatível com MaxSim ou adote um recuperador denso na primeira etapa, seguido de reranking com o v2-late sobre um conjunto controlado de candidatos.
4. Recupere as páginas e amplie a janela de evidências
Um resultado em nível de página normalmente deve retornar:
- A página encontrada e sua pontuação.
- O ID do documento e o link de origem.
- Uma ou duas páginas vizinhas do mesmo documento.
- A imagem da página e qualquer texto extraído opcional para citação.
Isso evita que uma correspondência visualmente precisa resulte em uma resposta incompleta quando a definição começa na página 16 e a tabela continua na página 17. Também deixa o resultado auditável: o usuário pode ver o gráfico ou a tabela que gerou a correspondência, em vez de confiar em uma transformação de OCR que fica escondida.
O modelo de custos vai além dos tokens da API
Não há um preço de API publicado para o v2-late que possa ser comparado com as quatro tarifas da v1. Por isso, o custo operacional depende principalmente das decisões de implantação, que o model card não precifica.
| Fator de custo | O que está confirmado | Implicação para o planejamento |
|---|---|---|
| Pesos do modelo | O repositório do 9B ocupa cerca de 33.6 GB e contém tensores F32 no Hugging Face | O armazenamento e o carregamento dos pesos já têm impacto antes mesmo do início da indexação |
| Representação | Um vetor de 128 dimensões por token, pontuado com MaxSim | Cada página produz muitos vetores, não um único vetor denso |
| Indexação | O 9B pode criar um índice consultável pelo 0.6B | Se o volume de consultas for alto, concentre o processamento mais pesado em um job offline |
| Recuperação | A interação tardia compara tokens da consulta com tokens do documento | Use um índice MaxSim compatível ou reduza os candidatos antes do rescoring |
| Cobrança da API | Não há tarifa publicada para o v2-late | Ainda não é possível projetar o gasto com uma API gerenciada |
O guia de interação tardia do Hugging Face oferece uma referência útil de escala com outro modelo: um exemplo com 4,874 passagens produziu 608,414 vetores de tokens e ocupou 311.5 MB em armazenamento bruto float32, enquanto um índice PLAID comprimido usou 92 MB. Esses números não são uma estimativa para o v2-late, mas mostram por que “128 dimensões” não significa automaticamente “índice pequeno”. A quantidade de tokens é o multiplicador importante.
O throughput da indexação também precisa ser medido no seu próprio hardware. Em um relato de usuário no LocalLLaMA, o pplx-embed-v1-4b levou cerca de 45 minutos para processar 10.000 vetores, contra 6 minutos do Qwen3-Embedding-4B em uma A100 80GB. Esse relato trata da v1, não do v2-late. Ele serve como alerta para medir o throughput dos embeddings da Perplexity, não como afirmação de desempenho do v2-late.
“Acho que isso pode acontecer porque o pplx embed usa atenção bidirecional, em vez da atenção mascarada padrão.” — u/Velocita84, r/LocalLLaMA
Qual caminho de implantação escolher?
| Necessidade | Melhor caminho atualmente | Motivo |
|---|---|---|
| RAG de texto barato com endpoint gerenciado | API v1 da Perplexity | Os preços publicados vão de $0.004 a $0.05 por 1 milhão de tokens |
| Gráficos, tabelas, páginas digitalizadas e layout são importantes | Hospedar o pplx-embed-v2-late por conta própria | O fluxo documentado pesquisa diretamente as páginas renderizadas |
| Corpus grande com consultas frequentes | Índice offline com 9B e encoder de consulta 0.6B, ou primeira etapa densa seguida de reranking com v2-late | Separa a qualidade da indexação do custo computacional em tempo de consulta |
| Protótipo pequeno ou teste limitado pelo hardware | Checkpoint 0.6B em uma amostra representativa de páginas | Tem menos parâmetros ativos, mas ainda exige medir a codificação das páginas e o armazenamento |
| Um endpoint v2-late gerenciado é requisito obrigatório | Aguardar um model ID oficial da API e sua tabela de preços | Nenhum dos dois aparece na documentação pública atual de embeddings |
Minha recomendação é testar o fluxo entre os modelos 0.6B e 9B com 100 a 500 páginas representativas antes de construir um índice completo. Inclua páginas digitalizadas, tabelas, layouts com múltiplas colunas e casos em que a resposta atravessa uma quebra de página. Registre o recall no k desejado, o throughput da codificação das páginas, o tamanho bruto e comprimido do índice e a latência das consultas. Essas evidências são mais úteis do que transferir o preço por token da v1 para um modelo que ainda não é vendido por essa API.
FAQ sobre recuperação de PDFs com o pplx-embed-v2-late
O pplx-embed-v2-late tem preço de API?
Não na documentação pública da API de Embeddings da Perplexity consultada para este guia. Os preços publicados, de $0.004 a $0.05 por milhão de tokens, valem para os modelos v1 padrão e contextualizados.
O pplx-embed-v2-late foi lançado oficialmente?
Sim. A Perplexity publica checkpoints de pesos abertos de 0.6B e 9B no Hugging Face. Liberar os pesos e disponibilizar um endpoint gerenciado são etapas diferentes.
A recuperação em PDFs exige OCR?
Não para o sinal visual da recuperação. Renderize cada página como uma imagem e codifique-a como documento. OCR ou texto extraído continuam úteis para filtros, citações, acessibilidade e uma busca alternativa.
O modelo 0.6B pode consultar um índice criado com o 9B?
O model card da Perplexity afirma que os dois modelos compartilham o mesmo espaço de embeddings e permitem essa configuração. Meça a qualidade no seu corpus, porque o card não publica a diferença de recuperação entre os modelos.
Textos e páginas de imagem podem compartilhar o mesmo lote?
Não. O model card informa que entradas mistas de texto e imagem não são compatíveis no mesmo lote de codificação. Mantenha homogêneas as chamadas de codificação de texto e imagem.
Ainda preciso de um reranker?
Não necessariamente. MaxSim já é o método de pontuação de interação tardia, mas um recuperador denso na primeira etapa seguido de reranking com o v2-late pode ser mais prático do que varrer todos os vetores de tokens das páginas em um corpus grande.
Qual é o custo exato de armazenamento por página de PDF?
A Perplexity não publica uma calculadora de armazenamento por página para o v2-late. Faça uma estimativa com base no número de tokens de página mantidos, na precisão dos vetores, nos metadados e na compressão do índice; depois valide o resultado com uma amostra representativa.
Devo escolher o 0.6B ou o 9B?
Use o 9B quando a prioridade for a qualidade da indexação offline e você puder arcar com o modelo e o job de indexação. Use o 0.6B em implantações menores ou como encoder de consultas, inclusive na configuração documentada de espaço compartilhado com um índice criado pelo 9B. A diferença de benchmark é mensurável, mas o model card não oferece uma regra universal de qualidade ou latência.
A decisão final é simples: se você precisa hoje de um endpoint gerenciado da Perplexity com preço conhecido, o v2-late ainda não atende a esse requisito. Se pode hospedar o modelo por conta própria e seus PDFs contêm informações que se perdem com OCR ou divisão em blocos de texto, renderize um conjunto representativo de páginas e faça um benchmark do pipeline de interação tardia antes de ampliá-lo.