Pesquisador, bibliotecário, equipe de RAG acadêmico: se você já tentou extrair título, autores, abstract e referências de papers em PDF, sabe que é um inferno. O GROBID (Generation of Bibliographic Data) resolve isso com modelos de ML especializados — e roda em 1 clique no GPUBrasil.

⚡ Resumo

GROBID extrai estrutura completa de papers (header, seções, equações, citações, referências) em TEI XML padronizado. Usado por Semantic Scholar, ResearchGate, OpenAIRE.

O que é o GROBID?

GROBID é uma biblioteca open-source desenvolvida desde 2008 (com modelos modernos baseados em CRF e DeLFT/transformers) específica para parsing de literatura científica. Ela transforma um PDF acadêmico bagunçado em um documento TEI XML rico em metadados.

O que o GROBID extrai

Casos de uso brasileiros

Hardware recomendado

GROBID é leve mesmo em GPU. CPU também funciona, mas GPU acelera 5-10x:

💰 Custo no GPUBrasil

RTX A4000 (R$ 1,80/h) processa ~500 papers/h = R$ 0,004 por paper. Para 100k papers, custo total ~R$ 360. Comparável: serviços comerciais cobram R$ 0,10-0,50/paper.

Deploy em 1 clique no GPUBrasil

Passo 1: Iniciar template

  1. Console → Templates → 📄 Documentos IA
  2. Selecione GROBID
  3. GPU: RTX A4000 (recomendado)
  4. Clique em Iniciar

O template usa a imagem oficial lfoppiano/grobid:0.8.1 com modelos full e expõe a API REST na porta 8070.

Passo 2: Web UI

Acesse https://<sua-instancia>.gpubrasil.com.br:

Passo 3: API REST com Python

import requests
from lxml import etree

url = "https://sua-instancia.gpubrasil.com.br/api/processFulltextDocument"

with open("paper.pdf", "rb") as f:
    files = {"input": f}
    r = requests.post(url, files=files,
                      data={"consolidateHeader": "1", "consolidateCitations": "1"})

xml = r.text
root = etree.fromstring(xml.encode())
ns = {"tei": "http://www.tei-c.org/ns/1.0"}

# Extrair título e autores
title = root.xpath("//tei:titleStmt/tei:title", namespaces=ns)[0].text
authors = root.xpath("//tei:sourceDesc//tei:author/tei:persName", namespaces=ns)
print(f"Título: {title}")
print("Autores:", [a.xpath(".//text()") for a in authors])

# Extrair referências
refs = root.xpath("//tei:listBibl/tei:biblStruct", namespaces=ns)
for ref in refs[:5]:
    t = ref.xpath(".//tei:title[1]", namespaces=ns)
    print(" ref:", t[0].text if t else "?")

Passo 4: Endpoints úteis

Pipeline RAG acadêmico completo

Combine GROBID + vLLM + Qdrant para um chatbot que cita papers reais:

# 1. GROBID extrai estrutura
xml = grobid.process_fulltext("paper.pdf")
sections = parse_tei(xml)  # {abstract, intro, methods, ...}

# 2. Chunk por seção
chunks = [
    {"title": s["title"], "text": s["text"], "paper_id": doi}
    for s in sections
]

# 3. Embed via bge-m3 + indexar em Qdrant
qdrant.upsert(collection="papers", chunks)

# 4. Query: "Quais métodos de NLP foram usados em 2024?"
results = qdrant.search(query, top_k=5)
context = "\n".join(r.text for r in results)

# 5. Resposta com citação real
answer = vllm.generate(f"Responda usando: {context}")

GROBID vs alternativas

Dicas de produção

Indexe milhares de papers por hora

Ganhe R$ 25 grátis no GPUBrasil e suba GROBID em 90 segundos.

Começar Grátis →

Conclusão

Para qualquer projeto que envolva literatura científica, GROBID é o padrão de fato. Subindo em 1 clique no GPUBrasil, você processa volumes industriais por centavos por paper, mantendo dados de pesquisa dentro do Brasil.

Próximos: vLLM · Marker