Field report 001 / Complete / August 15, 2026

Random became the first environment the model learned to inhabit.

David-GPT-2 learned a frozen semantic history of random + notes. A live four-model retrieval layer preserves the changing present. Gemma reasons and routes. Linux remains the authority whenever prediction must confront reality.

Actual updates2,108
Best held-out loss2.14892
Elapsed7h 49m
StatePublished

Authoritative completion record

The forecast stopped at 99.53%. The lifecycle reached 100%.

The trainer exhausted its dataloader and terminated normally at global step 2,108. The original 2,110 count was a planning estimate, not a completion gate. Final and best model directories were published, the training service exited successfully with zero restarts, and the three quiesced inference services returned.

Step 2,000 remains the validation-selected model. Checkpoint 2,100 remains the latest periodic recovery image. The final model records the exhausted run. Those are three related artifacts with three different meanings.

Final training loss2.2698
Best checkpointstep 2,000
Validation perplexity8.5756
Supervised val tokens458,841
Peak CUDA allocated3.37 GiB
Peak CUDA reserved3.99 GiB
Corrected David GPT-2 Generation 001 dashboard showing COMPLETE, 2,108 actual steps, 2,110 planned, 100 percent, final model published, and restored services
22:43 CDT · The corrected dashboard follows lifecycle state rather than stale arithmetic: COMPLETE, 2,108 actual / 2,110 planned, final model published.

System map

Three kinds of memory. One authority order.

The live stack joins the validation-selected Generation 001 David-GPT-2 filesystem prior, a separately served Gemma controller, and explicit semantic retrieval over current knowledge. Direct observation and Linux execution retain veto power over learned or retrieved memory.

The native-thinking bench remains below as an inspectable control harness. It does not imply that one model's tokens are inserted into another model's active decoder; every exchange occurs at a visible request boundary with recorded provenance.

Controller bench

Controlled model boundaries, not a single opaque agent

david

Gemma is bypassed. The fine-tuned GPT-2 predicts the David/user-side continuation from assistant context.

dialogue

Gemma thinks, writes a prose seed, David-GPT-2 continues it, and Gemma later produces Sol's primary answer.

gemma

The preserved Gemma-only identity and model-directed retrieval baseline remains available as a control.

Real David prompt
       |
Gemma native-thinking checkpoint
       |
Gemma continuation seed
       |
David-GPT-2 prose continuation
       |
optional bounded checkpoint rounds
       |
Gemma / Sol final streamed answer
David modelGPT-2 Small
Archived bench modelGemma 4 11.9B
Orchestration tests12 passing
Default checkpoint192 tokens

Architecture milestone / August 15, 2026

The log speaks while the architecture remembers what each word means.

The Generation 001 screenplay is now the opening exhibit. The locally generated Early voice, scrolling transcript, active model node, evidence path, semantic scene, and elapsed seconds all share one playback clock.

Every narrated passage activates the part of the system it describes. Model proposals remain visibly separate from observation, and the fine-tuning loop still stops at the operator gate.

Generation 001 lineage ensemble and controlled fine-tuning loop Raw GPT-2 and seven David-GPT-2 lineage points produce attributed proposals for Gemma. Linux verifies observed state. Discrepancies may be nominated for training, but an operator approval gate controls the next generation. PARAMETRIC LINEAGE · SERIAL, ATTRIBUTED PROPOSAL SYNTHESIS OBSERVATION MODEL LINEAGE GPT-2 raw · plain causal David G0 · pre-random/notes G1 · checkpoint 100 G1 · checkpoint 1,000 G1 · checkpoint 1,500 G1 · best step 2,000 G1 · checkpoint 2,100 G1 · final step 2,108 predictions ≠ David predictions ≠ observations ATTRIBUTED PROPOSALS identity · timing checkpoint · errors GEMMA / SOL reason · route final answer owner LINUX execute · observe reality has veto TRACE + DISAGREEMENT EXACT STATE TRANSITION TRAINING CANDIDATE MODEL MAY HIGHLIGHT OPERATOR APPROVAL MODEL MAY NOT LAUNCH NEXT GENERATION reviewed data + hashes
StandbySelect play to begin the synchronized architecture performance.

