<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: annamalai2912</title>
    <description>The latest articles on Forem by annamalai2912 (@uzusss).</description>
    <link>https://forem.com/uzusss</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1790820%2F996a7581-eaff-44a8-b3e4-f1e0e25befa2.jpeg</url>
      <title>Forem: annamalai2912</title>
      <link>https://forem.com/uzusss</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/uzusss"/>
    <language>en</language>
    <item>
      <title>Why Most NLP Projects Fail Outside Jupyter Notebook.</title>
      <dc:creator>annamalai2912</dc:creator>
      <pubDate>Mon, 15 Dec 2025 19:06:21 +0000</pubDate>
      <link>https://forem.com/uzusss/why-most-nlp-projects-fail-outside-jupyter-notebook-2hl</link>
      <guid>https://forem.com/uzusss/why-most-nlp-projects-fail-outside-jupyter-notebook-2hl</guid>
      <description>&lt;p&gt;Abstract&lt;/p&gt;

&lt;p&gt;NLP projects have a peculiar habit: they work perfectly inside Jupyter Notebook and immediately forget how to function once moved to a local environment. This paper explores this phenomenon through personal experimentation with generative AI and NLP systems. While models appear accurate, fast, and cooperative during notebook-based development, they often respond with dependency errors, degraded accuracy, or complete silence when executed elsewhere. This work examines why this happens and argues that the problem lies not in NLP itself, but in how we confuse experiments with systems.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Introduction: The Notebook That Loved Me Back&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Jupyter Notebook is an incredibly supportive environment. It never complains about dependency conflicts. It rarely asks uncomfortable questions about system libraries. It happily runs your NLP pipeline and gives you confidence in record time.&lt;/p&gt;

&lt;p&gt;You build a text classifier in twenty minutes. It works beautifully. You feel productive. You feel smart.&lt;/p&gt;

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

&lt;p&gt;Then you run the same code locally.&lt;/p&gt;

&lt;p&gt;Suddenly, pip refuses to cooperate, your tokenizer behaves differently, and the accuracy drops for reasons that cannot be explained without staring into the void. The model has not changed. Only the environment has. Yet everything breaks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6zr9ghl7wbt6zjnr70fz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6zr9ghl7wbt6zjnr70fz.png" alt="local machine not works" width="687" height="734"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is not an isolated experience. It is a pattern.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;When Accuracy Is a Notebook Feature&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Inside notebooks, NLP models feel intelligent. They classify correctly, generate fluent text, and rarely surprise you in unpleasant ways. Outside notebooks, the same models appear confused by punctuation, emojis, or perfectly reasonable input.&lt;/p&gt;

&lt;p&gt;The issue is not that the model has become worse. It is that the notebook quietly helped you more than you realized. Preprocessing steps ran in a specific order. Cached libraries behaved politely. Hidden defaults did what defaults do best: hide complexity.&lt;/p&gt;

&lt;p&gt;Once those invisible helpers disappear, the model is exposed to reality—and reality is noisy.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Dependency Errors: The Unofficial Unit Test&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If a project works in Jupyter but fails locally, the error message usually begins with something like:&lt;/p&gt;

&lt;p&gt;“This version is incompatible with…”&lt;/p&gt;

&lt;p&gt;At this moment, developers often question their life choices. Notebook environments often pre-install a delicate but functional combination of libraries. Local environments, on the other hand, demand precision and punish assumptions.&lt;/p&gt;

&lt;p&gt;Ironically, these failures are not signs of weak NLP knowledge. They are symptoms of insufficient environment control. The model is innocent. The system is guilty.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Preprocessing: The Silent Accuracy Killer&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Most preprocessing logic is written quickly and forgotten even faster. Lowercasing happens here, regex cleaning happens there, and tokenization “just works.”&lt;/p&gt;

&lt;p&gt;Until it doesn’t.&lt;/p&gt;

