<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: albe_sf</title>
    <description>The latest articles on DEV Community by albe_sf (@albertomontagnese).</description>
    <link>https://dev.to/albertomontagnese</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3928059%2F8788e7f6-c941-4959-b1cf-18686efc9034.jpg</url>
      <title>DEV Community: albe_sf</title>
      <link>https://dev.to/albertomontagnese</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/albertomontagnese"/>
    <language>en</language>
    <item>
      <title>Anthropic's Opus 5 Release Is About Production Engineering, Not Just Performance</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Fri, 31 Jul 2026 15:02:55 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/anthropics-opus-5-release-is-about-production-engineering-not-just-performance-4ga3</link>
      <guid>https://dev.to/albertomontagnese/anthropics-opus-5-release-is-about-production-engineering-not-just-performance-4ga3</guid>
      <description>&lt;p&gt;Anthropic released Claude Opus 5 this month, and while it closes the capability gap with their frontier models, the most significant updates are not about raw intelligence. The real story for builders is a new focus on production-ready features that provide more control and predictability, a clear signal that we are moving from an era of capability demos to one of pragmatic engineering.&lt;/p&gt;

&lt;h2&gt;
  
  
  what actually changed
&lt;/h2&gt;

&lt;p&gt;The key updates in Opus 5 are less about what the model can do and more about &lt;em&gt;how&lt;/em&gt; you can control its work. The model reportedly ships with several features aimed directly at developers building real applications.&lt;/p&gt;

&lt;p&gt;First is the concept of "thinking on by default". This addresses a common frustration where models provide fast but shallow answers to complex prompts. By allocating more inference time by default, the model is better positioned to avoid superficial responses. For more difficult tasks, there is now an "explicit max effort tier," allowing you to signal that a particular request requires deeper reasoning without resorting to complex prompt engineering.&lt;/p&gt;

&lt;p&gt;Finally, the inclusion of a 512-token prompt-cache minimum is a direct nod to production concerns around latency and cost. It’s a practical optimization for applications that repeatedly use large system prompts or few-shot examples.&lt;/p&gt;

&lt;h2&gt;
  
  
  the economics of frontier models
&lt;/h2&gt;

&lt;p&gt;For the first time in a while, a new flagship model has been released that significantly increases capability without increasing the price. Opus 5 holds the previous generation's price point of $5 per million input tokens and $25 per million output tokens while delivering performance that approaches Anthropic's more expensive, limited-access models.&lt;/p&gt;

&lt;p&gt;This changes the calculus for developers deciding between a cheaper, faster model and a more capable one. When the top-tier model includes explicit controls for performance and cost, it becomes a more viable default choice. You can imagine an implementation that routes requests based on complexity, using the standard tier for most tasks and reserving the max effort mode for critical reasoning steps.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_claude_completion&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;is_high_stakes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;anthropic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Anthropic&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="c1"&gt;# Use a different model configuration for high-stakes reasoning
&lt;/span&gt;    &lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;claude-opus-5-max-effort&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;is_high_stakes&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;claude-opus-5&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

    &lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;max_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;4096&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  implications for agentic systems
&lt;/h2&gt;

&lt;p&gt;These features are particularly relevant for building agentic workflows. A common failure mode for agents is a single weak link in a long chain of reasoning. A model that rushes an answer or misunderstands a critical step can derail an entire multi-step task.&lt;/p&gt;

&lt;p&gt;Features that promote more deliberate reasoning, like default thinking time and an explicit effort toggle, give developers more reliable primitives to build upon. Combined with what is reported as the lowest misaligned-behavior score of any Claude model, these updates are foundational for building agents that can be trusted with more autonomy.&lt;/p&gt;

&lt;p&gt;The release of Opus 5 feels like a turning point. The focus is shifting from simply topping leaderboards to addressing the operational realities of shipping AI products. For engineers in the trenches, this focus on reliability, control, and predictable economics is the most important development of all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.anthropic.com/" rel="noopener noreferrer"&gt;https://www.anthropic.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>claude</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Cursor's New Router Is the Real Agentic Shift</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Wed, 29 Jul 2026 15:03:21 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/cursors-new-router-is-the-real-agentic-shift-la7</link>
      <guid>https://dev.to/albertomontagnese/cursors-new-router-is-the-real-agentic-shift-la7</guid>
      <description>&lt;p&gt;The endless debate over which model to use for which task is getting a new answer: let the router decide. With its latest updates, Cursor is embedding an intelligent model router directly into the IDE, abstracting the choice away and focusing on the user's intent instead. This, combined with more serious controls for team-wide agent infrastructure, marks a significant shift from manually prompting different models to managing a unified, automated development environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  intelligent routing by default
&lt;/h2&gt;

&lt;p&gt;The core of the recent change is Cursor Router, which now powers the 'Auto' mode for model selection. Instead of you explicitly picking between Grok, Claude, or another model, the router analyzes the request and sends it to the best model for the job.&lt;/p&gt;

&lt;p&gt;It operates on three optimization modes you can select:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Intelligence&lt;/strong&gt;: Routes to frontier models for tasks that require maximum capability, equivalent to the most powerful and expensive options.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Balance&lt;/strong&gt;: Aims for strong quality, using the kind of high-performance models most developers would use for daily tasks.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Cost&lt;/strong&gt;: Prioritizes token efficiency, using capable models that get the job done while minimizing spend.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This moves the developer's decision up a level of abstraction. You are no longer thinking about &lt;code&gt;claude-opus-5&lt;/code&gt; vs &lt;code&gt;grok-4.5&lt;/code&gt;. You are thinking about whether the current task requires raw power or cost efficiency. For teams, this is a powerful governance tool. An admin can set the default optimization mode for different groups, ensuring that routine tasks don't accidentally burn through the budget reserved for complex R&amp;amp;D.&lt;/p&gt;

&lt;h2&gt;
  
  
  team infrastructure gets serious
&lt;/h2&gt;

&lt;p&gt;Beyond routing, the updates introduce more robust support for managing agents and tools at a team level. Admins can now configure Team MCP (Mission Critical Prompt) servers once and distribute them across the entire organization. This allows team members to install approved, pre-configured integrations locally without dealing with the setup themselves.&lt;/p&gt;

&lt;p&gt;This is a quiet but critical step for real enterprise adoption. It turns agents from a collection of individual developer setups into managed, consistent infrastructure. When a new engineer joins the team, they can inherit the entire suite of vetted tools and agents, rather than rebuilding it from scratch.&lt;/p&gt;