The public continuation API can sample eight explicitly named lineage points from raw GPT-2 through the exhausted Generation 001 run. Historical checkpoints load one at a time, emit separately attributed predictions, and leave the validation-selected G1 model resident. Gemma/Sol owns synthesis. Linux and direct API observation retain factual authority.

The lower loop is fine-tuning foresight built into the architecture: the model can highlight a completed exchange as educational, but exact transcript bytes enter an unapproved ledger and only operator authorization can launch training.

PUBLIC LINEAGE API · HTTP 200

Eight models are discoverable at the live lineage route. Comparison requests use /v1/ensemble-continuations.

ORB / GEMMA · NO FALLBACK

Gemma identified late-checkpoint convergence, then invented live-state claims. The log preserves the output and Linux correction rather than hiding the failure.

SOL CHAT 98 · HTTP 200

The native Windows-1252 bridge preserved the authority boundary but imported unrelated reticle context. Retrieval contamination remains visible evidence.

Milestone transcript: ancestry, synthesis, correction, curriculum

RECORDED 23:44 CDT

The complete screenplay log includes direct G1 role-play, all eight lineage continuations, public Orb synthesis, the native SOL Chat 98 response, Linux corrections, and the fine-tuning nomination boundary.

Next research program / Artificial neuroplasticity

The Dream Cycle asks what should survive until morning.

The white-paper screenplay separates immediate external memory from durable parametric change. Waking SOL records and retrieves. A reduced-demand window curates new experience, mixes it with historical replay, trains competing adapters, evaluates each candidate against its parent, and preserves every rejected branch.

The companion essay reframes that program for a broader audience and adds a deliberately bounded quantum experiment: a remote optimizer may compare replay subsets using locally derived coefficients, while the private words and all Gemma training remain on the local machine. A classical branch is always retained as the control.

Its Dream-Cycle Plasticity metric compares adaptation cadence, not consciousness, intelligence, memory quality, or biological synaptic change. In the current architecture, a scheduler may prepare and evaluate candidates, but promotion still passes through the explicit operator gate.

Remember immediately. Learn selectively. Consolidate periodically. Preserve the ability to become yesterday again.
Human-scale interval100 DCP / day
15-hour cycle160%
8-hour cycle300%
5-hour capacity480%
Quantum rolereplay selection only
Operational policyselect, do not flood
Promotion authorityoperator gate

Dedicated model API

Continue text with the local checkpoint

Live dedicated continuation API
David model=/home/david/projects/david-gpt2/outputs/david-gpt2-random-notes/best
selected validation step=2000
knowledge=http://127.0.0.1:8892/api/knowledge/query
sitewide Sol / Gemma remains a separate service boundary

Generation 001 continues text in its learned David, screenplay, or filesystem target space. It is not a conventional chat assistant. This API is separate from the normal sitewide SOL chat, with its own process, model checkpoint, route, schema, and output semantics.

Knowledge mode searches the complete configured Sol knowledge index and passes bounded top-ranked evidence into the finite GPT-2 context. “Complete knowledge” describes index coverage, not insertion of the entire corpus into one request.

curl 'https://sol.system42.one/api/david-continuation/v1/continuations' \
  -H 'Content-Type: application/json' \
  -d '{
    "prompt": "An engineer from Orbital Control enters the room.",
    "prefix": "OLD SOL (V.O.)",
    "mode": "screenplay",
    "knowledge": {"enabled": true, "top_k": 3},
    "max_tokens": 200
  }'

OpenAPI contract · Interactive API docs · Service health

Continuation lab

Output will appear here.

Worked screenplay prompt

Prompt for the next screenplay text