&lt;p&gt;When training and inference pipelines quietly drift apart, accuracy drops without warning. The model still loads. The code still runs. The outputs simply stop making sense. This is one of the most frustrating failures because nothing appears broken—except the results.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Jupyter Is an Experiment, Not a Home&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Jupyter Notebook is excellent for exploration. It is terrible at enforcing discipline. It allows global state, hidden execution order, and magic variables. Production systems do not tolerate such behavior.&lt;/p&gt;

&lt;p&gt;Real NLP systems expect:&lt;/p&gt;

&lt;p&gt;predictable inputs&lt;/p&gt;

&lt;p&gt;stable preprocessing&lt;/p&gt;

&lt;p&gt;versioned models&lt;/p&gt;

&lt;p&gt;and the occasional error&lt;/p&gt;

&lt;p&gt;Notebook-based projects often provide none of these, which explains why they panic when exposed to real users.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Discussion: NLP Is Not the Problem&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After enough failed migrations, a pattern becomes obvious. The model did not fail. The system never existed in the first place.&lt;/p&gt;

&lt;p&gt;What worked in the notebook was an experiment. What failed locally was an attempt to treat that experiment as software. NLP did not betray us. Our expectations did.&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;Conclusion: From Magic to Engineering&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If an NLP project only works inside Jupyter Notebook, it is not broken—it is unfinished.&lt;/p&gt;

&lt;p&gt;The solution is not a better model or a bigger dataset. It is boring, unglamorous engineering: environment control, pipeline consistency, and system thinking.&lt;/p&gt;

&lt;p&gt;Once those are in place, the same models that failed outside notebooks suddenly start behaving like professionals.&lt;/p&gt;

&lt;p&gt;Final Thought&lt;/p&gt;

&lt;p&gt;Jupyter Notebook is a wonderful place to fall in love with NLP.&lt;br&gt;
Just don’t expect it to raise your project for the real world.&lt;/p&gt;

</description>
      <category>nlp</category>
      <category>machinelearning</category>
      <category>ai</category>
      <category>deeplearning</category>
    </item>
    <item>
      <title>CharGen</title>
      <dc:creator>annamalai2912</dc:creator>
      <pubDate>Mon, 15 Dec 2025 11:02:34 +0000</pubDate>
      <link>https://forem.com/uzusss/chargen-3ieh</link>
      <guid>https://forem.com/uzusss/chargen-3ieh</guid>
      <description>&lt;p&gt;&lt;em&gt;This post is my submission for &lt;a href="https://dev.to/deved/build-apps-with-google-ai-studio"&gt;DEV Education Track: Build Apps with Google AI Studio&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What I Built&lt;/p&gt;

&lt;p&gt;I built a Game Character Generator app using Google AI Studio’s Imagen API that creates highly detailed, original game characters based on user-selected features like appearance, weapons, abilities, environment, and art style.&lt;/p&gt;

&lt;p&gt;The core of the app is a structured prompt system that dynamically combines user inputs (genre, character type, powers, pose, environment, etc.) into a single optimized prompt for image generation. I focused on ensuring the characters are game-ready, original, and visually consistent, avoiding copyrighted designs.&lt;/p&gt;

&lt;p&gt;Key features used:&lt;/p&gt;

&lt;p&gt;Imagen image generation via Google AI Studio&lt;/p&gt;

&lt;p&gt;Advanced prompt engineering with modular feature inputs&lt;/p&gt;

&lt;p&gt;Constraint-based prompting for originality and quality&lt;/p&gt;

&lt;p&gt;Demo&lt;/p&gt;

&lt;p&gt;I tested the app by generating multiple character types such as cyberpunk assassins, fantasy warriors, and sci-fi soldiers, each with different poses, moods, and environments.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://ai.studio/apps/drive/1I8BPWstKRQoeAliu1msNBKxfvFu9s7M6?fullscreenApplet=true" rel="noopener noreferrer"&gt;https://ai.studio/apps/drive/1I8BPWstKRQoeAliu1msNBKxfvFu9s7M6?fullscreenApplet=true&lt;/a&gt;&lt;br&gt;
👉 &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1isinq54scdbwgrm5k94.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1isinq54scdbwgrm5k94.png" alt=" " width="800" height="307"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The app demonstrates how prompt structure directly affects output quality and consistency.&lt;/p&gt;

