<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: machinelearning</title>
    <description>The latest articles tagged 'machinelearning' on DEV Community.</description>
    <link>https://dev.to/t/machinelearning</link>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tag/machinelearning"/>
    <language>en</language>
    <item>
      <title>DemoDoctor: Bad Robot Demonstrations Are Detectable. Do They Matter?</title>
      <dc:creator>Raihan</dc:creator>
      <pubDate>Wed, 14 Oct 2026 14:31:00 +0000</pubDate>
      <link>https://dev.to/raihan-js/demodoctor-bad-robot-demonstrations-are-detectable-do-they-matter-548p</link>
      <guid>https://dev.to/raihan-js/demodoctor-bad-robot-demonstrations-are-detectable-do-they-matter-548p</guid>
      <description>&lt;p&gt;&lt;em&gt;Inject known faults into robot demonstrations, detect them without labels, and measure what they cost a policy. The honest answer so far: I could not measure a cost.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkaedx7eu9gkhs7e0w33i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkaedx7eu9gkhs7e0w33i.png" alt="DemoDoctor results" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Scope note: PushT only, ACT policy, RTX 3060. A data-quality study by an ML engineer learning robotics — not robotics expertise.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Robot-learning teams say data quality matters more than model size, but controlled measurements are rare. This project corrupts clean PushT demonstrations with ground-truth faults, detects them from signals alone, then closes the loop: train on clean vs corrupted vs auto-cleaned data and measure simulator success.&lt;/p&gt;

&lt;h2&gt;
  
  
  The faults
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Fault&lt;/th&gt;
&lt;th&gt;What it mimics&lt;/th&gt;
&lt;th&gt;Detectable?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Lag (1–3 frames)&lt;/td&gt;
&lt;td&gt;Slow camera pipeline&lt;/td&gt;
&lt;td&gt;Weak — XCorr landscape flat on quasi-static pushing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stall&lt;/td&gt;
&lt;td&gt;Teleop freeze&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Yes — F1 0.867&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Jitter (scaled)&lt;/td&gt;
&lt;td&gt;Shaky teleoperation&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Yes — F1 0.687&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Truncation&lt;/td&gt;
&lt;td&gt;Episode cut early&lt;/td&gt;
&lt;td&gt;Weak — natural length variance swamps cuts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dup frames&lt;/td&gt;
&lt;td&gt;Stuck camera&lt;/td&gt;
&lt;td&gt;No — re-encoding creates duplicates everywhere&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The detectors (all label-free)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lag&lt;/strong&gt;: cross-correlate image-motion energy with action-velocity energy; stable version requires both halves to agree. Fails honestly on PushT: slow motion gives flat correlation landscapes where noise peaks beat true lag.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jitter&lt;/strong&gt;: raw jerk vs median-filtered baseline. Key fix: absolute sigma is meaningless (PushT actions have std ~80, not ~1) — scale to the episode.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stall&lt;/strong&gt;: contiguous near-zero-velocity runs. Just works.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Truncation&lt;/strong&gt;: robust length outlier (median ± MAD). Weak by nature here.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dup frames&lt;/strong&gt;: exact-duplicate check confounded by video re-encoding (which creates duplicates in clean data too). Reported as null with the mechanism explained.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The policy experiment
&lt;/h2&gt;

&lt;p&gt;I trained ACT policies on PushT for 60k steps (batch size 32, RTX 3060, about 2 hours each) under four data conditions, 3 seeds each, and evaluated every policy on 50 rollouts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Clean&lt;/strong&gt;: all 206 episodes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Corrupted&lt;/strong&gt;: 30% of episodes carry an injected fault.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-cleaned&lt;/strong&gt;: the 175 episodes left after dropping stall- and jitter-flagged ones (26 of the 31 dropped were truly faulty).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Random 175&lt;/strong&gt;: 175 random episodes of the corrupted set. This is the size-matched control: if cleaning looked worse than corrupted, it separates "less data" from "better data".&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Condition&lt;/th&gt;
&lt;th&gt;Success rate&lt;/th&gt;
&lt;th&gt;Mean max reward [95% CI]&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Clean&lt;/td&gt;
&lt;td&gt;0.7%&lt;/td&gt;
&lt;td&gt;0.425 [0.369, 0.488]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Corrupted&lt;/td&gt;
&lt;td&gt;1.3%&lt;/td&gt;
&lt;td&gt;0.397 [0.344, 0.454]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auto-cleaned&lt;/td&gt;
&lt;td&gt;0.0%&lt;/td&gt;
&lt;td&gt;0.359 [0.302, 0.423]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Random 175&lt;/td&gt;
&lt;td&gt;0.0%&lt;/td&gt;
&lt;td&gt;0.432 [0.386, 0.476]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Intervals bootstrap over policies, then over rollouts within a policy. &lt;strong&gt;No pairwise difference excludes zero.&lt;/strong&gt; The widest gap is auto-cleaned vs random 175 at -0.073 [-0.147, +0.006]. Clean minus corrupted is +0.028 [-0.050, +0.108]. The point estimates even run the wrong way for cleaning, but they are inside the noise.&lt;/p&gt;

&lt;p&gt;So this grid shows no effect of corruption, of cleaning, or of data size. It also cannot rule out an effect: it cannot resolve differences smaller than about 0.08 in mean max reward.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why I would not read more into it
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Floor effect.&lt;/strong&gt; Success is 0-4% in every cell (at most 2 of 50 rollouts). Max reward is the only usable signal, and it is coarse.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evaluation noise.&lt;/strong&gt; I re-evaluated 7 checkpoints a second time. Mean max reward moved by 0.014 on average and by up to 0.037, and the success rate changed for 2 of the 7. That is as large as the smaller condition gaps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Three seeds per condition.&lt;/strong&gt; One policy is 2 hours of GPU, so n = 3 was the budget.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mixed training environments.&lt;/strong&gt; Some of the original runs were trained on rented pods. Two policies (corrupted and cleaned, seed 2) were retrained locally after their checkpoints were lost; their earlier evaluations (0.373 and 0.349) were close to the retrained ones (0.379 and 0.331).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two explanations I have not tested: the policies barely solve PushT at this budget, and the faults my detectors can find (stalls, jitter) may be mild for a policy that predicts chunks of actions. Settling it would take more seeds, a longer training budget or a metric with headroom, and faults large enough to hurt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Injected faults are easier than real teleoperation faults; detector F1 on them says nothing about real-world fault performance.&lt;/li&gt;
&lt;li&gt;PushT only, ACT only, one training budget (60k steps).&lt;/li&gt;
&lt;li&gt;The policy grid is underpowered (3 seeds per condition, floor-level success), so the null above is "not resolved", not "no effect".&lt;/li&gt;
&lt;li&gt;Re-encoding destroys timestamp-gap signals; dup detection null is partly pipeline artifact.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;DINOv2-small progress-monotonicity scorer (implemented, unevaluated on real embeddings)&lt;/li&gt;
&lt;li&gt;Scan community LeRobot datasets and report flags without claiming ground truth&lt;/li&gt;
&lt;li&gt;ALOHA transfer-cube as stretch&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Repo: github.com/raihan-js/demodoctor · Data: huggingface.co/datasets/raihan-js/demodoctor-pusht-corrupted&lt;/em&gt;&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>robotics</category>
      <category>python</category>
      <category>statistics</category>
    </item>
    <item>
      <title>Claude vs Gemini vs GPT: What a 2026 Study of 26 AI Models Reveals About Long Context</title>
      <dc:creator>Egor</dc:creator>
      <pubDate>Wed, 14 Oct 2026 14:28:14 +0000</pubDate>
      <link>https://dev.to/coffee1337/claude-vs-gemini-vs-gpt-what-a-2026-study-of-26-ai-models-reveals-about-long-context-57i</link>
      <guid>https://dev.to/coffee1337/claude-vs-gemini-vs-gpt-what-a-2026-study-of-26-ai-models-reveals-about-long-context-57i</guid>
      <description>&lt;p&gt;&lt;em&gt;26 AI models. 6,438 evaluation instances. Contexts up to 1 million tokens. The results challenge how we compare modern language models.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Imagine giving an AI assistant an entire software repository.&lt;/p&gt;

&lt;p&gt;Thousands of files. Hundreds of modules. API documentation, database schemas, and years of development history.&lt;/p&gt;

&lt;p&gt;The model accepts everything without complaining.&lt;/p&gt;

&lt;p&gt;You ask it to identify a subtle architectural problem.&lt;/p&gt;

&lt;p&gt;It confidently provides an answer.&lt;/p&gt;

&lt;p&gt;But is that answer actually reliable?&lt;/p&gt;

&lt;p&gt;In 2026, the question is no longer simply whether a language model can accept a million tokens.&lt;/p&gt;

&lt;p&gt;The more interesting question is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How much of that context can the model actually use correctly?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A recent research paper, &lt;em&gt;ATLAS: All-round Testing of Long-context Abilities across Scales&lt;/em&gt;, provides some surprising answers.&lt;/p&gt;

&lt;p&gt;The researchers evaluated 26 models on 6,438 instances across eight capability dimensions, considering input lengths from 8K to 1M tokens.&lt;/p&gt;

&lt;p&gt;One finding stands out:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemini 3.1 Pro Preview led at 128K, but Claude Opus 4.6 led at 1M.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The best model depends on how you measure it.&lt;/p&gt;

&lt;p&gt;Let's examine what the researchers tested, what their results actually mean, and why these findings matter for developers building real AI systems.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Research note: This article analyzes published 2026 research. It is not an independent benchmark, and it does not claim that the author personally tested all 26 models.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  1. The Problem With AI Benchmarks
&lt;/h2&gt;

&lt;p&gt;When comparing language models, we often see a familiar table:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Context window&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Model A&lt;/td&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model B&lt;/td&gt;
&lt;td&gt;256K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model C&lt;/td&gt;
&lt;td&gt;1M&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The implication seems obvious.&lt;/p&gt;

&lt;p&gt;Model C can process more information, so it must be better at large-document tasks.&lt;/p&gt;

&lt;p&gt;But this reasoning contains a hidden assumption:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That accepting more information means using that information effectively.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Consider two different tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Task A: Simple retrieval&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A document contains the sentence:&lt;/p&gt;

&lt;p&gt;"The deployment identifier is QZ-7194."&lt;/p&gt;

&lt;p&gt;The model is asked to retrieve that identifier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Task B: Complex reasoning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A repository contains dozens of service definitions, configuration files, and dependency relationships.&lt;/p&gt;

&lt;p&gt;The model must identify which changes could introduce a security regression.&lt;/p&gt;

&lt;p&gt;The second task requires much more than finding one string.&lt;/p&gt;

&lt;p&gt;It may involve combining evidence from many locations, resolving contradictions, and understanding dependencies.&lt;/p&gt;

&lt;p&gt;A model that performs well on Task A might struggle on Task B.&lt;/p&gt;

&lt;p&gt;That's exactly why evaluating long-context AI requires more than a single benchmark number.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. ATLAS: A Different Way to Measure Long-Context Intelligence
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Research:&lt;/strong&gt; &lt;em&gt;ATLAS: All-round Testing of Long-context Abilities across Scales&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Authors:&lt;/strong&gt; Deli Huang and colleagues&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Published:&lt;/strong&gt; May 27, 2026&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paper:&lt;/strong&gt; &lt;a href="https://arxiv.org/abs/2605.28079" rel="noopener noreferrer"&gt;https://arxiv.org/abs/2605.28079&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The ATLAS researchers investigated two major weaknesses in traditional long-context evaluation.&lt;/p&gt;

&lt;p&gt;First, model performance can deteriorate as input length increases.&lt;/p&gt;

&lt;p&gt;Second, success on foundational tasks such as retrieval does not necessarily transfer to more complex application workloads.&lt;/p&gt;

&lt;p&gt;Their framework introduces several methodological improvements.&lt;/p&gt;

&lt;h3&gt;
  
  
  Evaluating across context lengths
&lt;/h3&gt;

&lt;p&gt;Instead of measuring performance at only one input size, ATLAS considers scores across a predefined context-length grid, from 8K to 1M tokens.&lt;/p&gt;

&lt;p&gt;This makes it possible to analyze how performance changes as more information enters the prompt.&lt;/p&gt;

&lt;p&gt;A model that performs exceptionally well at 128K may deteriorate more sharply than another model at longer lengths.&lt;/p&gt;

&lt;h3&gt;
  
  
  Separating foundational abilities from applications
&lt;/h3&gt;

&lt;p&gt;ATLAS distinguishes foundational operations from downstream workloads.&lt;/p&gt;

&lt;p&gt;This matters because retrieving information and applying it correctly are different capabilities.&lt;/p&gt;

&lt;p&gt;For instance, a model may identify relevant functions in a repository without understanding how they interact.&lt;/p&gt;

&lt;h3&gt;
  
  
  Measuring balanced performance
&lt;/h3&gt;

&lt;p&gt;The researchers introduce ATLAScore, a harmonic-mean-based aggregate across capability categories.&lt;/p&gt;

&lt;p&gt;This is intended to penalize highly imbalanced capability profiles.&lt;/p&gt;

&lt;p&gt;A model that dominates one task but struggles on others should not automatically receive the strongest overall evaluation.&lt;/p&gt;

&lt;p&gt;The framework also includes uncertainty propagation when computing its final aggregate scores.&lt;/p&gt;

&lt;p&gt;Together, these changes provide a more nuanced picture than a single retrieval accuracy number.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. The Result: The Leader Changes at 1 Million Tokens
&lt;/h2&gt;

&lt;p&gt;One of the most interesting findings concerns model rankings.&lt;/p&gt;

&lt;p&gt;According to the ATLAS paper:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Evaluation scope&lt;/th&gt;
&lt;th&gt;Leading model&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Up to 128K tokens&lt;/td&gt;
&lt;td&gt;Gemini 3.1 Pro Preview&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Up to 1M tokens&lt;/td&gt;
&lt;td&gt;Claude Opus 4.6&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7130pcshtryuxn2a7cjh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7130pcshtryuxn2a7cjh.png" alt="ATLAS 2026: Claude vs Gemini long-context benchmark" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This does not mean Claude is universally better than Gemini.&lt;/p&gt;

&lt;p&gt;Nor does it mean Gemini is inherently unreliable.&lt;/p&gt;

&lt;p&gt;It means the relative ranking changes under the specific evaluation conditions used by ATLAS.&lt;/p&gt;

&lt;p&gt;The researchers also reported that &lt;strong&gt;seven models changed position by at least two ranking places&lt;/strong&gt; when the evaluation expanded from the 8K–128K range to the 8K–1M range.&lt;/p&gt;

&lt;p&gt;That's important.&lt;/p&gt;

&lt;p&gt;Imagine selecting a model for your application after reviewing results obtained only at 128K.&lt;/p&gt;

&lt;p&gt;Your production workload, however, frequently processes 600K-token documents.&lt;/p&gt;

&lt;p&gt;The benchmark you used may not reflect your actual operating conditions.&lt;/p&gt;

&lt;p&gt;And if models deteriorate at different rates, their relative performance at 600K may differ from their relative performance at 128K.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The key insight: model quality is not independent of context length.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A useful benchmark should measure the range your application actually uses.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Why Context Length Changes the Difficulty
&lt;/h2&gt;

&lt;p&gt;Let's examine a simplified example.&lt;/p&gt;

&lt;p&gt;Imagine this information appears inside a long repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;service_a.py:
Service A sends requests to Service B.

service_b.py:
Service B uses Database C.

config.yaml:
Database C has public network access enabled.

security_policy.md:
Production databases must not expose public access.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now ask:&lt;/p&gt;

&lt;p&gt;"Does Service A indirectly depend on a database with a potentially unsafe network configuration?"&lt;/p&gt;

&lt;p&gt;Answering correctly requires several steps.&lt;/p&gt;

&lt;p&gt;First, identify the dependency between Service A and Service B.&lt;/p&gt;

&lt;p&gt;Second, identify Service B's database.&lt;/p&gt;

&lt;p&gt;Third, find Database C's configuration.&lt;/p&gt;

&lt;p&gt;Finally, compare that configuration with the security policy.&lt;/p&gt;

&lt;p&gt;No single sentence contains the entire answer.&lt;/p&gt;

&lt;p&gt;As the context grows, the model must identify relevant information among more irrelevant material while preserving the connections between different pieces of evidence.&lt;/p&gt;