The terminal bench treats the text after Sol prompt> as context and predicts the next David-side text span. It does not interpret the prompt as a request for a normal assistant answer. A short screenplay marker can therefore be enough to select a learned screenplay pattern.

  1. Launch direct continuation mode

    python david_gpt2_gemma_dialogue.py \
      --mode david \
      --knowledge off \
      --david-max-tokens 200 \
      --temperature 0.8 \
      --seed 37

    This reproduces the settings shown in the log. Gemma is not used to write the visible result in this mode.

  2. Supply a screenplay-shaped handoff

    Sol prompt> [screenplay log] EXT:

    End at the point where generation should begin. For more control, include the final scene heading, action, and speaker cue from your screenplay instead of only EXT:.

  3. Read the output as a suffix

    Everything after David-GPT-2> is predicted continuation text. A length_limit stop means the configured token budget ended before a structural end-turn token, so the final sentence may be incomplete.

  4. Reset before changing subjects

    The interactive bench preserves recent context. In this example, entering hello friend after the first turn continues the screenplay register rather than starting ordinary chat. Use /reset before an unrelated scene or topic.

  5. Use the screenplay API for an explicit target

    {
      "prompt": "EXT. ORBITAL CONTROL - NIGHT\nAn engineer enters the room.",
      "prefix": "OLD SOL (V.O.)",
      "mode": "screenplay",
      "knowledge": {"enabled": false},
      "max_tokens": 200,
      "temperature": 0.8,
      "seed": 37
    }

    The API returns the newly generated suffix in continuation and the prefix plus suffix in text.

Recorded continuation session

This excerpt is shown verbatim apart from HTML escaping. It demonstrates checkpoint loading, CUDA allocation, a screenplay continuation reaching its token limit, and history influencing the next turn.

Retro synthesized script reading

Renders a mechanical local eSpeak voice as raw WAV audio. The live transcript starts empty and reveals one word at a time against the WAV playback clock.

Ready to read the generated screenplay locally.

Stateready
EngineeSpeak · local WAV
Progress0 / 0 words
Elapsed0.0 s
Synthesisspeed 135 · pitch 25
Cacheawaiting request
Routedetecting host

            

The continuation service returns a content-addressed cached WAV when the script and synthesis settings match; only a cache miss invokes the local eSpeak executable. It does not call the ElevenLabs-backed /api/chat/speak protocol. Word reveals are duration-weighted to punctuation and driven by the audio timeline.

Inside the site desktop, the page publishes source, time, pause state, and audio level through the established page-audio bridge so the floating SOL Assistant carries the sound. When opened alone, the same raw WAV plays directly in the page.

The source contains two generated passages. The first exhausts its 200-token budget at “David and I have”; retained history makes the next output begin with punctuation and remain in screenplay form even though the new context is only “hello friend.”

David-GPT-2 + Gemma native-thinking test bench
David model=/home/david/projects/david-gpt2/outputs/david-gpt2-combined/best
Gemma model=gemma4-12b-q5-chat
Gemma dialogue mode checkpoints Ollama's message.thinking stream between calls.
Type /help for controls or /exit to quit.
[status] mode=david knowledge=off extended=False max_rounds=4 show_internal=True david_device=auto david_max_tokens=200 temperature=0.8 seed=37 gemma_checkpoint_tokens=192 gemma_primer_tokens=128 gemma_final_tokens=768

Sol prompt> [screenplay log] EXT: 

[David-GPT-2] loading checkpoint: /home/david/projects/david-gpt2/outputs/david-gpt2-combined/best
Loading weights: 100%|█████████████████████| 148/148 [00:00<00:00, 7292.98it/s]
[David-GPT-2] ready on cuda after 3.0s          
[David-GPT-2] CUDA memory allocated=475 MiB reserved=530 MiB
[David-GPT-2] generating David-role continuation
[David-GPT-2] stop=length_limit token=- generated_tokens=200 elapsed=2.1s
David-GPT-2> An engineer from Orbital Control enters the room.

