<?xml version="1.0" encoding="utf-8" standalone="yes"?><?xml-stylesheet href="/feed_style.xsl" type="text/xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="https://www.rssboard.org/media-rss">
  <channel>
    <title>HPC on Eva Winterschon</title>
    <link>https://winterschon.gitlab.io/tags/hpc/</link>
    <description>Recent content in HPC on Eva Winterschon</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>Some copyright notice - [my license](https://example.com/license)</copyright>
    <lastBuildDate>Sat, 13 Jun 2026 15:43:01 +0000</lastBuildDate><atom:link href="https://winterschon.gitlab.io/tags/hpc/index.xml" rel="self" type="application/rss+xml" /><icon>https://winterschon.gitlab.io/logo.svg</icon>
    
    
    <item>
      <title>Performance Engineering - Evaluative Metrics</title>
      <link>https://winterschon.gitlab.io/en/posts/performance-engineering-evaluative-metrics/</link>
      <pubDate>Sat, 13 Jun 2026 15:43:01 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/performance-engineering-evaluative-metrics/</guid>
      <description><![CDATA[<h2 id="llm-inference">LLM Inference</h2>
<table>
  <thead>
      <tr>
          <th>Sector</th>
          <th>Common metrics</th>
          <th>Less-known / specialist metrics</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>GP-GPU Service Infrastructure</td>
          <td>TTFT, ITL/TPOT, E2E request latency, TPS, RPS/QPS, Queue-Fill, KV/C metrics</td>
          <td>request_queue_time, request_prefill_time, request_decode_time, inflight time, SM occupancy, HBM/DRAM memory throughput</td>
      </tr>
      <tr>
          <td>API Service Infrastructure</td>
          <td>p50/p95/p99 latency, streaming TTFB/TTFT, RPS/QPS, error rate, 429 rate, active downstream connections, backend latency</td>
          <td>x-envoy-upstream-service-time, upstream_rq_time, TR/Tw/Tc/Tr/TA timer split in HAProxy, retry rate, queue-slot saturation, circuit-breaker usage</td>
      </tr>
      <tr>
          <td>Network Hardware + Protocol Infra</td>
          <td>RTT (round-trip time), one-way latency, jitter/PDV (packet delay variation), PPS/BPS, packet loss, retransmits</td>
          <td>ECN mark rate, PFC (priority flow control) pause events, microburst depth, CQE (completion queue entry) compression state, SymbolErrors, LinkRecoveries, PTP offset/path delay</td>
      </tr>
      <tr>
          <td>Prompt Caching, Compute + Re-Compute</td>
          <td>cache hit rate, cached_tokens, prompt_tokens, generation_tokens, TTFT reduction, cache read/write counts</td>
          <td>partial-hit ratio, cache-miss ratio, prefix-cache block hit rate, predicted KV hit rate, per-request routing overhead</td>
      </tr>
      <tr>
          <td>Prompt Caching, Storage Infra</td>
          <td>cache hit ratio, eviction rate, cache latency, TTL, GPU/CPU cache usage</td>
          <td>CPU-vs-GPU cache-hit split, priority-based eviction effect, TTL refresh behavior, KV-block fragmentation / block reuse</td>
      </tr>
      <tr>
          <td>Prompt Caching, API + Load-Balancers</td>
          <td>per-route/model hit rate, active and pending requests, backend latency, request rate, retries, error rate</td>
          <td>cache-aware routing predicted KV hit rate, routing overhead, queue time before backend selection, circuit-breaker saturation, connection-slot pressure</td>
      </tr>
  </tbody>
</table>
<h3 id="acronyms">Acronyms</h3>
<ul>
<li>TTFT == Time to First Token</li>
<li>ITL == Inter-Token Latency</li>
<li>TPOT == Time per Output Token</li>
<li>E2E == end-to-end</li>
<li>TKS == tokens/sec</li>
<li>RPS == requests/sec</li>
<li>QPS == queries/sec</li>
<li>KV/C == Key-Value Cache</li>
</ul>
<h2 id="llm-dataset-training">LLM Dataset Training</h2>
<table>
  <thead>
      <tr>
          <th>Operations</th>
          <th>Common metrics</th>
          <th>Less-known / specialist metrics</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Pre-loading datasets</td>
          <td>ingest throughput (docs/s, rows/s, bytes/s, tokens/s), tokenization throughput, DataLoader throughput, dedup ratio</td>
          <td>fuzzy-duplicate rate, semantic-duplicate rate, contamination rate/AUC, consumer lag, shuffle spill bytes</td>
      </tr>
      <tr>
          <td>Pre-training + MoE</td>
          <td>tokens/s, step time, MFU (model FLOPs utilization), training loss/perplexity, all-to-all/dispatch time, GPU memory</td>
          <td>auxiliary load-balancing loss, router z-loss, expert capacity factor, token-drop rate, per-layer expert imbalance</td>
      </tr>
      <tr>
          <td>Post-training + MoE</td>
          <td>step time, samples/s or tokens/s, train/val loss, reward/preference accuracy, KL divergence, MFU</td>
          <td>chosen vs rejected reward margin, chosen/rejected rewards, router aux/z loss during alignment, expert saturation under small-batch tuning</td>
      </tr>
  </tbody>
</table>
<h2 id="hpc--hft-analytics-infrastructure">HPC + HFT Analytics Infrastructure</h2>
<table>
  <thead>
      <tr>
          <th>Sector</th>
          <th>Common metrics</th>
          <th>Less-known / specialist metrics</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Virtual Machine Clusters</td>
          <td>p50/p99 service latency, jitter, CPU ready time, throughput, packet loss</td>
          <td>CPU co-stop, NUMA locality (numa_hit/numa_miss/local_node/other_node), vCPU scheduling contention, latency-sensitivity effectiveness</td>
      </tr>
      <tr>
          <td>Baremetal Systems</td>
          <td>wire-to-wire latency, p99/p999 jitter, PPS/Mpps, cycles, instructions, LLC-load-misses, branch-misses, RX/TX drops</td>
          <td>NUMA locality, interrupt coalescence, CQE compression state, packet pacing, driver extended stats / ring stress</td>
      </tr>
      <tr>
          <td>Content Delivery Networking</td>
          <td>cache hit ratio, TTFB, origin offload, request rate, error rate, egress bandwidth</td>
          <td>shield-layer hit ratio, origin_ttfb, child/parent cache status, regional cache-performance variance</td>
      </tr>
      <tr>
          <td>Low-Latency Trade-Execution Networks</td>
          <td>one-way latency, RTT, jitter, packet loss, order latency, feed latency</td>
          <td>microburst depth, queue/buffer pressure, ECN mark rate, PFC pause events, path asymmetry, PTP offset</td>
      </tr>
      <tr>
          <td>Dark Fiber Regional Network Infra</td>
          <td>one-way latency, RTT, availability, BER, pre-FEC BER, post-FEC BER</td>
          <td>OSNR/ESNR, Q-factor, CD (chromatic dispersion), PMD (polarization mode dispersion), FEC degrade indicators</td>
      </tr>
      <tr>
          <td>Quantitative Research + Machine Learning</td>
          <td>backtest wall-clock runtime, feed latency, order latency, feature-serving latency, feature-ingestion throughput</td>
          <td>training-serving skew, feature inflight vs write-to-store success metrics, feature health/correctness monitoring</td>
      </tr>
      <tr>
          <td>Data Analytics + Multivariate Analysis</td>
          <td>job duration, stage/task duration, throughput, end-to-end delay, records-consumed-rate, consumer lag, shuffle read/write</td>
          <td>spill bytes, skew via task-duration discrepancy or shuffle-read imbalance, straggler share, input-pipeline prefetch effectiveness</td>
      </tr>
  </tbody>
</table>
<h2 id="sla--slo-reliability-telemetry-alerting">SLA + SLO Reliability, Telemetry, Alerting</h2>
<ul>
<li>Pre-Defined latency/error/throughput SLIs and error budgets require burn-rate alerting</li>
<li>Prometheus and Alertmanager define scrape and notification timing controls</li>
<li>OpenTelemetry defines histograms and exemplars</li>
<li>Apdex is a standard user-satisfaction score</li>
<li>Elastic APM measures application performance traces</li>
</ul>
<table>
  <thead>
      <tr>
          <th>Sector</th>
          <th>Common metrics</th>
          <th>Less-known / specialist metrics</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>SLA + SLO Monitoring, Telemetry, Alerting Infra</td>
          <td>availability SLI, latency SLI, error rate, throughput, Apdex, error-budget burn rate</td>
          <td>multi-window multi-burn-rate alerts, scrape_duration / scrape_timeout ratio, group_wait / group_interval / repeat_interval, histogram bucket design, exemplars</td>
      </tr>
  </tbody>
</table>
<h2 id="shared-analytics-of-interest">Shared Analytics of Interest</h2>
<table>
  <thead>
      <tr>
          <th>Metric</th>
          <th>Signal</th>
          <th>Typical domains</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Queue time</td>
          <td>Separates saturation from raw compute/network slowness</td>
          <td>LLM serving, API gateways, load balancers, HFT</td>
      </tr>
      <tr>
          <td>Prefill vs decode split</td>
          <td>Distinguishes prompt-processing bottlenecks from token-generation bottlenecks</td>
          <td>LLM GPU serving</td>
      </tr>
      <tr>
          <td>Prefix/KV cache hit rate</td>
          <td>Direct proxy for avoidable recompute and TTFT improvement</td>
          <td>LLM serving, agentic systems</td>
      </tr>
      <tr>
          <td>Auxiliary MoE loss and router z-loss</td>
          <td>Early warning for expert imbalance and routing instability</td>
          <td>MoE training</td>
      </tr>
      <tr>
          <td>CPU ready / co-stop / NUMA miss</td>
          <td>Often the real cause of inconsistent latency in virtualized clusters</td>
          <td>VM-based HFT / HPC</td>
      </tr>
      <tr>
          <td>Microburst depth and ECN/PFC behavior</td>
          <td>Reveals congestion that average bandwidth hides</td>
          <td>Low-latency Ethernet / RoCE fabrics</td>
      </tr>
      <tr>
          <td>OSNR / CD / PMD / pre-FEC BER</td>
          <td>Core optical-health indicators long before full link failure</td>
          <td>Dark fiber / coherent optics</td>
      </tr>
      <tr>
          <td>Spill bytes and consumer lag</td>
          <td>Early warning for data-path backpressure and skew</td>
          <td>Big-data pipelines</td>
      </tr>
      <tr>
          <td>Burn rate and exemplars</td>
          <td>Better operational signal than raw alert count or average latency</td>
          <td>SLO / observability stacks</td>
      </tr>
  </tbody>
</table>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>Infra Monorepo Migration</title>
      <link>https://winterschon.gitlab.io/en/posts/infra-monorepo-migration/</link>
      <pubDate>Sun, 31 May 2026 04:22:04 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/infra-monorepo-migration/</guid>
      <description><![CDATA[<p>One weekend of fun follows many former, and also weekdays, and other weekends. It&rsquo;s nice to have a small team manage a lot of resources using a single pane of glass via tmux, rs232, ipmi, Ansible and BigNetwork.</p>
<blockquote>
<p>More details later&hellip; sleepy.</p>
</blockquote>
<hr>
<pre tabindex="0"><code> # NeoCortex Standards, Repo Storage, ZFS Dataset, M70 QAT Fast-Track Plan

  ## Summary

  Implement a non-destructive NeoCortex follow-up that locks
  these policies into code, tests, and docs:

  - Repos live under /opt/repos/&lt;repo&gt;; worktrees live under
    /opt/repos/worktrees/&lt;repo&gt;/&lt;branch&gt;.
  - /root is not a repo/worktree destination; /root/OMGFUCKED is
    temporary quarantine only.
  - New repos must be created from
    yukon-systems/YukonSYS-Standard-Definitions.
  - Every repo must use Git LFS and the standards repo
    .gitattributes byte-for-byte.
  - ZFS dataset creation for /opt/repos becomes reusable
    Ansible/policy logic, based on
    /root/bin/ZFS-M70-Forge_zroot-dataset_opt-repos.sh.
  - M70 QAT rollout uses canary first: build OpenSSL+QAT and
    OpenZFS/QAT binpkgs, validate on M70 canary, then promote.

  ## Key Changes

  - Standards and repo-placement policy
      - Update NeoCortex root policy docs and tests to forbid
        new repo/worktree paths under /root, except documented
        temporary quarantine paths under /root/OMGFUCKED.
      - Update tools/import-source-repos.py defaults from
        /root/&lt;repo&gt; to /opt/repos/&lt;repo&gt;, with
        /root/OMGFUCKED/&lt;repo&gt; accepted only as an explicit
        transitional override.
      - Add a repo-location audit script/test that fails active
        operational docs/scripts using /root/&lt;repo&gt; or
        /root/.config/superpowers/worktrees as live paths.
  - Git LFS and .gitattributes
      - Replace NeoCortex root .gitattributes with the standards
        repo version byte-for-byte.
      - Add a validation script that checks:
          - git lfs version works,
          - filter.lfs.required=true,
          - origin LFS locksverify=true,
          - root .gitattributes hash equals standards source,
          - LFS pre-push hook exists.
      - Document that non-compliant repos must be retrofitted
        before migration/import.
  - ZFS dataset automation
      - Convert
        /root/bin/ZFS-M70-Forge_zroot-dataset_opt-repos.sh into
        reusable NeoCortex Ansible/defaults for managed
        datasets.
      - First managed dataset profile: zroot/opt/repos mounted
        at /opt/repos with the script’s options, including
        compression=zstd-fast-1, dedup=sha256,verify,
        recordsize=256K, xattr=sa, POSIX ACLs, atime=off, and
        reservation=32M.
      - Add a second reusable pattern for per-user home
        datasets, but do not block on the NAS/NFS 777
        investigation; include a permission preflight that
        creates a test directory with umask 0027 and fails if
        mode becomes 0777.
  - M70 QAT binpkg fast-track
      - Extend the existing M70 canary stage4/binpkg lane to
        build a QAT package set:
          - QAT firmware/kernel module readiness package policy,
          - OpenSSL QAT engine/provider package path,
          - OpenZFS package built with QAT support,
          - rollback stock OpenSSL/OpenZFS binpkgs.
      - Add package/use/profile fragments under the existing
        Gentoo stage4 profile area instead of ad hoc host edits.
      - Add canary validation:
          - lspci -nnk sees QAT device,
          - qat_c3xxx and intel_qat load,
          - OpenZFS module parameters expose QAT controls,
          - openssl speed before/after artifacts are captured,
          - root pool imports and mounts after reboot,
          - rollback binpkg path is tested before wider
            promotion.
      - Do not promote to all M70 nodes until canary evidence is
        committed.

  ## Test Plan

  - Local static checks:
      - tests/shell/run-tests.sh
      - new repo-location standards test
      - new Git LFS standards test
      - new ZFS dataset defaults test
      - new M70 QAT package-policy test
      - YAML parse for all workflows/playbooks
      - git diff --check
  - Runtime/dry-run checks:
      - Ansible syntax-check for dataset roles/playbooks.
      - Dry-run dataset plan for /opt/repos confirms current
        zroot/opt/repos matches expected options.
      - M70 canary dry-run emits QAT binpkg build plan without
        mutating packages.
  - Canary acceptance:
      - QAT binpkgs build successfully.
      - M70 canary reboots with root pool intact.
      - QAT modules and OpenZFS QAT controls are present.
      - Benchmark and rollback evidence are recorded under
        NeoCortex audit docs.


  ## Assumptions

  - Canonical repo clone layout is /opt/repos/&lt;repo&gt;.
  - Worktree layout is /opt/repos/worktrees/&lt;repo&gt;/&lt;branch&gt;.
  - /root/OMGFUCKED remains temporary quarantine, not an
    approved steady-state repo location.
  - QAT rollout gate is canary first, not all-M70 immediate.
  - OpenZFS QAT implementation details must be verified against
    current OpenZFS/Gentoo package behavior during
    implementation; source basis includes OpenZFS QAT docs and
    module-parameter docs:
      - https://openzfs.org/wiki/ZFS_Hardware_Acceleration_with_QAT
      - https://openzfs.github.io/openzfs-docs/Performance%20and%20Tuning/Module%20Parameters.html

─ Worked for 22m 41s
───────────────────────────────────────────────────────────
  Implement this plan?
  1. Yes, implement this plan          Switch to Default and
  start coding.
  2. Yes, clear context and implement  Fresh thread. Context:
  53% used.
› 3. No, stay in Plan mode             Continue planning with
the model.



-----------------------
  ## Assumptions

  - Canonical repo clone layout is /opt/repos/&lt;repo&gt;.
  - Worktree layout is /opt/repos/worktrees/&lt;repo&gt;/&lt;branch&gt;.
  - /root/OMGFUCKED remains temporary quarantine, not an
    approved steady-state repo location.
  - QAT rollout gate is canary first, not all-M70 immediate.
  - OpenZFS QAT implementation details must be verified against
    current OpenZFS/Gentoo package behavior during
    implementation; source basis includes OpenZFS
    QAT docs and module-parameter docs:
      - https://openzfs.org/wiki/ZFS_Hardware_Acceleration_with_QAT
      - https://openzfs.github.io/openzfs-docs/Performance%20and%20Tuning/Module%20Parameters.html

─ Worked for 22m 41s
───────────────────────────────────────────────────────────

› 1) We also need to include the control plane fixes and
validations so that mutli-workers comms are fixed. 2) We need to
leverage the SLURM cluster nodes and
  additional distcc build hosts, 3) X12again &amp; FMT2 are
  effectively idle and can be blasted into submission to fast
  track all of these changes. 4) Once the
  M70-canary passes, we need to roll it out to K10 (tear-it-down
  AAA) and validate that type of OS netbooting. 5) Add those
  aspects to the Plans and we&#39;re
  looking better. 6) Finally, wrap up ALL changes necessary to
  complete the NeoCortex monorepo migration.