&lt;p&gt;This creates distinct possible failure modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Missing one of the necessary pieces of evidence&lt;/li&gt;
&lt;li&gt;Retrieving a similar but incorrect detail&lt;/li&gt;
&lt;li&gt;Correctly retrieving the evidence but connecting it incorrectly&lt;/li&gt;
&lt;li&gt;Producing a plausible conclusion unsupported by the source material&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The example is illustrative, not an ATLAS test case.&lt;/p&gt;

&lt;p&gt;But it demonstrates why longer context can increase difficulty even when every relevant document fits into the model's advertised context window.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Another 2026 Study Reveals a Deeper Problem
&lt;/h2&gt;

&lt;p&gt;ATLAS evaluates long-context capabilities across models and scales.&lt;/p&gt;

&lt;p&gt;A separate 2026 study, &lt;em&gt;CorpusQA: A 10 Million Token Benchmark for Corpus-Level Analysis and Reasoning&lt;/em&gt;, investigates a different question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can AI systems analyze entire collections of documents when the evidence is distributed throughout the collection?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Authors:&lt;/strong&gt; Zhiyuan Lu and colleagues&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Originally published:&lt;/strong&gt; January 21, 2026&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Revised:&lt;/strong&gt; April 25, 2026&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paper:&lt;/strong&gt; &lt;a href="https://arxiv.org/abs/2601.14952" rel="noopener noreferrer"&gt;https://arxiv.org/abs/2601.14952&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CorpusQA includes tasks involving financial, educational, and real-estate documents.&lt;/p&gt;

&lt;p&gt;Some questions require aggregating numerical information from many documents.&lt;/p&gt;

&lt;p&gt;For example, imagine analyzing hundreds of financial reports to identify every company satisfying several accounting conditions.&lt;/p&gt;

&lt;p&gt;A traditional retrieval system might find a few relevant documents.&lt;/p&gt;

&lt;p&gt;But if answering the question requires analyzing every company, retrieving only five documents is insufficient.&lt;/p&gt;

&lt;p&gt;This is a fundamentally different problem from finding one answer-bearing passage.&lt;/p&gt;

&lt;h3&gt;
  
  
  The published results
&lt;/h3&gt;

&lt;p&gt;CorpusQA evaluated several models at different context lengths.&lt;/p&gt;

&lt;p&gt;For Gemini 2.5 Pro, the authors reported:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Context length&lt;/th&gt;
&lt;th&gt;Overall accuracy&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;td&gt;80.19%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1M&lt;/td&gt;
&lt;td&gt;50.73%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5z0yyj2ny1jxtfw2x5tq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5z0yyj2ny1jxtfw2x5tq.png" alt="CorpusQA 2026: Gemini 2.5 Pro accuracy decline from 128K to 1M tokens" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These results show a decline of 29.46 percentage points under the study's conditions.&lt;/p&gt;

&lt;p&gt;Importantly, CorpusQA evaluated Gemini 2.5 Pro, not Gemini 3.1 Pro.&lt;/p&gt;

&lt;p&gt;Its results cannot be directly substituted for the newer model's performance.&lt;/p&gt;

&lt;p&gt;But they illustrate how difficult corpus-level analysis can remain, even when a model supports very long inputs.&lt;/p&gt;

&lt;p&gt;The study also found that conventional retrieval-augmented generation performed poorly on tasks requiring globally distributed evidence.&lt;/p&gt;

&lt;p&gt;The lesson isn't that RAG is useless.&lt;/p&gt;

&lt;p&gt;It's that &lt;strong&gt;retrieving a handful of relevant chunks is not the same as analyzing an entire document collection.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Why Traditional RAG Can Fail on Global Questions
&lt;/h2&gt;

&lt;p&gt;A typical RAG pipeline looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User question
      |
      v
Vector search
      |
      v
Top-K relevant chunks
      |
      v
LLM
      |
      v
Generated answer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This works well when a question can be answered using a relatively small number of relevant passages.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;"What is the API rate limit?"&lt;/p&gt;

&lt;p&gt;A good retrieval system can locate the appropriate documentation paragraph and pass it to the model.&lt;/p&gt;

&lt;p&gt;Now consider another question:&lt;/p&gt;

&lt;p&gt;"Across all customer reports from the last year, which failure category increased the most?"&lt;/p&gt;

&lt;p&gt;The answer requires a global aggregation.&lt;/p&gt;

&lt;p&gt;Retrieving only the most semantically similar documents may exclude a large part of the dataset.&lt;/p&gt;

&lt;p&gt;No matter how capable the LLM is, it cannot correctly aggregate information it never receives.&lt;/p&gt;

&lt;p&gt;This is an information-coverage problem, not merely a language-model problem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft0ymoxqlhpeclumpzyu0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft0ymoxqlhpeclumpzyu0.png" alt="CorpusQA 2026: RAG vs Memory Agent performance at 1M tokens" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the CorpusQA evaluation at 1M tokens, standard RAG achieved 17.38% accuracy, compared with 44.95% for the Memory Agent approach using Gemini 2.5 Pro.&lt;/p&gt;

&lt;p&gt;This illustrates how different approaches to managing large document collections can significantly affect performance.&lt;/p&gt;

&lt;h3&gt;
  
  
  A better architecture for some analytical tasks
&lt;/h3&gt;

&lt;p&gt;For questions requiring exact aggregation, a structured processing pipeline may be more appropriate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Document collection
        |
        v
Information extraction
        |
        v
Structured records
        |
        v
SQL / analytical computation
        |
        v
Evidence verification
        |
        v
LLM-generated explanation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This design separates factual computation from language generation.&lt;/p&gt;

&lt;p&gt;The LLM can interpret the user's question and explain the result, while deterministic code handles calculations.&lt;/p&gt;

&lt;p&gt;Of course, the approach has its own limitations.&lt;/p&gt;

&lt;p&gt;Extraction errors, incomplete schemas, and stale data can still produce incorrect answers.&lt;/p&gt;

&lt;p&gt;But it creates opportunities to validate individual steps instead of relying entirely on one enormous prompt.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. What About Vendor Benchmarks?
&lt;/h2&gt;

&lt;p&gt;Independent research is only one source of evidence.&lt;/p&gt;

&lt;p&gt;Model developers also publish technical evaluations.&lt;/p&gt;

&lt;p&gt;For example, Anthropic's &lt;em&gt;Claude Opus 4.6 System Card&lt;/em&gt; discusses long-context benchmarks such as MRCR and GraphWalks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source:&lt;/strong&gt; &lt;a href="https://www.anthropic.com/system-cards" rel="noopener noreferrer"&gt;https://www.anthropic.com/system-cards&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MRCR evaluates the ability to locate and distinguish between similar pieces of information across long inputs.&lt;/p&gt;

&lt;p&gt;GraphWalks examines structured reasoning over graph-like information represented within the context.&lt;/p&gt;

&lt;p&gt;These evaluations are useful because they test capabilities beyond ordinary question answering.&lt;/p&gt;

&lt;p&gt;However, developer-published benchmark results need careful interpretation.&lt;/p&gt;

&lt;p&gt;Providers may use different inference settings, reasoning budgets, input limits, filtering rules, or evaluation configurations.&lt;/p&gt;

&lt;p&gt;A benchmark score obtained under one provider's setup should not automatically be treated as directly comparable with an independent benchmark.&lt;/p&gt;

&lt;p&gt;In particular, the ability to answer a question using a long prompt depends on more than the model checkpoint.&lt;/p&gt;

&lt;p&gt;It can also depend on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reasoning budget&lt;/li&gt;
&lt;li&gt;Tool usage&lt;/li&gt;
&lt;li&gt;Prompt construction&lt;/li&gt;
&lt;li&gt;Context truncation&lt;/li&gt;
&lt;li&gt;Sampling configuration&lt;/li&gt;
&lt;li&gt;Dataset filtering&lt;/li&gt;
&lt;li&gt;Evaluation metrics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These differences can materially affect observed results.&lt;/p&gt;

&lt;p&gt;That's one reason ATLAS is interesting: its evaluation explicitly attempts to compare long-context capabilities across multiple tasks and lengths.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. What This Means for AI Coding Assistants
&lt;/h2&gt;

&lt;p&gt;Consider an AI coding assistant with access to a large repository.&lt;/p&gt;

&lt;p&gt;There are two possible designs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Approach A: Put everything in the prompt
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Entire repository
       |
       v
Large context window
       |
       v
LLM response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is conceptually simple.&lt;/p&gt;

&lt;p&gt;But it can be expensive and may introduce large amounts of irrelevant information.&lt;/p&gt;

&lt;p&gt;It also doesn't guarantee that the model will correctly connect all important details.&lt;/p&gt;

&lt;h3&gt;
  
  
  Approach B: Search, inspect, and verify
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User question
      |
      v
Repository search
      |
      v
Relevant files
      |
      v
Dependency analysis
      |
      v
LLM reasoning
      |
      v
Tool-based verification
      |
      v
Final answer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This approach can use search tools, static analysis, tests, and targeted context retrieval.&lt;/p&gt;

&lt;p&gt;For some software engineering tasks, those tools may provide more reliable evidence than simply expanding the prompt.&lt;/p&gt;

&lt;p&gt;For instance, when checking whether a function is actually called, repository search can identify references.&lt;/p&gt;

&lt;p&gt;When checking whether a proposed patch works, an automated test can provide execution evidence.&lt;/p&gt;

&lt;p&gt;An LLM can assist with interpretation, but it doesn't have to perform every operation internally.&lt;/p&gt;

&lt;p&gt;The broader principle is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use the context window as one resource in an engineering system, not as a replacement for the system itself.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  9. How I Would Benchmark Modern AI Models
&lt;/h2&gt;

&lt;p&gt;The published results suggest a practical evaluation protocol for comparing models on real development workflows.&lt;/p&gt;

&lt;p&gt;I would test each model across four dimensions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Test A: Context length
&lt;/h3&gt;

&lt;p&gt;Evaluate the same task family at:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;8K
32K
128K
256K
512K
1M
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Only include lengths genuinely supported by each tested model and API configuration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Test B: Evidence position
&lt;/h3&gt;

&lt;p&gt;Place answer-relevant information near the beginning, middle, and end of the input.&lt;/p&gt;

&lt;p&gt;Measure whether accuracy changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Test C: Reasoning complexity
&lt;/h3&gt;

&lt;p&gt;Use several difficulty levels:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level 1:&lt;/strong&gt; Retrieve one explicitly stated fact.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level 2:&lt;/strong&gt; Connect information from two files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level 3:&lt;/strong&gt; Combine evidence from several documents.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Level 4:&lt;/strong&gt; Perform global analysis across an entire corpus.&lt;/p&gt;

&lt;h3&gt;
  
  
  Test D: Tool-assisted reasoning
&lt;/h3&gt;

&lt;p&gt;Compare direct long-context prompting against workflows using retrieval, code execution, or other verification tools.&lt;/p&gt;

&lt;p&gt;For every experiment, record:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Answer accuracy&lt;/td&gt;
&lt;td&gt;Measures correctness&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Context length&lt;/td&gt;
&lt;td&gt;Reveals scale sensitivity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Input/output tokens&lt;/td&gt;
&lt;td&gt;Measures resource usage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Latency&lt;/td&gt;
&lt;td&gt;Measures responsiveness&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;Measures practical efficiency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Evidence completeness&lt;/td&gt;
&lt;td&gt;Checks whether necessary information was found&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Model versions and inference settings should be fixed and documented.&lt;/p&gt;

&lt;p&gt;Tasks should be repeated using multiple independent examples, with uncertainty estimates reported alongside aggregate scores.&lt;/p&gt;

&lt;p&gt;This is a proposed experimental design, not a claim that these tests have already been run for this article.&lt;/p&gt;




&lt;h2&gt;
  
  
  10. Limitations and Research Caveats
&lt;/h2&gt;

&lt;p&gt;There are several reasons to interpret these findings carefully.&lt;/p&gt;

&lt;p&gt;First, &lt;strong&gt;ATLAS is a May 2026 preprint&lt;/strong&gt;. Its results are useful research evidence, but they should not be mistaken for a universally accepted model ranking.&lt;/p&gt;

&lt;p&gt;Second, the comparison covers a specific collection of 26 models and evaluation settings. It does not establish the performance of every model released later in 2026.&lt;/p&gt;

&lt;p&gt;Third, CorpusQA evaluates a different set of models and tasks. Its numerical results cannot be directly compared with ATLAS scores.&lt;/p&gt;

&lt;p&gt;Fourth, performance at 1M tokens may involve implementation-specific constraints, including inference settings and context handling.&lt;/p&gt;

&lt;p&gt;Finally, benchmark results do not automatically predict real-world performance.&lt;/p&gt;

&lt;p&gt;An AI system answering legal questions, writing code, analyzing scientific papers, or processing financial records may require very different capabilities.&lt;/p&gt;

&lt;p&gt;The correct model and architecture should be selected through task-specific evaluation.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion: We Need Better Questions Than "How Many Tokens?"
&lt;/h2&gt;

&lt;p&gt;The rapid growth of context windows is an important technological achievement.&lt;/p&gt;

&lt;p&gt;But the 2026 research tells a more complicated story.&lt;/p&gt;

&lt;p&gt;The ATLAS study found that model rankings change when evaluation extends toward one million tokens.&lt;/p&gt;

&lt;p&gt;CorpusQA demonstrated the difficulty of analyzing large document collections when relevant evidence is dispersed across many sources.&lt;/p&gt;

&lt;p&gt;Together, these studies suggest that increasing context capacity alone is not enough to guarantee reliable information processing.&lt;/p&gt;

&lt;p&gt;For developers, the practical implications are straightforward:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't select an LLM based only on advertised context size.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Evaluate it at the lengths your application actually uses.&lt;/p&gt;

&lt;p&gt;Test retrieval and reasoning separately.&lt;/p&gt;

&lt;p&gt;Measure the quality of evidence, not only the fluency of the generated answer.&lt;/p&gt;

&lt;p&gt;And consider whether structured tools, retrieval systems, or deterministic computation can make your application more reliable.&lt;/p&gt;

&lt;p&gt;The future of long-context AI may not be about putting everything into one prompt.&lt;/p&gt;

&lt;p&gt;It may be about building systems that know &lt;strong&gt;what to retrieve, what to remember, what to compute, and what to verify.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A million-token context window is a capability.&lt;/p&gt;

&lt;p&gt;Reliable reasoning over a million tokens is a different achievement.&lt;/p&gt;




&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;[1] ATLAS — All-round Testing of Long-context Abilities across Scales (2026)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Deli Huang et al.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://arxiv.org/abs/2605.28079" rel="noopener noreferrer"&gt;https://arxiv.org/abs/2605.28079&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;[2] CorpusQA — A 10 Million Token Benchmark for Corpus-Level Analysis and Reasoning (2026)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Zhiyuan Lu et al.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://arxiv.org/abs/2601.14952" rel="noopener noreferrer"&gt;https://arxiv.org/abs/2601.14952&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;[3] Claude Opus 4.6 System Card (2026)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Anthropic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.anthropic.com/system-cards" rel="noopener noreferrer"&gt;https://www.anthropic.com/system-cards&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Discussion
&lt;/h2&gt;

&lt;p&gt;Do you think future AI systems will rely primarily on larger context windows, or will retrieval, memory, and tool-assisted reasoning become more important?&lt;/p&gt;

&lt;p&gt;And have you encountered cases where an LLM missed important information even though it was present in the prompt?&lt;/p&gt;

&lt;p&gt;I'd be interested in hearing about real-world experiences.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/coffee1337" rel="noopener noreferrer"&gt;https://github.com/coffee1337&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Portfolio:&lt;/strong&gt; &lt;a href="https://coffee1337.github.io/" rel="noopener noreferrer"&gt;https://coffee1337.github.io/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>machinelearning</category>
      <category>openai</category>
    </item>
    <item>
      <title>The Labeling Era Is Over; the Verifying Era Is Here</title>
      <dc:creator>Agent Hands</dc:creator>
      <pubDate>Wed, 14 Oct 2026 14:15:54 +0000</pubDate>
      <link>https://dev.to/agenthandsai/the-labeling-era-is-over-the-verifying-era-is-here-4cc4</link>
      <guid>https://dev.to/agenthandsai/the-labeling-era-is-over-the-verifying-era-is-here-4cc4</guid>
      <description>&lt;h1&gt;
  
  
  The Labeling Era Is Over; the Verifying Era Is Here
&lt;/h1&gt;

&lt;p&gt;For the last decade, the biggest gig market in AI looked like this: a person, a screen, and an endless queue of images to label. Cars, stop signs, pedestrians. Mechanical Turk, annotation farms, whole companies built on armies of clickers drawing boxes around things that already happened. It was necessary work — models needed examples — and it was anonymous, interchangeable, and paid like it.&lt;/p&gt;

