NEWVectors or files. Pick a path.Start →
    Models/Captioning/NemoStation/Marlin-2B
    HFScene CaptioningApache 2.0

    Marlin-2B

    by NemoStation

    2B video VLM with second-precise temporal captioning and grounding

    Identifiers
    Model ID
    NemoStation/Marlin-2B
    Feature URI
    mixpeek://image_extractor@v1/nemostation_marlin_2b_v1

    Overview

    Marlin-2B is a 2-billion parameter video vision-language model from NemoStation that specializes in dense video captioning with second-level timestamp precision and temporal grounding. It tops the CaReBench leaderboard at the 2B scale and competes with models 3-4x its size on temporal understanding tasks. Built on Qwen3.5-2B, it processes video at 2 FPS with up to 240 frames, making it practical for production video indexing.

    Architecture

    Video VLM built on Qwen3.5-2B with a temporal-aware visual encoder. Processes video at 2 FPS sampling rate with a 240-frame cap (covering up to 2 minutes of video). Generates timestamped captions with [start:end] markers and supports temporal grounding queries that return specific time ranges.

    Mixpeek SDK Integration

    // No extractor parameter takes a Hugging Face model id (checked against
    // GET /v1/discovery/extractors, which returns 13), so Marlin-2B runs
    // on your side and the output is upserted through POST
    // /v1/namespaces/{namespace_id}/documents/upsert. On Enterprise the other
    // path is to upload the weights instead: POST /v1/namespaces/{id}/models
    // accepts the huggingface format and a custom plugin loads them.
    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: "asset-00412",
              // The model produces text, so it lands in payload. Give the
              // collection a text vector index and embed that text to make it
              // searchable rather than only filterable.
              payload: { extracted_text: modelOutput, source_key: "archive/2026/asset-00412" },
              vectors: { "multimodal-embedding": embeddingOfModelOutput },
            },
          ],
        }),
      },
    );
    
    // Managed alternative, if this exact model is not the requirement:
    // universal_extractor@v1 runs google/gemini-embedding-2
    // (3072-d) over a bucket, with no inference of your own.

    Capabilities

    • Dense video captioning with second-precise timestamps
    • Temporal grounding: find specific moments from natural language queries
    • Video summarization with temporal structure
    • Scene transition detection and labeling
    • Multi-event timeline generation from continuous video

    Use Cases on Mixpeek

    Indexing ad creative libraries with temporal metadata
    Building searchable video archives with timestamp-level granularity
    Automated highlight detection and clip extraction
    Video content moderation with temporal evidence
    Meeting/lecture video segmentation and indexing

    Benchmarks

    DatasetMetricScoreSource
    CaReBenchScore#1 at 2B scaleCompetitive with 7B+ models
    TimeLens-BenchTemporal AccMatches Gemini-2.0-FlashAt 1/10th the parameter count

    Performance

    Input SizeVariable
    GPU LatencyInput dependent
    GPU Throughput~8 videos/min (A100, 30s clips at 2 FPS)
    GPU Memory~5 GB

    Specification

    FrameworkHF
    OrganizationNemoStation
    FeatureScene Captioning
    Outputtext
    Modalitiesvideo, image
    RetrieverSemantic Search
    Parameters2B
    LicenseApache 2.0
    Downloads/mo4K

    Build a pipeline with Marlin-2B

    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