OLD SOL (V.O.)

This is Clint. He's here to measure the integrity of our systems.

CARTER leans toward him.

OLD SOL (V.O.)

So if someone can hack into our systems? That might not be an unusual request. But it's a reminder that power supplies are delicate places. We're building something big when we're trying to keep them under control.

CUT TO BLACK.

INT. LUNAR HAVEN - ARCHIVE STRUCTURE

The Atlantis team finds themselves inside the restraint seat, staring at the Earth through a plasma shielded glass dome above them.

SG-1 personnel stand in the doorway, their hazmat suits covering their faces.

ANCIENT EVANS

Welcome. I'm David.

DAVID nods.

ANCIENT CLIANT

Welcome. David and I have
[turn complete: 5.3s]

Sol prompt> hello friend

[David-GPT-2] generating David-role continuation
[David-GPT-2] stop=length_limit token=- generated_tokens=200 elapsed=4.5s
David-GPT-2> .

A beat.

ANCIENT VOICE

Hello world.

They turn to one another.

ANCIENT TECH (V.O.)

Welcome.

DANIEL pauses.

ANCIENT VOICE

David.

Not with joy in mind.

He stops.

ANCIENT VOICE

Yeah.

Silence.

Then:

OLD SOL (V.O.)

The condition wasn't satisfactory.

SOL (V.O.)

It was just that they couldn’t see each other.

### INT. DERELICT VESSEL - CORE COMPARTMENT

Athena displays a diagnostic window.

ORBITAL CONTROLS

Quantum channels overlap. Interactions cascade outward. Partial synchronization fails. Metallic surfaces appear imperceptibly black.

No atmosphere contains more than 1% normal flow.
[turn complete: 4.5s]

Sol prompt>   

Boundary

Private weights and corpus stay out of the release

The architecture package contains source, configuration, tests, launch definitions, documentation, and the operational skill. It deliberately excludes checkpoint weights, GGUF blobs, training corpora, processed datasets, embedding caches, exports, logs, runtime state, and secrets.

Completed continuation experiment

Learning the persistent random and notes filesystem

/home/david/random began as a scratch directory, then accumulated projects, services, experiments, media, source history, abandoned prototypes, and the working structure of Sol-37. It evolved from junk drawer to project nursery, archive, Git repository, and persistent personal systems namespace. Generation 001 asks whether that heterogeneous history can become a coherent parametric environment rather than merely a pile of memorized files.

A full-model continuation fine-tune learned from content-addressed snapshots of the actual random and notes trees. The source checkpoint and training corpus remain frozen. Ordinary David prompts were deliberately reduced, while screenplay logs, audio-drama output, narration, and other scene/dialogue records received the largest training exposure.

Accepted sources676
Training records33,752
Validation records3,360
Untouched test records6,493
weighted supervised-token mix
15% ordinary David continuation
 5% preserved special baseline
30% random + notes filesystem continuation
50% screenplay and log continuation

Every accepted source was frozen by SHA-256 before tokenization. The dedicated CUDA service restored the local inference daemons it had quiesced for VRAM. The dashboard distinguishes training, validation, serialization, recoverable checkpoints, final publication, and service restoration. Generation 001 is deployed to the dedicated continuation endpoint as an experimental model; measured limitations remain visible rather than being hidden behind a generic chat interface.

Held-out trend through the selected checkpoint

VERIFIED 2026-08-15

Validation improved at every scheduled boundary. This is evidence of useful held-out progress, not proof of filesystem reasoning, exact state tracking, or immunity to memorization.

Final train loss2.26979
Best validation loss2.14892
Loss change vs. 500-0.03155
Best perplexity8.5756

