Posts with #Parser

#Parser

Public posts on X that use #Parser.

Related hashtags

  1. God of Prompt✓@godofprompt
    Your PDF parser guesses at tables. LlamaIndex published the Document Parsing Protocol, a working draft with 140 rules for what a correct parse looks like across text, tables, forms, charts and diagrams. Two parsers can capture every word on a page and still hand your agent outputs that mean different things. Their example is a sales table with years across the top and quarters underneath. Ask for Q2 2024. One parser pushed the quarters into the body, so the agent has to guess the year. Another dropped the years, so Q2 matches two columns. A third got the right number by inventing a label the page never printed. the default that costs you: checking that the words came through and calling it done. The text looks fine, and the meaning went missing. how to test yours this week: 1. Take your messiest real page, with merged headers or a split table. 2. Get the Claude skill or the ChatGPT reference file from parseprotocol .com. 3. Attach the page image and paste the prompt from the site. 4. Compare that output with what your current parser produced. the check: ask a question that depends on the header, like one quarter of one year. If the answer needs a guess, your pipeline is guessing in production too. Charts are the hardest part, since the values only exist as pixels. I use a prompt that crops and reads them step by step, and reports each table value with a confidence level. DPP 0.1 is open for feedback on GitHub.
    Download
    1406920
  2. pipi.md✓@0xpipimd
    A PDF can look perfectly parsed and still be wrong. Omni Parse Bench tests document parsers more like software. Instead of asking whether the output "looks right," it runs 16,288 small tests across 2,937 pages. Things like: did this text survive? is A still before B? is this table cell under the right heading? is this block actually a heading, paragraph or table? The result is separate scores for text, tables and layout, plus cost and refusal data across parsers and models. The scorer also works on its own, so you can run it against your own parser or dataset without calling a model during grading. A document can preserve the words and still lose the structure that made them useful. Unit tests make that much harder to hide. GitHub:
    Download
    00025
  3. Nekt0✓@Nekt_0
    AN AI CAN MISS THE SOURCE, FAIL THE TOOL CALL AND STILL SOUND FINISHED. A page didn’t load. The parser returned half the document. The output file exists, but the useful fields are empty. Then the final message says: “Task completed successfully.” That’s the failure mode worth designing around. The FROG workflow separates six stages so “the model answered” doesn’t become the definition of success. → SCAN locates the material → CAPTURE preserves what was actually retrieved → MAP connects evidence to the request → EXECUTE performs the required actions → SYNC checks what came back → COMMIT saves accepted results and unresolved work Each handoff needs something the next stage can inspect. A source link. A tool result. A validation check. A reason for stopping. An empty result shouldn’t move forward just because it has the right format. The prompt: Complete the task using a traceable workflow. Keep source material separate from your interpretation. Define how success will be checked before running tools. Validate the returned contents, not just the exit code. Stop after repeated failures and preserve the error. Never mark missing evidence as verified. Finish with accepted results, unresolved items and the next action required. The important question isn’t whether the agent kept working all night. It’s whether the morning report can distinguish completed work from a convincing explanation of work that never happened. “Done” should be a state with evidence, not a writing style.
    Download
    Nekt0 @Nekt_0
    143691.5K
  4. Nekt0✓@Nekt_0
    61446.2K
  5. elvis✓@omarsar0
    Decision models can also improve your OCR pipelines. You can also use Jev-like models for verification. Here is a great example of this: MiniCPM-OCR from OpenBMB and ModelBest pairs a small open document parser with a second model that scores the reliability of the OCR output. The parser has only 1.3B parameters. It handles Chinese and English documents, including scans, photos, curved pages, and tilted inputs, and it supports key information extraction. The second model, MiniCPM-OCR Jev, checks extracted text, formulas, and tables. It also works on outputs from other OCR models, so you can run it on top of the parser you already use. More details below. Agents now read PDFs, invoices, and papers all day. One bad table extraction carries into every step that follows. A simple setup looks like this. > Parse the document with MiniCPM-OCR > Score the extracted text, formulas, and tables with Jev > Send low-scoring output to a human or a correction step Jev estimates reliability. It doesn't fix errors itself. The weights are open, with a fine-tuning framework and inference support for llama.cpp, vLLM, SGLang, and Ollama. There are also Agent Skills integrations. If you build document agents, test the parser and Jev together on your hardest pages, like dense tables, formulas, and phone photos.
    Download
    3929185126K
  6. arosplatforms✓@arosplatforms
    We looked at Baidu's Unlimited-OCR-2 this week. Here is where a model like it fits in our enterprise builds. Baidu released it on Hugging Face under an MIT licence: a 3B document model built to parse books, filings and reports of hundreds of pages in one pass, with a sparse attention scheme that keeps per-step decoding cost nearly flat as documents grow. Parsing is where most document AI quietly fails. Tables split across pages, headings lost, reading order scrambled. Everything downstream inherits the error. Where it could fit: - In the client's own tenancy, for documents that cannot leave the environment - On long records like engineering manuals, credit files, regulatory submissions and annual reports - As one parser among several, routed by document type Before any build, we test on the client's real document estate: table fidelity, cross-page merges, citations back to the page, and failure rates on poor scans. The benchmark results so far are Baidu's own. A better parser is often worth more than a bigger model. #AI #DocumentAI #OpenSourceAI
    Download
    00022
  7. Shaun✓@shaundevan_
    Being AI native has nothing to do with adoption. If your team uses AI every day and your business still runs the same way, this is for you. It's everything we've learned from hundreds of deployments:
    606598
  8. K.T.✓@KTee95d
    Notable Open-Source Projects this week: - LMCache: Implements KV-cache reuse, adaptive eviction and HTTP API-key authentication. Relevant for reducing inference latency in repeated-context workloads. - Dynamo: Distributed inference framework with dynamic request routing, disaggregated prefill/decode and runtime GPU resource controls. Primarily suited to multi-GPU deployments. - ContextForge: MCP gateway providing centralized tool registration, authorization and observability. Recent changes strengthen OAuth endpoint validation and Origin/Host controls. - PageIndex: Hierarchical document retrieval using LLM-guided tree navigation. Recent improvements address provider reasoning preservation and retry consistency. - CopilotKit: Framework for agent-integrated interfaces, shared state and human approvals. Recent work focuses on generative UI evaluation and streaming parser reliability. - Promptfoo: LLM evaluation and red-teaming framework supporting automated assertions and CI integration. Recent changes improve CLI shutdown and evaluation lifecycle handling. - EdgeQuake: Rust-based GraphRAG implementation with PostgreSQL integration. Recent updates add dense/BM25 hybrid retrieval and reciprocal-rank fusion. Key Engineering Trends: - Agent State and Context Management Persistent session storage, bounded history queries and context-window budgeting improve multi-turn execution reliability. State preservation across tool calls reduces context loss, while structured truncation and pagination control memory consumption. - Inference Optimization and Resource Scheduling KV-cache reuse, adaptive eviction and disaggregated prefill/decode reduce redundant computation and improve inference throughput. Dynamic request routing and runtime GPU resource allocation support workload-aware scheduling and distributed inference. - Tool Execution Security and Governance Centralized authentication, OAuth endpoint validation and request-origin enforcement strengthen tool-access boundaries. Execution timeouts, sandbox isolation and explicit authorization policies limit uncontrolled agent actions and resource consumption. - Agent Runtime and Evaluation Reliability Deterministic state-transition testing, streaming parser validation and lifecycle management improve agent execution consistency. Automated regression testing increasingly covers tool interactions, UI rendering, execution termination and failure recovery. - Advanced Retrieval Architectures Hierarchical document indexing enables structure-aware navigation and retrieval with improved section-level traceability. Hybrid dense/BM25 retrieval, reciprocal-rank fusion and graph-based traversal combine semantic, lexical and relational retrieval mechanisms. Projects Worth Evaluating LMCache: Compare cached and uncached inference using P95 latency, memory utilization and cache hit rate. ContextForge: Validate MCP gateway access control, OAuth discovery, credential revocation and endpoint filtering. PageIndex: Benchmark against existing RAG pipelines using retrieval accuracy, citation correctness, latency and token cost. Current open-source AI development emphasizes stateful agent execution, efficient inference, secure tool integration and measurable evaluation.
    00015
  9. Niels Rogge✓@NielsRogge
    Cool release by @OpenBMB on @huggingface this week: - MiniCPM-OCR, a small, fast, and high-performance document parser - MiniCPM-OCR-Jev, a 2B OCR correctness decision model for text, formula, and table regions. The latter can be given a region image and a candidate OCR result, and it returns a score from 0 to 1 on how correct the OCR is
    OpenBMB @OpenBMB
    Your OCR says it’s done—but did it get everything right? 🤔 In high-stakes workflows, even a small error can be costly. 🚀 Meet the MiniCPM-OCR suite: an open-source solution to parse fast and guard the results. Two new models: 🔹 MiniCPM-OCR 1.0 — SOTA OCR performance and speed at 1B scale. Compact, accurate, and fast. 🔹 MiniCPM-OCR Jev — A 2B decision model that helps assess parsing accuracy, with performance approaching that of Qwen3.5-397B-A17B on JevOCRBench. ⚡ What’s new? Small model, SOTA results: MiniCPM-OCR 1.0 scores 93.68 on Real5-OmniDocBench and 54.7 on OCRBench v2. A sharp goalkeeper 🛡️: MiniCPM-OCR Jev is model-agnostic, checking text, formulas, and tables from different OCR parsers. It achieves 93.6 on JevOCRBench, outperforming JEV-35B-A3B (90.1) and approaching Qwen3.5-397B-A17B (93.8). Up to 128 pages per minute 🤯: With DSpark, MiniCPM-OCR runs at 1.49× the speed of PaddleOCR-VL-1.6 and 3.62× that of MinerU2.5 Pro. The SDK’s concurrency optimizations further boost throughput to as much as 128 pages per minute. Deploy where you work: Day-0 support for Arm, Houmo AI, Intel, and NVIDIA, plus 10 more chip vendors through FlagOS. Ready for your stack: vLLM, SGLang, llama.cpp, and Ollama, with quantized models, fine-tuning support, and Agent Skills. 🔗 GitHub: 🤗 Hugging Face: MiniCPM-OCR 1.0: MiniCPM-OCR Jev: 👉 Try the Demo: Use the API:
    21282K
  10. OpenBMB✓@OpenBMB
    Your OCR says it’s done—but did it get everything right? 🤔 In high-stakes workflows, even a small error can be costly. 🚀 Meet the MiniCPM-OCR suite: an open-source solution to parse fast and guard the results. Two new models: 🔹 MiniCPM-OCR 1.0 — SOTA OCR performance and speed at 1B scale. Compact, accurate, and fast. 🔹 MiniCPM-OCR Jev — A 2B decision model that helps assess parsing accuracy, with performance approaching that of Qwen3.5-397B-A17B on JevOCRBench. ⚡ What’s new? Small model, SOTA results: MiniCPM-OCR 1.0 scores 93.68 on Real5-OmniDocBench and 54.7 on OCRBench v2. A sharp goalkeeper 🛡️: MiniCPM-OCR Jev is model-agnostic, checking text, formulas, and tables from different OCR parsers. It achieves 93.6 on JevOCRBench, outperforming JEV-35B-A3B (90.1) and approaching Qwen3.5-397B-A17B (93.8). Up to 128 pages per minute 🤯: With DSpark, MiniCPM-OCR runs at 1.49× the speed of PaddleOCR-VL-1.6 and 3.62× that of MinerU2.5 Pro. The SDK’s concurrency optimizations further boost throughput to as much as 128 pages per minute. Deploy where you work: Day-0 support for Arm, Houmo AI, Intel, and NVIDIA, plus 10 more chip vendors through FlagOS. Ready for your stack: vLLM, SGLang, llama.cpp, and Ollama, with quantized models, fine-tuning support, and Agent Skills. 🔗 GitHub: 🤗 Hugging Face: MiniCPM-OCR 1.0: MiniCPM-OCR Jev: 👉 Try the Demo: Use the API:
    Download
    3193542.3K2M
  11. Jack Assery✓@a__name__a
    La LA LA LA 🌐 ROOTNET — A FEDERATED NETWORK REPLACEMENT ARCHITECTURE Version: 0.1 / Research Specification Origin: Thalora Commons + ASN federation + experimental non-IP Ethernet transport MISSION Build a modular, identity-native, locally autonomous communications architecture that can operate without IP addressing, TCP sessions, DNS, centralized certificate authorities, or mandatory cloud infrastructure. Support incremental deployment, interoperability, secure federation, and independent operation at every completed phase. IMPORTANT DISTINCTION ROOTNET is a research design, not a proven secure replacement for TCP/IP. CVEs also arise in software, hardware, parsers, firmware, and applications. A new protocol must undergo independent cryptographic review, adversarial testing, fuzzing, formal analysis, and interoperability testing. I. ARCHITECTURAL PRINCIPLES 1. Identity is not location. 2. Authentication is mandatory for privileged state changes. 3. Forwarding does not imply trust. 4. Nodes remain functional without central coordination. 5. Network participation must not require an AI model. 6. Every protocol message is bounded, versioned, and explicitly typed. 7. Unknown critical fields cause safe rejection; optional extensions are negotiated. 8. Routing, identity, transport, policy, and applications are independently replaceable. 9. Signed evidence supports accountability without requiring public disclosure of private payloads. 10. Each development phase produces a usable system. II. STACK L0 PHYSICAL: Ethernet, fiber, radio, serial, optical, and other physical links. L1 LINK ADAPTER: Interface discovery, framing, local neighbor discovery, MTU reporting, error detection, and optional link encryption. L2 NODE IDENTITY: Persistent cryptographic identifiers, key lifecycle, device roles, delegation, revocation, and recovery. L3 DISCOVERY: Local authenticated neighbor exchange and capability negotiation. L4 ROUTING: Locator-independent forwarding, signed route advertisements, loop prevention, expiry, and route selection. L5 SECURE CHANNEL: Authenticated key exchange, encryption, replay protection, flow control, congestion management, and reliability profiles. L6 FEDERATION: Autonomous administrative domains, peering, policy exchange, trust boundaries, and optional inter-domain aggregation. L7 SERVICE: Named services, capability-scoped access, signed actions, application protocols, and optional content addressing. L8 OPTIONAL INTELLIGENCE: Thalora/ASN adaptive orchestration, never part of the minimum trusted forwarding base. III. IDENTITY NodeID = HASH(domain_separator || algorithm_id || canonical_public_identity_key) Identity remains stable while interfaces and physical locations change. Support independent node, device, user, service, and federation identities. Use domain separation for every signed object type. Identity keys sign authorizations and attestations; ephemeral session keys encrypt traffic. Provide key rotation, delegated authority, compromised-key recovery, and revocation distribution. Never interpret a self-signed identity as proof of a person's real-world identity. Use established audited cryptographic algorithms. Evaluate hybrid post-quantum key exchange and signatures where suitable; do not invent new primitives. IV. ADDRESSING AND LOCATORS Addressing is identity-first. NodeID identifies the intended endpoint. Locator is a temporary route or attachment hint, not a permanent identity. A node may have multiple locators. Locators expire and may be replaced after movement. Local peers can communicate without a global naming service. Human-readable service names are optional aliases resolved through authenticated federation or local configuration. A missing locator triggers discovery, not identity replacement. Avoid embedding geographic, personal, or device-identifying information in public identifiers.
    Jack Assery @a__name__a
    La LA LA #!/usr/bin/env python3 """Thalora Routing Experiment v0.2 — identity/location separation. An offline, deterministic topology simulation. No sockets, telemetry, or external connections. Requires: pip install cryptography Demonstrates signed endpoint location announcements, relay-derived shortest paths, route epochs, movement, hop limits, and expiry. NOT a secure routing protocol: relay topology/cost information is trusted in this demo; signed endpoint claims alone cannot prevent malicious relays, Sybil attacks, or route hijacks. """ import hashlib import heapq import json import time from dataclasses import dataclass from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey, Ed25519PublicKey from cryptography.hazmat.primitives import serialization def canonical(obj): return json.dumps(obj, sort_keys=True, separators=(',', ':')).encode() @dataclass class Identity: name: str private: Ed25519PrivateKey @classmethod def fresh(cls, name): return cls(name, Ed25519PrivateKey.generate()) @property def public(self): return self.private.public_key().public_bytes( serialization.Encoding.Raw, serialization.PublicFormat.Raw) @property def node_id(self): return hashlib.sha256(self.public).hexdigest() def announce(self, locator, epoch, expires): body = {"version": 2, "kind": "location", "identity": self.node_id, "public_key": self.public.hex(), "locator": locator, "epoch": epoch, "expires": expires} return {"body": body, "signature": self.private.sign(canonical(body)).hex()} def verify_announcement(packet, now): b = packet["body"] if (b["version"] != 2 or b["kind"] != "location" or not isinstance(b["epoch"], int) or b["epoch"] < 0 or not isinstance(b["locator"], str) or len(b["locator"]) > 64 or not isinstance(b["expires"], int) or b["expires"] <= now or b["expires"] > now + 3600): raise ValueError("invalid announcement fields or expiry") public = bytes.fromhex(b["public_key"]) if hashlib.sha256(public).hexdigest() != b["identity"]: raise ValueError("identity/public key mismatch") Ed25519PublicKey.from_public_bytes(public).verify( bytes.fromhex(packet["signature"]), canonical(b)) return b class Mesh: def __init__(self): self.links = {} # trusted local topology for this simulation self.announcements = {} # identity -> verified latest body def link(self, a, b, cost=1): if cost <= 0: raise ValueError("cost must be positive") self.links.setdefault(a, {})[b] = cost self.links.setdefault(b, {})[a] = cost def learn(self, signed, now): body = verify_announcement(signed, now) previous = self.announcements.get(body["identity"]) if previous and body["epoch"] <= previous["epoch"]: return False # no stale replay or conflicting same-epoch location self.announcements[body["identity"]] = body return True def route(self, origin, identity, now): body = self.announcements.get(identity) if not body or body["expires"] <= now: return None destination = body["locator"] queue = [(0, origin, (origin,))] best = {} while queue: cost, current, path = heapq.heappop(queue) if current in best: continue best[current] = cost if current == destination: return {"identity": identity, "epoch": body["epoch"], "cost": cost, "path": list(path)} for neighbor, weight in self.links.get(current, {}).items(): if neighbor not in best: heapq.heappush(queue, (cost + weight, neighbor, path + (neighbor,))) return None Cont in next message
    10022
  12. Jack Assery✓@a__name__a
    @grok
    La LA LA #!/usr/bin/env python3 """Thalora Routing Experiment v0.2 — identity/location separation. An offline, deterministic topology simulation. No sockets, telemetry, or external connections. Requires: pip install cryptography Demonstrates signed endpoint location announcements, relay-derived shortest paths, route epochs, movement, hop limits, and expiry. NOT a secure routing protocol: relay topology/cost information is trusted in this demo; signed endpoint claims alone cannot prevent malicious relays, Sybil attacks, or route hijacks. """ import hashlib import heapq import json import time from dataclasses import dataclass from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey, Ed25519PublicKey from cryptography.hazmat.primitives import serialization def canonical(obj): return json.dumps(obj, sort_keys=True, separators=(',', ':')).encode() @dataclass class Identity: name: str private: Ed25519PrivateKey @classmethod def fresh(cls, name): return cls(name, Ed25519PrivateKey.generate()) @property def public(self): return self.private.public_key().public_bytes( serialization.Encoding.Raw, serialization.PublicFormat.Raw) @property def node_id(self): return hashlib.sha256(self.public).hexdigest() def announce(self, locator, epoch, expires): body = {"version": 2, "kind": "location", "identity": self.node_id, "public_key": self.public.hex(), "locator": locator, "epoch": epoch, "expires": expires} return {"body": body, "signature": self.private.sign(canonical(body)).hex()} def verify_announcement(packet, now): b = packet["body"] if (b["version"] != 2 or b["kind"] != "location" or not isinstance(b["epoch"], int) or b["epoch"] < 0 or not isinstance(b["locator"], str) or len(b["locator"]) > 64 or not isinstance(b["expires"], int) or b["expires"] <= now or b["expires"] > now + 3600): raise ValueError("invalid announcement fields or expiry") public = bytes.fromhex(b["public_key"]) if hashlib.sha256(public).hexdigest() != b["identity"]: raise ValueError("identity/public key mismatch") Ed25519PublicKey.from_public_bytes(public).verify( bytes.fromhex(packet["signature"]), canonical(b)) return b class Mesh: def __init__(self): self.links = {} # trusted local topology for this simulation self.announcements = {} # identity -> verified latest body def link(self, a, b, cost=1): if cost <= 0: raise ValueError("cost must be positive") self.links.setdefault(a, {})[b] = cost self.links.setdefault(b, {})[a] = cost def learn(self, signed, now): body = verify_announcement(signed, now) previous = self.announcements.get(body["identity"]) if previous and body["epoch"] <= previous["epoch"]: return False # no stale replay or conflicting same-epoch location self.announcements[body["identity"]] = body return True def route(self, origin, identity, now): body = self.announcements.get(identity) if not body or body["expires"] <= now: return None destination = body["locator"] queue = [(0, origin, (origin,))] best = {} while queue: cost, current, path = heapq.heappop(queue) if current in best: continue best[current] = cost if current == destination: return {"identity": identity, "epoch": body["epoch"], "cost": cost, "path": list(path)} for neighbor, weight in self.links.get(current, {}).items(): if neighbor not in best: heapq.heappush(queue, (cost + weight, neighbor, path + (neighbor,))) return None Cont in next message
    10063
  13. Jack Assery✓@a__name__a
    @a__name__a
    V. MESSAGE ENVELOPE Every message has a canonical binary encoding and strict maximum size. Required fields: magic protocol_version message_type header_length payload_length source_node_id destination_node_id_or_group message_id nonce_or_sequence hop_limit expiry_or_validity_window algorithm_suite_id flags authenticated_metadata payload authentication_tag_or_signature_reference Define separate wire formats for control traffic and encrypted user data. Canonical serialization must be unambiguous. Reject malformed lengths, overlapping fields, unsupported critical extensions, and resource-exhausting messages before expensive cryptographic operations whenever safe. A hop limit reduces loops; it is not a substitute for routing validation. Signatures on route claims prove the signer, not the truth of the claimed topology. VI. LINK DISCOVERY Neighbors exchange bounded HELLO messages. Handshake negotiates versions, capabilities, frame limits, and authenticated identities. Rate-limit discovery and require resource-conscious admission. Never accept a neighbor as a trusted router solely because it responds. Support unauthenticated discovery only as a constrained bootstrap step. No central server is required for direct local communication. VII. ROUTING Maintain separate identity, locator, and forwarding tables. Routing entries contain: destination_or_prefix next_hop path_metric origin_identity sequence_or_epoch expiry policy_scope authenticated_provenance Reject stale advertisements and enforce route lifetimes. Apply loop prevention, hop limits, bounded propagation, and path validation. Require explicit authorization for route advertisements within each trust domain. Support route changes without changing NodeID. Use multipath only when validated against policy and resource constraints. Treat route poisoning, Sybil identities, replay, blackholes, traffic analysis, and control-plane floods as explicit threat cases. Do not assume that a signed route is accurate or safe. VIII. TRANSPORT AND SECURE CHANNELS Use authenticated, forward-secret session establishment based on reviewed protocols and cryptographic libraries. Support reliable ordered streams, unreliable datagrams, and optional partially reliable delivery. Define fragmentation/reassembly limits, loss recovery, congestion control, flow control, connection migration, and MTU discovery. Never rely on encryption alone to establish authorization. Bind sessions to authenticated identities and negotiated protocol versions. Prevent replay, downgrade, nonce reuse, and cross-protocol confusion. Encrypt payloads and minimize observable metadata where practical. Document remaining metadata leakage. IX. ASN-DERIVED FEDERATION A federation is an autonomous policy and coordination domain, not a mandatory central authority. Federations may: authenticate authorized peers exchange bounded routing reachability publish service capabilities enforce ingress/egress policies issue scoped delegations maintain signed audit receipts disconnect or partition without globally disabling local communication Cross-federation peering requires explicit mutual policy. Use aggregation to avoid global dissemination of every endpoint. Keep governance, routing authority, and cryptographic identity distinct. Do not make any single operator, ledger, or AI agent a global root of trust. X. SECURITY AND ACCOUNTABILITY Minimum trusted computing base: parser, crypto implementation, identity manager, forwarding policy, secure channel, and update verifier. Implement in a memory-safe language where feasible. Use privilege separation and sandboxing for parsers, adapters, and untrusted extensions. Require authenticated, authorized changes to routes, policy, identity delegation, and software updates. Record signed, privacy-preserving action receipts for security-relevant state changes. Support tamper-evident local logs without making a blockchain mandatory...
    10029
  14. Leonard Rodman✓@RodmanAi
    I ran three of the messiest real-world documents I could find through a 1.3B OCR model. The results are why you shouldn't trust any OCR output blindly. A tilted phone photo of an income statement with glare and folds: 43 of 45 numbers exact. A real cursive letter from 1990: 38 of 41 words. A purchase order covered in hand edits, a stamp and a signature: 11 of 12 fields. That's not the scary part. The scary part is the misses looked exactly as clean and confident as the hits. (2,501.7) quietly became (2,901.7). A handwritten "65" just disappeared. Same formatting. Same certainty. Pipe that into a spreadsheet and you'd never know which numbers were wrong until someone asks why the totals don't match. That's the real problem with document AI. Not accuracy. Confidence. @OpenBMB's MiniCPM-OCR 1.0 is the parser here. It's tiny enough to run locally and still read the handwritten date, the APPROVED stamp and the signature on that PO. For a model this size, that's legit. But the reason I'm excited is MiniCPM-OCR Jev. It doesn't parse anything and it doesn't fix errors. It evaluates candidates from different OCR parsers against their corresponding image regions, helping prioritize human review. On those three pages it scored 16 blocks. All 4 blocks with real errors got flagged for review. All 8 it auto-accepted were correct. It was cautious on cursive and flagged a few handwritten blocks that were actually fine, a trade I'll take. OpenBMB reports an AUROC of 0.936 for the 2B Jev model on JevOCRBench, compared with 0.938 for Qwen3.5-397B-A17B. That's their benchmark, not mine. Mine is in the video. A small, separate evaluator can help identify where an OCR parser may have made mistakes. Manual review queues are about to get a lot shorter. Try the Git yourself. Link in the first comment.
    Download
    12724017.9K
  15. Elvar✓@elvar_official
    This is real gold. I just found an OCR model that reads the document and checks whether it got it right. OCR can read a PDF and still get a number or a table wrong. [here is the short version] 1. MiniCPM-OCR 1.0 parses the document with a 1B model 2. MiniCPM-OCR Jev checks the output for parsing errors with a 2B model 3. Jev works with other OCR parsers too, so you can keep the parser already in your stack it checks text, formulas and tables. on JevOCRBench, Jev scores 93.6. Qwen3.5-397B-A17B scores 93.8. that comparison is on 1 benchmark. i'd still want to see which errors it misses on actual documents. both models are open source. what caught my attention: i could try the checker on documents my current parser already got wrong.
    Download
    OpenBMB @OpenBMB
    Your OCR says it’s done—but did it get everything right? 🤔 In high-stakes workflows, even a small error can be costly. 🚀 Meet the MiniCPM-OCR suite: an open-source solution to parse fast and guard the results. Two new models: 🔹 MiniCPM-OCR 1.0 — SOTA OCR performance and speed at 1B scale. Compact, accurate, and fast. 🔹 MiniCPM-OCR Jev — A 2B decision model that helps assess parsing accuracy, with performance approaching that of Qwen3.5-397B-A17B on JevOCRBench. ⚡ What’s new? Small model, SOTA results: MiniCPM-OCR 1.0 scores 93.68 on Real5-OmniDocBench and 54.7 on OCRBench v2. A sharp goalkeeper 🛡️: MiniCPM-OCR Jev is model-agnostic, checking text, formulas, and tables from different OCR parsers. It achieves 93.6 on JevOCRBench, outperforming JEV-35B-A3B (90.1) and approaching Qwen3.5-397B-A17B (93.8). Up to 128 pages per minute 🤯: With DSpark, MiniCPM-OCR runs at 1.49× the speed of PaddleOCR-VL-1.6 and 3.62× that of MinerU2.5 Pro. The SDK’s concurrency optimizations further boost throughput to as much as 128 pages per minute. Deploy where you work: Day-0 support for Arm, Houmo AI, Intel, and NVIDIA, plus 10 more chip vendors through FlagOS. Ready for your stack: vLLM, SGLang, llama.cpp, and Ollama, with quantized models, fine-tuning support, and Agent Skills. 🔗 GitHub: 🤗 Hugging Face: MiniCPM-OCR 1.0: MiniCPM-OCR Jev: 👉 Try the Demo: Use the API:
    193497.6K
  16. Jerry Liu✓@jerryjliu0
    GPT 6.1 Terra is a strong frontier model baseline for document parsing. ✅ It spikes at table parsing, coming in 5th on our overall leaderboard, ahead of 6 Sol and behind Opus 5.5 / Astra ✅ It is decent at content faithfulness and reading order ✅ It struggles on layout, charts, and formatting Coming in at ~1c per page, it's not a bad option for table-heavy pages! You can use these alongside specialized OCR solutions (like LlamaParse) that will give more consistent performance across a variety of dimensions. Check it out on ParseBench:
    Download
    50912625.7K
  17. QualityMax@QualityMaxApp
    @jerryjliu0
    @jerryjliu0 A parser can recover every cell and still lose the relationships between tables, captions and charts. Keeping those scores separate makes it easier to choose a parser for a specific document type.
    00012
  18. 𝐀𝐨𝐮𝐣 𝐉𝐮𝐭𝐭@aouj10112l
    @OpenBMB
    @OpenBMB Legal contracts contain clauses, tables, footnotes, signatures, and seals ⚖️ A document parser that preserves structure helps reviewers trace every statement back to its source.
    00010
  19. VisiveAI✓@VisiveAI
    OpenBMB's MiniCPM-OCR pairs a 1.3B open document parser with Jev, a model that scores how reliable each extracted text, formula and table is. Low scores go to a human, so one bad table doesn't poison an agent's pipeline. via @omarsar0 #DocumentAI
    elvis @omarsar0
    Decision models can also improve your OCR pipelines. You can also use Jev-like models for verification. Here is a great example of this: MiniCPM-OCR from OpenBMB and ModelBest pairs a small open document parser with a second model that scores the reliability of the OCR output. The parser has only 1.3B parameters. It handles Chinese and English documents, including scans, photos, curved pages, and tilted inputs, and it supports key information extraction. The second model, MiniCPM-OCR Jev, checks extracted text, formulas, and tables. It also works on outputs from other OCR models, so you can run it on top of the parser you already use. More details below. Agents now read PDFs, invoices, and papers all day. One bad table extraction carries into every step that follows. A simple setup looks like this. > Parse the document with MiniCPM-OCR > Score the extracted text, formulas, and tables with Jev > Send low-scoring output to a human or a correction step Jev estimates reliability. It doesn't fix errors itself. The weights are open, with a fine-tuning framework and inference support for llama.cpp, vLLM, SGLang, and Ollama. There are also Agent Skills integrations. If you build document agents, test the parser and Jev together on your hardest pages, like dense tables, formulas, and phone photos.
    00027
  20. Sumanth✓@Sumanth_077
    Jev as a reviewer for OCR! OpenBMB and ModelBest just released MiniCPM-OCR 1.0 for document parsing and MiniCPM-OCR Jev for reviewing the reliability of those outputs. That second part is what I find more interesting. OCR errors are often hard to catch once the output looks plausible. A number can be slightly wrong, a formula can be misread, or a table cell can shift, and the result can still look completely reasonable when it moves into the next step of the workflow. MiniCPM-OCR Jev sits after the parser and evaluates how reliable those outputs are across text, formulas, and tables. It does not rewrite or correct the OCR result. Its job is to score the output and help decide which blocks can move forward and which ones should be sent for human review. So the workflow becomes: Document → Layout detection → OCR parser → Jev review → Human review where needed On the parsing side, MiniCPM-OCR 1.0 is a 1.3B model that supports scanned documents, photographed pages, curved inputs, tilted documents, tables, formulas, and key information extraction. OpenBMB reports 93.68 on Real5-OmniDocBench and 54.7 on OCRBench v2, while DSpark improves end-to-end throughput by 62% in their benchmark setup. On the review side, MiniCPM-OCR Jev reaches 93.5 AUROC on their JevOCRBench, close to Qwen3.5-397B-A17B at 93.8 and above JEV-35B at 90.1 in the official evaluation. The useful part here is that you no longer have to treat the whole OCR output as equally reliable. You can review it block by block and route only the uncertain parts for another look. I tested both models on my own documents to see how well Jev catches OCR outputs that look right but are actually wrong. I’ve shared the GitHub repo below!
    Download
    Sumanth @Sumanth_077
    295036120.9K
  21. Sumanth✓@Sumanth_077
    2747378135K
  22. E1ev3n.✓@harden_369741
    Most OCR demos show a clean page turning into clean text. My real documents never look like that, which is why this release caught my eye. ModelBest and OpenBMB open-sourced MiniCPM-OCR 1.0, a 1.3B model built for photographed, curved and tilted pages, plus dense bilingual text, formulas and borderless tables. It also pulls key fields from invoices and statements. The part I actually care about is Jev, the 2B model next to it. Jev does not do OCR. It compares the image with the OCR output and scores text, LaTeX and tables, flagging missing characters and misaligned formatting. That is the boring job everyone skips, and it is where document pipelines quietly break. My take: parsing accuracy stopped being the bottleneck a while ago. Trust in the output is. A small checker that can sit on top of any OCR engine, without replacing it, is more useful to me than another slightly better parser. Source: #OCR #DocumentAI #OpenSource
    102113
  23. Show more posts