<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Victor Grösser – Blog</title><link>https://victorgrosser.nl/blog/</link><description>AI news, agents and MCP, legal AI, space and tech, homelab and infra.</description><language>en</language><atom:link href="https://victorgrosser.nl/blog/rss.xml" rel="self" type="application/rss+xml"/><lastBuildDate>Tue, 20 Oct 2026 09:00:00 +0000</lastBuildDate><item><title>Space in April–October 2026: Artemis II Around the Moon, Roman Launches, Starship Reaches Orbit</title><link>https://victorgrosser.nl/blog/space-april-october-2026-recap/</link><guid isPermaLink="true">https://victorgrosser.nl/blog/space-april-october-2026-recap/</guid><pubDate>Tue, 20 Oct 2026 09:00:00 +0000</pubDate><description>Artemis II flew four astronauts around the Moon, Roman launched and Starship reached orbit: a sourced look at spaceflight from April to October 2026.</description><category>Space &amp; Tech</category><category>space</category><category>artemis</category><category>starship</category><category>nasa</category><category>monthly-recap</category><content:encoded><![CDATA[<p><em>Period covered: April–October 2026. Written on 20 October 2026.</em></p>
<p>Most of this blog is about AI, but I follow spaceflight for the same reason I follow model releases: it's engineering under hard constraints, done in public, where you can see what works. These six months had three milestones I want to write down properly, plus a few smaller stories. All numbers come from the sources at the bottom.</p>
<h3 id="artemis-ii-humans-around-the-moon-again">Artemis II: humans around the Moon again</h3>
<p>On <strong>1 April 2026</strong>, NASA's Space Launch System launched Orion on Artemis II, the first crewed flight of the Orion spacecraft. The crew: NASA astronauts <strong>Reid Wiseman, Victor Glover and Christina Koch</strong>, and CSA astronaut <strong>Jeremy Hansen</strong>.</p>
<p>On 6 April, six days into the mission, they passed the record for the farthest distance humans have travelled from Earth, previously held by Apollo 13 since 1970. NASA's official figure for their farthest point is <strong>252,756 miles</strong> (about 406,800 km) from Earth; NASA updated its release on 7 May to reflect the official mileage, with 695,081 miles flown in total.</p>
<p>They splashed down off San Diego on <strong>10 April</strong> at 5:07 p.m. PDT, after a nearly ten-day flight.</p>
<h4 id="the-heat-shield-story">The heat shield story</h4>
<p>The part I found most interesting is the heat shield. After Artemis I in 2022, engineers had found unexpected char loss on Orion's Avcoat heat shield. Instead of only redesigning the shield, NASA changed the <strong>re-entry trajectory</strong> for Artemis II, shortening the maximum downrange distance so the shield spent less time in the temperature range where the Artemis I problem occurred.</p>
<p>In a 15 October analysis, NASA reported that it worked: Orion entered within 192 feet of its targeted entry interface, splashed down 0.59 miles from the predicted point, and the cracking and char loss were reduced by a factor of ten compared to Artemis I, with nine spots of char loss versus many more on the earlier flight. Peak velocity was about 39 times the speed of sound and external temperatures exceeded 4,000 °F, while the cabin stayed in the mid-70s °F.</p>
<p>I like this as an engineering lesson: sometimes the cheapest fix is changing how you operate a system rather than rebuilding it. It's the same instinct as changing a prompt or a retrieval step before retraining a model.</p>
<h3 id="blue-origin-s-setback">Blue Origin's setback</h3>
<p>Blue Origin had planned to launch its first <strong>Blue Moon Mark 1</strong> cargo lander, <em>Endurance</em>, on New Glenn as soon as late summer, carrying NASA science payloads (designated "Moon Base 1" at a NASA event on 26 May). Spaceflight Now reported on 30 June that, after a New Glenn anomaly, the company was working through return-to-flight logistics. It's a reminder that the lunar programme depends on several commercial vehicles all maturing at once.</p>
<h3 id="july-the-end-of-pegasus-and-a-satellite-rescue">July: the end of Pegasus and a satellite rescue</h3>
<p>On 3 July Northrop Grumman flew the <strong>46th and final Pegasus XL</strong>, the air-launched rocket, carrying Katalyst Space Technologies' LINK spacecraft on a NASA-backed mission to capture NASA's Neil Gehrels Swift Observatory and raise it to a higher orbit. The day before, the final Atlas V in the 551 configuration launched Amazon Leo satellites. Small entries in a launch log, but both mark the end of long-running vehicles.</p>
<h3 id="august-the-roman-space-telescope">August: the Roman Space Telescope</h3>
<p>On <strong>30 August 2026</strong> at 7:26 a.m. EDT, a SpaceX Falcon Heavy launched NASA's <strong>Nancy Grace Roman Space Telescope</strong> from Launch Complex 39A at Kennedy Space Center. Roman separated from the upper stage at 7:57 a.m. and began a roughly three-month journey to the Sun–Earth L2 point, about a million miles from Earth.</p>
<p>Roman is a dark-energy and dark-matter mission with a field of view SpaceX describes as at least 100 times larger than Hubble's. Reuters called it a roughly $4 billion project and noted its origin as a repurposed spy-satellite telescope. For data people, Roman is interesting because its value is in survey scale: billions of galaxies, and a lot of downstream machine learning.</p>
<h3 id="september-starship-reaches-orbit-with-a-caveat">September: Starship reaches orbit, with a caveat</h3>
<p>On <strong>28 September</strong> (US time), on its 14th test flight, SpaceX's Starship reached orbit for the first time. NPR reported that the 33-engine Super Heavy booster lifted off from Starbase in Texas, that one of the ship's six engines shut down early, and that SpaceX still decided to go for orbit. Starship orbited Earth twice before splashing down in the Pacific; the planned ten-hour mission was cut to about three hours because of the engine issue.</p>
<p>Reuters reported the same day that the engine failure could complicate NASA's lunar plans, since Starship is one of the two vehicles NASA selected to land astronauts on the Moon. In-space propellant transfer, which a lunar Starship needs, is still to be demonstrated.</p>
<h3 id="what-comes-next">What comes next</h3>
<p>NASA's Artemis page describes <strong>Artemis III</strong>, planned for 2027, as a demonstration mission in low Earth orbit to evaluate one or both commercial human landing systems from SpaceX and Blue Origin. The return of astronauts to the lunar surface is now tied to <strong>Artemis IV</strong>, and NASA anticipates a further surface mission, Artemis V, in 2028. That makes the next year mostly about Starship and Blue Moon: refuelling, reliability and cadence.</p>
<h3 id="what-i-take-from-it">What I take from it</h3>
<p>The successes of this period come from the same loop: fly, measure, adjust. Artemis II fixed a heat-shield risk with a trajectory change backed by test data; Starship reached orbit on an iterative test campaign and still published a partial failure. That's how I like to build software and AI systems too: small, measurable steps in public, with honest notes about what didn't work.</p>
<p>On the AI side of the same months, see my <a href="/blog/ai-models-july-october-2026-recap/">AI models recap for July–October 2026</a> and the <a href="/blog/open-weight-models-april-october-2026-recap/">open-weight models recap</a>. More links: <a href="/links/">links &amp; repos</a>.</p>
<h3 id="sources">Sources</h3>
<ul><li><a href="https://www.nasa.gov/centers-and-facilities/johnson/artemis-ii-mission-milestones-an-image-and-video-recap/" rel="noopener">NASA: Artemis II mission milestones, image and video recap</a></li><li><a href="https://www.nasa.gov/news-release/nasas-artemis-ii-crew-eclipses-record-for-farthest-human-spaceflight/" rel="noopener">NASA: Artemis II crew eclipses record for farthest human spaceflight</a></li><li><a href="https://www.nasa.gov/news-release/nasa-welcomes-record-setting-artemis-ii-moonfarers-back-to-earth/" rel="noopener">NASA: NASA welcomes record-setting Artemis II moonfarers back to Earth</a></li><li><a href="https://www.nasa.gov/missions/artemis/artemis-2/rigorous-analysis-confirms-nasas-artemis-ii-heat-shield-performance/" rel="noopener">NASA: Rigorous analysis confirms Artemis II heat shield performance (15 October 2026)</a></li><li><a href="https://www.nasa.gov/humans-in-space/artemis/" rel="noopener">NASA: Artemis programme</a></li><li><a href="https://spaceflightnow.com/2026/06/30/blue-origin-outlines-return-to-flight-logistics-for-its-new-glenn-rockets/" rel="noopener">Spaceflight Now: Blue Origin outlines return to flight logistics for New Glenn (30 June 2026)</a></li><li><a href="https://en.wikipedia.org/wiki/List_of_spaceflight_launches_in_July%E2%80%93September_2026" rel="noopener">Wikipedia: List of spaceflight launches in July–September 2026</a></li><li><a href="https://www.nasa.gov/news-release/nasas-dark-universe-seeking-nancy-grace-roman-space-telescope-launches/" rel="noopener">NASA: Nancy Grace Roman Space Telescope launches</a></li><li><a href="https://science.nasa.gov/mission/roman-space-telescope/roman-launch/" rel="noopener">NASA Science: Roman launch</a></li><li><a href="https://www.spacex.com/launches/roman/" rel="noopener">SpaceX: Roman Space Telescope mission</a></li><li><a href="https://www.reuters.com/science/nasa-launches-powerful-new-roman-space-telescope-florida-2026-08-30/" rel="noopener">Reuters: NASA launches powerful Roman Space Telescope (30 August 2026)</a></li><li><a href="https://www.npr.org/2026/09/29/nx-s1-5983804/spacexs-starship-reaches-orbit-for-the-first-time" rel="noopener">NPR: SpaceX's Starship reaches orbit for the first time (29 September 2026)</a></li><li><a href="https://www.reuters.com/business/media-telecom/spacexs-starship-engine-failure-could-impact-nasas-moon-mission-objectives-2026-09-29/" rel="noopener">Reuters: Starship engine failure could impact NASA's Moon mission objectives</a></li></ul>]]></content:encoded></item><item><title>Open-Weight Models, April–October 2026: Gemma 4, DeepSeek V4, Kimi K3 and the Shift East</title><link>https://victorgrosser.nl/blog/open-weight-models-april-october-2026-recap/</link><guid isPermaLink="true">https://victorgrosser.nl/blog/open-weight-models-april-october-2026-recap/</guid><pubDate>Tue, 20 Oct 2026 09:00:00 +0000</pubDate><description>Gemma 4 under Apache 2.0, DeepSeek V4 and V4.1-Flash, Kimi K3, Qwen 3.8, Muse Glimmer and Kolibri: the open-weight models of 2026 you can run yourself.</description><category>Open Source</category><category>open-weights</category><category>llm</category><category>self-hosting</category><category>local-ai</category><category>monthly-recap</category><content:encoded><![CDATA[<p><em>Period covered: April–October 2026. Written on 20 October 2026.</em></p>
<p>Open weights matter to me for a simple reason: they let you run AI on your own hardware, under your own rules. For education and legal work, where data often must not leave a server you control, that is not a nice-to-have. This post looks at the open-weight releases of the past six months, what you can realistically run, and the licences attached. The closed-model side is in my <a href="/blog/ai-models-april-june-2026-recap/">April–June</a> and <a href="/blog/ai-models-july-october-2026-recap/">July–October</a> recaps.</p>
<h3 id="april-gemma-4-goes-apache-2-0">April: Gemma 4 goes Apache 2.0</h3>
<p>Google announced <strong>Gemma 4</strong> on 2 April 2026 (the developer release notes list the weights on 31 March) in four sizes: Effective 2B (E2B), Effective 4B (E4B), a 26B mixture-of-experts and a 31B dense model. The bigger news for me was the licence: Google's open-source blog called Gemma 4 the first Gemma models released under the OSI-approved <strong>Apache 2.0</strong> licence, instead of the custom Gemma terms.</p>
<p>Some practical numbers from Google's own pages:</p>
<ul><li>The 26B MoE activates only about 3.8B parameters per token, which is what makes it fast.</li><li>Unquantised bfloat16 weights of the 26B and 31B fit on a single 80 GB H100.</li><li>Google's memory table puts the 31B at about 17.5 GB at 4-bit and the 26B A4B at about 14.4 GB, which is consumer-GPU territory.</li><li>E2B text-only on mobile is listed at about 0.84 GB.</li><li>At launch Google said the 31B ranked #3 among open models on the Arena AI text leaderboard and the 26B #6.</li></ul>
<p>The family kept growing: multi-token-prediction variants on 16 April, quantisation-aware (QAT) checkpoints in early June, and a <strong>Gemma 4 12B Unified</strong> model on 3 June that replaces separate vision and audio encoders with direct linear projections.</p>
<h3 id="april-deepseek-v4-preview">April: DeepSeek V4 preview</h3>
<p>On 24 April DeepSeek released the <strong>V4 preview</strong> with open weights and a one-million-token context. According to The AI Cook's timeline, V4-Pro has 1.6 trillion parameters (49B active) and V4-Flash 284B (13B active). Impressive, but not homelab material: even with few active parameters, you still need memory for all the weights.</p>
<h3 id="july-august-very-large-and-very-small">July–August: very large and very small</h3>
<ul><li><strong>Kimi K3</strong> (Moonshot AI, late July) was reported as the largest open-weight model so far at 2.8 trillion parameters, with only 16 of its 896 experts active per token. It briefly topped a coding arena.</li><li><strong>DeepSeek V4 Flash 0731</strong> (3 August) shipped under the MIT licence.</li><li><strong>Meta Muse Glimmer</strong> (11 August): Meta open-sourced a 30B agentic model that runs on a single GPU, a few weeks after it started charging for its frontier Muse Spark models.</li><li><strong>Qwen3.8-27B</strong> (Alibaba, 17 August): a dense multimodal model under Apache 2.0 that can run locally and be used commercially.</li><li><strong>GLM-5.3-Flash</strong> (Z.ai, 27 August), MIT-licensed, alongside a Qwen3.8-Flash-Next preview of a new architecture.</li></ul>
<h3 id="september-deepseek-v4-1-flash-and-mimo">September: DeepSeek V4.1-Flash and MiMo</h3>
<p>DeepSeek's <strong>V4.1-Flash</strong> (10 September) is the release I found most technically interesting. DeepSeek describes it as a 552B-parameter MoE with a new "causal encoder–decoder" design: 8B active parameters for input and 16B for output. It claims the KV cache needs a quarter of the HBM and an eighth of the SSD storage of the previous generation, and that it beats its own V4-Pro, which it started routing to V4.1-Flash on 14 September. The weights are on Hugging Face, and DeepSeek says it will work with the open-source community on inference support.</p>
<p>The KV-cache point matters more than the parameter count for anyone running agents: long agent sessions are dominated by context, and cache-hit costs are, in DeepSeek's words, often a large share of agent costs.</p>
<p>Later in the month Xiaomi's <strong>MiMo-V2.6 Pro</strong> (22 September), an MIT-licensed 1.02-trillion-parameter model, claimed the top open-weight spot according to The AI Cook.</p>
<h3 id="october-europe-shows-up">October: Europe shows up</h3>
<p>On 5 October Aleph Alpha released <strong>Kolibri</strong>, an Apache 2.0 German-English model of 78B parameters with about 3.5B active, explicitly aimed at data that has to stay on your own servers. It's the kind of model I'd like to see more of from Europe, especially given the transparency duties under the <a href="/blog/eu-ai-act-recap-april-october-2026/">EU AI Act</a>.</p>
<h3 id="the-counter-trend">The counter-trend</h3>
<p>Meta's paid Muse Spark 1.1 in July broke with its open-weights history, even if Muse Glimmer later came out open. The AI Cook summarises the year as "open weights went east": almost every leading open release came from Chinese labs (DeepSeek, Moonshot, Alibaba, Xiaomi, Z.ai). Open is not a given, and it makes the labs that keep publishing weights, under clear licences, more valuable.</p>
<h3 id="what-i-d-actually-run-at-home">What I'd actually run at home</h3>
<p>Being honest about hardware: a trillion-parameter MoE is "open" but not "local" for most of us. For a single consumer GPU or a small homelab, the realistic candidates from this period are:</p>
<ul><li><strong>Gemma 4 26B A4B or 31B</strong> at 4-bit (roughly 14–18 GB per Google's table) for general reasoning and agent experiments.</li><li><strong>Qwen3.8-27B</strong> where a dense, Apache-licensed multimodal model fits better.</li><li><strong>Muse Glimmer 30B</strong> for agentic tasks on one GPU, licence permitting.</li><li><strong>Gemma 4 E2B/E4B</strong> for on-device and edge experiments.</li></ul>
<p>My takeaway: mixture-of-experts with few active parameters, plus good quantisation, makes local, privacy-friendly AI realistic for education and legal tooling. Read every licence, though: Apache 2.0 and MIT are easy; custom licences are not. For the tools I use to serve these models, see <a href="/links/">links &amp; repos</a> and the <a href="/blog/category/homelab-infra/">Homelab &amp; Infra</a> category.</p>
<h3 id="sources">Sources</h3>
<ul><li><a href="https://blog.google/innovation-and-ai/technology/developers-tools/gemma-4/" rel="noopener">Google: Gemma 4, our most capable open models to date (2 April 2026)</a></li><li><a href="https://opensource.googleblog.com/2026/03/gemma-4-expanding-the-gemmaverse-with-apache-20.html" rel="noopener">Google Open Source Blog: Gemma 4, expanding the Gemmaverse with Apache 2.0</a></li><li><a href="https://ai.google.dev/gemma/docs/releases" rel="noopener">Google AI for Developers: Gemma releases</a></li><li><a href="https://ai.google.dev/gemma/docs/core" rel="noopener">Google AI for Developers: Gemma 4 model overview and memory requirements</a></li><li><a href="https://www.deepseek.com/en/news/deepseek-v4-1-flash/" rel="noopener">DeepSeek: Introducing DeepSeek-V4.1-Flash (10 September 2026)</a></li><li><a href="https://theaicook.com/blogs/ai-model-release-timeline-2026.html" rel="noopener">The AI Cook: AI Model Release Timeline 2026</a></li></ul>]]></content:encoded></item><item><title>What I Learned from the Free Hugging Face LLM Course (and How to Start)</title><link>https://victorgrosser.nl/blog/hugging-face-llm-course-what-i-learned/</link><guid isPermaLink="true">https://victorgrosser.nl/blog/hugging-face-llm-course-what-i-learned/</guid><pubDate>Tue, 20 Oct 2026 09:00:00 +0000</pubDate><description>A hands-on look at the free Hugging Face LLM course: Transformers, tokenizers, fine-tuning with the Trainer API, inference, and how to get started.</description><category>Learning AI</category><category>hugging-face</category><category>llm</category><category>transformers</category><category>fine-tuning</category><category>tokenizers</category><category>free-ai-courses</category><content:encoded><![CDATA[<p>Most of my work involves building on top of large language models, so it's easy to treat them as a black box behind an API. I wanted to go one layer down. The free <a href="https://huggingface.co/learn/llm-course" rel="noopener">Hugging Face LLM Course</a> seemed like the right place to do that. I've worked through the first three chapters: Transformer models, using 🤗 Transformers, and fine-tuning a pretrained model. Here is what stuck with me and how I would approach it if I were starting again.</p>
<h3 id="what-the-course-is">What the course is</h3>
<p>The course is free and built around the Hugging Face ecosystem: 🤗 Transformers, Datasets, Tokenizers, Accelerate and the Hub. Chapters 1–4 cover the basics of Transformers. After that it moves on to datasets and tokenizers, then classical NLP tasks, and finally more advanced LLM topics. The stated prerequisites are Python and some basic deep learning knowledge. You don't need a GPU to get value from the early chapters.</p>
<p>Each chapter ends with an ungraded quiz. Chapter 1 also has a short certification exam, hosted in a Hugging Face Space. You need to sign in to take it.</p>
<h3 id="chapter-1-transformer-models-demystified">Chapter 1: Transformer models, demystified</h3>
<p>The first chapter starts at the highest level: <code>pipeline()</code>. One call wraps preprocessing, the model and postprocessing. With it you can run sentiment analysis, zero-shot classification, text generation, fill-mask, named entity recognition, extractive question answering, summarization and translation. Small details turn out to matter. For example, the mask token depends on the model: <code>[MASK]</code> for BERT and <code>&lt;mask&gt;</code> for RoBERTa. Zero-shot classification also needs <code>candidate_labels</code>.</p>
<p>Then the chapter explains <em>why</em> it works. The ideas that clarified the most for me:</p>
<ul><li><strong>Self-supervised pretraining.</strong> Language models learn without human labels, either by predicting the next token (causal LM) or by filling in masked tokens (masked LM).</li><li><strong>Transfer learning.</strong> Pretraining is expensive in both compute and environmental cost. So you start from pretrained weights and fine-tune on a smaller, task-specific dataset.</li><li><strong>Three architecture families.</strong> Encoder-only models (BERT, RoBERTa, ModernBERT) use bidirectional attention and suit classification, NER and extractive QA. Decoder-only models (GPT, Llama, Gemma, SmolLM) generate auto-regressively and are the base of modern LLMs. Encoder-decoder models (BART, T5, Marian) handle summarization and translation.</li><li><strong>Architecture vs. checkpoint.</strong> The architecture is the blueprint. The checkpoint is the trained weights. That distinction removes a lot of confusion when you browse the Hub.</li></ul>
<p>The section on <strong>inference</strong> was the most useful part for practical work. Generation has two phases. <em>Prefill</em> processes the prompt and is compute-bound. <em>Decode</em> produces tokens one at a time and is memory-bound. That split explains why time to first token and time per output token behave so differently. It also explains why the KV cache matters: it avoids recomputing past keys and values. The chapter also covers sampling controls (temperature, top-k, top-p, repetition penalties) and why long contexts are costly.</p>
<p>There is also an honest section on <strong>bias and limitations</strong>. A fill-mask demo suggests gendered professions, and the course notes that fine-tuning does not remove bias inherited from pretraining. That is worth remembering in any domain where fairness matters, such as legal or educational applications.</p>
<h3 id="chapter-2-behind-the-pipeline">Chapter 2: Behind the pipeline</h3>
<p>Chapter 2 takes <code>pipeline()</code> apart: tokenizer → model (logits) → postprocessing (SoftMax → labels). Key takeaways:</p>
<ul><li>The <strong>tokenizer must match the checkpoint</strong>. <code>AutoTokenizer.from_pretrained(checkpoint)</code> and <code>AutoModel.from_pretrained(checkpoint)</code> should point to the same model.</li><li>Models in the library are plain PyTorch <code>nn.Module</code>s. <code>save_pretrained</code> writes a <code>config.json</code> plus <code>model.safetensors</code>.</li><li><strong>Tokenization strategies</strong>: word-based (huge vocabularies), character-based, and subword methods (WordPiece, BPE, Unigram). Subword tokenization is the practical compromise.</li><li><strong>Batching</strong> needs padding, attention masks and truncation. A model expects a batch dimension, and forgetting it is a classic first error.</li></ul>
<p>The chapter closes with deployment options: TGI (continuous batching, Flash Attention), vLLM (PagedAttention) and llama.cpp for smaller local models. If you run models yourself on a homelab or a VPS, this short section is a good map of the options.</p>
<h3 id="chapter-3-fine-tuning-a-pretrained-model">Chapter 3: Fine-tuning a pretrained model</h3>
<p>Chapter 3 is where it becomes concrete. You fine-tune a BERT classifier on MRPC from the GLUE benchmark, which asks whether two sentences are paraphrases. Along the way you learn:</p>
<ul><li><code>load_dataset(&quot;glue&quot;, &quot;mrpc&quot;)</code> and <code>Dataset.map(batched=True)</code> for fast tokenization of sentence pairs.</li><li><code>DataCollatorWithPadding</code> for <strong>dynamic padding</strong> per batch instead of padding everything to the maximum length.</li><li>The <strong>Trainer API</strong>. <code>TrainingArguments</code> needs only an <code>output_dir</code>. For accuracy you add an evaluation strategy and a <code>compute_metrics</code> function. <code>fp16=True</code> turns on mixed precision.</li><li>A <strong>manual training loop</strong> with AdamW, a linear scheduler and Accelerate, which shows what <code>Trainer</code> hides.</li><li><strong>Reading learning curves.</strong> Loss falls and then converges, while accuracy moves in steps. A large gap between training and validation means overfitting. Two curves that both plateau point to underfitting.</li></ul>
<p>One small detail I liked: when you load a model with a new classification head, you get a warning that some weights are randomly initialised. That is expected. The head hasn't been trained yet.</p>
<h3 id="how-i-d-recommend-starting">How I'd recommend starting</h3>
<ol><li><strong>Read Chapter 1 end to end, even if you know the basics.</strong> The architecture overview and the inference section give you shared vocabulary for everything after.</li><li><strong>Run the code.</strong> The notebooks open in Colab. Typing <code>pipeline(&quot;sentiment-analysis&quot;)</code> and then taking it apart in Chapter 2 builds intuition faster than reading.</li><li><strong>Do the quizzes.</strong> They're short and they catch the subtle misunderstandings. One question made me double-check that SoftMax outputs are between 0 and 1 <em>and</em> sum to 1.</li><li><strong>Fine-tune something small.</strong> Chapter 3's MRPC example runs on a free GPU. Once it works, swap in your own dataset.</li><li><strong>Treat it as a map, not a finish line.</strong> Later chapters cover datasets, tokenizers and more advanced LLM topics. I'm continuing with those.</li></ol>
<h3 id="closing-thought">Closing thought</h3>
<p>The course doesn't sell you anything. It explains what's going on under the hood clearly and gives you working code. For anyone building with LLMs, whether you're shipping products or advising on how AI is used responsibly, that grounding pays off quickly.</p>
<p><strong>Course link:</strong> <a href="https://huggingface.co/learn/llm-course" rel="noopener">Hugging Face LLM Course</a> · <a href="https://huggingface.co/learn/llm-course/chapter1/1" rel="noopener">Chapter 1</a> · <a href="https://huggingface.co/learn/llm-course/chapter2/1" rel="noopener">Chapter 2</a> · <a href="https://huggingface.co/learn/llm-course/chapter3/1" rel="noopener">Chapter 3</a></p>]]></content:encoded></item><item><title>Hello from Groningen: building practical legal and educational AI</title><link>https://victorgrosser.nl/blog/hello-from-groningen/</link><guid isPermaLink="true">https://victorgrosser.nl/blog/hello-from-groningen/</guid><pubDate>Tue, 20 Oct 2026 09:00:00 +0000</pubDate><description>An introduction: who I am, what I build in Groningen, and why I care about AI that is practical, careful and honest in legal and educational settings.</description><category>AI News</category><category>legal-ai</category><category>education</category><category>ai-agents</category><category>self-hosting</category><content:encoded><![CDATA[<p>Hi, I'm Victor Grösser. I live in Groningen, in the north of the Netherlands, and I work where law, education and software meet. I'm a legal AI advisor and a developer: I help people and organisations think through how AI can be used responsibly, and I build the systems myself.</p>
<p>This blog is where I'll write down what I learn along the way. Not announcements, not predictions, just notes from actual work.</p>
<h3 id="what-i-mean-by-practical">What I mean by "practical"</h3>
<p>A lot of AI talk is about what models might do some day. I'm more interested in what they reliably do today, and in where they still fail. In legal and educational work, that difference matters. A tool that summarises a document well nine times out of ten still needs someone to check the tenth.</p>
<p>So the questions I keep coming back to are simple:</p>
<ul><li>Does this actually save someone time, or does it move the work somewhere else?</li><li>Can a person see where an answer came from and check it?</li><li>What happens to the data, and who controls it?</li><li>What does it do when it doesn't know?</li></ul>
<h3 id="legal-ai">Legal AI</h3>
<p>I have a background as a legal service provider, and I see how hard it can be for people to find clear information about their situation, especially in stressful cases like youth care. That's part of why I work on <a href="https://steunvoor.nl" rel="noopener">Steunvoor.nl</a>, a free platform that gives parents clear information and support.</p>
<p>AI can help explain procedures, structure documents and point people to the right questions. It should not pretend to replace professional advice, and it should be explicit about its limits. Much of the design work is about exactly that: sources, uncertainty and knowing when to hand off to a human.</p>
<h3 id="educational-ai">Educational AI</h3>
<p>On the education side I'm building <a href="https://leerheld.nl" rel="noopener">LeerHeld.nl</a>, a learning platform for children and parents without ads or distractions. Here AI is useful for generating practice material and giving feedback, but children deserve tools that are calm, predictable and safe. I'd rather ship something modest that works than something impressive that confuses.</p>
<h3 id="agents-and-self-hosting">Agents and self-hosting</h3>
<p>Behind the scenes I run a set of AI agents that each do one job: research, writing drafts, monitoring servers, keeping my projects in order. They run on my own servers and a small homelab, with cloud services where they make sense. Running things yourself teaches you quickly where the real costs and failure modes are: rate limits, flaky logins, memory that drifts, and agents that confidently do the wrong thing twice.</p>
<p>I'll write about those lessons too, including the mistakes.</p>
<h3 id="what-to-expect-here">What to expect here</h3>
<ul><li>Write-ups of things I built and what went wrong</li><li>Notes on agent design, open models and self-hosted infrastructure</li><li>Thoughts on using AI carefully in legal and educational contexts</li><li>A curated list of <a href="/links/">links and repositories</a> I find genuinely useful</li></ul>
<p>If something here is useful to you, or you think I'm wrong, I'd like to hear it. You can find me on <a href="https://www.linkedin.com/in/victorgrosser/" rel="noopener">LinkedIn</a>, <a href="https://github.com/GrosserNL" rel="noopener">GitHub</a> or via <a href="https://victorgrosser.nl/">victorgrosser.nl</a>.</p>]]></content:encoded></item><item><title>The EU AI Act, April–October 2026: Delays, Transparency Rules and What Applies Now</title><link>https://victorgrosser.nl/blog/eu-ai-act-recap-april-october-2026/</link><guid isPermaLink="true">https://victorgrosser.nl/blog/eu-ai-act-recap-april-october-2026/</guid><pubDate>Tue, 20 Oct 2026 09:00:00 +0000</pubDate><description>From the Digital Omnibus deal in May to Article 50 transparency rules in August: what changed in the EU AI Act between April and October 2026.</description><category>Legal AI</category><category>eu-ai-act</category><category>ai-regulation</category><category>digital-omnibus</category><category>transparency</category><category>gpai</category><content:encoded><![CDATA[<p><em>Period covered: April–October 2026. Written on 20 October 2026.</em></p>
<p>If you build or deploy AI in Europe, the last six months changed the calendar you were planning against. The AI Act did not get repealed or radically rewritten, but its timeline moved, some obligations were softened, and a first big block of rules actually became enforceable on 2 August 2026. This is my attempt to put it in one place, with links to the primary sources at the bottom. It is a summary for builders, not legal advice.</p>
<h3 id="the-starting-point">The starting point</h3>
<p>The AI Act (Regulation (EU) 2024/1689) entered into force on 1 August 2024 and applies in stages. Bans on prohibited practices and the AI literacy duty came first, the obligations for general-purpose AI (GPAI) model providers started on 2 August 2025, and 2 August 2026 was the general date of application, including most rules for high-risk systems.</p>
<p>By spring 2026 it was clear that this last step was in trouble. The Omnibus regulation itself says why: harmonised standards were late, and many Member States had not yet set up their national competent authorities and conformity assessment structures. Companies were being asked to comply with high-risk requirements without the technical standards that are supposed to tell them how.</p>
<h3 id="may-the-digital-omnibus-deal">May: the Digital Omnibus deal</h3>
<p>The Commission had proposed the "Digital Omnibus on AI" in late 2025 as part of its simplification agenda. On 7 May 2026 the European Parliament and the Council reached a provisional political agreement after nine hours of negotiations, as Reuters reported. Reuters framed it as "watered-down" rules; the Commission framed it as simpler, innovation-friendly implementation. Both descriptions are partly true, which is why the details matter.</p>
<p>The headline change is the high-risk timeline:</p>
<ul><li><strong>Annex III high-risk systems</strong> (stand-alone use cases such as biometrics, critical infrastructure, education, employment, migration, asylum and border control) now apply from <strong>2 December 2027</strong>.</li><li><strong>Annex I high-risk systems</strong> (AI built into products under EU product legislation, such as lifts or toys) now apply from <strong>2 August 2028</strong>.</li></ul>
<p>The agreement also added something new rather than removing it: a <strong>ban on AI systems that generate non-consensual intimate imagery and child sexual abuse material</strong>, the "nudification" apps. The Commission's enforcement page lists that prohibition as applying from <strong>2 December 2026</strong>.</p>
<h3 id="july-it-becomes-law">July: it becomes law</h3>
<p>The deal was formally adopted as <strong>Regulation (EU) 2026/1744</strong>, published in the Official Journal and in force from 27 July 2026. EUR-Lex now has a consolidated version of the AI Act dated 27 July 2026, and the Commission's AI Act Service Desk marks Omnibus changes as "NEW" or "AMENDED" in its article-by-article text. That consolidated text is now the one to read; older summaries from 2024 and 2025 are outdated on dates.</p>
<p>A few changes in the Omnibus that I think are under-discussed:</p>
<ul><li><strong>AI literacy (Article 4) was rewritten.</strong> Providers and deployers still have to take measures to ensure sufficient AI literacy of their staff, but the new text explicitly says this does not require them to guarantee any specific level of AI literacy of any individual. The Commission, Member States and the AI Board get a stronger role in promoting literacy.</li><li><strong>Small mid-caps (SMCs)</strong> get several of the reliefs that were previously reserved for SMEs, such as a simplified technical documentation form and priority access to sandboxes.</li><li><strong>A new Article 4a</strong> sets conditions for processing special categories of personal data where strictly necessary for bias detection and correction.</li><li><strong>Sandboxes:</strong> each Member State must have at least one national AI regulatory sandbox operational by 2 August 2027, and the AI Office may run a Union-level sandbox. Real-world testing outside sandboxes is extended to more high-risk categories.</li><li><strong>Grace period clarified:</strong> under Article 111(2), if at least one unit of a type and model of high-risk system was lawfully on the market before the relevant date, other units of the same type and model fall under the same grace period.</li></ul>
<h3 id="august-what-actually-became-enforceable">August: what actually became enforceable</h3>
<p>2 August 2026 still mattered, just for different things than originally planned. According to the Commission's enforcement framework page and the AI Act Service Desk FAQ, from that date the enforcement powers of the AI Office and national authorities apply to:</p>
<ol><li><strong>Prohibited AI practices</strong> (manipulation, exploitation of vulnerabilities, certain social scoring and predictive policing based solely on profiling, and so on).</li><li><strong>Obligations for GPAI model providers</strong>, including transparency towards downstream providers, copyright policies, and the safety and security duties for models with systemic risk. The Commission can now fine GPAI providers up to 3% of worldwide annual turnover or €15 million, whichever is higher (Article 101). It can also request information, demand access for model evaluations, and in serious cases ask for a model to be restricted.</li><li><strong>Transparency obligations under Article 50.</strong></li></ol>
<p>The Article 50 rules are the ones most developers will feel first. Providers must design systems so people know when they are interacting with an AI system (chatbots, agents, avatars), and must add machine-readable marks to AI-generated or manipulated content. Deployers must disclose deepfakes, emotion recognition and biometric categorisation, and AI-generated text published to inform the public on matters of public interest when there was no human review or editorial control. The Commission lists fines of up to €15 million or 3% of turnover for companies.</p>
<p>There is one transitional detail worth noting: systems already on the market before 2 August 2026 have until <strong>2 December 2026</strong> to comply with the marking and detection duty in Article 50(2).</p>
<h3 id="the-code-of-practice-on-ai-generated-content">The Code of Practice on AI-generated content</h3>
<p>To make Article 50 workable, the AI Office facilitated a <strong>Code of Practice on Transparency of AI-generated Content</strong>, drafted by independent experts. It has two sections: rules for providers on marking and detection, and rules for deployers on labelling deepfakes and AI-generated text. The EU also published a set of icons for labelling.</p>
<p>The Commission and the AI Board confirmed the code as an adequate voluntary tool to demonstrate compliance. Signing is voluntary, but the obligations are not: if you don't sign, you have to show that your own measures are equally adequate, assessed by each market surveillance authority. The Commission's page says about 190 companies and organisations had signed by the end of July 2026. Alongside the code, the Commission published guidelines on the scope of Article 50, including what counts as a directly interactive system, a deepfake, or standard editing that falls outside the rules.</p>
<h3 id="what-i-take-from-it">What I take from it</h3>
<p>Three practical points for anyone building AI products or agents in Europe:</p>
<ul><li><strong>Transparency is now, not 2027.</strong> If your product talks to people, label it. If it generates images, audio or video, plan for machine-readable marking. This applies to agents too: the Commission explicitly names AI agents and avatars.</li><li><strong>The high-risk delay is not a holiday.</strong> Education and employment, two areas I care about for education tools, are Annex III. December 2027 is roughly fourteen months away, and standards still have to land. Documentation, logging and human-oversight design are much cheaper to build in than to retrofit.</li><li><strong>Read the consolidated text.</strong> Many blog posts and slide decks still quote 2 August 2026 for high-risk rules. That date is gone.</li></ul>
<p>On the bigger question, whether the Omnibus weakens protection or just makes the law workable, I don't think we'll know until the first enforcement decisions under Article 50 and the GPAI rules appear. The useful thing for builders is that the timeline is now fixed in law instead of in rumours.</p>
<p>For the wider context of what models shipped in the same period, see my <a href="/blog/ai-models-april-june-2026-recap/">AI models recap for April–June 2026</a> and <a href="/blog/ai-models-july-october-2026-recap/">July–October 2026</a>, the <a href="/blog/open-weight-models-april-october-2026-recap/">open-weight models recap</a>, and my curated <a href="/links/">links &amp; repos</a>.</p>
<h3 id="sources">Sources</h3>
<ul><li><a href="https://eur-lex.europa.eu/eli/reg/2026/1744/oj/eng" rel="noopener">EUR-Lex: Regulation (EU) 2026/1744 (Digital Omnibus on AI)</a></li><li><a href="https://eur-lex.europa.eu/eli/reg/2024/1689/2026-07-27/eng" rel="noopener">EUR-Lex: AI Act consolidated version, 27 July 2026</a></li><li><a href="https://digital-strategy.ec.europa.eu/en/news/eu-agrees-simplify-ai-rules-boost-innovation-and-ban-nudification-apps-protect-citizens" rel="noopener">European Commission: EU agrees to simplify AI rules and ban 'nudification' apps (7 May 2026)</a></li><li><a href="https://www.reuters.com/world/eu-countries-lawmakers-strike-provisional-deal-watered-down-ai-rules-2026-05-07/" rel="noopener">Reuters: EU countries, lawmakers clinch provisional deal on watered-down AI rules (7 May 2026)</a></li><li><a href="https://digital-strategy.ec.europa.eu/en/policies/enforcement-ai-act" rel="noopener">European Commission: The enforcement framework of the AI Act</a></li><li><a href="https://ai-act-service-desk.ec.europa.eu/en/ai-act/faq/when-does-enforcement-start" rel="noopener">AI Act Service Desk: When does enforcement start?</a></li><li><a href="https://ai-act-service-desk.ec.europa.eu/en/ai-act/article-101" rel="noopener">AI Act Service Desk: Article 101, fines for GPAI providers</a></li><li><a href="https://commission.europa.eu/news-and-media/news/safer-and-more-transparent-ai-2026-08-02_en" rel="noopener">European Commission: Safer and more transparent AI (2 August 2026)</a></li><li><a href="https://digital-strategy.ec.europa.eu/en/policies/guidelines-ai-transparency-obligations" rel="noopener">European Commission: Guidelines on transparency obligations (Article 50)</a></li><li><a href="https://digital-strategy.ec.europa.eu/en/policies/code-practice-ai-generated-content" rel="noopener">European Commission: Code of Practice on Transparency of AI-generated Content</a></li><li><a href="https://digital-strategy.ec.europa.eu/en/policies/guidelines-gpai-providers" rel="noopener">European Commission: Guidelines for providers of GPAI models</a></li></ul>]]></content:encoded></item><item><title>Two Elon Musk Biographies, Reviewed: Isaacson (2023) and Vance (2015)</title><link>https://victorgrosser.nl/blog/elon-musk-biographies-isaacson-vance-review/</link><guid isPermaLink="true">https://victorgrosser.nl/blog/elon-musk-biographies-isaacson-vance-review/</guid><pubDate>Tue, 20 Oct 2026 09:00:00 +0000</pubDate><description>Honest reviews of Walter Isaacson&#x27;s and Ashlee Vance&#x27;s Elon Musk biographies from an AI architect&#x27;s view: first principles, speed vs safety, build vs buy.</description><category>Space &amp; Tech</category><category>book-review</category><category>elon-musk</category><category>walter-isaacson</category><category>ashlee-vance</category><category>first-principles</category><category>ai-engineering</category><content:encoded><![CDATA[<p>Two biographies, two very different moments in Musk's story. Here is what I take from each as someone who builds AI systems, with honest ratings.</p>
<h3 id="1-walter-isaacson-elon-musk-2023-3-5-5">1. Walter Isaacson, <em>Elon Musk</em> (2023): 3.5 / 5</h3>
<p>I build AI systems for a living, and I advise on the legal side of AI. So I didn't read Walter Isaacson's <em>Elon Musk</em> (2023) as fan fiction or as a takedown. I read it as an engineering case study with a very loud main character. Here is my honest take, with the parts I'd use and the parts I'd leave on the shelf.</p>
<h4 id="what-the-book-is">What the book is</h4>
<p>Isaacson, who also wrote biographies of Steve Jobs, Einstein and Leonardo da Vinci, followed Musk for about two years. He sat in on meetings, read messages and interviewed family, colleagues and critics. The result runs to well over 600 pages, split into 95 short, chronological chapters with plain titles such as "Starlink, 2015–2018". Isaacson himself joked that someone called it a 600-page book for the TikTok generation.</p>
<p>That structure works. Musk runs SpaceX, Tesla, Starlink, Neuralink, The Boring Company, xAI and (from late 2022) Twitter/X in parallel, so the book jumps between Raptor engines, factory floors and server rooms. The short chapters keep it readable, and the engineering scenes are the strongest part of the book.</p>
<p>The story goes from a hard childhood in South Africa, through Zip2 and X.com/PayPal, to the near-bankruptcy years of Tesla and SpaceX in 2008, and ends with the Twitter takeover and the founding of xAI.</p>
<h4 id="lesson-1-first-principles-are-a-tool-not-a-personality">Lesson 1: First principles are a tool, not a personality</h4>
<p>The idea that comes back most often is Musk's "algorithm" for engineering and manufacturing. Roughly: question every requirement, delete every part or process step you can, then simplify and optimise, then speed up, and only at the end automate. The order matters. Automating a step that should not exist is pure waste.</p>
<p>For AI builders this translates surprisingly well:</p>
<ul><li><strong>Question the requirement.</strong> Does this feature really need an LLM, or would a rule or a database query do?</li><li><strong>Delete before you optimise.</strong> Fewer agents, fewer prompts, fewer tools often beat a cleverer orchestration layer.</li><li><strong>Automate last.</strong> Run the workflow by hand, understand where it breaks, then build the pipeline.</li></ul>
<p>This is the most useful part of the book for me, and it's worth reading for these chapters alone.</p>
<h4 id="lesson-2-speed-vs-safety-is-a-real-trade-off-and-the-book-underplays-the-cost">Lesson 2: Speed vs safety is a real trade-off, and the book underplays the cost</h4>
<p>Musk's style is a constant "maniacal sense of urgency": impossible deadlines, "surge" weekends, and a high tolerance for things blowing up. For rockets, a test explosion is data. In software it can be the same, because fast iteration beats endless planning.</p>
<p>But AI products don't fail like test rockets on an empty launch pad. They fail on users. Hallucinated legal advice, a biased screening model or a confident driver-assistance claim can hurt people who never agreed to be part of the test.</p>
<p>Several reviewers noticed what the book leaves out here. The New York Review of Books pointed out that Tesla's factory injury rates and the racism lawsuits at the Fremont plant get little or no attention, and that no assembly-line workers appear among the interviews. Others found the safety debate around Autopilot underexplored. As someone who works on AI governance, I'd say this is exactly the part builders need most: who carries the risk when you "move fast"? The book mostly doesn't ask.</p>
<p>My takeaway: copy the iteration speed in your sandbox, and keep it out of production for anything that touches people's rights, health or money.</p>
<h4 id="lesson-3-leadership-caveats">Lesson 3: Leadership caveats</h4>
<p>Isaacson doesn't hide Musk's harsh side. He describes a "demon mode", public humiliation of employees, and impulsive decisions like the mass layoffs and server moves at Twitter. He links some of this to Musk's childhood and his relationship with his father. Several critics, including The Independent, found these bullying scenes repetitive after a while, and I agree.</p>
<p>The bigger criticism, made by The Verge and the Los Angeles Times among others, is that the book stays close to the "great man" story. It explains the bad behaviour as the price of genius, and Isaacson's close access gives Musk plenty of room to tell his own myth. Not every bold promise in the book came true on schedule.</p>
<p>For leaders of AI teams, the honest lesson is narrow. High standards and fast feedback are useful. Fear-based management is not a requirement for great engineering. Plenty of strong teams ship hard things without it.</p>
<h4 id="pros-and-cons">Pros and cons</h4>
<p><strong>Pros</strong></p>
<ul><li>Unusual access and many first-hand scenes</li><li>Excellent, concrete engineering chapters (the "algorithm", Raptor, factory work)</li><li>Fast, readable structure with short chapters</li></ul>
<p><strong>Cons</strong></p>
<ul><li>Repetitive in its scenes of conflict and deadlines</li><li>Light on critical analysis, especially in the later Twitter chapters</li><li>Important omissions: worker safety, discrimination claims, Autopilot safety</li><li>Leans towards the "great man" framing</li></ul>
<h4 id="verdict">Verdict</h4>
<p>Read it as an engineering and decision-making case study, not as a leadership manual. The first-principles material is genuinely useful for anyone building AI systems. The speed-at-all-costs mindset and the management style need a strong filter, and the book won't provide that filter for you.</p>
<p><strong>My rating: 3.5 / 5.</strong> Worth reading for builders, as long as you read some of the critical reviews alongside it.</p>
<h3 id="2-ashlee-vance-elon-musk-2015-5-5">2. Ashlee Vance, <em>Elon Musk</em> (2015): 5 / 5</h3>
<p>Before Isaacson there was Ashlee Vance. His <em>Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future</em> (Ecco, 2015) was written before Musk became the most-discussed person on the internet, and that is its strength. Musk first declined to cooperate; Vance kept reporting anyway, interviewed around two hundred people, and Musk eventually agreed to a series of interviews.</p>
<p>The best chapters cover the years when it could all have gone wrong. After failing to buy a launch from Russia, Musk decided SpaceX would build its own rocket. Falcon 1 then failed three times (2006, 2007 and 2008) before the fourth launch reached orbit in September 2008. In the same year Tesla and SpaceX were both nearly out of money, and Musk had to decide whether to split what he had left between them. It reads like a thriller, and it shows first-principles thinking under real pressure.</p>
<p>For anyone building AI systems, the build-versus-buy question is the lasting lesson. Do you own your models and infrastructure, or depend on a vendor? I work on that trade-off every day, in a homelab as well as in client projects. The book is also a reminder that speed without good governance has a price, for employees and for others.</p>
<p>It is dated now (it predates Starlink as a consumer service and xAI), but as an origin story it holds up. <strong>My rating: 5 / 5</strong> as an origin story.</p>
<h3 id="read-them-together">Read them together</h3>
<p>Vance gives you the near-death years and the origin of the method; Isaacson gives you the method at full scale, and its costs. Read Vance first, then Isaacson with a critical review or two alongside it.</p>]]></content:encoded></item><item><title>Building Agents with LangGraph: State, Nodes, Edges, Memory and Human-in-the-Loop</title><link>https://victorgrosser.nl/blog/building-agents-with-langgraph-key-concepts/</link><guid isPermaLink="true">https://victorgrosser.nl/blog/building-agents-with-langgraph-key-concepts/</guid><pubDate>Tue, 20 Oct 2026 09:00:00 +0000</pubDate><description>Key LangGraph concepts from LangChain Academy&#x27;s free Intro to LangGraph course: state, nodes, edges, memory and human-in-the-loop, plus when to use them.</description><category>Agents &amp; MCP</category><category>langgraph</category><category>ai-agents</category><category>langchain-academy</category><category>agent-memory</category><category>human-in-the-loop</category><category>python</category><content:encoded><![CDATA[<p>A free-form agent loop, where a model calls tools until it decides it's done, is easy to demo and hard to trust. You can't easily see why it took a step, stop it before a risky action, or resume it tomorrow. <a href="https://langchain-ai.github.io/langgraph/" rel="noopener">LangGraph</a> addresses this by making the agent an explicit graph. I recently completed LangChain Academy's free <a href="https://academy.langchain.com/courses/intro-to-langgraph" rel="noopener">Introduction to LangGraph</a> course (Python). These are the concepts that matter most, along with my view on when each one is worth using.</p>
<h3 id="the-core-model-state-nodes-edges">The core model: state, nodes, edges</h3>
<p>A LangGraph application is a <code>StateGraph</code> made of three things.</p>
<p><strong>State</strong> is the shared data structure that flows through the graph. You define it as a <code>TypedDict</code>, a dataclass or a Pydantic model. Pydantic adds runtime validation. Every node reads the state and returns <em>updates</em> to it.</p>
<p><strong>Nodes</strong> are plain Python functions. A node might call a chat model, run a tool or transform data. It returns a partial state update and doesn't need to know about the rest of the graph.</p>
<p><strong>Edges</strong> connect nodes. Normal edges always go from A to B. <em>Conditional edges</em> run a function that picks the next node based on the state. You wire up <code>START</code> and <code>END</code>, call <code>compile()</code>, and run it with <code>invoke()</code>.</p>
<p>The detail that's easy to miss is <strong>reducers</strong>. By default, a node's update overwrites a key. With <code>Annotated[list, operator.add]</code> updates are appended instead. The built-in <code>add_messages</code> reducer appends messages or updates them by id, and supports <code>RemoveMessage</code>. Reducers become essential when nodes run in parallel and write to the same key.</p>
<h3 id="from-chain-to-agent-in-a-few-steps">From chain to agent in a few steps</h3>
<p>The course builds up in steps that make the design choices visible:</p>
<ol><li><strong>Chain</strong>: state is a list of messages (<code>MessagesState</code>), with a chat model that has tools bound via <code>bind_tools</code>.</li><li><strong>Router</strong>: the model either answers directly or emits a tool call. A <code>ToolNode</code> plus the prebuilt <code>tools_condition</code> edge handles the routing.</li><li><strong>Agent (ReAct)</strong>: add an edge from the tool node back to the model, so it loops until there are no more tool calls.</li></ol>
<p>So an "agent" is a router with a loop, and nothing more mysterious than that. Once you see it this way, you can decide exactly where the loop is allowed and where it isn't.</p>
<h3 id="memory-short-term-and-long-term">Memory: short-term and long-term</h3>
<p>LangGraph separates two kinds of memory.</p>
<p><strong>Short-term (thread) memory</strong> comes from a <strong>checkpointer</strong>. Compile the graph with <code>MemorySaver</code> (or <code>SqliteSaver</code> for persistence), pass a <code>thread_id</code> in the config, and the state is saved after every step. The next invocation on the same thread continues where the last one stopped. Conversations grow, so the course shows how to keep the context bounded: remove messages, pass only the last N, use <code>trim_messages</code> by token count, or keep a running summary.</p>
<p><strong>Long-term memory</strong> works <em>across</em> threads through a <strong>Store</strong>, such as <code>InMemoryStore</code>, keyed by a namespace tuple plus a key. You decide on a memory schema. It can be a <em>profile</em>, which is one JSON document per user, or a <em>collection</em>, a growing list of items. The final example in the module is an assistant that decides for itself when to update the user's profile, a to-do collection or its own instructions.</p>
<p><strong>When to use what:</strong> a checkpointer is almost always worth adding, because it also enables human-in-the-loop and debugging. Long-term memory only makes sense when you actually need personalisation across sessions. It is also a data-protection question, so design what you store deliberately.</p>
<h3 id="human-in-the-loop">Human-in-the-loop</h3>
<p>This is where LangGraph clearly beats an opaque loop. Because state is checkpointed, you can pause a graph, inspect it, change it and resume:</p>
<ul><li><strong>Breakpoints</strong>: <code>interrupt_before=[&quot;tools&quot;]</code> stops before a node, for example before a tool runs. Resuming with <code>invoke(None, config)</code> continues from the checkpoint.</li><li><strong>Editing state</strong>: <code>graph.update_state(config, values, as_node=...)</code> lets a human correct the state, for example to fix a tool argument, before continuing.</li><li><strong>Dynamic breakpoints</strong>: a node can raise an interrupt conditionally, for example only when an amount exceeds a threshold.</li><li><strong>Time travel</strong>: <code>get_state_history</code> lets you replay from an earlier checkpoint, or <em>fork</em> by updating an old one and running from there.</li></ul>
<p><strong>When to use it:</strong> any action with real consequences, such as sending a message, changing a record or spending money, should go through an explicit approval point. In legal or educational contexts, I'd consider this the default rather than an optional extra.</p>
<h3 id="scaling-the-graph-parallelism-sub-graphs-map-reduce">Scaling the graph: parallelism, sub-graphs, map-reduce</h3>
<p>Module 4 builds a research assistant. It generates analyst personas (with human feedback on the personas), runs parallel interviews using web and Wikipedia search, writes sections, and combines them into a report. The patterns along the way:</p>
<ul><li><strong>Fan-out/fan-in parallelism</strong>, which needs reducers on shared keys.</li><li><strong>Sub-graphs</strong> with their own state, which talk to the parent through overlapping keys.</li><li><strong>Map-reduce with the <code>Send</code> API</strong>, which spawns a dynamic number of parallel nodes and then aggregates the results.</li></ul>
<p><strong>When to use them:</strong> only when the task really splits into independent pieces. Every extra branch adds coordination and evaluation work. Start with a single agent and tools, and add structure when a trace shows you need it.</p>
<h3 id="deployment-and-streaming">Deployment and streaming</h3>
<p>The course also covers the operational side. You can stream either state <code>updates</code> or full <code>values</code>, and stream tokens with <code>astream_events</code>. LangGraph Studio is useful for visual debugging. For deployment, a <code>langgraph.json</code> plus a Docker image runs on LangGraph Server, which handles the API, a task queue and Postgres persistence. There are clients through the SDK or <code>RemoteGraph</code>. Two ideas I hadn't considered before: <strong>double-texting strategies</strong> (reject, enqueue, interrupt or rollback when a user sends a new message mid-run) and <strong>assistants</strong>, which are versioned configurations of the same graph.</p>
<h3 id="when-langgraph-is-the-right-tool">When LangGraph is the right tool</h3>
<ul><li><strong>Use it</strong> when you need control over the flow, durable state, approvals or resumable runs. That usually means multi-step agents that act on real systems.</li><li><strong>Skip it</strong> for a single prompt-and-answer or a fixed linear pipeline, where plain code is simpler.</li><li><strong>Keep it simple first.</strong> A predefined workflow is easier to test than a free agent, and a single agent is easier than several. The graph makes that trade-off explicit, which is exactly why I like it.</li></ul>
<h3 id="getting-started">Getting started</h3>
<p>The course is free. The code is in the public <a href="https://github.com/langchain-ai/langchain-academy" rel="noopener">langchain-academy repository</a> as Jupyter notebooks, one folder per module, with a <code>studio</code> folder you can run with <code>langgraph dev</code>. You'll need Python 3.11+ and an API key for a chat model. Tracing through LangSmith is optional but very helpful. Work through the modules in order: each one adds a single concept on top of the last.</p>
<p><strong>Links:</strong> <a href="https://academy.langchain.com/courses/intro-to-langgraph" rel="noopener">Introduction to LangGraph – LangChain Academy</a> · <a href="https://langchain-ai.github.io/langgraph/" rel="noopener">LangGraph documentation</a> · <a href="https://github.com/langchain-ai/langchain-academy" rel="noopener">Course notebooks on GitHub</a></p>]]></content:encoded></item><item><title>AI Models in July–October 2026: Price Becomes the Headline, GPT-6 and Gemini 4</title><link>https://victorgrosser.nl/blog/ai-models-july-october-2026-recap/</link><guid isPermaLink="true">https://victorgrosser.nl/blog/ai-models-july-october-2026-recap/</guid><pubDate>Tue, 20 Oct 2026 09:00:00 +0000</pubDate><description>Claude Sonnet 5 and Opus 5, GPT-5.6 tiers, GPT-6, monthly Gemini Flash releases and Gemini 4 Argon: the AI model summer and autumn of 2026 without the hype.</description><category>AI News</category><category>llm</category><category>ai-models</category><category>pricing</category><category>monthly-recap</category><content:encoded><![CDATA[<p><em>Period covered: July to mid-October 2026. Written on 20 October 2026.</em></p>
<p>This is the second half of my look back at 2026's model releases. The <a href="/blog/ai-models-april-june-2026-recap/">April–June recap</a> was about cadence and agents. July to October was about price, gating and an almost absurd release frequency. As before, prices are list API prices per million input/output tokens at launch.</p>
<h3 id="july-the-busiest-month-for-flagships">July: the busiest month for flagships</h3>
<ul><li><strong>Claude Sonnet 5 (1 July)</strong> became the default for Free and Pro users and closed much of the gap to Opus 4.8 on agentic work at a fraction of the cost.</li><li><strong>GPT-5.6 Sol, Terra and Luna (9 July).</strong> Three tiers at three prices: Sol $5/$30, Terra $2.50/$15 and Luna $1/$6. They launched together with GPT-Live, OpenAI's first full-duplex voice model.</li><li><strong>Grok 4.5 (9 July)</strong> went public within hours of GPT-5.6, with big claims but, as The AI Cook noted, no system card or benchmark table.</li><li><strong>Meta Muse Spark 1.1 (9 July)</strong> was Meta's first paid model ($1.25/$4.25), a clean break from its open-weights history.</li><li><strong>Gemini 3.6 Flash and Flash Cyber (22 July).</strong> A cheaper Flash plus a security-tuned twin.</li><li><strong>Claude Opus 5 (late July)</strong>: close to Fable 5 intelligence at roughly half the price, with Opus pricing held at $5/$25.</li></ul>
<p>July is where launches started to lead with the invoice. Three tiers from OpenAI, a cheaper Flash from Google, and an Opus that halved the cost of near-top capability all point the same way.</p>
<h3 id="august-price-cuts-and-open-weights">August: price cuts and open weights</h3>
<p>No new top-tier flagship from the big three in August, so the action moved elsewhere:</p>
<ul><li><strong>Gemini 3.7 Flash (14 August)</strong> at $0.75/$3.75, half the price of 3.6 Flash. DeepSeek V4-Pro went generally available the same day.</li><li><strong>Grok 4.6 (13 August)</strong> with frontier-level index scores at $2/$6.</li><li><strong>GPT-5.6-Cyber (11 August)</strong>, gated behind vetted tiers, the same week Meta open-sourced a 30B agentic model, Muse Glimmer.</li><li>A wave of open-weight and Asian-lab releases (Qwen3.8, GLM-5.3-Flash, a new DeepSeek V4 Flash checkpoint), covered in my <a href="/blog/open-weight-models-april-october-2026-recap/">open-weight models recap</a>.</li></ul>
<h3 id="september-the-densest-month-of-the-year">September: the densest month of the year</h3>
<ul><li><strong>Claude Fable 5.1 (2 September)</strong> with cache reads 75% cheaper, which The AI Cook estimates as about 25% off a typical workload.</li><li><strong>Gemini 3.8 Flash and 3.8 Flash Cyber (2–3 September).</strong> Google's own post describes it as building on 3.7 Flash from three weeks earlier, and its third Flash release in six weeks. Again the cyber variant was gated.</li><li><strong>GPT-6 Astra (4 September)</strong>, built around computer use. OpenAI claimed 98% on FrontierMath Tier 4 and 99.9% on ARC-AGI-3. I'm repeating those as claims; I'd like to see independent replication before treating them as settled.</li><li><strong>Meta Muse (9 September)</strong>, a personal agent on Muse Spark 1.3 that books, buys and fills in forms inside its own sandboxed virtual machine.</li><li><strong>DeepSeek-V4.1-Flash (10 September).</strong> DeepSeek's announcement describes a 552B-parameter MoE with 8B active parameters for input and 16B for output, a KV cache needing a quarter of the HBM of the previous generation, and results ahead of its own V4-Pro, which it began phasing out.</li><li><strong>Claude Opus 5.5 and GPT-6 Sol/Luna (23 September)</strong>, on the same afternoon. Opus 5.5 moved Opus pricing to $4/$20; GPT-6 Sol and Luna halved the API price of the models they replaced.</li><li><strong>Claude Sonnet 5.5 (29 September)</strong> and <strong>GPT-6.1 Sol (30 September)</strong>, the latter replacing GPT-6 Sol after a single week at $2/$10.</li></ul>
<h3 id="october-so-far">October so far</h3>
<ul><li><strong>Gemini 4 Argon (1 October)</strong>, Google DeepMind's most powerful model, with a one-million-token output limit, released first to cyber defenders only.</li><li><strong>Kolibri (5 October)</strong>, an Apache 2.0 German-English model from Aleph Alpha (78B, about 3.5B active) aimed at data that has to stay on your own servers. Interesting for European, on-premise use.</li><li><strong>GPT-5.5 retires on 14 October</strong>, less than six months after launch.</li></ul>
<h3 id="what-i-take-from-it">What I take from it</h3>
<ol><li><strong>Release cycles are measured in weeks.</strong> GPT-6 Sol lived seven days. Don't chase every launch: keep your system model-agnostic and swap only when your own tests show a difference.</li><li><strong>Read the pricing page, not just the benchmark.</strong> Caching discounts and tiered models delivered some of the largest real savings of the year.</li><li><strong>The strongest models increasingly reach defenders first.</strong> Mythos 5, GPT-5.6-Cyber, the Flash Cyber models and Gemini 4 Argon all followed that route.</li><li><strong>Transparency rules arrived mid-summer.</strong> Since 2 August, the EU AI Act requires disclosure when people interact with AI and machine-readable marks on generated content; see <a href="/blog/eu-ai-act-recap-april-october-2026/">my EU AI Act recap</a>.</li><li><strong>Coding sells.</strong> Nearly every launch led with a coding or agentic score. That's where paying customers are, and it's worth asking whether those benchmarks match your own tasks.</li></ol>
<p>Outside AI, the same months had their own milestones: Starship reached orbit and the Roman Space Telescope launched, covered in my <a href="/blog/space-april-october-2026-recap/">space recap</a>. For tools I actually use, see <a href="/links/">links &amp; repos</a>.</p>
<h3 id="sources">Sources</h3>
<ul><li><a href="https://theaicook.com/blogs/ai-model-release-timeline-2026.html" rel="noopener">The AI Cook: AI Model Release Timeline 2026 (updated 5 October 2026)</a></li><li><a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/3-8-flash-and-3-8-flash-cyber/" rel="noopener">Google: Introducing Gemini 3.8 Flash and 3.8 Flash Cyber (2 September 2026)</a></li><li><a href="https://www.deepseek.com/en/news/deepseek-v4-1-flash/" rel="noopener">DeepSeek: Introducing DeepSeek-V4.1-Flash (10 September 2026)</a></li><li><a href="https://openai.com/research/index/release/" rel="noopener">OpenAI: Research releases</a></li></ul>]]></content:encoded></item><item><title>AI Models in April–June 2026: Four Flagships, Agents Everywhere and Gated Capability</title><link>https://victorgrosser.nl/blog/ai-models-april-june-2026-recap/</link><guid isPermaLink="true">https://victorgrosser.nl/blog/ai-models-april-june-2026-recap/</guid><pubDate>Tue, 20 Oct 2026 09:00:00 +0000</pubDate><description>GPT-5.5, Claude Opus 4.7 and 4.8, Gemini at I/O, DeepSeek V4 and Claude Fable 5: what actually changed in AI models from April to June 2026.</description><category>AI News</category><category>llm</category><category>ai-models</category><category>ai-agents</category><category>monthly-recap</category><content:encoded><![CDATA[<p><em>Period covered: April–June 2026. Written on 20 October 2026, looking back.</em></p>
<p>Spring 2026 was dense enough that it's easy to remember it as one blur of launch posts. I went back through release notes and trackers to separate what changed in practice from what was just noise. Prices below are list API prices per million input/output tokens at launch, as reported by the sources at the bottom.</p>
<h3 id="april-four-flagships-in-ten-days">April: four flagships in ten days</h3>
<p>April is when the 2026 race properly started. Google, OpenAI, Anthropic and DeepSeek all shipped flagship models within about ten days of each other.</p>
<ul><li><strong>GPT-5.4 on the free tier (10 April).</strong> OpenAI opened a reasoning-class model to free ChatGPT users. Not a new model, but it reset expectations of what "free" includes.</li><li><strong>Claude Opus 4.7 (mid-April).</strong> Anthropic shipped stronger coding and a higher image-input ceiling of roughly 3.75 megapixels, launched on five clouds at once, and kept pricing at $5/$25.</li><li><strong>Gemini 3 Pro preview, 3.1 Pro and 3 Flash (22 April).</strong> Announced at Google Cloud Next. Gemini 3 Pro took first place on LMArena at 1,501 Elo and scored 91.9% on GPQA Diamond, according to The AI Cook's tracker.</li><li><strong>ChatGPT Images 2.0 (22 April).</strong> Image generation that reasons before it draws, up to 2K resolution.</li><li><strong>GPT-5.5 (23 April).</strong> Pitched as a model for "real work": it plans, uses tools, checks itself and keeps going. It arrived six weeks after GPT-5.4 and reached ChatGPT, the API and GitHub Copilot within days.</li><li><strong>DeepSeek V4 preview (24 April).</strong> Open weights with a one-million-token context. V4-Pro has 1.6 trillion parameters (49B active), V4-Flash 284B (13B active). More on that side of the field in my <a href="/blog/open-weight-models-april-october-2026-recap/">open-weight models recap</a>.</li></ul>
<p>What stood out to me in April was not a single benchmark number but the cadence. A flagship that is six weeks old being replaced is a different world from the yearly cycles we had not long ago.</p>
<h3 id="may-from-chat-to-agents">May: from chat to agents</h3>
<p>May was a month of agents rather than models. The big labs spent it turning chatbots into things that act.</p>
<ul><li><strong>GPT-5.5 Instant (6 May)</strong> quietly became ChatGPT's default for everyday chats.</li><li><strong>Grok Build (15 May).</strong> xAI's terminal coding agent, its answer to Claude Code and Codex, running up to eight workers, launched behind a $299 SuperGrok Heavy plan. On 29 May a Grok Build 0.1 model followed on the API at about 100 tokens per second and $1/$2.</li><li><strong>Gemini Spark and Gemini Omni (20 May).</strong> At Google I/O, Gemini was reframed as an always-on agent that can carry out tasks inside other apps, not just answer questions.</li><li><strong>Claude Opus 4.8 (28 May).</strong> SWE-bench Pro rose from 64.3% to 69.2% and a Fast mode ran about 2.5 times quicker, with no price increase.</li></ul>
<p>The pattern here is that "the model" is becoming an implementation detail of a product that acts: a coding agent, an assistant inside other apps. For people building their own <a href="/blog/category/agents-mcp/">agents and MCP tools</a>, that's encouraging and a warning at once: the interesting work moves to orchestration, permissions and evaluation.</p>
<h3 id="june-gated-capability-and-short-lifetimes">June: gated capability and short lifetimes</h3>
<ul><li><strong>Microsoft MAI-Thinking-1 (3 June).</strong> Microsoft's first in-house reasoning model, shown at Build alongside MAI-Image-2.5. A clear sign it wants options beyond OpenAI.</li><li><strong>Gemma 4 QAT checkpoints (8 June).</strong> Quantisation-aware versions of Google's open Gemma 4 family; the smallest text model runs in under 1 GB of memory.</li><li><strong>Claude Fable 5 and Claude Mythos 5 (10 June).</strong> Fable 5 became the first Mythos-class model open to the public, at $10/$50. The unrestricted Mythos 5 went only to vetted cyber defenders.</li><li><strong>Retirements (mid-June).</strong> Anthropic retired Claude Sonnet 4 and Opus 4 on 16 June; OpenAI had retired GPT-5.2 days earlier.</li></ul>
<p>The Fable/Mythos split is the June story I keep coming back to. A public model plus a restricted security variant turned into a pattern for the rest of the year: Google's Flash Cyber models, GPT-5.6-Cyber and Gemini 4 Argon all followed the same route. I think that's a reasonable response to dual-use capability, but it also means the "best model" you can benchmark is no longer the best model that exists.</p>
<h3 id="what-i-take-from-these-three-months">What I take from these three months</h3>
<ol><li><strong>Benchmarks moved, but the real change was the work around them.</strong> Models that plan, use tools and check themselves matter more than a few points on a leaderboard.</li><li><strong>Plan for model churn.</strong> If a model can be retired weeks after its successor ships, hard-coding model names into a product is technical debt. Keep a small abstraction layer and your own evaluation set.</li><li><strong>Price per task beats price per token.</strong> Faster modes, caching and smaller tiers often change the bill more than a headline price change.</li><li><strong>Regulation runs in parallel.</strong> The same weeks saw the EU's Digital Omnibus deal on the AI Act; I wrote about that in <a href="/blog/eu-ai-act-recap-april-october-2026/">The EU AI Act, April–October 2026</a>.</li></ol>
<p>A note on sources: much of the timeline below comes from third-party trackers that compile launch posts. I've linked first-party pages where I could; where only a tracker is cited, treat exact dates as "reported" rather than official.</p>
<p>Continue with <a href="/blog/ai-models-july-october-2026-recap/">AI models in July–October 2026</a>, or browse my curated <a href="/links/">links &amp; repos</a>.</p>
<h3 id="sources">Sources</h3>
<ul><li><a href="https://theaicook.com/blogs/ai-model-release-timeline-2026.html" rel="noopener">The AI Cook: AI Model Release Timeline 2026 (updated 5 October 2026)</a></li><li><a href="https://benchlm.ai/model-updates/releases/april-2026" rel="noopener">BenchLM: AI model releases in April 2026</a></li><li><a href="https://openai.com/research/index/release/" rel="noopener">OpenAI: Research releases</a></li><li><a href="https://www.deepseek.com/en/news/deepseek-v4-1-flash/" rel="noopener">DeepSeek: DeepSeek-V4.1-Flash announcement (with links to the V4 preview)</a></li></ul>]]></content:encoded></item></channel></rss>