&lt;p&gt;My Experience&lt;/p&gt;

&lt;p&gt;This project significantly improved my understanding of prompt engineering for image models, especially how breaking prompts into clear, descriptive sections leads to better results than long unstructured text.&lt;/p&gt;

&lt;p&gt;What I learned:&lt;/p&gt;

&lt;p&gt;How to design prompts that scale with multiple user-controlled features&lt;/p&gt;

&lt;p&gt;How constraints (like “original design only”) improve generation reliability&lt;/p&gt;

&lt;p&gt;How Google AI Studio simplifies experimentation with powerful image models&lt;/p&gt;

&lt;p&gt;What surprised me most was how small changes in phrasing—like specifying camera angle or lighting—dramatically improved the cinematic quality of the generated characters.&lt;/p&gt;

&lt;p&gt;Overall, this track helped me move from “just generating images” to building a real, usable AI-powered application.&lt;/p&gt;

&lt;p&gt;prompt:&lt;/p&gt;

&lt;p&gt;Create a highly detailed, original game character concept.&lt;br&gt;
Character Type: {character_type}&lt;br&gt;
Game Genre: {game_genre}&lt;br&gt;
Art Style: {art_style}&lt;br&gt;
Appearance:&lt;br&gt;
Gender: {gender}&lt;br&gt;
Age: {age_range}&lt;br&gt;
Body Type: {body_type}&lt;br&gt;
Height: {height}&lt;br&gt;
Skin Tone: {skin_tone}&lt;br&gt;
Facial Structure: {face_shape}&lt;br&gt;
Eye Color &amp;amp; Style: {eye_details}&lt;br&gt;
Hair Style &amp;amp; Color: {hair_details}&lt;br&gt;
Scars / Tattoos / Marks: {special_marks}&lt;br&gt;
Clothing &amp;amp; Armor:&lt;br&gt;
Outfit Style: {outfit_style}&lt;br&gt;
Armor Type: {armor_type}&lt;br&gt;
Material: {materials}&lt;br&gt;
Color Palette: {color_palette}&lt;br&gt;
Accessories: {accessories}&lt;br&gt;
Footwear: {footwear}&lt;br&gt;
Weapons &amp;amp; Gear:&lt;br&gt;
Primary Weapon: {primary_weapon}&lt;br&gt;
Secondary Weapon: {secondary_weapon}&lt;br&gt;
Magic / Tech Device: {device}&lt;br&gt;
Backpack / Utility Gear: {utility}&lt;br&gt;
Abilities &amp;amp; Theme:&lt;br&gt;
Power Type: {power_type}&lt;br&gt;
Element (if any): {element}&lt;br&gt;
Personality: {personality_traits}&lt;br&gt;
Alignment: {alignment}&lt;br&gt;
Backstory Mood: {story_mood}&lt;br&gt;
Pose &amp;amp; Expression:&lt;br&gt;
Pose: {pose}&lt;br&gt;
Facial Expression: {expression}&lt;br&gt;
Action State: {action_state}&lt;br&gt;
Environment:&lt;br&gt;
Background Setting: {environment}&lt;br&gt;
Time of Day: {time_of_day}&lt;br&gt;
Weather / Atmosphere: {atmosphere}&lt;br&gt;
Rendering &amp;amp; Quality:&lt;br&gt;
Camera Angle: {camera_angle}&lt;br&gt;
Lighting Style: {lighting}&lt;br&gt;
Detail Level: ultra-detailed, cinematic, 8K quality&lt;br&gt;
Style Keywords: game-ready, concept art, character sheet quality&lt;br&gt;
Constraints:&lt;br&gt;
No copyrighted characters&lt;br&gt;
Original design only&lt;br&gt;
Clean anatomy&lt;br&gt;
High visual clarity&lt;/p&gt;

</description>
      <category>deved</category>
      <category>learngoogleaistudio</category>
      <category>ai</category>
      <category>gemini</category>
    </item>
  </channel>
</rss>
