Annotation¶
Purpose¶
Add natural-language supervision to an existing RFGen dataset without rewriting its I/Q samples, structured labels, or source metadata. I/Q means the complex in-phase and quadrature sample values that represent the received signal. Annotation is a supported manual workflow, not a production-qualified Golden Path.
What annotation writes¶
RFGen has one rfgen annotate lifecycle. execution_mode and backend are
chosen independently of each other.
One source: a published Signal Dataset snapshot, which is what rfgen generate
writes. It publishes a dense annotation set under the snapshot root and
rewrites no signal shard. Where annotation
runs owns the mode matrix, and Annotate
an existing dataset carries the
configuration.
Inputs and safety boundary¶
The inference boundary receives only documented facts recoverable from a signal representation or calibrated labels. It excludes raw I/Q arrays and spectrograms, seeds, opaque identifiers, hashes, and operational metadata. This is an input-policy boundary, not a determination that generated prose is true.
Direct Gemini needs GEMINI_API_KEY in the driver environment. Live provider work
is manually gated and can incur cost. Bounded qualifications are recorded under
Evidence, which lists what each run covers. None
qualifies hosted text semantically or establishes fleet reliability, and
annotation is not production-qualified.
Run and recover¶
Save one YAML configuration in a directory, then name that file without its
.yaml suffix when submitting it:
mkdir -p ./annotation-config
# Save the selected configuration as ./annotation-config/caption.yaml.
rfgen annotate submit --config-dir ./annotation-config --config-name caption
A local run is synchronous and has no asynchronous recovery step. A snapshot
submitted to Dataproc Serverless returns a handle on stdout; pass that
complete value unchanged to wait, which is the only continuation it supports.
See Annotate an existing
dataset for the configuration and
sample-ID discovery.
Output and interpretation¶
The run publishes a dense annotation set under the snapshot root, one row per source ordinal, without rewriting a signal shard. Each row preserves provider, model, request, token-use, schema-version, and persistence provenance. Hosted text is supervision generated from a bounded metadata projection, not an authoritative measurement of semantic truth.