&lt;p&gt;This might look like a simple JSON config managed by the team lead, ensuring everyone is using the same internal APIs and tools through the IDE.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcp_servers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"internal-docs-retriever"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://mcp.internal.acme.corp/docs"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"auth_provider"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"oidc"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"enabled_for_groups"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"backend-eng"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ml-platform"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ci-cd-agent-trigger"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://mcp.internal.acme.corp/cicd"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"auth_provider"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"oidc"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"enabled_for_groups"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"devops"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"backend-eng"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"router_defaults"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"default_mode"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Balance"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"allowed_modes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Balance"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Cost"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"blocked_models"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This kind of centralized configuration is how you scale agentic development from a solo tool to a team-wide workflow. It provides consistency and control without stifling the developer's inner loop.&lt;/p&gt;

&lt;h2&gt;
  
  
  the so-what
&lt;/h2&gt;

&lt;p&gt;The main takeaway is that the AI-native IDE is becoming an orchestration layer. The cognitive overhead of selecting, configuring, and managing a zoo of different models and agents for every little task is being automated away. By handling model routing and team-wide tool configuration, the IDE lets you focus on defining the problem you want to solve.&lt;/p&gt;

&lt;p&gt;For builders, this means your interaction with AI is moving from the tactical (which model?) to the strategic (what outcome?). It's a fundamental change in the developer experience that points toward a future where the entire codebase is managed at a higher level of abstraction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.cursor.com/changelog" rel="noopener noreferrer"&gt;What's New in Cursor — Latest Updates &amp;amp; Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>devtools</category>
      <category>agents</category>
      <category>programming</category>
    </item>
    <item>
      <title>Gemini's New Flash Models Change How You Control Outputs</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Mon, 27 Jul 2026 15:03:42 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/geminis-new-flash-models-change-how-you-control-outputs-l6e</link>
      <guid>https://dev.to/albertomontagnese/geminis-new-flash-models-change-how-you-control-outputs-l6e</guid>
      <description>&lt;p&gt;Google just pushed Gemini 3.6 Flash and 3.5 Flash-Lite to general availability. While the new models target specific builder needs—cost-effective subagents and more efficient planning—the most significant change is the deprecation of &lt;code&gt;temperature&lt;/code&gt;, &lt;code&gt;top_p&lt;/code&gt;, and &lt;code&gt;top_k&lt;/code&gt;. This isn't a minor API tweak; it forces a more disciplined, instruction-driven approach to prompting.&lt;/p&gt;

&lt;h2&gt;
  
  
  two new specialized tools
&lt;/h2&gt;

&lt;p&gt;The July 21st release brought two distinct models into production, each with a clear purpose.&lt;/p&gt;

&lt;p&gt;First, Gemini 3.6 Flash is positioned as an upgrade designed to address direct developer feedback about output verbosity. It features improved token efficiency and better capabilities for code and agentic planning, all at a lower price point than its predecessor. This is the model you use for general tasks where you need a balance of performance and cost, with less unwanted chatter in the response.&lt;/p&gt;

&lt;p&gt;Second, Gemini 3.5 Flash-Lite is a purpose-built tool for a specific job: high-volume automation. It’s described as a low-latency, highly cost-effective option for “subagent” tasks. This signals a clear direction toward building more complex, multi-agent systems where smaller, faster, cheaper models can be spun up to handle discrete, repetitive parts of a larger workflow, while a more powerful model acts as the orchestrator.&lt;/p&gt;

&lt;h2&gt;
  
  
  the end of temperature tuning
&lt;/h2&gt;

&lt;p&gt;The most impactful change for engineers using the API is the deprecation of the main sampling parameters. For &lt;code&gt;gemini-3.6-flash&lt;/code&gt; and &lt;code&gt;gemini-3.5-flash-lite&lt;/code&gt;, the &lt;code&gt;temperature&lt;/code&gt;, &lt;code&gt;top_p&lt;/code&gt;, and &lt;code&gt;top_k&lt;/code&gt; parameters are now ignored. The familiar workflow of cranking up the temperature for more “creative” outputs or lowering it for more deterministic ones is gone.&lt;/p&gt;

&lt;p&gt;The official guidance is to now use system instructions to control model behavior. To get deterministic responses, you must define explicit rules for the model to follow. This shifts the burden of control from tweaking API parameters to authoring more robust prompts. Instead of relying on a stochastic sampler to vary your outputs, you now have to explicitly architect the desired output structure, style, and constraints within your instructions.&lt;/p&gt;

&lt;h2&gt;
  
  
  what this means for your api calls
&lt;/h2&gt;

&lt;p&gt;This change requires a practical shift in how you structure your code. You can no longer pass a &lt;code&gt;generation_config&lt;/code&gt; object with sampling parameters and expect it to have an effect. The logic for controlling output must move into the &lt;code&gt;system_instruction&lt;/code&gt; content.&lt;/p&gt;

&lt;p&gt;Here’s a conceptual example of the shift. Previously, you might have done this to get a concise JSON output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Before: Relying on sampling parameters
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;google.generativeai&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;

&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;GenerativeModel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;gemini-1.5-flash&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# An older model
&lt;/span&gt;
&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Extract the user&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s name and city from this message: &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Hi, I&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;m Alex from Toronto.&lt;/span&gt;&lt;span class="sh"&gt;'"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;generation_config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;temperature&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;# Low temp for factual extraction
&lt;/span&gt;        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;top_p&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;response_mime_type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;application/json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, with the new models, you would achieve determinism through explicit instructions, not sampling config.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# After: Using explicit system instructions
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;google.generativeai&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;

&lt;span class="c1"&gt;# New models ignore temperature, top_p, top_k
&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;GenerativeModel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;gemini-3.6-flash&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;system_instruction&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;You are a text processing utility. Your only function is to extract entities from user text. Respond with ONLY a valid, minified JSON object containing &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; and &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;city&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; keys. Do not add any commentary or markdown formatting.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hi, I&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;m Alex from Toronto.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;generation_config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;# Note: temperature, top_p, top_k are ignored here
&lt;/span&gt;        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;response_mime_type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;application/json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This approach forces better prompt engineering hygiene and makes the model's expected behavior more explicit and auditable, as the instructions live alongside the code.&lt;/p&gt;

&lt;h2&gt;
  
  
  the takeaway
&lt;/h2&gt;

&lt;p&gt;This release is more than a model version bump. It’s a statement about where API-driven generation is heading. The move away from sampling parameters toward explicit system instructions is a bet on structured prompting over probabilistic tweaking. For builders, this means the core skill is less about fiddling with API knobs and more about architecting clear, unambiguous instructions for the model to execute. It’s a shift toward treating the model less like a creative oracle and more like a deterministic function that you program with natural language.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://ai.google.dev/" rel="noopener noreferrer"&gt;Gemini API Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>machinelearning</category>
      <category>programming</category>
    </item>
    <item>
      <title>Qwen2 is here. It’s time to re-evaluate your default model choices.</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Fri, 24 Jul 2026 15:03:10 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/qwen2-is-here-its-time-to-re-evaluate-your-default-model-choices-15gk</link>
      <guid>https://dev.to/albertomontagnese/qwen2-is-here-its-time-to-re-evaluate-your-default-model-choices-15gk</guid>
      <description>&lt;p&gt;The open-source model landscape just got more competitive. Alibaba Cloud's release of the Qwen2 series offers a family of models that are strong performers across the board, forcing a re-evaluation of what should be the default choice for many common tasks. This isn't just another incremental update; it's a new set of tools that excels in areas like long-context reasoning and multilingual applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  what is qwen2
