인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
데이터 및 연구 · SKILL.md

configuration-and-data

configuration-and-data

Build, validate, and troubleshoot RecBole Config objects, atomic datasets, load_col settings, and dataset/dataloader preparation flows.

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill 문서

GitHub

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:

    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:

    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:

    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

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.
저장한 Skills