Signal Dataset annotation with backend: gemini_batch (2026-08-14)¶
Note
Read for the route, not for the configuration. This run used template
caption.dense.v3, which existed on its date. Annotation was later reduced to
one template, caption.declared.v1, and caption.dense.v3 is now refused at
config validation. What this record establishes is that the snapshot route runs
with backend: gemini_batch; copy the template id from
Annotation templates, not
from here.
The two gemini_batch combinations the snapshot route had never run: locally
over a local path and a gs:// root, and submitted as a Dataproc Serverless
batch. Three runs, six records each, all first-attempt successes.
Until this record, every recorded gemini_batch run was over a retained store, and
the route’s own documentation had twice claimed a snapshot qualification that
did not exist. These runs close that gap rather than restate it.
What was run¶
Project rf-foundation-models, region us-central1. Model
gemini-3.1-flash-lite, inference.provider: gemini, template
caption.dense.v3. A six-record snapshot generated from narrowband-baseline
with the channel chain set to awgn_channel at 20 dB.
Run |
|
|
|
Result |
|---|---|---|---|---|
1 |
|
local path |
|
6 succeeded, 0 failed, exit |
2 |
|
|
|
6 succeeded, 0 failed, exit |
3 |
|
|
|
6 succeeded, 0 failed, |
Run 3 used inference.api_key_secret
(projects/rf-foundation-models/secrets/rfgen-gemini-key/versions/latest) and
the image pinned at the time, sha256:2d104c1e…, and reached a result in ten
polling cycles. An evidence record names the digest it ran rather than “the
maintained pin”, because that pin moves. Every run
published a dense set: {'success': 6, 'failed': 0, 'skipped': 0}.
Provider prose from run 3, verbatim:
The single emitter observed in this scene exhibits a continuous occupied interval across the entire channel and is characterized by strong SNR. This signal behavior is consistent with 64qam modulation.
and from run 1:
A single emitter is detected occupying the full observed frequency band for the entire observed duration, consistent with 64qam modulation. The signal maintains a strong snr throughout the continuous occupied interval, indicating stable and consistent transmission characteristics during the entire window.
Note
The occupancy wording is a fact-projection artifact, not a measurement. The caption facts normalize the frequency axis to the union of the record’s own bounding boxes, so any single-emitter scene reads as full-band whatever its real occupancy: this capture is 1 MHz of signal in a 2 MHz band. What this run evidences is that the route completed, not that the sentence is true.
What this found¶
A snapshot cannot be relocated with gsutil cp. Run 2 was first attempted
against a snapshot copied from the local root with gsutil -m cp -r. Submission
refused it before preparing any request:
{"error_code":"invalid_annotation_request","error_type":"CorruptDatasetError",
"message":"GCS snapshot reference is missing a generation"}
A Signal Dataset root pins the object generations it reads, and a copy gets new
ones. The refusal is correct and arrives before any paid work, but the message
does not say what to do instead. To put a snapshot in a bucket, generate to the
gs:// URI directly, which is what run 2 then did.
Boundaries¶
Six records, one model, one project, one region, one template. Evidence that the combinations work, not a throughput or cost measurement.
gemini_batchhere is the Gemini Developer API batch endpoint with inlined requests, not Vertex Batch. Vertex Batch eligibility is a separate question and is unaffected by these runs.Batch pricing was not measured. The roughly-half-price claim comes from the provider’s published rates, not from an invoice compared here.
Runs were first-attempt successes, so nothing here exercises
gemini_batchresume or partial-failure handling on the snapshot route.