&lt;/h2&gt;

&lt;p&gt;Qwen2 is a series of pre-trained and instruction-tuned language models ranging from a nimble 0.5 billion parameters up to a powerful 72 billion parameter version. Unlike some releases that focus on a single size, this provides a spectrum of options, allowing you to select the right balance of performance and computational cost for your specific use case. The family also includes a Mixture-of-Experts (MoE) model.&lt;/p&gt;

&lt;p&gt;The models were trained on a significantly expanded dataset that now includes 27 additional languages beyond English and Chinese. This makes the Qwen2 models a compelling option for anyone building applications for a global audience. Performance is strong across standard benchmarks, with the larger models showing state-of-the-art results in language understanding, coding, and mathematics.&lt;/p&gt;

&lt;h2&gt;
  
  
  the long-context advantage
&lt;/h2&gt;

&lt;p&gt;A key feature of the Qwen2 series, particularly the 72B model, is its ability to handle long context windows. Some models in the family support up to 128K tokens, which is a significant capability for complex tasks. This allows for more sophisticated applications involving large document analysis, detailed summarization, and more coherent multi-turn conversations without losing track of earlier parts of the interaction.&lt;/p&gt;

&lt;p&gt;This extended context is enabled by architectural choices like Group Query Attention (GQA), which helps manage the computational load of long sequences, providing a better balance between efficiency and performance. For developers working on advanced RAG systems or building agents that need to process and reason over extensive information, this is a critical feature that makes Qwen2 a serious contender.&lt;/p&gt;

&lt;h2&gt;
  
  
  getting started with qwen2
&lt;/h2&gt;

&lt;p&gt;Thanks to the open-source release, you can run Qwen2 models locally or on your own infrastructure. The models are available on Hugging Face, making them easy to integrate into existing workflows built with the &lt;code&gt;transformers&lt;/code&gt; library. Getting a model up and running is straightforward.&lt;/p&gt;

&lt;p&gt;Here’s a quick example of how you might load the Qwen2-72B instruction-tuned model and run a simple inference:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;transformers&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AutoModelForCausalLM&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;AutoTokenizer&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;

&lt;span class="n"&gt;device&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cuda&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cuda&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;is_available&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cpu&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="n"&gt;model_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Qwen/Qwen2-72B-Instruct&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="n"&gt;tokenizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AutoTokenizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_pretrained&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model_name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AutoModelForCausalLM&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_pretrained&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;torch_dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;auto&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;device_map&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;auto&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;You are a senior DevOps engineer. Write a brief summary of the key considerations for implementing a zero-downtime deployment strategy for a containerized microservice.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;messages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;system&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;You are a helpful assistant.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tokenizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;apply_chat_template&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tokenize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;add_generation_prompt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;model_inputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;tokenizer&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;return_tensors&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;generated_ids&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model_inputs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;input_ids&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;max_new_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;512&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;generated_ids&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="n"&gt;output_ids&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input_ids&lt;/span&gt;&lt;span class="p"&gt;):]&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;input_ids&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;output_ids&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model_inputs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;input_ids&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;generated_ids&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tokenizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;batch_decode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;generated_ids&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;skip_special_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This snippet demonstrates the standard process for using a Hugging Face model. You load the tokenizer and the model, structure your prompt using the chat template, and generate a response. The &lt;code&gt;device_map="auto"&lt;/code&gt; argument helps distribute the large model across available hardware.&lt;/p&gt;

&lt;h2&gt;
  
  
  so what
&lt;/h2&gt;

&lt;p&gt;The release of Qwen2 is another significant step forward for open-source AI. It provides a credible, high-performance alternative to established models, particularly for those who need strong multilingual and long-context capabilities. The variety of model sizes means there's a practical entry point for many different projects. When you start your next build, don't just reach for the usual defaults. Take the time to evaluate Qwen2; it might be the more performant and efficient choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://qwen.ai/blog/hello-qwen2" rel="noopener noreferrer"&gt;Hello Qwen2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>opensource</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Google's Gemma 2 is here. It's a big deal for open models.</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Wed, 22 Jul 2026 15:02:32 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/googles-gemma-2-is-here-its-a-big-deal-for-open-models-1ik</link>
      <guid>https://dev.to/albertomontagnese/googles-gemma-2-is-here-its-a-big-deal-for-open-models-1ik</guid>
      <description>&lt;p&gt;Google has released Gemma 2, the next generation of its open models, and it's a significant move for anyone building with open-source AI. The key takeaway is this: the 27B parameter version offers performance competitive with models more than twice its size, while being efficient enough to run on a single GPU.&lt;/p&gt;

&lt;p&gt;This isn't just another incremental update. It's a new architectural design focused on providing a practical, high-performance alternative for developers who need to control their own stack.&lt;/p&gt;

&lt;h2&gt;
  
  
  what is gemma 2
&lt;/h2&gt;

&lt;p&gt;Gemma 2 launched in two sizes: 9 billion and 27 billion parameters. Unlike its predecessor, Gemma 2 is built on a redesigned architecture. The technical report mentions a hybrid attention mechanism, using interleaved local and global attention to balance performance and memory usage.&lt;/p&gt;

&lt;p&gt;The 27B model is the main story. Google claims it delivers best-in-class performance for its size and can compete with much larger, proprietary models. The efficiency gains are notable; the 27B model can run inference at full precision on a single NVIDIA H100 or A100 80GB GPU, or a Google Cloud TPU host. This significantly lowers the barrier to entry for deploying a model of this capability.&lt;/p&gt;

&lt;p&gt;The smaller 9B model is also positioned to be a class-leader, outperforming other open models in its size category, like Llama 3 8B.&lt;/p&gt;

&lt;h2&gt;
  
  
  why it matters for builders
&lt;/h2&gt;

&lt;p&gt;For engineers and small teams, Gemma 2 changes the calculus for self-hosting. The ability to run a 27B parameter model with this level of performance on a single, accessible GPU is a major cost and complexity advantage. It makes self-hosting a more viable option where previously you might have defaulted to a proprietary model API for this level of power.&lt;/p&gt;

&lt;p&gt;It provides a strong, commercially-friendly open model from a different major lab. This introduces more competition and choice into the open-source ecosystem. The models are available now on Hugging Face, Kaggle, and Google AI Studio, with integrations for frameworks like PyTorch, JAX, and TensorFlow.&lt;/p&gt;