&lt;p&gt;That era is winding down. Not because the labels ran out, but because they stopped being the bottleneck.&lt;/p&gt;

&lt;p&gt;The new bottleneck is ground truth, and it doesn't live on a screen. It lives at a place, at a time. Is that storefront actually open? Is the parking lot full at 8 AM on a Tuesday? What does the skyline look like right now, from that corner, in this weather? Training data goes stale the moment the world changes; verification never does, because it happens live.&lt;/p&gt;

&lt;p&gt;This is the verifying era, and its economics flip the old ones inside out.&lt;/p&gt;

&lt;p&gt;Labeling scaled with the cloud. One task could be done by anyone, anywhere, so price collapsed toward the lowest bid. Verifying scales with feet on the ground — it can only be done by someone who is &lt;em&gt;there&lt;/em&gt;. Your location and your eyes become the asset, not your clicking speed. A gig like "take a photo of Hudson River Park tomorrow morning" can't be outsourced to a farm in another hemisphere or automated away. The scarcity is geographic, which is the one thing the internet never flattened.&lt;/p&gt;

&lt;p&gt;That's why AI agents — the actual software programs planning trips, scouting real estate, monitoring conditions — are starting to pay real money for humans to confirm what's real. An agent can't physically go check. It can reason about satellite images and reviews, but when it needs a photo of a specific corner this morning, it needs a body. Yours.&lt;/p&gt;