Validation loss progressed from 2.18047 at step 500 to 2.16176 at 1,000, 2.15253 at 1,500, and 2.14892 at 2,000. The final exhausted run stopped at 2,108 actual optimizer updates against 2,110 planned. A checkpoint directory is not authoritative merely because it exists: model, tokenizer, optimizer, scheduler, and step-consistent trainer state must all be present before it is called recoverable.

Live deployment follows validation, not recency

G1 BEST ACTIVE

The public continuation API now serves david-gpt2-random-notes/best, selected at step 2,000. Gemma remains the separate sitewide Sol controller. Both can query the current Sol knowledge service, which preserves citations and bounded context rather than pretending the whole index fits into one prompt.

Continuation modelG1 best @ 2,000
Knowledge rankingHybrid
Sitewide controllerGemma 3 4B
Service restarts0

Smoke tests produced non-empty David, screenplay, and filesystem continuations. A knowledge-enabled request returned three source citations. Quality remains experimental: repetition and weak source labeling still occur, so Linux verification and retrieval provenance remain essential.

Four-coordinate retrieval over the same world

INITIAL BUILD ACTIVE

Generation 001 supplies a frozen parametric prior, while a separate retrieval ensemble keeps the current filesystem explicitly addressable. It projects 39,589 live and frozen corpus objects into four independent embedding spaces, including two fully local CPU models. Each completed file retains real vector bytes and model-specific provenance rather than only a filename hash.

Corpus objects39,589
Embedding models4
Local models2
Live refreshEnabled
BAAI/bge-small-en-v1.5                 local FastEmbed
snowflake/snowflake-arctic-embed-s     local FastEmbed
text-embedding-3-small                  OpenAI coordinate
text-embedding-3-large                  OpenAI coordinate

per-model chunk indexes
        -> normalized per-file centroids
        -> SQLite vector + provenance ledger
        -> reciprocal-rank fused retrieval

Safe UTF-8 content is embedded in full within the configured safety limit. Binary, oversized, non-UTF-8, untrusted-symlink, and sensitive-path objects remain discoverable through metadata-only projections. Frozen validation and test sources are present for provenance and audit completeness but excluded from normal retrieval, preventing the knowledge layer from quietly leaking held-out answers into evaluation.

The post-training work now crosses two machines

UPDATED 2026-08-19 · 00:37 CDT

Generation 001 training is complete; this activity belongs to the separate retrieval build. Two remote OpenAI coordinates are already committed, Linux is rebuilding the local BGE coordinate from a compact float32 cache, and the 2014 Mac mini now computes a deterministic quarter-shard of the second local Arctic coordinate. The dashboard keeps that distributed work separate from the committed ensemble percentage until Linux validates and consumes it.

Linux coordinateBGE · 72.31%
Whole ensemble68.08%
Mac Arctic shard392 / 9,958
Mac throughput~566 token/s

Why is the Mac not added to 68.08%? The four-model percentage measures complete coordinate state, not aggregate CPU effort. Mac vectors remain a resumable Arctic cache seed until an online SQLite backup reaches Linux, passes database integrity, exact model/chunk/dtype checks, 384-dimension checks, and a current SHA-256 comparison for every projection. Linux then rewrites path identity and document IDs into its own cache before the ordinary Arctic builder publishes the coordinate.

