"Build, validate, and troubleshoot RecBole Config objects, atomic
Scanned 9/9/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill configuration-and-data --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Configuration And Data?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-configuration-and-data-ee8f1d34)More formats (shields.io, HTML) on the badges page.
---
name: configuration-and-data
description: "Build, validate, and troubleshoot RecBole Config objects, atomic
datasets, load_col settings, and dataset/dataloader preparation flows."
disable-model-invocation: true
metadata:
disco-role: operating
license: MIT
---
# RecBole Configuration and Data
Use this sub-skill when the user is working with RecBole configuration objects,
YAML/dict/CLI overrides, atomic data files, dataset preprocessing, or split
DataLoader creation. Keep the answer focused on creating or diagnosing the
configuration/data layer; route model internals and training loops to siblings.
## Trigger requests
- "prepare a RecBole dataset" or "convert my data to RecBole atomic files".
- "fix my `load_col` config", "why is my `.user` file ignored?", or "load an
extra feature file".
- "explain RecBole atomic files", including `.inter`, `.user`, `.item`, `.kg`,
`.link`, and `.net`.
- "create a YAML config for sequential recommendation" or context-aware,
knowledge-aware, social, or general data preparation.
- "why does `Config` ignore my value?" or any conflict among YAML,
`config_dict`, command-line arguments, and defaults.
- "split and save dataloaders" or "load saved dataloaders" without asking for a
full training run.
- Data failures involving `data_path`, missing dataset directories, missing
`field:type` header suffixes, delimiter mistakes, YAML/list quoting, GPU
fallback, filtering/splitting knobs, or cache paths.
## Quick workflow
1. Identify the task family: general, context-aware, knowledge-aware,
sequential, or social. Use this to decide mandatory atomic files and the
model/dataset defaults likely to be injected by `Config`.
2. Determine the expected RecBole dataset name. The directory should contain
files named like `<dataset>.inter`; for most non-bundled datasets,
`data_path` is the parent directory and `Config` appends the dataset name.
3. Construct the configuration with:
```python
from recbole.config import Config
config = Config(
model="BPR",
dataset="my_dataset",
config_file_list=["config.yaml"],
config_dict={"load_col": None},
)
```
4. Apply configuration priority exactly: command line `--key=value` overrides
`config_dict`, which overrides later values merged from `config_file_list`,
which overrides RecBole defaults. If `model` or `dataset` are passed directly
to `Config`, those constructor arguments select the final model/dataset.
5. Validate atomic data before running RecBole. Use the bundled helper:
```bash
python scripts/validate_atomic_dataset.py /path/to/dataset-root/my_dataset \
--dataset my_dataset --task-family general
```
6. If the user asks to build runtime objects, use the documented data flow:
```python
from recbole.data import (
create_dataset,
data_preparation,
save_split_dataloaders,
load_split_dataloaders,
)
dataset = create_dataset(config)
train_data, valid_data, test_data = data_preparation(config, dataset)
save_split_dataloaders(config, (train_data, valid_data, test_data))
cached = load_split_dataloaders(config)
```
7. For errors, first inspect the resolved values (`config["data_path"]`,
`config["load_col"]`, `config["eval_args"]`, `config["device"]`) rather than
assuming the YAML file won.
## Config surfaces to cover here
- Five groups: environment, data, model, training, and evaluation. Discuss model
settings only as they affect data defaults; send model choice/customization to
`models-and-customization`.
- Environment/data keys: `use_gpu`, `gpu_id`, `data_path`, `checkpoint_dir`,
`save_dataset`, `dataset_save_path`, `save_dataloaders`,
`dataloaders_save_path`, `field_separator`, `seq_separator`, `load_col`,
`unload_col`, `unused_col`, `additional_feat_suffix`, `alias_of_user_id`,
`alias_of_item_id`, `alias_of_entity_id`, `alias_of_relation_id`, filtering
knobs, benchmark/pre-split knobs, and the shape of `eval_args`.
- Training/evaluation keys only enough for routing and splits: `epochs`, batch
sizes, `train_neg_sample_args`, `eval_args`, `metrics`, `topk`,
`valid_metric`, `repeatable`, and evaluation modes. Route full training,
checkpointing, metrics interpretation, HyperTuning, Ray, and significance
tests to `training-evaluation-and-tuning`.
## Atomic data rules to enforce
- Headers must use `field_name:field_type`; valid types are `token`,
`token_seq`, `float`, and `float_seq`.
- Default column delimiter is a tab. Sequence-valued cells use the sequence
separator, usually a single space.
- Mandatory files by task family:
- general: `.inter`
- context-aware: `.inter`, `.user`, `.item`
- knowledge-aware: `.inter`, `.kg`, `.link`
- sequential: `.inter`
- social: `.inter`, `.net`
- `load_col: null` loads all existing standard files used by the dataset class.
If `load_col` is a dict and a suffix is absent, RecBole treats that file as
not loaded. Include every required source and field explicitly, or use `"*"`
for all fields in a source.
- Do not set `load_col` and `unload_col` for the same source in normal guidance.
## Key references and helper
- See [configuration-and-data.md](references/configuration-and-data.md) for
config priority examples, atomic file tables, `load_col` patterns, dataset
construction, saving, and loading.
- See [troubleshooting.md](references/troubleshooting.md) for symptom/cause/fix
tables, including missing header type suffixes and override surprises.
- Use [scripts/validate_atomic_dataset.py](scripts/validate_atomic_dataset.py)
to check local atomic files without importing RecBole.
## Boundaries and sibling routing
- Route actual model training/evaluation loops, checkpoint semantics, metric
selection strategy, HyperTuning, Ray integration, and statistical tests to
`../training-evaluation-and-tuning/SKILL.md`.
- Route model family selection, custom models, trainers, samplers, dataloaders,
metrics, transforms, and extension APIs to
`../models-and-customization/SKILL.md`.
- Do not ask a future agent to reopen RecBole source files for the topics in
this sub-skill; the bundled references and script are the runtime evidence.
## Answer checklist
Before finalizing a configuration/data answer, include:
- Expected dataset directory and file names.
- Minimal YAML or `config_dict` with correctly quoted lists/dicts.
- Resolved priority explanation when values conflict.
- `load_col` or `unload_col` behavior for every required suffix.
- Atomic header remediation if a file does not use `name:type` columns.
- Whether saved dataset/dataloader caches are being created, loaded, or ignored.
- Clear routing note if the user is really asking for training, tuning, or model
customization.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!