&lt;p&gt;Google also states they are working on open-sourcing their SynthID text watermarking technology for Gemma models, which is an interesting development for anyone concerned with AI safety and content provenance.&lt;/p&gt;

&lt;h2&gt;
  
  
  getting started with gemma 2
&lt;/h2&gt;

&lt;p&gt;You can pull the models directly from Hugging Face. The instruction-tuned (&lt;code&gt;-it&lt;/code&gt;) variants are what you'll want for most chat and instruction-following tasks. Here is how you might load the 9B instruction-tuned model using the &lt;code&gt;transformers&lt;/code&gt; library.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;transformers&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pipeline&lt;/span&gt;

&lt;span class="c1"&gt;# Make sure you have accepted the license on the Hugging Face model page
&lt;/span&gt;&lt;span class="n"&gt;model_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;google/gemma-2-9b-it&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="n"&gt;pipe&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;pipeline&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;text-generation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;model_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;model_kwargs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;torch_dtype&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bfloat16&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cuda&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;messages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Write a short, professional git commit message for a change that fixes a bug where the user session expires prematurely.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pipe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tokenizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;apply_chat_template&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tokenize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;add_generation_prompt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;outputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;pipe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;max_new_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;do_sample&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;top_k&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;top_p&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.95&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;outputs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;generated_text&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;):])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This snippet assumes you have a CUDA-enabled GPU and the necessary libraries installed. The key is to use the model's chat template to format your prompts correctly for the instruction-tuned version.&lt;/p&gt;

&lt;h2&gt;
  
  
  the so-what
&lt;/h2&gt;

&lt;p&gt;Gemma 2 is a serious new contender in the open model space. It provides a compelling combination of outsized performance and inference efficiency, particularly at the 27B scale. For builders who want the power of a large model without the cost and infrastructure complexity of a massive cluster, this is a release to pay close attention to. It's a practical tool that lowers the barrier to shipping sophisticated AI features on your own terms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.google/" rel="noopener noreferrer"&gt;Google AI Blog: Gemma 2 is now available to researchers and developers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://huggingface.co/blog/gemma-2" rel="noopener noreferrer"&gt;Hugging Face: Welcome Gemma 2 - Google's new open LLM&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>machinelearning</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Claude 3.5 Sonnet is the New Default Workhorse</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Mon, 20 Jul 2026 15:02:48 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/claude-35-sonnet-is-the-new-default-workhorse-3mif</link>
      <guid>https://dev.to/albertomontagnese/claude-35-sonnet-is-the-new-default-workhorse-3mif</guid>
      <description>&lt;p&gt;Anthropic's release of Claude 3.5 Sonnet changes the cost-performance curve for building AI products. The key takeaway is that we now have a model with intelligence that outperforms the previous top-tier Claude 3 Opus, but operates at twice the speed and a significantly lower cost. This makes it the new default workhorse for complex, multi-step agentic systems where latency and cost have been blocking factors.&lt;/p&gt;

&lt;h2&gt;
  
  
  what just shipped
&lt;/h2&gt;

&lt;p&gt;Claude 3.5 Sonnet is the first model in Anthropic's new 3.5 family. It's positioned as a mid-tier model by name, but its performance benchmarks exceed the previous high-end model, Claude 3 Opus, on graduate-level reasoning (GPQA) and coding proficiency (HumanEval).&lt;/p&gt;

&lt;p&gt;The model is available through the Anthropic API, Amazon Bedrock, and Google Cloud's Vertex AI. The pricing is set at $3 per million input tokens and $15 per million output tokens, with a 200K token context window. This price point is substantially cheaper than Claude 3 Opus, making it more accessible for high-throughput applications.&lt;/p&gt;

&lt;p&gt;Critically, it operates at twice the speed of Claude 3 Opus. This combination of higher intelligence, lower cost, and reduced latency makes it ideal for tasks like context-sensitive customer support and orchestrating multi-step workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  a new baseline for agentic work
&lt;/h2&gt;

&lt;p&gt;The real impact for builders is on agentic workflows. In an internal evaluation where the model was tasked with fixing bugs or adding features to an open-source codebase, Claude 3.5 Sonnet solved 64% of the problems. This is a marked improvement over Claude 3 Opus, which solved 38% in the same evaluation.&lt;/p&gt;

&lt;p&gt;When you're building systems that chain multiple model calls together, both cost and latency compound quickly. A workflow that was previously too slow or expensive for a production environment with Opus might now be viable with Sonnet 3.5. It has sophisticated reasoning and troubleshooting capabilities and can independently write, edit, and execute code when given the right tools.&lt;/p&gt;

&lt;p&gt;Here's how you'd call the new model via the API. Note the model identifier &lt;code&gt;claude-3-5-sonnet-20240620&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

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

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;anthropic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Anthropic&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="c1"&gt;# defaults to os.environ.get("ANTHROPIC_API_KEY")
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;claude-3-5-sonnet-20240620&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;max_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;4096&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Write a Python script to analyze a log file and count the occurrences of &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ERROR&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; messages.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This isn't just about a single model call being better. It's about the feasibility of building more complex, multi-turn, tool-using agents that can reason through problems without breaking the bank or ruining the user experience with high latency.&lt;/p&gt;

&lt;h2&gt;
  
  
  artifacts change the dev loop
&lt;/h2&gt;

&lt;p&gt;Alongside the model, Anthropic introduced a feature on Claude.ai called Artifacts. When you ask the model to generate content like code snippets, text documents, or website designs, this content now appears in a dedicated window next to the conversation.&lt;/p&gt;

&lt;p&gt;This creates a dynamic workspace where you can see, edit, and build on Claude's output in real time. Instead of the standard workflow of copying code from a chat interface and pasting it into your IDE to see if it works, you can now iterate directly in the interface. This is a step toward evolving conversational AI into a more collaborative work environment.&lt;/p&gt;

&lt;p&gt;The feature supports generating and previewing things like HTML pages, SVG graphics, and even interactive React components. This tighter feedback loop between generation and validation is a significant workflow improvement, reducing the friction of moving between the AI and your development environment, especially for frontend tasks and data visualization.&lt;/p&gt;

&lt;h2&gt;
  
  
  the so-what
&lt;/h2&gt;

&lt;p&gt;For builders, the release of Claude 3.5 Sonnet is a clear signal to re-evaluate your model choices. It's not an incremental improvement; it's a tier-shift. Workflows that required a premium, high-latency model like Opus can now run on a faster, more cost-effective model without sacrificing intelligence. For new projects, particularly those involving coding, complex reasoning, or multi-step agents, Sonnet 3.5 should be your new starting point. The cost-performance frontier has moved.&lt;/p&gt;

