NEWVectors or files. Pick a path.Start →
    Models/Captioning/yanziang/InternVideo3-8B-Instruct
    HFScene CaptioningApache 2.0

    InternVideo3-8B-Instruct

    by yanziang

    Long-video reasoning model with a 256K-token context, built for hour-scale footage and agentic tool use

    1.4Kdl/month
    9.36B (36-layer language model plus a 27-layer ViT)params
    Identifiers
    Model ID
    yanziang/InternVideo3-8B-Instruct
    Feature URI
    mixpeek://multimodal_extractor@v2/yanziang_internvideo3_8b_instruct_v1

    Overview

    InternVideo3-8B-Instruct reads video and writes text. It is built around Multimodal Contextual Reasoning, which keeps perception, planning, tool calls, self-checking and memory inside one shared context so the model can take several passes over a long clip instead of a single forward look.

    The architecture choice that makes hour-scale footage tractable is M²LA, a multi-head latent attention that compresses the KV cache to a rank-896 latent per layer. That is what buys a 262,144-token context without dropping frames on the way in. Training ran a short-to-long curriculum, ending at 4fps over 2,048 frames, then rule-based reinforcement learning on temporal grounding and video QA, then on-policy distillation from Qwen3-235B.

    One practical note before you copy the quickstart: the weights live under the first author's personal namespace at yanziang/InternVideo3-8B-Instruct, while the card's own snippet points at OpenGVLab/InternVideo3-8B-Instruct, which does not publicly resolve. Swap the path.

    Architecture

    InternVideo3ForConditionalGeneration, 9,364,294,384 parameters in BF16. A 27-layer ViT at hidden size 1,152 with patch size 16 and temporal patch size 2 feeds a 36-layer language model at hidden size 4,096 with 32 attention heads. M²LA holds a KV latent rank of 896 per layer, and the maximum context is 262,144 tokens. Loaded through Transformers with trust_remote_code, since the modeling code ships in the repo rather than upstream.

    Mixpeek SDK Integration

    // InternVideo3 writes text, so on Mixpeek it belongs at ingest: describe the
    // video with the model, then store the description and its embedding.
    // Route verified against the live OpenAPI:
    // POST /v1/namespaces/{namespace_id}/documents/upsert
    const res = await fetch(
      "https://api.mixpeek.com/v1/namespaces/ns_your_namespace/documents/upsert",
      {
        method: "POST",
        headers: {
          Authorization: "Bearer API_KEY",
          "Content-Type": "application/json",
        },
        body: JSON.stringify({
          collection_id: "col_your_collection",
          documents: [
            {
              document_id: "match-0091-seg-14",
              vectors: { "text-embedding": descriptionVector },
              payload: {
                description: internVideo3Output,
                start_s: 842,
                end_s: 871,
              },
              metadata: { source: "match-archive" },
            },
          ],
        }),
      },
    );
    
    // For a managed path that needs no self-hosting, universal_extractor@v1 runs
    // description, transcription and embedding over a bucket in one pass.

    Capabilities

    • 262,144-token context over video, images and text
    • Trained to 2,048 frames at 4fps through a short-to-long curriculum
    • Temporal grounding, so an answer can carry the time range it came from
    • Tool use across temporal grounding, ASR, web search and video segmentation
    • English and Chinese
    • Apache 2.0, with no usage restriction on self-hosting

    Use Cases on Mixpeek

    Describing long-form footage at ingest so the text becomes searchable
    Answering a question about a full episode or match without pre-chunking it
    Locating the moment an event happens and returning its start and end
    Reading the candidates a cheaper embedding model retrieved, then answering with citations

    Performance

    Input SizeVideo to 2,048 frames, images, or text; 262,144-token context
    GPU LatencyInput dependent
    GPU ThroughputBatch dependent
    GPU Memory~19 GB in BF16 for weights alone

    No latency or throughput figures are published for this model. The memory number is computed from the 9,364,294,384 BF16 parameters in the safetensors index and covers weights only. A full 256K-token context needs substantial KV cache on top, even with M²LA's rank-896 factorization.

    Frequently Asked Questions

    Why does the model card's quickstart fail?

    It sets model_path to OpenGVLab/InternVideo3-8B-Instruct, and that repository does not publicly resolve: the Hugging Face API returns 401 for it, and a hub-wide search for InternVideo3 returns only yanziang/InternVideo3-8B-Instruct. Checked 2026-08-27. Point the path at the yanziang repo and the rest of the snippet works unchanged.

    How long a video can InternVideo3-8B-Instruct actually handle?

    The frame budget binds before the token count does. Training tops out at 2,048 frames, so 4fps gives you about 8.5 minutes of footage and an hour of material means sampling at roughly 0.5fps. The card's hour-scale claim and its 4fps training figure are both true, at different sampling rates. Pick the rate from how fast the thing you are looking for happens.

    Can InternVideo3 power search on its own?

    No. It has no embedding head, so it cannot populate a vector index. Its place in a retrieval system is at ingest, turning footage into descriptions and grounded time ranges that a text or multimodal embedding model then indexes, or as the second stage that reads whatever first-stage retrieval returned.

    Are there published benchmark scores?

    The model card carries no benchmark table, only architecture and training details. The numbers are in the arXiv paper, 2606.12195. That absence is worth knowing before you plan an evaluation: there is no card-level score to compare against, so budget for scoring it on your own footage.

    Can I run it on Mixpeek today?

    Not as a managed extractor. GET /v1/discovery/extractors returns 13 shipping extractors and none accepts an arbitrary Hugging Face model id. Run it yourself and upsert descriptions and vectors through POST /v1/namespaces/{namespace_id}/documents/upsert, or use universal_extractor@v1 for a managed describe-and-embed pass that needs no GPUs of your own.

    Specification

    FrameworkHF
    Organizationyanziang
    FeatureScene Captioning
    Outputtext
    Modalitiesvideo, image
    RetrieverSemantic Search
    Parameters9.36B (36-layer language model plus a 27-layer ViT)
    LicenseApache 2.0
    Downloads/mo1.4K

    Research Paper

    InternVideo3: Agentify Foundation Models with Multimodal Contextual Reasoning

    arxiv.org

    Build a pipeline with InternVideo3-8B-Instruct

    Add this model to a processing pipeline alongside other extractors. Combine with retrieval stages for end-to-end search.

    Run it on your own data, free