───────────────────────────────────────────────────────────

• I’ll revise the plan around the expanded end-state, but first
I’m doing a read-only pass over NeoCortex’s control-plane,
SLURM/distcc, X12/FMT2/K10, and
  migration-status artifacts so the replacement plan is grounded
  instead of generic.

───────────────────────────────────────────────────────────

• Proposed Plan

  # NeoCortex Standards-Complete Monorepo Migration Plan

  ## Summary

  - Make /opt/repos/&lt;repo&gt; the only canonical repo location; no 
  new checkouts or random repo files under any home directory, 
  including /root.
  - Finish standards adoption: all new repos must originate from 
  YukonSYS-Standard-Definitions; NeoCortex gets retrofitted 
  instead of restarted unless
    retrofit verification fails.
  - Complete NeoCortex monorepo migration with standards baseline, 
  Git LFS policy, control-plane comms fixes, ZFS dataset policy, 
  SLURM/distcc acceleration, M70 QAT canary, FMT2/X12again build 
  capacity, and K10 netboot AAA rollout validation.

  ## Key Changes

  - Repository standards
      - Merge standards policy PR work, then make NeoCortex 
      root .gitattributes byte-for-byte identical to the standards 
      repo version.
      - Update active NeoCortex import/migration tooling to default 
      source paths to /opt/repos/&lt;repo&gt;.
      - Preserve historical /root/... references only in immutable 
      audit/provenance docs; active scripts, runbooks, tests, and 
      templates must not depend on
        home-directory repos.
      - Use worktrees under /opt/repos/worktrees/&lt;repo&gt;/&lt;branch&gt;.
  - NeoCortex monorepo completion
      - Finish all migration blockers already tracked in 
      NeoCortex: M70 stage4/QCOW validation, Kata/container 
      runtime, FMT2 ephemeral VM lane, Gentoo/OpenRC
        replacement for temporary Rocky bootstrap, Thor replacement 
        path, and optional history graft/freeze decision.
      - Treat NeoCortex as authoritative after completion: source 
      repos become frozen compatibility references or are 
      history-grafted into NeoCortex with
        documented provenance.
      - Add/repair migration validation so PR completion proves 
      standards baseline, Git LFS, repo location policy, shell 
      tests, YAML parsing, and migration
        manifests.
  - Control-plane and multi-worker comms
      - Bring all control-plane fixes into NeoCortex and validate 
      Forge/FCP worker communication end to end.
      - Add tests for FCP envelope validation, replay/nonce handling, 
      approval ceilings, routing scope, transport policy, ntfy bridge 
      behavior, and multi-worker request/response flows.
      - Replace temporary Rocky bootstrap control-plane host with the 
      compliant Gentoo/OpenRC image once that image passes validation.
  - ZFS, NFS, and storage policy
      - Use the provided /opt/repos ZFS dataset options as the canonical 
      dataset profile for repo storage.
      - Add reusable dataset/playbook logic for repo datasets and 
      per-user home datasets.
      - Add NFS/floating-home validation that detects the NAS NFSv4.2 
      0777 directory-mode bug under expected 0027 umask and blocks 
      insecure rollout.
  - Build acceleration and hardware rollout
      - Use SLURM plus distcc for M70 stage4/QAT/OpenZFS builds.
      - Treat X12again and FMT2 as available fast-track build/validation 
      capacity.
      - Build binpkg path for OpenSSL + QAT + OpenZFS on M70 canary first; 
      non-QAT nodes may consume the same binpkgs with QAT unused.
      - After M70 canary passes, roll the validated path to K10 and 
      run destructive AAA/netboot validation with rollback evidence 
      captured.

  ## Test Plan

  - Run NeoCortex shell/YAML validation, including migration, 
  standards-baseline, Git LFS, .gitattributes, and no-active-home-repo-path 
  checks.
  - Run control-plane/FCP tests for envelope schema, replay rejection, 
  worker routing, ntfy bridge, and multi-worker comms.
  - Run Ansible/playbook syntax checks for ZFS datasets, NFS home policy, 
  SLURM/distcc build orchestration, M70 canary, FMT2/X12again lanes, and 
  K10 netboot
    AAA.
  - Execute staged hardware validation:
      1. SLURM/distcc dry-run.
      2. M70 canary build and QCOW/stage validation.
      3. FMT2/X12again accelerated build/ephemeral VM smoke.
      4. K10 netboot/AAA destructive validation after M70 success.

  ## Assumptions

  - Retrofit NeoCortex rather than restart the repo unless standards 
  validation exposes unrecoverable divergence.
  - Historical audit files may retain old /root/... paths as provenance; 
  active operational content may not.
  - M70 canary is the release gate for QAT/OpenZFS/binpkg rollout.
  - K10 destructive AAA/netboot validation is in scope only after M70 
  canary passes and rollback evidence is captured.