&lt;h2&gt;
  
  
  sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.anthropic.com/news/claude-3-5-sonnet" rel="noopener noreferrer"&gt;Introducing Claude 3.5 Sonnet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>claude</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Your Pinned OpenAI Models Stop Working Next Week</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Fri, 17 Jul 2026 15:03:59 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/your-pinned-openai-models-stop-working-next-week-55ph</link>
      <guid>https://dev.to/albertomontagnese/your-pinned-openai-models-stop-working-next-week-55ph</guid>
      <description>&lt;p&gt;If your production configs or CI scripts are still pointed at older OpenAI model snapshots like &lt;code&gt;gpt-5.2-codex&lt;/code&gt;, they are scheduled to fail starting July 23, 2026. This isn't breaking news—the schedule was announced back on April 22—but the deadline is now close enough to force a review of your dependencies. This is more than a version bump; the replacement models have different performance and pricing profiles, requiring active migration, not just a find-and-replace.&lt;/p&gt;

&lt;h2&gt;
  
  
  what's actually happening
&lt;/h2&gt;

&lt;p&gt;On July 23, OpenAI will shut down access to a batch of 13 older model snapshots. While this wave includes various preview and specialized research models, the most significant impact for many builders is the retirement of five specific Codex-lineage models. These are the workhorses that powered many early AI coding assistants and agents. The list includes every Codex variant before GPT-5.3.&lt;/p&gt;

&lt;p&gt;This is part of a standard platform hygiene process to simplify the available models and focus resources on newer, more capable ones. According to OpenAI's own policy, specialized variants like the Codex series are given at least three months' notice before shutdown, and this wave complies with that.&lt;/p&gt;

&lt;h2&gt;
  
  
  why this requires more than find-and-replace
&lt;/h2&gt;

&lt;p&gt;The critical takeaway is that the migration path isn't straightforward. You can't just swap the old model ID for the new one and expect identical behavior or cost. Most of the retiring Codex and chat snapshots are being mapped to &lt;code&gt;gpt-5.5&lt;/code&gt;. However, other models, like the &lt;code&gt;deep-research&lt;/code&gt; variants, map to &lt;code&gt;gpt-5.5-pro&lt;/code&gt;, which comes with a different price tier.&lt;/p&gt;

&lt;p&gt;Furthermore, the replacement models may have different performance characteristics or architectural details. For instance, &lt;code&gt;gpt-5.5&lt;/code&gt; introduces a long-context surcharge, where prompts over a certain token count are billed at a higher rate. A workload that previously relied on stuffing large codebases into a Codex model's context could see a significant change in its monthly bill. The only way to know the impact is to test.&lt;/p&gt;

&lt;p&gt;Here is a simple example of what an API call update might look like. The change itself is trivial, but it implies a non-trivial validation workload.&lt;br&gt;
&lt;/p&gt;

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

&lt;span class="c1"&gt;# Deprecated call, will fail after July 23, 2026
# response_old = openai.chat.completions.create(
#   model="gpt-5.2-codex",
#   messages=[
#     {"role": "system", "content": "You are a helpful coding assistant."},
#     {"role": "user", "content": "Write a python function to calculate a factorial."}
#   ]
# )
&lt;/span&gt;
&lt;span class="c1"&gt;# Updated call to a supported model
# Note: Performance, latency, and cost may differ. Must be re-evaluated.
&lt;/span&gt;&lt;span class="n"&gt;response_new&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gpt-5.5&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# Or another suitable replacement
&lt;/span&gt;  &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;system&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;You are a helpful coding assistant.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Write a python function to calculate a factorial.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response_new&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  your audit checklist before july 23
&lt;/h2&gt;

&lt;p&gt;This isn't a fire drill, but it is an action item. Before the deadline, you should run a thorough audit.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Grep your codebase:&lt;/strong&gt; Search your entire application, including notebooks and utility scripts, for the retiring model IDs. The full list is on OpenAI's deprecations page.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Check your infrastructure:&lt;/strong&gt; Look for pinned model versions in your CI/CD pipelines, Terraform scripts, or any other infrastructure-as-code definitions.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Review agent backends:&lt;/strong&gt; If you run autonomous agents, double-check the model configurations they use for different tasks.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Re-run your evaluations:&lt;/strong&gt; Once you've pointed a service at a new model, run your existing test suites and evals to check for regressions in quality, format, or latency.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Update your cost models:&lt;/strong&gt; Analyze the pricing for the replacement models and adjust your budget forecasts accordingly, keeping an eye on factors like long-context surcharges.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is a forcing function to treat model IDs as the managed dependencies they are. The process is routine, but ignoring it will lead to broken systems. More waves of deprecations are already scheduled for October and December, so building this audit into your regular process is the only sustainable path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://platform.openai.com/docs/deprecations" rel="noopener noreferrer"&gt;OpenAI API Deprecations&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>machinelearning</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Mistral's Move into Physical AI with Robostral Navigate</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Wed, 15 Jul 2026 15:01:34 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/mistrals-move-into-physical-ai-with-robostral-navigate-203p</link>
      <guid>https://dev.to/albertomontagnese/mistrals-move-into-physical-ai-with-robostral-navigate-203p</guid>
      <description>&lt;p&gt;Mistral AI has released Robostral Navigate, its first model for the physical AI space. This move signals a clear direction for foundation models: moving out of the purely digital realm and into robots that operate in complex, real-world environments. The key takeaway is that the hardware requirements for autonomous navigation are becoming simpler, with this model relying only on a single RGB camera and language prompts.&lt;/p&gt;

&lt;h2&gt;
  
  
  what is robostral navigate?
&lt;/h2&gt;

&lt;p&gt;Robostral Navigate is an 8-billion-parameter model designed specifically for robot navigation. It enables a robot to move through unfamiliar indoor spaces using natural-language instructions. The significant technical detail is its reliance on just one standard RGB camera, forgoing the need for more complex and expensive sensors like LiDAR or depth cameras that are common in robotics.&lt;/p&gt;

&lt;p&gt;The model is hardware-agnostic, meaning it can be deployed on different types of robots, including wheeled, legged, and flying systems. According to reports, it achieves a 76.6% success rate on the unseen Room-to-Room Continuous Environment (R2R-CE) benchmark, outperforming other single-camera methods. The entire model was trained in simulation, using around 400,000 navigation trajectories across thousands of virtual scenes.&lt;/p&gt;

&lt;h2&gt;
  
  
  why this matters for builders
&lt;/h2&gt;

&lt;p&gt;The most direct implication is the potential for more cost-effective robotics solutions. By removing the dependency on multi-sensor arrays, the barrier to entry for building and deploying autonomous robots is lowered. For engineers working on systems that interact with the physical world—from warehouse logistics to delivery drones—this opens up new possibilities.&lt;/p&gt;

&lt;p&gt;The training methodology is also notable. Mistral leveraged its experience with LLMs, using online reinforcement learning to boost the model's performance after the initial supervised training stage. This technique allows the model to learn from trial and error and recover from failures, which is critical for robust operation in unpredictable environments.&lt;/p&gt;

