CoolFace
Datasetpublic

BlueAquilae/blackpearl-pack-shaped

Blackpearl pack-shaped typed decisions Complement to LocalLLaMA/typed-decisions, not a replacement. Same columns the Laya Kaggle notebook already consumes: JSON strings state, questions, gold. Extra: workflow = question form (choice_closed, noul_fanout, role_catalog, …). The serialized model vocabulary is deliberately generic: state.task is the source work item and a link question carries other_task. Pearl remains the application's Dart and storage model, but never appears as a… See the full description on the dataset page: https://huggingface.co/datasets/BlueAquilae/blackpearl-pack-shaped.

sourceHugging Faceapache-2.0updated 4d agoView on Hugging Face
0likes117downloads
Dataset Card

Blackpearl pack-shaped typed decisions

Complement to `LocalLLaMA/typed-decisions`, not a replacement.

Same columns the Laya Kaggle notebook already consumes: JSON strings state, questions, gold. Extra: workflow = question form (choice_closed, noul_fanout, role_catalog, …).

The serialized model vocabulary is deliberately generic: state.task is the source work item and a link question carries other_task. Pearl remains the application's Dart and storage model, but never appears as a token in a Laya prompt. This keeps the mini-model focused on task semantics rather than a product name.

Version 3 keeps that geometry and splits it by business field. Each field is a directory under domains/<field>/ with the same four splits, so a label or parent edit does not require rereading the other fields. polarity is positive (the field applies and the completion is the real one), negative (a tempting wrong completion: ancestor, sibling, other scale), or neutral (the field does not apply: none, or every noul stays false). head is the Laya answer type choice, noul, or score.

The current field-first curriculum weights type, priority, and labels at 15 source cases to one in train. Labels are a primary create-time decision: their fan-out is deliberately retained so semantic membership is not diluted by relation and skill domains. This product-demand bias stops at the train boundary: calibration, validation and test are independent uniform draws (8 cases per domain in the 1200-row pack). The sampling block in manifest.json records that distinction; domain shards preserve the exact same split assignment as the union.

Hierarchy is not one relation. parent is the direct part-of edge: the nearer project wins over the program that contains it, a program is not a child of its screens, and a sibling is not a parent. depends is the direct blocker, not the ancestor further upstream and not the parent. next follows the depends edge that just opened; closing a parent does not select its children. relates and caused stay outside the tree.

Load one field without the union:

python
from datasets import load_dataset
parent = load_dataset(
    "parquet",
    data_files={
        "train": "domains/parent/train.parquet",
        "validation": "domains/parent/validation.parquet",
        "calibration": "domains/parent/calibration.parquet",
        "test": "domains/parent/test.parquet",
    },
)

The default config is still the union the notebook trains on.

The rows still vary the question-pack geometry without importing store content: English and French prompt variants, balanced issue types, the canonical project type, real none choices, option order, choice cardinalities 2/3/5/8/12, fan-out cardinalities 4/8/16/24, skills, and hard-negative relation pairs. calibration is never used as training data; validation is for model selection and test remains the final held-out split. The generation seed is recorded in manifest.json so each intentional regeneration is visible.

This is ticket ontology / pack layout (type, priority, effort, parent+none, assignee roles, labels noul, depends/relates/caused, next). Label cases send a task plus one candidate label name: literal matches, paraphrases, structured names, close negatives, multi-label and none. It is not a dump of any Prolly store: no real users, real label catalog, BP- ids, or head hashes.

The skills slice is capability-led: each task carries a bounded 4–8 skill catalog, rather than every available skill. Titles and descriptions make the technology or operation explicit (flutter, postgresql, openapi, security-review, git, …); there are both no-specialist-skill tasks and multi-skill tasks. The task type is deliberately absent from skills states, matching the live create prompt and preventing a no-skill shortcut.

Mix at train time

python
from datasets import load_dataset, concatenate_datasets

ours = load_dataset("BlueAquilae/blackpearl-pack-shaped")
td = load_dataset("LocalLLaMA/typed-decisions", "all")
train = concatenate_datasets([ours["train"], td["train"]])

Calibration must stay ours["calibration"] (do not fit temperatures on train).

Rebuild locally

bash
just finetune-push 6

Train

No CUDA on Apple Silicon. After this dataset is on the Hub, run laya_finetune_pack_shaped.ipynb on Colab GPU T4 (or Kaggle T4×2). The kernel loads BlueAquilae/blackpearl-pack-shaped by default.