# Glossary

Quick reference for terms used throughout Granite.Build documentation.

## Build system

| Term | Definition |
|------|------------|
| **Build** | An execution of a `build.yaml` file. Runs one or more targets to produce artifacts. |
| **Target** | A named unit of work in a build. Declares inputs, outputs, environment, and steps. Targets can depend on each other via bindings. |
| **Step** | An individual unit of execution within a target. Defined by a `step.yaml` with launcher configs for each supported environment. |
| **Artifact** | An input or output of a target — models, datasets, filesets. Referenced by URI. |
| **Binding** | A reference connecting one target's input to another target's output: `binding: upstream_target.output_name`. |
| **Template** | A reusable `build.yaml` pattern for common workflows (e.g. data generation + tuning + evaluation). |
| **Space** | A workspace providing isolation for teams or projects. Contains environments, steps, secrets, and build history. |
| **Environment** | A compute backend where steps execute. Defined in `environment.yaml`. Types: bash, docker, kubernetes, LSF, SkyPilot, RunPod. |
| **Step URI** | A reference to a step definition. Schemes: `space://steps/<name>`, `file://`, `git+ssh://`. |

## Jinja templating

| Term | Definition |
|------|------------|
| **`run_metadata`** | Per-run variables available in Jinja expressions (`targetsteprun_id`, `build_id`). |
| **`space.variables`** | Variables defined in the space's `space.yaml`, accessible in build.yaml templates. |
| **`bindings`** | Map of resolved input artifacts, accessible as `{{ bindings.<name>.binding.path }}`. |
| **`short_hash`** | Jinja filter producing a short alphanumeric hash — useful for unique artifact names. |

## Model operations

| Term | Definition |
|------|------------|
| **SFT** | Supervised Fine-Tuning — training on instruction-response pairs. |
| **LoRA** | Low-Rank Adaptation — parameter-efficient fine-tuning that adds trainable adapter layers while freezing base weights. |
| **EPT** | Extended Pre-Training — continued pre-training on domain-specific data before fine-tuning. |
| **Synthetic data** | Training data generated by LLMs (via tools like DiGiT) rather than collected manually. |

## Custom step patterns

| Term | Definition |
|------|------------|
| **BYOS** | Bring Your Own Step — custom code in a Git repo, executed via `setup_command` and `start_command`. |
| **BYOI** | Bring Your Own Image — a pre-built container image used as a build step. |
| **`$INPUT_PATH`** | Environment variable set at runtime pointing to the input artifact path. |
| **`$OUTPUT_PATH`** | Environment variable set at runtime pointing to where step output should be written. |
| **`dir_to_save`** | Config field specifying which part of `$OUTPUT_PATH` to capture as the output artifact. |

## Abbreviations

| Abbreviation | Meaning |
|---|---|
| CLI | Command Line Interface (`gb` command) |
| GPU | Graphics Processing Unit |
| COS | Cloud Object Storage (S3-compatible) |
| HF | HuggingFace |
| PR | Pull Request |
| PVC | Persistent Volume Claim (Kubernetes) |
| URI | Uniform Resource Identifier |