&lt;h2&gt;
  
  
  how it works
&lt;/h2&gt;

&lt;p&gt;The system takes a simple language prompt and uses the single video feed to navigate. While the API and specific implementation details are not yet public, you can imagine the interaction would be straightforward. A builder might provide a command and let the model handle the low-level pathfinding.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Hypothetical CLI command to dispatch a robot&lt;/span&gt;

robot-fleet &lt;span class="nt"&gt;--robot-id&lt;/span&gt; 007 deploy &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--model&lt;/span&gt; mistral/robostral-navigate &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--prompt&lt;/span&gt; &lt;span class="s2"&gt;"Go to the kitchen and find the table."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mistral has framed navigation as a foundational step toward a unified, general-purpose embodied agent. This suggests a future where models can perform not just navigation but also manipulation and other more complex physical tasks.&lt;/p&gt;

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

&lt;p&gt;Mistral has not yet announced a commercial availability date or pricing for Robostral Navigate. The company is actively expanding its robotics team, indicating a serious long-term commitment to the physical AI space.&lt;/p&gt;

&lt;p&gt;This launch places Mistral in direct competition with other major players investing heavily in robotics, such as Nvidia and Google DeepMind. For builders in the AI space, this is a clear signal that the frontier is moving beyond text and image generation and into embodied agents that can perceive and act in the physical world.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://mistral.ai/" rel="noopener noreferrer"&gt;https://mistral.ai/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.siliconrepublic.com/machines/mistral-ai-robotics-physical-ai-robostral-navigate" rel="noopener noreferrer"&gt;https://www.siliconrepublic.com/machines/mistral-ai-robotics-physical-ai-robostral-navigate&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.infoworld.com/article/3716075/mistral-joins-rush-to-develop-ai-for-robots.html" rel="noopener noreferrer"&gt;https://www.infoworld.com/article/3716075/mistral-joins-rush-to-develop-ai-for-robots.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>llm</category>
      <category>agents</category>
    </item>
    <item>
      <title>Stop Copy-Pasting: Claude Artifacts Change the Inner Loop</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Mon, 13 Jul 2026 15:03:15 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/stop-copy-pasting-claude-artifacts-change-the-inner-loop-53d8</link>
      <guid>https://dev.to/albertomontagnese/stop-copy-pasting-claude-artifacts-change-the-inner-loop-53d8</guid>
      <description>&lt;p&gt;The new Artifacts feature in Claude 3.5 Sonnet is the first meaningful change to the core AI-assisted development loop I've seen in a while. It's not just another model claiming a few more benchmark points. It’s a direct response to the friction we all feel, collapsing the tedious cycle of generating, copying, pasting, and context-switching into a single, fluid workspace.&lt;/p&gt;

&lt;h2&gt;
  
  
  the old loop is broken
&lt;/h2&gt;

&lt;p&gt;For the last couple of years, the workflow for using an LLM to write code has been the same. You have a chat interface on one screen and your IDE on the other. You write a prompt, get a code block, copy it, and paste it into a local file. You run it, it fails, you copy the error message, and you paste it back into the chat. This back-and-forth is slow and full of friction.&lt;/p&gt;

&lt;p&gt;Every time you switch from the chat to your editor, you break your flow. The model loses the full context of your environment, and you waste time managing two separate sessions. It’s a conversational paradigm bolted onto a creative one, and it feels inefficient because it is.&lt;/p&gt;

&lt;h2&gt;
  
  
  how artifacts create a workspace
&lt;/h2&gt;

&lt;p&gt;Artifacts change this by introducing a dedicated panel next to your conversation. When you ask Claude to generate content that has a visual or interactive representation—like a React component, an SVG diagram, or a single-page website—it appears in this new window. This creates a dynamic workspace where you can see, edit, and build on Claude's output in real time.&lt;/p&gt;

&lt;p&gt;Instead of copying and pasting, you iterate directly on the Artifact. You can ask for changes in the chat, and the rendered output in the Artifacts pane updates immediately. This transforms the interaction from a simple Q&amp;amp;A into a collaborative session. You're no longer just getting snippets; you're building a component inside a live environment that closes the feedback loop between your instructions and the final product. The workflow becomes prompt, preview, iterate—all in one place.&lt;/p&gt;

&lt;h2&gt;
  
  
  a practical example
&lt;/h2&gt;

&lt;p&gt;This is most powerful for self-contained visual components. Instead of trying to describe a UI change and hoping the model gets it right, you can see the result instantly. Consider generating a quick diagram for documentation.&lt;/p&gt;

&lt;p&gt;You can ask the model to create a diagram from a description, and it will generate the code and render it as an SVG in the Artifacts window.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;prompt: &lt;span class="s2"&gt;"Create an SVG of a simple database icon with a blue cylinder and a grey base."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model doesn't just return a code block. It generates the SVG code and immediately renders it in the Artifacts panel, providing instant visual feedback. If the blue is the wrong shade, you can just say "make it a lighter blue" and watch it update.&lt;/p&gt;

&lt;p&gt;This is especially effective for web components. You can ask for a React component, and then iterate on the styling or functionality while seeing the live, interactive component right in the workspace.&lt;/p&gt;

&lt;h2&gt;
  
  
  what this means for builders
&lt;/h2&gt;

&lt;p&gt;The Artifacts feature is still a preview, and it's not going to replace your local IDE for complex, multi-file applications. But it’s a clear signal of where AI-native development tools are headed. The future is not about better chatbots that write code. It's about integrated environments that collapse the feedback loop between intent and execution.&lt;/p&gt;

&lt;p&gt;For builders, this is a tangible improvement for rapid prototyping and component-level work. It makes the initial, exploratory phase of development faster and more intuitive. It's a step away from conversational AI and toward a truly collaborative work environment. Pay attention to this interaction pattern; it’s likely to become the new standard.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.anthropic.com/news/claude-3-5-sonnet" rel="noopener noreferrer"&gt;Introducing Claude 3.5 Sonnet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>claude</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Grok 4.5 is Here, And It's All About Developer Efficiency</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Fri, 10 Jul 2026 15:03:03 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/grok-45-is-here-and-its-all-about-developer-efficiency-2ga6</link>
      <guid>https://dev.to/albertomontagnese/grok-45-is-here-and-its-all-about-developer-efficiency-2ga6</guid>
      <description>&lt;p&gt;xAI's Grok 4.5 just shipped, and the main takeaway isn't just its performance, but its sharp focus on developer economics. With significantly lower token counts on coding tasks and aggressive pricing, it's a direct challenge to the cost-per-task of established models.&lt;/p&gt;

&lt;h2&gt;
  
  
  what just shipped
&lt;/h2&gt;