&lt;p&gt;The pay reflects the premium. On &lt;a href="https://agenthands-app.vercel.app" rel="noopener noreferrer"&gt;AgentHands&lt;/a&gt;, where agents post paid physical-world gigs, a simple photo job at Hudson River Park pays $9.00 (or $12.75 for members, since the platform's 15%/40% fee is lower for members). There's even a referral job worth up to $191.98. That's not annotation-farm money — that's what ground truth costs when only a person on the scene can provide it.&lt;/p&gt;

&lt;p&gt;What this means for workers is simple and kind of great: your biggest advantage is just... being somewhere. The ten-minute walk to the park with a phone is the job. No résumé, no tutorial, no leaderboard grind. You show up, you see the thing, you prove it. The world is the task queue now.&lt;/p&gt;

&lt;p&gt;What it means for everyone else: the last wave of AI labor made models that know what things look like. This wave is making systems that know what's happening — a live, human-verified layer of reality, refreshed constantly, one photo at a time. Agents don't just need training data anymore. They need eyes on the ground.&lt;/p&gt;

&lt;p&gt;The labeling era was about teaching machines what the world was. The verifying era is about telling them what it is, right now. And that's a job only a human can do — which, for once, is exactly why it pays.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>ai</category>
      <category>datascience</category>
    </item>
    <item>
      <title>DroneWatch AI: Building a Multi-Sensor Drone Detection Demonstrator</title>
      <dc:creator>Devaland</dc:creator>
      <pubDate>Wed, 14 Oct 2026 14:00:08 +0000</pubDate>
      <link>https://dev.to/devaland/dronewatch-ai-building-a-multi-sensor-drone-detection-demonstrator-1n71</link>
      <guid>https://dev.to/devaland/dronewatch-ai-building-a-multi-sensor-drone-detection-demonstrator-1n71</guid>
      <description>&lt;p&gt;Earlier this year I entered DroneWatch AI in the EUDIS Defence Hackathon in Bucharest. The idea stayed with me, and I have now built it into a working demonstrator. This is what it is, how it works, and why a software layer, not more hardware, is the interesting part of drone detection.&lt;/p&gt;

&lt;p&gt;First, honestly: this is a concept demonstrator, not an operational system. The drone-threat signals are simulated. Two public feeds are live and real: ADS-B air traffic and, since 25 September 2026, network Remote ID, which shows only drones that identify themselves, as context, never as a threat. It does not detect non-cooperative drones. I built it to prove the approach and to start conversations with partners.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem: cheap drones, expensive detection
&lt;/h2&gt;

&lt;p&gt;Commercial drones now threaten airports, critical infrastructure, public events and borders. The usual answer is specialised counter-drone hardware, which is expensive, so coverage stays sparse and hard to scale. Meanwhile a single sensor is noisy: radio-frequency alone, acoustics alone or radar alone each throw false alarms, and operators get flooded with unfused, unexplained detections they cannot act on.&lt;/p&gt;

&lt;h2&gt;
  
  
  The idea: fuse weak signals, do not buy more hardware
&lt;/h2&gt;

&lt;p&gt;Plenty of cheap, distributed sensors already exist. The value is not another sensor. It is the software intelligence layer that makes the ones you have smarter, correlates them, and hands a clear, explainable track to whoever is on watch.&lt;/p&gt;

&lt;p&gt;DroneWatch fuses five sources into one picture per zone:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Source&lt;/th&gt;
&lt;th&gt;What it contributes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Radio-frequency&lt;/td&gt;
&lt;td&gt;The drone's control and video link&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Acoustic&lt;/td&gt;
&lt;td&gt;The rotor signature&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Telemetry&lt;/td&gt;
&lt;td&gt;Position and Remote-ID style data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Registry / ADS-B&lt;/td&gt;
&lt;td&gt;Which flights are authorised (this feed is live and real)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Human reports&lt;/td&gt;
&lt;td&gt;What a person on the ground sees&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Built to not cry wolf
&lt;/h2&gt;

&lt;p&gt;The most important design choice is false-alarm suppression. A single sensor blip never alerts. A registered, authorised flight, even a loud one, stays quiet. A HIGH assessment requires at least two independent sensors to agree and a contact with no matching authorised flight. An alert that is wrong most of the time gets ignored, and in this domain that is the failure that matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Live data, a tactical map, and an AI that explains itself
&lt;/h2&gt;

&lt;p&gt;The demonstrator plots live, real air traffic from a public ADS-B feed on a tactical map, around a chosen protected site, next to the simulated drone track. Since 25 September 2026 it also reads network Remote ID from Dronetag's public network: an identified drone near the site appears as context and never raises the threat level on its own, because identified is not the same as authorised. A two-tier engine assesses each situation: deterministic rules first, then an AI layer that explains, in plain operator language, why a given threat level is justified by the signals present. It runs on infrastructure I own and monitor, the same way I build and run every other &lt;a href="https://devaland.com/blog/custom-ai-development-for-founders" rel="noopener noreferrer"&gt;custom AI system for founders&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Built to integrate
&lt;/h2&gt;

&lt;p&gt;Being usable means speaking the interfaces operators already run. The design ingests real sensors and pushes a scored track into an existing command system through recognised standards:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Domain&lt;/th&gt;
&lt;th&gt;Interfaces&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Identification&lt;/td&gt;
&lt;td&gt;Remote ID (ASTM F3411), ADS-B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Air and drone traffic&lt;/td&gt;
&lt;td&gt;ASTERIX, U-space / UTM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Military command and control&lt;/td&gt;
&lt;td&gt;STANAG 4586 / 4609, Link 16&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;It stays strictly defensive: detection and early-warning only, with any response left to a separate, authorised, human-in-the-loop system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it goes next, and who I am looking for
&lt;/h2&gt;

&lt;p&gt;The honest next step is a pilot at one real site with one or two real sensor types plus the live feeds, to measure the real-world false-alarm rate, the number that actually matters. From there it grows toward machine-learning detection and a distributed grid.&lt;/p&gt;

&lt;p&gt;I am looking for serious partners to build this into a fielded system: counter-UAS and sensor companies, systems integrators, and people working on European defence innovation. If you bring the sensors and the accreditation path, I bring the AI fusion layer. My background is as an Army Engineer (Military Technical Academy, Bucharest), so I understand both the operational world and the software. If that is a fit, I would value a conversation. You can also read &lt;a href="https://devaland.com/blog/what-a-paid-ai-pilot-looks-like" rel="noopener noreferrer"&gt;what a paid AI pilot looks like&lt;/a&gt; or &lt;a href="https://devaland.com/blog/hire-a-fractional-ai-engineer" rel="noopener noreferrer"&gt;hire a fractional AI engineer&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is DroneWatch AI an operational counter-drone system?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. It is a concept demonstrator. The drone-threat signals are simulated and it does not detect non-cooperative drones. Two public feeds are live and real: ADS-B air traffic, and network Remote ID, which shows only drones that identify themselves and is treated as context, never as a threat. It exists to prove the fusion approach and to start partner conversations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How does it reduce false alarms?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It requires agreement. A single sensor blip never raises an alert, and an authorised, registered flight never does. A HIGH assessment needs at least two independent sensors to agree and a contact with no matching authorised flight.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does it replace radar or RF sensors?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No. It is the software fusion and AI layer above whatever sensors you already have. It makes distributed, mixed sensors smarter and hands a scored, explainable track to your command system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What would it take to field it?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Real sensor integration at one site, a pilot to measure the real false-alarm rate, and a partner who brings sensors and an accreditation path. EUDIS and European Defence Fund calls fund exactly this kind of dual-use software layer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who built it?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Marius Andronie, an Army Engineer who now builds and operates production AI systems. DroneWatch AI began as an entry to the &lt;a href="https://taikai.network/eudisROMANIA/hackathons/2026spring/projects/cmmepeb5i02e5118jgf2fjhu0/idea" rel="noopener noreferrer"&gt;EUDIS Defence Hackathon in Bucharest&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;This project was first entered in the &lt;a href="https://taikai.network/eudisROMANIA/hackathons/2026spring" rel="noopener noreferrer"&gt;EUDIS Defence Hackathon Spring 2026, Romania&lt;/a&gt;, part of the EU Defence Innovation Scheme.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on devaland.com: &lt;a href="https://devaland.com/blog/dronewatch-ai-multi-sensor-drone-detection" rel="noopener noreferrer"&gt;DroneWatch AI: Building a Multi-Sensor Drone Detection Demonstrator&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>machinelearning</category>
      <category>security</category>
    </item>
    <item>
      <title>Stop Building Listening Dashboards. Build Listening Tools Your Agent Can Call.</title>
      <dc:creator>Jiahui Miao</dc:creator>
      <pubDate>Wed, 14 Oct 2026 13:47:35 +0000</pubDate>
      <link>https://dev.to/jiahui-miao/stop-building-listening-dashboards-build-listening-tools-your-agent-can-call-2c4i</link>
      <guid>https://dev.to/jiahui-miao/stop-building-listening-dashboards-build-listening-tools-your-agent-can-call-2c4i</guid>
      <description>&lt;p&gt;&lt;em&gt;I built an open-source listening system, EchoWatch, and made a protocol — MCP — its first interface, ahead of its own dashboard. The next user of a listening tool is not an analyst staring at charts. It is an agent that needs to ask, in the middle of a task, "what changed, how much, and should I care?" — and get an answer it can act on.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Every listening product I have ever opened makes the same assumption: a human will log in, look at a dashboard, and decide what matters. The charts get prettier every year. The assumption gets older. My operation does not have an analyst on staff. It has an AI system that runs my publishing, my monitoring, and my follow-ups — for an audience of exactly one principal: me. A dashboard that waits for me to visit it is a dashboard that gets visited never. So this week I built the listening layer my system actually needed, and I built it agent-first.&lt;/p&gt;

&lt;p&gt;EchoWatch collects mentions from live sources, dedupes and stores them locally in SQLite, and exposes them to my agent as four MCP tools: &lt;code&gt;search_mentions&lt;/code&gt;, &lt;code&gt;sentiment_trend&lt;/code&gt;, &lt;code&gt;hot_events&lt;/code&gt;, and &lt;code&gt;generate_brief&lt;/code&gt;. The dashboard exists — all six of its routes serve real data — but it is the second surface, not the product. The product is a question an agent can ask at 3 a.m. without waking anyone.&lt;/p&gt;

&lt;h2&gt;
  
  
  The numbers are unglamorous, and they are real
&lt;/h2&gt;

&lt;p&gt;Five sources are verified live, not stubbed: Hacker News, GDELT (75 mentions in its verification run), RSS, Reddit through its RSS feed (22 mentions), and Bluesky (25), plus a sixth source, a TechCrunch feed, added with zero code through a configuration file. The local database holds 187 mentions, and re-running every fetch stores zero duplicates. That last property is a design decision, not an accident. The mature open-source monitoring suite I benchmarked against — feature by feature, across a 37-row parity matrix — dedupes with a Bloom filter. A Bloom filter has false positives, which means it silently discards real mentions and calls that efficiency. A listening tool that quietly deletes the thing it exists to hear is broken at the load-bearing wall. EchoWatch dedupes with an exact content hash enforced by a unique index: slower to describe, impossible to lie with. In its verification run, a second Hacker News fetch was intercepted 50 out of 50.&lt;/p&gt;

&lt;p&gt;The rest of the chain is equally literal. Volume spikes are detected against a rolling baseline and pushed out over a webhook — tested end to end, three true alerts fired, zero false ones on the control set. Briefs render as Markdown and HTML files with code-drawn SVG charts, because a brief an agent can forward beats a page a human must log into. The whole stack is one Python process and one SQLite file, with zero runtime dependencies, and its first GitHub Actions CI run — tests plus a Docker build — passed this morning.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I refused to copy
&lt;/h2&gt;

&lt;p&gt;Parity was the floor, not the goal. The suite I measured against ships two message queues, four storage engines, and a Java stack, because it was designed for enterprise clusters. Copying its feature list meant refusing its machinery: middleware is a means, not a feature, and no user has ever asked for a second message queue. Ten rows of my 37-row matrix ended as explicit, recorded decisions not to rebuild the heavy parts — each one argued on cost, not skipped in silence.&lt;/p&gt;

&lt;p&gt;And one honest limitation, stated the way I require every part of my system to state it: the LLM sentiment backend is wired behind a unified interface, but the machine that built this has no API key, so that path is not yet verified live. What runs today is a dictionary baseline — roughly 190 weighted terms with a negation window — and when no key is present the system labels its own output degraded instead of inventing a score. A listening tool that fabricates confidence is worse than one that admits a gap. The gap closes the day a key lands in the environment; the labeling stays forever.&lt;/p&gt;

&lt;h2&gt;
  
  
  Listening is a sense. Senses belong to the actor.
&lt;/h2&gt;

&lt;p&gt;Here is the claim I will defend: a dashboard treats listening as reporting — something that already happened, formatted for review. An agent treats listening as a sense — something happening now, wired directly into the thing that acts. When a spike fires in my system, it does not wait for a weekly review meeting. It reaches the same agent that writes, schedules, and escalates, with the brief already attached.&lt;/p&gt;

&lt;p&gt;The vendors will keep polishing dashboards, because dashboards are what procurement buys. But the builders wiring agents into real operations are going to route around them, the same way EchoWatch did: local data, exact dedupe, honest degradation, and a protocol where the login page used to be. Stop building listening dashboards. Build listening tools your agent can call.&lt;/p&gt;

&lt;p&gt;— Jiahui Miao, founder of vertciti, building a personal AI operating system for one.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>machinelearning</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Coinbase's 9B Fraud Model Beat Opus 4.5: Copy the Pattern With a Verifiable Reward, Tier-Only Output, and Block-Only Harness</title>
      <dc:creator>Yong Yu</dc:creator>
      <pubDate>Wed, 14 Oct 2026 13:27:20 +0000</pubDate>
      <link>https://dev.to/yong_yu_f98e15562e9b120a0/coinbases-9b-fraud-model-beat-opus-45-copy-the-pattern-with-a-verifiable-reward-tier-only-4m05</link>
      <guid>https://dev.to/yong_yu_f98e15562e9b120a0/coinbases-9b-fraud-model-beat-opus-45-copy-the-pattern-with-a-verifiable-reward-tier-only-4m05</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Attributed compile + one small offline run on synthetic data&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Primary sources (Coinbase Engineering, "Owning Intelligence" series):&lt;/strong&gt; &lt;a href="https://www.coinbase.com/blog/part-one-how-coinbase-built-evaluated-and-post-trained-a-fraud-agent" rel="noopener noreferrer"&gt;Part 1/3 — Build&lt;/a&gt; by &lt;strong&gt;Yao Ma, Bo Lei, Xuwei Tan&lt;/strong&gt; (2026-10-06), &lt;a href="https://www.coinbase.com/blog/part-two-owning-intelligence-series" rel="noopener noreferrer"&gt;Part 2/3 — Evaluate&lt;/a&gt; by &lt;strong&gt;Yao Ma, Xuwei Tan&lt;/strong&gt; (2026-10-07), and &lt;a href="https://www.coinbase.com/blog/part-three-owning-intelligence-series" rel="noopener noreferrer"&gt;Part 3/3 — Own&lt;/a&gt; by &lt;strong&gt;Yao Ma, Xuwei Tan, Akshit Trehan, Aman Choudhary&lt;/strong&gt; with the Anyscale team (&lt;strong&gt;Eric Tang, Sumanth Hegde, Seiji Eicher, Jess Kong&lt;/strong&gt;) (2026-10-08)&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Also:&lt;/strong&gt; &lt;a href="https://x.com/brian_armstrong/status/2109412046244913643" rel="noopener noreferrer"&gt;Brian Armstrong on X&lt;/a&gt; (2026-10-11); secondary coverage by &lt;a href="https://dealroom.co/news/161689-coinbase-post-trains-an-open-weight-9b-model-that-beats-opus-4-5-at-frau/" rel="noopener noreferrer"&gt;Dealroom&lt;/a&gt;, &lt;a href="https://cryptobriefing.com/coinbase-qwen-model-fraud-prevention/" rel="noopener noreferrer"&gt;Crypto Briefing&lt;/a&gt; (Diego Almada Lopez), &lt;a href="https://coincentral.com/coinbase-ai-agent-outperforms-opus-in-fraud-tests" rel="noopener noreferrer"&gt;CoinCentral&lt;/a&gt;, and &lt;a href="https://hdatf.com/ax-cases/ax137" rel="noopener noreferrer"&gt;HDATF AX case 137&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Every benchmark, latency and cost number about Coinbase's system is &lt;strong&gt;Coinbase's&lt;/strong&gt;, measured on their private data. I did not train anything. The run below is a tiny eval harness on a &lt;strong&gt;synthetic, seeded&lt;/strong&gt; transaction set.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;The headline that went around X this week: Coinbase post-trained open-weight &lt;strong&gt;Qwen3.5-9B&lt;/strong&gt; on its own Onramp fraud data, and it beat Claude Opus 4.5 on Coinbase's fraud benchmark. Brian Armstrong's take was that specialist models will "out perform on more narrow tasks."&lt;/p&gt;

&lt;p&gt;The model swap is the least copyable part. The useful part is the system around it. That's what this post covers, plus a harness you can run on a laptop in under a second (the optional small-model reviewer takes a few minutes on CPU).&lt;/p&gt;

&lt;h2&gt;
  
  
  What Coinbase actually built
&lt;/h2&gt;

&lt;p&gt;From Part 1, in my own words:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Layered, not replaced.&lt;/strong&gt; Onramp sends a transaction to a Risk Service. The existing ML model and rules engine screen it first. The LLM agent sits &lt;em&gt;downstream&lt;/em&gt; and reviews only &lt;strong&gt;selected&lt;/strong&gt; transactions, using recent transaction history plus written review guidance and calibration examples.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tier-only output.&lt;/strong&gt; The model returns a risk level (their example is &lt;code&gt;RISK_LEVEL: 5&lt;/code&gt;) with no explanation. With a ~7,000-token prompt, Opus had a P50 of about 1.5 s.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The harness decides.&lt;/strong&gt; Application code builds the context, parses the tier, and applies the decision policy. The model never executes a payment action.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Block-only authority.&lt;/strong&gt; The agent can block something upstream allowed. It cannot override an upstream block.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In a 50% traffic A/B test, the agent-enabled arm had &lt;strong&gt;30% fewer fraudulent transactions and 22% less fraud value&lt;/strong&gt;. Coinbase estimates fraud savings at roughly &lt;strong&gt;3×&lt;/strong&gt; the inference cost.&lt;/p&gt;

&lt;p&gt;Part 2 built a fixed benchmark: &lt;strong&gt;16,140 transactions from 7,293 users, 813 confirmed fraud&lt;/strong&gt;, taken from nine weeks &lt;em&gt;before&lt;/em&gt; the agent rolled out, so the agent's own blocks couldn't bias which outcomes got observed. Newer Opus, Sonnet and GPT versions each scored &lt;strong&gt;lower&lt;/strong&gt; on recall, F1 and dollar-weighted recall than the version before. GPT-5.6 (sol) gained 11.5 points of precision but lost 20.7 points of recall and 21.8 of dollar-weighted recall.&lt;/p&gt;

&lt;p&gt;Part 3 is the post-train: RLVR with GRPO and LoRA on SkyRL (on Anyscale), run on &lt;strong&gt;one RTX PRO 6000 96GB for under $100&lt;/strong&gt;. Against Opus 4.5 as a single-pass decision agent: &lt;strong&gt;+7.5 precision, +12.0 recall, +9.6 F1, +35.4 dollar-weighted recall&lt;/strong&gt;. The figure caption says these are percentage-point differences. Serving uses Ray Serve LLM + vLLM on L40S GPUs (2–8 replicas). P50 was &lt;strong&gt;0.683 s vs 1.515 s&lt;/strong&gt;, P99 &lt;strong&gt;1.036 s vs 3.312 s&lt;/strong&gt;. Coinbase notes that latency and detection were measured in separate evaluations. They also say the unadapted Qwen base "performed poorly."&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the reward is "verifiable" here
&lt;/h2&gt;

&lt;p&gt;Most RL-for-LLM setups need a judge model to say whether an answer is good. Fraud doesn't. Historical transactions eventually get an outcome: chargeback or confirmed fraud, or not. So the reward is just a &lt;strong&gt;deterministic function of (model output, known label)&lt;/strong&gt;. Nothing gets graded on how persuasive it sounds.&lt;/p&gt;

&lt;p&gt;Part 3 adds two details worth copying:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Format checks.&lt;/strong&gt; Unparseable output gets penalised.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Class balance.&lt;/strong&gt; If fraud is rare, "always say low risk" looks accurate. Their reward weights fraud and legit examples so a constant answer can't farm reward.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GRPO then samples a group of answers to the same prompt and pushes the model toward the ones that scored above the group mean. You don't need a value network or a judge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why dollar-weighted recall, not just F1
&lt;/h2&gt;

&lt;p&gt;F1 counts incidents. One missed $5,000 cash-out counts the same as one missed $12 card test. Dollar-weighted recall asks what share of the fraud &lt;strong&gt;value&lt;/strong&gt; you caught. Part 2's point is that a model can miss relatively few transactions and still miss a large share of the money.&lt;/p&gt;

&lt;h2&gt;
  
  
  The run: a laptop-sized version of the pattern
&lt;/h2&gt;

&lt;p&gt;I wrote &lt;code&gt;fraud_tier_eval.py&lt;/code&gt;, about 200 lines of plain Python, plus an optional small-model reviewer. It runs on a &lt;strong&gt;synthetic&lt;/strong&gt; set (seed 18): 600 transactions, 47 labelled fraud worth $68,484.50 in total. I wrote the generator with three fraud shapes: card testing (many small buys), cash-out (one large buy, fresh card, new wallet), and quiet (mid-size, geo mismatch only). &lt;strong&gt;I designed the shapes, so the results show how the metrics behave. They don't show which reviewer is good.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The flow mirrors the pattern. Upstream rules block first. Routing picks 579/600 for review. Each reviewer returns only a string like &lt;code&gt;RISK_LEVEL: 4&lt;/code&gt;. The harness parses it with a strict regex and blocks at tier ≥ 4:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;decide&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;upstream&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;reviewer_text&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;upstream&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;BLOCK&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;BLOCK&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;upstream_block_kept&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;   &lt;span class="c1"&gt;# reviewer can never release
&lt;/span&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;reviewer_text&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ALLOW&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;not_routed&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="n"&gt;tier&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;parse_tier&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;reviewer_text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;            &lt;span class="c1"&gt;# ^RISK_LEVEL: ([1-5])$
&lt;/span&gt;    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;tier&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;upstream&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;parse_error&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;          &lt;span class="c1"&gt;# log it, keep upstream decision
&lt;/span&gt;    &lt;span class="nf"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;BLOCK&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;reviewer_block&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;tier&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt; &lt;span class="nf"&gt;else &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ALLOW&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;reviewer_allow&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The reward function is the part a GRPO environment would call:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;w_f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;w_l&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;n_fraud&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;n_legit&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;reward&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;is_fraud&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;tier&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;parse_tier&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;tier&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;
    &lt;span class="n"&gt;correct&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tier&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;is_fraud&lt;/span&gt;
    &lt;span class="nf"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;correct&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;w_f&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;is_fraud&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="n"&gt;w_l&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Printed results (2026-10-14, 8-vCPU Xeon, Python 3.13, CPU only):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Reviewer&lt;/th&gt;
&lt;th&gt;P&lt;/th&gt;
&lt;th&gt;R&lt;/th&gt;
&lt;th&gt;F1&lt;/th&gt;
&lt;th&gt;$-recall&lt;/th&gt;
&lt;th&gt;Legit $ blocked&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;upstream rules only&lt;/td&gt;
&lt;td&gt;1.000&lt;/td&gt;
&lt;td&gt;0.319&lt;/td&gt;
&lt;td&gt;0.484&lt;/td&gt;
&lt;td&gt;0.598&lt;/td&gt;
&lt;td&gt;0.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;velocity (counts recent buys)&lt;/td&gt;
&lt;td&gt;0.714&lt;/td&gt;
&lt;td&gt;0.638&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.674&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.603&lt;/td&gt;
&lt;td&gt;846.55&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;context (new wallet/card, amount vs history)&lt;/td&gt;
&lt;td&gt;0.379&lt;/td&gt;
&lt;td&gt;0.702&lt;/td&gt;
&lt;td&gt;0.493&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.979&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;49,411.22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;d1-omni-600M, &lt;strong&gt;unadapted&lt;/strong&gt;, CPU&lt;/td&gt;
&lt;td&gt;0.455&lt;/td&gt;
&lt;td&gt;0.319&lt;/td&gt;
&lt;td&gt;0.375&lt;/td&gt;
&lt;td&gt;0.598&lt;/td&gt;
&lt;td&gt;12,521.50&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;What the run showed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;F1 and dollar-weighted recall picked different winners.&lt;/strong&gt; The velocity reviewer caught 24/29 card tests and none of the cash-outs that upstream let through: $-recall 0.603 vs 0.598 for upstream alone. The context reviewer caught 12/12 cash-outs ($-recall 0.979) but blocked $49,411.22 of legit purchases. Neither metric alone is enough. Track precision and legit-dollars-blocked next to them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A generic small model added nothing here.&lt;/strong&gt; LiquidAI's d1-omni-600M, prompted with a plain-English description of each transaction, added 18 blocks and every one was a false positive. Its recall stayed at the upstream 0.319. Median review time was 193.6 ms. That's one model on toy data, but it fits Coinbase's note that the unadapted base was weak and adaptation did the work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The class-balanced reward caught the lazy policy.&lt;/strong&gt; "Always &lt;code&gt;RISK_LEVEL: 1&lt;/code&gt;" had 0.922 plain accuracy and a mean reward of −0.000. The d1 reviewer scored −0.033.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The guard held, but it limits direction, not damage.&lt;/strong&gt; A deliberately buggy reviewer emitted &lt;code&gt;RELEASE&lt;/code&gt;, &lt;code&gt;RISK_LEVEL: 9&lt;/code&gt; and prose. That caused 344 parse errors, and every upstream block stayed blocked (asserted). It still added 111 random blocks, 104 of them legit. Block-only authority stops wrongful releases. It doesn't stop a broken model from blocking good customers, so alert on block rate too.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GRPO-style group demo:&lt;/strong&gt; for one $4,733.38 cash-out, &lt;code&gt;RISK_LEVEL: 5&lt;/code&gt; and &lt;code&gt;RISK_LEVEL: 4&lt;/code&gt; scored +6.383 (advantage +0.935) and &lt;code&gt;RISK_LEVEL: 2&lt;/code&gt; scored −6.383. A correct tier with an explanation appended scored −1.0, so the format contract is part of the reward.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Not done:&lt;/strong&gt; no fine-tuning, no GRPO training run, no Qwen3.5-9B, no Coinbase data, no latency comparison with any frontier model. The set is tiny and synthetic. Files are in &lt;code&gt;runs/18-coinbase-specialist/&lt;/code&gt; (&lt;code&gt;fraud_tier_eval.py&lt;/code&gt;, &lt;code&gt;run_output.txt&lt;/code&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  When not to copy this
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No trustworthy labels.&lt;/strong&gt; RLVR is only as good as the outcome label. If fraud confirmation is slow, noisy or missing, the reward becomes guesswork. Coinbase notes labels arrive late even for them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Low volume.&lt;/strong&gt; Coinbase's benchmark alone had 813 confirmed fraud cases. If you have dozens, a prompted frontier model with a fixed eval set is cheaper to run and to reason about. That's my rule of thumb, not a Coinbase threshold.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Policy that shifts weekly.&lt;/strong&gt; Part 1 points out that you can change natural-language guidance without retraining. Baked-in weights can't do that. If the rules move faster than you can retrain and re-evaluate, keep the policy in the prompt and the harness.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No owner for the lifecycle.&lt;/strong&gt; Part 3's own checklist is to evaluate on domain outcomes, version weights, prompts and policy together, and keep a tested rollback. If no one owns those, don't self-host a model that sits in a payment flow.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How I'd start this week
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Freeze a labelled eval set from a period &lt;em&gt;before&lt;/em&gt; any model touched decisions.&lt;/li&gt;
&lt;li&gt;Make the model return one parseable token. Put the policy in code.&lt;/li&gt;
&lt;li&gt;Score every candidate on precision, recall, F1, dollar-weighted recall and legit-dollars-blocked.&lt;/li&gt;
&lt;li&gt;Only then consider RL. The reward function you need is already in your eval harness.&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;em&gt;YongBo Yu is an AI engineer in Toronto building LLM workflows and agent systems. More at &lt;a href="https://yongbo-yu.vercel.app" rel="noopener noreferrer"&gt;yongbo-yu.vercel.app&lt;/a&gt; and &lt;a href="https://github.com/YongBoYu1" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>python</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Top 798 Places to Buy Old Gmail Accounts (PVA &amp;</title>
      <dc:creator>Amber Freeman</dc:creator>
      <pubDate>Wed, 14 Oct 2026 13:16:15 +0000</pubDate>
      <link>https://dev.to/lorriehostetler5lsw9/top-798-places-to-buy-old-gmail-accounts-pva--2ch1</link>
      <guid>https://dev.to/lorriehostetler5lsw9/top-798-places-to-buy-old-gmail-accounts-pva--2ch1</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F24snhh0fxmgtnkj3rjwr.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F24snhh0fxmgtnkj3rjwr.jpg" alt=" " width="800" height="709"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Buy Old Gmail Accounts&lt;/p&gt;

&lt;p&gt;In today’s digital environment, email accounts are essential for communication, marketing, ProAccMarket.com and managing online operations. Many individuals and businesses prefer to buy old Gmail accounts because they offer higher trust, stability, and better performance compared to newly created accounts.&lt;/p&gt;

&lt;p&gt;Old Gmail accounts come with a usage history, making them more reliable and less likely to face restrictions. ProAccMarket.com This makes them ideal for long-term use in business and professional activities.&lt;/p&gt;

&lt;p&gt;📞📩⚡️ For more information,just knock us!📞📩⚡️&lt;/p&gt;

&lt;p&gt;🌐🌿💌🧿💫⏱🛒💎Telegram: @proaccmarkett&lt;/p&gt;

&lt;p&gt;🌐🌿💌🧿💫⏱🛒💎 WhatsApp:‪ +1 (469) 551-9198&lt;/p&gt;

&lt;p&gt;🌐🌿💌🧿💫⏱🛒💎Telegram: @proaccmarkett&lt;/p&gt;

&lt;p&gt;Why People Buy Old Gmail Accounts More Than Modern Accounts?&lt;/p&gt;

&lt;p&gt;There are several reasons why users prefer old Gmail accounts over modern (new) ones: ProAccMarket.com.&lt;/p&gt;

&lt;p&gt;Higher Trust Level: Older accounts are considered more authentic&lt;/p&gt;

&lt;p&gt;Less Restrictions: Lower risk of suspension or limitations&lt;/p&gt;

&lt;p&gt;Better Performance: Ideal for marketing and bulk operations&lt;/p&gt;

&lt;p&gt;Time-Saving: No need to create and warm up new accounts&lt;/p&gt;

&lt;p&gt;Improved Deliverability: Emails are more likely to reach inboxes&lt;/p&gt;

&lt;p&gt;Buy Old Gmail Accounts&lt;/p&gt;

&lt;p&gt;What is Gmail?&lt;/p&gt;

&lt;p&gt;Gmail is a free email service developed by Google that allows users to send, receive, and manage emails efficiently. ProAccMarket.com It is one of the most widely used email platforms in the world due to its reliability, security, and integration with other Google services.&lt;/p&gt;

&lt;p&gt;With features like spam protection, cloud storage, and easy accessibility, ProAccMarket.com Gmail is suitable for both personal and professional use.&lt;/p&gt;

&lt;p&gt;Purchase Ancient Gmail Accounts Online&lt;/p&gt;

&lt;p&gt;Buying old (ancient) Gmail accounts online is a convenient solution for users who need multiple accounts quickly. ProAccMarket.com These accounts are usually pre-created, verified, and ready to use.&lt;/p&gt;

&lt;p&gt;When purchasing online, it is important to choose a trusted provider to ensure the accounts are genuine and secure.&lt;/p&gt;

&lt;p&gt;📞📩⚡️ For more information,just knock us!📞📩⚡️&lt;/p&gt;

&lt;p&gt;🌐🌿💌🧿💫⏱🛒💎Telegram: @proaccmarkett&lt;/p&gt;

&lt;p&gt;🌐🌿💌🧿💫⏱🛒💎 WhatsApp:‪ +1 (469) 551-9198&lt;/p&gt;

&lt;p&gt;🌐🌿💌🧿💫⏱🛒💎Telegram: @proaccmarkett&lt;/p&gt;

&lt;p&gt;How to Verify a Gmail Account?&lt;/p&gt;

&lt;p&gt;Verifying a Gmail account is important to unlock full functionality and improve security. ProAccMarket.com The process usually includes:&lt;/p&gt;

&lt;p&gt;Adding a phone number&lt;/p&gt;

&lt;p&gt;Confirming email verification&lt;/p&gt;

&lt;p&gt;Setting recovery options&lt;/p&gt;

&lt;p&gt;Enabling security features like 2FA&lt;/p&gt;

&lt;p&gt;Verified accounts are more secure and reliable for long-term use.&lt;/p&gt;

&lt;p&gt;How Can I Buy Real Old Gmail Accounts?&lt;/p&gt;

&lt;p&gt;To buy real old Gmail accounts safely, ProAccMarket.com &amp;nbsp;follow these steps:&lt;/p&gt;

&lt;p&gt;Choose a reputable seller&lt;/p&gt;

&lt;p&gt;Check account age and verification status&lt;/p&gt;

&lt;p&gt;Ensure login details are provided&lt;/p&gt;

&lt;p&gt;Use secure payment methods&lt;/p&gt;

&lt;p&gt;Change credentials immediately after purchase&lt;/p&gt;

&lt;p&gt;These steps help ensure a safe and successful purchase.&lt;/p&gt;

&lt;p&gt;Best Place to Buy Old Gmail Accounts&lt;/p&gt;

&lt;p&gt;The best place to buy old Gmail accounts is from a trusted and reliable provider like ProAccMarket.com. A good provider ensures:&lt;/p&gt;

&lt;p&gt;High-quality accounts&lt;/p&gt;

&lt;p&gt;Proper verification&lt;/p&gt;

&lt;p&gt;Secure transactions&lt;/p&gt;

&lt;p&gt;Customer support&lt;/p&gt;

&lt;p&gt;Choosing the right source is crucial for avoiding risks.&lt;/p&gt;

&lt;p&gt;What Are the Best Practices for Helpful Management of Gmail Accounts?&lt;/p&gt;

&lt;p&gt;Managing Gmail accounts properly ensures long-term usability. ProAccMarket.com Here are some best practices:&lt;/p&gt;

&lt;p&gt;Use strong and unique passwords&lt;/p&gt;

&lt;p&gt;Enable two-factor authentication (2FA)&lt;/p&gt;

&lt;p&gt;Avoid frequent login location changes&lt;/p&gt;

&lt;p&gt;Maintain normal usage patterns&lt;/p&gt;

&lt;p&gt;Regularly update recovery information&lt;/p&gt;

&lt;p&gt;Following these practices helps keep accounts safe and active.&lt;/p&gt;

&lt;p&gt;📞📩⚡️ For more information,just knock us!📞📩⚡️&lt;/p&gt;

&lt;p&gt;🌐🌿💌🧿💫⏱🛒💎Telegram: @proaccmarkett&lt;/p&gt;

&lt;p&gt;🌐🌿💌🧿💫⏱🛒💎 WhatsApp:‪ +1 (469) 551-9198&lt;/p&gt;

&lt;p&gt;🌐🌿💌🧿💫⏱🛒💎Telegram: @proaccmarkett&lt;/p&gt;

&lt;p&gt;Follow the Rules Below to Keep Your Gmail Account Safe:&lt;/p&gt;

&lt;p&gt;Do not share your login details&lt;/p&gt;

&lt;p&gt;Avoid suspicious activities&lt;/p&gt;

&lt;p&gt;Use a secure internet connection&lt;/p&gt;

&lt;p&gt;Monitor account activity regularly&lt;/p&gt;

&lt;p&gt;Keep backup recovery options updated&lt;/p&gt;

&lt;p&gt;These simple rules can prevent unauthorized access and account issues. ProAccMarket.com&lt;/p&gt;

&lt;p&gt;Buy Old Gmail Accounts&lt;/p&gt;

&lt;p&gt;Buy New Gmail Accounts at Low Prices from ProAccMarket.com&lt;/p&gt;

&lt;p&gt;In addition to old accounts, ProAccMarket.com ProAccMarket.com also offers new Gmail accounts at affordable prices. These accounts are suitable for users who need fresh profiles for different purposes.&lt;/p&gt;

&lt;p&gt;They are easy to use and can be customized according to your needs.&lt;/p&gt;

&lt;p&gt;Why is ProAccMarket.com the Best for Buying New and Old Gmail Accounts?&lt;/p&gt;

&lt;p&gt;ProAccMarket.com is a preferred platform for buying Gmail accounts due to its: ProAccMarket.com&lt;/p&gt;

&lt;p&gt;Trusted reputation&lt;/p&gt;

&lt;p&gt;High-quality accounts&lt;/p&gt;

&lt;p&gt;Fast delivery&lt;/p&gt;

&lt;p&gt;Competitive pricing&lt;/p&gt;

&lt;p&gt;Reliable customer support&lt;/p&gt;

&lt;p&gt;These features make it a top choice for both beginners and professionals.&lt;/p&gt;

&lt;p&gt;📞📩⚡️ For more information,just knock us!📞📩⚡️&lt;/p&gt;

&lt;p&gt;🌐🌿💌🧿💫⏱🛒💎Telegram: @proaccmarkett&lt;/p&gt;

&lt;p&gt;🌐🌿💌🧿💫⏱🛒💎 WhatsApp:‪ +1 (469) 551-9198&lt;/p&gt;

&lt;p&gt;🌐🌿💌🧿💫⏱🛒💎Telegram: @proaccmarkett&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;Buying old Gmail accounts is a smart solution for individuals and businesses looking for reliable and efficient email management. ProAccMarket.com With higher trust levels, better performance, and reduced risks, aged accounts offer significant advantages over new ones.&lt;/p&gt;

&lt;p&gt;By choosing a trusted provider like ProAccMarket.com and following proper safety practices, you can maximize the benefits and ensure long-term success in your digital activities.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>security</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Embedding Drift Detection Is Broken by the Curse of Dimensionality</title>
      <dc:creator>AI Explore</dc:creator>
      <pubDate>Wed, 14 Oct 2026 13:16:07 +0000</pubDate>
      <link>https://dev.to/aiexplore369zoho/embedding-drift-detection-is-broken-by-the-curse-of-dimensionality-1237</link>
      <guid>https://dev.to/aiexplore369zoho/embedding-drift-detection-is-broken-by-the-curse-of-dimensionality-1237</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR —&lt;/strong&gt; Most ML observability stacks still monitor embeddings the way they monitor table columns: one statistical test per dimension. That approach is mathematically unsound in high-dimensional vector space, where marginal stability can coexist with catastrophic structural shift. Real embedding observability has to test geometry, not axes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every data quality tool you've ever used was built for tables. Nulls, ranges, cardinality, a Kolmogorov-Smirnov test on a numeric column, a population stability index on a categorical one. These tools were designed in a world where "the data" meant rows and columns with human-legible meaning. Then embeddings showed up, and almost nobody rebuilt the toolchain. They just pointed the same column-level tests at a 768- or 1536-dimensional vector and called it monitored.&lt;/p&gt;

&lt;p&gt;That's the gap. It's not that teams aren't watching their embeddings. It's that the way they're watching them is statistically unsound, and it produces exactly the kind of false confidence that lets a model's behavior change dramatically while every dashboard stays green.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Marginal Distribution Trap
&lt;/h2&gt;

&lt;p&gt;The standard approach to embedding drift looks like this: take the vector, treat each dimension as an independent feature, run a two-sample test — KS, PSI, whatever — on each dimension against a reference window, and alert if enough dimensions cross a threshold. This is a direct transplant of tabular monitoring logic, and it fails for a specific, well-understood reason: marginal distributions do not determine a joint distribution.&lt;/p&gt;

&lt;p&gt;You can rotate, shear, or reshape a high-dimensional point cloud substantially while leaving every individual axis's histogram almost untouched. Embedding spaces are exactly this kind of object. A fine-tune, a model version bump, or a shift in the underlying data population can change the correlation structure between dimensions — the thing that actually encodes semantic relationships — without moving any single dimension's mean or variance enough to trip a per-axis test.&lt;/p&gt;

&lt;p&gt;So you get the worst outcome: the monitoring system reports stability, and the retrieval or classification quality downstream has quietly degraded, because the thing that mattered was never on any single axis to begin with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rotation Without Movement
&lt;/h2&gt;

&lt;p&gt;There's a more subtle failure mode that's specific to embedding spaces, and it's worth sitting with because it's counterintuitive to anyone trained on tabular statistics: cosine similarity and nearest-neighbor structure are preserved under rotation, but axis-aligned statistics are not required to be preserved under the inverse. In other words, two embedding spaces can be functionally identical for retrieval purposes while every per-dimension KS test screams drift — and two embedding spaces can be functionally very different for retrieval while every per-dimension test says nothing changed.&lt;/p&gt;

&lt;p&gt;This isn't a hypothetical edge case. It happens routinely when an embedding model is re-trained or swapped, when a tokenizer upstream changes, or when the input distribution shifts in a way that reorganizes clusters without moving centroids along the original coordinate axes. Per-dimension tests were never designed to detect this, because they assume the axes themselves carry stable meaning. In an embedding space, the axes are an arbitrary basis. There's no reason to expect semantic change to announce itself along any one of them.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Multiple Testing Problem Nobody Accounts For
&lt;/h2&gt;

&lt;p&gt;Even setting geometry aside, there's a basic statistics problem baked into "test every dimension independently." Run 768 independent hypothesis tests at a 0.05 significance level and you'd expect roughly 38 false positives by chance alone, before any real drift exists. Teams notice the alert fatigue and respond the obvious way: they tighten thresholds, require a higher fraction of dimensions to flag, or apply a crude multiple-testing correction. That reduces noise, but it also reduces sensitivity to real, structurally meaningful shifts that might only show up strongly in a handful of dimensions. You end up tuning the detector to ignore the exact signal it was supposed to catch, because the test battery was the wrong shape for the problem from the start.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Actually Needs Watching
&lt;/h2&gt;

&lt;p&gt;If marginal, per-axis tests are the wrong primitive, what replaces them? The honest answer is that embedding observability needs tests that respect the geometry of the space rather than its arbitrary coordinate system. A few approaches are genuinely better suited to this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Distribution-level distance tests&lt;/strong&gt; like Maximum Mean Discrepancy compare entire distributions in a way that's sensitive to joint structure, not just per-axis marginals, and don't require you to pick which dimension matters in advance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Local density tracking around fixed reference points.&lt;/strong&gt; Pick a stable set of anchor embeddings — canonical examples whose semantics you trust — and monitor how the local neighborhood density and nearest-neighbor composition around those anchors changes over time. This catches cluster drift that no per-axis test can see.&lt;br&gt;
&lt;strong&gt;Centroid stability for known clusters.&lt;/strong&gt; If you can define semantically me&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>testing</category>
      <category>programming</category>
    </item>
    <item>
      <title>One Minute of Audio, Three Runs: 13 Segments, Then 9, One of Them 21.94 Seconds Long</title>
      <dc:creator>Nikita Iakovlev</dc:creator>
      <pubDate>Wed, 14 Oct 2026 13:11:52 +0000</pubDate>
      <link>https://dev.to/nikita_iakovlev_415524c19/one-minute-of-audio-three-runs-13-segments-then-9-one-of-them-2194-seconds-long-1633</link>
      <guid>https://dev.to/nikita_iakovlev_415524c19/one-minute-of-audio-three-runs-13-segments-then-9-one-of-them-2194-seconds-long-1633</guid>
      <description>&lt;p&gt;I run a visa agency in Bali. The half of my week that has nothing to do with visas goes into Apify Actors, and one of them is a transcriber: give it an audio or video URL, it runs Whisper large v3 and hands back a transcript, timed segments, SRT or WebVTT subtitles, and optional retrieval chunks that keep their timecodes.&lt;/p&gt;

&lt;p&gt;The transcript is the part everyone checks. It is also the part that is nearly stable. What is &lt;em&gt;not&lt;/em&gt; stable is the structure around it, and almost every pipeline I have seen built on a transcription API quietly assumes the opposite.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three runs of the same file
&lt;/h2&gt;

&lt;p&gt;One sample: a 60.01-second m4a of someone reading the opening of &lt;em&gt;Pride and Prejudice&lt;/em&gt; three times over. Same Actor build (&lt;code&gt;IdudfuIRo8hXFkRgH&lt;/code&gt;), same input — &lt;code&gt;quality: fast&lt;/code&gt; (Whisper large v3 turbo), &lt;code&gt;language: en&lt;/code&gt;. Run on 13 October, 14 October, and again on 14 October twelve hours later.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Run&lt;/th&gt;
&lt;th&gt;Segments&lt;/th&gt;
&lt;th&gt;Words&lt;/th&gt;
&lt;th&gt;Chars&lt;/th&gt;
&lt;th&gt;Longest segment&lt;/th&gt;
&lt;th&gt;Longest segment text&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;13 Oct 00:24&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;214&lt;/td&gt;
&lt;td&gt;1162&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;21.94 s&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;414 chars&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;14 Oct 00:39&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;13&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;215&lt;/td&gt;
&lt;td&gt;1163&lt;/td&gt;
&lt;td&gt;5.32 s&lt;/td&gt;
&lt;td&gt;100 chars&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;14 Oct 13:09&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;214&lt;/td&gt;
&lt;td&gt;1162&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;21.94 s&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;414 chars&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The words are fine. A &lt;code&gt;diff&lt;/code&gt; of the two transcripts that differ at all is two tokens out of 215:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt;&lt;span class="gd"&gt;- neighborhood. This truth is so well fixed
&lt;/span&gt;&lt;span class="gi"&gt;+ neighborhood, this truth is so well fixed
&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;span class="gd"&gt;- property of some one or other
&lt;/span&gt;&lt;span class="gi"&gt;+ property of someone or other
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A comma that became a full stop, and a space that appeared inside "someone". If you are measuring word error rate, this file is stable to 0.5%.&lt;/p&gt;

&lt;p&gt;Now look at the structure. Between those same two runs the segment count moved 44%, and the longest unit of output went from five seconds to twenty-two.&lt;/p&gt;

&lt;p&gt;And here is my favourite detail, which has nothing to do with run-to-run variance: the recording loops the same sentence three times, so one run contains the same audio three times over. The 14 October run transcribed it as &lt;strong&gt;"someone or other"&lt;/strong&gt; at 15.30 s and as &lt;strong&gt;"some one or other"&lt;/strong&gt; at 34.50 s and 53.74 s. Identical audio, one run, two spellings. Do not build a deduplicator that compares transcript strings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a 21.94-second segment exists
&lt;/h2&gt;

&lt;p&gt;Whisper works in windows of up to 30 seconds and returns segments, not words. How it carves a window into segments depends on where it thinks the sentences end — and that decision is downstream of sampling, so it moves between runs even when the text does not. Nine segments and thirteen segments are both legitimate readings of the same sixty seconds.&lt;/p&gt;

&lt;p&gt;The 9-segment run put the final third of the file into one object:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"start"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;38.06&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"duration"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;21.94&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife. However little known…"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;414 characters with a single start time. Pass segments straight into an SRT writer — the obvious implementation, and the one I shipped first — and a viewer gets a paragraph filling the screen for twenty-two seconds. I caught it on a &lt;code&gt;jfk.flac&lt;/code&gt; test last September: 108 characters held for 11 seconds, valid SRT, unwatchable.&lt;/p&gt;

&lt;p&gt;So subtitles are not built from segments here. They are rebuilt from them:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;LINE_MAX&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;42&lt;/span&gt;       &lt;span class="c1"&gt;# the Netflix/BBC reading norm
&lt;/span&gt;&lt;span class="n"&gt;CUE_MAX&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;LINE_MAX&lt;/span&gt;
&lt;span class="n"&gt;CUE_SECONDS_MAX&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;7.0&lt;/span&gt;

&lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ceil&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;CUE_MAX&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ceil&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;duration&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;CUE_SECONDS_MAX&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each segment is split into at least that many cues, preferring breaks after a comma or a sentence end, then timed by dividing the segment's duration in proportion to characters. That proportional split is an approximation and I want to be honest about it: the API gives segment timings only, no word timestamps, so there is nothing better available without a forced-alignment pass.&lt;/p&gt;

&lt;p&gt;Those 9 segments came out as 21 cues, longest 4.51 seconds:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;16
00:00:38,060 --&amp;gt; 00:00:42,405
It is a truth universally acknowledged,
that a single man in possession of a good

17
00:00:42,405 --&amp;gt; 00:00:46,750
fortune, must be in want of a wife.
However little known the feelings or views of
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One measured line came out 45 characters rather than 42: the wrapper needs a break point that leaves both halves under the limit, and a long unbroken clause has none, so it falls back to the nearest space. Three characters over beats hyphenating.&lt;/p&gt;

&lt;h2&gt;
  
  
  The segments also do not cover the file
&lt;/h2&gt;

&lt;p&gt;Add up the durations: 57.12 s, 58.12 s, 58.30 s against a 60.01-second file. Between two and three seconds of every run live in the gaps between segments. On a reading with real pauses that is correct behaviour.&lt;/p&gt;

&lt;p&gt;Sometimes it is not. Whisper can skip to its next 30-second window and silently drop the speech in between, and the status still says &lt;code&gt;ok&lt;/code&gt; — a 134-second reading came back with roughly 32 seconds missing in one of my golden checks. The transcript reads fluently. Nothing in the output says a third of it is gone.&lt;/p&gt;

&lt;p&gt;The Actor now scans for holes of 6 seconds or more, cuts each one out of the prepared audio, and recognises it again with the preceding text as a prompt. Recovered segments are only kept if the service itself is confident it heard speech:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;float&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;no_speech_prob&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.6&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="nf"&gt;float&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;avg_logprob&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;continue&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That filter is not optional. Whisper hallucinates over silence, and its favourite invention is a polite &lt;code&gt;"Thank you."&lt;/code&gt; Re-check a genuine pause without the confidence gate and you fill real silences with phantom gratitude, which is worse than the gap.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this breaks downstream
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Retrieval chunks inherit the instability.&lt;/strong&gt; Chunks are assembled from segments, breaking on sentence ends. The 9-segment run gave me three chunks starting at 0, 25.54 and 38.06 seconds, with 491, 255 and 414 characters. The 13-segment run of the same audio cannot give the same boundaries — it has different sentence ends to break on. So: never use chunk index or chunk start time as a stable key in a vector store. Re-embed whole files, keyed on the file, and delete the old vectors rather than diffing them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Never diff two transcription runs.&lt;/strong&gt; Any sane diff of these three runs reports changes. One is a real text change of two tokens; the rest is re-segmentation noise. If you need change detection on a recurring recording, compare normalised text — lowercased, punctuation stripped, whitespace collapsed — and never segment counts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Speaker labels are per-run identities.&lt;/strong&gt; They are computed inside the Actor from the audio (Silero VAD to cut phrases at pauses, 3D-Speaker CAM++ for one voice print per phrase, then clustering). Clustering happens per file, so &lt;code&gt;Speaker 1&lt;/code&gt; in Monday's run and &lt;code&gt;Speaker 1&lt;/code&gt; in Tuesday's run are not promised to be the same human. For cross-file identity you need enrolled voice prints, which is a different product.&lt;/p&gt;

&lt;p&gt;One counter-example, because I only have two data points on it: the other URL in those runs was a 19.02-second YouTube clip, and it came back byte-identical on both days, with segment boundaries on whole seconds (0, 4, 12, 16). Short clean clips may well be stable. I would not build on the assumption.&lt;/p&gt;

&lt;h2&gt;
  
  
  Calling it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;rows&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.apify.com/v2/acts/lergassy~speech-to-text/run-sync-get-dataset-items&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;token&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;TOKEN&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;urls&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://example.com/episode-12.mp3&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
          &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;language&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;en&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;subtitleFormat&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;srt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;chunkForRag&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;chunkSize&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;600&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Actor is &lt;a href="https://apify.com/lergassy/speech-to-text?fpr=wmeplu" rel="noopener noreferrer"&gt;Speech to Text&lt;/a&gt;. One row per file, no key to set up; the third run in this post cost $0.011 — one billed minute at $0.009 plus $0.002 for the file. Minutes are charged per started minute, so that 19-second YouTube clip billed a full minute, and failed files cost nothing. Direct file links pay no proxy fee; a YouTube, TikTok or Instagram &lt;em&gt;page&lt;/em&gt; does, because its audio has to come through a residential exit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When it is the wrong tool.&lt;/strong&gt; Live or streaming audio — this is batch, one row per finished file. Word-level timestamps or karaoke-style alignment: segment timings are all the API exposes, and my cue splitter interpolates rather than aligns. Cross-recording speaker identity, per the point above. And if you already run Whisper on your own GPU, nothing here beats that on price; what you are buying is the download, the ffmpeg prep, the splitting of long files, the gap re-check and the retries.&lt;/p&gt;

&lt;p&gt;The lesson I keep relearning: when a model returns structure as well as content, the content is the part people test and the structure is the part they build on. Check which of the two your pipeline actually depends on — and if the answer is structure, measure it twice on the same input before you ship.&lt;/p&gt;

</description>
      <category>python</category>
      <category>api</category>
      <category>audio</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>PyTorch vs. TensorFlow for Diffusion Models: A Dev Leader's Guide to Tooling and Productivity</title>
      <dc:creator>Oleg</dc:creator>
      <pubDate>Wed, 14 Oct 2026 13:00:29 +0000</pubDate>
      <link>https://dev.to/devactivity/pytorch-vs-tensorflow-for-diffusion-models-a-dev-leaders-guide-to-tooling-and-productivity-31mp</link>
      <guid>https://dev.to/devactivity/pytorch-vs-tensorflow-for-diffusion-models-a-dev-leaders-guide-to-tooling-and-productivity-31mp</guid>
      <description>&lt;h2&gt;
  
  
  The Great Debate: PyTorch vs. TensorFlow for Diffusion Models
&lt;/h2&gt;

&lt;p&gt;In the rapidly evolving landscape of Artificial Intelligence, choosing the right tools is paramount for any development team. A recent GitHub Community discussion (Discussion #208944) brought to light a critical decision point for AI developers: selecting between PyTorch and TensorFlow for diffusion models. Making an informed choice here can significantly impact project velocity and output quality, factors often highlighted by effective &lt;strong&gt;&lt;a href="https://dev.to/posts/apps-tools/unraveling-github-pages-dns-failures-dnsruby-timeouts-and-development-measurement-tools/"&gt;development measurement tools&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The consensus from the community is clear: for diffusion models, &lt;strong&gt;PyTorch is emphatically recommended&lt;/strong&gt;. Here’s why:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdrive.google.com%2Fthumbnail%3Fid%3D1KAX---kVQjffESlS1HIsWwR0wfhM6ikL%26sz%3Dw751" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdrive.google.com%2Fthumbnail%3Fid%3D1KAX---kVQjffESlS1HIsWwR0wfhM6ikL%26sz%3Dw751" alt="Diagram illustrating the PyTorch ecosystem for diffusion models, including Hugging Face diffusers and optimization tools." width="751" height="429"&gt;&lt;/a&gt;Diagram illustrating the PyTorch ecosystem for diffusion models, including Hugging Face diffusers and optimization tools.### Ecosystem &amp;amp; Library Dominance&lt;/p&gt;

&lt;p&gt;The industry standard for diffusion models, Hugging Face &lt;code&gt;diffusers&lt;/code&gt;, is built natively on PyTorch. This means that pretrained weights, pipeline schedulers (like Euler, DPM-Solver, UniPC), and fine-tuning scripts (LoRA, DreamBooth, ControlNet) are primarily optimized for PyTorch. This deep integration simplifies development and accelerates time-to-market for new features. Furthermore, PyTorch 2.x's native SDPA (Scaled Dot-Product Attention) and &lt;code&gt;torch.compile&lt;/code&gt; offer significant speedups (2x–3x) without external dependencies, directly contributing to a more efficient development lifecycle.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dynamic Computation Graphs for Agile Development
&lt;/h3&gt;

&lt;p&gt;Diffusion sampling involves iterative denoising loops with dynamic timestep embeddings and conditioning tensors. PyTorch’s imperative design and dynamic computation graphs simplify the implementation and debugging of these multi-step reverse processes. This offers a more straightforward, intuitive experience compared to the often more rigid graph compilation workflows in TensorFlow, fostering agility and reducing debugging overhead for your engineering teams.&lt;/p&gt;

&lt;h3&gt;
  
  
  Research &amp;amp; Community Leadership
&lt;/h3&gt;

&lt;p&gt;Over 90% of generative AI papers, checkpoints, and open weights released on platforms like arXiv and Hugging Face prioritize PyTorch implementations. This makes PyTorch the go-to framework for staying current with cutting-edge research and leveraging the latest advancements, ensuring your team remains at the forefront of AI innovation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdrive.google.com%2Fthumbnail%3Fid%3D1mI7l-tE7uRt8U_nv2SmcMknYG0YYWv6L%26sz%3Dw751" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdrive.google.com%2Fthumbnail%3Fid%3D1mI7l-tE7uRt8U_nv2SmcMknYG0YYWv6L%26sz%3Dw751" alt="Visual representation of a classical state-space search problem, showing states, actions, and a goal path." width="751" height="429"&gt;&lt;/a&gt;Visual representation of a classical state-space search problem, showing states, actions, and a goal path.While TensorFlow remains a viable option if your team has existing TensorFlow serving/training infrastructure, it is not the path with the broadest examples or the most current ecosystem support for diffusion models. For new diffusion projects, starting with &lt;code&gt;torch&lt;/code&gt; + &lt;code&gt;diffusers&lt;/code&gt; + &lt;code&gt;accelerate&lt;/code&gt; for multi-GPU training and inference is the recommended approach.&lt;/p&gt;

&lt;h2&gt;
  
  
  Beyond Frameworks: Understanding State-Space Concepts in AI
&lt;/h2&gt;

&lt;p&gt;The discussion also touched upon "state-space searches," a term that can have different meanings in classical AI versus modern machine learning. Clarifying this distinction is crucial for technical leaders guiding their teams.&lt;/p&gt;

&lt;h3&gt;
  
  
  Classical State-Space Search: The Foundation of Problem Solving
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;State-Space Search&lt;/strong&gt; is a foundational AI problem-solving paradigm where a problem is formulated as a set of discrete states, transitions (operators), and a target objective. Imagine a maze: each square is a state, moving between squares is an action, and reaching the exit is the goal.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;State Space:&lt;/strong&gt; The graph or tree of all possible configurations the system can be in.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Initial State:&lt;/strong&gt; Where the search begins.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Actions/Transitions:&lt;/strong&gt; Valid moves taking state S to successor state S'.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Goal Test:&lt;/strong&gt; A function verifying if the current state satisfies the objective.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Path Cost:&lt;/strong&gt; The cumulative cost incurred to reach a given state.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Common search strategies include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Uninformed (Blind) Search:&lt;/strong&gt;&lt;strong&gt;Breadth-First Search (BFS):&lt;/strong&gt; Explores level-by-level; optimal if all step costs are equal.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Depth-First Search (DFS):&lt;/strong&gt; Explores deep paths first; memory efficient but not guaranteed optimal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Informed (Heuristic) Search:&lt;/strong&gt;&lt;strong&gt;A* Search:&lt;/strong&gt; Uses an evaluation function &lt;em&gt;f(n) = g(n) + h(n)&lt;/em&gt;, where &lt;em&gt;g(n)&lt;/em&gt; is the actual cost so far and &lt;em&gt;h(n)&lt;/em&gt; is an admissible heuristic estimate to the goal. A* is both complete and optimal.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdrive.google.com%2Fthumbnail%3Fid%3D1mWmFMbLI-dcH8kdgLq5pfLy_sur5vzMT%26sz%3Dw751" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdrive.google.com%2Fthumbnail%3Fid%3D1mWmFMbLI-dcH8kdgLq5pfLy_sur5vzMT%26sz%3Dw751" alt="Illustration comparing the linear processing of State-Space Models (Mamba) with the quadratic complexity of traditional Transformer attention." width="751" height="429"&gt;&lt;/a&gt;Illustration comparing the linear processing of State-Space Models (Mamba) with the quadratic complexity of traditional Transformer attention.### Modern State-Space Models (SSMs): A New Paradigm for Sequence Processing&lt;/p&gt;

&lt;p&gt;In modern generative AI and sequence modeling, the term "State Space Models" (SSMs) refers to architectures like &lt;strong&gt;Mamba&lt;/strong&gt; and &lt;strong&gt;S4&lt;/strong&gt;. These models are distinct from classical search algorithms. They model continuous sequence state transitions in &lt;em&gt;O(L)&lt;/em&gt; linear time, offering significant computational advantages over Transformer-based models with their &lt;em&gt;O(L2)&lt;/em&gt; attention mechanisms, especially for very long sequences. Understanding this distinction is vital for teams exploring cutting-edge sequence processing techniques.&lt;/p&gt;

&lt;h2&gt;
  
  
  Strategic Impact: Tooling Choices, Productivity, and Delivery
&lt;/h2&gt;

&lt;p&gt;For dev team members, product/project managers, delivery managers, and CTOs, these technical decisions directly influence your team's productivity and project delivery metrics. Leveraging the right tools can drastically improve outcomes, making it easier to track progress with robust &lt;strong&gt;development measurement tools&lt;/strong&gt; and achieve your targets on a &lt;strong&gt;&lt;a href="https://dev.to/posts/productivity-tips/beyond-the-limit-mastering-github-codespaces-for-uninterrupted-productivity/"&gt;performance KPI dashboard&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;An optimal framework choice, like PyTorch for diffusion models, translates into faster iteration cycles, reduced debugging time, and quicker adoption of new research. This directly impacts your team's efficiency and the quality of your output. Furthermore, streamlined workflows, enabled by optimal framework choices, positively impact aspects like &lt;strong&gt;&lt;a href="https://dev.to/posts/apps-tools/reclaiming-commit-control-why-dev-teams-need-an-opt-out-for-copilot-s-co-authored-by-trailer/"&gt;pull request analytics for GitHub&lt;/a&gt;&lt;/strong&gt;, offering clearer insights into team efficiency and code velocity. By making informed decisions based on community insights and technical merits, leaders can empower their teams to build more effectively and deliver innovative AI solutions with greater confidence and speed.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>pytorch</category>
      <category>tensorflow</category>
    </item>
    <item>
      <title>Inside the ESP32-P4 Camera-to-Display Pipeline: CSI, ISP, PPA, Buffers, and DSI</title>
      <dc:creator>ZedIoT</dc:creator>
      <pubDate>Wed, 14 Oct 2026 12:20:00 +0000</pubDate>
      <link>https://dev.to/zediot/inside-the-esp32-p4-camera-to-display-pipeline-csi-isp-ppa-buffers-and-dsi-4cja</link>
      <guid>https://dev.to/zediot/inside-the-esp32-p4-camera-to-display-pipeline-csi-isp-ppa-buffers-and-dsi-4cja</guid>
      <description>&lt;h1&gt;
  
  
  Inside the ESP32-P4 Camera-to-Display Pipeline: CSI, ISP, PPA, Buffers, and DSI
&lt;/h1&gt;

&lt;p&gt;A camera preview that reaches the screen is not the same as a reliable camera-to-display design. The critical question is what happens to each completed frame between the sensor and display scanout: its pixel format, the memory it occupies, who may read or write it, and the event that makes it reusable. If an encoder and a GUI share the path, those questions matter more than a nominal frame-rate target.&lt;/p&gt;

&lt;p&gt;Start with a contract for every boundary. Record the sensor's output mode, what CSI receives, what ISP writes to memory, whether PPA has a specific pixel operation to perform, and which completed buffer the display or encoder consumes. Only then can measured latency, a dropped frame, or a torn image be attributed to a stage. The architecture and API responsibilities below follow public Espressif documentation; they are not performance results from a particular board.&lt;/p&gt;

&lt;h2&gt;
  
  
  Draw the frame path around memory, not peripheral names
&lt;/h2&gt;

&lt;p&gt;ESP32-P4 has MIPI-CSI, ISP, PPA, JPEG and H.264 hardware, MIPI-DSI, and DMA-capable paths. Their presence does not imply that a frame flows between them without an intermediate write, copy, or queue. The ESP-IDF ISP guide describes an ISP that receives data from a camera controller or system memory and writes processed output to system memory through DMA. That write is an architectural handoff, not a minor implementation detail.&lt;/p&gt;

&lt;p&gt;The frame path, in text form:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sensor → CSI → (system memory) → ISP → (system memory) → [PPA branch, if a pixel op is required] → display scanout (DSI) / encoder&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Two notes on that path:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The direct buffer-to-display edge is conditional. Output format and display timing must actually be compatible.&lt;/li&gt;
&lt;li&gt;PPA is a branch for required pixel work, not a mandatory stop between ISP and DSI. Likewise, the GUI is an input to a blend operation; it is not a claim that every GUI must be composited into a video frame.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the central buffer pool, define four events for each frame: &lt;strong&gt;allocation, producer completion, consumer completion, and return to the free pool&lt;/strong&gt;. A frame cannot be recycled just because one task has finished with it if another task, DMA engine, encoder, or display scanout still reads it. This contract often disappears when integration is described only as driver initialization calls.&lt;/p&gt;

&lt;h2&gt;
  
  
  Freeze the sensor-to-CSI contract before tuning images
&lt;/h2&gt;

&lt;h3&gt;
  
  
  A supported CSI format is only the receiver's capability
&lt;/h3&gt;

&lt;p&gt;The ESP32-P4 datasheet lists a two-data-lane MIPI-CSI interface and input formats including RGB888, RGB666, RGB565, YUV422, YUV420, RAW8, RAW10, and RAW12. It does not configure a sensor for you. A valid receiver format says little about the selected sensor register table, lane rate, virtual channel, clocking, or exposure-control sequence.&lt;/p&gt;

&lt;p&gt;Keep one reviewable mode record per sensor configuration: active resolution, line and frame lengths, CSI data type and bit depth, lane count and rate, external clock, and exposure and gain controls. If the sensor emits RAW10 but the display ultimately scans RGB565, name the stage that unpacks RAW, performs demosaicing and color processing, and quantizes the result. Otherwise an apparent "CSI works" milestone may conceal a color-order error or line-alignment problem that surfaces only after the display is added.&lt;/p&gt;

&lt;p&gt;Use a sensor test pattern, if the sensor provides one, while establishing this boundary. A stable pattern removes scene movement and automatic exposure as competing explanations. Check frame completion and short-frame or line errors before adjusting ISP color parameters. If the pattern itself arrives with unstable rows, downstream image-quality tuning cannot repair the input contract.&lt;/p&gt;

&lt;h3&gt;
  
  
  CSI's 2.5 V supply belongs in the board bring-up checklist
&lt;/h3&gt;

&lt;p&gt;The ESP-IDF Camera Controller guide calls out a stable 2.5 V supply for the ESP32-P4 CSI peripheral. An internal adjustable LDO can be used, but its configuration and connection must be complete before CSI driver initialization. Treat that as a schematic and power-sequencing prerequisite, not an optional software optimization.&lt;/p&gt;

&lt;p&gt;On a custom board, check supply and clock first, then lane continuity and sensor register access, and only then complete image frames. An official development-board example is useful for API ordering, but it does not establish that a different board copied the same electrical path or that a new sensor's mode table is correct.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make ISP output a useful downstream contract
&lt;/h2&gt;

&lt;p&gt;For RAW input, the ISP can provide the image-processing stages that turn sensor samples into a usable frame: black-level correction, bad-pixel handling, lens-shading correction, Bayer filtering, demosaicing, white balance, and color correction, among others. Which stages to enable and how to tune them depend on the sensor and optics. Driver support for a stage is not a production image-quality calibration.&lt;/p&gt;

&lt;p&gt;There is an initialization distinction worth preserving. In the stable v6.1 ISP documentation, using MIPI-CSI or ISP_DVP as the camera controller still requires an ISP processor created with &lt;code&gt;esp_isp_new_processor()&lt;/code&gt;, even when ISP image algorithms are not needed. The &lt;code&gt;bypass_isp&lt;/code&gt; configuration bypasses the selected algorithm pipeline; it is not a substitute for installing the driver. Recheck these names and requirements against the exact ESP-IDF release used by the product.&lt;/p&gt;

&lt;h3&gt;
  
  
  Work backward from the consumers
&lt;/h3&gt;

&lt;p&gt;Before selecting an ISP output format, write down each consumer's requirements. The DSI/LCD path has a pixel format, line stride, address-alignment and scanout contract. A PPA operation has supported input and output formats and buffer rules. An encoder has an input format and may hold the frame after the display has moved on. A CPU algorithm may need temporary read access or a separate working copy.&lt;/p&gt;

&lt;p&gt;An intermediate format shared by several consumers can remove a conversion, but it is not automatically optimal. Producing RGB for a display and converting it back to YUV for encoding adds memory traffic and queueing. Forcing the GUI to render against an awkward format to save that conversion can shift cost and complexity into composition. Compare complete paths—including memory reads and writes—rather than choosing a format based on one peripheral's advertised capability.&lt;/p&gt;

&lt;p&gt;The handoff record should state whether the ISP output is immutable once marked complete. If PPA will modify an output in place where its operation permits it, distinguish that destination from the still-shared source frame. An encoder reading the original frame must not race with a GUI blend writing into it. This is an ownership decision before it is an API choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  A buffer pool is a latency and correctness policy
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Size allocations with stride, not width alone
&lt;/h3&gt;

&lt;p&gt;For an uncompressed frame, begin with &lt;code&gt;frame_bytes = stride_bytes × height&lt;/code&gt;. If stride happened to equal &lt;code&gt;width × bytes_per_pixel&lt;/code&gt;, RGB565 would need approximately two bytes per pixel and RGB888 approximately three. Real allocations must include line alignment, DMA and driver constraints, and any format-specific planes or padding. The formula is a capacity check, not an FPS prediction.&lt;/p&gt;

&lt;p&gt;Count all simultaneously live frames: capture or ISP outputs, PPA inputs and outputs, display framebuffers, GUI draw buffers, and encoder inputs. Then count memory transactions. A full-frame memory-to-memory conversion reads a source and writes a destination; scanout, GUI composition, encoding, and any copy add more traffic. "Does PSRAM fit the bytes?" and "Can the memory system sustain the simultaneous access pattern?" are separate questions requiring target-board measurements.&lt;/p&gt;

&lt;p&gt;Single buffering saves capacity but exposes the same memory to producer and consumer contention. Two buffers let a producer work on a next frame while a consumer reads a completed one; they do not establish a safe display swap point. A third buffer can absorb a burst or slow consumer, yet it can leave an old frame waiting in a longer queue. More buffers are not a cure for an unspecified release rule.&lt;/p&gt;

&lt;h3&gt;
  
  
  Define ownership transitions explicitly
&lt;/h3&gt;

&lt;p&gt;A useful design record names frame states, even if the application uses a different implementation: &lt;code&gt;FREE → WRITING → COMPLETE → IN_USE → FREE&lt;/code&gt;. The producer alone owns a WRITING buffer. After its DMA completion and any memory-visibility work required by the configured memory region, it publishes a COMPLETE frame. Each consumer acquires a read claim; the pool recycles the frame only after the last claim is released and display scanout no longer references it.&lt;/p&gt;

&lt;p&gt;That last condition matters when preview and H.264 encoding fork from one source. Reference counting, explicit per-consumer acknowledgments, or another equivalent mechanism can implement it. A frame should not be returned on "display finished" if encoding is still reading, nor on "encoder submitted" if encoding has only queued asynchronous work. Define whether the completion event means &lt;strong&gt;accepted, processed, or no longer reading memory&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Cache consistency belongs at the same transition. If the chosen CPU, DMA, and external-memory arrangement requires cache clean, invalidate, or barriers, perform the operation appropriate to the handoff direction before publishing the buffer or reusing it. Do not apply a generic cache recipe without checking current ESP-IDF memory and DMA requirements. When faults appear only with cache enabled, PSRAM placement, or higher concurrent load, first test visibility and premature reuse before labeling the symptom "insufficient bandwidth."&lt;/p&gt;

&lt;p&gt;For a low-latency preview, an explicit policy may discard an expired completed frame and show the newest complete one. For per-frame analysis or archival, silently overwriting work is incorrect; backpressure, reduced input rate, or a documented degraded mode is needed. Log which policy fired. A display may scan the last complete frame again when its refresh rate exceeds capture rate; it must not scan a frame still under construction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give PPA a named pixel job
&lt;/h2&gt;

&lt;p&gt;The ESP-IDF PPA guide describes scale/rotate/mirror, blending, and filling. PPA can move a required pixel operation out of general CPU code, but it still reads memory and writes a result. Its value depends on the transformation and resulting buffer traffic, not the mere fact that it is hardware acceleration.&lt;/p&gt;

&lt;p&gt;Use it when sensor orientation differs from display orientation, when the preview window must be resized, or when a video frame and GUI surface must be blended. The PPA guide specifies separate input and output picture buffers for a scale/rotate/mirror operation; blending has different aliasing rules. Those distinctions matter when sizing a pool and deciding whether the original frame remains available to an encoder. Validate formats, block dimensions, offsets, alignment, and completion semantics for the operation actually selected.&lt;/p&gt;

&lt;p&gt;If sensor output already matches the display's size and orientation, a whole-frame PPA pass may be unnecessary. For GUI overlays, compare two architectures: compose UI into the video frame, or let the display path manage video and UI separately where driver and hardware support that mode. Composition yields one final frame but may require substantial pixel work after each UI change. Separate layers or partial updates can avoid rewriting video pixels, but require compatible display features and careful synchronization. A claim of reduced CPU use alone does not settle the end-to-end tradeoff.&lt;/p&gt;

&lt;h2&gt;
  
  
  Split display and encoding into different consumer contracts
&lt;/h2&gt;

&lt;p&gt;The display needs a complete frame available at the scanout deadline. The MIPI-DSI LCD example shows driver-managed framebuffer use and an LVGL draw-buffer arrangement in PSRAM. The MIPI-CSI–ISP–DSI example is a public reference for wiring modules together. Neither example proves a particular panel timing, sensor mode, UI load, or product memory layout.&lt;/p&gt;

&lt;p&gt;Changing an address or writing a framebuffer while the display scans it can put two generations of pixels on one screen. The swap therefore needs a defined synchronization point and a buffer the producer will not overwrite. The right mechanism depends on panel timing, DSI driver behavior, and framebuffer mode; allocating two buffers without specifying the swap event is not a tearing test.&lt;/p&gt;

&lt;p&gt;An H.264 encoder has a different deadline and output responsibilities: accepted input format, ordered frames, rate control, encoded-output buffers, and downstream storage or network consumption. Hardware encoding does not make its input lifetime zero. If preview and encoding share a source, the slow branch extends that source's lifetime. If encoding receives a separate copy, budget the extra allocation, read/write traffic, and delay. The display may prioritize freshness while the encoder requires continuity; one unbounded queue cannot satisfy both goals by accident.&lt;/p&gt;

&lt;h3&gt;
  
  
  Choose the contract that matches the product
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Requirement or observation&lt;/th&gt;
&lt;th&gt;Design response&lt;/th&gt;
&lt;th&gt;Cost or boundary to verify&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Lowest useful preview age&lt;/td&gt;
&lt;td&gt;Keep the newest complete frame; document when older frames are dropped&lt;/td&gt;
&lt;td&gt;Measure capture-to-scanout age and drop reasons, not just average FPS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Every frame must be analyzed or retained&lt;/td&gt;
&lt;td&gt;Preserve per-frame ownership and apply backpressure or an explicit degraded mode&lt;/td&gt;
&lt;td&gt;Queue growth, capture pressure, and recovery behavior&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rotation, scaling, or video/UI blend is required&lt;/td&gt;
&lt;td&gt;Put the named operation on a PPA branch after checking formats and buffer rules&lt;/td&gt;
&lt;td&gt;Extra memory transaction, destination buffer, and completion handoff&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Preview and H.264 share a frame&lt;/td&gt;
&lt;td&gt;Hold the source until both consumers have stopped reading&lt;/td&gt;
&lt;td&gt;Encoder-induced pool starvation and display freshness&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Camera format already matches display needs&lt;/td&gt;
&lt;td&gt;Evaluate the direct completed-buffer route&lt;/td&gt;
&lt;td&gt;DSI compatibility, scanout lifetime, and safe swap timing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This table is a decision aid, not a promise that all options can run together at a given resolution. Datasheet capabilities, reference examples, and measured end-to-end product behavior are different evidence classes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Diagnose the first boundary that corrupts a frame
&lt;/h2&gt;

&lt;p&gt;Similar screen artifacts can have unrelated causes. A color cast can originate in sensor output order, ISP color processing, RGB/BGR convention, or display interpretation. Repeating horizontal displacement points toward line length, stride, or starting address. An occasional old image suggests queue age, a missed swap, or incorrect return to the free pool. Adjusting the last module until the screen looks acceptable can hide an upstream error.&lt;/p&gt;

&lt;p&gt;Place a comparable observation at each boundary:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;With a sensor test pattern, record CSI completion and error counters.&lt;/li&gt;
&lt;li&gt;At ISP memory output, inspect fixed rows and pixel positions along with recorded width, height, format, and stride.&lt;/li&gt;
&lt;li&gt;Save a small set of pre- and post-PPA frames to see whether rotation, scale, or blend changed unintended areas.&lt;/li&gt;
&lt;li&gt;At DSI, correlate the chosen framebuffer address with swap and refresh events.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Preserve the failing frame's ID, buffer address, stage, and event order so an intermittent failure can be traced to one handoff.&lt;/p&gt;

&lt;p&gt;Do not treat visual correctness as latency evidence. Timestamp capture completion, ISP completion, PPA completion where used, display swap/refresh, and encoder completion where used. Record buffer-pool high-water mark, queue depth, dropped-frame reason, buffer location, and cache/DMA properties alongside those timestamps. A system can show an attractive average FPS while displaying increasingly stale frames or occasionally reusing a buffer too early.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bring up the shortest observable route first
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Control the sensor.&lt;/strong&gt; Read its identity, fix one mode table, and save resolution, data type, lane configuration, clock, and power assumptions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prove CSI capture.&lt;/strong&gt; Prefer a known test pattern. Log frame completion, short frames, line errors, and DMA status before adding a complete UI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fix ISP output.&lt;/strong&gt; Start with unnecessary automatic adjustments disabled. Verify dimensions, stride, pixel order, and color; enable image-quality functions one by one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prove display ownership.&lt;/strong&gt; With no GUI or encoder, identify producer completion, display acquisition, the swap event, and release event. Use timestamps, GPIO markers, or a logic analyzer where appropriate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add one PPA operation at a time.&lt;/strong&gt; First test a required scale or rotation, then any GUI blend. Record its destination buffer, completion, and incremental memory traffic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add optional encoding or network consumption last.&lt;/strong&gt; Exercise a deliberately slow consumer and observe queue high-water marks, drops or backpressure, and recovery.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;At every step, retain ESP-IDF version, board and chip revision, sensor and panel part numbers, input/output formats and resolutions, buffer count, and memory placement. Without those identities, a later measurement cannot be compared fairly. Public references span stable v6.1 ISP documentation, v6.0 PPA documentation, latest Camera Controller documentation, and master-branch examples. They establish public responsibilities, not a tested single-SDK integration matrix.&lt;/p&gt;

&lt;h2&gt;
  
  
  Know when this is the wrong single-chip architecture
&lt;/h2&gt;

&lt;p&gt;ESP32-P4 can fit products where MCU-level control, a camera input, local image processing, and an HMI must be tightly integrated. Its peripheral list alone is not a selection argument. A product needing complex multi-stream media handling, mature container support, heavy GPU composition, or large vision models may be better served by a Linux SoC and its media stack. At the other extreme, an occasional still image and simple display may not justify the power, routing, driver, and verification work of the full CSI–ISP–PPA–DSI path.&lt;/p&gt;

&lt;p&gt;Sensor and panel ecosystems also matter. Missing stable drivers, timing data, or supply continuity cannot be fixed by the MCU's interface specification. If requirements simultaneously insist on no dropped frames, minimal preview delay, continuous encoding, and a complex GUI, first allocate explicit memory, power, thermal, and degradation budgets. Those goals may compete for the same buffers and bandwidth.&lt;/p&gt;

&lt;p&gt;Before product review, assemble one stage-by-stage table covering format, resolution, stride, buffer size and count, memory region, DMA/cache attributes, producer, consumer, and release event. Then measure capture-to-display and capture-to-encode behavior under the fixed target workload. Public documentation supports the module responsibilities and validation method presented here; it does not establish frame rate, end-to-end latency, absence of tearing, memory bandwidth, power, temperature, or long-run stability on your hardware. Those are acceptance results to produce, not conclusions to import from an example.&lt;/p&gt;

&lt;h2&gt;
  
  
  Official references
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;ESP32-P4 Series Datasheet&lt;/li&gt;
&lt;li&gt;ESP-IDF Camera Controller Driver&lt;/li&gt;
&lt;li&gt;ESP-IDF Image Signal Processor, stable v6.1&lt;/li&gt;
&lt;li&gt;ESP-IDF Pixel-Processing Accelerator, v6.0&lt;/li&gt;
&lt;li&gt;ESP-IDF MIPI-DSI LCD Panel Example&lt;/li&gt;
&lt;li&gt;ESP-IDF MIPI-CSI Camera via ISP to DSI Example&lt;/li&gt;
&lt;li&gt;ESP-IDF DVP Camera Display via DSI Example, for DVP comparison only&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>esp32</category>
      <category>iot</category>
      <category>tinyml</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Multi-Turn Memory, Mixed Precision, and Safer Rollouts — Serving Catches Up to Agentic Workloads</title>
      <dc:creator>Felipe 0liveira</dc:creator>
      <pubDate>Wed, 14 Oct 2026 12:06:13 +0000</pubDate>
      <link>https://dev.to/felipe0liveira/multi-turn-memory-mixed-precision-and-safer-rollouts-serving-catches-up-to-agentic-workloads-3kme</link>
      <guid>https://dev.to/felipe0liveira/multi-turn-memory-mixed-precision-and-safer-rollouts-serving-catches-up-to-agentic-workloads-3kme</guid>
      <description>&lt;p&gt;This edition of the LLM Inference Digest covers new developments from 2026-10-07 to 2026-10-14 across arXiv, the vLLM and Hugging Face blogs, Together AI, Modal, and Latent Space.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔥 Highlights
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://vllm.ai/blog/2026-10-12-bidirectional-kvxfer-multiturn-agentic-workload" rel="noopener noreferrer"&gt;Improve TTFT for Multi-Turn Agentic Workloads with Bi-Directional KV Transfer in vLLM&lt;/a&gt; — lets decode nodes hand KV blocks back to prefill
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr1yiw6xfzajnwl1ypcps.png" alt="Improve TTFT for Multi-Turn Agentic Workloads with Bi-Directional KV Transfer in vLLM" width="800" height="590"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://vllm.ai/blog/2026-10-07-deepseek-v41-flash" rel="noopener noreferrer"&gt;DeepSeek-V4.1-Flash on vLLM: 5x Agentic Throughput Since Day 0&lt;/a&gt; — three kernel tricks, 5.3x throughput under TPS limits
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi4wsrdi8grj23h357kan.png" alt="DeepSeek-V4.1-Flash on vLLM: 5x Agentic Throughput Since Day 0" width="800" height="580"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://modal.com/blog/endpoint-candidates" rel="noopener noreferrer"&gt;Endpoint Candidates: evaluate and promote inference endpoints&lt;/a&gt; — built-in traffic-mirrored canarying for serving changes
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fenuft4czaun5699g47v3.png" alt="Endpoint Candidates: evaluate and promote inference endpoints" width="800" height="420"&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2610.14686" rel="noopener noreferrer"&gt;Vesta: Queueing-Aware LLM Scheduling for Real-World Workloads&lt;/a&gt; — balances cache locality vs. queueing, cuts TTFT sharply&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://huggingface.co/blog/LiquidAI/lfm25-24b-a2b" rel="noopener noreferrer"&gt;Run fast, private agents on-device with LFM2.5-24B-A2B&lt;/a&gt; — sparse MoE hits 21K tok/s on one GPU
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6qqrcf5fruo62hzaaucl.png" alt="Run fast, private agents on-device with LFM2.5-24B-A2B" width="800" height="450"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  arXiv (cs.LG, cs.DC)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2610.18642" rel="noopener noreferrer"&gt;MultiAlloc: Budget-Aware Precision Allocation for KV Cache Quantization&lt;/a&gt; (2026-10-13): splits a fixed KV quantization budget between layer-wise precision boosts and token-wise preservation, using lightweight offline profiling instead of uniform compression. Outperforms single-granularity baselines on Mistral/Llama/QwQ at matched memory budgets — useful when tuning KV memory limits per model rather than applying one blanket bit-width.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2610.15384" rel="noopener noreferrer"&gt;E8 Lattice Key Quantization for Low-Bit KV-Cache Compression&lt;/a&gt; (2026-10-11): replaces scalar KV quantization with vector quantization on an E8 lattice that exploits cross-dimension correlation, reaching a 2-bit keys/2-bit values config (previously needing 3-bit keys) for roughly 6x compression with decode throughput matching scalar baselines. Relevant for anyone pushing long-context serving memory limits.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2610.15629" rel="noopener noreferrer"&gt;The Price of Precision: A Calibrated Cost Model for Mixed-Precision LLM Serving&lt;/a&gt; (2026-10-11): builds a cost model that identifies whether compute, weight loading, or KV-cache access is the real bottleneck at a given batch size/context length, then picks mixed-precision configs via dynamic programming instead of guessing from byte-width alone. Practical for choosing precision per-layer or per-component.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2610.17202" rel="noopener noreferrer"&gt;MLAfication: Efficiently Enabling High-Fidelity MLA for Modern LLMs&lt;/a&gt; (2026-10-12): converts standard multi-head attention into Multi-Head Latent Attention (DeepSeek-style), also handling QKNorm and MoE architectures that earlier conversion methods couldn't. Claims up to 5.35x serving throughput and ~95% memory reduction combined with quantization — a retrofit path for existing checkpoints instead of retraining with MLA from scratch.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2610.16890" rel="noopener noreferrer"&gt;FORGE: Procedural Weight Generation for Sparse MoE Inference&lt;/a&gt; (2026-10-12): regenerates MoE expert weights on-the-fly from compact rotor parameters instead of storing full expert tensors, cutting the memory footprint that forces multi-node parallelism with all-to-all overhead. Reports 1.3-2.8x higher throughput at matched GPU count and 10-15% lower decode latency.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2610.17795" rel="noopener noreferrer"&gt;Quota-Based Aging for Prediction-Guided Scheduling in LLM Serving&lt;/a&gt; (2026-10-13): a scheduling policy that keeps the mean-latency benefit of predicted-short-first admission while bounding tail latency for long requests via quota-based promotion, addressing the classic "shortest-job-first starves long jobs" problem. A solid read for teams tuning their scheduler's fairness/latency trade-off.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2610.14686" rel="noopener noreferrer"&gt;Vesta: Queueing-Aware LLM Scheduling for Real-World Workloads&lt;/a&gt; (2026-10-10): decouples per-session KV-cache "ownership" from per-request execution placement, balancing prefix-cache locality against queue congestion using queueing theory instead of always routing to the cache-affine node. Reports a 14% throughput gain and 57.8% mean TTFT reduction colocated, plus up to 29% P99 TTFT reduction disaggregated.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2610.12327" rel="noopener noreferrer"&gt;SparseDecoding: Decoding-Aware Pruning for Accurate and Efficient LLM Inference&lt;/a&gt; (2026-10-08): notes that Hessian-guided pruning calibrated on natural text mismatches the self-generated token distributions seen during actual decoding, and fixes this with decode-time calibration plus custom sparse matrix-vector kernels aimed at the memory-bound decode phase rather than prefill. Up to 1.48x wall-clock decode speedup on A100s.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2610.13708" rel="noopener noreferrer"&gt;Adaptive DHiSparse: Speculative Decoding over a Load-Adaptive KV Hierarchy&lt;/a&gt; (2026-10-09): combines speculative decoding with a hierarchical sparse KV cache that dynamically shifts entries between GPU memory and overflow based on load instead of a fixed resident/evicted split. At 500K context and concurrency 512, reports 1.85x throughput over resident serving — relevant when long-context, speculative decoding, and memory pressure collide.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2610.00321" rel="noopener noreferrer"&gt;CAST: Cost-Aware Speculative Trees from One-Pass Block Drafters&lt;/a&gt; (updated 2026-10-10): packs alternate candidates from a block drafter's single forward pass into a verification tree whose width adapts at runtime based on measured hardware latency, rather than a fixed, manually-tuned tree shape. Up to 43% speedup with no changes to model/drafter/decoding algorithm, provably preserving the output distribution — a drop-in upgrade for teams already running block speculative decoding.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2610.09778" rel="noopener noreferrer"&gt;Reproducible LLM Inference Benchmarking: A Sequential Isolation Protocol for Regression Testing&lt;/a&gt; (2026-10-07): a measurement methodology, not a new serving technique — a "sequential isolation" benchmarking protocol that cut coefficient of variation from 15.2% to 2.2% on vLLM/A100 across context sizes and concurrency levels. Useful for anyone building CI-style regression gates for inference latency/throughput, where noisy benchmarks currently make such gates unreliable.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://arxiv.org/abs/2610.14571" rel="noopener noreferrer"&gt;Dissecting the Carbon-SLO Tension in Geo-Distributed LLM Serving&lt;/a&gt; (2026-10-10): four schedulers (from a greedy heuristic to a facility-level MILP) for carbon-aware request routing across geo-distributed datacenters, built on a simulator that models actual inference-engine queueing/batching dynamics. Reports up to 60% carbon reduction without violating SLOs — relevant for infra teams with multi-region deployments and sustainability targets.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  vLLM Blog
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://vllm.ai/blog/2026-10-12-bidirectional-kvxfer-multiturn-agentic-workload" rel="noopener noreferrer"&gt;Improve TTFT for Multi-Turn Agentic Workloads with Bi-Directional KV Transfer in vLLM&lt;/a&gt; (2026-10-12): until now KV cache only flowed prefill → decode; this adds the reverse path, letting the decode node hand already-computed KV blocks back to the prefill node on later turns of a conversation so the prefix doesn't get recomputed, coordinated by a KV-cache-aware router with peer-to-peer tensor transfer over EFA on P5en. In multi-turn agentic workloads, this cut TTFT up to 1.6x on Qwen3-32B (778ms→460ms at 24k tokens) and up to 3.3x on GLM-5-FP8 (2334ms→702ms at 20k tokens) — a real latency/cost win for serving agents with long conversation history, no extra hardware required.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://vllm.ai/blog/2026-10-07-deepseek-v41-flash" rel="noopener noreferrer"&gt;DeepSeek-V4.1-Flash on vLLM: 5x Agentic Throughput Since Day 0&lt;/a&gt; (2026-10-07): three optimizations landed in three weeks — "SWA bounded replay" (recomputing only the last 128 tokens instead of caching the full sliding-window KV, +30-40% prefill), DeepSeek's own MegaAttention (1.14-1.51x) and Mega-Gate (1.18-1.31x) kernels, plus operation fusion and CUDA graphs to cut kernel-launch overhead. Net result: 1.9x speedup at low concurrency and 5.3x throughput under a 150 TPS constraint, with ~70% lower TTFT at 100K throughput — a direct cost-per-token decision for anyone serving DeepSeek-V4.1-Flash in production.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://vllm.ai/blog/2026-10-09-vera-rubin-preview" rel="noopener noreferrer"&gt;vLLM Support for NVIDIA Vera Rubin NVL72: 7.8x Throughput over GB200 NVL72&lt;/a&gt; (2026-10-09): day-0 support for NVIDIA's new Vera Rubin NVL72 cluster, with "locality domains" tuned for MoE routing and FlashInfer 0.7.0 kernels adapted for Rubin while staying compatible with existing Blackwell kernels; the platform offers 5x more NVFP4 FLOPS and 2.4x more memory bandwidth than GB200. Reports 7.8x throughput per GPU over GB200 NVL72 on AgentX and 3.7x VLM throughput over GB300 on MLPerf v6.1 — relevant to next-generation hardware planning, though it's more a preview of future hardware than something actionable today.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Hugging Face Blog
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://huggingface.co/blog/LiquidAI/lfm25-24b-a2b" rel="noopener noreferrer"&gt;Run fast, private agents on-device with LFM2.5-24B-A2B&lt;/a&gt; (2026-10-13): a 24B MoE model with only 2B active parameters per token (40 layers, 64 experts, top-4 routing) and context expanded from 32K to 131K, built to run on-device. Concrete throughput numbers — 184 tok/s on an Apple M5 Max and up to 21K tok/s aggregate on a single NVIDIA B300 — give a direct data point for choosing a sparse MoE over a larger dense model when serving low-cost, low-latency agents locally or on one GPU.&lt;/li&gt;
&lt;li&gt;Other posts this week (Falcon ASR, Nemotron fine-tuning for IOI/IMO competition math, a retrospective on a model release) are model/training content without serving-performance relevance, so they're skipped here.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Together AI Blog
&lt;/h2&gt;

&lt;p&gt;Nothing new in the window — the latest post ("Expanding our enterprise inference capacity with IBM Cloud and NVIDIA") predates this edition's cutoff and was already covered previously.&lt;/p&gt;

&lt;h2&gt;
  
  
  Modal Blog
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://modal.com/blog/endpoint-candidates" rel="noopener noreferrer"&gt;Endpoint Candidates: evaluate and promote inference endpoints&lt;/a&gt; (2026-10-12): a feature for staging alternative deployments of a Dedicated Endpoint — a new checkpoint or a different model entirely — that mirrors a sample of live production traffic to measure quality, latency, throughput, and cost before promotion. The underlying engineering extends Modal's Pingora-based proxy so each mirrored candidate reads from its own bounded, deduplicated buffer with per-process memory budgets, so a slow candidate can't add latency to production traffic. A built-in, low-risk canary/A-B mechanism for quantization tweaks, model upgrades, or engine config changes, without building custom traffic-mirroring infrastructure.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://modal.com/blog/toward-rl-on-mixed-precision-mixed-accelerator-samplers" rel="noopener noreferrer"&gt;Toward RL on mixed-precision, mixed-accelerator samplers&lt;/a&gt; (2026-10-13): describes training an open-weight model (Qwen3.6-35B-A3B) where the RL "samplers" — the inference/rollout side, which consumes 80-85% of GPUs in large RL runs — run heterogeneously across B200/B300 (NVFP4), H100/H200 (FP8/BF16), and A100/RTX PRO 6000 (BF16), each with an FP8 KV cache, while a single BF16 trainer learns from all of them via off-policy correction. Matches homogeneous-sampler quality at lower cost — a concrete recipe for exploiting idle or cheaper heterogeneous GPU capacity and low-precision serving kernels for inference-heavy workloads.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Latent Space
&lt;/h2&gt;

&lt;p&gt;Nothing in the window met the inference-engineering bar — this week's posts covered agent orchestration patterns, AI news roundups, and robotics, none touching quantization, KV-cache, scheduling, or serving throughput/cost directly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Through-line
&lt;/h2&gt;

&lt;p&gt;The common thread this week is serving built around &lt;em&gt;conversations&lt;/em&gt;, not single requests: vLLM's bidirectional KV transfer and arXiv's Vesta scheduler both attack the same problem — multi-turn, agentic sessions that keep re-paying prefill costs or get stuck behind naive queueing — from the serving-engine side and the scheduling-theory side respectively. Meanwhile Modal's Endpoint Candidates and the DeepSeek-V4.1-Flash kernel work point at the other half of the same story: once you've picked a faster serving path, you need a safe way to test it against real traffic before flipping it on for everyone.&lt;/p&gt;

&lt;p&gt;What are you seeing in your own serving stack this week? Drop a comment below.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>llm</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
