<?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 Prutha on Medium]]></title>
        <description><![CDATA[Stories by Prutha on Medium]]></description>
        <link>https://medium.com/@prutha1411?source=rss-2dc0c262256------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*RzzDJvor3QMPyOYj</url>
            <title>Stories by Prutha on Medium</title>
            <link>https://medium.com/@prutha1411?source=rss-2dc0c262256------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 19 Oct 2026 04:09:10 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@prutha1411/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[What 150 People Told Me About Thinking With AI]]></title>
            <link>https://medium.com/@prutha1411/what-150-people-told-me-about-thinking-with-ai-750ab01d94ab?source=rss-2dc0c262256------2</link>
            <guid isPermaLink="false">https://medium.com/p/750ab01d94ab</guid>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[writing]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[medium-day-2026]]></category>
            <category><![CDATA[medium]]></category>
            <dc:creator><![CDATA[Prutha]]></dc:creator>
            <pubDate>Tue, 06 Oct 2026 05:48:47 GMT</pubDate>
            <atom:updated>2026-10-06T05:48:47.021Z</atom:updated>
            <content:encoded><![CDATA[<p>Notes from co-hosting a Medium Day 2026 session on cognitive offloading</p><p>On September 18, Medium held <a href="https://medium.com/mediumday">Medium Day 2026</a>, its yearly celebration of writing and ideas. It was a free, day-long event on Zoom with around a hundred sessions. I co-hosted one of them, <em>AI: Hype, Reality &amp; Writing</em>, with Grace Gong and Mark Dranias.</p><p>My ten minutes were about <em>cognitive offloading</em>: what happens to our thinking when we hand more of it to AI.</p><h3>The pair of numbers</h3><p>I built my part around one study. In a <a href="https://www.pnas.org/doi/10.1073/pnas.2422633122">Wharton-led experiment published in PNAS</a>, nearly a thousand high-school students practised maths with a chatbot. Their practice scores rose 48%. Then the chatbot was taken away, and they scored 17% worse than students who had never used it.</p><p>A second group got a version that gave hints instead of answers. They kept the gain and avoided the drop. Same model, same students, opposite result. The difference wasn’t how much AI they used. It was whether they tried first.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*aKAJmz5_HmVPXJ3AiWOvOQ.png" /><figcaption>Slide from our presentation deck</figcaption></figure><h3>What the room said</h3><p>I asked everyone: <em>What’s one thing you’ve stopped doing yourself since AI?</em></p><p>The biggest answers were coding, summarising, research and proofreading. “Nothing” was just as big. And scattered around them were “thinking,” “overthinking” and “thinking in my own head.” Almost nothing on the screen was typing work. Nearly all of it was thinking work.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IquS3umBSDL4eptFAwdGQQ.png" /><figcaption>Answers from participants</figcaption></figure><h3>What I noticed</h3><p><strong>Everyone is using AI.</strong> In one short hour I met 150+ people from tech, linguistics, medicine, business, education, ecology and the human sciences. This isn’t just a conversation among tech folks anymore.</p><p><strong>Everyone is worried about reliability.</strong> Are the guardrails enough? Do we need humans in the loop? Underneath all of it was one question: how do we decide when to trust it?</p><p><strong>The environmental cost barely comes up.</strong> We talk a lot about what AI does to our work, and very little about its carbon footprint or what it does to the world around us.</p><p><strong>The fear has turned practical.</strong> People love the accessibility AI brings. The dread of the unknown has mostly given way to a working relationship.</p><h3>What I’m taking home</h3><p>The rule I offered the room is the one I’m keeping for myself: delegate the output, not the first attempt. If a piece of writing is just a deliverable, let AI help. If I’m writing to find out what I think, the first draft <strong>has</strong> to be mine.</p><p>I closed the session with a question, and I’ll leave it with you too: <em>When did you last write something and not know what you thought until you’d finished?</em></p><p>Thank you to Grace, Mark, everyone who joined, and the Medium team for having us.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=750ab01d94ab" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Ontologies Meet Graph Databases: Designing a Neo4j Schema the Formal Way]]></title>
            <link>https://medium.com/@prutha1411/ontologies-meet-graph-databases-designing-a-neo4j-schema-the-formal-way-9268568c2d6c?source=rss-2dc0c262256------2</link>
            <guid isPermaLink="false">https://medium.com/p/9268568c2d6c</guid>
            <category><![CDATA[llm]]></category>
            <category><![CDATA[large-language-models]]></category>
            <category><![CDATA[ontology]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[semantic-search]]></category>
            <dc:creator><![CDATA[Prutha]]></dc:creator>
            <pubDate>Sat, 11 Jul 2026 11:41:06 GMT</pubDate>
            <atom:updated>2026-07-11T11:41:06.307Z</atom:updated>
            <content:encoded><![CDATA[<p>Most people who reach for a graph database start the same way: sketch some node labels on a whiteboard, pick relationship names that feel right, and start writing MERGE statements. That works, right up until three months in, when you and a teammate have quietly invented two different words for the same relationship, nobody remembers whether RATED points from person to book or book to person, and there&#39;s no way to check.</p><p>There’s an older, more formal discipline for exactly this problem: ontologies, from the semantic web world. They sound academic, and the tooling around them (OWL, RDF, SPARQL, Protege) can feel like overkill for a side project. But the core idea — write down your domain’s vocabulary before you build the database, in a form a machine can actually check — is one of the more underrated moves you can make before designing a graph schema. This post walks through what an ontology actually is, how to build a small one, and how it translates cleanly into a Neo4j property graph.</p><h3>What an ontology actually is</h3><p>An ontology is a formal specification of a domain: the categories of things that exist in it (classes), how they relate to each other (properties), and the constraints those relationships obey. It’s built on two W3C standards:</p><ul><li><strong>RDF</strong> (Resource Description Framework) — everything is a triple: subject–predicate–object. Book1 – writtenBy – Author7.</li><li><strong>OWL</strong> (Web Ontology Language) — a layer on top of RDF for declaring classes, property types, domains/ranges, and logical characteristics (symmetric, transitive, functional, and so on).</li></ul><p>Two halves matter in practice:</p><ul><li><strong>TBox</strong> (terminological box) — the schema. “A Book can be writtenBy an Author.&quot; Defined once, changes rarely.</li><li><strong>ABox</strong> (assertional box) — the instances. “The Left Hand of Darkness is a Book, writtenBy Ursula K. Le Guin.&quot; Grows with every record you load.</li></ul><p>This is the same split as “schema vs. data” in any database — the difference is that OWL gives the schema itself a formal, machine-checkable meaning, not just a set of table definitions you have to remember the intent of.</p><h3>Why bother, concretely</h3><ol><li><strong>The vocabulary is explicit and typed.</strong> writtenBy isn&#39;t a column name you have to remember the semantics of — it&#39;s a declared property with a domain (Book) and range (Author) that any tool can introspect.</li><li><strong>It’s checkable, not just documented.</strong> Run an OWL reasoner over the graph and it can catch a genuine inconsistency — like an edge that violates a declared domain/range — instead of that only being a comment in a wiki nobody reads.</li><li><strong>It’s queryable independent of your database.</strong> A .ttl (Turtle) file loads into Protege, answers SPARQL queries, and can be handed to someone with zero other context.</li><li><strong>It decouples “what the domain looks like” from “how I happen to store it.”</strong> The ontology doesn’t know or care that you picked Neo4j. Swap the database later and the TBox doesn’t change.</li></ol><h3>Building a small TBox</h3><p>Let’s use a concrete, deliberately small domain: a book catalog. Not e-commerce, not movies (Neo4j’s own tutorials have that one covered) — just books, the people who write them, who publishes them, and what they’re about.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*42vJTBmJbD7a5xq_PdBVUA.png" /></figure><p>A few deliberate choices here, worth calling out because they’re the kind of decision an ontology forces you to make explicitly:</p><ul><li>Book subclasses CreativeWork. If this catalog ever grows to include audiobooks or short-story collections, they inherit the same base properties (title, publishedDate) without redefining them.</li><li>Author subclasses Person, not the other way around — because an author <em>is a kind of</em> person, and future classes like Translatoror Illustrator can subclass Person too without duplicating properties like name or birthDate.</li><li>Publisher and Genre stay flat, siblings of nothing. Resist the urge to build hierarchy you don&#39;t have evidence for yet — a subclass relationship is a commitment. Real books-domain hierarchies (e.g. Genre having sub-genres) are usually better modeled as an object property (Genre –broaderThan→ Genre) than a rigid class hierarchy, because genre taxonomies change and overlap in ways class trees don&#39;t handle gracefully.</li></ul><h3>Object properties: how instances relate</h3><p>Object properties connect one instance to another. Each has a domain (where it starts) and range (what it points to) — this is what lets a reasoner flag a mistake like linking a Genre to a Publisher.</p><p>PropertyDomainRangeNoteswrittenByBookAuthorpublishedByBookPublisherhasGenreBookGenrepartOfSeriesBookSeriesprecedesBookBookordering within a seriessimilarToBookBook<strong>symmetric</strong> — see below</p><p>That last property is worth a closer look. Declared as owl:SymmetricProperty, similarTo gives you a real inference for free: if A is similar to B, B is similar to A, without your application code ever having to enforce it. That&#39;s the kind of guarantee that&#39;s easy to forget to maintain by hand once you have a few thousand rows, and trivial to get right when it&#39;s declared once in the schema.</p><h3>Datatype properties: the actual values</h3><p>Where object properties link two instances, datatype properties attach a literal value — a string, a date, a number — to one instance: title, isbn, publishedDate, pageCount, averageRating, language.</p><p>Two worth a second look, because they solve a real, recurring problem rather than just describing a field:</p><ul><li><strong>externalId + </strong><strong>sourceSystem</strong> (if you&#39;re pulling data from more than one API) exist specifically for <strong>entity resolution</strong>. If a book comes from both an ISBN registry and a reviews API, these two properties let you represent &quot;this instance&#39;s ID in system X is Y&quot; as a first-class, queryable fact, rather than burying that mapping in an ad-hoc join table you have to remember exists.</li><li><strong>A single </strong><strong>title field is usually wrong.</strong> If your domain has any multilingual or multi-edition angle, model titleOriginal / titleLocalized as separate typed properties from the start — which one you want depends on context (search vs. display vs. matching against a source-language dataset), and retrofitting that split later means a migration, not a one-line addition.</li></ul><h3>From TBox to ABox: populating instances</h3><p>The TBox is static. The ABox is where your actual data lives — and the interesting design decision here is how you mint identifiers.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RVveG05DzU8qmzYaxGVS7g.png" /></figure><p>The detail that matters most in practice: <strong>use deterministic URIs, not random ones.</strong> A book gets data#book/{isbn}; an author gets data#author/{slugified-name}. Because RDF triples are set members, re-asserting the same triple twice is a no-op — so re-running your loader against data you&#39;ve already ingested doesn&#39;t create duplicates, it just re-confirms facts that are already true. That&#39;s idempotency at the triple-store level, and it&#39;s the exact same property you want from your database loader.</p><h3>Translating the TBox into a Neo4j schema</h3><p>This is the payoff: once the ontology exists, the Neo4j schema isn’t a separate design exercise — it’s a disciplined, near-mechanical translation.</p><ul><li>Every OWL <strong>class</strong> becomes a <strong>node label</strong>: Book, Author, Publisher, Genre, Series.</li><li>Every OWL <strong>object property</strong> becomes a <strong>relationship type</strong>, conventionally upper-snake-cased: writtenBy → WRITTEN_BY, hasGenre → HAS_GENRE, similarTo → SIMILAR_TO.</li><li>Every OWL <strong>datatype property</strong> becomes a <strong>node property</strong> in Cypher’s property map.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-AKh2ph4VHP5vHfftzhpow.png" /></figure><p>One real divergence between the two models, and it’s worth knowing about before it surprises you: <strong>RDF triples don’t natively carry properties on the edge itself</strong> — a plain triple is just subject–predicate–object. Neo4j’s property graph model, by contrast, lets you attach attributes directly to a relationship (SIMILAR_TO {score: 0.82}). In practice this means the ontology stays the formal source of truth for <em>vocabulary</em> — what relationships exist and what they connect — while the property graph is where you put per-edge metadata like scores, ranks, or timestamps that don&#39;t cleanly fit the pure-triple model. (RDF has ways to represent edge properties too — reification, RDF-star, singleton properties — but for a schema whose end target is Neo4j, it&#39;s usually simpler to just let the property graph own that part.)</p><p>And the loader should use the same idempotency principle as the ABox builder, just expressed as MERGE on a natural key instead of a deterministic URI:</p><pre>MERGE (b:Book {isbn: $isbn})<br>SET b.title = $title, b.published_date = $published_date, b.page_count = $page_count<br>MERGE (a:Author {slug: $author_slug})<br>SET a.name = $author_name<br>MERGE (b)-[:WRITTEN_BY]-&gt;(a)<br>MERGE (g:Genre {name: $genre_name})<br>MERGE (b)-[:HAS_GENRE]-&gt;(g)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WgW7gk8F-qJ968fW_u81bw.png" /></figure><p>Never CREATE. MERGE-on-natural-key means you can re-run an ingestion pipeline against the same source data as many times as you want and the graph doesn&#39;t grow duplicates or drift — which matters a lot the moment you&#39;re resuming a multi-stage pipeline from the middle instead of starting clean every time.</p><h3>What this buys you, concretely</h3><ul><li><strong>A domain model you can actually validate.</strong> Run an OWL-RL reasoner over the TBox+ABox and a real inconsistency — a Genre node with a WRITTEN_BY-shaped edge, say — fails the check. That&#39;s a sanity pass you get for free instead of hand-writing custom validation.</li><li><strong>A second query surface.</strong> The Turtle file answers SPARQL independent of Cypher — handy for ad hoc questions, or for handing the schema to a tool or team that doesn’t touch your database at all.</li><li><strong>A schema that’s already ahead of your data.</strong> If you define Series and Translator in the TBox before you have any translated or serialized books in the catalog, adding that ingestion path later is additive — the class is already there, waiting, not a redesign.</li><li><strong>One vocabulary across every layer.</strong> Because the graph schema is a disciplined mapping <em>from</em> the ontology instead of an independently-invented one, WRITTEN_BY means the same thing in the ontology docs, the Cypher queries, and — if you ever expose one — the API. Nobody has to guess whether it points from book to author or the other way around, because it was declared once, formally, at the start.</li></ul><h3>When you can skip this</h3><p>Worth saying plainly: this is not free, and it’s not always worth it. For a weekend prototype, a single-person project you’ll rewrite in a month, or a graph with three node types and no ambition to grow, writing a formal OWL ontology first is very likely wasted ceremony — just design the Cypher schema directly and move on.</p><p>The formality earns its keep when at least one of these is true: the domain is genuinely complex and will keep growing, multiple people (or tools) need to share one unambiguous vocabulary, the data comes from more than one source and needs entity resolution, or you actually want the “can a machine check this for consistency” property rather than just a schema you trust yourself to remember correctly.</p><p>If none of those apply yet, skip the ontology and revisit it once they do — the TBox/ABox split means you can always formalize a schema you’re already running, rather than needing to have started there.</p><p><strong><em>That’s all from me today! Fascinating topic, isn’t it? Hopefully this helps! Until next time!</em></strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9268568c2d6c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Feature Engineering in MLOps: A Beginner’s Guide to Getting Your Data Ready for Production]]></title>
            <link>https://medium.com/@prutha1411/feature-engineering-in-mlops-a-beginners-guide-to-getting-your-data-ready-for-production-ce6d51fe6199?source=rss-2dc0c262256------2</link>
            <guid isPermaLink="false">https://medium.com/p/ce6d51fe6199</guid>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[feature-engineering]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[mlops]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <dc:creator><![CDATA[Prutha]]></dc:creator>
            <pubDate>Tue, 24 Mar 2026 05:51:18 GMT</pubDate>
            <atom:updated>2026-03-24T05:51:18.375Z</atom:updated>
            <content:encoded><![CDATA[<p>So you’ve trained a model. Great! But how do you make sure the data feeding it is actually good? Let’s talk about that.</p><p>If you’ve just started learning about machine learning, you’ve probably heard this phrase a hundred times: <em>“garbage in, garbage out.”</em> It sounds obvious, but the reality of making ML systems work in the real world — what we call <strong>production</strong> — is way more nuanced than just cleaning up a CSV file and calling it a day.</p><p>This article is part of a broader topic called <strong>MLOps</strong> (Machine Learning Operations). As Chip Huyen explains in her MLOps guide¹, <em>“Ops in MLOps comes from DevOps, short for Developments and Operations. To operationalize something means to bring it into production, which includes deploying, monitoring, and maintaining it.”</em></p><p>Today, we’re zooming in on one of the most critical pieces of that pipeline: <strong>Feature Engineering</strong>.</p><p>Before we begin, here’s a visual summary of the article.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/763/1*0aJrRTOiRuOBfMXNF04KiA.png" /><figcaption><strong>MLOps Overview. </strong><em>Disclaimer: The diagrams in this article were generated using AI and are intended for conceptual understanding and illustration purposes.</em></figcaption></figure><h3>First, Why Does Data Quality Matter So Much?</h3><p>Before we dive into the techniques, here’s something important to keep in mind:</p><blockquote><strong><em>More data of low quality can actually </em>hurt<em> your results. What truly matters is good quality </em>and<em> large quantity of data.</em></strong></blockquote><p>This is a really common trap for beginners — assuming that dumping more data into a model will automatically make it smarter. It won’t. A thousand noisy, mislabeled examples can be far more damaging than a hundred clean, well-labeled ones.</p><h3>What Even Is Feature Engineering?</h3><p>Features are the inputs you feed into your ML model. Feature engineering is the process of taking raw data and transforming it into a format that your model can actually learn from effectively.</p><p>There’s an interesting debate in the ML world right now: <strong>feature engineering vs. feature learning</strong>. The promise of deep learning was that models would <em>automatically</em> learn the best features from raw data — no manual work needed. And while that’s partly true for things like images and text, we’re still far from that reality for most real-world tabular data problems. So yes, you still need to understand feature engineering. 😄</p><h3>Common Feature Engineering Operations</h3><p>Here’s a rundown of the most important operations you’ll encounter, drawn from Chip Huyen’s lecture notes on Feature Engineering¹:</p><h3>1. Handling Missing Values</h3><p>Real-world data is messy. Sensors fail, users skip form fields, systems crash. You’ll almost always have gaps in your data that need to be addressed before training.</p><h3>2. Deletion</h3><p>Sometimes the simplest fix is to drop rows or columns with too many missing values — but be careful, this can introduce bias if the missingness isn’t random.</p><h3>3. Imputation</h3><p>Instead of deleting, you fill in the gaps. Common strategies include using the mean, median, or a model-predicted value.</p><h3>4. Scaling</h3><p>ML algorithms are often sensitive to the <em>range</em> of your features. A feature ranging from 0–1 and another ranging from 0–1,000,000 can confuse your model. Scaling (like normalization or standardization) brings everything to a comparable range.</p><h3>5. Discretization</h3><p>Converting continuous numerical values into discrete buckets or categories. For example, converting “age” into groups like “18–25”, “26–35”, etc.</p><h3>6. Encoding Categorical Features</h3><p>Models need numbers, not text. If your data has categories like “red”, “blue”, “green” — you need to encode them numerically. A popular technique here is <strong>hashing</strong>, which is especially useful when you have a very large number of categories.</p><h3>7. Feature Crossing</h3><p>A powerful technique where you <strong>combine two or more features to create a new one</strong>. For example, combining “city” and “time of day” into a single feature might help a model learn patterns it couldn’t pick up from either feature alone.</p><h3>8. Positional Encodings (Discrete &amp; Continuous)</h3><p>Particularly important in <strong>NLP (Natural Language Processing)</strong>. Since models don’t inherently understand word order, positional encodings inject information about where each word sits in a sentence. Under the hood, this uses an <strong>embedding matrix</strong>.</p><h3>Data Augmentation: Getting More From What You Have</h3><p>Another key technique in feature engineering is <strong>data augmentation</strong> — a way to artificially increase the size of your training dataset without collecting new data. There are three main flavours¹:</p><ol><li><strong>Simple Label-Preserving Augmentation</strong> Replace or add something with a similar meaning. In NLP, this might mean swapping a word for its synonym. The label stays the same, but you’ve created a new training example.</li><li><strong>Perturbation</strong> Intentionally add noise to your data — a label-preserving operation used to make models more robust, teaching them to handle imperfect, real-world inputs.</li><li><strong>Data Synthesis</strong> Generate entirely new data points that didn’t exist in your original dataset. Think of techniques like GANs (Generative Adversarial Networks) for images.</li></ol><h3>Sampling: Picking the Right Subset of Data</h3><p>Before you start engineering features, you need to think about <em>which data</em> you’re working with. This is called <strong>sampling</strong>, and doing it wrong can introduce serious bias into your model¹.</p><h3>Non-Probability Sampling</h3><p>Selection isn’t based on any statistical probability:</p><ul><li><strong>Convenience sampling</strong> — use whatever data is available</li><li><strong>Snowball sampling</strong> — future samples are selected based on existing ones</li><li><strong>Judgement sampling</strong> — an expert decides what to include</li><li><strong>Quota sampling</strong> — manually set proportions (e.g. 50% of group A, 20% of group B)</li></ul><p>These methods are quick, but they risk producing samples that don’t represent the real world.</p><h3>Random (Probability) Sampling</h3><ul><li><strong>Simple random sampling</strong> — every data point has an equal chance of being selected, but rare categories might not appear</li><li><strong>Stratified sampling</strong> — divide your data into groups first, then sample from each; much better for imbalanced datasets</li><li><strong>Weighted sampling</strong> — assign weights to samples rather than groups</li><li><strong>Importance sampling</strong> — useful when you only have access to one distribution but need to sample from another; common in reinforcement learning</li><li><strong>Reservoir sampling</strong> — a clever algorithm for sampling from a data stream when you don’t know the total size upfront</li></ul><h3>Bringing It All Together: The Feature Store</h3><p>In production MLOps systems, managing features across multiple models and teams gets complicated fast. That’s where the <strong>Feature Store</strong> comes in — a centralized repository where you standardize the definition, storage, and access of features for both training and serving predictions¹.</p><p>This concept fits neatly into what Google Cloud describes as MLOps Level 1, where the goal is ML pipeline automation². As they explain, a mature MLOps system introduces automated data validation, automated model validation, automated pipeline triggers, and automated metadata management² — all of which depend on having clean, well-managed features to work with.</p><h3>Key Takeaways</h3><ul><li>Good data quality matters more than data quantity alone</li><li>Feature engineering is still very much a human-driven process — don’t wait for models to do it all for you</li><li>There are many techniques at your disposal: imputation, scaling, encoding, feature crossing, and more</li><li>Sampling strategy matters — a biased sample leads to a biased model</li><li>In production systems, centralizing features in a <strong>Feature Store</strong> saves time and prevents inconsistencies</li></ul><p><em>Happy engineering! 🚀</em></p><h3>References</h3><p>¹ Huyen, C. (2022). <em>MLOps Guide</em>. <a href="https://huyenchip.com/mlops/">huyenchip.com/mlops</a> — includes lecture notes on Feature Engineering and Training Data (originally developed for Stanford CS329S: Machine Learning Systems in Production)</p><p>² Google Cloud. (2024). <em>MLOps: Continuous delivery and automation pipelines in machine learning</em>. Google Cloud Architecture Center. <a href="https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning">cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ce6d51fe6199" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[MLflow Basics: Tracking and Managing Machine Learning Experiments]]></title>
            <link>https://medium.com/@prutha1411/mlflow-basics-tracking-and-managing-machine-learning-experiments-64ac37dd3bb9?source=rss-2dc0c262256------2</link>
            <guid isPermaLink="false">https://medium.com/p/64ac37dd3bb9</guid>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[mlflow]]></category>
            <category><![CDATA[mlops]]></category>
            <dc:creator><![CDATA[Prutha]]></dc:creator>
            <pubDate>Sat, 14 Mar 2026 07:39:02 GMT</pubDate>
            <atom:updated>2026-03-14T07:39:02.008Z</atom:updated>
            <content:encoded><![CDATA[<p>Machine learning development rarely happens in a single run. A typical workflow involves experimenting with multiple models, hyperparameters, and datasets before arriving at the best performing solution.</p><p>Keeping track of these experiments manually can quickly become chaotic.</p><p>This is where <strong>MLflow</strong> comes in.</p><p>MLflow is an open-source platform designed to manage the <strong>entire machine learning lifecycle</strong>, including experiment tracking, model packaging, and deployment.</p><p>In this article, we’ll walk through the <strong>basics of MLflow</strong>, understand its core components, and run a simple example to track a machine learning experiment.</p><h3>Why Experiment Tracking Matters</h3><p>When developing machine learning models, it is common to run dozens or even hundreds of experiments.</p><p>For example, you might:</p><ul><li>Test different algorithms</li><li>Tune hyperparameters</li><li>Experiment with different datasets</li><li>Modify preprocessing pipelines</li></ul><p>Without proper tracking, it becomes difficult to answer simple questions like:</p><ul><li>Which experiment produced the best model?</li><li>What hyperparameters were used?</li><li>Which dataset version was used?</li></ul><p>Tools like <strong>MLflow</strong> solve this problem by automatically logging experiment metadata, metrics, and artifacts in an organized way.</p><h3>What is MLflow?</h3><p><strong>MLflow</strong> is an open-source platform developed by <strong>Databricks</strong> that helps manage machine learning workflows.</p><p>It supports multiple ML frameworks including:</p><ul><li><strong>Scikit-learn</strong></li><li><strong>TensorFlow</strong></li><li><strong>PyTorch</strong></li><li><strong>XGBoost</strong></li></ul><p>MLflow is framework-agnostic, which makes it easy to integrate into existing ML pipelines.</p><h3>MLflow Architecture</h3><p>At a high level, MLflow consists of several components that interact with a central tracking server.</p><p>The key components include:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*S2l7XteAybA9hDOseJ1dlw.png" /><figcaption><strong>Core MLflow Components</strong><br><em>(Architecture diagram generated with AI)</em></figcaption></figure><p><strong>Experiment Tracking</strong></p><p>Tracks key information during training such as:</p><ul><li>parameters</li><li>metrics</li><li>artifacts</li></ul><p>This allows easy comparison between different runs.</p><h3>MLflow Projects</h3><p>MLflow Projects package machine learning code into reproducible runs.</p><p>They typically include:</p><ul><li>source code</li><li>environment configuration</li><li>dependencies</li></ul><p>This ensures that experiments can be reproduced across machines.</p><h3>MLflow Models</h3><p>MLflow provides a standard format for packaging machine learning models so they can be deployed consistently.</p><p>Models can be served through:</p><ul><li>REST APIs</li><li>batch inference pipelines</li><li>production services</li></ul><h3>Model Registry</h3><p>The Model Registry helps manage different versions of models and supports lifecycle stages such as:</p><ul><li>Staging</li><li>Production</li><li>Archived</li></ul><p>This is especially useful for production ML systems where multiple model versions need to be managed.</p><h3>Installing MLflow</h3><p>MLflow can be installed easily using pip:</p><pre>pip install mlflow</pre><p>Once installed, you can start the MLflow UI with:</p><pre>mlflow ui</pre><p>This launches the tracking dashboard locally at:</p><pre>http://127.0.0.1:5000</pre><h3>Running a Simple Experiment</h3><p>Let’s run a simple example using <strong>Scikit-learn</strong>.</p><p>We will train a <strong>Logistic Regression</strong> model and log its parameters and accuracy using MLflow.</p><pre>import mlflow<br>import mlflow.sklearn<br><br>from sklearn.linear_model import LogisticRegression<br>from sklearn.datasets import load_iris<br>from sklearn.model_selection import train_test_split<br><br>X, y = load_iris(return_X_y=True)<br><br>X_train, X_test, y_train, y_test = train_test_split(X, y)<br><br>with mlflow.start_run():<br><br>    model = LogisticRegression()<br>    model.fit(X_train, y_train)<br><br>    accuracy = model.score(X_test, y_test)<br><br>    mlflow.log_param(&quot;model_type&quot;, &quot;LogisticRegression&quot;)<br>    mlflow.log_metric(&quot;accuracy&quot;, accuracy)<br><br>    mlflow.sklearn.log_model(model, &quot;model&quot;)<br><br>print(&quot;Run logged successfully&quot;)</pre><p>When this script is executed, MLflow automatically records the experiment.</p><h3>Viewing Experiments in the MLflow UI</h3><p>Once the run is completed, the experiment appears in the MLflow dashboard.</p><figure><img alt="ML Flow Dashboard" src="https://cdn-images-1.medium.com/max/1024/1*qtJY9uaLvL0Ua6cGVmSu6w.png" /><figcaption>MLflow Dashboard — experiment metrics and parameters</figcaption></figure><p>The dashboard displays:</p><ul><li>logged parameters</li><li>performance metrics</li><li>associated model artifacts</li></ul><p>In this run, the model achieved an <strong>accuracy of approximately 0.92</strong>, and MLflow logged both the metric and the model type parameter.</p><h3>Tracking Models</h3><p>MLflow also stores the trained model artifact.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ys9UWjKEuzYEACHFz--Wlg.png" /><figcaption>MLflow Models Tab — logged model artifact</figcaption></figure><p>From the <strong>Models</strong> section, you can:</p><ul><li>view stored models</li><li>access artifacts from experiments</li><li>manage model versions</li></ul><p>This makes it easier to transition models from experimentation to deployment.</p><h3>Benefits of Using MLflow</h3><p>MLflow simplifies many aspects of machine learning development:</p><ul><li>Organized experiment tracking</li><li>Reproducible training workflows</li><li>Framework-agnostic model management</li><li>Easier collaboration within teams</li></ul><p>It is especially valuable when machine learning projects grow beyond a few simple experiments.</p><h3>Final Thoughts</h3><p>Managing machine learning experiments effectively is a key part of building reliable ML systems.</p><p>Tools like <strong>MLflow</strong> make it easier to track experiments, compare models, and manage the lifecycle of machine learning models.</p><p>Even simple projects benefit from experiment tracking. Starting with tools like MLflow early in your workflow can make scaling and collaboration significantly easier.</p><p>If you’re building machine learning pipelines, integrating MLflow into your workflow is a great step toward <strong>production-ready ML development</strong>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=64ac37dd3bb9" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Paradox of Modern AI : Why Fundamentals Still Matter in the Age of LLMs]]></title>
            <link>https://medium.com/@prutha1411/the-paradox-of-modern-ai-why-fundamentals-still-matter-in-the-age-of-llms-1e95324318ee?source=rss-2dc0c262256------2</link>
            <guid isPermaLink="false">https://medium.com/p/1e95324318ee</guid>
            <category><![CDATA[deep-learning]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[large-language-models]]></category>
            <category><![CDATA[ai]]></category>
            <dc:creator><![CDATA[Prutha]]></dc:creator>
            <pubDate>Sat, 21 Feb 2026 04:06:29 GMT</pubDate>
            <atom:updated>2026-02-21T04:06:29.111Z</atom:updated>
            <content:encoded><![CDATA[<h4>At some point in my own work, I stripped away every framework and implemented gradient descent manually.</h4><h3>We are living through a strange moment in AI.</h3><p>You can fine-tune a large language model <em>without understanding</em> backpropagation.<br>You can deploy a multimodal system <em>without writing a single optimization loop</em>.<br>You can build an AI product<em> without ever seeing a gradient</em>.</p><blockquote>The abstraction layers are powerful — and seductive.</blockquote><p>But beneath every Transformer, every diffusion model, every reinforcement learning agent, there is still a simple engine running:</p><p><strong>Gradient descent.</strong></p><p>And that hasn’t changed.</p><h3>The Illusion of Intelligence</h3><h4>Large language models feel intelligent.</h4><p>They generate essays, reason about math, write code, analyze images, summarize research papers.</p><p>But during training, <strong>none</strong> of that exists.</p><blockquote>There is no reasoning.<br>There is no intention.<br>There is no understanding.</blockquote><p>There is only:</p><blockquote><strong><em>A prediction</em></strong></blockquote><blockquote><strong><em>An error</em></strong></blockquote><blockquote><strong><em>A gradient</em></strong></blockquote><blockquote><strong><em>A small update</em></strong></blockquote><p>Repeated billions of times.</p><p><strong>When you strip away the architecture diagrams and benchmark charts, modern AI is still iterative optimization.</strong></p><p>Understanding that changes everything.</p><h3>Scale Has Increased. Principles Have Not.</h3><p>Today’s models operate at unprecedented scale:</p><ul><li>Billions to trillions of parameters</li><li>Massive distributed training systems</li><li>Carefully engineered learning rate schedules</li><li>Precision-aware optimizers</li></ul><p>But the update rule is still conceptually:</p><pre>θ = θ - α ∇J(θ)</pre><p>The sophistication lies in:</p><ul><li>How we compute gradients efficiently</li><li>How we stabilize training</li><li>How we structure the objective</li></ul><p>But the core mechanism remains untouched.</p><p>And if you do research in AI — especially in high-stakes domains like healthcare, sustainability, or safety — this matters deeply.</p><p><em>Because when training becomes unstable, abstraction collapses.</em></p><p>You <strong>cannot</strong> debug trillion-parameter systems if you do not understand slope-following at a fundamental level.</p><h3>Why Writing Gradient Descent From Scratch Changes Your Thinking</h3><h4>At some point in my own work, I stripped away every framework and implemented gradient descent manually.</h4><figure><img alt="Animated visualization of gradient descent on a convex quadratic function, showing a point iteratively moving downhill toward the minimum." src="https://cdn-images-1.medium.com/max/640/1*hZ0wm1-tDX-Ue7ouyGs18Q.gif" /><figcaption>Gradient descent iteratively updates parameters by moving in the direction of steepest decrease until reaching the minimum.</figcaption></figure><p>Not because I needed to.<br>But because I wanted to feel the mechanism again.</p><p>Watching the loss decrease iteration by iteration forces a realization:</p><p>The model is not “learning concepts.”<br>It is navigating geometry.</p><blockquote>It is moving across a high-dimensional surface, searching for a valley.</blockquote><p>When you understand that, several things become clearer:</p><ul><li>Vanishing gradients are not mysterious — they are flat regions.</li><li>Exploding gradients are not chaotic — they are steep curvature.</li><li>Learning rate schedules are not heuristics — they are step-size control mechanisms.</li><li>Regularization is not magic — it reshapes the landscape.</li></ul><p><strong>This geometric view is far more powerful than memorizing optimizer names.</strong></p><h3>The Risk of Abstraction</h3><p>Modern tooling is extraordinary. AutoML systems tune hyperparameters. Pre-trained foundation models dominate benchmarks. Fine-tuning APIs hide optimization entirely.</p><p>But abstraction creates fragility.</p><p>When a model:</p><ul><li>Refuses to converge</li><li>Overfits immediately</li><li>Becomes unstable during fine-tuning</li><li>Fails to generalize in deployment</li></ul><p>You need intuition — not documentation.</p><p>That intuition comes from fundamentals.</p><p>And fundamentals come from understanding optimization, not just calling it.</p><h3>Research, Responsibility, and First Principles</h3><p>In applied AI — particularly in healthcare and safety-critical systems — optimization errors are not academic.</p><p>They affect:</p><ul><li>Diagnostic performance</li><li>Risk prediction</li><li>False positive rates</li><li>Real-world trust</li></ul><p>If you treat gradient descent as a black box, you limit your ability to reason about model behavior under distribution shifts, data imbalance, or noisy supervision.</p><p><strong>Understanding fundamentals makes you slower at first.</strong></p><p><strong>But more rigorous in the long run.</strong></p><p><strong><em>And rigor is what separates engineering from research.</em></strong></p><h3>Final Reflection</h3><h4>In the age of LLMs, fundamentals are not outdated.</h4><h4>They are leverage.</h4><p>Anyone can fine-tune a model.<br>Fewer people can explain why it converges.<br>Even fewer can explain why it fails.</p><p>The next generation of AI researchers and engineers will not be defined by how well they use tools.</p><p><em>They will be defined by how deeply they understand the principles beneath them.</em></p><p>And beneath modern AI, the principle is still simple:</p><blockquote>Make a prediction.<br>Measure error.<br>Follow the slope.<br>Repeat.</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1e95324318ee" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What Multimodal Emotion Models Still Get Wrong — and What’s Next]]></title>
            <link>https://medium.com/@prutha1411/what-multimodal-emotion-models-still-get-wrong-and-whats-next-ee7b409b152d?source=rss-2dc0c262256------2</link>
            <guid isPermaLink="false">https://medium.com/p/ee7b409b152d</guid>
            <category><![CDATA[naturallanguageprocessing]]></category>
            <category><![CDATA[deep-learning]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[emotional-intelligence]]></category>
            <dc:creator><![CDATA[Prutha]]></dc:creator>
            <pubDate>Sun, 08 Feb 2026 04:07:51 GMT</pubDate>
            <atom:updated>2026-02-08T04:07:51.126Z</atom:updated>
            <content:encoded><![CDATA[<h3>What Multimodal Emotion Models Still Get Wrong — and What’s Next</h3><p>Emotion recognition has become one of the most promising frontiers of artificial intelligence — promising systems that don’t just parse language, but “feel” context, tone, expression, and intent all at once. Yet despite advances in deep learning and multimodal fusion, real-world emotion understanding remains elusive. In 2025, research shows that <strong>current multimodal emotion models are powerful yet brittle</strong>, and often fall short when deployed beyond carefully curated datasets.</p><p>In this article, I explore where today’s models fall short — and how the next generation of methods might finally bridge the gap between <em>recognition</em> and <em>true understanding</em>.</p><h3>1. Multimodal Fusion Still Struggles with Contextual Ambiguity</h3><p>Today’s state-of-the-art multimodal emotion models combine text, audio, and visual cues using deep learning. Yet these systems often fail to interpret <em>context</em>, resulting in misclassification when emotions depend on interaction history or nuanced situational factors.</p><p>Studies on dialogue-based emotion recognition demonstrate this limitation clearly. For example, in conversational settings using Transformer-based audio + text fusion, deep learning models outperform single modalities but still misinterpret emotions without broader context cues — showing how partial fusion leaves gaps in emotional understanding.</p><p>This reflects a deeper issue: because most training data — like IEMOCAP or EMOV — are lab-recorded and relatively static, models rarely encounter the fluid, ambiguous emotional expressions found in real life.</p><h3>2. Static Labels Oversimplify Dynamic Emotions</h3><p>Emotion is temporal by nature — it evolves over a conversation or interaction. However, most availability datasets and benchmarks train models to assign a <strong>single label</strong> to discrete snippets, failing to capture temporal emotional flux.</p><p>Advanced research recognizes this problem. Emerging frameworks such as <strong>Hierarchical Mixture-of-Experts (Hi-MoE)</strong>explicitly model continuous emotion streams and handle <em>incomplete or asynchronous inputs</em>, showcasing better resilience in dynamic environments. (<a href="https://arxiv.org/abs/2508.02133">arXiv</a>)</p><p>This shift highlights how <strong>emotion dynamics matter</strong> — and how static labels flatten rich temporal cues that humans use naturally.</p><figure><img alt="Line plot showing multiple emotions changing in intensity over time, illustrating how emotional states evolve rather than remain fixed." src="https://cdn-images-1.medium.com/max/790/1*oqd9KXW4DH-WT19k-lyUrw.png" /><figcaption><strong>Emotion unfolds over time.</strong><br>Most emotion recognition systems assign a single static label, flattening the dynamic trajectories humans naturally perceive.</figcaption></figure><h3>3. Missing &amp; Noisy Modalities Still Break Systems</h3><p>Real world sensing rarely guarantees high-quality text, audio, and video all at once. Environmental noise, occlusions, or sensor failure cause missing or degraded modalities. Most models assume full input availability and fail dramatically under missing signals.</p><p>Recent work analyzing robustness under modal absence shows that <strong>uncertain or missing data remains a core challenge in multimodal emotion AI</strong>, with standard fusion strategies unable to gracefully degrade.</p><p>This gap is not just theoretical — it’s why affective systems that work well in controlled labs often falter in actual use.</p><h3>4. Datasets Bias Affect Outcomes</h3><p>The quality and coverage of emotion data hugely impact model performance. A new enhanced valence–arousal multimodal dataset was released in 2025 to enrich emotional cues across continuous dimensions, aiming to reflect human experiential nuance better than coarse categorical labels. (<a href="https://www.nature.com/articles/s41597-025-06214-y">Nature</a>)</p><p>Still, even with richer annotation schemes, models struggle with cross-cultural expressiveness and context diversity — problems rooted in dataset biases and limited annotation frameworks.</p><h3>5. Large Models Still Don’t Fully Grasp Emotion Semantics</h3><p>While multimodal large language models (MLLMs) promise more flexible integration of modalities and broader reasoning capabilities, their emotion understanding is still early and inconsistent.</p><p>A 2025 benchmark of open-vocabulary emotion recognition shows that even the top MLLMs have a narrow advantage over traditional models, particularly when it comes to nuanced or non-categorical emotional states. (<a href="https://arxiv.org/abs/2512.20938">arXiv</a>)</p><p>This suggests that while large models excel at general multimodal fusion, <strong>specialization for emotion reasoning remains an open challenge</strong>.</p><h3>So, What’s Next?</h3><p>Today’s research points toward several emerging directions that could overcome existing limitations:</p><h3>A. Dynamic Emotion Modeling</h3><p>Moving away from single-shot classification to continuous, time-aware affect representations enables systems to track emotional changes across interactions. Frameworks like Hi-MoE show that <em>temporal continuity</em> is achievable — and necessary. (<a href="https://arxiv.org/abs/2508.02133">arXiv</a>)</p><h3>B. Context + History Integration</h3><p>Future systems should incorporate broader context — conversational history, situational cues, and even personal or cultural background — enabling deeper interpretive insight rather than surface recognition.</p><p>This parallels trends in dialogue systems research that emphasize contextual reasoning as core to human-like understanding.</p><h3>C. Uncertainty-Aware Predictions</h3><p>Humans rarely assign discrete emotional states; an utterance may be 30% frustration, 20% amusement, and 50% contemplation. New datasets and prediction frameworks are beginning to embrace <strong>emotion distributions</strong> instead of hard labels. (<a href="https://www.nature.com/articles/s41597-025-06214-y">Nature</a>)</p><h3>D. Cross-Cultural &amp; Multilingual Affect</h3><p>Most emotion datasets and models remain heavily skewed toward Western, English datasets. Truly robust emotion AI will require frameworks that understand <strong>cultural variation in expression</strong> — a direction gaining traction in recent surveys. (<a href="https://www.mdpi.com/2313-7673/10/7/418">MDPI</a>)</p><h3>E. Robust Fusion Under Real Constraints</h3><p>Building systems that can handle missing, noisy, or asynchronous modalities — like the proposed hierarchical fusion mechanisms — is essential for real-world deployment. (<a href="https://arxiv.org/abs/2508.02133">arXiv</a>)</p><h3>Conclusion</h3><p>Multimodal emotion analysis has come far — but <em>it is still only scratching the surface of human affective complexity</em>. In 2025, research highlights both progress and persistent limitations: static labels, context neglect, modality fragility, semantic gaps, and dataset bias.</p><p>The next generation of emotion models will need to treat emotion as fluid, contextual, uncertain, and deeply human — not just a category to be classified.</p><p>The future of affective AI isn’t merely predicting emotion — it’s <em>understanding it</em>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ee7b409b152d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[From Kanji to Gradients : Learning Representations in Multilingual NLP]]></title>
            <link>https://medium.com/@prutha1411/from-kanji-to-gradients-learning-representations-in-multilingual-nlp-5a5396afba2b?source=rss-2dc0c262256------2</link>
            <guid isPermaLink="false">https://medium.com/p/5a5396afba2b</guid>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[nlp]]></category>
            <category><![CDATA[representation-learning]]></category>
            <category><![CDATA[transformers]]></category>
            <category><![CDATA[machine-learning]]></category>
            <dc:creator><![CDATA[Prutha]]></dc:creator>
            <pubDate>Sun, 25 Jan 2026 04:50:48 GMT</pubDate>
            <atom:updated>2026-01-25T04:50:48.973Z</atom:updated>
            <content:encoded><![CDATA[<h3>From Kanji to Gradients : Learning Representations in Multilingual NLP</h3><p>Language is not just text ; it is structure, culture, and intent compressed into symbols. For humans, this compression is effortless. For machines, it is anything but.</p><figure><img alt="Abstract illustration of English and Japanese word representations forming separate but related clusters in a shared embedding space." src="https://cdn-images-1.medium.com/max/1024/1*uODdwn9GKsQhr-7FOj_RVQ.jpeg" /><figcaption>Abstract illustration of English and Japanese word representations forming separate but related clusters in a shared embedding space.</figcaption></figure><p>At the heart of Natural Language Processing (NLP) lies a deceptively simple question: <em>how does a model represent language?</em> Not how it translates, classifies, or summarizes, but how it <strong>internalizes meaning</strong> in the first place. This question becomes especially interesting in multilingual settings, where languages differ not only in vocabulary, but in writing systems, syntax, and semantic density.</p><p>Consider English and Japanese. English relies on spaces, relatively simple morphology, and a fixed alphabet. Japanese weaves meaning across Kanji, Hiragana, and Katakana ; often without explicit word boundaries. And yet, modern NLP systems are expected to understand both, sometimes simultaneously, within a single model.</p><p>This article explores how multilingual NLP models learn representations across such linguistic boundaries; how Kanji becomes vectors, how meaning becomes geometry, and how gradients quietly align languages into a shared semantic space.</p><h3>Why Representation Learning Matters</h3><p>Raw text is meaningless to a machine. A sentence is not a sentence ; it is a sequence of characters or tokens that must be transformed into numbers before any learning can occur.</p><p>Representation learning is the process by which models convert discrete linguistic units into <strong>continuous, dense vectors</strong>that capture semantic and syntactic information. These vectors form the foundation for nearly every NLP task: sentiment analysis, translation, question answering, toxicity detection, and beyond.</p><p>Good representations have a powerful property: <strong>similar meanings map to nearby points in space</strong>. The sentence <em>“I love this movie”</em> should live closer to <em>“This film was amazing”</em> than to <em>“I hated every minute of it”</em>. In multilingual NLP, the challenge is even greater — the model must learn that <em>「この映画が好きです」</em> belongs in the same neighborhood as its English counterpart.</p><figure><img alt="Figure 1: Cosine similarity between English and Japanese tokens in a shared multilingual embedding space. Semantically related terms cluster closely despite belonging to different languages." src="https://cdn-images-1.medium.com/max/563/1*zr38szvVlAEui0JOL4-93g.png" /><figcaption><strong>Figure 1:</strong> Cosine similarity between English and Japanese tokens in a shared multilingual embedding space. Semantically related terms cluster closely despite belonging to different languages.</figcaption></figure><h3>Language Is Not Universal: A Multilingual Reality</h3><p>Languages encode meaning differently.</p><p>English is alphabetic, space-delimited, and relatively linear. Japanese, by contrast, is a hybrid system:</p><ul><li><strong>Kanji</strong> carry dense semantic meaning</li><li><strong>Hiragana</strong> encodes grammar and inflection</li><li><strong>Katakana</strong> handles foreign words and emphasis</li></ul><p>A single Kanji character can encapsulate what might require an entire English word or phrase. Word boundaries are often implicit, and meaning is heavily context-dependent. This makes even basic preprocessing (such as tokenization) non-trivial.</p><p>For multilingual NLP models, this diversity poses a fundamental question:<br><strong>How can one representation space accommodate radically different linguistic structures?</strong></p><h3>From Tokens to Vectors: How Models “See” Language</h3><p>Before models can learn meaning, text must be broken down into tokens. Early NLP systems relied on word-level tokenization, but this quickly broke down in multilingual settings ; especially for languages like Japanese.</p><p>Modern models instead rely on <strong>subword tokenization</strong> techniques such as Byte Pair Encoding (BPE) or WordPiece. These approaches strike a balance: they decompose rare or complex words into smaller units while preserving frequently occurring patterns.</p><p>For Japanese, this often means breaking text into sub-character or subword units that allow the model to:</p><ul><li>Reuse representations across words</li><li>Handle unseen vocabulary</li><li>Learn shared semantic components across scripts</li></ul><p>Once tokenized, each unit is mapped to an <strong>embedding vector</strong> — a learned numerical representation. Early embeddings (like Word2Vec or GloVe) were static: each word had one vector, regardless of context. Modern transformer-based models generate <strong>contextual embeddings</strong>, meaning the representation of a token changes depending on its surrounding words.</p><p>The Kanji 「生」, for example, means different things depending on context — <em>life</em>, <em>raw</em>, <em>birth</em>. Contextual embeddings allow the model to reflect these nuances dynamically.</p><h3>One Space, Many Languages: Multilingual Embeddings</h3><p>Multilingual models such as <strong>mBERT</strong> and <strong>XLM-RoBERTa</strong> are trained on text from dozens (or hundreds) of languages simultaneously. Remarkably, without explicit alignment, these models often learn a <strong>shared semantic space</strong>.</p><p>In this space:</p><ul><li>English and Japanese sentences with similar meanings cluster together</li><li>Language identity becomes a secondary feature</li><li>Semantics dominate syntax</li></ul><p>This phenomenon enables <strong>zero-shot cross-lingual transfer; </strong>a model trained on English sentiment data can often classify Japanese sentiment reasonably well, even without Japanese labels.</p><blockquote><em>Meaning, not language, becomes the organizing principle.</em></blockquote><h3>From Kanji to Gradients: What the Model Actually Learns</h3><p>So how does this alignment happen?</p><p>The answer lies in <strong>gradients</strong>.</p><figure><img alt="Figure 2: Conceptual view of multilingual representation learning. English and Japanese text are tokenized and embedded into a shared semantic space, with gradients aligning representations through task-driven learning." src="https://cdn-images-1.medium.com/max/1000/1*YXo88ylers-i5azMTgBGcg.jpeg" /><figcaption><strong>Figure 2:</strong> Conceptual view of multilingual representation learning. English and Japanese text are tokenized and embedded into a shared semantic space, with gradients aligning representations through task-driven learning.</figcaption></figure><p>During training, the model makes predictions and compares them against a loss function. The error signal propagates backward through the network, adjusting weights to reduce future loss. Over millions of examples, the model learns which patterns matter; and which don’t.</p><p>For multilingual models, this means:</p><ul><li>Learning shared semantic features across languages</li><li>Mapping structurally different inputs to similar latent representations</li><li>Abstracting away from surface-level form</li></ul><p>The model is not “learning Japanese” or “learning English” in the human sense. It is learning <strong>relationships, </strong>between tokens, contexts, and outcomes. Kanji are not symbols; they are coordinates shaped by gradients.</p><h3>Where This Breaks (and Why That Matters)</h3><p>Despite their elegance, multilingual representations are not perfect.</p><ul><li><strong>Low-resource languages</strong> are often underrepresented</li><li>Cultural nuances may collapse into oversimplified embeddings</li><li>Politeness, honorifics, and formality in Japanese are poorly captured</li><li>Biases present in high-resource languages can dominate the space</li></ul><p>When languages share a representation space, power imbalances in data distribution inevitably surface. This makes evaluation, interpretability, and ethical deployment critical concerns.</p><h3>Why This Matters Beyond Research</h3><p>Multilingual representation learning is not just an academic exercise.</p><p>It enables:</p><ul><li>Cross-lingual sentiment and toxicity detection</li><li>Global healthcare NLP systems</li><li>Sustainability research using multilingual datasets</li><li>AI systems that are accessible beyond English-centric contexts</li></ul><p>In a connected world, language should not be a barrier to technology or understanding.</p><h3>Closing Thoughts</h3><p>From Kanji to gradients, multilingual NLP is a story of abstraction. Language becomes geometry. Meaning becomes proximity. Learning becomes alignment.</p><p>Representation learning reminds us that intelligence (artificial or otherwise) is not about memorizing symbols, but about understanding relationships. And as models continue to improve, the hope is not that they replace language, but that they help bridge it.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5a5396afba2b" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Visualizing Japanese and English Embeddings Through PCA: An Intuitive Exploration]]></title>
            <link>https://medium.com/@prutha1411/visualizing-japanese-and-english-embeddings-through-pca-an-intuitive-exploration-7a0bec8e88a4?source=rss-2dc0c262256------2</link>
            <guid isPermaLink="false">https://medium.com/p/7a0bec8e88a4</guid>
            <category><![CDATA[data-visualization]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[word-embeddings]]></category>
            <category><![CDATA[naturallanguageprocessing]]></category>
            <category><![CDATA[multilingualai]]></category>
            <dc:creator><![CDATA[Prutha]]></dc:creator>
            <pubDate>Sun, 11 Jan 2026 05:50:29 GMT</pubDate>
            <atom:updated>2026-01-11T05:50:29.746Z</atom:updated>
            <content:encoded><![CDATA[<h3>Introduction</h3><p>When we talk about multilingual language models, we often describe them using abstract terms like “shared representation space” or “semantic alignment.” These phrases sound convincing, but they remain intangible until we try to <em>see</em> what they mean.</p><p>This article is a small attempt to make that abstraction visible.</p><p>By projecting Japanese and English sentence embeddings into two dimensions using PCA, we can explore how multilingual models organize meaning across languages, not through metrics or benchmarks, but through geometry.</p><p>The goal here is not evaluation or performance comparison. It is intuition-building.</p><h3>Embeddings as Geometry</h3><p>At their core, embeddings are geometric objects.</p><p>A sentence embedding is simply a point in a high-dimensional space, positioned such that semantically <em>similar sentences lie closer</em> together than unrelated ones. Multilingual models extend this idea by attempting to place semantically equivalent sentences from different languages near each other in the same space.</p><p>In theory, an English sentence and its Japanese translation should occupy neighboring regions, even though the surface forms differ completely.</p><p>What PCA allows us to do is collapse this high-dimensional structure into something we can inspect visually, while accepting that some distortion is inevitable.</p><h3>Why Visualize Multilingual Embeddings?</h3><p>Quantitative evaluation tells us <em>whether</em> a model works. Visualization helps us reason about <em>how</em> it works.</p><p>A two-dimensional projection cannot preserve all relationships, but it can reveal:</p><ul><li>Whether embeddings cluster by language or by meaning</li><li>Whether translation pairs remain close after projection</li><li>Whether the representation space appears shared or fragmented</li></ul><p>These insights are especially useful when working across languages with different scripts, syntactic structures, and semantic conventions, such as English and Japanese.</p><h3>The Experimental Setup</h3><p>For this exploration, I used a small set of semantically aligned English and Japanese sentences sourced from an open, publicly available parallel corpus.</p><p>Each sentence was encoded using a multilingual sentence embedding model that maps multiple languages into a shared vector space. These embeddings were then projected into two dimensions using Principal Component Analysis.</p><p>The objective here is not scale. It is <em>clarity</em>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JKHHHAt7lGB3JWworgan_A.jpeg" /><figcaption>Figure 1: Flow diagram illustrating the multi-stage preprocessing pipeline.</figcaption></figure><h3>Implementation Snapshot</h3><p>Rather than walking through every preprocessing step, this section focuses only on the core logic required to generate the visualization.</p><p>The following snippet shows:</p><ul><li>Encoding parallel English and Japanese sentences</li><li>Applying PCA to the combined embedding space</li><li>Plotting both languages together while connecting translation pairs</li></ul><pre>from sentence_transformers import SentenceTransformer<br>from sklearn.decomposition import PCA<br>import matplotlib.pyplot as plt<br>import numpy as np<br><br># Parallel English–Japanese sentence pairs (illustrative subset)<br>english_sentences = [<br>    &quot;I like coffee&quot;,<br>    &quot;The train is late&quot;,<br>    &quot;This book is interesting&quot;,<br>    &quot;It is raining today&quot;,<br>    &quot;She is studying machine learning&quot;<br>]<br><br>japanese_sentences = [<br>    &quot;私はコーヒーが好きです&quot;,<br>    &quot;電車が遅れています&quot;,<br>    &quot;この本は面白いです&quot;,<br>    &quot;今日は雨が降っています&quot;,<br>    &quot;彼女は機械学習を勉強しています&quot;<br>]<br><br># Load multilingual sentence embedding model<br>model = SentenceTransformer(&quot;paraphrase-multilingual-MiniLM-L12-v2&quot;)<br><br># Encode sentences<br>emb_en = model.encode(english_sentences)<br>emb_ja = model.encode(japanese_sentences)<br><br># Combine embeddings for joint PCA<br>embeddings = np.vstack([emb_en, emb_ja])<br><br># Reduce to 2D using PCA<br>pca = PCA(n_components=2)<br>emb_2d = pca.fit_transform(embeddings)<br><br># Split projected points<br>en_2d = emb_2d[:len(english_sentences)]<br>ja_2d = emb_2d[len(english_sentences):]<br><br># Plot<br>plt.figure(figsize=(7, 6))<br>plt.scatter(en_2d[:, 0], en_2d[:, 1], label=&quot;English&quot;)<br>plt.scatter(ja_2d[:, 0], ja_2d[:, 1], label=&quot;Japanese&quot;)<br><br># Connect translation pairs<br>for i in range(len(english_sentences)):<br>    plt.plot(<br>        [en_2d[i, 0], ja_2d[i, 0]],<br>        [en_2d[i, 1], ja_2d[i, 1]],<br>        linewidth=0.8<br>    )<br><br>plt.title(&quot;PCA Projection of English and Japanese Sentence Embeddings&quot;)<br>plt.legend()<br>plt.show()</pre><p><em>For clarity, the visualization shown here uses a small illustrative subset of sentence pairs representative of such corpora.</em></p><h3>Observations from the PCA Projection</h3><p>The PCA projection of English and Japanese sentence embeddings is shown below. Each point corresponds to a sentence, and each line connects a translation pair.</p><figure><img alt="Scatter plot of Japanese and English embeddings after PCA reduction. Japanese embeddings are shown in orange, English embeddings in blue, illustrating their clustering patterns and overlap." src="https://cdn-images-1.medium.com/max/689/1*rn-5SNTIvvgl_scgN-53iA.png" /><figcaption>Figure 2: Principal Component Analysis (PCA) visualization comparing Japanese and English text embeddings in a 2D space.</figcaption></figure><p>Several observations can be made.</p><p>First, the embeddings do not exhibit a clear separation by language. This suggests that the dominant axes of variance are not primarily language-specific.</p><p>Second, many translation pairs remain spatially close even after projection, indicating that semantic alignment <strong>persists</strong> under dimensionality reduction.</p><p>Third, some translation pairs diverge noticeably. This is expected, as PCA preserves global variance rather than pairwise relationships, and <em>fine-grained semantic distinctions may be lost in low-dimensional projections.</em></p><h3>What this does and does not mean</h3><p>It is tempting to overinterpret visualizations like this, so it is worth being explicit.</p><p>This plot <em>does not prove</em> that Japanese and English are perfectly aligned in embedding space. It does not measure translation quality. It does not tell us which language is easier or harder to represent.</p><p>What it <em>does</em> suggest is more modest and more useful. Multilingual embedding models appear to prioritize semantic relationships over surface linguistic features such as script or word order. At least in this projection, meaning seems to matter more than language identity.</p><p>At the same time, the distortions introduced by dimensionality reduction are clearly visible. Some translation pairs drift apart not because the model failed, but because PCA flattened a complex space into two dimensions.</p><blockquote>Visualization builds intuition, not evidence.</blockquote><h3>Why this perspective matters</h3><p>Thinking about embeddings geometrically changes how we reason about multilingual AI. Instead of asking whether a model “understands” different languages, we ask how it organizes meaning numerically.</p><p>This shift removes some of the mystery around multilingual models. What looks like linguistic intelligence is often the result of careful mathematical alignment. Vectors, distances, and projections do the heavy lifting.</p><p>Seeing this makes the system feel less magical, but also more honest.</p><h3>A closing thought</h3><p>PCA plots like this are not answers. They are lenses.</p><p><strong>They remind us that language models operate in spaces defined by mathematics, not meaning.</strong> When different languages appear to coexist peacefully in those spaces, it is <em>not</em> because the model understands culture or grammar. It is because geometry <em>allows similar patterns to align</em>.</p><p>Understanding that does not diminish multilingual AI. It grounds it.</p><p>And sometimes, grounding is exactly what clarity requires.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7a0bec8e88a4" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Why I Think AI Is Really Applied Mathematics at Scale]]></title>
            <link>https://medium.com/@prutha1411/why-i-think-ai-is-really-applied-mathematics-at-scale-287a8233e065?source=rss-2dc0c262256------2</link>
            <guid isPermaLink="false">https://medium.com/p/287a8233e065</guid>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[mathematics]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[technology]]></category>
            <dc:creator><![CDATA[Prutha]]></dc:creator>
            <pubDate>Thu, 01 Jan 2026 07:05:31 GMT</pubDate>
            <atom:updated>2026-01-01T07:05:31.974Z</atom:updated>
            <content:encoded><![CDATA[<p>There was a moment when artificial intelligence stopped feeling magical to me.</p><p>Not because it became less impressive, but because I began to see what was happening beneath the surface. The more time I spent around AI systems, the clearer it became that they were not thinking, reasoning, or understanding in any human sense.</p><p>They were <strong>calculating</strong>.</p><p>That realization changed how I understood AI entirely. Math is not just a tool used in artificial intelligence. It is the language AI operates in.</p><h3>When data stops being information</h3><p>Humans experience data through <em>meaning</em>.<br>A sentence carries emotion.<br>An image tells a story.<br>A sound implies urgency or calm.</p><p>For an AI system, <em>none</em> of that exists.</p><p>Before a model can work with anything, it must first be translated into numbers. Text, images, audio, and signals all become numerical representations. This is not a technical detail. It is a requirement.</p><p>Once data becomes numbers, it becomes <em>geometry</em>.</p><p>Words turn into vectors.<br>Images become matrices.<br>Patterns become positions in high dimensional space.</p><p>In this space, meaning is defined by distance. Similar things are closer together. Different things are farther apart. AI does not interpret meaning. It measures relationships.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*6m6hv934Zm0MS-sCu0xZ1Q.jpeg" /><figcaption>Math as the language of AI.</figcaption></figure><blockquote><strong>Without mathematics, AI has no way to represent the world at all.</strong></blockquote><h3>Learning is optimization, not understanding</h3><p>When we say an AI model is learning, it is easy to imagine insight or comprehension taking place. In reality, learning is far more mechanical.</p><p>A model makes a prediction.<br>That prediction is compared to reality.<br>The difference becomes a number called an error.</p><p>From there, math takes over.</p><p>The system adjusts its internal parameters slightly to reduce that error. Then it repeats the process. Again and again.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*N606EPO4iaUHZs0-bOoESQ.jpeg" /><figcaption>How AI learns.</figcaption></figure><p>This loop is driven by optimization and calculus. Gradients point toward improvement. Step sizes control stability. Convergence is a mathematical property, not a sign of intelligence.</p><blockquote><strong>AI does not know when it is right. It only knows when it is less wrong.</strong></blockquote><h3>Intelligence, but probabilistic</h3><p>AI systems often appear confident. They return clear answers, labels, or predictions. But beneath that confidence lies uncertainty.</p><p><strong><em>Almost everything an AI system produces is probabilistic.</em></strong></p><blockquote>It does not say, “This is correct.”<br>It says, “This is the most likely option given the data.”</blockquote><p>Every output exists near a decision boundary. Confidence scores, likelihoods, and distributions are not optional features. They are the core of how AI reasons.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BoCpG1ijFJ2kaP7O9QR2dw.jpeg" /><figcaption>Human vs AI Understanding.</figcaption></figure><p>Humans rely on context, experience, and intuition. AI relies on numbers, distances, and probabilities. Math forces AI to be honest about uncertainty, even when interfaces hide it.</p><h3>Why constraints matter more than cleverness</h3><p>It is tempting to believe that more complex models automatically lead to better intelligence. Math quickly challenges that assumption.</p><p>Every AI system operates under constraints.<br>* Limited data.<br>* Limited computation.<br>* Limited tolerance for error.</p><p>These constraints are mathematical realities. Trade offs between accuracy and generalization, simplicity and performance, efficiency and capability are governed by theory, not preference.</p><p><em>Sometimes a simpler model performs better in practice.</em> Not because it is smarter, but because it aligns better with the problem’s constraints. Math does not just enable AI. It disciplines it.</p><h3>The more time I spend with AI, the less I think of it as artificial intelligence and the more I think of it as applied mathematics at scale.</h3><p>That perspective does not diminish what AI can do. It grounds it.</p><p><strong>If you want to truly understand AI, not just use it or prompt it, you eventually have to learn its language.</strong></p><p><strong>That language is math.</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=287a8233e065" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How Studying Japanese Changed the Way I Think About NLP]]></title>
            <link>https://medium.com/@prutha1411/how-studying-japanese-changed-the-way-i-think-about-nlp-a253793b68d5?source=rss-2dc0c262256------2</link>
            <guid isPermaLink="false">https://medium.com/p/a253793b68d5</guid>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[linguistics]]></category>
            <category><![CDATA[naturallanguageprocessing]]></category>
            <category><![CDATA[large-language-models]]></category>
            <category><![CDATA[machine-learning]]></category>
            <dc:creator><![CDATA[Prutha]]></dc:creator>
            <pubDate>Sun, 14 Dec 2025 13:51:54 GMT</pubDate>
            <atom:updated>2025-12-14T13:51:54.611Z</atom:updated>
            <content:encoded><![CDATA[<h3>Why language structure matters more than we think in modern Natural Language Processing</h3><p>I started studying Japanese nearly four years ago out of personal interest, for reasons entirely unrelated to machine learning. What I did not expect was that, years later, it would fundamentally alter how I think about Natural Language Processing. In particular, it exposed how many so-called standard NLP abstractions are not universal properties of language, but artifacts of English.</p><p>Most NLP systems follow a familiar pipeline. Text is tokenized, mapped to embeddings, and passed through a model optimized for a downstream task. This workflow feels language-agnostic. Learning Japanese made it clear that many of its assumptions only hold because English conveniently satisfies them.</p><h3>English-Centric Assumptions in NLP</h3><p>A large fraction of NLP intuition relies on implicit assumptions:</p><ul><li>Word boundaries are clearly defined</li><li>Tokens approximate semantic units</li><li>Syntax explicitly encodes relationships</li><li>Linear order carries most of the meaning</li></ul><p>These assumptions hold well for English and other whitespace-delimited languages. Even subword tokenization preserves the intuition that language can be segmented into relatively stable units before modeling begins.</p><p>Japanese violates all of these assumptions simultaneously.</p><figure><img alt="A Venn diagram comparing common NLP assumptions and properties of the Japanese language. One side lists clear word boundaries, tokens as semantic units, explicit syntax, and linear structure. The other side lists no whitespace, context-dependent segmentation, frequent omission, and pragmatics-heavy meaning. The overlap highlights shared properties such as statistical regularities, reliance on context, and meaning emerging from usage." src="https://cdn-images-1.medium.com/max/1024/1*afNhVE-JOYjyxBLLVq2JEg.jpeg" /><figcaption>Mismatch Between Common NLP Assumptions and Japanese Language Structure</figcaption></figure><h3>Tokenization as a Modeling Decision</h3><p>Japanese text has no spaces between words, and a single sentence can often be segmented in multiple valid ways depending on interpretation. There is no canonical “correct” tokenization independent of context.</p><p>As a result, tokenization ceases to be a neutral preprocessing step. It becomes an explicit modeling choice that constrains the hypothesis space before learning even begins.</p><p>This reframed how I think about tokenizers. Instead of viewing tokens as atomic carriers of meaning, I began to see them as inductive biases; choices that shape which interpretations a model can efficiently represent.</p><figure><img alt="A side-by-side flow diagram of two NLP pipelines. The first shows raw text processed by a fixed tokenizer before modeling, representing tokenization as neutral preprocessing. The second shows raw text undergoing a segmentation choice that introduces interpretation bias before tokenization and modeling, representing tokenization as a modeling decision." src="https://cdn-images-1.medium.com/max/1024/1*xxSp2ZI-yQIwBjHu-qfs_A.jpeg" /><figcaption>Tokenization as Preprocessing Versus Tokenization as a Modeling Decision</figcaption></figure><h3>Context, Omission, and Implicit Meaning</h3><p>Japanese frequently omits subjects, objects, and other syntactic elements when they are pragmatically inferable. Meaning is reconstructed using discourse context rather than explicit surface structure.</p><p>Many NLP datasets and benchmarks implicitly assume explicit predicate–argument structure. Japanese reveals how fragile those assumptions are. Much of human language understanding operates on inferred, not stated, information.</p><p>From a modeling perspective, this highlights a gap between syntactic completeness and semantic sufficiency — a gap that accuracy-based metrics often fail to capture.</p><figure><img alt="A single Japanese sentence shown as surface text, followed by two different valid segmentations into tokens. Each segmentation groups characters differently, illustrating that multiple tokenizations are possible and that segmentation choices affect semantic interpretation." src="https://cdn-images-1.medium.com/max/1024/1*xfNPgI0vBTUikiXDIGZpHg.jpeg" /><figcaption>Multiple Valid Segmentations of the Same Japanese Sentence</figcaption></figure><h3>Ambiguity Is Not an Error</h3><p>Another shift was how I think about ambiguity. In Japanese, ambiguity is often intentional and only resolvable through context. Multiple interpretations can be valid until disambiguated by downstream information.</p><p>This has direct implications for evaluation. When a model produces an output that differs from a reference, is it hallucinating; or is it selecting a different, but plausible, interpretation?</p><p>Japanese makes it clear that many “errors” in NLP are actually mismatches between evaluation assumptions and linguistic reality.</p><h3>Implications for Modern NLP</h3><p>These insights matter directly for:</p><ul><li>Multilingual and cross-lingual models</li><li>Low-resource language transfer</li><li>Tokenizer design</li><li>Prompt sensitivity in large language models</li><li>Evaluation of generative systems</li></ul><p>English-centric intuitions silently influence architecture choices and benchmarks. Languages like Japanese surface these blind spots early by violating multiple assumptions at once.</p><h3>Conclusion</h3><p>Studying Japanese didn’t just give me exposure to a new language. It forced me to interrogate what NLP systems assume about language in the first place.</p><p>I now think of language models less as text processors and more as systems that negotiate meaning under uncertainty. If we want models that generalize across languages (rather than perform well on English-shaped benchmarks ) we need to take those uncertainties seriously.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a253793b68d5" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>