─ Worked for 2m 18s ───────────────────────────────────────────────────────────
</code></pre>]]></description>
      
    </item>
    
    
    
    <item>
      <title>Why Do We Need Her Anyway?</title>
      <link>https://winterschon.gitlab.io/en/posts/why-do-we-need-her-anyway/</link>
      <pubDate>Sat, 16 May 2026 23:41:50 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/why-do-we-need-her-anyway/</guid>
      <description><![CDATA[<p>Indeed. <strong>Do it yourself and ignore all knowledge, all advice.</strong> Build every wheel as new. Design everything from ground zero, always. Exist only in <em>The Now.</em> Push everyone away who advises otherwise - at your own peril. <strong>You are</strong> <strong>The Only Expert</strong>.</p>
<blockquote>
<p><strong>Choose your failure mode and you will find it quickly.</strong></p>
</blockquote>
<h2 id="please-skip-the-philosophy">Please Skip the Philosophy</h2>
<p>A valid request. Perhaps you don&rsquo;t care about this verbosity of thought, or considerations therein, or maybe you&rsquo;re aware of the reprisals and follies and want to move on to the engineering discussion? If so, simply scroll down to the section titled, <em><strong>&ldquo;How Does This Relate to Memory&rdquo;</strong></em>. Note that in doing so you will miss a blurb from <a href="https://en.wikipedia.org/wiki/Office_Space">Office Space</a>.</p>
<hr>
<h2 id="endeavor-to-endure-the-philosophy">Endeavor to Endure the Philosophy</h2>
<p>A fair degree of the human experience involves a process by which those of &ldquo;early-phase cognition&rdquo; attempt to self-obfuscate their <em>&ldquo;desire for desire&rdquo;</em>, attempting to live a life of nebulous and fleeting happiness, non-blissfully and unaware that it is this desire to feel and experience desire itself which has cornered their experience into a lifetime of endless searching, yearning, wanting, never satiated, eventually growing old and stale and losing their imaginative or creative or physical edge.</p>
<blockquote>
<p>This cycle of The Great Chase is one basis of Sisiphean frustration; one which - until it is surpassed - which requires being acknowledged, accepted, and integrated into their forward movement</p>
</blockquote>
<p>Some understand that to exist with desire, that all-controlling force, seemingly inescapable force which presses down upon the rock, forever trapping your perspective into the wheel of the unknown yet forever traveled, repeating mistakes which others warned against, refusing awareness of one&rsquo;s own misfortunate mentality and guiding-line towards an inevitable failure; experiences from which all lessons are never to be learned.</p>
<p>Go ahead. <strong>Do it</strong>. Don&rsquo;t learn from others. <strong>Do everything yourself,</strong> do it with the veracity by which you have become convinced is correct - do everything as though this is the first time anyone has ever tried to achieve the new shiny thing. Surely, this must be the path towards truth, self-realization, self-actualization, self-assurance, and that desperation of desire for freedom from desire to desire everything&hellip; and then&hellip; surely success is ensured?</p>
<p>No, <em>that modality of mentality would achieve its opposite effect</em>, and it would be a waste of everyone&rsquo;s time; because despite the ego-driven main-character syndrome which has become so performatively boring in the past two decades of social media, <strong>it&rsquo;s not all about You, or Me, it&rsquo;s about Everyone</strong> alive and even those who we have loved who died.</p>
<h4 id="mr-gibbons">Mr. Gibbons</h4>
<p>Peter Gibbons:<br>
It&rsquo;s not just about me and my dream of doing nothing. It&rsquo;s about all of us&hellip; Michael, we don&rsquo;t have a lot of time on this earth!</p>
<p>We weren&rsquo;t meant to spend it this way. Human beings were not meant to sit in little cubicles staring at computer screens all day, filling out useless forms and listening to eight different bosses drone on about about mission statements.</p>
<p>Michael Bolton:<br>
I told those fudge-packers I liked Michael Bolton&rsquo;s music.</p>
<p>Peter Gibbons:<br>
Oh, That is not right, Michael.</p>
<p>Purposeless self-serving inefficiency which is predicated on assured failure wastes time that humanity does not have - <strong>we do not have time for oppositional defiance induced mediocrity</strong>. Stop the gamification.</p>
<h2 id="the-mindset-of-being-simply-wrong">The Mindset of Being Simply Wrong</h2>
<p>Instead of repeating the pattern described above, grow the fuck up and learn how to effectively learn from others, to learn from the past, to learn using a reinforcement framework of concept-action-processing. <em>&ldquo;Thems may be big words&rdquo;</em>, but this is not a complicated concept. One does not have to choose the path of stupidity; ignorance - we&rsquo;re all ignorant in all manner of ways and that&rsquo;s inescapable; however when one ignores the data, ignores the lesson, and chooses the path before them via oppositional defiance, that&rsquo;s called <em>&ldquo;being stupid&rdquo;</em>. It&rsquo;s stupid not to learn from others.</p>
<hr>
<h2 id="how-does-this-relate-to-memory">How Does This Relate to Memory</h2>
<p>Memory is everything. The conscious experience, the neural network running inside our brains, the execution of &ldquo;<a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC12025022/">The Default Mode Network</a>&rdquo;, requires effective memory - <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC4526749/">short term a well as consolidation to long-term memory</a>.</p>
<p>So, when the industry was informed of the untimely discontinuation of Intel&rsquo;s Optane NVDIMMs&hellip; we were all screwed. Until Q2 2026. Now it&rsquo;s Q2 and finally CXL non-volatile memory is available in sufficiently equivalent density, performance, and lifespan to exceed Optane&rsquo;s role, and it is available in PCIe Gen-4 and Gen-5 and soon&hellip; Gen-6.</p>
<h2 id="an-introduction-to-cxl">An Introduction to CXL</h2>
<ul>
<li>It&rsquo;s not HBM, it&rsquo;s not 3D-Xpoint, it&rsquo;s not SRAM, nor vRAM</li>
<li>CXL is packaged in PCIe, U.3, and EDSFF formats</li>
<li>CXL offers dense capacity, low-latency, and exceptional I/O</li>
<li>CXL is made for Ai/HPC/OLTP memory acceleration</li>
<li>CXL is the new hotness, it is the new standard, it is performance</li>
</ul>
<h2 id="hpc-cluster-storage-acceleration">HPC Cluster Storage Acceleration</h2>
<p>CXL is being built into (not next-gen, now-gen) storage appliances and network protocol accelerator systems used in High Performance Computing, Ai/ML which leverages HPC tech, and Supercomputers.</p>
<h2 id="cxl-in-telco-dsp-as-protocol-caches">CXL in Telco DSP as Protocol Caches</h2>
<p>CXL is perfectly suited for digital signals processing on a range of network protocols and their intra-chassis and inter-chassis RDMA driven networks. There&rsquo;s one person who I know that hates it when I bring up RDMA - truly an example of being willfully ignorant. Moving on&hellip;</p>
<h3 id="cxl-memory-in-telco-atac-chassis">CXL Memory in Telco ATAC Chassis</h3>
<ul>
<li>14 slots in 19-inch rack ≈→ ∆ {$N total trays per 42U ≈ μ19}</li>
<li>16 slots in 23-inch ETSI rack ≈→ ∆ {$N total trays per 42U ≈ μ23}</li>
<li>Chassis heights from 4U to 15U ≈↑ ∆ [[ μ4, μ19, μ23 ]]</li>
<li>Telco grade Power &amp; Cooling Efficiency &amp; Redundancy ++</li>
<li>Mil-DoD Compliant Physical &amp; Operational Security ++</li>
<li>Industrial NEBS Environmental Operating Ranges ++</li>
<li>Zero-Downtime Serviceability &amp; Upgrade/Maint ++</li>
<li>Intra+Inter-Chassis Redundancy (Modular Scale) ++</li>
<li>Geo-Deploy Designed for regional XOR continental mesh ++</li>
</ul>
<hr>
<h2 id="so-why-should-we-listen-to-her">So, Why Should We Listen to Her?</h2>
<p>Becausee I&rsquo;ve been building and iterating these types of storage architectures for nearly twenty years of my career. If you want to do it all from scratch or buy this type of storage performance for 10x the cost, go ahead; the market exists and you can be the big winner.</p>
<p>However, if you don&rsquo;t want to pay a premium for non-OpenSource storage clusters which are capable of serving and scaling from 10s to 100s of Petabytes, then this is the direction by which engineering solutions arrive at the datacenter. My storage designs range from <a href="https://blogs.oracle.com/exadata/advantages-of-exadata-exascale">Oracle&rsquo;s Exadata &amp; Exascale</a> clusters which have been adapted to run non-standard protocols, to fully purpose-built data-acceleration clusters which use COTS building blocks to provide similar performance and scale at a fraction of the cost <em>(not including consulting, engineering scope, and top-to-bottom fully-automated storage architecture deployments)</em>.</p>
<p>As networking has improved, NAND designs have advanced, and costs have reduced on $/TB and $/Watt&hellip; yet always&hellip; always the storage sizes grow in density and capabilities. This is natural and expected.</p>
<hr>
<h2 id="project-coherent-storage-an-evolution">Project Coherent Storage, an Evolution</h2>
<p>Six primary iterations, tracking the advancement of NAND acceleration, Network Acceleration, Protocol Offloading, Non-Volarile RAM, and now we see CXL capable of being deploying into reference architectures by which all others may be measured.</p>
<ul>
<li><strong>Project Coherent Storage v1</strong>, (2010-2012)</li>
<li><strong>Project Coherent Storage v2,</strong> (2011-2015)</li>
<li><strong>Project Coherent NAND,</strong> (CMPLX.io) (2015-2017)</li>
<li><strong>Project Coherent IO-Max v1</strong>, w/ Optane PMem (2020-2024)</li>
<li><strong>Project Coherent IO-Max v2</strong>, w/ Optane PMem (2024-2025)</li>
<li><strong>Project Coherent Storage v3</strong>, w/ CXL AIC/U3 (2026)</li>
</ul>
<h3 id="development-details---concise-timeline">Development Details - Concise Timeline</h3>
<p>A little bit of engineering nerdery for those who care&hellip; and btw, the community myth that ZFS cannot fulfill a role as a multi-node clustered filesystem are wrong.</p>
<h4 id="what-about-the-zfs-cant-cluster-myth">What About the &ldquo;ZFS Can&rsquo;t Cluster&rdquo; Myth?</h4>
<p>The &ldquo;Clustered ZFS&rdquo; operating modality for multi-controller interactions (<em>not limited to A/B active/passive or even active/active with modified pool-async hooks</em>) requires advanced network hardware and engineering experience which most are not aware of, and so the myth perpetuates; but it is wrong and it has been wrong for as long as SAS drives have had dual-heads and shelves have had 4+ SFF connectors ready for multi-multipath-chaining - and enterprise NVMe drives are also available in this arrangement for the same purpose.</p>
<h4 id="project-coherent-storage-v1-2010-2012"><strong>Project Coherent Storage v1</strong> (2010-2012)</h4>
<ol>
<li>Coherence Grid (DDR3 (Tier1)) + Custom Relational-Vector DBMS</li>
<li>Sunfire ZFS controllers w. Multi-Protocol-Net Interlinks (IB, IPoIB, mNFS+, FC, FCoE)</li>
<li>Geo-Dist-Nodes w. DDR3-PCIe SuperCap &ldquo;Hot Cache Layer&rdquo; (Tier2), w. <a href="https://dogemicrosystems.ca/pub/Sun/System_Handbook/Sun_syshbk_V3.4/Systems/SunFireX4600_M2/spec.html">Sunfire X4600/M2</a> @ 64 DIMMs Hotswap</li>
<li>Geo-Dist-Nodes w. SAS SSDs (Tier3) + SAS Spinner (Tier4)</li>
<li>Controller A/B+ nodes w. SAS-HBA to LTO-N (Tier5)</li>
</ol>
<h4 id="project-coherent-storage-v2-2011-2015"><strong>Project Coherent Storage v2</strong> (2011-2015)</h4>
<ol>
<li>Coherence Grid (DDR3 (Tier1)) + Relational-Vector DBMS</li>
<li>Sunfire ZFS controllers w. Multi-Protocol-Net Interlinks (IB, IP Native L2/L3, mNFS+, FCoE)</li>
<li>Geo-Dist-Nodes w. FusionIO Stacked &ldquo;Hot Cache Layer&rdquo; (Tier2)</li>
<li>Geo-Dist-Nodes w. SAS SSDs (Tier3) + SAS Spinner (Tier4)</li>
<li>Optional A/B nodes w. SAS-HBA to LTO-N (Tier5)</li>
</ol>
<h4 id="project-coherent-nand---cmplxio-2015-2017"><strong>Project Coherent NAND - CMPLX.io</strong> (2015-2017)</h4>
<ol>
<li>Coherence Grid DDR4 (Tier1) + Relational-Vector DBMS</li>
<li>Native ZFS controllers w. Multi-Protocol-Net Interlinks (IB, IP Native L2/L3, mNFS+, iSER)</li>
<li>Geo-Dist-Nodes w. NAND Stacked &ldquo;Hot Cache Layer&rdquo; (Tier2)</li>
<li>Geo-Dist-Nodes w. SAS3 SSDs (Tier3) + SAS3 Spinner (Tier4) [+ optional SAS3 HBA to LTO for Iron Mountain (Tier5)]</li>
<li>This architecture was a basis for one of my former startups, which was sold to private equity and built-upon for their HFT clusters under very tight NDA + Confidentiality Contract</li>
</ol>
<h4 id="project-coherent-io-max-storage-architectures-v1-2-3">Project Coherent IO-Max Storage Architectures v1, 2, 3</h4>
<p>These storage architectures share core foundations, with iterations upward as Non-Volatile Memory was introduced on a wider scale into my designs. The initial design for v1 featured the first generation of Intel Optane 3D-XPoint (Series 100), v2 with Series-200, and now CXL taking the place of Optane PMem SKUs.</p>
<p>The details of each design from v1 and v2 may be expanded upon later, simply for historical purposes, and I have other things to do right now&hellip; but if you&rsquo;ve made it this far into the post and want to see the specification ADRs and related research, which is RAG-pipelined and iteratively deployed on real hardware for revisions and regression testing to validate LLM Inference usage &amp; advancements with the now-opensource Coherence-CE version&hellip; scroll down for a link to v3&rsquo;s repo.</p>
<ul>
<li><strong>Project Coherent IO-Max v1,</strong> (2020-2023)</li>
<li><strong>Project Coherent IO-Max v2,</strong> (2023-2025)</li>
<li><a href="https://github.com/yukon-systems/StorOps__Project_Coherent_Storage"><strong>Project Coherent IO-Max v3</strong>,CXL (2026)</a></li>
</ul>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>Context {length} Matters</title>
      <link>https://winterschon.gitlab.io/en/posts/context-length-matters/</link>
      <pubDate>Mon, 04 May 2026 23:53:00 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/context-length-matters/</guid>
      <description><![CDATA[<p>Saturday morning means it&rsquo;s time for a blog post about <strong>&ldquo;The Ten Stages of Ai/ML Engineering&rdquo;</strong> 💖 .. aka <em>&ldquo;Stop wasting money&rdquo;</em>, or the classic <em>&ldquo;No one tuned any caches?&rdquo;</em></p>
<p>These are <code>SELECT NOW();</code> as well as antiquated concepts from my OLTP/OLAP Data Architect era jobs; where so much of the core knowledge translates to &ldquo;LLM Key/Value Cache Architectures&rdquo; that Directors always get confused when they&rsquo;ve not had the same experiences. Anyway, about those Neural Nets&hellip;</p>
<blockquote>
<p>Classic Neuroscience example: &ldquo;I&rsquo;m having a conversation, I&rsquo;m sleepy, my brain will only take in single simple sentences with one action and one request at most; anything further will be silently discarded or cause Brain Queue.</p>
</blockquote>
<p>We all know the feeling of a sluggish Brain Queue, where our sleepiness limits comprehension, limits attention span, and limits the amount of sensory input capacity for decision making.</p>
<p>Having insufficient resources, like attention or short term memory, can result in the mind becoming stuck in a Consideration Loop leading to &ldquo;Sleepy-Faced Analysis-Paralysis&rdquo;. This is where the brain is too tired to comprehend the full cognitive pathway required to exit from the loop.</p>
<p>When working with on-premise or public-API based LLMs, engineering choices must be made, specifically the <strong>First-Stage</strong> task of <em><strong>&ldquo;choosing the correct model&rdquo;</strong></em>.. and more generally with decision making processes where the length of associative (<em>contextual</em>) information is a requirement.</p>
<hr>
<h2 id="the-tldr--sure-timesa-wastin">The TL;DR .. Sure, Time&rsquo;s&rsquo;a Wastin'</h2>
<p>How about some quick blurbs from real human-to-human conversations, sourced from my career path right up through this past week. There are a few decently representative examples of short context vs long context.</p>
<blockquote>
<p>She&rsquo;s too verbose. She seems shy and quiet. She talks too much. She doesn&rsquo;t go deep on technical details. She goes on tangents and my attention span is too short to see the larger picture. She&rsquo;s hard to read. She&rsquo;s too open about everything. She&rsquo;s difficult to &ldquo;get into the weeds with&rdquo;. (that last one is my new favorite).</p>
</blockquote>
<p>It&rsquo;s always a double standard; I&rsquo;m used to it, contextually speaking.</p>
<ol>
<li>Context length is the amount of text an LLM can see at once.</li>
<li>CTL affects response quality, server specs, latency, API, cost.</li>
<li>A longer window can help the model reason across more information, but it also makes the system heavier to run.</li>
<li>Treat context length as a core system requirement always.</li>
<li>Define it, test it, document it, monitor it, know it, love it.</li>
<li>Adjust it based on real usage. It will be chunked, split, cached.</li>
</ol>
<hr>
<p><img src="/content/images/2026/05/burning-the-runway.960px-1-1.png" alt=""></p>
<h3 id="whats-this-about-burning-runways">What&rsquo;s this about Burning Runways?</h3>
<p>But before we do, and because everyone loves to compltain about 💸&hellip; it&rsquo;s really in ones best interests to understand how those bills become a reality, especially right now in the industry when <em>&ldquo;courting adoption&rdquo;</em> can be considered a write-off vs <em>&ldquo;chasing profits&rdquo;,</em> except for some <em>(oooh Claude, you&rsquo;re not being ethical lately)</em>.</p>
<p>Rewind from LLMs to the SaaS era&hellip; just look at real world stories of situations where applications were not controlled on their Context States, leading to <a href="https://serverlesshorrors.com/">tens and hundreds of thousands of dollars in SaaS Application API bills</a>:</p>
<ul>
<li><a href="https://serverlesshorrors.com/all/vercel-700">$738.420</a>, <em>&ldquo;I subscribe to Vercel Pro for $20 per month. I also added a spending limit of $120, so no nasty surprises, right?&rdquo;</em></li>
<li><a href="https://serverlesshorrors.com/all/firebase-cloudrun-72k">$72,000.999</a>, <em>&ldquo;We Burnt $72K testing Firebase + Cloud Run and almost went Bankrupt&rdquo;</em></li>
<li><a href="https://serverlesshorrors.com/all/cloudflare-120k">$120,000.420</a>, <em>&ldquo;Cloudflare took down our website after trying to force us to pay 120k$&rdquo;</em></li>
</ul>
<hr>
<h2 id="what-is-context-length">What is Context Length?</h2>
<p>Context length, sometimes called window size or max tokens per forward pass, is the number of tokens a model can attend to at once. It directly limits how much raw text, user history, or retrieved knowledge can be processed in a single inference step. Our brains do this constantly, we infer and make decisions based on memory and situational context of data, and neural networks do too.</p>
<p>Since every engineering stage ultimately decides what the model sees and how much it costs to see it, context length is a cross‑cutting quality attribute. Below we walk through each first‑stage task (including the critical &ldquo;Iterative Revision&rdquo; stage) and explain how important context length is, what engineering implications arise, and what concrete actions you can or should take and why.</p>
<p>For comparison analysis, click through the data table below to see model specific specifications, including Context Length, for various Open Source models <em>(these are not the latest LLMs, so go look at HuggingFace if you want more info).</em></p>
<p>Cardtainer (Shadow DOM, Self-contained)</p>
<hr>
<h2 id="context-length-what-it-changes">Context Length: What It Changes</h2>
<p>So, you want it hot and loose or you want those warmed-up caches pre-primed from snapshot slapshots to the top-layer of the mesh?</p>
<blockquote>
<p>&ldquo;Sure, but how much can the cache layers <em>(there&rsquo;s more than three)</em> handle before we overload the cluster with memory pressure or downstream write amplification?&rdquo;</p>
</blockquote>
<h4 id="small-context-windows-are-great-longer-also-yes">Small Context Windows Are Great, Longer Also Yes!</h4>
<ul>
<li>A small context window is fine for short prompts and mobile devices with NPUs that are fundamentally different from large GPUs like the H200 or MI300&hellip; or inference clusters serving thousands of them.</li>
<li>A larger window lets the model work across longer documents, multi-turn conversations, codebases, contracts, research notes, support histories, or anything else where the answer depends on more than one paragraph of information.</li>
</ul>
<p><strong>That does not make longer context automatically better.</strong> It makes the system more capable, but also more expensive and more operationally sensitive.</p>
<h3 id="longer-context-often-requires-more-resources">Longer Context Often Requires More Resources</h3>
<p>Yeaaaah, but we&rsquo;re not talking about <a href="https://huggingface.co/litert-community/gemma-4-E4B-it-litert-lm">Gemma4 on LiteRT</a>, this is a conceptual discussion for general LLM engineering. So&hellip;</p>
<ul>
<li>Longer Context = More memory pressure</li>
<li>Longer Context = Higher GPU requirements</li>
<li>Longer Context = Higher cost per request</li>
<li>Longer Context = More complex data handling</li>
<li>Longer Context = Requires more testing for latency, stability, and output quality</li>
</ul>
<p><strong>Context length is not just a model feature. It is an architecture decision.</strong></p>
<hr>
<h2 id="why-context-length-matters-across-the-whole-project">Why Context Length Matters Across the Whole Project</h2>
<p>Context length touches almost every part of an LLM project. It affects how we define the product, prepare the data, choose infrastructure, test the model, and manage cost.</p>
<h3 id="1-product-requirements">1. Product requirements</h3>
<p>Start with the real use case. Can the product work with short prompts, or does it need to process full documents, long chat histories, tickets, logs, reports, or contracts?</p>
<ul>
<li>That answer should be written into the project requirements early. For example:</li>
</ul>
<blockquote>
<p>The model must support at least an 8K token context window for production inference.</p>
</blockquote>
<p>Without that requirement, the team may pick a model, GPU profile, or data pipeline that works in a demo but fails under real usage. Confusion!</p>
<h3 id="2-data-collection">2. Data collection</h3>
<p>Long-context systems need long-form data. That may include:</p>
<ul>
<li>Full PDFs</li>
<li>Long chat transcripts</li>
<li>Complete contracts</li>
<li>Support cases</li>
<li>Technical documentation</li>
<li>Source code repositories</li>
<li>Meeting notes or knowledge base articles</li>
</ul>
<p>The team also needs to confirm that the data can legally be stored, processed, and used for training or retrieval. This is especially important when full documents are involved.</p>
<h3 id="3-data-chunking">3. Data chunking</h3>
<p>Most long documents still need to be split into chunks. The goal is to avoid cutting the text in a way that destroys meaning.</p>
<p>A good chunking pipeline should:</p>
<ul>
<li>Keep related content together</li>
<li>Avoid splitting sentences or sections awkwardly</li>
<li>Add overlap where needed</li>
<li>Track source metadata</li>
<li>Stay within the model’s context limit</li>
</ul>
<p>This is where a lot of long-context quality is won or lost. <strong>Bad chunking creates missing facts, fragmented answers, and unnecessary API calls</strong>.</p>
<h3 id="4-infrastructure">4. Infrastructure</h3>
<p>Longer context needs more memory, and therefore more money, more electricity, more attention to&hellip; you get the idea. It means larger GPUs, more careful batching, tighter monitoring, and better cost controls.</p>
<p>For example, moving from short prompts to 8k or 16k token workloads can change:</p>
<ul>
<li>GPU selection</li>
<li>vRAM requirements</li>
<li>Batch size</li>
<li>Throughput</li>
<li>Latency</li>
<li>Autoscaling behavior</li>
<li>Failure modes</li>
</ul>
<p>The infrastructure has to match the context target. Otherwise the system may work in testing and fall over in production.</p>
<h3 id="5-model-selection">5. Model selection</h3>
<p>Not every model handles long context well. Some models support long windows natively. Others can technically be extended, but quality may degrade if the model was not trained or tuned for that range.</p>
<p>When selecting a model, the team should check:</p>
<ul>
<li>Maximum supported context length</li>
<li>Quality at long context</li>
<li>Retrieval performance</li>
<li>Latency profile</li>
<li>Memory behavior</li>
<li>Positional encoding strategy</li>
<li>Cost per request</li>
</ul>
<p>The advertised context window is not enough. The model needs to perform well near the limit.</p>
<h3 id="6-experiment-tracking">6. Experiment tracking</h3>
<p>Context length should be logged as a first-class experiment variable.</p>
<p>Every run should capture:</p>
<ul>
<li>Context window size</li>
<li>Chunk size</li>
<li>Overlap strategy</li>
<li>GPU type</li>
<li>Memory usage</li>
<li>Tokens per second</li>
<li>Latency</li>
<li>Cost</li>
<li>Evaluation results</li>
</ul>
<p>This makes it possible to compare short-context and long-context runs without guessing.</p>
<h3 id="7-testing-and-validation">7. Testing and validation</h3>
<p>Long-context bugs often do not show up with short prompts.</p>
<p>The test suite should include:</p>
<ul>
<li>Short inputs</li>
<li>Medium inputs</li>
<li>Maximum-length inputs</li>
<li>Inputs near the limit</li>
<li>Realistic long documents</li>
<li>Multi-document prompts</li>
<li>Stress tests for memory and latency</li>
</ul>
<p>The goal is to verify that the model does not crash, truncate important information, hallucinate around missing context, or slow down beyond acceptable limits.</p>
<h3 id="8-documentation">8. Documentation</h3>
<p>Context decisions need to be documented. Future engineers should be able to understand:</p>
<ul>
<li>Why the context size was chosen</li>
<li>How chunking works</li>
<li>Where truncation can happen</li>
<li>Which GPU profile is required</li>
<li>How to increase or reduce the window</li>
<li>What tests must pass before changing it</li>
</ul>
<p>This prevents context length from becoming tribal knowledge.</p>
<h3 id="9-production-monitoring">9. Production monitoring</h3>
<p>Once users are in the system, monitor the actual request lengths. Track things like:</p>
<ul>
<li>Average prompt length</li>
<li>95th percentile prompt length</li>
<li>Maximum prompt length</li>
<li>Truncation events</li>
<li>Retrieval misses</li>
<li>API call volume</li>
<li>Latency by token count</li>
<li>Cost by request type</li>
</ul>
<p>If users start pushing against the window, that is an early signal. The system may need better chunking, better retrieval, caching, prompt compression, or a longer-context model.</p>
<h3 id="10-api-limits-and-cost-behavior">10. API limits and cost behavior</h3>
<p>Shorter context can create more API calls. If one user request has to be split into many chunks, the system may hit:</p>
<ul>
<li>Higher latency</li>
<li>Higher request volume</li>
<li>Rate limits</li>
<li>More billed API calls</li>
<li>More orchestration complexity</li>
<li>More opportunities for partial failure</li>
</ul>
<p>A larger-context model can reduce the number of chunks required for some workflows, but it may also increase the cost of each request.</p>
<p>The right answer is not always <em>“bigger window.”</em> The right answer is the smallest context window that reliably supports the use case.</p>
<hr>
<h2 id="the-practical-flow">The Practical Flow</h2>
<p>For a real project, the workflow looks like this:</p>
<ol>
<li>Define the longest input the product needs to handle.</li>
<li>Confirm the data exists and can legally be used.</li>
<li>Split the data into chunks that preserve meaning.</li>
<li>Choose infrastructure that can support the target window.</li>
<li>Select a model that performs well at that context length.</li>
<li>Track context length in every experiment.</li>
<li>Test the model with realistic long inputs.</li>
<li>Document how the window, chunking, and infrastructure work.</li>
<li>Monitor real user request lengths in production.</li>
<li>Adjust when usage patterns change.</li>
</ol>
<p>This keeps context length connected to the actual system, not just the model card. It&rsquo;s super duper important so get it right! Test, then test more, and automate the tests, and have a validation LLM with reasoning and validation post-training awareness &hellip; or you&rsquo;re gonna have a bad day.</p>
<hr>
<h2 id="what-this-means-in-practice">What This Means in Practice</h2>
<p>A longer context window can improve answer quality because the model can see more relevant information at once. It can also increase cost, latency, memory usage, and operational risk.</p>
<p>That tradeoff matters. For most production systems, context length should be treated like any other engineering constraint:</p>
<ul>
<li>Capacity</li>
<li>Latency</li>
<li>Reliability</li>
<li>Cost</li>
<li>Security</li>
<li>Compliance</li>
<li>Maintainability</li>
</ul>
<p>It is not just a prompt design detail. It affects the data pipeline, model choice, infrastructure plan, testing strategy, and production budget.</p>
<hr>
<h2 id="checklist-for-your-future-llm-project">Checklist for Your Future LLM Project</h2>
<p>Before committing to a context length (and quantization), make sure&hellip;</p>
<ol>
<li>What is the longest input this product needs to handle?</li>
<li>Are we working with snippets, full docs, or multi-doc workflows?</li>
<li>Do we have the right to store and process the full source data?</li>
<li>Are we chunking the data in a way that preserves meaning?</li>
<li>Do we need overlap between chunks?</li>
<li>Can the selected model support the required window?</li>
<li>Does the model still perform well near the edge of that window?</li>
<li>Do we have enough GPU memory for the target workload?</li>
<li>Are we tracking context length in experiments?</li>
<li>Are we testing short, medium, long, and maximum-length inputs?</li>
<li>Are we monitoring real request lengths in production?</li>
<li>Are we watching API limits, cache perf, tokens/ second, and cost?</li>
</ol>
<p>If the answer to those questions is clear, the project is probably handling context length correctly. If the answer is vague, context length is still an unresolved architecture risk.</p>
<hr>
<h2 id="heading"></h2>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>My EOY-2025 as told by the Ai</title>
      <link>https://winterschon.gitlab.io/en/posts/my-eoy-2025-as-told-by-the-ai/</link>
      <pubDate>Thu, 01 Jan 2026 20:58:01 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/my-eoy-2025-as-told-by-the-ai/</guid>
      <description><![CDATA[<p>I&rsquo;ll keep this simple, relatively speaking. There are a lot of inference providers on the market and most of them are either a waste of time, a waste of money, or wasteful in their resource burn and lack of attention to optimization. We do not have time to waste.</p>
<p>People in the industry are playing hard and fast, and whether those qualities may be considered a good thing is up for endless debate, but not right now. Right now I&rsquo;m going to show some End of Year snapshots which are relevant to the blog&rsquo;s purpose: wtf am I doing here anyway?</p>
<p>2025 was mostly extremely challenging, and mostly in helpful ways, but also featured a repetition of lessons which it seems I need to reflect on for additional forward momentum.</p>
<p>Let&rsquo;s take a look at some of my core qualities as told by the oft-loved and oft-maligned OpenAi&rsquo;s Chat-GPT 💟.</p>
<hr>
<h3 id="your-year-painted-in-pixels">Your Year, Painted in Pixels</h3>
<p>Very close, nice work GPT. While I do not have a 400GbE switch on my desk, I do have a few 100GbE 32-port switches in the racks, and occasionally 200GbE NICs and optics will float around the test bench.</p>
<p><img src="/content/images/2026/01/GPT-00-EOY2025-1222-153913-2-1.png" alt=""></p>
<hr>
<h3 id="the-architect-archetype--39-of-chatgpt-users">The Architect Archetype ~ 3.9% of ChatGPT Users</h3>
<p>It&rsquo;s true! Over the 25 years of this career I&rsquo;ve held architecture specific roles across the domains of Hardware Systems, Infrastructure Automation, Databases, and HPC Storage realms. It&rsquo;s what I&rsquo;ve always wanted to do, going all the way back to 1985 when introduced to the 4.77MHz IBM PC, Model 5150.</p>
<p><img src="/content/images/2026/01/GPT-01-EOY2025-1222-153913-1.png" alt=""></p>
<hr>
<h3 id="personality-specialist-planner-conceptual">Personality: Specialist, Planner, Conceptual</h3>
<p>That&rsquo;s fairly accurate, more so if we add &ldquo;spatial reasoning&rdquo; to a list of cognitive methods.</p>
<blockquote>
<p>&ldquo;Thinks in structures and systems. Uses ChatGPT to design elegant frameworks and long-term strategies within a domain.&rdquo;</p>
</blockquote>
<p><img src="/content/images/2026/01/GPT-02-EOY2025-1222-153913-1.png" alt=""></p>
<hr>
<h3 id="a-datacenter-in-the-living-room">A Datacenter in the Living Room?</h3>
<p>Close in accuracy, however the <em>&ldquo;living room datacenter&rdquo;</em> is more commonly located in a home-office room <em>(when living in an apartment),</em> or in a dedicated area of the garage with HVAC filtration + dedicated 208/220/240V power, and the requisite automated cooling systems <em>(usually Tripp-Lite units with duct-blowers).</em> For systems at home the machines are often bought as separate server components along with a 4-5U chassis + rails + multiple sub-50 decibel large-format 120-180mm fans. Systems with high RPM 40-80mm axial screamers belong in a proper colocation facility.</p>
<p><img src="/content/images/2026/01/GPT-03-EOY2025-1222-153913-1.png" alt=""></p>
<h4 id="how-about-that-homelab---is-it-in-a-constant-state-of-flux">How about that Homelab - is it in a constant state of flux?</h4>
<p>Yes, mostly. It&rsquo;s often helpful for proof of concept tests, hypothesis validation, and running benchmarks without having to drive to the DC or go back and forth with Remote Hands requests. Plus, lots of fun going on with hardware at home, but sometimes results in broken nails 😔.</p>
<p><img src="/content/images/2026/01/GPT-DC-EOY2025-1025-00.png" alt=""></p>
<p>Messy cables? Sometimes. Labels? Sometimes.</p>
<p><img src="/content/images/2026/01/GPT-DC-EOY2025-1215-01.jpg" alt=""></p>
<p>The homelab is often rebuilt: storage devices, fiber, dac, cables, and test clusters revised.</p>
<h5 id="homelab-sure-but-how-about-those-colocation-photos-instead">Homelab, sure&hellip; but how about those colocation photos instead?</h5>
<p>As we&rsquo;ve seen, some of the server hardware lives at home in my 25U shorty-racks, some is <a href="https://he.net">across the bay at a datacenter</a> where big-loud machines require CRAC style cooling, and some of it is spread across the globe at other colocation facilities where The Providers have megawatt and gigawatt infra capacity. My personal infrastructure is a hybrid design, utilizing everything from embedded systems to multi-GPU hosts to public-cloud virtual machines&hellip; so, let&rsquo;s see a bit more&hellip;</p>
<ul>
<li>Recent datacenter photos: <a href="https://prose.winterschon.com/a-recent-datacenter-colo-visit/">https://prose.winterschon.com/a-recent-datacenter-colo-visit/</a></li>
</ul>
<hr>
<h3 id="your-chat-style">Your Chat Style</h3>
<p>The analysis says&hellip; well, it&rsquo;s fairly accurate for a description of being in-person as well as at the keyboard during remote meetings or daily chats.</p>
<p>Technical or otherwise, usually this is consistent. I&rsquo;m often chatty, verbose, attentive, talkative, opinionated, even positively bubbly at times. Unless you catch me on a day where those qualities are supplanted by the clouds of quietly recalcitrant moods - the type which are grounded on a dualistic view of existence best described as Stoicistic-Nihilism, having been sourced from far too many post-traumatic stress events endured.</p>
<blockquote>
<p>Your Chat Style: Direct, technically precise, often layered with humor and a critical edge, mixing structured reasoning with conversational spontaneity and sharp observational wit.</p>
</blockquote>
<p><img src="/content/images/2026/01/GPT-04-EOY2025-1222-153913-1.png" alt=""></p>
<hr>
<h3 id="your-2025-chat-stats">Your 2025 Chat Stats</h3>
<p>Hold on now. I&rsquo;ve used em dashes since 6th grade English class—so if seeing those in my writings is giving an impression that I use LLMs for all of my authoring is quite incorrect. For all of <a href="https://www.theringer.com/2025/08/20/pop-culture/em-dash-use-ai-artificial-intelligence-chatgpt-google-gemini">those people who don&rsquo;t like them</a> I have a solution: go to the settings section and set your rules and move on with your life. 😏</p>
<ul>
<li><strong>Total Chats</strong>: 720</li>
<li><strong>Messages sent</strong>: 4,861 (not tokens, messages)</li>
<li><strong>Chattiest day</strong>: September 5th (why? we&rsquo;ll need to see&hellip;)</li>
<li><strong>Images generated</strong>: 3 (Sora kinda sucks)</li>
<li><strong>Em-Dashes &ldquo;Exchanged&rdquo;</strong>: 1,882</li>
<li><strong>Top Messages Sent</strong>: 1% (percentile)</li>
</ul>
<p>Regardless of those stats, even with my use of ChatGPT&rsquo;s advancements with their &ldquo;Pro Account&rdquo;, most of my Ai/ML occurs on self-made infrastructure. I don&rsquo;t rely on closed source, I don&rsquo;t like closed source, and I don&rsquo;t like non-democratized intelligence services that are just in it for profit. My career was built on Open Source and this current infra uses tooling like Ollama, Open-WebUI, vLLM, llama.cpp, CUDA, PyTorch, ROCm, and many other examples of collaborative ingenuity - free to use, free to improve, so please contribute if you can.</p>
<p><img src="/content/images/2026/01/GPT-05-EOY2025-1222-153913-1.png" alt=""></p>
<hr>
<h3 id="three-big-themes-of-2025">Three Big Themes of 2025</h3>
<ol>
<li><strong>Building Ultra-Low-Latency Systems</strong> (true)</li>
<li><strong>Experimenting, Measuring, Refining</strong> (true)</li>
<li><strong>Engineering Meets Everyday Life</strong> (true)</li>
</ol>
<p><img src="/content/images/2026/01/GPT-06-EOY2025-1222-153913-1.png" alt=""></p>
<hr>
<h2 id="thoughts-on-2026-ai-industry-trends--rules">Thoughts on 2026, Ai Industry Trends != Rules</h2>
<p>Working in the Ai/HPC/ML industry, an observable fact is that the majority of consumer-facing Ai companies are still trying to figure out this new landscape, how it works, why anyone should care, and how to monetize whatever it is that they&rsquo;re focused on.</p>
<p>Most will repeat the errors of the past, most will fail, most will malign the tech while misunderstanding nearly everything about the topic; and that&rsquo;s fine. That&rsquo;s the routine in Silicon Valley, but it doesn&rsquo;t have to be.</p>
<ol>
<li><a href="https://cansel-soergens.com/2022/08/01/okr-for-complex-problems/">We cannot solve today&rsquo;s problems with yesterday&rsquo;s methods</a>, and that is a simple fact. We need the core technologies involved with Ai in order to resolve the massive amount of tech debt from earlier generations, but we need to stop expecting the same success from the same methods from the past; this is not the same world as 10, 20, or even 5 years ago.</li>
<li>The current anti-Ai mentality in mass-media is occurring despite companies like IBM, Cray, Fujitsu, BullSequana, and a handful of others with <a href="https://top500.org/lists/top500/2025/11/highs/">Top-500 dominant postures</a> being focused on Ai-enabled Supercomputing, HPC, and acceleration hardware domains for well over two decades. These clusters have been active at research facilities with names like <a href="https://home.cern/news/press-release/cern/cern-leads-new-european-community-initiative-supercomputing">CERN</a>, <a href="https://ats.org/our-impact/rosman-center-fuels-technion-supercomputing/">Technion</a>, and of course the DoD and Military labs. These clusters keep us safe, they advance human understanding, assist with solving otherwise unsolvable problems, and are used to maintain the systems and functions our current world relies on for security and the advancement of human potential.</li>
<li>Ai is not just chatbots, it&rsquo;s not limited to multi-modal agentic buzz-words, but that&rsquo;s a tangent for another day. Datacenters are not ruining the world like mass-destruction of rainforests just so people can eat more cows. Conversely, we have an entire section of the Supercomputing industry <a href="https://top500.org/lists/green500/">focused on green energy and resource efficiency</a>. Medical advancements, brain research, climate science and modeling, cancer research, etc&hellip; all of this is and has been advanced by Ai - but it&rsquo;s not from the consumer side and it&rsquo;s not how the media presents the information. Gosh, I wonder what incentive the media has to engage in such maligning tactics?</li>
</ol>
<h3 id="how-do-we-move-forward">How Do We Move Forward?</h3>
<p>In spite of or despite anti-Ai sentiments, while the public-facing corporate marketing landscape fights for <em>&ldquo;Consumer Economy Dominance&rdquo;</em>, engineers and architects like myself are busy in the background innovating with <em>(sometimes our own)</em> Ai/ML systems and <em>(sometimes our own RSU/ISO/BST* funded)</em> heavy-compute big-data storage infrastructures.</p>
<p>People like myself do this because we love it <em>(mostly, nothing is perfect)</em>, and because we want to improve the lives of those around us, not to simply make money and acquire material goods. These skills require compromise, dedication, attention to detail, and a deeply held desire to improve the human condition through personal investment of time, mentoring younger engineers, and the occasional runway.</p>
<h4 id="together-with-the-ais-we-will-build-a-better-ultron">TOGETHER WITH THE AIs WE WILL BUILD A BETTER ULTRON</h4>
<p>Kidding, mostly. <a href="https://marvel.fandom.com/wiki/Ultron_(Earth-616)">Ultron</a> had some good philosophical points, but we&rsquo;re not in Strawberry Fields or the BS about paperclips from unimaginative and uninformed bloggers; this is real life and The Terminator is not around the corner. Pass the espresso and let&rsquo;s check the local-node TTFT and CHRs to see how SkyNet is doing. ❤️</p>
<hr>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>A Recent Datacenter Colo Visit</title>
      <link>https://winterschon.gitlab.io/en/posts/a-recent-datacenter-colo-visit/</link>
      <pubDate>Sat, 06 Dec 2025 06:06:59 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/a-recent-datacenter-colo-visit/</guid>
      <description><![CDATA[<p>A short post with annotated photos should be sufficient for this post. Perhaps more detail later, but the short version is that just about everything in racks 1,2,3 – aka Cab.68, 69, 70 – is going to be mostly upgraded. My hardware has been here for several years and it needs a refresh.</p>
<p>So, where to begin&hellip; let&rsquo;s see&hellip; we start with the <a href="https://www.raptorcs.com/TALOSII/">POWER9</a> at home on my desk, and me looking a wreck in the morning&hellip;</p>
<p><img src="/content/images/2025/12/IMG_20251203_161129_750_960px-1.png" alt=""></p>
<hr>
<p>Where is this wonderful place that brings me so much joy? <a href="https://he.net">Hurricane Electric</a> of course.</p>
<blockquote>
<p>For Silicon Valley datacenter nerds, Hurricane Electric’s Fremont and San Jose facilities are the spiritual home of budget-friendly colo: cabinet and partial-cabinet plans with same-day turn-up, straightforward BGP, and native v6 on a backbone that’s been aggressively peering since the early 2000s, making it a historically significant and still notably affordable place to park gear in the Bay Area.</p>
</blockquote>
<p>And as such&hellip; it&rsquo;s where most of my gear resides. What was once a HomeLab at home has become a situation of _&ldquo;let&rsquo;s move everything into the colo and tell PG$E to suck it on their $300-600/month apartment electric bills <em>(which is physically impossible, they&rsquo;re a proven CA Governor sponsored monopoly)</em>.</p>
<h3 id="tools-and-so-forth">Tools and So Forth</h3>
<p>How about a photo of my lovely <a href="https://www.wera.de/en/tools/highlights-great-tools/textile-boxes/">Wera designed Datacenter tool bag</a>? Yes! It&rsquo;s rugged and strong and doesn&rsquo;t distort with heavy items. Love it. At the top of the photo is whichever purse happened to be brought along that day; Kors or Burbs or Coach or whichever fit size requirements at the time.</p>
<p>Not shown: a squared-rasp-file occasionally required for <em>&ldquo;standardizing&rdquo;</em> the rail mounting holes in those old-ass blue racks. My right hand still has scars from years ago - before owning that rasp to fix the burrs.</p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-19_10.png" alt=""></p>
<hr>
<h3 id="always-getting-injured-but-thats-ok">Always Getting Injured, but that&rsquo;s OK.</h3>
<p>Now, about those old scars - there are surely new ones periodically. While getting ready for the colo, just standing at the sink with some sheers, cutting&hellip; cutting&hellip; and ohffs that&rsquo;s my finger. Yep, it&rsquo;s definitely deep! Apply pressure! Wrap it tight! Not too tight though&hellip; and what was at my disposal? Paper medical tape and clear plastic industrial packing tape.</p>
<p>FINE. It&rsquo;s FINE. The bleeding mostly stopped, and off we go to the datacenter!</p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-15_4-1.png" alt=""></p>
<p>done cut my self real bad</p>
<hr>
<h3 id="networking-servers-drives-dpus-and-all-the-other-fun">Networking, Servers, Drives, DPUs, and all the other fun!</h3>
<p>Ok, enough rambling. Here&rsquo;s a photo gallery with annotated pics. Each rack has some major revisions to undergo, which requires planning and documentation updates and all the usual production readiness routines.</p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-16_5.png" alt=""></p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-16_6.png" alt=""></p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-17_7.png" alt=""></p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-18_8.png" alt=""></p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-18_9.png" alt=""></p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-19_11.png" alt=""></p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-20_12.png" alt=""></p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-21_13.png" alt=""></p>
<hr>
<h3 id="more-hardware---more-arm64">More Hardware - More ARM64!</h3>
<p>Now you may wonder, where is all of my ARM64 equipment and the other clusters? Those are still in the 2x 25U racks at home – they&rsquo;ll be migrated to the colo as well, once I convert them to use industrial Compact-PCI chassis blade mounts with integrated/redundant power and backplane. I bring you&hellip; the <em>ADLINK cPCIS-2632R 3U Compact PCI chassis.</em></p>
<p><img src="/content/images/2025/12/ADLINK-cPCIS-2632R-CompactPCI.webp" alt=""></p>
<p>Industrial ADLINK cPCIS-2632R CompactPCI</p>
<hr>
<h3 id="sata3-really">SATA3&hellip; Really?</h3>
<p>And we wrap up the day&rsquo;s fun with&hellip; decisions on what to do with these SATA3 SSDs recovered from some old R420 systems&hellip; perhaps the LC922 boxes can use those + some 240GB Intel or Samsung boot drives. These days I never bother with SATA, only SAS or NVMe. <em>HoHumBoringSataSoSlow.</em></p>
<p><img src="/content/images/2025/12/ResizedImage_2025-12-05_20-53-14_2.png" alt=""></p>
<hr>
<h3 id="a-tale-of-two-labs---one-is-real-the-other">A Tale of Two Labs - One is Real, The Other&hellip;</h3>
<p>I love having my own hardware for my own labs. I love not having to rely on a corporation over-promising on lab resources for the architecture design process – real physical hardware which is absolutely required for <em><strong>&ldquo;Proof of Concept Engineering&rdquo;</strong></em>.</p>
<p>As a wise-one once related, not everything can be a <em>Power Point Presentation.</em> Engineers need physical hardware for validation workflows, otherwise it&rsquo;s all just vaporware.</p>
<p>🙉 🙈 🙊</p>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>LLM Variants - Purpose Tuned Models</title>
      <link>https://winterschon.gitlab.io/en/posts/llm-variants-purpose-tuned-models/</link>
      <pubDate>Fri, 15 Aug 2025 20:19:05 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/llm-variants-purpose-tuned-models/</guid>
      <description><![CDATA[<p>When deploying local models or when accessing remote API based LLMs with one&rsquo;s tools of choice, there comes a time <em>(and that time is now)</em>, when the options presented are vast and various. One may consider, just give me <em>&ldquo;the default&rdquo;</em>, but there is no default model. These days we have variants, where one LLM has been quantized or re-trained or post-trained or adapted in various ways to fine tune its abilities and focus.</p>
<p>Let&rsquo;s inspect one of my favorites lately, <a href="https://huggingface.co/collections/Qwen/qwen3-67dd247413f0e2e4f653967f">Qwen3-235B</a>. This is not a model that one commonly sees running outside of large compute clusters and supercomputers, because the 235 billion parameters require substantially more resources than most infrastructures have available. Often when we see Qwen3 in-use on not-supercomputers, it&rsquo;s the 32B variant, which can run well enough on a 16GB+ vRAM capable GPU. <a href="https://huggingface.co/Qwen/collections">Querying the models on Huggingface and one will see there are 32B on the low-side all the way to 480B</a> for the supercomputers and research clusters, and many customized ones built from the originals.</p>
<p>Parameter quantity aside, as we&rsquo;re not focused on that at the moment, let&rsquo;s look at the primary high-level differences, as well as low-level technical differences, between LLM variants like &ldquo;Coder&rdquo;, &ldquo;Thinking&rdquo;, &ldquo;Instruct&rdquo;. Over at the <a href="https://cloud.cerebras.ai/">Cerebras Inference Cloud</a> we can use the following types.</p>
<table>
  <thead>
      <tr>
          <th>Qwen3-32B</th>
          <th>Qwen3-235B-Coder</th>
          <th>Qwen3-235B-Instruct</th>
          <th>Qwen3-235B-Thinking</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Base LLM</td>
          <td>Code Generation</td>
          <td>Sequence Executions</td>
          <td>Complex Reasoning</td>
      </tr>
  </tbody>
</table>
<p><img src="/content/images/2025/08/Cerebras-Inference-2025-08-15-124030.png" alt=""></p>
<hr>
<h3 id="high-level-differences">High Level Differences</h3>
<ul>
<li><strong>Base Model</strong>: Generalist, no task specialization.</li>
<li><strong>Coder</strong>: Focuses on <strong>programming efficiency</strong> (e.g., auto-completion, error fixing).</li>
<li><strong>Instruct</strong>: Prioritizes <strong>user safety and conversational alignment</strong> (e.g., chatbots).</li>
<li><strong>Thinking</strong>: Targets <strong>structured reasoning</strong> (e.g., math proofs, logical puzzles).</li>
</ul>
<table>
  <thead>
      <tr>
          <th><strong>Variant</strong></th>
          <th><strong>Purpose</strong></th>
          <th><strong>Users</strong></th>
          <th><strong>Features</strong></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>Base</strong></td>
          <td>General-purpose language modeling</td>
          <td>Researchers, Developers</td>
          <td>Broad knowledge coverage, foundational capabilities for text generation</td>
      </tr>
      <tr>
          <td><strong>Coder</strong></td>
          <td>Code generation &amp; understanding</td>
          <td>Software Developers</td>
          <td>Optimized for programming tasks (code completion, debugging, multi-language support)</td>
      </tr>
      <tr>
          <td><strong>Instruct</strong></td>
          <td>Instruction-following for conversational tasks</td>
          <td>End-users, Chatbots</td>
          <td>Aligned with human preferences, safety filters, chat template adherence</td>
      </tr>
      <tr>
          <td><strong>Thinking</strong></td>
          <td>Complex reasoning &amp; step-by-step problem-solving</td>
          <td>Analysts, Researchers</td>
          <td>Enhanced logical reasoning, chain-of- thought generation, multi-step inference</td>
      </tr>
  </tbody>
</table>
<h3 id="low-level-differences">Low Level Differences</h3>
<ul>
<li><strong>Tokenizer</strong>: Coder extends vocabulary for code symbols (e.g., <code>def</code>, <code>-&gt;</code>), while others reuse the base tokenizer.</li>
<li><strong>Fine-Tuning</strong>: Instruct uses RLHF for alignment; Thinking uses process-based rewards for intermediate steps.</li>
<li><strong>Decoding</strong>: Thinking enforces iterative step generation via modified KV-cache management, unlike autoregressive defaults.</li>
<li><strong>Loss Functions</strong>: Coder weights syntax validity; Thinking penalizes incorrect reasoning paths early.</li>
</ul>
<table>
  <thead>
      <tr>
          <th><strong>Variant</strong></th>
          <th><strong>Data</strong></th>
          <th><strong>Arch</strong></th>
          <th><strong>Loss</strong></th>
          <th><strong>Infer</strong></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>Base</strong></td>
          <td>General web text, CommonCrawl, books, articles, balanced domain coverage</td>
          <td>Standard Transformer architecture, no task-specific changes</td>
          <td>Standard cross- entropy loss over next-token prediction</td>
          <td>Autoregressive generation; neutral tone, no task- specific formatting</td>
      </tr>
      <tr>
          <td><strong>Coder</strong></td>
          <td>Code repositories, 30%+ code data</td>
          <td>Extended tokenizer with code-specific tokens; syntax-aware positional embeddings</td>
          <td>Weighted cross- entropy loss favoring syntactically valid code constructs</td>
          <td>Generates code with proper indentation, supports infilling</td>
      </tr>
      <tr>
          <td><strong>Instruct</strong></td>
          <td>Instruction-response pairs (self-instructed data, human- annotated dialogues)</td>
          <td>No structural changes; fine-tuned attention layers for instruction parsing</td>
          <td>SFT + RLHF, Proximal Policy Optimization with safety rewards</td>
          <td>Outputs structured responses</td>
      </tr>
      <tr>
          <td><strong>Thinking</strong></td>
          <td>Reasoning datasets (GSM8K, MATH, HotpotQA), iterative problem-solving examples</td>
          <td>Added &ldquo;reasoning head&rdquo; for intermediate step prediction; modified KV-cache for iterative decoding</td>
          <td>Process-based supervision loss (rewarding correct intermediate steps)</td>
          <td>Explicitly outputs reasoning steps (eg, &ldquo;Step 1: &hellip; Step 2: &hellip;&rdquo;) before final answer</td>
      </tr>
  </tbody>
</table>
<h3 id="use-case-mapping">Use Case Mapping</h3>
<ul>
<li>Need <strong>code generation</strong>? → <strong>Coder</strong></li>
<li>Building a <strong>chatbot</strong>? → <strong>Instruct</strong></li>
<li>Solving <strong>multi-step problems</strong>? → <strong>Thinking</strong></li>
<li>Researching <strong>foundational capabilities</strong>? → <strong>Base</strong></li>
</ul>
<h3 id="visualizing-decisions-via-flowchart"><strong>Visualizing Decisions via Flowchart</strong></h3>
<p>Visualizes the evolution from base model to specialized variants, emphasizing technical divergence points, which you can see in the live rendering panel over at <a href="https://mermaid.live/edit#pako:eNpdk1tv2jAUgP_KkSvtZQkjQAhk0qRCqDZpnbSWpzV9MMkxWE3syHbaUuC_7zhQxspL8OX7fC72jhW6RJayteHNBpZZroB-1w-_X1ANw8EwnsGMW4Rb2lY9Qhh-2y8NlwpL0ArWqNDwCl5wBQ5f3R5mF-TjSdZRn2FOCii0aVoLn8DpJ1TyDQ0Qh8pKrfYwv6BDv998cNzfLL_c_fx-4w-XyjrTFo5Iu4fsEv1xWvpA3yG3Wkm1hpI7ysr5QKSjFJx8RiiRikGre1hcypYbqZ5ommRH3czrYBY95OzecVVyU0JhtLUhKmd0s4WKBnmufmHrfHmkEmhQFZizU0TzTjH3Cp9maBsspJDFsSyevd8qx19D_sINAtYrLH1o9mzIOkPmDV1BeCXXqqYAPMsFui0IWVFu_5BFhyw65FyJDfLSIw6bcLUNLX2pU0vQrWta17FHuqi4tRkKWPn7QO4qvcKxSIQIqNgUdnoVTaZ9Ib5-2P_MjeTKnRAxFgLLMxIPilHELxG4DmbdGf9NzoMsWLyraIUFdGVlyVLqMwasRlNzP2Q7T-XMbbCmcqf0l_rzlLNcHYhpuPqjdf2OGd2uNywVvLI0ahu6FphJTo-hPs9S4-geznWrHEunnYKlO_bK0jjpjSfJKOkPJoP-YBonAduyNJoOe3HSHw2jQTKMptF4dAjYW3dovzdJ4oBhKZ02t8eH172_w1_u1yG-">Mermaid.Live</a></p>
<p><img src="/content/images/2025/08/qwen-models-mermaid.png" alt=""></p>
<pre tabindex="0"><code>graph TD
    A[Qwen3-235B Base Model] --&gt;|Trained on general web text| B[Qwen3-235B]
    A --&gt;|+ Code corpus &amp; tokenizer extension| C[Qwen3-235B-Coder]
    A --&gt;|+ SFT/RLHF on instructions| D[Qwen3-235B-Instruct]
    A --&gt;|+ Reasoning datasets &amp; iterative decoding| E[Qwen3-235B-Thinking]

    B --&gt; B1[&#34;Standard cross-entropy loss\nNeutral inference&#34;]
    C --&gt; C1[&#34;Code-specific tokens\nSyntax-aware embeddings&#34;]
    D --&gt; D1[&#34;RLHF alignment\nSafety filters&#34;]
    E --&gt; E1[&#34;Reasoning head\nStep-by-step CoT output&#34;]

    classDef base fill:#e6f7ff,stroke:#1890ff;
    classDef variant fill:#f6ffed,stroke:#52c41a;
    class A,B base;
    class C,D,E variant;
</code></pre><hr>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>Good Morning from the Glossary</title>
      <link>https://winterschon.gitlab.io/en/posts/good-morning-from-the-glossary/</link>
      <pubDate>Fri, 08 Aug 2025 14:19:44 +0000</pubDate>
      
      <guid>https://winterschon.gitlab.io/en/posts/good-morning-from-the-glossary/</guid>
      <description><![CDATA[<p>This content has been migrated to the Lexicon page: <a href="https://prose.winterschon.com/lexicon/">https://prose.winterschon.com/lexicon/</a></p>
]]></description>
      
    </item>
    
    
  </channel>
</rss>