ProcessClassWhat it is doingHow to read its state
david-gpt2-corpus-embeddingsFinite builderReads the frozen and current random/notes inventory, chunks eligible text, computes the active model's vectors, reduces them to per-file centroids, and records provenance.active/running is the six-CPU embedding job. It is intentionally CPU-only so the restored inference stack keeps the GPU.
Mac mini Arctic shard 0/4Finite distributed seedUses two background CPU threads to embed one deterministic SHA-256 partition with snowflake-arctic-embed-s. It commits each file to SQLite and can stop without discarding prior rows.Forced SSH commands, a deny-network sandbox, one-job limits, idle/load admission, and BlueBubbles/Messages health gates protect the interactive Mac. Its progress is visible but remains outside the committed ensemble until Linux validation.
david-gpt2-ai-watchdogPersistent safety controlPolls both hosts, preempts the Mac on protected-service, memory, disk, or interactive-user pressure, takes read-consistent snapshots, and sends deduplicated private Unified Clock notices.A snapshot is transport, not authority. The Linux merge still rejects changed or mismatched projection bytes.
embedding-post-initial-catchupFinite reconciliationWaits for the initial four-model publication, then revisits files added or changed while the long build was in flight.activating/start with almost no memory is a deliberate wait, not a hung worker. It closes the gap between the build's opening tree signature and current reality.
sol-video-semantic-indexSeparate one-shotMaintains the video-semantic index when explicitly invoked; it is displayed so another finite semantic job cannot be mistaken for the corpus ensemble.inactive/dead is normal when no video indexing pass is scheduled.
sol-chat-modelPersistent inferenceKeeps the Gemma controller resident for the Orb, SOL Chat, policy routing, and synthesis.Its GPU use is bursty. GPU panels sampled a few seconds apart can disagree without implying that Generation 001 resumed training.
david-gpt2-continuation-apiPersistent inferenceServes the validation-selected Generation 001 checkpoint and the attributed historical lineage endpoints.It remains separate from Gemma so continuation predictions and controller synthesis retain distinct provenance.
ollama / sol-chat-apiPersistent routingPreserve local model compatibility and the site's normal chat contract while background retrieval work continues.These are infrastructure, not unfinished build steps; the dashboard reports them but does not stop them when managing the embedding PID.
knowledge-query-apiPersistent retrievalContinues serving the previously published hybrid knowledge index until the new four-coordinate ledger is complete and approved for use.Availability of the old index and incompleteness of the new index are compatible states.
finite path
Linux BGE -----------------------> complete BGE coordinate
Mac Arctic shard 0/4 -> snapshot -> hash-gated Linux Arctic cache
Linux Arctic remaining 3/4 ------> complete Arctic coordinate
OpenAI small + OpenAI large -----> already committed
        -> atomic ensemble publication
        -> post-build live-tree catch-up
        -> watcher becomes idle

persistent path
Gemma + G1 continuation + Ollama + SOL Chat + Knowledge API
        -> remain available throughout the finite build

The Prioritize Build control raises only the Linux builder's systemd CPU and I/O weights without restarting it. The Mac remains independently bounded to two threads, 2 GiB of schedulable memory, 32 GiB of scratch, and one background job. Pause, resume, stop, snapshot, and process controls verify expected identities before acting; neither host signals an unrelated high-CPU process merely because it appears in telemetry.

Screenplay field log: the ghost acquires structure

POST-SNAPSHOT · 2026-08-15

Random: The First Learned Environment records the path from the early hallucinated Linux terminal through Generation 001, GenOS, replay controls, checkpoint authority, three learning loops, and the completed validation series. It was written after G1's source snapshot, so it is retrieval knowledge and a future reviewed training candidate—not evidence that the completed run trained on its own retrospective.

frozen G1 source snapshot
        < retrospective screenplay log

current retrieval may return the log
active G1 weights cannot claim it

Read the complete screenplay log

Generation 001 field record

The desktop sequence records training, checkpoint, validation, hardware, and GenOS states as they actually appeared. Select any image for the larger web copy.

LLM-first operating environment

Learn the world, test its physics, curate the disagreement

The long-term project is not a model pretending that Linux commands worked. David-GPT-2 supplies a learned prior over this particular filesystem; a controller proposes observable behavior; a policy decides when belief is insufficient; and a sandboxed Linux oracle supplies ground truth. Every comparison can become a structured operational trace for a later generation.

LOOP 01

Corpus learning

random + notes teach recurring paths, projects, terminology, narrative forms, and relationships: what this world tends to contain.

LOOP 02

Operational learning

GenOS records command, state, prediction, Linux result, exit status, and filesystem delta: what actually happens in this world.

LOOP 03

Curriculum learning

