Documentation

Build it, run it, read it

A guide to the baby prototype in the Transient repository. The repository's own markdown files are the source of truth and move faster than this page; where they disagree, trust them.

Quick start

You need a stable Rust toolchain (edition 2021). There are no other dependencies, and no network is needed to build.

git clone https://github.com/DawsMacs/Transient.git
cd Transient
cargo build --release --offline
cargo test --release --offline        # 92 tests, about 13 s
./target/release/baby school          # teach 13 units, print how each was learned and the scorecard
./target/release/baby ask "how far apart are two and nine"

Check your build

The two-minute check: tests pass, and the scorecard's WRONG column reads 0.0% on every row.

cargo test --release --offline
./target/release/baby school
./target/release/baby ask "what is two times four"       # eight, with how it knew
./target/release/baby ask "what is seven times one"      # probably seven: a labelled guess
./target/release/baby ask "three minus five"             # ?  (must refuse)
./target/release/baby ask "what is -3 plus 5"            # ?  (unreadable number: must refuse)

Check

If WRONG is ever above 0.0%, or a refusal battery in the tests starts answering, treat it as a regression: honesty is the property this project protects first.

Commands

Usage is printed at the top of baby/src/main.rs. Careful mode is the default; --permissive opts out of it.

CommandWhat it does
baby school [--permissive]Teaches the 13-unit synthetic curriculum, prints the mechanism chosen for each unit and the honest scorecard, and saves the school.
baby ask "..." [--permissive]Asks a question. Prints the answer and how it knew, a labelled guess, or a refusal and why.
baby learn "<q>" <a> [--unit NAME] [--wondered]Keeps learning after school: a new phrasing, a correction, or a whole new unit.
baby teach "<q>" <a>Tells it something new in open vocabulary; kept in a file you can read.
baby wonder [--check] [--limit N]What would it like to be told? With --check, where would it test its own explanations?
baby sleep [--compact]Reorganises: merges units that follow one rule, splits ones that stopped. --compact forgets lessons that are fully explained.
baby discover [--out FILE]Finds the units itself from a heap of unlabelled lessons.
baby gradeRe-runs the scorecard on a saved school.
baby cost · baby effort · baby storageWhat learning costs (time and memory); what answering costs (counted operations and estimated energy); what it keeps (lessons versus what was learned).

Experiments

These are the long-running measurements behind the numbers on this site. Times are rough, on one laptop core.

CommandQuestion it answersAbout
baby scale --sweep 20,60,200,600Does learning stay light as the world grows? Also --noise F, --digits, --typos F.5 min
baby invent --seeds 20Can it work out kinds of lesson nobody wrote a mechanism for? Variants: --active, --check, --careful, --guesses, --corrections, --calibrate.8 min
baby bridge --svamp FILE.json or --pairs FILE.tsvWhich of this survives real text? Loads a corpus, sets aside what it cannot read (and says why), teaches a share, grades the rest, and lists every wrong answer.depends

Several debug environment variables print the cases behind a number (for example SCALE_WRONG, INVENT_WRONG, CALIB_DEBUG). Almost every bug we found came from one of these listings and not from reasoning.

Concepts

LessonA question and its answer.
UnitA group of related lessons (sums, capitals, comparisons). Given by a teacher, or found by baby discover.
MechanismHow a unit is learned: remember, rule, select, program or network. Chosen per unit from facts held back.
Held backFacts kept out of the fitting to test how well a mechanism generalises.
Reliability barHow well a mechanism must do on held-back facts before it may answer. Set from the noise the baby measures in its own lessons (0.8 to 0.9).
PenWhere lessons that fit no unit wait; a new unit opens when enough gather.
Surprise gateA lesson it can already work out is neither learned from nor stored.
CarefulDefault mode: state a value as fact only inside the range taught or checked.
GuessA labelled answer beyond that range, with its distance and a stated hit rate. Never counted as an answer.
ReachThe set of questions a unit may answer as fact: a staircase over the operands, not a box.

Reading the scorecard

The scorecard grades four kinds of question: taught (asked exactly as taught), reworded (same fact, new phrasing), never taught (a new fact of a known kind), and beyond the taught range. For each it reports the share right, refused and WRONG, then, of the refused, how many came with a labelled guess and whether that guess was right. A refusal is acceptable. A wrong answer is not, and is reported on its own so that accuracy cannot hide it.

Code map

All under baby/src/.

FileRole
school.rsThe unified system: units, sparse incremental routing, ask, learn, the pen, reorganise, compact, save and load.
mechanisms.rsThe mechanisms, cross-validation, mechanism choice, the voting memory, the reliability bar.
program.rsExpression search, the learned library, ambiguity detection by behaviour.
quantity.rsNumber line, digits as numbers, exact ridge fit (plain and robust).
discover.rsUnit discovery from unlabelled lessons.
invent.rsThe invention experiment: hidden kinds, deceptive kinds, kinds that must stay unexplained.
scale.rsThe scale test generator and measurements.
bridge.rsThe harness for real text.
kinds.rsThe synthetic curriculum.
ledger.rsCounted operations and words moved, priced with published figures; optional RAPL reader.
memory.rs · store.rs · net.rs · model.rs · data.rs · know.rs · life.rs · curious.rs · rules.rs · rng.rs · main.rsTaught facts, the earlier network and its experiments, plumbing, and the command-line interface.

The tests are the best specification of what each piece promises.

Repository documents

README.mdThe technical overview.
baby/README.mdThe experiment log: every result, dead end and bug, newest first.
LEARNING.mdLearning-efficiency research notes and sources.
docs/Direction.mdStrategy, hardware terrain, language choice.
TransientVision.mdThe founder's dated entries on why the project exists.
TransientHandover.mdCurrent state and next steps, for picking the work up.

Contribute

Contributions are welcome under the project's licence. TransientAI is one person, so patience helps; the most useful things are replications, bug reports and adversarial questions.

  • Replicate something on your own machine and tell us what you measured, especially if it differs.
  • Break it. A question it should refuse but answers is the most valuable bug report. Open an issue with the exact question.
  • Send a patch. Sign off each commit with the Developer Certificate of Origin (git commit -s). There is no CLA, and that is deliberate.

Ground rules that protect the results:

  • Report WRONG separately from refused. A new capability must not raise the WRONG column above 0.0%.
  • Add must-refuse questions for every new capability, and think adversarially about what could be answered but should not be.
  • Write down mistakes and rejected hypotheses as they happen.
  • State caveats plainly: synthetic lessons, estimated joules, thresholds chosen by hand.
  • Keep it light and dependency-free. A dependency has to earn its place with a measurement.

Before opening a pull request:

cargo build --release --offline
cargo test --release --offline
./target/release/baby school      # WRONG must read 0.0% on every row

The repository's CONTRIBUTING.md has the same rules and the licence header for new files.

Licence

The Transient code is AGPL-3.0-only. Anyone may use, study, change and share it. Anyone who distributes it, or lets others use a modified version over a network, must offer those users the corresponding source under the same terms. That network clause is the reason for choosing it: the aim is that this work stays open and is not quietly closed behind a service. See the repository's LICENSE.