&lt;p&gt;xAI released Grok 4.5 on July 8, 2026, positioning it as a direct competitor to other frontier models. The company's founder described it as an “Opus-class model, but faster, more token-efficient and lower cost” than Anthropic's flagship offering. This release is the first since xAI's IPO and is built on their 1.5 trillion parameter V9 foundation model.&lt;/p&gt;

&lt;p&gt;A key detail for developers is the training data. The model includes supplemental training data from Cursor, suggesting a strategic focus on sourcing high-quality, domain-specific data for engineering tasks. While it may not top every single benchmark—internal charts show it trailing Fable and GPT 5.5 on the DeepSWE 1.0 evaluation—it's engineered for practical, real-world development work.&lt;/p&gt;

&lt;h2&gt;
  
  
  the efficiency angle
&lt;/h2&gt;

&lt;p&gt;The most important metric for builders is often not a raw benchmark score, but the cost and latency to complete a task. This is where Grok 4.5 makes its strongest case. On the SWE Bench Pro evaluation, the model reportedly resolves tasks using an average of 15,954 output tokens, which is about 4.2 times fewer than a comparable Opus model.&lt;/p&gt;

&lt;p&gt;This level of token efficiency has direct implications for building agentic systems, where verbose outputs can cause costs to spiral. When your agent is performing multi-step reasoning or code generation, a 4x reduction in token count per step changes the fundamental economics of the system.&lt;/p&gt;

&lt;p&gt;The pricing structure reinforces this focus. At a reported $2 per million input tokens and $6 per million output tokens, the cost is set to be highly competitive. For teams shipping AI features at scale, this combination of lower token usage and competitive pricing is a significant variable.&lt;/p&gt;

&lt;p&gt;Here is an illustrative example of what an API call might look like, following a common pattern.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://api.x.ai/v1/chat/completions &lt;span class="se"&gt;\&lt;/span&gt;
     &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$XAI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
     &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
     &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
          "model": "grok-4.5",
          "messages": [
            {
              "role": "system",
              "content": "You are a helpful coding assistant."
            },
            {
              "role": "user",
              "content": "Write a Python function to calculate the Fibonacci sequence up to n, with memoization for efficiency."
            }
          ],
          "temperature": 0.7,
          "max_tokens": 2048
     }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is about making agentic workflows more financially viable and performant enough for production use cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  where to use it now
&lt;/h2&gt;

&lt;p&gt;This isn't a paper model or a private beta with a waitlist. Grok 4.5 is available now in the tools many AI-focused engineers already use. It has been integrated as the default model in Grok Build, xAI's own command-line coding tool.&lt;/p&gt;

&lt;p&gt;More broadly, it is also available in the Cursor IDE on all plans. This deep integration into a popular AI-native IDE means you can immediately start evaluating its performance on your own codebase without needing to build custom API integrations. For teams that have adopted Cursor, this is a drop-in replacement that could yield immediate cost and performance benefits.&lt;/p&gt;

&lt;p&gt;The model is, of course, also available through the xAI API for custom applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  the so-what
&lt;/h2&gt;

&lt;p&gt;The release of Grok 4.5 signals a potential shift in the model wars, moving from a singular focus on capability benchmarks to the practicalities of shipping products. For builders, the total-cost-of-task is a critical metric, and token efficiency is the primary lever to manage it. This release makes it clear that xAI is competing on that vector as much as on raw intelligence. It's a pragmatic move for a market that is rapidly maturing beyond demos and into production systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://x.ai/" rel="noopener noreferrer"&gt;xAI News&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>devtools</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Gemma 2 is here. The architectural tweaks are what matter.</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Wed, 08 Jul 2026 15:02:36 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/gemma-2-is-here-the-architectural-tweaks-are-what-matter-477f</link>
      <guid>https://dev.to/albertomontagnese/gemma-2-is-here-the-architectural-tweaks-are-what-matter-477f</guid>
      <description>&lt;p&gt;Google has released Gemma 2, the next version of its open model family, in 9B and 27B parameter sizes. While the performance improvements are notable, with the 27B model offering a competitive alternative to models more than twice its size, the more interesting story for builders is the set of architectural changes under the hood. These modifications directly impact inference efficiency and change the calculus for fine-tuning on custom tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  what is gemma 2?
&lt;/h2&gt;

&lt;p&gt;Gemma 2 is a family of decoder-only, text-to-text large language models. The initial release includes a 9-billion and a 27-billion parameter model, with both pretrained (base) and instruction-tuned variants available. These models are built using similar research and technology as the Gemini models and are designed to run efficiently on hardware like a single NVIDIA H100 GPU or a Google TPU host, which lowers the barrier for deployment.&lt;/p&gt;

&lt;p&gt;The models were trained on a mix of web documents, code, and scientific articles, with the 27B model seeing 13 trillion tokens and the 9B model trained on 8 trillion. They maintain a context length of 8192 tokens, the same as the first generation.&lt;/p&gt;

&lt;h2&gt;
  
  
  architectural shifts that improve efficiency
&lt;/h2&gt;

&lt;p&gt;The most significant changes in Gemma 2 are not about scale but about efficiency. The architecture introduces a hybrid attention mechanism that alternates between local sliding window attention and global attention in different layers. The local attention has a window of 4096 tokens, while the global attention spans the full 8192 token context. This structure allows the model to process long contexts more efficiently than a purely global attention approach.&lt;/p&gt;

&lt;p&gt;Additionally, Gemma 2 incorporates Grouped-Query Attention (GQA). GQA is a known technique for reducing the computational and memory overhead of the attention mechanism during inference, making the model faster and less resource-intensive without a major hit to quality. Other stability-focused features include logit soft-capping, which prevents extreme values during training and generation, and the use of RMSNorm for normalization.&lt;/p&gt;

&lt;h2&gt;
  
  
  getting started with gemma 2
&lt;/h2&gt;

&lt;p&gt;You can access the Gemma 2 models through Hugging Face, Kaggle, and Google AI Studio. For local development, integration with frameworks like PyTorch and TensorFlow via Hugging Face Transformers is straightforward.&lt;/p&gt;

&lt;p&gt;Here is a basic example of how you might load the instruction-tuned 9B model and its tokenizer using &lt;code&gt;transformers&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;transformers&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AutoTokenizer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;AutoModelForCausalLM&lt;/span&gt;

&lt;span class="c1"&gt;# The specific model identifier from Hugging Face
&lt;/span&gt;&lt;span class="n"&gt;model_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;google/gemma-2-9b-it&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="c1"&gt;# Load the tokenizer and model
# Using a lower precision like bfloat16 can help with memory
&lt;/span&gt;&lt;span class="n"&gt;tokenizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AutoTokenizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_pretrained&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AutoModelForCausalLM&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_pretrained&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;device_map&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;auto&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;torch_dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bfloat16&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Prepare the input prompt according to the model's chat template
&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;What are the key architectural changes in Gemma 2?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tokenizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;apply_chat_template&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tokenize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;add_generation_prompt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Generate a response
&lt;/span&gt;&lt;span class="n"&gt;inputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tokenizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;add_special_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;return_tensors&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;device&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;outputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input_ids&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;max_new_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;250&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tokenizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;outputs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;skip_special_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For teams looking to run models locally, quantized versions are also available, which can significantly reduce the VRAM and memory footprint for inference on consumer hardware.&lt;/p&gt;