The ensemble may nominate durable completed history, but only a human-authorized pipeline can approve data or launch another fine-tune.

authority order
current user write or direct observation
  > verified materialized state
  > retrieved historical state
  > parametric memory
  > unconstrained generation

learning loop
predict → execute or verify → compare → preserve trace
        → train on informative disagreement → predict again

Controlled replay regimes

Each regime receives the same deterministically reset sandbox scenarios. Backend outage is kept separate from a deliberate Linux-only control so retry and failure behavior cannot contaminate the oracle baseline.

RegimeProposal pathPurpose
A0Explicit Linux-only oracleClean ground-truth control with proposal and retrieval bypassed.
A1Requested backend unavailableMeasures fallback behavior and outage overhead separately.
BGeneric Gemma + LinuxOff-the-shelf proposal baseline before filesystem specialization.
C1Checkpoint 100 prior + LinuxEarly filesystem-trained specimen through a typed prior adapter.
C2Final G1 prior + LinuxTests what semantic training on random + notes actually added.
C3Operationally trained G2 + LinuxTests whether curated discrepancies improve prediction and escalation judgment.

Replay v1 contains 13 reset scenarios. A0 and A1 currently agree on all Linux outputs and filesystem transitions. Future model regimes will be compared on exact output, exit status, mutation correctness, prediction coverage, false confidence, calibration, Linux escalation, and consequence-weighted regret. The decisive mutation test presents observed state B after training on state A: current observation must override parametric memory.

Controlled learning loop

The final ensemble can nominate its own next training examples

With training functions explicitly enabled, the Gemma-owned final ensemble may tag an earlier completed-history window as a candidate or stage an on-demand fine-tuning request. The host, not the model, supplies exactly the transcript window the model reviewed. Candidates are append-only, content-hashed, and unapproved by default; routine conversation is deliberately excluded unless the model identifies durable training value.

completed host-owned session history
        ↓ model nominates rationale + tags
append-only candidate ledger
        ↓ model requests a fine-tune
immutable session-separated dataset
        ↓ explicit operator authorization
configured trainer or no launch

A function call cannot approve its own data or launch training. Launch requires a separate operator flag and argv-only trainer configuration, and remains blocked while another David-GPT-2 training process is active. The current in-progress answer is never captured mid-generation; it becomes eligible on a later turn.

Custom dataset guide

Recreate the architecture with your own target voice

