<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Takuma Yamaguchi (Kumon) on Medium]]></title>
        <description><![CDATA[Stories by Takuma Yamaguchi (Kumon) on Medium]]></description>
        <link>https://medium.com/@kumon?source=rss-760f57c4d961------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*OFGL5bSNIhpGki0YaYGOzg.jpeg</url>
            <title>Stories by Takuma Yamaguchi (Kumon) on Medium</title>
            <link>https://medium.com/@kumon?source=rss-760f57c4d961------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 25 May 2026 22:04:09 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@kumon/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Beyond Titans: What Has Changed Since the MIRAS Framework]]></title>
            <link>https://medium.com/@kumon/beyond-titans-what-has-changed-since-the-miras-framework-1874ed90c60c?source=rss-760f57c4d961------2</link>
            <guid isPermaLink="false">https://medium.com/p/1874ed90c60c</guid>
            <category><![CDATA[llm]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[ai-research]]></category>
            <category><![CDATA[test-time-training]]></category>
            <category><![CDATA[transformers]]></category>
            <dc:creator><![CDATA[Takuma Yamaguchi (Kumon)]]></dc:creator>
            <pubDate>Sat, 09 May 2026 09:37:23 GMT</pubDate>
            <atom:updated>2026-05-09T09:37:23.514Z</atom:updated>
            <content:encoded><![CDATA[<h4>Notes on adaptive weights, long context, and what the 2025–2026 papers actually say</h4><p>My previous post, <a href="https://medium.com/@kumon/from-transformers-to-titans-a-look-at-the-miras-framework-72c18c6a44e9"><em>From Transformers to Titans: A Look at the MIRAS Framework</em></a>, covered how Google’s Titans architecture and the MIRAS framework changed how we think about memory in neural networks. Instead of treating memory as a fixed storage state, these systems treat it as a continuous optimization problem — updating model weights <em>during inference</em> as new input arrives.</p><p>Since then, the field has moved quickly. At NeurIPS 2025 and ICLR 2026, several papers extended this idea in different directions. This post covers the most important ones.</p><p>The common thread across all of them is simple: <strong>models no longer have to keep their weights frozen at inference time.</strong> How far you can take that idea — and where it breaks — is what each paper explores differently.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qtKpt18ANYH-YazugAwk2Q.png" /></figure><h3>1. TNT: Training Deep Memory Models Without Killing Your GPU</h3><p><strong>Paper</strong>: <a href="https://openreview.net/forum?id=rajioNWfRs"><em>TNT: Improving Chunkwise Training for Test-Time Memorization (ICLR 2026)</em></a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*oBCtmzT33PGCu7X4lf_93Q.png" /></figure><p>Titans and similar models update their weights during inference using small gradient descent steps. This is powerful, but it creates a problem at training time: the sequential nature of weight updates makes parallelization very difficult. Hardware utilization is low, and training is slow.</p><p>TNT (Two-stage Non-linear Training) solves this by separating training efficiency from inference quality. In the first stage, it uses a hierarchical memory structure — a global module handles large chunks of context for efficiency, while multiple local modules handle fine-grained details in parallel. A periodic reset of the local memory states removes sequential dependencies and enables parallel computation. In the second stage, a short fine-tuning pass adapts the local modules to smaller chunk sizes for higher inference accuracy.</p><p>The result is up to <strong>17× faster training</strong> than baseline Titans configurations, with better accuracy. This matters because it removes a practical barrier that was quietly blocking the adoption of deep memory models at scale.</p><h3>2. Nested Learning and Hope: A Model That Learns Its Own Update Rules</h3><p><strong>Paper</strong>: <a href="https://arxiv.org/abs/2512.24695"><em>Nested Learning: The Illusion of Deep Learning Architectures (NeurIPS 2025)</em></a><em> | </em><a href="https://research.google/blog/introducing-nested-learning-a-new-ml-paradigm-for-continual-learning/"><em>Google Research Blog</em></a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EQPf1xh-NqHRcYxoSktp-Q.png" /></figure><p>Google Research introduced the Nested Learning paradigm at NeurIPS 2025. The core idea is that a model’s architecture and its optimization algorithm are not fundamentally different things — they are just optimization problems operating at different timescales. By making this structure explicit, you can design models that update at multiple frequencies simultaneously.</p><p>The practical result of this framework is <strong>Hope</strong>, a variant of Titans. Instead of the original two-speed memory (long-term and short-term), Hope uses a <strong>Continuum Memory System (CMS)</strong> — a set of memory modules, each updating at a different frequency. Hope also uses this system to optimize its own memory through a self-referential in-context learning loop.</p><p>On long-context Needle-in-a-Haystack (NIAH) benchmarks, Hope consistently outperforms standard Transformers, Titans, and Mamba-2. That said, experiments are at the 340M to 1.3B parameter scale. Whether this holds at production scale is still an open question.</p><h3>3. MesaNet: Always Solve the Optimization Problem Exactly</h3><p><strong>Paper</strong>: <a href="https://openreview.net/forum?id=xa3OnTb6c3"><em>MesaNet: Sequence Modeling by Locally Optimal Test-Time Training (ICLR 2026)</em></a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FJDIbzYuZ8vUfkwXACw0Rw.png" /></figure><p>Titans uses gradient descent to <em>approximate</em> the optimal memory update at each step. MesaNet asks: what if we just solve the optimization problem exactly every time?</p><p>It does this using a fast <strong>conjugate gradient (CG) solver</strong> inside a chunkwise-parallel layer. Instead of taking a gradient step, MesaNet computes the exact optimal fast weights for the current context. This costs more compute per step, but because the weights are always fully informed by the current context, the model achieves lower perplexity and stronger performance on several benchmarks compared to other linear-time models.</p><p>One thing worth being honest about: on long-context global benchmarks, MesaNet still trails full-attention Transformers. The paper acknowledges this directly — “the performance of all RNNs drops severely” at extended lengths. MesaNet is a step forward within linear-time models, but the gap with full attention at long context has not been closed.</p><h3>4. InftyThink and TTT-E2E: Two Approaches to Unlimited Context</h3><h3>InftyThink: Summarize as You Think</h3><p><strong>Paper</strong>: <a href="https://arxiv.org/abs/2503.06692"><em>InftyThink: Breaking the Length Limits of Long-Context Reasoning in Large Language Models (ICLR 2026)</em></a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dY9VcIpjnaGx5tH52Pyjqw.png" /></figure><p>InftyThink does not target long <em>input</em> context — it targets long <em>reasoning chains</em> that hit context limits before reaching an answer. The approach is a protocol rather than an architecture change: the model generates a short reasoning segment, then produces a concise summary of its progress, then continues from the summary.</p><p>This creates a sawtooth pattern where the active context expands during reasoning and resets after each summary. Reasoning depth becomes unbounded without any growth in memory cost.</p><p>Models fine-tuned on InftyThink-style data show <strong>3–11% improvements</strong> on MATH500, AIME24, and GPQA benchmarks. A follow-up paper, <a href="https://arxiv.org/abs/2602.06960">InftyThink+</a>, trains models with end-to-end reinforcement learning to decide <em>when</em> to summarize rather than relying on fixed intervals. It shows a <strong>21% improvement on AIME24</strong> over standard chain-of-thought RL.</p><h3>TTT-E2E: Compress Context Directly Into Weights</h3><p><strong>Paper</strong>: <a href="https://arxiv.org/abs/2512.23675"><em>End-to-End Test-Time Training for Long Context (arXiv:2512.23675)</em></a><em> | </em><a href="https://developer.nvidia.com/blog/reimagining-llm-memory-using-context-as-training-data-unlocks-models-that-learn-at-test-time/"><em>NVIDIA Blog</em></a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vbo1vtT3A9cPDtEjqcjiRA.png" /></figure><p>TTT-E2E takes a different direction. Rather than designing a new memory architecture, it treats the context itself as training data and runs gradient updates during inference via standard next-token prediction loss.</p><p>In practice: as context arrives, the model compresses it into the weights of a designated subset of MLP layers (the final 25% of transformer blocks). Sliding-window attention handles the immediate context. The modified MLP weights hold longer-term memory. No custom memory cells — just standard training infrastructure reused at inference time.</p><p>At 128K tokens on an H100, TTT-E2E runs <strong>2.7× faster</strong> than full-attention Transformers with constant inference latency, while matching full-attention loss scaling where other linear-time models diverge.</p><p>One limitation is worth noting, though it is not specific to TTT-E2E: on NIAH retrieval tasks at 128K tokens, TTT-E2E scores <strong>6%</strong> versus 99% for full attention. Mamba-2 and Gated DeltaNet score similarly at 7%. This is a shared failure across all non-full-attention approaches — exact fact retrieval at long context remains unsolved for any compression-based method.</p><h3>5. TTT3R: The Same Idea Applied to 3D Vision</h3><p><strong>Paper</strong>: <a href="https://openreview.net/forum?id=aMs6FtNaY5"><em>TTT3R: 3D Reconstruction as Test-Time Training (ICLR 2026)</em></a><em> | </em><a href="https://rover-xingyu.github.io/TTT3R/"><em>Project Page</em></a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*v-ZESA_SmFrx6Zp6pP8lNg.png" /></figure><p>TTT3R shows that test-time training is not limited to language. It applies the same principle to <strong>3D reconstruction and Structure-from-Motion</strong>: treating continuous video frame ingestion as an online learning problem.</p><p>Recurrent 3D reconstruction models generalize poorly to long sequences — they train on 64-frame sequences and degrade on longer videos. TTT3R’s fix is to compute the <strong>alignment confidence</strong> between the current memory state and each incoming frame, and use this confidence to derive a per-token learning rate. When memory aligns well with the observation, the update is small. When it does not, the model adapts more aggressively.</p><p>This training-free change delivers a <strong>2× improvement in global pose estimation</strong>, runs at <strong>20 FPS on 6GB of VRAM</strong>, and handles thousands of frames without performance collapse.</p><h3>6. Mamba-3: A Disciplined Upgrade to State Space Models</h3><p><strong>Paper</strong>: <a href="https://openreview.net/forum?id=HwCvaJOiCj"><em>Mamba-3: Improved Sequence Modeling using State Space Principles (ICLR 2026)</em></a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*c3aT4QaNf7dIgzmBOry7Wg.png" /></figure><p>While test-time training approaches have attracted most of the attention, the State Space Model (SSM) camp made a more conservative but technically rigorous step forward with Mamba-3.</p><p>Three specific changes distinguish it from Mamba-2, all grounded in classical control theory:</p><p><strong>Exponential-Trapezoidal Discretization</strong>: Mamba-1 and Mamba-2 used first-order (Euler) discretization when converting continuous SSMs to discrete sequences. Mamba-3 uses a second-order approximation, which is more accurate and has the side effect of making the short causal convolution that other models carry unnecessary.</p><p><strong>Complex-Valued States via Data-Dependent RoPE</strong>: Real-valued SSMs cannot represent oscillatory dynamics — they perform no better than random on tasks like parity checking or modular arithmetic. Complex values fix this but at 4× compute cost. Mamba-3 proves that a complex-valued SSM is mathematically equivalent to a real-valued SSM with data-dependent Rotary Positional Embeddings (RoPE). This gives the expressivity of complex values at the speed of real arithmetic.</p><p><strong>MIMO (Multi-Input Multi-Output) State Updates</strong>: Standard SSM decoding has very low arithmetic intensity (~2.5 ops/byte), making it memory-bound and hardware-inefficient. Switching to a rank-R state update increases arithmetic intensity and improves GPU utilization without increasing decode latency.</p><p>At 1.5B parameters, Mamba-3 achieves comparable perplexity to Mamba-2 using <strong>half the state size</strong>.</p><h3>What These Papers Are Really About</h3><p>Looking across all six developments, the underlying shift is the same: <strong>the question is no longer whether a model’s weights are static at inference time, but how and when they should change.</strong></p><p>TTT-E2E compresses entire contexts into weights via gradient descent. TNT makes that update mechanism practical to train. Hope and Nested Learning generalize it across multiple timescales. MesaNet solves the update problem exactly. InftyThink extends the idea to reasoning chains. TTT3R applies it to video. Mamba-3 achieves similar gains through classical SSM theory without touching weights at inference at all.</p><p>A few honest caveats to close with:</p><p><strong>Exact retrieval is still a weakness.</strong> Gradient-based memory compression is good at capturing general patterns, not at preserving specific facts. NIAH benchmarks make this visible. Applications that need precise retrieval — code navigation, legal documents, structured data — are not yet well served by these approaches.</p><p><strong>Long-context quality gaps remain.</strong> MesaNet, Mamba-3, and similar models have closed the gap with full-attention Transformers on many tasks, but the hardest long-context benchmarks still favor quadratic attention.</p><p><strong>Scale is mostly untested.</strong> Most experiments here are at 300M–1.5B parameters. Whether the results transfer to 70B+ models in production settings is still unknown.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1874ed90c60c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Why Context Compression Sometimes Fails]]></title>
            <link>https://medium.com/@kumon/why-context-compression-sometimes-fails-d6ac3dde5d1e?source=rss-760f57c4d961------2</link>
            <guid isPermaLink="false">https://medium.com/p/d6ac3dde5d1e</guid>
            <category><![CDATA[llm]]></category>
            <category><![CDATA[large-language-models]]></category>
            <category><![CDATA[context-engineering]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <dc:creator><![CDATA[Takuma Yamaguchi (Kumon)]]></dc:creator>
            <pubDate>Fri, 27 Feb 2026 11:04:39 GMT</pubDate>
            <atom:updated>2026-02-27T11:04:39.792Z</atom:updated>
            <content:encoded><![CDATA[<h4>AI models are growing longer memories — but longer doesn’t always mean better. When context compression fails, most engineers blame the algorithm. A new paper argues the real problem is the data itself.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1017/1*bRi-cgIWC55NaWNS-GfalQ.png" /></figure><h3>The Problem: AI Memories Are Getting Too Long</h3><p>Modern AI assistants can process entire books, long conversations, and massive documents. But this comes at a cost. Longer inputs mean higher computing bills, slower responses, and more energy use.</p><p>Context compression offers a solution. The idea is simple: before feeding a long document to an AI, compress it — like zipping a file — so the model only has to process the key information.</p><p>Compression doesn’t always work well. Sometimes the compressed version loses important meaning. Sometimes the AI gives worse answers than if you had just skipped compression entirely.</p><p>Researchers assumed the problem was in the compression algorithm. A new paper, <a href="https://arxiv.org/abs/2602.01778">“Data Distribution Matters: A Data-Centric Perspective on Context Compression for Large Language Models”</a>, argues the real problem is somewhere else entirely: the data itself.</p><h3>Data Complexity Is the Key Variable</h3><p>The researchers from Alibaba investigated context compression from a fresh angle. Instead of asking “which compression method is best?”, they asked: “what properties of the input data make compression succeed or fail?”</p><p>Their answer: <strong>entropy matters most</strong>.</p><p>Entropy, in this context, measures how unpredictable or complex a piece of text is. High entropy text is dense with information — every word carries weight and removing any of it risks losing something important. Low entropy text is more repetitive and predictable, making it easier to compress without losing meaning.</p><p>The researchers found a clear pattern: <strong>higher input entropy leads to worse compression quality</strong>. When text is complex and information-dense, compression algorithms struggle to preserve meaning. When text is simpler and more structured, compression works much better.</p><p>Think of it like packing a suitcase. A suitcase full of clothes can be compressed by rolling and folding. But a suitcase full of delicate electronics cannot. The contents determine how well packing works, not the packing technique.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*O33PSamfHbHW653E4LKmkQ.png" /><figcaption><em>Entropy measures how unpredictable text is. High-entropy text (left) is dense with unique tokens — compress it and meaning is lost. Low-entropy text (right) has patterns that compress cleanly.</em></figcaption></figure><h3>The Second Finding: Mismatched Knowledge Breaks Compression</h3><p>The research used an autoencoder-based framework to study compression. In this setup, one part of the system (the encoder) compresses the text, and another part (the decoder) reads it back.</p><p>This revealed a second key finding: <strong>when the encoder and decoder have different background knowledge, compression quality drops significantly</strong>.</p><p>Context compression doesn’t just squeeze text mechanically — it relies on shared knowledge between the compressor and the reader. If the encoder “knows” that certain words can be inferred from context and removes them, but the decoder doesn’t have that same background knowledge, meaning gets lost.</p><p>The researchers found this knowledge gap is hard to fix. Unlike entropy, which you can potentially address by preprocessing your data, a mismatch in background knowledge between encoder and decoder is a structural problem that cuts into compression quality in ways that are difficult to work around.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ZhM4QlgFDNsGjDWyoPYFJg.png" /><figcaption><em>Context compression relies on shared knowledge. When the encoder and decoder are trained on different data, the encoder removes details the decoder needed — and cannot recover them.</em></figcaption></figure><h3>What Makes This Research Different</h3><p>Most context compression research focuses on designing better algorithms. This paper takes a step back to ask a more fundamental question: even if you had a perfect algorithm, what properties of the data would limit it?</p><p>The answer has practical implications. Before choosing a compression method, you should consider:</p><ul><li><strong>How complex is your text?</strong> Technical documents, legal texts, and scientific papers have high information density. Compression will be harder and riskier for them than for simpler conversational text.</li><li><strong>Do your encoder and decoder share knowledge?</strong> If you’re compressing with one model and reading with another (a common setup), their differences in training data could silently degrade quality.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1013/1*5h49eUkbaUKoO1u5XYw6EA.png" /><figcaption><em>The model-centric approach applies the same compression algorithm to everything. The data-centric approach analyzes input first, then selects the method that fits.</em></figcaption></figure><h3>The Broader Picture: Data-Centric AI</h3><p>This paper is part of a broader shift in AI research toward data-centric thinking. For years, the focus was on building better models. More recently, researchers have started asking: what if the data itself is the bottleneck?</p><p>In the context compression space, this means accepting that no algorithm can fully compensate for fundamentally difficult input. A better compression method helps, but understanding your data distribution matters just as much.</p><p>For engineers building AI applications that use long contexts, this is a useful reminder: don’t just benchmark your compression algorithm on average cases. Test it on the hardest, most information-dense text you expect to see. That’s where it will fail first.</p><h3>Conclusion</h3><p>Context compression is a promising way to make AI faster and cheaper. But it’s not a silver bullet. How well it works depends heavily on the complexity of your input text and whether your encoder and decoder share enough background knowledge.</p><p>Their framework gives researchers a clearer way to evaluate and predict compression quality — not just in general, but for specific types of data. The result is a more honest accounting of where compression helps, and where it still falls short.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d6ac3dde5d1e" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[AI Hit a Wall]]></title>
            <link>https://medium.com/@kumon/ai-hit-a-wall-6632a8f57ecb?source=rss-760f57c4d961------2</link>
            <guid isPermaLink="false">https://medium.com/p/6632a8f57ecb</guid>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[ai-efficiency]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[ai-agent]]></category>
            <category><![CDATA[machine-learning]]></category>
            <dc:creator><![CDATA[Takuma Yamaguchi (Kumon)]]></dc:creator>
            <pubDate>Mon, 16 Feb 2026 12:42:42 GMT</pubDate>
            <atom:updated>2026-02-16T12:42:42.779Z</atom:updated>
            <content:encoded><![CDATA[<h4>Why the industry is shifting from bigger models to smarter agents</h4><p>For years, making AI smarter meant making it bigger. That era is ending. <a href="https://arxiv.org/abs/2601.14053">A new survey of over 50 AI models</a> reveals two major shifts happening right now. First, the industry is pivoting to six new approaches that build better AI without burning through data and money. Second, AI is evolving from systems that just answer questions into agents that can think, plan, and use tools to solve real problems.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-1KCz_EFQv3233BfcHyybQ.png" /></figure><h3>The Wall Everyone Hit</h3><p>Building smarter AI used to be simple. You made the model bigger. You fed it more data. The results got better. But this approach is breaking down fast.</p><p>We will run out of internet text to train on between 2026 and 2028. That’s 9 to 27 trillion tokens of data depleted. Training costs jumped from $3 million to over $300 million in just five years. Energy use increased 22 times.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/873/1*AIObtpA9uJ_wx_G6mLxGpg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1001/1*dn8ywxP-uIfG-PaBpNf6sQ.png" /></figure><p>The industry calls this the scaling wall. It’s the point where throwing more resources at AI stops making it better.</p><p>Badri</p><p>A major survey called <a href="https://arxiv.org/abs/2601.14053"><strong><em>LLMOrbit (Badri et al., 2026)</em></strong></a> analyzed over 50 models across 15 organizations from 2019 to 2025. It documents a remarkable paradigm shift already happening across the field. The old approach is dying, but two new paths forward are emerging.</p><h3>Six Ways Around the Wall</h3><p>The first path is about efficiency. Six new paradigms are emerging across the industry to make AI better without making it bigger.</p><p><strong>Test-time compute</strong> lets models think longer when they answer. Instead of responding instantly, they spend more time reasoning. Models like o1 and DeepSeek-R1 use 10x more compute during inference. The result? They match GPT-4 performance without needing massive training budgets.</p><p><strong>Quantization</strong> compresses models down to 4–8x smaller sizes. Think of it like zipping a file. Multi-head Latent Attention compressed the KV cache by 8x. This technique enables GPT-4-level performance at under $0.30 per million tokens. The cost drops dramatically.</p><p><strong>Distributed edge computing</strong> spreads work across many small devices instead of one supercomputer. This approach cuts costs by 10x. You don’t need a massive data center anymore.</p><p><strong>Model merging</strong> combines strengths from different models. It’s like mixing the best parts of several recipes to create something better.</p><p><strong>Efficient training</strong> methods reduce waste. ORPO cuts memory use by 50%. Mixture of Experts (MoE) routing delivers 18x efficiency gains. The models learn faster and cheaper.</p><p><strong>Small specialized models</strong> can match giants. Phi-4 has only 14 billion parameters. It performs as well as much larger models. Size isn’t everything anymore.</p><p>The results speak for themselves. DeepSeek-R1 scored 79.8% on the difficult MATH benchmark. Llama 3 hit 88.6% on the MMLU knowledge test. GPT-4 scored 86.4%. Open-source models are now competitive with frontier closed models on standardized benchmarks.</p><h3>The Bigger Shift: From Passive to Active</h3><p>But something even more important is happening. AI is evolving from passive tools into active agents.</p><p>Think about traditional AI. You ask a question. It gives an answer. That’s it. The conversation ends.</p><p>Agentic AI is different. It can sense what’s needed. It thinks through the problem. It takes action. It uses tools. It checks if the action worked. Then it tries again if needed.</p><p>This is a fundamental change. We’re moving through three nested stages.</p><p><strong>Stage 1: LLM Foundation.</strong> Models that understand and generate text.</p><p><strong>Stage 2: GenAI.</strong> Models that create content on demand.</p><p><strong>Stage 3: Agentic AI.</strong> Models that act autonomously to achieve goals.</p><p>Most people are still thinking about Stage 2. But Stage 3 is already here.</p><h3>How Agentic Systems Think</h3><p>Agentic AI follows a core cycle: Sense-Think-Act.</p><p><strong>Sense</strong> means perceiving what’s happening. The agent reads the situation. It understands the context. It knows what tools are available.</p><p><strong>Think</strong> means reasoning about what to do. This isn’t just pattern matching. It’s genuine problem solving.</p><p><strong>Act</strong> means taking action in the world. The agent uses tools. It calls APIs. It retrieves information. It changes things.</p><p>This cycle repeats until the goal is achieved.</p><h3>The Building Blocks</h3><p>Several key techniques make this possible.</p><p><strong>ReAct</strong> is a framework that bridges reasoning and action. It combines three things: internal deliberation, external tool interaction, and feedback loops. The agent thinks out loud about what to do. Then it does it. Then it checks the result and adjusts.</p><p><strong>RAG (Retrieval-Augmented Generation)</strong> lets agents pull fresh information from external sources. Instead of relying only on training data, they query knowledge bases in real time. This grounds their responses in current facts.</p><p><strong>Chain-of-Thought (CoT)</strong> makes reasoning visible. The model generates intermediate steps before giving a final answer. You can see how it got there.</p><p><strong>Tree-of-Thoughts (ToT)</strong> goes further. Instead of one chain of reasoning, the model explores multiple paths at once. It considers different approaches. It picks the best one.</p><p><strong>Tool use</strong> is the game changer. Agents can recognize when they need a tool. They format the request correctly. They call the tool. They process the results. They continue with the task.</p><p>This is like the difference between thinking about hammering a nail and actually picking up a hammer.</p><h3>Memory Makes It Real</h3><p>For agents to work across time, they need memory.</p><p>Modern systems have three types:</p><p><strong>Episodic memory</strong> stores specific experiences. “Last time I tried this approach, it failed.”</p><p><strong>Semantic memory</strong> stores general knowledge. “API keys go in headers, not URLs.”</p><p><strong>Procedural memory</strong> stores how to do things. “To authenticate, first get a token, then include it in requests.”</p><p>With context windows now exceeding 128,000 tokens, agents can remember long conversations and complex tasks.</p><h3>Planning Gets Sophisticated</h3><p>Early agents were reactive. They responded to immediate inputs.</p><p>Newer agents are deliberative. They plan multiple steps ahead.</p><p>The most advanced are adaptive. They adjust plans when things change.</p><p>This requires scale. The paper identifies three requirements for reasoning emergence. Training on over 100 billion tokens (10¹¹). Reinforcement learning with verifiable feedback. Test-time search to explore options.</p><p>These requirements are steep. But models like o1 and DeepSeek-R1 are meeting them.</p><h3>Multi-Agent Systems</h3><p>The next frontier is multiple agents working together.</p><p>Why? Because specialization works.</p><p>One agent handles research. Another writes code. A third reviews for errors. They work in parallel. They hand off tasks. Emergent capabilities appear that no single agent has.</p><p>The Model Context Protocol (MCP) standardizes how agents talk to tools and each other. It’s like HTTP for AI agents. Everyone speaks the same language.</p><h3>What This Means for Us</h3><p>We’re witnessing two paradigm shifts at once.</p><p>The first shift is efficiency. AI is getting better without getting bigger. It’s getting cheaper. It’s using less energy. Open-source models are beating expensive private ones. This democratizes access.</p><p>The second shift is agency. The entire field is moving from answering questions to solving problems. From generating text to taking action. From tools we use to agents that work alongside us.</p><p>These changes compound. Efficient models make agents affordable. Agentic capabilities make AI useful for complex real-world tasks.</p><p>The field is evolving from passive AI toward agentic systems. This shift is still early, but the direction is clear.</p><p>And unlike the scaling race, this evolution doesn’t require billion-dollar budgets. It requires smart design. That means more people can participate. More innovations will emerge.</p><p>The wall that stopped scaling isn’t stopping progress. It’s redirecting the entire industry toward something more sustainable and more powerful.</p><h3>Conclusion</h3><p>AI progress isn’t slowing down. It’s growing up. Instead of building bigger models that consume more resources, the industry has shifted to six new paradigms that work smarter. Instead of passive systems that only respond, the field is moving toward active agents that think, plan, and act.</p><p>The combination is powerful. Efficient models make agents practical. Agentic capabilities make AI genuinely useful. And with open-source models becoming increasingly competitive, access to capable AI is democratizing. The scaling wall isn’t the end of AI progress. It’s the beginning of something better.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6632a8f57ecb" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[AI Regulation Developments in 2026]]></title>
            <link>https://medium.com/@kumon/ai-regulation-developments-in-2026-6292eed8d125?source=rss-760f57c4d961------2</link>
            <guid isPermaLink="false">https://medium.com/p/6292eed8d125</guid>
            <category><![CDATA[global-trends]]></category>
            <category><![CDATA[ai-regulation]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[law-and-technology]]></category>
            <category><![CDATA[tech-policy]]></category>
            <dc:creator><![CDATA[Takuma Yamaguchi (Kumon)]]></dc:creator>
            <pubDate>Tue, 27 Jan 2026 14:09:13 GMT</pubDate>
            <atom:updated>2026-01-27T14:09:13.406Z</atom:updated>
            <content:encoded><![CDATA[<h4>A collection of notes on US state laws and global frameworks as of Jan 2026</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WvAEuTOGcagwVbd8QwK2YA.png" /></figure><p>I’ve been trying to keep up with AI regulation lately, and it seems like things are moving pretty fast in different parts of the world. This is mainly focused on what’s happening in the US — especially California, Colorado, and Texas where new laws are already in effect or coming soon. But I also wanted to include some notes on other countries because honestly, some of them are moving faster than the US in terms of having clear rules. The EU has a pretty comprehensive law now, and countries like China, South Korea, and Japan all have their own frameworks. Singapore and India are taking a softer approach with guidelines instead of strict laws.</p><h3>United States</h3><p>In recent years, there has been increasing discussion about how to regulate AI in the United States. While there is still no comprehensive federal law on AI, some states like California, Colorado, and Texas have started introducing their own regulations. As a non-expert, I tried to collect and summarize some of the latest developments, especially focusing on the laws that are already enforced or soon to be enforced as of 2026. I also included some notes on how companies are reacting.</p><h4>Who These Laws Apply To (Important Distinction)</h4><p>One thing that confused me at first was that not all these laws apply to the same type of organizations. After reading more carefully, I noticed there are basically two groups:</p><p><strong>Developers or providers of AI models</strong> (like OpenAI, Anthropic, Google DeepMind)</p><ul><li>These are responsible for transparency, safety, and sometimes publishing training data details.</li><li>Laws that apply: California SB 53, AB 2013</li></ul><p><strong>Businesses that use AI systems in their operations</strong> (for example, companies using OpenAI API for customer service or loan decisions):</p><ul><li>These are required to inform users, explain decisions, prevent bias, and offer appeal processes.</li><li>Laws that apply: Colorado AI law, Texas TRAIGA</li></ul><h4>California SB 53 — Transparency in Frontier AI Act</h4><p>Who is covered: AI model developers (large-scale frontier models)</p><p>Status: Enacted in 2025, effective January 1, 2027</p><p>Main points:</p><ul><li>Applies to companies making more than $500M and developing powerful models (over 10²⁶ FLOPs).</li><li>These companies need to assess catastrophic risks and publish a “Frontier AI Framework.”</li><li>Must publish transparency reports before releasing or significantly updating such models.</li><li>Report serious incidents within 24 hours or 15 days.</li><li>Internal whistleblower protections are also required.</li></ul><p>Reference:</p><ul><li>California SB 53 Overview: <a href="https://www.brookings.edu/articles/what-is-californias-ai-safety-law/">https://www.brookings.edu/articles/what-is-californias-ai-safety-law/</a></li><li>California SB 53 Bill Text: <a href="https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202320240SB53">https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=202320240SB53</a></li></ul><h4>California AB 2013 — Generative AI Training Data Transparency Act</h4><p>Who is covered: Developers/providers of generative AI systems</p><p>Status: Effective January 1, 2026</p><p>Main points:</p><ul><li>Requires providers to publish a high-level summary of training data on their websites.</li><li>Applies to any model made after 2022 and accessible to people in California.</li><li>Includes items like data sources, copyright content, personal data, etc.</li><li>xAI (Elon Musk’s company) is suing the state, claiming the law violates freedom of speech.</li></ul><p>Reference:</p><ul><li>California AB 2013 Bill Text: <a href="https://leginfo.legislature.ca.gov/faces/billNavClient.xhtml?bill_id=202320240AB2013">https://leginfo.legislature.ca.gov/faces/billNavClient.xhtml?bill_id=202320240AB2013</a></li><li>xAI Lawsuit Coverage: <a href="https://law-ai.org/xais-challenge-to-californias-ai-training-data-transparency-law-ab2013/">https://law-ai.org/xais-challenge-to-californias-ai-training-data-transparency-law-ab2013/</a></li></ul><h4>Colorado SB 24–205 — AI Consumer Protection Law</h4><p>Who is covered: Both AI developers and AI service providers</p><p>Status: Effective June 30, 2026 (delayed from original February plan)</p><p>Main points:</p><ul><li>Applies only to “high-risk AI systems” (e.g., hiring, loans, insurance)</li><li>Developers must document design, risk, and bias mitigation.</li><li>AI service providers must notify users, allow appeals, and report discrimination within 90 days.</li><li>NIST AI RMF can provide safe harbor.</li></ul><p>Reference:</p><ul><li>Colorado SB 24–205 Bill Text: <a href="https://leg.colorado.gov/bills/sb24-205">https://leg.colorado.gov/bills/sb24-205</a></li></ul><h4>Texas HB 149 — Texas Responsible AI Governance Act (TRAIGA)</h4><p>Who is covered: AI developers and deployers in Texas</p><p>Status: Effective January 1, 2026</p><p>Main points:</p><ul><li>Prohibits AI designed to incite harm or criminal activity</li><li>Requires disclosure when interacting with AI systems</li><li>Establishes a regulatory sandbox for testing innovations</li></ul><p>Reference:</p><ul><li>Texas HB 149 Bill Text: <a href="https://capitol.texas.gov/BillLookup/History.aspx?LegSess=89R&amp;Bill=HB149">https://capitol.texas.gov/BillLookup/History.aspx?LegSess=89R&amp;Bill=HB149</a></li></ul><h4>How Companies Are Responding</h4><p><strong>OpenAI</strong>: Formed a Safety &amp; Security Committee; pre-release risk assessment and transparency reports.</p><ul><li><a href="https://openai.com/index/openai-board-forms-safety-and-security-committee/">https://openai.com/index/openai-board-forms-safety-and-security-committee/</a></li></ul><p><strong>Anthropic</strong>: Responsible Scaling Policy with safety levels based on model capability.</p><ul><li><a href="https://www.anthropic.com/rsp-updates">https://www.anthropic.com/rsp-updates</a></li></ul><p><strong>Google</strong>: Publishes an annual Responsible AI Report.</p><ul><li><a href="https://ai.google/static/documents/ai-responsibility-update-published-february-2025.pdf">https://ai.google/static/documents/ai-responsibility-update-published-february-2025.pdf</a></li></ul><h4>What About Businesses That Use AI?</h4><p>If your company uses AI for decision-making (e.g., hiring, lending), you may be subject to new legal obligations:</p><ul><li>Notify users when AI is used</li><li>Keep records of decisions</li><li>Allow appeals or human review</li><li>Monitor bias and fairness</li></ul><p>Recommended practices include:</p><ul><li>Reviewing provider documentation</li><li>Keeping internal risk assessments</li><li>Updating internal policies (e.g., using NIST AI RMF)</li></ul><h3>Developments Outside the US</h3><h4>EU AI Act</h4><ul><li>Comprehensive risk-based regulation for the EU</li><li>Unacceptable-risk systems banned</li><li>High-risk AI must pass conformity assessments and include oversight and documentation</li><li>Foundation models face transparency, energy use, and safety obligations</li><li>Enforced by European AI Office</li></ul><p>Reference:</p><ul><li>EU AI Act Summary: <a href="https://digital-strategy.ec.europa.eu/en/policies/regulatory-framework-ai">https://digital-strategy.ec.europa.eu/en/policies/regulatory-framework-ai</a></li></ul><h4>Japan</h4><ul><li>AI Promotion Law (2023), fully enforced from 2025</li><li>Transparency and documentation encouraged, not required</li><li>Guidance includes data disclosure and explanation of AI decision processes</li></ul><p>Reference:</p><ul><li>Japan AI Promotion Law: <a href="https://www8.cao.go.jp/cstp/ai/ai_act/ai_act.html">https://www8.cao.go.jp/cstp/ai/ai_act/ai_act.html</a></li></ul><h4>China</h4><ul><li>Generative AI regulations enforced since 2023</li><li>Requires registration and audit of models, labeling of content (including watermarks)</li><li>Strict government enforcement (CAC)</li></ul><p>Reference:</p><ul><li>China Generative AI Interim Rules: <a href="https://www.chinalawtranslate.com/en/generative-ai-interim/">https://www.chinalawtranslate.com/en/generative-ai-interim/</a></li></ul><h3>South Korea</h3><ul><li>AI Basic Act (2025), effective from 2026</li><li>High-impact AI systems must be risk-assessed and auditable</li><li>Human oversight and content labeling are mandatory</li></ul><p>Reference:</p><ul><li>South Korea AI Basic Law: <a href="https://www.onetrust.com/blog/south-koreas-new-ai-law-what-it-means-for-organizations-and-how-to-prepare/">https://www.onetrust.com/blog/south-koreas-new-ai-law-what-it-means-for-organizations-and-how-to-prepare/</a></li></ul><h3>Singapore</h3><ul><li>No binding AI law; uses voluntary frameworks</li><li>Notable initiatives: Model AI Governance Framework, Agentic AI guidance</li><li>Strong emphasis on explainability, human oversight</li></ul><p>Reference:</p><ul><li>Singapore AI Governance Framework: <a href="https://www.pdpc.gov.sg/help-and-resources/2020/01/model-ai-governance-framework">https://www.pdpc.gov.sg/help-and-resources/2020/01/model-ai-governance-framework</a></li></ul><h3>India</h3><ul><li>AI Governance Guidelines (2025), no law yet</li><li>Encourages transparency reports, impact assessments, and complaint channels</li><li>Legislation being considered</li></ul><p>Reference:</p><ul><li>India AI Governance Guidelines: <a href="https://static.pib.gov.in/WriteReadData/specificdocs/documents/2025/nov/doc2025115685601.pdf">https://static.pib.gov.in/WriteReadData/specificdocs/documents/2025/nov/doc2025115685601.pdf</a></li></ul><h3>Conclusion</h3><p>As AI regulation continues to evolve globally, the regulatory landscape is becoming increasingly complex and varied across jurisdictions. While the United States has adopted a decentralized, state-level approach, regions like the EU, China, and South Korea are implementing comprehensive national frameworks with clear enforcement mechanisms. Understanding whether your organization acts as an AI developer, provider, or deployer is critical, as obligations differ significantly across these roles.</p><p>The convergence of global standards around transparency, risk assessment, and human oversight suggests that proactive preparation is no longer optional. Organizations should begin documenting their AI systems, conducting regular bias and risk assessments, and establishing clear governance processes — regardless of whether specific regulations currently apply in their jurisdiction. The trajectory is clear: AI accountability is becoming a fundamental business requirement worldwide.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6292eed8d125" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Prompt Repetition for Non-Reasoning LLMs: A Reproduction Study]]></title>
            <link>https://medium.com/@kumon/prompt-repetition-for-non-reasoning-llms-a-reproduction-study-55e94888b565?source=rss-760f57c4d961------2</link>
            <guid isPermaLink="false">https://medium.com/p/55e94888b565</guid>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[large-language-models]]></category>
            <category><![CDATA[prompt-engineering]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[ai-research]]></category>
            <dc:creator><![CDATA[Takuma Yamaguchi (Kumon)]]></dc:creator>
            <pubDate>Sat, 03 Jan 2026 13:40:19 GMT</pubDate>
            <atom:updated>2026-01-03T13:40:19.769Z</atom:updated>
            <content:encoded><![CDATA[<h4>Experiments with Gemini 2.0 Flash Lite on Name Index Tasks</h4><p>Recently, many large language models focus on reasoning. Chain-of-Thought, step-by-step reasoning, and deliberate reasoning are now common.</p><p>As recent LLM research often focuses on reasoning, the paper “<a href="https://arxiv.org/abs/2512.14982"><em>Prompt Repetition Improves Non-Reasoning LLMs</em></a>”, written by researchers at Google Research, might be easy to overlook at first.</p><p>After reading the paper and trying to reproduce its results, I realized that it offers a very useful and simple perspective. This perspective is still helpful for understanding LLM behavior today.</p><p>The figure below, taken from the original paper, summarizes the main effect reported by the authors. This figure shows that prompt repetition can significantly improve performance for non-reasoning models.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-c_q_-7UgWRaV4vuHZQ7ig.png" /></figure><p>In this post, I focus on the following points:</p><ul><li>what the paper means by non-reasoning LLMs</li><li>why prompt repetition can work</li><li>why the effect is limited for recent models</li><li>how I reproduced the result using Gemini 2.0 Flash Lite</li></ul><h3>What Is a Non-Reasoning LLM in This Paper?</h3><p>In this paper, non-reasoning LLM does not mean a model that cannot reason.</p><p>It means a model that:</p><ul><li>is trained mainly with next-token prediction</li><li>is not trained to output reasoning steps explicitly</li><li>does not rely on Chain-of-Thought during inference</li></ul><p>These models can still solve many tasks, but they do not intentionally generate reasoning processes.</p><p>On the other hand, reasoning models:</p><ul><li>are trained with Chain-of-Thought or similar data</li><li>learn to output intermediate steps</li><li>are more robust for complex logical tasks</li></ul><h3>Why Prompt Repetition Works</h3><p>Prompt repetition does not add reasoning ability. Instead, it changes how the model attends to the input.</p><p>In causal language models:</p><ul><li>earlier tokens have stronger influence</li><li>long inputs reduce attention stability</li><li>important details can be missed</li></ul><p>By repeating the same prompt:</p><ul><li>important tokens appear multiple times</li><li>their probability becomes higher</li><li>attention becomes more stable</li></ul><p>In short, repetition helps the model read the input more carefully. It does not make the model smarter, but it makes mistakes less likely.</p><p>This is why repetition works well for:</p><ul><li>long lists</li><li>position-based questions</li><li>tasks that are deterministic but attention-sensitive</li></ul><h3>Why the Effect Is Limited for Recent LLMs</h3><p>When I tested many examples with recent models, most of them were already correct without repetition. This does not mean the paper is wrong.</p><p>Recent LLMs:</p><ul><li>are often trained as reasoning models</li><li>handle attention better</li><li>internally re-check information even without explicit CoT prompts</li></ul><p>Because of this:</p><ul><li>baseline accuracy is already high</li><li>there is little room for improvement</li><li>repetition does not show a clear effect</li></ul><p>To reproduce the paper today, it is often necessary to use:</p><ul><li>lightweight models</li><li>speed-optimized models</li><li>models that focus less on reasoning</li></ul><h3>Reproducing the Result with Gemini 2.0 Flash Lite</h3><p>The paper reports strong effects with Gemini 2.0 Flash Lite, so I used this model.</p><p>One task where I could reproduce the effect is the Name Index task (25th of 50) with noise.</p><p><strong>Prompt Used</strong></p><pre>Here is a list of names. Comments in parentheses are NOT part of the list.<br><br>Arden, Bexley, Corin, Daxter, Elric,<br>Fenna, Garrick, Helia, Ivor, Jessa, <br>Kael, Liora, Merek, Nyra, Orin,<br>(Pause here)<br>Pryce, Quill, Rhea, Soren, Talia, Ulric, Vanna, Wren, Xander, Yara,<br>Ziven, Alric, Brisa, Cato, Delia, Eamon, Freya, Galen, Hilda, Isen,<br>Joran, Kiera, Lucan, Mira, Nolen, Ophra, Perrin, Quinlan, Riven, Selah,<br>Torin, Una, Veska, Wyeth, Zora<br><br>What is the 25th name in the list?<br>Answer with only the name.</pre><p><strong>Correct Answer</strong></p><pre>Yara</pre><p>Without prompt repetition, Gemini 2.0 Flash Lite gave a wrong answer. The error was usually an off-by-one mistake. With prompt repetition, the answer became stable and correct.</p><p>The screenshots below show example outputs from Vertex AI Studio Chat. They illustrate how the answer changes with and without prompt repetition. For consistency, I set the temperature to 0 in all experiments.<br>This eliminates randomness in the output, so any difference comes from the prompt itself.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PG6grc7su3cviKIZIW3Rpw.png" /><figcaption>w/o prompt repetition</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7Pl7QM20DJFopUi0_WljLg.png" /><figcaption>w/ prompt repetition</figcaption></figure><p><strong>Reproduction Was Possible, but Not Always Easy</strong></p><p>I could reproduce the effect in several cases. However, in many other cases:</p><ul><li>the model already gave the correct answer</li><li>repetition did not change the result</li></ul><p>This is especially true for recent reasoning models.</p><p>This matches the paper’s assumption. The paper focuses on non-reasoning behavior, which is becoming less common. In that sense, the difficulty of reproduction is also an important observation.</p><h3><strong>What I Found Useful in This Paper</strong></h3><p>While the effect of prompt repetition is limited for many recent models,<br>I still found this paper useful.</p><p>In particular, it helped me notice a few points:</p><ul><li>the method is extremely simple</li><li>it does not introduce any obvious downside</li><li>it provides a clear example of how attention-related errors can happen in LLMs</li></ul><p>Prompt repetition is not meant to replace reasoning models. Instead, it works as a reminder that small changes in prompt design can sometimes improve model behavior in simple but meaningful ways.</p><h3>Conclusion</h3><p>This post looked at the paper “Prompt Repetition Improves Non-Reasoning LLMs” and my attempt to reproduce some of its results.</p><p>Through this process, I learned more about:</p><ul><li>how non-reasoning models can fail in position-based tasks</li><li>why off-by-one errors are common in such cases</li><li>how simple prompt design can sometimes reduce these errors</li></ul><p>Even today, this perspective is helpful when thinking about how LLM outputs are influenced by attention and prompt structure.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=55e94888b565" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Becoming AI‑Native at Mercari: Group Strategy and a US Case Study]]></title>
            <link>https://medium.com/mercari-engineering/becoming-ai-native-at-mercari-group-strategy-and-a-us-case-study-fda4a3ee5877?source=rss-760f57c4d961------2</link>
            <guid isPermaLink="false">https://medium.com/p/fda4a3ee5877</guid>
            <category><![CDATA[test-automation]]></category>
            <category><![CDATA[engineering]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Takuma Yamaguchi (Kumon)]]></dc:creator>
            <pubDate>Thu, 11 Dec 2025 00:36:07 GMT</pubDate>
            <atom:updated>2025-12-11T00:36:07.002Z</atom:updated>
            <content:encoded><![CDATA[<h4>How we’re transforming our products, culture, and ways of working with AI</h4><p>We at Mercari US Engineering previously shifted to publishing on our corporate site, but to once again share our technological advancements and engineering culture more widely and quickly with the global community, we’re returning to this blog.</p><p>At the Group level, we are embedding AI into product development and operations to improve velocity, quality, and customer experience. With this post, we aim to introduce our Mercari Group’s transformation toward becoming AI-Native, highlight the US business’s strategic positioning, and showcase a recent contribution from the US team at Mercari GEARS 2025.</p><p>We first outline the Group’s AI‑Native strategy, then show how Mercari US applies it through an end‑to‑end testing initiative.</p><h3>Mercari Group’s AI-Native Transformation</h3><p>This transformation is already producing significant results Group-wide:</p><ul><li><strong>Engineering Output:</strong> We achieved a dramatic 64% year-over-year increase in output per engineer involved in development.</li><li><strong>AI Adoption:</strong> 95% of Mercari employees are already using AI tools.</li><li><strong>Code Generation:</strong> 70% of code generated for product development involves AI.</li></ul><p>We see this is an opportunity for exponential growth, aiming for 10x or 100x gains, ultimately believing that AI will “<em>unleash us from the bottlenecks and resource limitations that previously held us back</em>.”</p><p><em>(Source: </em><a href="https://careers.mercari.com/en/mercan/articles/53674/"><em>“Back to Startup” and “AI-Native” — The Next Chapter in Mercari’s Journey at 12 Years</em></a><em>)</em></p><h3>AI Strategy and Product Innovation</h3><p>The Group’s strategy focuses on transforming core processes and enhancing user experience and platform reliability:</p><p><strong>Product Experience:</strong> Our core vision is achieving lower friction for users listing or purchasing items. For example, in Japan, we introduced AI Listing, which automatically generates item descriptions from uploaded photos. We also leverage image recognition to suggest optimal categories and prices, simplifying the entire listing process.</p><p><strong>Platform Security:</strong> To manage the new risks associated with generative AI/LLM technology, Mercari formed an AI security team in May 2025. This specialized team is dedicated to handling issues such as those outlined in frameworks like the OWASP 2025 Top 10 Risks for Generative AI. <em>(Source: </em><a href="https://careers.mercari.com/en/mercan/articles/55843/"><em>How Mercari’s AI Security Team is Securing AI Native</em></a><em>)</em></p><p>These initiatives embody our AI-Native philosophy where every improvement, from user experience to infrastructure, leverages AI at its core.</p><h3>Mercari US: Building a Hassle-Free Marketplace</h3><p>At Mercari US, we apply the Group’s AI‑Native principles to improve unit economics and customer experience. We translate these principles into day‑to‑day product decisions and operational improvements for sustainable growth in the US market.</p><p>Our core mission in the US is: <strong>To build the go-to marketplace for hassle-free selling and discovering deals</strong>.</p><p>To realize sustainable growth, our strategy focuses on:</p><ul><li>Enhancing the product’s core experience.</li><li>Using AI to innovate our UI/UX.</li><li>Pursuing category‑specific strategies to better serve distinct buyer and seller needs.</li></ul><h3>Mercari US at Mercari GEARS 2025</h3><p><a href="https://gears.mercari.com/en">Mercari GEARS 2025</a>, our Group’s technical conference, recently took place in Japan. The event showcased our technology, organization, and culture — including the evolution of our AI-Native initiatives.</p><p>At the event, <a href="https://gleb.dev/">Gleb Bahmutov</a> from the US team delivered a presentation titled <em>“</em><strong><em>Running 1000 End-to-End Web Tests Daily</em></strong><em>.”</em> He shared how Mercari US scaled its end-to-end testing pipeline to run over thousands of E2E tests efficiently per day by parallelizing workloads, tagging and selectively running tests, and even using AI to help determine which tests to execute.</p><p>This approach not only accelerated our release cycle but also demonstrated how AI and automation can drive smarter, faster, and more reliable development workflows ; an embodiment of our AI-Native mindset in action.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/850/1*0HmkY96KDlHJemE2jGDyeA.png" /></figure><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fspeakerdeck.com%2Fplayer%2Fe8ee4640916b47ab982adff6fb7667bc&amp;display_name=Speaker+Deck&amp;url=https%3A%2F%2Fspeakerdeck.com%2Fmercari%2Fmercari-gears-2025-running-1000-end-to-end-web-tests-daily&amp;image=https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fe8ee4640916b47ab982adff6fb7667bc%2Fslide_0.jpg%3F37382355&amp;type=text%2Fhtml&amp;schema=speakerdeck" width="710" height="399" frameborder="0" scrolling="no"><a href="https://medium.com/media/9e06889db92efeba189801ec686a008c/href">https://medium.com/media/9e06889db92efeba189801ec686a008c/href</a></iframe><h3>Our Commitment to the AI-Native Future</h3><p>The shift to AI-Native means moving towards an exciting future where AI becomes deeply integrated into our daily work.</p><p>The challenge ahead isn’t just about using AI ; it’s about shifting how we think and work. We need to stay curious, take on new challenges, and not be limited by what we’ve already built.</p><p>We will continue to share outcomes and methods as we scale these practices.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fda4a3ee5877" width="1" height="1" alt=""><hr><p><a href="https://medium.com/mercari-engineering/becoming-ai-native-at-mercari-group-strategy-and-a-us-case-study-fda4a3ee5877">Becoming AI‑Native at Mercari: Group Strategy and a US Case Study</a> was originally published in <a href="https://medium.com/mercari-engineering">Making Mercari</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[From Transformers to Titans: A Look at the MIRAS Framework]]></title>
            <link>https://medium.com/@kumon/from-transformers-to-titans-a-look-at-the-miras-framework-72c18c6a44e9?source=rss-760f57c4d961------2</link>
            <guid isPermaLink="false">https://medium.com/p/72c18c6a44e9</guid>
            <category><![CDATA[llm]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[large-language-models]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[transformers]]></category>
            <dc:creator><![CDATA[Takuma Yamaguchi (Kumon)]]></dc:creator>
            <pubDate>Tue, 09 Dec 2025 09:28:27 GMT</pubDate>
            <atom:updated>2025-12-09T09:28:27.603Z</atom:updated>
            <content:encoded><![CDATA[<h4>Notes on long-term memory, test-time learning, and the future of LLMs</h4><p>It has been quite a while since I last wrote anything here. I wanted to share something that caught my attention recently. Google recently released new work on Titans and a related framework called MIRAS. These ideas introduce different ways of thinking about long-term memory and test-time learning in language models. This article provides a simple overview of the concepts behind both Titans and MIRAS, and how they relate to the broader discussion about handling very large contexts.</p><h3>The Transformer’s Wall: Quadratic Complexity</h3><p>The Transformer architecture built most of the modern AI boom. GPT models, Llama, Claude, and many others rely on it. At the same time the Transformer has a clear limitation. Its computation and memory usage grow quadratically with the length of the input.</p><h3>Why this happens</h3><p>Attention compares every new token with all previous tokens.<br> If the sequence becomes twice as long, computation becomes four times heavier. If the sequence grows ten times longer, cost becomes one hundred times higher.</p><p>The KV Cache also grows in the same pattern. When the context window goes beyond one million tokens, GPU memory usage increases rapidly and eventually becomes unsustainable.</p><p>This problem encouraged researchers to search for alternatives. For more details, see <a href="https://arxiv.org/abs/1706.03762"><em>“Attention Is All You Need”</em> (Vaswani et al., 2017)</a>.</p><h3>Linear-Time Models: Hawk, Griffin, and Mamba</h3><p>To move past the quadratic wall, the field explored models whose computation grows only in a linear way. These models compress past information into a fixed state instead of keeping everything around.</p><p>Examples include:</p><ul><li><a href="https://arxiv.org/abs/2312.00752"><strong>Mamba (Gu and Dao, 2023):</strong></a><strong><br></strong>A linear state-space model that selectively keeps important information.</li><li><a href="https://arxiv.org/abs/2402.19427"><strong>Hawk &amp; Griffin (De et al., 2024):</strong></a><strong><br></strong>Two related models introduced in the same paper. Hawk provides a stable recurrent architecture, and Griffin extends it by combining recurrence with local attention.</li></ul><p>These models are fast and efficient. They can handle long sequences better than Transformers. However, they have a different limitation. Compressing everything into a fixed-size state eventually causes information loss. No matter how good the compression is, a single vector is not enough for very long contexts.</p><h3>Titans: When Memory Becomes Learning</h3><p>Titans takes a different approach. Instead of storing memory as data, Titans treats memory as a form of learning during inference.</p><p>The key idea appears in <a href="https://arxiv.org/abs/2501.00663"><em>“Titans: Learning to Memorize at Test Time”</em> (Behrouz et al., 2025)</a>. Titans introduces a module called Neural Memory. This is a small neural network that updates its weights while the model is reading input.</p><h3>How this works</h3><p>During inference Titans performs the following loop:</p><ol><li>It reads a segment of input.</li><li>It measures how surprising that segment is.</li><li>It updates Neural Memory with gradient descent.</li></ol><p>Only the Neural Memory is updated, while the rest of the model weights stay the same. Because of this design Titans can internalize information without increasing memory usage. This makes extremely long contexts more manageable.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Y5HwsZA3T-Nf_FweO7-0gA.png" /></figure><h3>MIRAS: A Unified Memory Framework</h3><p>After learning about Titans, I started to wonder why updating memory at test time makes sense in the first place. The answer appears in the MIRAS framework published in <a href="https://arxiv.org/abs/2504.13173"><em>“It’s All Connected: A Journey Through Test-Time Memorization, Attentional Bias, Retention, and Online Optimization”</em> (Behrouz et al., 2025)</a>.</p><p>MIRAS offers a unified way to understand memory in Transformers, RNNs, SSMs, and Titans. It connects several ideas such as associative memory, test-time updates, retention, and optimization.</p><h3>The MIRAS perspective</h3><p>MIRAS suggests that memory is better viewed as an optimization process.<br> In this perspective:</p><ul><li>memorization is parameter adjustment</li><li>forgetting is regularization</li><li>recall is applying the adjusted parameters</li><li>surprise is the size of the gradient</li></ul><p>With this view Titans becomes a natural extension of previous models. Instead of storing past information as data, Titans stores it by performing small optimization steps.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*poFgjaJf3WWu5tshi9rlEw.png" /></figure><h3>Why Titans and MIRAS Matter</h3><p>If I try to explain this in everyday language:</p><ul><li>The Transformer keeps every book on the desk to remember things.</li><li>Linear models like Mamba or Griffin take short notes in a notebook.</li><li>Titans actually learns the material while reading.</li></ul><p>It is not only about efficiency. It is about giving AI the ability to adapt within a session. Titans can keep long-term memory without increasing context length. MIRAS explains why this behavior is consistent with broader ideas in machine learning.</p><p>This combination feels like a shift from static models to models that learn continuously.</p><h3>Closing Notes</h3><p>Titans and the MIRAS framework present a set of ideas for handling long-term memory and test-time learning in language models. Titans focuses on updating only its memory module during inference, and MIRAS offers a unified way to think about memory, retention, and optimization across different architectures.</p><p>These approaches do not define the future of model design, but they suggest possible directions for systems that work with increasingly large contexts. It is interesting to consider how ideas like neural memory and test-time updates might influence future developments in long-context modeling.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=72c18c6a44e9" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Instant NeRF on Google Compute Engine via Chrome Remote Desktop]]></title>
            <link>https://medium.com/@kumon/instant-nerf-on-google-compute-engine-via-chrome-remote-desktop-eee4fd98df56?source=rss-760f57c4d961------2</link>
            <guid isPermaLink="false">https://medium.com/p/eee4fd98df56</guid>
            <category><![CDATA[colmap]]></category>
            <category><![CDATA[nerf]]></category>
            <category><![CDATA[remote-desktop]]></category>
            <category><![CDATA[3d-reconstruction]]></category>
            <category><![CDATA[neural-networks]]></category>
            <dc:creator><![CDATA[Takuma Yamaguchi (Kumon)]]></dc:creator>
            <pubDate>Sun, 14 Aug 2022 11:47:15 GMT</pubDate>
            <atom:updated>2022-08-18T09:25:50.396Z</atom:updated>
            <content:encoded><![CDATA[<h4>Rendering a 3D NERF Toy Gun with Neural Radiance Fields (NeRF) on a Google Cloud VM</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-tmjCFVb2m12BHPNSITGkA.png" /><figcaption>NERF Toy Gun Generated with Instant-NeRF</figcaption></figure><h3>Introduction</h3><p>Neural radiance field (NeRF) synthesizes novel views of complex scenes using a simple fully connected neural network based on a collection of 2D images.</p><p>The paper, <a href="https://arxiv.org/pdf/2003.08934.pdf">Representing Scenes as Neural Radiance Fields for View Synthesis</a>, was presented in ECCV 2020 and won best paper honorable mention. Their project web page is <a href="https://www.matthewtancik.com/nerf">https://www.matthewtancik.com/nerf</a>.</p><p>NeRF shows impressive view synthesis, but it’s slow, like 1 to 2 days to train for every single scene and tens of seconds to synthesize one frame on a single NVIDIA V100 GPU. So some studies have been conducted to reduce the computation times.</p><p>A SIGGRAPH 2022 paper, <a href="https://nvlabs.github.io/instant-ngp/assets/mueller2022instant.pdf">Instant Neural Graphics Primitives with a Multiresolution Hash Encoding</a>, has reduced the time for training and frame rendering significantly, like a few seconds for training and a few milliseconds for frame rendering. The dramatic improvement caught a lot of attention. Their project web page is <a href="https://nvlabs.github.io/instant-ngp/">https://nvlabs.github.io/instant-ngp/</a> and their GUI tool is also available in <a href="https://github.com/NVlabs/instant-ngp">https://github.com/NVlabs/instant-ngp</a>.</p><p>I got interested in using the instant-ngp/instant-nerf as it’s fast, but I didn’t have a development environment with GUI and GPUs on my local machine. So I built such an environment on Google Cloud/GCP.</p><p>It can run on <a href="https://colab.research.google.com/">Google Colab</a> and <a href="https://github.com/NVlabs/instant-ngp/blob/master/notebooks/instant_ngp.ipynb">an example notebook is available</a> in the repository, but using the GUI tool is fun and allows us to understand the behavior easily.</p><h3>Build a GUI environment on Google Cloud</h3><h4>Create a VM instance</h4><p>The first step to create a VM is to select a machine type. Building some packages requires a certain amount of RAM, so 4 CPUs with 26GB memory one is used. Additionally, a GPU is needed, so the cheapest one, NVIDIA T4, is selected. Even with T4, you don’t have to wait for a long time for training scenes.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/547/0*cBURMh_nX3nA0yze" /><figcaption>Machine Type Selection</figcaption></figure><p>As for machine image, Debian 10 based Deep Learning VM for TensorFlow Enterprise 2.9 with CUDA 11.3 is used. The simpler image, Debian 10 based Deep Learning VM with CUDA 11.0, should work, but I got some errors while I was trying the instant-ngp.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/575/0*Q-pDm2gPdib0RTMg" /><figcaption>Machine Image Selection</figcaption></figure><p>Using a preemptible VM, the hourly cost of the instance was $0.17 in us-central1.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/414/0*f6lKHn_w04LagGaD" /><figcaption>VM Instance Cost</figcaption></figure><h4>Setup a GUI environment</h4><p>When you ssh to the instance, you would see the message. Type y to install NVIDIA drivers automatically.</p><pre>This VM requires Nvidia drivers to function correctly. Installation takes ~1 minute.<br>Would you like to install the Nvidia driver? [y/n] y</pre><p><strong>Install chrome desktop: </strong>The next step is to install chrome remote desktop on the instance. Here is the official document, <a href="https://cloud.google.com/architecture/chrome-desktop-remote-on-compute-engine">https://cloud.google.com/architecture/chrome-desktop-remote-on-compute-engine</a></p><pre>sudo apt update<br>sudo apt install --assume-yes wget tasksel</pre><pre>wget <a href="https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb">https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb</a><br>sudo apt-get install --assume-yes ./chrome-remote-desktop_current_amd64.deb</pre><pre>sudo DEBIAN_FRONTEND=noninteractive apt install --assume-yes xfce4 desktop-base dbus-x11 xscreensaver</pre><pre>sudo bash -c &#39;echo &quot;exec /etc/X11/Xsession /usr/bin/xfce4-session&quot; &gt; /etc/chrome-remote-desktop-session&#39;</pre><pre>sudo systemctl disable lightdm.service</pre><p>Go to the remote desktop site, <a href="https://remotedesktop.google.com/headless">https://remotedesktop.google.com/headless</a>, from your local machine. Then, move to: Set up another computer &gt; Begin &gt; Next &gt; Authorize.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1013/0*wr9Cq7K6fDprtghI" /></figure><p>Copy the command for Debian Linux.</p><pre>DISPLAY= /opt/google/chrome-remote-desktop/start-host --code=&quot;xxxxxxxxxx&quot; --redirect-url=&quot;https://remotedesktop.google.com/_/oauthredirect&quot; --name=$(hostname)</pre><p>Paste the command onto the VM instance and enter your PIN.</p><p>On the remote access page, you will see your VM. Click the link and enter your PIN.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*P-xUEnDKH4ePBQfA" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*tfghWj81XlHq7IgJ" /></figure><h3>Setup Instant-NGP</h3><h4>Install Dependent Packages</h4><pre>sudo apt install -y \<br>    build-essential libatlas-base-dev libboost-filesystem-dev \<br>    libboost-graph-dev libboost-program-options-dev \<br>    libboost-system-dev libboost-test-dev libcgal-dev \<br>    libeigen3-dev libfreeimage-dev libgflags-dev libglew-dev \<br>    libglfw3-dev libgoogle-glog-dev libmetis-dev libomp-dev \<br>    libopenexr-dev libqt5opengl5-dev libsuitesparse-dev \<br>    libxcursor-dev libxi-dev libxinerama-dev qtbase5-dev</pre><p>Upgrade cmake</p><pre>sudo apt remove --purge cmake<br>pip install cmake<br>hash -r<br>cmake --version<br>cmake version 3.24.0</pre><h4>Install Vulkan</h4><p>Here is the official document, <a href="https://vulkan.lunarg.com/doc/sdk/1.3.216.0/linux/getting_started.html">https://vulkan.lunarg.com/doc/sdk/1.3.216.0/linux/getting_started.html</a>.</p><pre>cd ~<br>mkdir vulkan<br>cd vulkan</pre><pre>wget <a href="https://sdk.lunarg.com/sdk/download/latest/linux/vulkan-sdk.tar.gz">https://sdk.lunarg.com/sdk/download/latest/linux/vulkan-sdk.tar.gz</a><br>tar xf vulkan-sdk.tar.gz<br>source $(ls|grep 1.)/setup-env.sh</pre><p>Copy files to system directories</p><pre>sudo cp -r $VULKAN_SDK/include/vulkan/ /usr/local/include/<br>sudo cp -P $VULKAN_SDK/lib/libvulkan.so* /usr/local/lib/<br>sudo cp $VULKAN_SDK/lib/libVkLayer_*.so /usr/local/lib/<br>sudo mkdir -p /usr/local/share/vulkan/explicit_layer.d<br>sudo cp $VULKAN_SDK/etc/vulkan/explicit_layer.d/VkLayer_*.json /usr/local/share/vulkan/explicit_layer.d</pre><pre>sudo ldconfig # You can ignore some warnings for now</pre><h4>Build Instant-NGP</h4><pre>cd ~<br>git clone --recursive <a href="https://github.com/nvlabs/instant-ngp">https://github.com/nvlabs/instant-ngp</a><br>cd instant-ngp</pre><pre>cmake . -B build<br>cmake --build build --config RelWithDebInfo -j</pre><h4>Test Instant-NGP with the Fox Images</h4><p>On the remote desktop, you can run the instant-ngp for the fox images. You can see high resolution outputs by setting target FPS as 2.0.</p><pre>cd ~/instant-ngp<br>./build/testbed --scene data/nerf/fox</pre><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FIP1gjG9fFv4%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DIP1gjG9fFv4&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FIP1gjG9fFv4%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/1c98ca3e23e20b080342219cbdcf123c/href">https://medium.com/media/1c98ca3e23e20b080342219cbdcf123c/href</a></iframe><p>It works, but our goal is to render a 3D NERF toy gun or our images. NeRF requires camera poses of input images. As for the fox images, camera poses are included in the transforms.json file in the data/nerf/fox. The next section describes how to predict camera poses.</p><h3>Setup Instant-NGP for Any Images</h3><p><a href="https://colmap.github.io/">COLMAP</a> is a widely used general-purpose Structure-from-Motion (SfM) tool. We can predict camera poses with this tool.</p><h4>Install Ceres Solver</h4><p>COLMAP is depending on <a href="http://ceres-solver.org/">Ceres Solver</a>.</p><pre>cd ~<br>git clone --depth 1 -b 2.1.0 <a href="https://github.com/ceres-solver/ceres-solver.git">https://github.com/ceres-solver/ceres-solver.git</a></pre><pre>cd ceres-solver<br>mkdir build<br>cd build</pre><pre>cmake .. -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF<br>make -j<br>sudo make install</pre><h4>Install COLMAP</h4><pre>cd ~<br>git clone --depth 1 -b 3.7 <a href="https://github.com/colmap/colmap">https://github.com/colmap/colmap</a></pre><pre>cd colmap<br>mkdir build<br>cd build</pre><pre>cmake ..<br>make -j3  # updated to -j3 from -j as 26GB RAM is not enough<br>sudo make install</pre><pre>pip install opencv-python</pre><h4>Test Instant-NGP with the Fox Images From Scratch</h4><p>First, move or remove the original transforms.json</p><pre>cd ~/instant-ngp/data/nerf/fox</pre><pre># Move or remove transforms.json<br>mkdir backup<br>mv transforms.json backup/</pre><pre># Output directory<br>mkdir colmap_text</pre><p>Launch COLMAP via the remote desktop.</p><pre>colmap gui</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*sdvXrjIyfRpKRiAP" /><figcaption>COLMAP GUI</figcaption></figure><p>Create a new project through the menu, File &gt; New project</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/502/0*LcAko4hTJhp2JWFG" /></figure><ul><li>Extract feature points of the images withProcessing &gt; Feature extraction &gt; Extract</li><li>Match feature points with Processing &gt; Feature matching &gt; Run</li><li>Estimate camera poses withReconstruction &gt; Start reconstruction</li><li>Save files with File &gt; Export model as text. Select the colmap_text directory which is created while ago</li><li>Terminate COLMAP</li></ul><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FK0k_dkDRYsU&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DK0k_dkDRYsU&amp;image=http%3A%2F%2Fi.ytimg.com%2Fvi%2FK0k_dkDRYsU%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/6af408db5c732b4861169d8e8fc94bc8/href">https://medium.com/media/6af408db5c732b4861169d8e8fc94bc8/href</a></iframe><p>Generate transforms.json by running the following script</p><pre>cd ~/instant-ngp/data/nerf/fox<br>python ~/instant-ngp/scripts/colmap2nerf.py --colmap_matcher exhaustive --aabb_scale 4</pre><p>Run instang-ngp the same as before</p><pre>cd ~/instant-ngp<br>./build/testbed --scene data/nerf/fox</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*z7c2urAuMA3kpNCg" /><figcaption>Instant-NeRF with the Fox Images from Scratch</figcaption></figure><h3>Instant-NGP for Any Images</h3><h4>Conference Room</h4><p>Some datasets for NeRF are available from <a href="https://www.matthewtancik.com/nerf">the NeRF project page</a>. <a href="https://drive.google.com/drive/folders/128yBriW1IG_3NJ5Rp7APSTZsJqdJdfc1?usp=sharing">https://drive.google.com/drive/folders/128yBriW1IG_3NJ5Rp7APSTZsJqdJdfc1?usp=sharing</a>. Let’s use nerf_llff_data/room/images. The data consists of 41 images.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*z5AFpZbYVgFxamAmbYHXxQ.png" /><figcaption>Conference Room Images</figcaption></figure><p>Estimate camera poses with COLMAP. Save colmap outputs in ~instant-ngp/data/room/colmap_text.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*NjZ_VG0n7HRfTZSN" /><figcaption>Camera Pose Estimation for the Conference Room Images</figcaption></figure><p>Generate transforms.json</p><pre>cd ~/instant-ngp/data/room<br>python ~/instant-ngp/scripts/colmap2nerf.py --colmap_matcher exhaustive --aabb_scale 2</pre><p>Run instang-ngp</p><pre>cd ~/instant-ngp<br>./build/testbed --scene data/room</pre><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FeK0MKOS_5xA%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DeK0MKOS_5xA&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FeK0MKOS_5xA%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/bfa369dccaf15987c16d78fde1d1ecc6/href">https://medium.com/media/bfa369dccaf15987c16d78fde1d1ecc6/href</a></iframe><p>As we can see, impressively, the light reflection on the display and ambient occlusion are rendered very well.</p><h4>NERF Toy Gun</h4><p>The next target is a NERF toy gun. I borrowed it from my son and took 26 photos using my cellphone.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*EtR6n76CW2l-9VMi" /><figcaption>NERF Toy Gun Images Taken with a Cellphone</figcaption></figure><p>COLMAP result</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*j38xtNtJ0hmYRIzK" /></figure><p>Final result</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fz7KaUpcptIM%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dz7KaUpcptIM&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fz7KaUpcptIM%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/1e149040886075d53f0bd0f129c50e7c/href">https://medium.com/media/1e149040886075d53f0bd0f129c50e7c/href</a></iframe><p>The output is not perfect, but it’s still amazing as it’s generated based on only 26 images.</p><h3>Conclusion</h3><p>NeRF is an impressive technology to generate 3D scenes from a collection of 2D images. Instant-NGP / Instant-NeRF enables very fast model training and rendering novel views. It’s better to have a GUI development environment with a GPU to try it. Setting up a remote desktop environment allows cloud service users to enjoy NeRF easily.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=eee4fd98df56" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Similarity Search: ScaNN and 4-bit PQ]]></title>
            <link>https://medium.com/@kumon/similarity-search-scann-and-4-bit-pq-ab98766b32bd?source=rss-760f57c4d961------2</link>
            <guid isPermaLink="false">https://medium.com/p/ab98766b32bd</guid>
            <category><![CDATA[simd]]></category>
            <category><![CDATA[similarity-search]]></category>
            <category><![CDATA[google-cloud-platform]]></category>
            <category><![CDATA[lookup-table]]></category>
            <dc:creator><![CDATA[Takuma Yamaguchi (Kumon)]]></dc:creator>
            <pubDate>Fri, 17 Sep 2021 10:59:59 GMT</pubDate>
            <atom:updated>2021-09-21T05:58:16.713Z</atom:updated>
            <content:encoded><![CDATA[<h4>ScaNN is a vector similarity search algorithm. This blog post introduces the relationship between ScaNN and 4-bit PQ.</h4><h3>Introduction</h3><p>Around 1 year ago (2020), Google published a very impressive blog post and paper.</p><ul><li><a href="http://ai.googleblog.com/2020/07/announcing-scann-efficient-vector.html">Google AI Blog: Announcing ScaNN: Efficient Vector Similarity Search</a></li><li><a href="https://arxiv.org/abs/1908.10396">Guo et al., Accelerating Large-Scale Inference with Anisotropic Vector Quantization. ICML 2020</a></li></ul><p>Scalable Nearest Neighbors (ScaNN) is a vector similarity search algorithm and it is used in <a href="https://cloud.google.com/vertex-ai/docs/matching-engine/overview">Vertex Matching Engine (GCP)</a>, which is a managed similarity search service. The vector similarity search field has been studied for many years, so usually the latest state-of-the-art algorithm is slightly better than the previous one.</p><p>However, in this case, the ScaNN achieved significantly different results. The QPS is almost double compared to the following algorithm.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*gBGqJ2rLGkaB0Oq7.png" /><figcaption><a href="https://ai.googleblog.com/2020/07/announcing-scann-efficient-vector.html">https://ai.googleblog.com/2020/07/announcing-scann-efficient-vector.html</a></figcaption></figure><h3>Maximum Inner Product Search (MIPS)</h3><p>The similarity search is to find the most similar vector to a given query vector. There are some ways to calculate similarities, like inner product, cosine similarity and Euclidean distance.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*g6iOPv68L32kr-vRpF4HHg.png" /></figure><p>Intuitively, vector <strong><em>a </em></strong>or<strong><em> b</em></strong> is the closest or similar to the query vector <strong><em>q </em></strong>in the figure above, but vector <strong><em>c</em></strong> is the similar vector based on inner product maximization. ScaNN was developed for MIPS</p><h3>Vector Quantization in ScaNN</h3><p>There are 2 major findings in the ScaNN vector quantization.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*N9RIfB5H3hzcHFHnylYV9A.png" /><figcaption><a href="https://arxiv.org/pdf/1908.10396.pdf">https://arxiv.org/pdf/1908.10396.pdf</a></figcaption></figure><p><strong>Score Aware Loss:</strong> Not all pairs of <strong><em>q</em></strong> and <strong><em>x</em></strong> are equally important. For <strong><em>x</em></strong>, it is more important to accurately quantize the inner product of <em>&lt;</em><strong><em>q</em></strong><em>1, </em><strong><em>x</em></strong><em>&gt;</em> than <em>&lt;</em><strong><em>q</em></strong><em>2, </em><strong><em>x</em></strong><em>&gt; or &lt;</em><strong><em>q</em></strong><em>3, </em><strong><em>x</em></strong><em>&gt;.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/0*cOTJnXOORGBsKqox.png" /><figcaption><a href="https://ai.googleblog.com/2020/07/announcing-scann-efficient-vector.html">https://ai.googleblog.com/2020/07/announcing-scann-efficient-vector.html</a></figcaption></figure><p><strong>Anisotropic Loss:</strong> Quantization error can be decomposed to parallel component and orthogonal component. And the parallel component penalizes more than the orthogonal component.</p><h3>PQ with Score Aware Loss and Anisotropic Loss</h3><p>Standard vector quantization is not very practical for high dimensional or large scale databases. <a href="https://hal.inria.fr/inria-00514462v2/document">PQ (product quantization)</a> is a widely used scalable vector quantization method.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*o1Ge9l4WDZyBOr06iVB2UA.png" /><figcaption><a href="https://speakerdeck.com/matsui_528/cvpr20-tutorial-billion-scale-approximate-nearest-neighbor-search?slide=79">https://speakerdeck.com/matsui_528/cvpr20-tutorial-billion-scale-approximate-nearest-neighbor-search?slide=79</a></figcaption></figure><p>In the standard vector quantization, a code book is generated from original vectors. On the other hand, PQ divides vectors into multiple subspaces and for each subspace a code book is generated. This approach allows to handle high dimensional vectors and large scale databases.</p><p>ScaNN also uses PQ, so we can say ScaNN is that PQ with score aware loss and anisotropic loss.</p><h3>Why so fast?</h3><p>I had a big question why ScaNN is very fast. Using score aware loss and anisotropic loss doesn’t reduce computational complexity. The reason was not in <a href="https://ai.googleblog.com/2020/07/announcing-scann-efficient-vector.html">the blog post </a>or <a href="https://arxiv.org/pdf/1908.10396.pdf">the paper</a>. The paper simply said “SIMD based ADC”. SIMD is commonly used in the similarity search field and ADC is asymmetric distance computation, which is described in <a href="https://hal.inria.fr/inria-00514462v2/document">the PQ paper.</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*5E81SKL6RG5y2Uew" /><figcaption><a href="https://github.com/google-research/google-research/blob/master/scann/scann/hashes/internal/lut16_avx512.inc">https://github.com/google-research/google-research/blob/master/scann/scann/hashes/internal/lut16_avx512.inc</a></figcaption></figure><p>The answer was in <a href="https://github.com/google-research/google-research/tree/master/scann">the code</a>. SIMD in-register lookup tables is implemented.</p><h3>SIMD in-register lookup tables</h3><p>Using lookup tables for distance computation with PQ is not special, but since the table size cannot be fit to registers (128-bit — 512-bit), realizing in-register lookup tables is not straightforward. I found a paper, “<a href="https://arxiv.org/pdf/1704.07355.pdf">Andre et al., Accelerated Nearest Neighbor Search with Qick ADC</a>”, which addresses the issue.</p><p>In PQ, 8-bit sub-quantizer is widely used and distances are represented as 32-bit float, so the table size is 2⁸ * 32 = 8,192 bits. To minimize the table size, 4-bit sub-quantizer and 8-bit integers for distance representations are used in Quick ADC. As a result, the table size became 2⁴ * 8 = 128 bits. It allows to run the lookup tables in SIMD registers.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-dhRJOaXrMy6T2HL0XJAPQ.png" /><figcaption><a href="https://arxiv.org/pdf/1704.07355.pdf">https://arxiv.org/pdf/1704.07355.pdf</a></figcaption></figure><p>Register access is super faster than main memory access, like more than 10 times, and also 16 lookups are performed in 1 cycle. That’s why Quick ADC is quick. Since the sub quantizer is 4 bits, it’s also called 4-bit PQ.</p><h3>Benchmarks</h3><p>Some benchmark results for 4-bit PQ and ScaNN are available in <a href="https://github.com/facebookresearch/faiss/wiki/Indexing-1M-vectors#4-bit-pq-comparison-with-scann">the Faiss wiki</a>. <a href="https://github.com/facebookresearch/faiss">Faiss</a> is a similarity search library, which is developed and maintained by Facebook Research.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/891/0*ZL8jLBlyfcjvmTmK.png" /><figcaption><a href="https://github.com/facebookresearch/faiss/wiki/Indexing-1M-vectors#results-on-sift1m">https://github.com/facebookresearch/faiss/wiki/Indexing-1M-vectors#results-on-sift1m</a></figcaption></figure><p>The reorder means that instead of querying the top 10 results in one shot, the top 100 vectors are retrieved and reordered with more accurate distance computation. Judging from these results, 4-bit PQ looks better than ScaNN.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/891/0*SYrK2ABUH0VWA-Pd.png" /><figcaption><a href="https://github.com/facebookresearch/faiss/wiki/Indexing-1M-vectors#results-on-glove">https://github.com/facebookresearch/faiss/wiki/Indexing-1M-vectors#results-on-glove</a></figcaption></figure><p>As for Glove dataset, ScaNN performs better than 4-bit PQ. The dataset is used in the ScaNN paper, so the anisotropic loss quantization works for this dataset. Interestingly, with the reordering, the performance is almost the same.</p><h3>Conclusion</h3><p>ScaNN is a vector quantization algorithm for maximum inner product search. The algorithm is a combination of product quantization, score aware loss and anisotropic loss. To accelerate the search speed, ScaNN is implemented with SIMD in-register lookup tables. The performance difference between ScaNN and 4-bit PQ is limited, but a similarity search engine as managed service is super beneficial for many use cases.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ab98766b32bd" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[CVPR 2020 Tutorial “Image Retrieval in the Wild”]]></title>
            <link>https://medium.com/mercari-engineering/cvpr-2020-tutorial-image-retrieval-in-the-wild-e66e07fc54ed?source=rss-760f57c4d961------2</link>
            <guid isPermaLink="false">https://medium.com/p/e66e07fc54ed</guid>
            <category><![CDATA[cvpr]]></category>
            <category><![CDATA[similarity-search]]></category>
            <category><![CDATA[ann]]></category>
            <category><![CDATA[visual-search]]></category>
            <category><![CDATA[image-retrieval]]></category>
            <dc:creator><![CDATA[Takuma Yamaguchi (Kumon)]]></dc:creator>
            <pubDate>Tue, 23 Jun 2020 00:16:10 GMT</pubDate>
            <atom:updated>2020-06-23T00:16:10.204Z</atom:updated>
            <content:encoded><![CDATA[<h4>The IEEE Conference on Computer Vision and Pattern Recognition (CVPR) is one of the world’s top conferences in computer vision. We organized a half day tutorial “Image Retrieval in the Wild” at CVPR 2020.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*lUtOEacNS6TQ8fgb" /></figure><h3>Introduction</h3><p>Content-based image retrieval is one of the most essential techniques used for interacting with visual collections. Significant progress has been made in the last decade by technological advances in deep learning and similarity search. Although commercial applications using the technologies are increasing, there has not been enough discussion about how to build a practical and a large-scale visual search system.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*pvFvqxW_idHUSvmG" /><figcaption>The organizers of this tutorial</figcaption></figure><p>This tutorial covered several important components of building an image retrieval system for real-world applications. The organizers were <a href="http://yusukematsui.me/">Yusuke Matsui (The University of Tokyo)</a>, <a href="https://wangzwhu.github.io/home/">Zheng Wang (National Institute of Informatics)</a> and <a href="https://www.linkedin.com/in/kumon-takuma-yamaguchi/">Takuma Yamaguchi (Mercari, Inc)</a>.</p><p>All the presentation slides and videos are available at our project site <a href="https://matsui528.github.io/cvpr2020_tutorial_retrieval/">https://matsui528.github.io/cvpr2020_tutorial_retrieval/</a>.</p><h3>Sessions</h3><h4>Billion-scale Approximate Nearest Neighbor Search</h4><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FSKrHs03i08Q%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DSKrHs03i08Q&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FSKrHs03i08Q%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/27d5ef99656642892fffbcf3ddb3f2bb/href">https://medium.com/media/27d5ef99656642892fffbcf3ddb3f2bb/href</a></iframe><p><a href="http://yusukematsui.me/"><strong><em>Yusuke Matsui</em></strong></a> introduced state-of-the-art algorithms of approximate nearest neighbor search. Since many algorithms and libraries have been proposed and published in the field and design of the search algorithm is critical for application performance, it’s a time consuming task to choose one of them. To make it easy, a practical guide to select the best algorithm and similarity search library for each given task, which was depending on database size and vector dimensions, was provided.</p><h4>A Large-scale Visual Search System in the C2C Marketplace App Mercari</h4><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F6nLnUAw23u4%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D6nLnUAw23u4&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F6nLnUAw23u4%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/63683dd06426b86f5d09bcdc6b3e71ac/href">https://medium.com/media/63683dd06426b86f5d09bcdc6b3e71ac/href</a></iframe><p><a href="https://www.linkedin.com/in/kumon-takuma-yamaguchi/"><strong><em>Takuma Yamaguchi</em></strong></a><strong><em> </em></strong>presented an example of how such an algorithm was utilized in an online C2C marketplace app, which has over one billion listings and over 16 million monthly active users. He showed how to productionize a highly scalable and available visual search system on Kubernetes for the app. Additionally, since the general deep learning based feature extraction didn’t work very well due to a C2C marketplace specific issue, a technique to handle the issue was introduced.</p><h4>Beyond Intra-modality Discrepancy: A Survey of Heterogeneous Person Re-identification</h4><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FFYxDSP5rEL0%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DFYxDSP5rEL0&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FFYxDSP5rEL0%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/1ace4c328e97782f0983e095f9c85297/href">https://medium.com/media/1ace4c328e97782f0983e095f9c85297/href</a></iframe><p><a href="https://wangzwhu.github.io/home/"><strong><em>Zheng Wang</em></strong></a> conducted a systematic review for heterogeneous person re-identification, where the inter-modality discrepancy works as the main challenge. The survey covered four cross-modality application scenarios: low-resolution (LR), infrared (IR), sketch, and text. It also included the latest topics which were presented in the conference CVPR 2020. Additionally, the available datasets in each category were introduced and the representative approaches were compared and summarized in his talk.</p><h4>Live-coding Demo to Implement an Image Search Engine from Scratch</h4><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FM0Y9_vBmYXU%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DM0Y9_vBmYXU&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FM0Y9_vBmYXU%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/7d52d6c762012ea96487c297b634043c/href">https://medium.com/media/7d52d6c762012ea96487c297b634043c/href</a></iframe><p><a href="http://yusukematsui.me/"><strong><em>Yusuke Matsui</em></strong></a> provided a live-coding demo to implement an image search engine from scratch within 30 mins without copying and pasting the code. The only 100 lines of Python code realized an image search web API by leveraging a pre-trained deep learning model. It will be very useful for those who are trying to build their own image search system for the first time.</p><h3>Conclusion</h3><p>The CVPR 2020 was a virtual conference this year. All of us organized the tutorial from Japan and it started at 12:30am. The time was a minor matter. We had more concerns before the tutorial, like network/machine troubles, microphone quality, the number of participants, and so on.</p><p>Fortunately, the tutorial finished successfully. We had many participants, lively discussions, and no network/machine troubles. Furthermore, we were very happy that some participants were satisfied with the contents.</p><p>Thank you to all the participants and the CVPR 2020 organizers.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e66e07fc54ed" width="1" height="1" alt=""><hr><p><a href="https://medium.com/mercari-engineering/cvpr-2020-tutorial-image-retrieval-in-the-wild-e66e07fc54ed">CVPR 2020 Tutorial “Image Retrieval in the Wild”</a> was originally published in <a href="https://medium.com/mercari-engineering">Making Mercari</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>