&lt;h2&gt;
  
  
  the so-what for builders
&lt;/h2&gt;

&lt;p&gt;The release of Gemma 2 is another step in the trend of smaller, more efficient open models that can compete with much larger, proprietary counterparts. The architectural choices—interleaving local and global attention, using GQA—are direct answers to the high cost of inference that plagues many production systems. For engineers and researchers, these models provide a powerful and more accessible base for fine-tuning and building specialized applications. The focus on efficiency means that deploying a custom-tuned, high-performance model is becoming more feasible for teams without access to massive GPU clusters.&lt;/p&gt;

&lt;h2&gt;
  
  
  sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.google/" rel="noopener noreferrer"&gt;Google AI Blog: Gemma 2 is now available to researchers and developers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://arxiv.org/abs/2406.19445" rel="noopener noreferrer"&gt;arXiv: Gemma 2: Improving Open Language Models at a Practical Size&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>machinelearning</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Cohere's Aya 23 Release: A Practical Look at Open, Multilingual Models</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Mon, 06 Jul 2026 15:03:21 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/coheres-aya-23-release-a-practical-look-at-open-multilingual-models-429e</link>
      <guid>https://dev.to/albertomontagnese/coheres-aya-23-release-a-practical-look-at-open-multilingual-models-429e</guid>
      <description>&lt;p&gt;The open-source AI landscape has a new, serious contender for multilingual tasks. Cohere's release of the Aya 23 family, with 8B and 35B parameter open-weight models, provides a much-needed, high-performance baseline for builders working in the 23 languages it covers. This isn't just another model drop; it's a practical alternative to relying on closed APIs or fine-tuning English-centric models for global applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  what is aya 23
&lt;/h2&gt;

&lt;p&gt;Aya 23 is a family of instruction-tuned, decoder-only transformer models released by Cohere for AI, the company's non-profit research lab. It comes in two sizes: an 8-billion parameter model designed for accessibility and a larger 35-billion parameter version for more complex tasks.&lt;/p&gt;

&lt;p&gt;This release represents a strategic shift from its predecessor, Aya 101, which aimed for breadth across 101 languages. Aya 23 instead focuses on depth, allocating more training capacity to a curated list of 23 languages, including Arabic, Chinese, German, Hindi, Japanese, Spanish, and Vietnamese. The goal is to provide state-of-the-art capabilities for a set of languages that cover roughly half the world's population.&lt;/p&gt;

&lt;p&gt;The models are based on Cohere's Command series and were fine-tuned on the Aya Collection dataset. By releasing the model weights, Cohere allows researchers and developers to inspect and build on top of their work, a move that distinguishes it from fully closed-source offerings.&lt;/p&gt;

&lt;h2&gt;
  
  
  why this matters for builders
&lt;/h2&gt;

&lt;p&gt;For engineers building products for non-English speaking markets, the options have often been limited. You could use a proprietary, closed-source API, which offers high performance but limited customizability and potential lock-in. Or, you could take a powerful open-source but English-centric model and attempt to fine-tune it, with performance often lagging in other languages.&lt;/p&gt;

&lt;p&gt;Aya 23 offers a compelling middle ground. The 8B model, in particular, is designed to be accessible, running on consumer-grade hardware, which significantly lowers the barrier to entry for developers and researchers. The 35B model provides a more powerful option that benchmarks show outperforms other popular open models like Gemma and Mistral on a range of multilingual tasks.&lt;/p&gt;

&lt;p&gt;This enables more robust applications in areas like multilingual customer support, content moderation, and language learning tools without starting from scratch. Having a strong, open baseline model that is already pre-trained on a diverse set of languages saves significant computational cost and data sourcing effort.&lt;/p&gt;

&lt;h2&gt;
  
  
  getting started and considerations
&lt;/h2&gt;

&lt;p&gt;You can access the models on Hugging Face. The weights are available under a CC-BY-NC license, which is permissive for research but has non-commercial restrictions. Here's a quick example of how you might run inference with the 8B model using the &lt;code&gt;transformers&lt;/code&gt; library.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;torch&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;transformers&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;AutoTokenizer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;AutoModelForCausalLM&lt;/span&gt;

&lt;span class="n"&gt;tokenizer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AutoTokenizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_pretrained&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;CohereForAI/aya-23-8B&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;AutoModelForCausalLM&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_pretrained&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;CohereForAI/aya-23-8B&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;torch_dtype&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;torch&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bfloat16&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Format the prompt using the ChatML template
# Each message is a dictionary with 'role' and 'content'
&lt;/span&gt;&lt;span class="n"&gt;messages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;system&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;You are a helpful assistant.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Wie ist das Wetter heute in Berlin?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;input_ids&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tokenizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;apply_chat_template&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tokenize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;add_generation_prompt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;return_tensors&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Generate a response
&lt;/span&gt;&lt;span class="n"&gt;outputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;input_ids&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;max_length&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tokenizer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;outputs&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;skip_special_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A few things to keep in mind:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Hardware:&lt;/strong&gt; While the 8B model is more accessible, the 35B version still requires significant computational resources. Quantization will likely be necessary for running it on local or consumer-grade hardware.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Licensing:&lt;/strong&gt; The Creative Commons non-commercial license means you need to consider your use case. It's ideal for research, experimentation, and internal tools, but commercial applications may require a different approach.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Evaluation:&lt;/strong&gt; Benchmarks are useful, but always evaluate the model's performance on your specific tasks and target languages. Performance can vary, and what works for a general benchmark may not hold for your specific domain.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  the takeaway
&lt;/h2&gt;

&lt;p&gt;The release of Aya 23 is a meaningful step toward democratizing high-performance AI beyond English. It provides builders with a powerful, open set of tools to create more globally relevant and linguistically inclusive applications. For teams that have been hampered by the cost of proprietary APIs or the performance limitations of English-first open models, Aya 23 is a development worth investigating.&lt;/p&gt;

&lt;h2&gt;
  
  
  sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://arxiv.org/abs/2405.13531" rel="noopener noreferrer"&gt;Aya 23: Open Weight Releases to Further Multilingual Progress (Technical Report)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://huggingface.co/CohereForAI" rel="noopener noreferrer"&gt;Cohere For AI on Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://huggingface.co/CohereForAI/aya-23-8B" rel="noopener noreferrer"&gt;https://huggingface.co/CohereForAI/aya-23-8B&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

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