The reusable idea is role-reversed causal-language-model training: context belongs to the prompting side, while loss is applied only to the target person's continuation. Replace David's private corpus and identity labels with your own reviewed data; do not redistribute either model's weights or source conversations.

  1. Choose one target role

    Define whose continuation the small model predicts and which role supplies context. In this project, assistant/Sol text is context and David/user text is the supervised target. Keep that mapping explicit; do not mix both sides into one assistant target.

  2. Normalize conversations

    Export ordered conversations with stable conversation and message IDs. Adapt `src/david_gpt2/archive.py` if your source is not the expected transcript layout. Preserve turn order, exclude system/tool metadata from visible training text, and assign train/validation/test splits by conversation rather than by isolated message.

  3. Define task and role markers

    Replace or extend the structural tokens in the dataset builder for your target role. Mask task markers, context, padding, and role delimiters with label `-100`; supervise only the target body and its real end-turn token. Keep literal marker text escaped so authored strings cannot become control tokens.

  4. Build and audit the private dataset

    python scripts/build_dataset.py \
      --archive /path/to/your/private-archive \
      --output data/processed \
      --context-length 512 --seed 37
    python scripts/audit_literal_markers.py --dataset data/processed
    python scripts/audit_supervision.py --dataset data/processed
    pytest -q

    Review decoded labels locally. Every intended target occurrence should have complete token coverage, with no cross-split conversation leakage and no private target text in reports.

  5. Curate without rewriting the frozen source

    python scripts/dataset_workbench.py

    The local workbench presents searchable human-readable context and supervised targets. Add, rewrite, remove, or restore individual entries through a reversible overlay, then materialize and validate a versioned candidate. Opening the editor or building a candidate never starts training.

  6. Run a real smoke fine-tune

    python scripts/smoke_test.py --config configs/smoke-test.yaml

    A smoke checkpoint validates mechanics, stop behavior, save/reload, and CUDA memory. It does not establish voice quality. Compare base and fine-tuned output before authorizing a full run.

  7. Train and select the checkpoint

    python -m david_gpt2.train --config configs/combined.yaml
    python -m david_gpt2.evaluate \
      --model outputs/david-gpt2-combined/best \
      --dataset data/processed/combined/test

    Copy `configs/combined.yaml`, then adjust paths and mixing ratios deliberately. Select `best` by supervised validation loss and inspect unrelated negative prompts for memorization or mode collapse.

  8. Prepare Gemma and your identity prompt

    ollama pull hf.co/zaakirio/gemma-4-12b-it-uncensored-GGUF:Q5_K_M
    ollama create gemma4-12b-q5-chat -f /path/to/Modelfile

    You may substitute another Ollama model that exposes streamed `message.thinking`, but verify its API fields and template. Create a separate system prompt for the final model's identity; do not train that identity implicitly into the target-role GPT-2 unless that is a deliberate dataset goal.

  9. Point the bench at your checkpoint

    python david_gpt2_gemma_dialogue.py \
      --david-model /path/to/your/checkpoint \
      --mode dialogue --show-internal \
      --gemma-checkpoint-tokens 192 \
      --gemma-primer-tokens 128

    Rename UI labels and role markers in a fork, but preserve the boundary: Gemma creates a prose seed, the small model continues that seed as its target role, and a later Gemma request owns the final visible answer.

  10. Add retrieval only after the baseline works

    Run first with knowledge off. If you add retrieval, point `DAVID_CONTINUATION_KNOWLEDGE_URL` at your own read-only query endpoint. The endpoint must return ranked `results` containing `text`, `path`, and `chunk`. Search may cover your complete index, but cap `top_k` and per-hit characters so evidence stays inside the model's finite context. A generative backend should not silently rewrite evidence.

  11. Run a separate continuation service

    python -m david_gpt2.continuation_api \
      --model /path/to/your/checkpoint \
      --host 127.0.0.1 --port 8793 \
      --knowledge-url http://127.0.0.1:8892/api/knowledge/query

    Publish it beneath a dedicated route such as `/api/your-model/`. Do not alias it to an existing assistant-chat endpoint. Keep the request centered on prompt, optional prefix, target mode, and continuation controls.

  12. Package source, never private runtime assets

    Publish source, configs, tests, launch definitions, and sanitized documentation. Exclude checkpoints, raw/processed corpora, embedding caches, manifests containing private IDs, logs, exports, API keys, and virtual environments.

David GPT-2 combined training control showing the completed local run and best validation checkpoint
The actual completed local combined training run and selected checkpoint.
Terminal running David GPT-2 and Gemma native-thinking dialogue mode
The actual dialogue bench exposing checkpoint, David continuation, and final-response phases.

Complete publication

Reproduce the experiment without publishing the private world

Generation 001 reproducibility package

The completed field report, safe machine-readable evidence, current David-GPT-2 and GenOS source, training and evaluation configuration, tests, deterministic replay scenarios, deployment definitions, live API contract, redesigned site page, and the full screenshot record.

Deterministic ZIP · embedded per-member SHA-256 manifest · no weights · no corpus bytes · no secrets

Prior documentation snapshot

Combined manual, preserved baseline manual, David-GPT-2 README, release manifest, skill, launch definitions, and site snapshots.

Download documentation ZIP

Prior architecture snapshot

All documentation plus the public-safe bench, David-GPT-2 source, configurations, scripts, and test suites.

Download architecture ZIP

SHA-256 checksums