<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Bringing Down The Gauss]]></title><description><![CDATA[Thoughts, stories and ideas.]]></description><link>https://cegarza.com/</link><image><url>https://cegarza.com/favicon.png</url><title>Bringing Down The Gauss</title><link>https://cegarza.com/</link></image><generator>Ghost 5.88</generator><lastBuildDate>Fri, 24 Apr 2026 15:48:59 GMT</lastBuildDate><atom:link href="https://cegarza.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[SplatGPT Part 2B: Training and Performance]]></title><description><![CDATA[Discover how SplatGPT was trained on curated data, overcame noise, and even predicted meta shifts to optimize competitive Splatoon 3 gear builds.]]></description><link>https://cegarza.com/splatgpt-part-2b/</link><guid isPermaLink="false">6826be8272e18d3395490576</guid><category><![CDATA[Machine Learning]]></category><category><![CDATA[SplatGPT]]></category><dc:creator><![CDATA[Cesar Garza]]></dc:creator><pubDate>Mon, 19 May 2025 08:11:57 GMT</pubDate><content:encoded><![CDATA[
<!--kg-card-begin: html-->
<nav class="series-navigation" aria-label="Blog Series Navigation">
  <h3 class="series-navigation__main-title">SplatGPT: A Deep Dive</h3>
  <ol class="series-navigation__list">
    <li class="series-navigation__item series-navigation__item--past">
      <a href="https://cegarza.com/splatgpt-part-1/" class="series-navigation__link">
        <span class="series-navigation__part-number">Part 1</span>
        <span class="series-navigation__part-title">Problem Statement</span>
        <span class="series-navigation__status-indicator">Read</span>
      </a>
    </li>
    <li class="series-navigation__item series-navigation__item--past">
      <a href="https://cegarza.com/splatgpt-part-2a/" class="series-navigation__link" aria-current="page">
        <span class="series-navigation__part-number">Part 2A</span>
        <span class="series-navigation__part-title">Architecture</span>
        <span class="series-navigation__status-indicator">Read</span>
      </a>
    </li>
    <li class="series-navigation__item series-navigation__item--active">
      <a class="series-navigation__link">
        <span class="series-navigation__part-number">Part 2B</span>
        <span class="series-navigation__part-title">Training and Performance</span>
        <span class="series-navigation__status-indicator">You are here</span>
      </a>
    </li>
    <li class="series-navigation__item series-navigation__item--upcoming">
      <a class="series-navigation__link">
        <span class="series-navigation__part-number">Part 3</span>
        <span class="series-navigation__part-title">Interpretability with SAEs</span>
        <span class="series-navigation__status-indicator">Upcoming</span>
      </a>
    </li>
    <li class="series-navigation__item series-navigation__item--upcoming">
      <a class="series-navigation__link">
        <span class="series-navigation__part-number">Part 4</span>
        <span class="series-navigation__part-title">Active Collaboration and Steering</span>
        <span class="series-navigation__status-indicator">Upcoming</span>
      </a>
    </li>
  </ol>
</nav>
<!--kg-card-end: html-->
<div class="kg-card kg-toggle-card" data-kg-toggle-state="close">
            <div class="kg-toggle-heading">
                <h4 class="kg-toggle-heading-text"><span style="white-space: pre-wrap;">Recap</span></h4>
                <button class="kg-toggle-card-icon" aria-label="Expand toggle to read content">
                    <svg id="Regular" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24">
                        <path class="cls-1" d="M23.25,7.311,12.53,18.03a.749.749,0,0,1-1.06,0L.75,7.311"/>
                    </svg>
                </button>
            </div>
            <div class="kg-toggle-content"><p><span style="white-space: pre-wrap;">In </span><b><strong style="white-space: pre-wrap;">Part 1</strong></b><span style="white-space: pre-wrap;">, we explored the deceptive complexity of Splatoon 3&apos;s gear system and outlined three core requirements for any algorithmic approach to gear autocomplete: </span><b><strong style="white-space: pre-wrap;">permutation invariance</strong></b><span style="white-space: pre-wrap;">, </span><b><strong style="white-space: pre-wrap;">non-linear capture</strong></b><span style="white-space: pre-wrap;">, </span><b><strong style="white-space: pre-wrap;">deep contextual understanding</strong></b><span style="white-space: pre-wrap;">.</span></p><p><span style="white-space: pre-wrap;">In </span><b><strong style="white-space: pre-wrap;">Part 2A</strong></b><span style="white-space: pre-wrap;">, we introduced </span><b><strong style="white-space: pre-wrap;">SplatGPT</strong></b><span style="white-space: pre-wrap;">, a novel deep learning model designed to tackle this challenge specifically. We detailed the architecture that powers it: a fusion of Set Transformers with a GPT-2-esque residual stack that worked in a discrete </span><i><b><strong class="italic" style="white-space: pre-wrap;">Token Space</strong></b></i><span style="white-space: pre-wrap;"> (Ability Point buckets). Gear is translated from </span><i><b><strong class="italic" style="white-space: pre-wrap;">Build Space</strong></b></i><span style="white-space: pre-wrap;"> (legal Splatoon builds) -&gt; </span><i><b><strong class="italic" style="white-space: pre-wrap;">Token Space</strong></b></i><span style="white-space: pre-wrap;"> -&gt; </span><b><strong style="white-space: pre-wrap;">inference </strong></b><span style="white-space: pre-wrap;">-&gt; </span><i><b><strong class="italic" style="white-space: pre-wrap;">Build Space</strong></b></i><span style="white-space: pre-wrap;">, letting the model reason over ability sets while still outputting legal Splatoon builds.</span></p></div>
        </div><h2 id="you-are-what-you-eat-training-data">You Are What You Eat: Training Data</h2>
<p>SplatGPT will only ever be as good as the matches it studies, but data for this purpose is difficult to source. Nintendo provides no public match API. The community instead reverse-engineered the companion app, which only exposes <strong>your</strong> most recent 50 games. Thankfully, the same community (I&apos;m an active developer there!) built uploaders, and <a href="https://stat.ink/?ref=cegarza.com">stat.ink</a> now hosts <strong>15 million</strong> player-submitted battles: manna from heaven for this project.</p>
<p>The catch? Despite stat.ink parsing and cleaning the data, it&apos;s still noisy. Some capture incomplete builds (builds that were literally missing abilities), others come from casual modes, and new-weapon patches destabilize the meta instantly. Finally, the classic long-tail: a few power users upload thousands of matches while most contribute only a handful, and raw statistics start to lie.</p>
<p>Simply mirroring the dataset would make SplatGPT <em>average</em>, not <strong>good</strong>. So we curate on purpose: compensating for some biases while introducing others, to nudge the model toward winning patterns.</p>
<h3 id="addressing-power-user-skew">Addressing Power User Skew</h3>
<p>Like most community datasets, <strong>stat.ink</strong> data suffers from a &quot;long-tail&quot; distribution: a handful of &quot;power users&quot; contribute thousands of matches, while the majority of players upload a few. Splatoon adds a second wrinkle: each match uploaded contains all <strong>eight</strong> loadouts, so the same high-rank players reappear repeatedly in top level lobbies. If left unaddressed, SplatGPT might overfit to the build preferences of frequently appearing players, rather than truly learning generalized strategies.</p>
<p>To mitigate this issue, we implemented a <strong>contribution cap</strong>. While <code>stat.ink</code> is anonymized, we developed a coarse discriminator through side-channel analysis to get a probabilistic sense of distinct players, while respecting the site&apos;s privacy policy. This discriminator is based on a key insight: the internal JSON representation of gear abilities provided by <code>stat.ink</code> is unsorted and built incrementally. We hypothesized that this data, when combined with the specific weapon ID, could serve as a surprisingly stable and unique fingerprint for a player&apos;s particular gear setup for that weapon, even if other players used logically identical abilities. Different players would likely have different internal orderings for the same effective build due to how they acquired or modified their gear. Since gear is <em>expensive</em> to modify, this is surprisingly stable.</p>
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://cegarza.com/content/images/2025/05/image_2025-05-16_022532428.png" class="kg-image" alt loading="lazy" width="1581" height="943" srcset="https://cegarza.com/content/images/size/w600/2025/05/image_2025-05-16_022532428.png 600w, https://cegarza.com/content/images/size/w1000/2025/05/image_2025-05-16_022532428.png 1000w, https://cegarza.com/content/images/2025/05/image_2025-05-16_022532428.png 1581w" sizes="(min-width: 720px) 720px"><figcaption><b><strong style="white-space: pre-wrap;">Long-tail appearance distribution</strong></b><span style="white-space: pre-wrap;">. Estimated number of times each player appears in the Fresh Season 2023 X-Rank dataset. Plot originally produced for my archived project </span><i><em class="italic" style="white-space: pre-wrap;">squidalytics.ink</em></i><span style="white-space: pre-wrap;"> and reproduced here unchanged.</span></figcaption></figure><p>The distribution above, generated using these likely &quot;player fingerprints,&quot; starkly illustrates the long-tail phenomenon. The counts of likley-players follow a pattern typical of community contributions when viewed on a log-log scale, confirming the significant skew we aimed to address. Armed with this understanding of the distribution, we used our discriminator to cap likely-player contributions to <strong>100 matches</strong>. While this limit is relatively high, it was important to balance value of data from more active (and often higher skilled) players against the risk of the model overfitting to the specific builds of the most active <code>stat.ink</code> users. Full disclosure, this specific number was chosen somewhat arbitrarily but ultimately proved effective.</p>
<h3 id="learning-from-winners">Learning from Winners</h3>
<p>Because SplatGPT&apos;s mission is to recommend builds that <strong>win</strong>, we intentionally biased the training dataset towards successful strategies.</p>
<p>We began by <strong>removing all non-competitive modes</strong>, leaving only ranked matches. Next, for each weapon, we enforced a <strong>3:2 win-loss ratio</strong> (a 60% win rate), based on the rationale weaker builds are more frequently associated with losses. Specifically, for each weapon, we counted victories, calculated how many defeats exceed the target ratio, and randomly dropped those excess losses. This exact ratio was guided by domain expertise (I&apos;m a former competitive Splatoon player), recognizing that tuning this hyperparameter exceeded our available compute capacity. By pruning losing builds, we ensured the training corpus captured strategies that were, on average, significantly more effective.</p>
<h3 id="staying-relevant-temporal-filtering-and-meta-awareness">Staying Relevant: Temporal Filtering and Meta-Awareness</h3>
<p>The Splatoon metagame is constantly evolving. Although Nintendo has stopped introducing entirely new weapons, balance patches regularly shift weapon viability as weapons ebb and flow in the meta. Immediately following these updates, players experiment widely, temporarily destabilizing the meta.</p>
<p>To address this, there were two blackouts:</p>
<ul>
<li><strong>Two-week blackout</strong> after any patch introducing new weapon kits.</li>
<li><strong>One-week blackout</strong> following pure balance patches.</li>
</ul>
<p>Additionally, we applied a <strong>linear undersampling strategy</strong> to older data, ensuring the training dataset subtly favored more recent builds and maintained relevance to the current competitive landscape without losing fundamental signal from old matches.</p>
<hr>
<p>All in all, these filtering steps cut the dataset from the original <strong>120 million builds</strong> (15 million matches x 8 builds per match) down to roughly <strong>14 million</strong>, an <strong>88% reduction</strong>. While this sounds pretty drastic, it&apos;s worked remarkably well in practice!</p>
<h2 id="feeding-splatgpt-model-training">Feeding SplatGPT: Model Training</h2>
<p>With our high-quality, strategically-biased training set of around <strong>14 million builds</strong> in hand, it was finally time to feed it into SplatGPT and see whether the architecture could learn effectively.</p>
<h3 id="multilabel-classification">Multilabel Classification</h3>
<p>As we saw in Part 2A, builds are naturally represented as <strong>sets</strong> in <strong>Token Space</strong>. This means that next-token prediction techniques used by language models aren&apos;t really appropriate. Instead, SplatGPT predicts <strong>all tokens at once</strong>, treating gear completion as a multilabel classification task.</p>
<p>This means that for every possible ability token (e.g., buckets like <code>Quick Respawn 12-14 AP</code>), the model outputs an independent probability of whether that token should appear in the recommended gear set.</p>
<h3 id="from-builds-to-training-examples">From Builds to Training Examples</h3>
<p>Since SplatGPT is designed as a gear autocomplete tool, it needs to handle partial build inputs gracefully. Inspired by training methods from large language models, particularly the sliding-window approach for next-token prediction, we used the following technique:</p>
<ol>
<li>
<p><strong>Duplicate Entries</strong>:<br>
Each complete build is duplicated until we have <code>k</code> copies, keeping track of each duplicate&apos;s index.</p>
</li>
<li>
<p><strong>Randomly Drop Tokens</strong>:<br>
We randomly generate a list of <code>k</code> distinct integers ranging from 1 to <code>N-1</code> (the original sequence length), skewed towards fewer drops. Each duplicated build is assigned one of these integers, indicating how many tokens will be randomly dropped.</p>
</li>
<li>
<p><strong>Padding</strong><br>
To keep batches uniform in size during training, partial sets were padded to a fixed length using a special token.</p>
</li>
</ol>
<p>This method provided a diverse set of incomplete builds, training the model to robustly predict missing abilities in a variety of realistic contexts, knowing that the true value is likely a strong build.</p>
<h3 id="loss-function-binary-cross-entropy-with-logits">Loss Function: Binary Cross-Entropy with Logits</h3>
<p>Given the multilabel nature of our task, we chose <strong>Binary Cross-Entropy with Logits (BCELogits)</strong> as our loss function, treating each token independently. Formally, the model minimizes:</p>
<div>
$$
\mathcal{L}(y, z) = -\frac{1}{N}\sum_{i=1}^{N}[y_i \cdot \log(\sigma(z_i)) + (1 - y_i) \cdot \log(1 - \sigma(z_i))]
$$
</div>
<ul>
<li>\( y_i \) = true label (1 if token should be included, 0 otherwise)</li>
<li>\( z_i \) = model&#x2019;s predicted logits (raw model outputs before sigmoid)</li>
<li>\( \sigma(z_i) \) = sigmoid function applied to logits</li>
<li>\( N \) = total number of possible tokens</li>
</ul>
<p>BCELogits directly operates on logits, improving numerical stability by combining the sigmoid activation and BCE calculation into a single step. It encourages SplatGPT to confidently assign high logits to correct tokens and push logits of irrelevant tokens toward negative values.</p>
<h3 id="hardware-setup-training-splatgpt">Hardware Setup: Training SplatGPT</h3>
<p>Training a model of this complexity required serious computational resources. Early-stage experimentation and rapid prototyping were handled comfortably on my personal machine, an NVIDIA RTX 2080 Ti GPU, which was perfect for quick iterations, debugging, and preliminary testing.</p>
<p>However, for the final production-level training run, I upgraded to a dedicated NVIDIA H100 GPU via a DigitalOcean droplet. This final run took approximately <strong>62 hours</strong> of continuous GPU time, a substantial (and frankly risky) investment for a side project. Fortunately, the gamble paid off: the results exceeded my expectations, making the time and resource investment entirely worthwhile.</p>
<hr>
<h3 id="emergent-behavior-the-null-token-story">Emergent Behavior: The <code>&lt;NULL&gt;</code> Token Story</h3>
<p>Possibly the most fascinating discovery during training was the unexpected behavior of the special <code>&lt;NULL&gt;</code> token. Initially, the idea behind <code>&lt;NULL&gt;</code> was straightforward: I wanted SplatGPT to generate builds even with no Build Space input, using <code>&lt;NULL&gt;</code> as a placeholder. Early experiments explicitly included <code>&lt;NULL&gt;</code> tokens in the training examples, but this immediately degraded the overall build quality-model performance suffered significantly even when <code>&lt;NULL&gt;</code> wasn&#x2019;t involved. Worse, occasional inclusion caused severe overfitting whenever the <code>&lt;NULL&gt;</code> token appeared.</p>
<p>On a whim, and driven by a completely baseless hypothesis, I tried something counterintuitive: removing <code>&lt;NULL&gt;</code> entirely from the training data while leaving it as part of the model&apos;s vocabulary. Suddenly, <code>&lt;NULL&gt;</code> began to function as a &quot;blank slate&quot; token: when prompted with nothing but <code>&lt;NULL&gt;</code>, the model consistently generated highly effective, weapon-specific builds&#x2014;even though the model had NEVER explicitly trained on such cases. I was beside myself.</p>
<p>This unexpected behavior was genuinely astonishing. It strongly suggested the model wasn&apos;t merely regurgitating memorized training examples; rather, it appeared to be reasoning deeply about gear optimization principles. The <code>&lt;NULL&gt;</code> token demonstrated SplatGPT&#x2019;s ability to generalize beyond explicitly trained scenarios, indicating true emergent understanding.</p>
<p>This discovery became one of the most compelling insights from the entire training process, significantly boosting my confidence in SplatGPT&#x2019;s capabilities.</p>
<h2 id="evaluating-splatgpts-performance-results">Evaluating SplatGPT&apos;s Performance: Results</h2>
<p>With training complete, it was finally time to put SplatGPT&#x2019;s recommendations to the test.</p>
<h3 id="evaluation-setup">Evaluation Setup</h3>
<p>For a quantitative evaluation, I used a specialized dataset generously provided by <strong><a href="https://sendou.ink/?ref=cegarza.com">sendou.ink</a></strong>, a site run by a prominent community member that hosts builds shared by players. The site&apos;s owner, <strong>Sendou</strong>, shared with me builds submitted by verified <strong>high-level competitive players</strong>, categorized into three tiers. For this evaluation, I&apos;m focusing exclusively on the <strong>top-tier</strong>, consisting of roughly <strong>30 of the absolute best players</strong> in the world at any given time. This is truly the cream of the crop.</p>
<p>While this dataset is completely separate from my original training set, it&apos;s important to note it&apos;s not exactly a &quot;holdout&quot; set. Because of the significant influence these top players have, many of their builds are likely reflected in the broader player community, indirectly appearing in the filtered training data due to their effectiveness in winning games. Nevertheless, explicitly evaluating against builds directly sourced from top players remains a brutally tough benchmark.</p>
<ul>
<li>&quot;Accuracy&quot; here strictly means predicting the <em>exact same build</em>.</li>
<li>Even when SplatGPT&#x2019;s predictions differ slightly from these reference builds, the recommendations might still be highly effective and viable in practice.</li>
</ul>
<p>Both factors mean this evaluation intentionally stacks the deck against SplatGPT.</p>
<p>To rigorously test SplatGPT&#x2019;s capabilities, I randomly masked between <strong>1 to 8 abilities</strong> from each original build (out of the 12 total slots in <strong>Build Space</strong>). Masking was done directly on build slots, then converted into <strong>Token Space</strong> for model inference. The scenario with <strong>8 masks</strong> is particularly brutal, dropping <strong>66%</strong> of the original build information.</p>
<p>Finally, inference was performed using beam search with a width of 5, and results were evaluated in two ways:</p>
<ul>
<li><strong>Output (Best of 1)</strong>: Accuracy (or Hit Rate) using only the top beam candidate, also known as <strong>Accuracy@1</strong> or <strong>Hit@1</strong>.</li>
<li><strong>Full Beam (Best of 5)</strong>: Accuracy if the correct build was anywhere within the top 5 candidates, also known as <strong>Accuracy@5</strong> or <strong>Hit@5</strong>.</li>
</ul>
<p>This methodology is intentionally aligned with standard best practices for evaluating state-of-the-art language models.</p>
<h3 id="quantitative-results-exact-hit-rate-and-mean-accuracy">Quantitative Results: Exact Hit Rate and Mean Accuracy</h3>
<h4 id="exact-hit-rate">Exact Hit Rate</h4>
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://cegarza.com/content/images/2025/05/image_2025-05-18_021315786.png" class="kg-image" alt loading="lazy" width="1000" height="600" srcset="https://cegarza.com/content/images/size/w600/2025/05/image_2025-05-18_021315786.png 600w, https://cegarza.com/content/images/2025/05/image_2025-05-18_021315786.png 1000w" sizes="(min-width: 720px) 720px"><figcaption><b><strong style="white-space: pre-wrap;">Exact Hit Rate Metrics</strong></b><span style="white-space: pre-wrap;">: Rate at which SplatGPT perfectly recreated the tested builds. Confidence intervals generated via bootstrapping.</span></figcaption></figure><p>This plot illustrates the percentage of times SplatGPT exactly matched the ground truth builds. As expected, the hit rate drops significantly as more abilities are masked, reflecting the increasing difficulty of the task. While these exact-hit rates may appear low at first glance, they&apos;re actually quite impressive given the extreme challenge involved&#x2014;especially with up to <strong>66%</strong> of build information removed. Successfully reconstructing builds exactly under these conditions highlights the model&apos;s exceptional ability to capture complex, context-dependent relationships from minimal information.</p>
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://cegarza.com/content/images/2025/05/image_2025-05-18_021227573.png" class="kg-image" alt loading="lazy" width="1000" height="600" srcset="https://cegarza.com/content/images/size/w600/2025/05/image_2025-05-18_021227573.png 600w, https://cegarza.com/content/images/2025/05/image_2025-05-18_021227573.png 1000w" sizes="(min-width: 720px) 720px"><figcaption><b><strong style="white-space: pre-wrap;">Mean Accuracy Metrics: </strong></b><span style="white-space: pre-wrap;">Slot-level accuracy (solid lines) measures exact placement correctness. AP-level accuracy (dashed lines) measures correctness in difference in AP.</span></figcaption></figure><h4 id="mean-accuracy">Mean Accuracy</h4>
<p>While Exact Hit Rate measures only <em>perfect</em> matches, <strong>Mean Accuracy</strong> gives a more nuanced perspective on how close SplatGPT&apos;s recommendations are. Even if the model doesn&apos;t recreate the build <em>exactly</em>, we still want to see how closely it matched the intended strategy. For instance, if the original build has one main slot of <code>Quick Respawn</code> (10 AP) and three subs of <code>Ink Saver (Main)</code> (9 AP), flipping their positions would count as four incorrect slot predictions&#x2014;even though strategically, these two builds are nearly identical!</p>
<p>The plot clearly shows that SplatGPT maintains impressive accuracy at the AP-level, consistently exceeding <strong>80% accuracy</strong> even under severe masking conditions. Slot-level accuracy understandably decreases faster with heavier masking but remains significantly better than random guessing. This shows the model retains a strong grasp of meaningful relationships between abilities and gear slots, even when a majority of the build information is missing.</p>
<p>Together, these metrics demonstrate that while exact matches become increasingly challenging as masking increases, SplatGPT consistently identifies effective, strategically sound builds, successfully capturing the complex nuances essential to gear optimization.</p>
<h3 id="qualitative-insights-inaccuracy-is-not-inferiority">Qualitative Insights: &quot;Inaccuracy&quot; is not &quot;Inferiority&quot;</h3>
<p>I hinted at this earlier, but these quantitative accuracy measures have a significant limitation: they&apos;re measuring how closely SplatGPT matches a specific set of builds from top players, <strong>not necessarily how strong or viable the alternative builds it proposes are</strong>. A build that differs from the reference isn&apos;t necessarily a &quot;mistake&quot;; often it&apos;s just a different yet equally effective strategy.</p>
<p>To illustrate this, let me share a real-world anecdote. For context, the last time I actively played Splatoon competitively was around <strong>August 2024</strong>, shortly before starting serious work on SplatGPT. Fast-forward to <strong>May 2025</strong>: while finalizing my beam-search implementation, I noticed something deeply confusing. SplatGPT kept recommending a <strong>single sub-slot of Sub Resist Up</strong>, a so-called &quot;utility sub&quot; (a strategically chosen ability offering significant value for minimal investment), for the weapon I was most familiar with. This recommendation completely baffled me, because the meta as I remembered it absolutely did <strong>not</strong> value Sub Resist Up as a utility sub. Convinced this had to be some sort of bug or oversight, I began digging through logs and debugging code. Frustrated, I vented to my co-developer for the <a href="https://splatgpt.ink/?ref=cegarza.com">splatgpt.ink</a> website about the confusion:</p>
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://cegarza.com/content/images/2025/05/image_2025-05-19_022950925.png" class="kg-image" alt loading="lazy" width="1170" height="916" srcset="https://cegarza.com/content/images/size/w600/2025/05/image_2025-05-19_022950925.png 600w, https://cegarza.com/content/images/size/w1000/2025/05/image_2025-05-19_022950925.png 1000w, https://cegarza.com/content/images/2025/05/image_2025-05-19_022950925.png 1170w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Chatlog discussing Sub Resist Up&apos;s surprising viability, May 8, 2025</span></figcaption></figure><p>To my amazement, it turned out the confusion wasn&apos;t due to a bug at all. Instead, SplatGPT had anticipated a subtle meta shift occurring after my <strong>October 2024</strong> data cutoff. The competitive community had gradually rediscovered the strategic value of using Sub Resist Up, specifically due to its interaction with certain high-impact weapons. Although signs of this shift existed as early as October, it hadn&apos;t fully taken hold until months later. In other words, SplatGPT had successfully <strong>predicted a meta shift</strong>, a shift I initially mistook for a bug, simply because the model had identified something strategically valuable before I did.</p>
<p>This realization was genuinely shocking. If the emergence of the <code>&lt;NULL&gt;</code> token behavior hadn&apos;t already convinced me, this experience hammered home the idea that SplatGPT isn&apos;t just blindly mimicking player strategies, it&apos;s genuinely capable of uncovering nuanced, strategically powerful gear optimizations that can even outpace player consensus.</p>
<h3 id="broader-community-reactions-from-top-players">Broader Community Reactions from Top Players</h3>
<p>Beyond my own experiences, responses from top competitive players who&apos;ve tested SplatGPT have been overwhelmingly positive, ranging from impressed surprise to outright disbelief at how effectively the model generates viable, strategic builds. These reactions underscore that the model isn&apos;t merely good at recreating known builds but can genuinely capture and even anticipate subtle strategic nuances valued by experienced competitive players.</p>
<h3 id="practical-impact-and-community-deployment-and-a-small-lament">Practical Impact and Community Deployment (and a Small Lament)</h3>
<p>Perhaps most meaningful of all, SplatGPT wasn&apos;t merely an academic exercise, it was deployed publicly through the <a href="https://splatgpt.ink/?ref=cegarza.com">splatgpt.ink</a> website and enjoyed early enthusiastic usage from the community. An API endpoint even collected user feedback, laying groundwork for future improvements via reinforcement learning from human feedback (RLHF) or direct preference optimization (DPO).</p>
<p>Unfortunately, with Nintendo ratcheting up their security on their companion app one more degree, <code>stat.ink</code> suffered a dramatic dropoff in data collection. With the data well dried up, SplatGPT&apos;s recommendations inevitably lost their edge as the game&apos;s meta moved forward while the model remained frozen in time, stuck forever in October 2024. Understandably, traffic and enthusiasm declined accordingly. Alas, if you choose to build under the Sword of Damocles, you must accept the consequences.</p>
<p>Still, the successful deployment demonstrated SplatGPT&apos;s practical potential. The fact that the set completion engine proved so effective strongly suggests it could find similar success elsewhere... perhaps in other complex, noisy optimization domains beyond Splatoon.</p>
<p>For now, though, my focus shifts from deployment back to understanding: I&apos;ve built a powerful gear-optimizing &quot;brain,&quot; but how exactly does it think? In <strong>Part 3</strong>, I&apos;ll dive deep into the interpretability of SplatGPT, leveraging a <strong>Sparse Autoencoder (SAE)</strong> to map out the surprisingly intricate internal representations of the model.</p>

<!--kg-card-begin: html-->
<nav class="series-footer" aria-label="Series Post Navigation">
  <div class="series-footer__link-wrapper series-footer__link-wrapper--previous">
    <a href="https://cegarza.com/splatgpt-part-2a/" class="series-footer__link series-footer__link--previous">
      <span class="series-footer__arrow">&#x2190;</span>
      <span class="series-footer__text">
        <span class="series-footer__label">Previous Post</span>
        <span class="series-footer__title">Architecture</span>
      </span>
    </a>
  </div>

  <div class="series-footer__link-wrapper series-footer__link-wrapper--next">
    <span class="series-footer__link series-footer__link--disabled series-footer__link--next">
      <span class="series-footer__text">
        <span class="series-footer__label">Next Post</span>
        <span class="series-footer__title">This is the latest post</span>
      </span>
      <span class="series-footer__arrow">&#x2192;</span>
    </span>
  </div>
</nav>

<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[SplatGPT Part 2A: Engineering GPT for Set Completion]]></title><description><![CDATA[Introducing SplatGPT, a deep learning model using set-transformers to effortlessly navigate Splatoon 3’s intricate 160B gear-build possibilities]]></description><link>https://cegarza.com/splatgpt-part-2a/</link><guid isPermaLink="false">68215e3872e18d339549034d</guid><category><![CDATA[SplatGPT]]></category><category><![CDATA[Machine Learning]]></category><dc:creator><![CDATA[Cesar Garza]]></dc:creator><pubDate>Tue, 13 May 2025 10:46:39 GMT</pubDate><content:encoded><![CDATA[
<!--kg-card-begin: html-->
<nav class="series-navigation" aria-label="Blog Series Navigation">
  <h3 class="series-navigation__main-title">SplatGPT: A Deep Dive</h3>
  <ol class="series-navigation__list">
    <li class="series-navigation__item series-navigation__item--past">
      <a href="https://cegarza.com/splatgpt-part-1/" class="series-navigation__link">
        <span class="series-navigation__part-number">Part 1</span>
        <span class="series-navigation__part-title">Problem Statement</span>
        <span class="series-navigation__status-indicator">Read</span>
      </a>
    </li>
    <li class="series-navigation__item series-navigation__item--active">
      <a href="https://cegarza.com/splatgpt-part-2a/" class="series-navigation__link" aria-current="page">
        <span class="series-navigation__part-number">Part 2A</span>
        <span class="series-navigation__part-title">Architecture</span>
        <span class="series-navigation__status-indicator">You are here</span>
      </a>
    </li>
    <li class="series-navigation__item series-navigation__item--past">
      <a href="https://cegarza.com/splatgpt-part-2b/" class="series-navigation__link">
        <span class="series-navigation__part-number">Part 2B</span>
        <span class="series-navigation__part-title">Training and Performance</span>
        <span class="series-navigation__status-indicator">Read</span>
      </a>
    </li>
    <li class="series-navigation__item series-navigation__item--upcoming">
      <a class="series-navigation__link">
        <span class="series-navigation__part-number">Part 3</span>
        <span class="series-navigation__part-title">Interpretability with SAEs</span>
        <span class="series-navigation__status-indicator">Upcoming</span>
      </a>
    </li>
    <li class="series-navigation__item series-navigation__item--upcoming">
      <a class="series-navigation__link">
        <span class="series-navigation__part-number">Part 4</span>
        <span class="series-navigation__part-title">Active Collaboration and Steering</span>
        <span class="series-navigation__status-indicator">Upcoming</span>
      </a>
    </li>
  </ol>
</nav>
<!--kg-card-end: html-->
<div class="kg-card kg-toggle-card" data-kg-toggle-state="close">
            <div class="kg-toggle-heading">
                <h4 class="kg-toggle-heading-text"><span style="white-space: pre-wrap;">Recap</span></h4>
                <button class="kg-toggle-card-icon" aria-label="Expand toggle to read content">
                    <svg id="Regular" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24">
                        <path class="cls-1" d="M23.25,7.311,12.53,18.03a.749.749,0,0,1-1.06,0L.75,7.311"/>
                    </svg>
                </button>
            </div>
            <div class="kg-toggle-content"><p><a href="https://cegarza.com/the-deceptive-difficulty-of-splatoon-3-gear-optimization/" rel="noreferrer"><span style="white-space: pre-wrap;">Last time</span></a><span style="white-space: pre-wrap;">, we saw why Splatoon 3 loadouts overwhelm naive recommenders:</span><br><b><strong style="white-space: pre-wrap;">160 billion </strong></b><span style="white-space: pre-wrap;">gear-weapon options when the dataset is at least three orders of magnitude smaller, non-linear stacking curves, and &quot;noise&quot; that&apos;s indistinguishable from signal without taking the full context into account.</span></p><p><b><strong style="white-space: pre-wrap;">We distilled three hard requirements:</strong></b></p><ul><li value="1"><b><strong style="white-space: pre-wrap;">Permutation Invariance</strong></b></li><li value="2"><b><strong style="white-space: pre-wrap;">Non-linear interaction capture</strong></b></li><li value="3"><b><strong style="white-space: pre-wrap;">Deep contextual understanding</strong></b></li></ul><p><span style="white-space: pre-wrap;">Introducing </span><b><strong style="white-space: pre-wrap;">SplatGPT</strong></b><span style="white-space: pre-wrap;">: A Set-Transformer based model that predicts probability buckets, then assembles legal builds with a beam search variant.</span></p></div>
        </div><h2 id="embracing-sets-and-structured-prediction">Embracing Sets and Structured Prediction</h2>
<p>The failure of naive recommendation systems isn&apos;t just about data scarcity or noise, it&apos;s a <strong>representation mismatch</strong>. A Splatoon gear build is <em>not</em> an ordered list, it is a <strong>set</strong> whose value comes from <em>which</em> abilities appear at which quantities and how they interact, not so much where they sit. Modeling the data as a set automatically satisfies our first requirement, <strong>permutation invariance</strong>.</p>
<p>The other two requirements, capturing <strong>non-linear interactions</strong> and understanding <strong>deep contextual relationships</strong>, are strengths of Transformer architectures like those found in <em>Large Language Models</em> (LLMs). However, standard LLMs are typically designed for <em>ordered sequences</em>: they emit token after token and score themselves on next-token accuracy. Even without positional embeddings, the causal mask inherently encodes an order bias.</p>
<p>So I asked: &quot;What if I built an LLM that uses sets instead of sequences of tokens?&quot; <strong>SplatGPT</strong> was my solution: fuse <strong>GPT-2</strong>&apos;s residual stack with the permutation invariance provided by using <strong>Set Transformers</strong>(<a href="https://arxiv.org/abs/1810.00825?ref=cegarza.com">Lee et al., 2019</a>). However, this hybrid approach demanded a shift in the prediction task itself: the fused model no longer predicted the &quot;next token&quot;, but should instead predict the <em>entire collection</em> of abilities likely to be within the set all at once. This naturally framed the problem as a <strong>multilabel classification</strong> task: for every possible &quot;ability token&quot; (more on this later), the model predicts the probability of that token being a member of the target set. This changes the training process, loss functions, data handling, and anything else downstream of adopting this set-based, multilabel paradigm.</p>
<h3 id="build-space-and-token-space">Build Space and Token Space</h3>
<p>Predicting probabilities for &quot;ability tokens&quot;, however, buries the lede a little bit. <strong>How exactly do we define these tokens to accurately capture Splatoon&apos;s gear mechanics?</strong> A naive approach might be to create tokens for each ability and the type of slot it occupies (main or sub). But this runs into a significant issue: within the game&apos;s design, three &quot;sub&quot; slots (3 AP each, totaling 9 AP) have nearly the same internal point value as a single &quot;main&quot; slot (10 AP). Indeed, the community often sees these quantities as essentially equivalent for build purposes. Listing main vs subs would throw away this crucial fungibility of AP. Additionally, enforcing slot limits directly in the model would be a heavy ask adding needless complexity.</p>
<p>I solve this with <strong>two separate spaces</strong>:</p>
<table>
<thead>
<tr>
<th>Space</th>
<th>What lives here</th>
<th>Who uses it</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Build Space</strong></td>
<td>The literal gear UI: 3 mains + 9 subs, slot rules, brand quirks.</td>
<td>Input from / output to the player</td>
</tr>
<tr>
<td><strong>Token Space</strong></td>
<td>Discretised <em>AP buckets</em> plus one token for each main-only ability.</td>
<td>The model&#x2019;s embeddings and logits</td>
</tr>
</tbody>
</table>
<h4 id="example-from-build-to-tokens-and-back">Example: From Build to Tokens and Back</h4>
<p>Consider the input build fed into the system:</p>
<ul>
<li><strong>Player Input Build (Build Space)</strong>:
<ul>
<li>Headgear Main: Ink Saver (Main) (10 AP)</li>
<li>Clothing Sub 1: Ink Saver (Main) (3 AP)</li>
<li>Clothing Sub 2: Quick Super Jump (3 AP)</li>
<li>(Other slots empty for simplicity)</li>
</ul>
</li>
<li><strong>&quot;Melting-down&quot; to Token Space</strong>:
<ul>
<li>Ink Saver (Main): 13 AP (falls into the <code>ISM_12_14_AP</code> bucket, as an example)</li>
<li>Quick Super Jump: 3 AP (falls into the <code>QSJ_3_5_AP</code> bucket)</li>
<li>The model receives this as <code>[&quot;ISM_12_14_AP&quot;, &quot;QSJ_3_5_AP&quot;]</code></li>
</ul>
</li>
</ul>
<p>Let&apos;s say that SplatGPT returns the exact same combination for this example. We now have to reconstruct, which has two equivalent representations:</p>
<ul>
<li><strong>&quot;Reconstruction Step&quot;: Finding Valid Builds for the Predicted Tokens</strong>
<ul>
<li><strong>Option 1 (Mirroring Original Structure)</strong>:
<ul>
<li>1 main slot to Ink Saver (Main) (10 AP)</li>
<li>1 sub slot to Ink Saver (Main) (3 AP)</li>
<li>1 sub slot to Quick Super Jump (3 AP)</li>
<li>Result: ISM = 13 AP, QSJ = 3 AP. Both targets hit.</li>
</ul>
</li>
<li><strong>Option 2 (Prioritizing Sub Slots for ISM)</strong>:
<ul>
<li>4 sub slots to Ink Saver (Main) (12 AP)</li>
<li>1 sub slot to Quick Super Jump (3 AP)</li>
<li>Result: ISM = 12 AP, QSJ = 3 AP. Both targets hit.</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Both of these options are valid ways to achieve the AP targets predicted by the model in Token Space. This becomes significantly more complex once you consider a full build, requiring the reconstruction algorithm to pick one based on its own heuristics or possibly offer multiple choices to the user. This example also demonstrates how Token Space abstracts away the main/sub concepts altogether and allows the model to focus entirely on total AP, while reconstruction handles the combinatorial arrangement of the final predictions.</p>
<h2 id="introducing-splatgpt">Introducing SplatGPT</h2>

<!--kg-card-begin: html-->
<div style="
  margin: 5px auto; 
  max-width: 100%; 
  background: linear-gradient(145deg, #363636, #2d2d2d);
  padding: 20px;
  border-radius: 12px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2), inset 0 1px 1px rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.05);
">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="506px" height="761px" viewbox="-0.5 -0.5 506 761" class="ge-export-svg-dark" content="&lt;mxfile host=&quot;app.diagrams.net&quot; agent=&quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 OPR/116.0.0.0&quot; scale=&quot;1&quot; border=&quot;0&quot; version=&quot;24.8.6&quot;&gt;
  &lt;diagram name=&quot;Page-1&quot; id=&quot;Dx7qGdVuBCtARIyrACCt&quot;&gt;
    &lt;mxGraphModel dx=&quot;2020&quot; dy=&quot;1106&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;850&quot; pageHeight=&quot;1100&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;
      &lt;root&gt;
        &lt;mxCell id=&quot;0&quot; /&gt;
        &lt;mxCell id=&quot;1&quot; parent=&quot;0&quot; /&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-42&quot; value=&quot;Set Transformer Layer&amp;amp;nbsp; &amp;amp;nbsp;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;shadow=0;glass=0;align=right;horizontal=1;verticalAlign=top;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;260&quot; y=&quot;130&quot; width=&quot;410&quot; height=&quot;200&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-1&quot; value=&quot;&amp;lt;div style=&amp;quot;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color: initial;&amp;quot;&amp;gt;Ability Embed&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;align=center;fillColor=#e1d5e7;strokeColor=#9673a6;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;165&quot; y=&quot;40&quot; width=&quot;50&quot; height=&quot;50&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-2&quot; value=&quot;&amp;lt;div style=&amp;quot;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color: initial;&amp;quot;&amp;gt;Weapon Embed&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;align=center;fillColor=#e1d5e7;strokeColor=#9673a6;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;375&quot; y=&quot;40&quot; width=&quot;50&quot; height=&quot;50&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-3&quot; value=&quot;+&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#b0e3e6;strokeColor=#0e8088;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;280&quot; y=&quot;110&quot; width=&quot;20&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-4&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;curved=0;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-1&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;225&quot; y=&quot;440&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;275&quot; y=&quot;120&quot; as=&quot;targetPoint&quot; /&gt;
            &lt;Array as=&quot;points&quot;&gt;
              &lt;mxPoint x=&quot;190&quot; y=&quot;120&quot; /&gt;
            &lt;/Array&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-5&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;curved=0;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-2&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;45&quot; y=&quot;340&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;305&quot; y=&quot;120&quot; as=&quot;targetPoint&quot; /&gt;
            &lt;Array as=&quot;points&quot;&gt;
              &lt;mxPoint x=&quot;400&quot; y=&quot;120&quot; /&gt;
            &lt;/Array&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-18&quot; value=&quot;Set Transformer&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;508&quot; y=&quot;200&quot; width=&quot;100&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-21&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=1;curved=0;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-23&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;360&quot; y=&quot;180&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;290&quot; y=&quot;280&quot; as=&quot;targetPoint&quot; /&gt;
            &lt;Array as=&quot;points&quot; /&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-22&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=0;&quot; parent=&quot;1&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-18&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;290&quot; y=&quot;160&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;230&quot; y=&quot;290&quot; as=&quot;targetPoint&quot; /&gt;
            &lt;Array as=&quot;points&quot;&gt;
              &lt;mxPoint x=&quot;558&quot; y=&quot;160&quot; /&gt;
            &lt;/Array&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-25&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;curved=0;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-29&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-23&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;180&quot; y=&quot;340&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;230&quot; y=&quot;290&quot; as=&quot;targetPoint&quot; /&gt;
            &lt;Array as=&quot;points&quot; /&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-26&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-3&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-23&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;290&quot; y=&quot;130&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;290&quot; y=&quot;480&quot; as=&quot;targetPoint&quot; /&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-23&quot; value=&quot;+&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#b0e3e6;strokeColor=#0e8088;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;280&quot; y=&quot;270&quot; width=&quot;20&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-29&quot; value=&quot;Feed-forward&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;333&quot; y=&quot;255&quot; width=&quot;50&quot; height=&quot;50&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-30&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;curved=0;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-18&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-28&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;558&quot; y=&quot;240&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;338&quot; y=&quot;280&quot; as=&quot;targetPoint&quot; /&gt;
            &lt;Array as=&quot;points&quot;&gt;
              &lt;mxPoint x=&quot;558&quot; y=&quot;280&quot; /&gt;
            &lt;/Array&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-28&quot; value=&quot;Cross&amp;lt;div&amp;gt;Attn&amp;lt;/div&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;454&quot; y=&quot;255&quot; width=&quot;50&quot; height=&quot;50&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-38&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;curved=0;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-28&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-37&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;454&quot; y=&quot;280&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;300&quot; y=&quot;280&quot; as=&quot;targetPoint&quot; /&gt;
            &lt;Array as=&quot;points&quot; /&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-40&quot; value=&quot;&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-37&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-29&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-37&quot; value=&quot;+&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#b0e3e6;strokeColor=#0e8088;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;405&quot; y=&quot;270&quot; width=&quot;20&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-41&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=0;&quot; parent=&quot;1&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-37&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;290&quot; y=&quot;160&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;230&quot; y=&quot;290&quot; as=&quot;targetPoint&quot; /&gt;
            &lt;Array as=&quot;points&quot;&gt;
              &lt;mxPoint x=&quot;415&quot; y=&quot;160&quot; /&gt;
            &lt;/Array&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-45&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-23&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-44&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;290&quot; y=&quot;290&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;290&quot; y=&quot;480&quot; as=&quot;targetPoint&quot; /&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-47&quot; value=&quot;&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-44&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-46&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-44&quot; value=&quot;Set Transformer Layer&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;230&quot; y=&quot;360&quot; width=&quot;120&quot; height=&quot;60&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-50&quot; value=&quot;&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-46&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-48&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-46&quot; value=&quot;Set Transformer Layer&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;230&quot; y=&quot;440&quot; width=&quot;120&quot; height=&quot;60&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-52&quot; value=&quot;&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-48&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-51&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-48&quot; value=&quot;Masked Mean&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#fff2cc;strokeColor=#d6b656;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;250&quot; y=&quot;520&quot; width=&quot;80&quot; height=&quot;80&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-54&quot; value=&quot;&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-51&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-53&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-51&quot; value=&quot;Projection&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#fff2cc;strokeColor=#d6b656;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;250&quot; y=&quot;620&quot; width=&quot;80&quot; height=&quot;80&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-53&quot; value=&quot;Sigmoid&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#bac8d3;strokeColor=#23445d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;250&quot; y=&quot;720&quot; width=&quot;80&quot; height=&quot;80&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-58&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=0;&quot; parent=&quot;1&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-28&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;290&quot; y=&quot;160&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;230&quot; y=&quot;290&quot; as=&quot;targetPoint&quot; /&gt;
            &lt;Array as=&quot;points&quot;&gt;
              &lt;mxPoint x=&quot;480&quot; y=&quot;160&quot; /&gt;
            &lt;/Array&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;HYfCtVAYvf80hUUsblHq-2&quot; value=&quot;key&amp;lt;br&amp;gt;value&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;504&quot; y=&quot;260&quot; width=&quot;50&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;HYfCtVAYvf80hUUsblHq-3&quot; value=&quot;query&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;435&quot; y=&quot;219&quot; width=&quot;50&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
      &lt;/root&gt;
    &lt;/mxGraphModel&gt;
  &lt;/diagram&gt;
&lt;/mxfile&gt;
"><defs><style type="text/css">svg.ge-export-svg-dark:not(mjx-container &gt; svg) { filter: invert(100%) hue-rotate(180deg); }&#xa;svg.ge-export-svg-dark foreignObject img,&#xa;svg.ge-export-svg-dark image:not(svg.ge-export-svg-dark switch image),&#xa;svg.ge-export-svg-dark svg:not(mjx-container &gt; svg)&#xa;{ filter: invert(100%) hue-rotate(180deg) }</style></defs><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="OCCttNjwiIRNWy9H9MT8-42"><g><rect x="95" y="90" width="410" height="200" rx="30" ry="30" fill="#f8cecc" stroke="#b85450" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-end; width: 408px; height: 1px; padding-top: 97px; margin-left: 95px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Set Transformer Layer&#xA0; &#xA0;</div></div></div></foreignobject><image x="95" y="97.5" width="408" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-1"><g><ellipse cx="25" cy="25" rx="25" ry="25" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 25px; margin-left: 1px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div style=""><span style="background-color: initial;">Ability Embed</span></div></div></div></div></foreignobject><image x="1" y="11" width="48" height="32" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-2"><g><ellipse cx="235" cy="25" rx="25" ry="25" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 25px; margin-left: 211px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div style=""><span style="background-color: initial;">Weapon Embed</span></div></div></div></div></foreignobject><image x="211" y="11" width="48" height="32" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-3"><g><ellipse cx="125" cy="80" rx="10" ry="10" fill="#b0e3e6" stroke="#0e8088" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 80px; margin-left: 116px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">+</div></div></div></foreignobject><image x="116" y="73.5" width="18" height="17" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABECAYAAAAiL3M8AAAAAXNSR0IArs4c6QAAAQ9JREFUeF7t18Ftg0AURdFHDS7H2bsI15cisnfKSQ+WEm9hRnoCEfl4PYzgcOcLL/HbFFj4bAsAGhQCCFA3RBSkIAV1Agrq/MwgBSmoE1BQ52cGKUhBncA/KeiS5DPJ7XW/X0nuSX52ffqJzc8ygwANXhYgQBPneWOJghSkoE5AQZ3fW8+ga5JH57d69UeS7532/t32iA9FQIM3CAjQnof8b++3HtIzvIB8B810sr5GQQpSUCegoM7PDFJQV9Bprz7iz+ppH37mxgANlAABmjlI62sUpCAFdQIK6vzMIAUpqBNQUOdnBilIQZ2Agjo/M0hBCuoEFNT5mUEKUlAnoKDOzwxSkII6AQV1fmbQwO8Jan8+RSX4wwIAAAAASUVORK5CYII="/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-4"><g><path d="M 25 50 L 25 70 Q 25 80 35 80 L 103.63 80" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 108.88 80 L 101.88 83.5 L 103.63 80 L 101.88 76.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-5"><g><path d="M 235 50 L 235 70 Q 235 80 225 80 L 146.37 80" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 141.12 80 L 148.12 76.5 L 146.37 80 L 148.12 83.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-18"><g><rect x="343" y="160" width="100" height="40" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 180px; margin-left: 344px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Set Transformer</div></div></div></foreignobject><image x="344" y="173.5" width="98" height="17" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYgAAABECAYAAACbHqJdAAAAAXNSR0IArs4c6QAAFWpJREFUeF7tnQWsdTkRx2dxJ7gGWJwgi7suBF3c3Z2gWRb3BRZ3d3d3d3eChYXF3Qmu55d08nUn09P23PvuPe+dafJlN+/2nNP+286/M52Z7idRAoFAIBAIBAIBB4H9ApVAIBAIBAKBQMBDIAgi5kUgEAgEAoGAi0AQREyMQCAQCAQCgSCImAOBQCAQCAQC7QiEBtGOVdQMBAKBQGBRCARBLGq4o7OBQCAQCLQjEATRjlXUDAQCgUBgUQgEQSxquKOzgUAgEAi0IzAXgjiKiJxFRC6b/p1NRM6XdeM7InK4iHxBRD4lIp8Xkd+3d3PP1byEiHxiQ716rojcS0T+tqHvxWfKCLBezy4iNxnG/woictFU9c8i8hUR+Z6IPFpEvhsgBgLrQGDbBHHMQegfNAifQ0TkQh0dYkG8QUQeLyLfFpH/dTy7japnEJEbi8hz1kRsQRDbGMXtfvPYInIfEbmviBy/0JQvDuvhRmkztd3Wxtf3BALbJAh2Qgh4CGJqgSh4x5NE5C9TX7KDz51ERG4jIvdLWs9NReS3a/heEMQaQNxFr2Cd3l1EnlJp8zsHLeLma9qE7CJ4oqk7hcC2COICIvJMEbnImjr27KSFQBhzKWcSkVdkZoD3Dqp/EMRcRmd3teP0IvIqEbm4afYPkznpvyKChvHVYaN08LAh+fvu6l60dq4IbIMgTiEi2LWvaUD5uoi8cFgE7xORn4nInzLT0TFE5OTJDMWO3NM6HiwijxWRf88EbM5RXisiB6T2rJMgerqIFvNKEblS9tDN0t963hN1t4eA1RjZCHEuxAbkH9trVnx5ryOwaYIoqcoPT6aiFjMR72AnhQaiwpdx+nmyv35sJoMWBDGTgdgDzUDzhAy0vFxE7jqcScxJY94DMEcXLAKbJohTicjLkgeGtgWvi4dO2PmfPy2ac2Sdelo6xJvDrioIItbbuhCwBMGGin9zd85YV//jPVtCYNMEgVseJiT1wvhs8u45YkL/PW0EG+wNh3fiFrvtEgSx7RHYO9+3BPEQEXnk3ule9GSuCGyaINatKp9TRF4/2PpzLeIyIjIHM1MQxFxn/e5rVxDE7huzPdHibRPECwaXvHsMZqG/TkTzhCLCO/AY+nV6By6vHAi3Frw/8Ka6tohcOPM6+l1yTf3kcNbxZhH5pojgLTJWetxPN6XtrOuQGpyePJz13DEBkB+6E+eBG+Z1RASPmy+LyMdF5HUigpZYchw42uCdc9ah7uXTuZINkMRL5xsi8plhXN6T3tvihGD7bIP9cHi41jC+V0vnWLRZg80+mpwLWsbbzgX6w2aFdzMXiO05caoEJmi2Hxnm2btE5CcjJiK7uWiZyy2OB/SbALurp0BUvkMBZ+bjh0XkbSLyg4a5rm2yc17boTFOd07jy3oiyPXtIvIWEflVekHpeX4mgJa1SWzHpbLg2Zb5xXzlGeKPLiYi9FXHGCsGZzr0e4qZjnbxPnA80Iwzc/VLQ1vfmtZAa4DpTqyvlnkzWmfTBIH55zVZi1YxMa3aeSbwdYeFgLquC2Xsne9IZyVMztKkWhpBIAwuneJQELJewVsNoZOXqQGSRNA/YPjmhyoCrEQQtOFOA2E9KBPcpTFnvHEZJRCzVlhHlxsqPSwJpVp9fucsjrM3hLEt6yYICJwgu1uOBNnlbWBD9KhEyDUB6gl4BPATU0yGhwVBrrcbPLH+mIg0zwqgBNMaJ0Vb8ehC2FMYCwiBmJGx4FvI4nGpna1CnHeT4YHzn5b4LTYEjxCRNzZ4m3kEMXV9tcy/pjqbJojzpAho0mpoIYiMydSyM2zqVEOlU6bJQVBRT2FSIaCIiPbauzSCwC2ZQMUSOXxARG6RPMwU55NVhEdtPBgD7O9oM6U54xEEzhAIvZ4xZ4HfoWKyZDdJ6otnNQrfvH8INXbYaEe5IF4XQbC+cW9GWLZsgvK2seO/d3KHHlubds7Tn3MPGsJdRgYScmDuUDyC+bGIPK+jzezW0WzRStiE4uGomlttPuEaD7HXHFvY1DAXDp0wznidQdBq5fDa5BHElPVV62/X75smiOOKyDOGXdOtslay4FlcTzWCpKsjHZVLcRi043PJnMH/c5B+yUHt5kzDlhKpQXyYWShMUIQRnluUbyWTi+5WmJBoU7/oaPuUqjtlYsKtmFgVFTxogxAC5kJ2bpiNWHgIchV+jD+7Nis8VPVHPddIc9qNiUDzDeV9r7k02z5zTgXe7Mi0IPw/OES6/2jIX0ScDa7TCCubxgLt5/aZScSOAfPjpYYk7VziGUxP5BqzZIppBzMI80MLGxjMKgglyrlM2zFR2XM2TGPgp4W1reldbJ8Q/vSd/E3/GWlbCxlbAY+GrXnU+A7R3ZgJGZNriMgfjGOKfR4TMX/TIFraQFvRHinnTXPLEgAbN9YvQlUxhoDBiv+CAeY1G5zL+zEv841SwXSIgIdMbKG/n07z6Kgj7VMS+2XhI5YgpqyvkS5M+2nTBEErsdlh/1PBqS1noFDrCerCVrkTyfg8ATVGUOCzf9p5stjytrKbyM1ldgT22iG1ncA5Fg9MO758F4a9m50nQkKLPWzl709IJioWhFdOJyK8H7zzMubS7JGiPoug4X3Y2+3O+IypPQiMvGCKfJPTuBOkfrNr1fL8ZDry+gOGzCO0rlzAoRFhtkBYe2XKITVClrWUExJjQd/Z0dqYo5LJlfUxNtdLWjNmJs4XcxMdgva0IoKGoH0d07pLc4NxYvw5Q8rnIZsv5h2EgBlRNwZaB23vKknDyHEZm0slokVWMWacN9izSeYFmGG+zsmZzTG5tDyT1jrWV2H6TP/zNgiCSYLNkMjnUtIxegQzo3pzqEcSMiZ3zR5aQ8IuNCY/u1nSGIwdQDN4DCw7Yi0IGDSEnxY+uhSCaI1gP1Ha3eXCtzUGBuGFvf7+GdbMC8aTqHtbSgTBLo4As9KY8R5PwyxltCVlDIeuutnBHn7byuaGNUe7EdJa2BBhplI7uu1PL0GANW2+fvYiNBXMP+x2xwpaMILsilklHDXQvrzzEk/Ae1pR6ZslgqiZnnEo4bDbbjTBkLMWNCqv9OLvmftaUvvwnSsP84m6SkbIm+slV3/bthJBtK6vmuyb9Ps2CIKGQhJMetTJVluhmgRQGadoGJ6Aqk3CHFR2BU9PNnX9e25LtQOwBILALIIQwoRQK1aY9joo2PMrUrPcoHCI7BEEgoPFScr4WsFMyMGiFkxnCHBrQ7ZOF63xCd5cRCC/v9CwXoLAvAdZ6QZsTDB5nwRrtOPcffyeadduN2megK9pRPk3vedbiJa+cdZgz5RK7cy/aXNboe3hkcRGNC/IRzaznJFqqZmK7PPICM5TtLxERO7maHAeQfSsr9qcnvT7tghCG4t3BYuKhTumTXidQ8VjgrCTrx0w8bxdNDUNwPumfUfujWHrL4EgelI+nDktQoQPbsm4wTL2JbOKxdMT+pwRsbttqdtzr4Ulo5JLshXcj0maca1PrDt2htjEucMBgsVWn59D5H3qIQjOU7CVI9i09GYY8AQj2jzC+DcGbE/Aj5GdHSvv+bGNV/48GOIlpKXVdVzd45E7Wry5ZDM/9BIt77bvKJGRRxA962sSAdQe2jZB0D7agF2SXRv22d4Mr9iU0QQQ+CUTFN/A9ppHnzK58EjoMVudOtl1OWykcDELk+xrDtBLIIhNpnxYlSBwb4UkWood55LgwcU3N2WUvJJavjlWp4cgbNt5b4/A1nZYkiwJNivgxzQ7r4/2+dJ3vGfxXMKjUEurQPWEsUcQtO3d2ea1RJJjY8fBNXInN496c9Fr0ybXl9uHORBE3jDag8kJz5Wrpl1/i3sezI4LI55QnjbhqaN4iZBttaccJ32DHY4Wz8+f35ZAEC3BWT34jtVdlSB6Iuztt0oE4eUW2wlnix6CsOlsaucbJcy9XbY33lbA92Ytts+PnS3Ztlpc8Jhjs/jPyqRrJQhLQHhb4s3Um04dV2883bR47fTatMn1tSsIwjZSCQP7NR4L+HSPEUbpTMHbVXEQRzRrTzl6OnhiUmsp7UyXQBBTdqY9eKvXC+6uaJiY+HJTZKuJCaFNW3M30B4yKhEE89PamO170TA4N8ONkt11TXh57eohCFxJsZNrGTODjmHg7Xy9MxYr4Ft38frtVQimB5e8ry0E4fXfcy9umc/WTdnDyGvTTq+vatvnpkHUGoybGucWTAy8RaxPOeoprEukbV6mBB7V2qK/lw4ml0AQJQHdih31mIM4AEDi/AM3cmyRrdeLgcjf3UoQrbZpfXerBkF9XKcxVeLSWSsaF4DmyhkMcSQtpUcQ2ro9Zy+2LdbG30IQvd9bhWB6cOkliJJXUct41ep4WlYLadXeu/bfdxtB5AAQkYvbqQ268rwEgiBWvzBonRMYzYCzplung9pSJHZtws+BIGhjb9oWnum5V71HEO4kQXjC3wr4VQmi5/keXIIgaqvJ+X03E4Tu3mxkrndwHAQxD4LozWWjU1Yjk/GEyslkLgSh7YREcWAgSMqaw0rLsyWlRY8g3EmC8Ly0giD6BW9oEAYzXO/wUCLLJQe9LHKCpEhYtmrxUn7bg2NLEL0mhyltDBPTkVGDHAiSI/ZlTGNAYDI+xCuQCoKASVxBOXuwV6fOjSDyHmN6Ii0EwVKcn2n6CW8u1aKV50IQmzAxzVmD2MlD43Vq6FPklfvMpjQIzze71We81tkWbwt2ngT+cNit6n3PoWWtDd7vQRBHRoWgq1eba2LV44eUCJABealKmTVX8WLq3RD0nEG0zI3cO4/gOgjDBoiOBYf1EMS6Dqm9NUu+I9ZtXvaqBnGsFCCXm7C9/reMf0udRRMEABG4w+5RyxSfYg9oz/XUMj2Rq3gO5LlbdnI3QDuDIPaNFh4hpMrg0FMLkfF4gOHl0xKLspsJws5bzs842CYJoJYxT6segrAR60QH49J9eIuUyup4a8ZzDd+rBAEUxC5g6dDSo910wi2LJwgv/J/IzNwlrxdU6nsurNbnfR3RpXxLc9ycNEW9sujIxeMtviCIfaPpjRF2ei57aiEH3sT9AFxARCppLds0MWHyQjjibUX2Wg7e8Zv3ckN585rgUHKA4cKrpbRp6SGIbQfK9QrRVQimB5d8DFqFsdXGetPD8E2NSiclDbmscHXG3ZqNUR5x39qmKTJy8jObMjHRQC+oiPQC+JGvkvKa8wa0A/WPLwUG2fw6pDVgR+RFQZcAxSyFX7l+ayzqMwhiH4qtUbljE9mOH3W3SRBsEph3nDFQ0ADIFOql/vD61RMY1SMIvc1Qr9BG4yM5Zb57bk210futORMEmZwxi+bZHXo3NqdJ84QLpbRwzwbBclNIa7Kwn/LgJgmiFFTEImMyTiEJ7NovNgNYShRG/ARpxvMgNyIj+bZNfexhiVmAyZ9nI8WfnQnj+bMHQexD0Zo9egPXvEW2bYLwAqlas9PSdksw/K0U7d1DELxnJ5L1EUGc3+2ho7uKgOcdqzzfi4u2uXW3jvsypkD6rgUtAvfsUt6sXHYwRyADPC21kI4FZx3O3IIgDAiekKUK+ZTIO0LWzJbEewTMsQjIq39A9o0xrQCC4t5kbtfKC7EUDODYtYNMFAY631Eh5MZMZJYgelIITCH70jM7dWHQmIC2bbFOAvzemsYYckAw5amr9f0lgbrqIXPr854g5lyFXeeY6cxLOT02P3oFoZfuu+V2PHD10n0jFJnruJDbsoqA512rPN+Li7a9lSCof8FkNcg977B8kDa+lJ6d5xhjtIYXGa89MsOSF87KuZ42rVM+jL5rkxqENoTdJO6KXsoM7HPs8klLgF2fnbkutOMN2VshGFR6XGZz2y3vRmDXFmeJoFjQaB5cbmIXNpoH5EU+lbzUtA+bUrj17ol1D/4cCKJ0kyCZOMmX72lwRFdzUc8hI+lVSjb7VgHfSqolLygvBTxuuuQF42YzT7MEC+5lsJfJjKWpniIISxcG0TbST3sXBpH/DC+lfG3W1tUqAn43EISnBdBu5gSC3tvUMsZYFuzd52PaRxBEthrJgtlz52xNaLZcjajv8MxS+hs+9ww4115iy2WHyi7RFm7LYpF/f6Rhnvst1fkG9wr8K91v3XMGUsPB+30OBEG77PmNtpVdGAuHBcehHec7pNjgQpg87xI74CMymz/PczGMF0uzKYIo7TD5O0TBeRjXYJJ/iflEn7ja1Lq41u4YmEIQbP5WvXKUftTuTNnrBAEGpaty+Y35i/anJifisjw3ZuqxCeCSI68EQRhUStc79gpBBAc7fHzpxy5Xz9/rqdGt34UcuPDDU7fzd5RMWnmdTSTjmgtBtN4k6I0Dd38cnMyJ+TWvpXTImyQI7+aw1rlEPeIfcAEfM1dMIQjeTduwd1utoKV9EBw7YK5QHVtXSyAIJQniIPjXWxhbTNSMdcn0GAThoIrQYJcOsx7UiTqgo4Uwge1NXy2vUjWQJGstuYDUdOCp56XvsVPk8pbc3z2v23NHQUufvDpzIQjaxnhzlkBMREsad86mDkt3lWOztYfdJc+aTRKEYo4bLmdU9j7r0rgxf0lP3zKfphKEfrv3Yi60MvrC5qtWlkIQ4MDZ54HJPGhN3CWcwJL57l3Xmj8TBDEy09jpcBcwKjj/SFHAwWYuRFhQ3LyFDzHZWrksfOxguTax9XeIgkmOuyw+9nxbTRt8i3MJXFt7sm/m3+aAG9suLrW4y+VktK5o8rG+zokgtJ3Y7kndDi44GWgaCkgYUsBVFOGPOS7fvdqrOks3fG2DIHTHTnwD/SInE/NX+0Zb8VzhnA2TEn1s8Z7jvasShNc22qXrCyIAa0wlpLQmDX5rfMqSCELnLxsdTNVoZ5hDMSvpugZLzE1YGtB8W7EMgmiV2FEvEAgEAoFAYPsIbMOLafu9jhYEAoFAIBAIVBEIgqhCFBUCgUAgEFgmAkEQyxz36HUgEAgEAlUEgiCqEEWFQCAQCASWiUAQxDLHPXodCAQCgUAVgSCIKkRRIRAIBAKBZSIQBLHMcY9eBwKBQCBQRSAIogpRVAgEAoFAYJkIBEEsc9yj14FAIBAIVBEIgqhCFBUCgUAgEFgmAkEQyxz36HUgEAgEAlUEgiCqEEWFQCAQCASWiUAQxDLHPXodCAQCgUAVgSCIKkRRIRAIBAKBZSIQBLHMcY9eBwKBQCBQRSAIogpRVAgEAoFAYJkIBEEsc9yj14FAIBAIVBEIgqhCFBUCgUAgEFgmAkEQyxz36HUgEAgEAlUEgiCqEEWFQCAQCASWiUAQxDLHPXodCAQCgUAVgSCIKkRRIRAIBAKBZSIQBLHMcY9eBwKBQCBQReD/Sialnw9GKggAAAAASUVORK5CYII="/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-21"><g/></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-22"><g><path d="M 125 120 L 383 120 Q 393 120 393 130 L 393 153.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 393 158.88 L 389.5 151.88 L 393 153.63 L 396.5 151.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-25"><g><path d="M 168 240 L 141.37 240" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 136.12 240 L 143.12 236.5 L 141.37 240 L 143.12 243.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-26"><g><path d="M 125 90 L 125 223.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 125 228.88 L 121.5 221.88 L 125 223.63 L 128.5 221.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-23"><g><ellipse cx="125" cy="240" rx="10" ry="10" fill="#b0e3e6" stroke="#0e8088" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 240px; margin-left: 116px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">+</div></div></div></foreignobject><image x="116" y="233.5" width="18" height="17" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABECAYAAAAiL3M8AAAAAXNSR0IArs4c6QAAAQ9JREFUeF7t18Ftg0AURdFHDS7H2bsI15cisnfKSQ+WEm9hRnoCEfl4PYzgcOcLL/HbFFj4bAsAGhQCCFA3RBSkIAV1Agrq/MwgBSmoE1BQ52cGKUhBncA/KeiS5DPJ7XW/X0nuSX52ffqJzc8ygwANXhYgQBPneWOJghSkoE5AQZ3fW8+ga5JH57d69UeS7532/t32iA9FQIM3CAjQnof8b++3HtIzvIB8B810sr5GQQpSUCegoM7PDFJQV9Bprz7iz+ppH37mxgANlAABmjlI62sUpCAFdQIK6vzMIAUpqBNQUOdnBilIQZ2Agjo/M0hBCuoEFNT5mUEKUlAnoKDOzwxSkII6AQV1fmbQwO8Jan8+RSX4wwIAAAAASUVORK5CYII="/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-29"><g><ellipse cx="193" cy="240" rx="25" ry="25" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 240px; margin-left: 169px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Feed-forward</div></div></div></foreignobject><image x="169" y="226" width="48" height="32" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-30"><g><path d="M 393 200 L 393 230 Q 393 240 383 240 L 345.37 240" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 340.12 240 L 347.12 236.5 L 345.37 240 L 347.12 243.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-28"><g><ellipse cx="314" cy="240" rx="25" ry="25" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 240px; margin-left: 290px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Cross<div>Attn</div></div></div></div></foreignobject><image x="290" y="226" width="48" height="32" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-38"><g><path d="M 289 240 L 266.37 240" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 261.12 240 L 268.12 236.5 L 266.37 240 L 268.12 243.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-40"><g><path d="M 240 240 L 220 240 L 238 240 L 224.37 240" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 219.12 240 L 226.12 236.5 L 224.37 240 L 226.12 243.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-37"><g><ellipse cx="250" cy="240" rx="10" ry="10" fill="#b0e3e6" stroke="#0e8088" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 240px; margin-left: 241px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">+</div></div></div></foreignobject><image x="241" y="233.5" width="18" height="17" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABECAYAAAAiL3M8AAAAAXNSR0IArs4c6QAAAQ9JREFUeF7t18Ftg0AURdFHDS7H2bsI15cisnfKSQ+WEm9hRnoCEfl4PYzgcOcLL/HbFFj4bAsAGhQCCFA3RBSkIAV1Agrq/MwgBSmoE1BQ52cGKUhBncA/KeiS5DPJ7XW/X0nuSX52ffqJzc8ygwANXhYgQBPneWOJghSkoE5AQZ3fW8+ga5JH57d69UeS7532/t32iA9FQIM3CAjQnof8b++3HtIzvIB8B810sr5GQQpSUCegoM7PDFJQV9Bprz7iz+ppH37mxgANlAABmjlI62sUpCAFdQIK6vzMIAUpqBNQUOdnBilIQZ2Agjo/M0hBCuoEFNT5mUEKUlAnoKDOzwxSkII6AQV1fmbQwO8Jan8+RSX4wwIAAAAASUVORK5CYII="/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-41"><g><path d="M 125 120 L 240 120 Q 250 120 250 130 L 250 223.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 250 228.88 L 246.5 221.88 L 250 223.63 L 253.5 221.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-45"><g><path d="M 125 250 L 125 313.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 125 318.88 L 121.5 311.88 L 125 313.63 L 128.5 311.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-47"><g><path d="M 125 380 L 125 400 L 125 380 L 125 393.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 125 398.88 L 121.5 391.88 L 125 393.63 L 128.5 391.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-44"><g><rect x="65" y="320" width="120" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 350px; margin-left: 66px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Set Transformer Layer</div></div></div></foreignobject><image x="66" y="336" width="118" height="32" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-50"><g><path d="M 125 460 L 125 480 L 125 460 L 125 473.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 125 478.88 L 121.5 471.88 L 125 473.63 L 128.5 471.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-46"><g><rect x="65" y="400" width="120" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 430px; margin-left: 66px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Set Transformer Layer</div></div></div></foreignobject><image x="66" y="416" width="118" height="32" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-52"><g><path d="M 125 560 L 125 580 L 125 560 L 125 573.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 125 578.88 L 121.5 571.88 L 125 573.63 L 128.5 571.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-48"><g><ellipse cx="125" cy="520" rx="40" ry="40" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 520px; margin-left: 86px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Masked Mean</div></div></div></foreignobject><image x="86" y="513.5" width="78" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-54"><g><path d="M 125 660 L 125 680 L 125 660 L 125 673.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 125 678.88 L 121.5 671.88 L 125 673.63 L 128.5 671.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-51"><g><ellipse cx="125" cy="620" rx="40" ry="40" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 620px; margin-left: 86px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Projection</div></div></div></foreignobject><image x="86" y="613.5" width="78" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-53"><g><ellipse cx="125" cy="720" rx="40" ry="40" fill="#bac8d3" stroke="#23445d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 720px; margin-left: 86px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Sigmoid</div></div></div></foreignobject><image x="86" y="713.5" width="78" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-58"><g><path d="M 125 120 L 305 120 Q 315 120 314.89 130 L 314.07 208.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 314.01 213.88 L 310.59 206.85 L 314.07 208.63 L 317.59 206.92 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="HYfCtVAYvf80hUUsblHq-2"><g><rect x="339" y="220" width="50" height="40" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 240px; margin-left: 364px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">key<br/>value</div></div></div></foreignobject><image x="349.5" y="226" width="29" height="32" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="HYfCtVAYvf80hUUsblHq-3"><g><rect x="270" y="179" width="50" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 194px; margin-left: 295px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">query</div></div></div></foreignobject><image x="280" y="187.5" width="30" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g></g></g></g></g></svg>
</div>
<!--kg-card-end: html-->
<p>At its heart, SplatGPT processes a given weapon and (potentially incomplete) set of gear abilities, aiming to predict a complete and optimal set of ability tokens.</p>
<ul>
<li>
<p><strong>Embedding Layer</strong><br>
Discretised ability tokens and weapon IDs are embedded in the same vector space. We <strong>add</strong> the weapon embedding to every ability embedding (rather than concatenate), giving each token built-in context about the weapon and letting the model transfer synergies from popular to data-poor weapons. This is an important as abilities can either enhance a weapon&apos;s strengths or shore up its weaknesses, abilities can therefore only be understood within the context of the weapon they&apos;re supporting. This has a nice secondary effect that encourages the model to learn and transfer synergistic relationships observed with popular, data-rich weapons to less common, data-poor weapons (or equivalently, observe high amounts of signal from data-poor weapons and transfer it to noisy data-rich weapons).</p>
</li>
<li>
<p><strong>SetTransformer Layers (x N)</strong><br>
The core of SplatGPT&apos;s power lies in the stack of <code>SetTransformerLayer</code> blocks. Each layer is a three-stage block designed to progressively deepen the model&apos;s understanding of the interactions within the set of abilities while preserving permutation invariance and sequence length.</p>
<ol>
<li><strong>Set Transformer</strong>:<br>
The input stream is first processed by a <code>Set Transformer</code> module, which uses <code>Induced Set Attention Blocks</code> and <code>Set Attention  Blocks</code> followed by a <code>Pooling by Multihead Attention</code> operation, internal attention mechanisms to analyze all-to-all interactions between the input tokens within the current set. The result is a condensed, fixed-size summary representation that essentially captures the essence of the input as a collective. This is foundational for <strong>permutation invariance</strong>.</li>
<li><strong>Cross-Attention</strong><br>
One of the key challenges of fusing Set Transformers with a GPT-like architecture is that the pooling operation in Set Transformers requires a predetermined output sequence length. However, this interferes with the ability to have residual connections throughout the model which requires both input and output sequences to keep a fixed length.<br>
SplatGPT elegantly solves this by employing cross-attention. Here, the original input sequence for the <code>SetTransformerLayer</code> (<em>before</em> the Set Transformer module) acts as the <em>query</em>. The global summary vectors produced by the Set Transformer module serve as both the <em>key</em> and <em>value</em>. In essence, each token effectively &quot;asks&quot; the global summary what information from that summary is most relevant to it and updates itself based on that result. This allows the model to broadcast the rich, set-level summary back to each individual input token while maintaining the original sequence length.<br>
By reinjecting this global perspective, each input token becomes more aware of its role, dramatically enhancing the contextual understanding at each layer. Because attention mechanisms are inherently <strong>permutation equivariant</strong>, the later <code>Masked-Mean</code> layer achieves full permutation invariance.</li>
</ol>
 <details class="aside"><summary>Interpretability aside</summary>I should note that it is difficult to understand what the later layers of <code>SetTransformerLayer</code> might represent, the first layer allows the raw input tokens to be aware of  their relationship to all other input tokens. Perhaps the second layer allows these newly context-aware tokens to become aware of not only their own status but also the understanding the other tokens have of their goals. Characterizing past the first layer is quite challenging, and further interpretation work must be done to meaningfully characterize what the third layer (and possibly beyond) might represent.</details>
<ol start="3">
<li><strong>Feed-Forward Network (FFN)</strong><br>
After the cross-attention step has enriched each input token in the stream with the global set context, each token in the sequence is passed through a standard Feed-Forward Network. This is a two-layer MLP: it first expands the dimensionality of the embedding, applies the GELU (Gaussian Error Linear Unit) activation function, and then contracts the dimensionality back. This allows nonlinear transformations to be applied to each token individually, and some research suggests this is where &quot;knowledge&quot; resides in a model.</li>
</ol>
<p>The entire three-stage block is wrapped in a <strong>residual connection</strong>: the output of this entire block is added back to its original input. These connections not only help train deep networks, but as Anthropic&apos;s <a href="https://transformer-circuits.pub/2021/framework/index.html?ref=cegarza.com">research into transformer circuits</a> demonstrates, it also allows for higher order contextual representations to flow through the model.</p>
</li>
<li>
<p><strong>Masked-Mean Pool</strong><br>
Once the data flows through the entire transformer circuit, it&apos;s processed one last time by the Masked Mean Pooling layer. Its job is to aggregate the now highly refined and informed token embeddings into a single vector that holistically represents the entire (potentially partial) input gear set. It does this while respecting <strong>padding masks</strong>, which are used to handle sets of abilities of varying sizes within a batch, so that they do not influence the final average. This averaging process is inherently permutation-invariant and provides a final summary of the set&apos;s characteristics.</p>
</li>
<li>
<p><strong>Output Head</strong><br>
This final vector is fed into the Output Head. This is a simple linear projection that transforms the vector&apos;s dimensionality to match the total number of unique tokens in SplatGPT&apos;s vocabulary. These resulting scores (<em>logits</em>) are then passed through a <strong>sigmoid activation function</strong>. This allows the model to assign an independent probability for each ability token in the vocabulary, deliberately framing the problem as <strong>multilabel classification</strong>. This is essential, as it allows the model to predict high probabilities for multiple different ability tokens simultaneously.</p>
</li>
</ul>
<p>Together, these blocks let <strong>SplatGPT</strong> capture stacking curves, weapon synergy, and deep context in a single, permutation-invariant architecture.</p>
<div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x1F4A1;</div><div class="kg-callout-text">It is important to remember that SplatGPT outputs these probabilities in <b><strong style="white-space: pre-wrap;">Token Space</strong></b>. A subsequent algorithm, such as a specialized beam search, is then required to translate these probabilities into a legal <b><strong style="white-space: pre-wrap;">Build Space</strong></b> gear set that a player can actually use in-game.</div></div><p>This deep dive into SplatGPT&apos;s architecture reveals a model fundamentally built to understand Splatoon 3 gear in its native, set-based context. By splitting the problem into <strong>Token Space</strong> and <strong>Build Space</strong>, we have engineered a model designed for set completion with considerations for weighted multisets (sets where elements can appear multiple times and have different weights).</p>
<p>In part 2B, we&apos;ll walk through the dataset. How was it scraped, cleaned, how some biases were removed or compensated for while others were intentionally introduced. We&apos;ll go through the training regiment and discuss results, including the fascinating <code>&lt;NULL&gt;</code> token that convinced me the model is reasoning deeply rather than memorizing. Stay tuned!</p>

<!--kg-card-begin: html-->
<nav class="series-footer" aria-label="Series Post Navigation">
  <div class="series-footer__link-wrapper series-footer__link-wrapper--previous">
    <a href="https://cegarza.com/splatgpt-part-1/" class="series-footer__link series-footer__link--previous">
      <span class="series-footer__arrow">&#x2190;</span>
      <span class="series-footer__text">
        <span class="series-footer__label">Previous Post</span>
        <span class="series-footer__title">Problem Statement</span>
      </span>
    </a>
  </div>

  <div class="series-footer__link-wrapper series-footer__link-wrapper--next">
    <a href="https://cegarza.com/splatgpt-part-02b/" class="series-footer__link series-footer__link--next">
      <span class="series-footer__text">
        <span class="series-footer__label">Next Post</span>
        <span class="series-footer__title">Architecture</span>
      </span>
      <span class="series-footer__arrow">&#x2192;</span>
    </a>
  </div>
</nav>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[The Deceptive Difficulty of Splatoon 3 Gear Optimization]]></title><description><![CDATA[Splatoon 3 gear optimization hides surprising complexity: 160B possible builds, non-linear stacking, and strategic noise challenging ML models.]]></description><link>https://cegarza.com/splatgpt-part-1/</link><guid isPermaLink="false">6819778372e18d3395490156</guid><category><![CDATA[SplatGPT]]></category><category><![CDATA[Machine Learning]]></category><dc:creator><![CDATA[Cesar Garza]]></dc:creator><pubDate>Tue, 06 May 2025 07:42:52 GMT</pubDate><content:encoded><![CDATA[
<!--kg-card-begin: html-->
<nav class="series-navigation" aria-label="Blog Series Navigation">
  <h3 class="series-navigation__main-title">SplatGPT: A Deep Dive</h3>
  <ol class="series-navigation__list">
    <li class="series-navigation__item series-navigation__item--active">
      <a href="https://cegarza.com/splatgpt-part-1/" class="series-navigation__link">
        <span class="series-navigation__part-number">Part 1</span>
        <span class="series-navigation__part-title">Problem Statement</span>
        <span class="series-navigation__status-indicator">You are here</span>
      </a>
    </li>
    <li class="series-navigation__item series-navigation__item--past">
      <a href="https://cegarza.com/splatgpt-part-2a/" class="series-navigation__link" aria-current="page">
        <span class="series-navigation__part-number">Part 2A</span>
        <span class="series-navigation__part-title">Architecture</span>
        <span class="series-navigation__status-indicator">Read</span>
      </a>
    </li>
    <li class="series-navigation__item series-navigation__item--past">
      <a href="https://cegarza.com/splatgpt-part-2b/" class="series-navigation__link">
        <span class="series-navigation__part-number">Part 2B</span>
        <span class="series-navigation__part-title">Training and Performance</span>
        <span class="series-navigation__status-indicator">Read</span>
      </a>
    </li>
    <li class="series-navigation__item series-navigation__item--upcoming">
      <a class="series-navigation__link">
        <span class="series-navigation__part-number">Part 3</span>
        <span class="series-navigation__part-title">Interpretability with SAEs</span>
        <span class="series-navigation__status-indicator">Upcoming</span>
      </a>
    </li>
    <li class="series-navigation__item series-navigation__item--upcoming">
      <a class="series-navigation__link">
        <span class="series-navigation__part-number">Part 4</span>
        <span class="series-navigation__part-title">Active Collaboration and Steering</span>
        <span class="series-navigation__status-indicator">Upcoming</span>
      </a>
    </li>
  </ol>
</nav>
<!--kg-card-end: html-->
<div class="kg-card kg-callout-card kg-callout-card-grey"><div class="kg-callout-text"><i><em class="italic" style="white-space: pre-wrap;">Note:</em></i> This post is part one of a series adapted from an original, much longer article. Rather than simply splitting it in two, I&apos;ve revised and expanded each part with an increased emphasis on clarity, detail, and overall quality of writing. If you&apos;re interested in reading the original article in its entirety, you can find it <a href="https://cegarza.com/introducing-splatgpt/" rel="noreferrer">here</a>.</div></div><h2 id="hidden-complexity-in-splatoon%E2%80%99s-gear-system">Hidden Complexity in Splatoon&#x2019;s Gear System</h2>
<p>Nintendo&apos;s <strong>Splatoon</strong> series is one of contradictions. At first glance, its vibrant, cartoony aesthetic suggests simple, kid-friendly fun. Yet beneath that cheerful exterior lies remarkable depth and complexity across its interconnected gameplay systems. Nothing illustrates this better than the gear building system. On the surface, it functions as a form of self-expression, allowing players to build fun outfits for their character to wear during battle. Indeed, many players become quite attached to their uniquely customized avatars. However, hidden beneath this playful facade is a system of surprising strategic depth where choices can decisively shape gameplay outcomes. It is precisely this hidden complexity that makes it a fascinating and formidable challenge, especially for automated Machine Learning approaches attempting to discover the &quot;perfect&quot; build.</p>
<h2 id="splatoon%E2%80%99s-gear-system-explained">Splatoon&#x2019;s Gear System Explained</h2>
<p>Released in 2022, Splatoon 3 is Nintendo&apos;s wildly successful competitive team-based shooter, where players compete in fast-paced battles over territory and objectives. Before entering a match, players face a critical strategic choice that shapes their character&apos;s effectiveness in battle: their <strong>gear</strong>.</p>
<p>You can think of Splatoon&apos;s gear system as choosing your character&apos;s outfit for battle, composed of three distinct types: <strong>headgear</strong>, <strong>clothing</strong>, and <strong>shoes</strong>. Each piece of gear contains one high-impact primary (<strong>main</strong>) ability slot and three smaller secondary (<strong>sub</strong>) ability slots. Strategic depth arises from the existence of powerful, build-defining abilities restricted exclusively to the main slot of specific gear types. For example, the versatile <em>Comeback</em> ability, only available as a main ability on headgear, is strong enough to become the centerpiece around which a player&apos;s entire strategy revolves.</p>
<p>This elegant setup is intuitive enough for younger players to grasp easily while simultaneously introducing a deceptively intricate combinatorial puzzle, one challenging even for seasoned veterans. This poses a particularly fascinating yet formidable problem for optimization for both man and machine; a challenge so formidable that entire websites have been built just to help players advise each other on the most effective builds.</p>
<p></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://cegarza.com/content/images/2025/05/image_2025-05-05_234703489.png" class="kg-image" alt loading="lazy" width="1160" height="652" srcset="https://cegarza.com/content/images/size/w600/2025/05/image_2025-05-05_234703489.png 600w, https://cegarza.com/content/images/size/w1000/2025/05/image_2025-05-05_234703489.png 1000w, https://cegarza.com/content/images/2025/05/image_2025-05-05_234703489.png 1160w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Anatomy of a Gear Piece</span></figcaption></figure><h2 id="the-weapon-gear-relationship">The Weapon-Gear Relationship</h2>
<p>While gear provides abilities to adjust your character&apos;s performance, the foundation of every loadout is your <strong>weapon choice</strong>. This is typically the first (arguably the most impactful) decision a player makes, as the weapon defines fundamental aspects of gameplay, providing both powerful strengths that gear can enhance as well as notable weaknesses that gear can compensate for. Splatoon organizes its weapons within a clear hierarchy:</p>
<ul>
<li><strong>Weapon Class</strong> (e.g. <strong>Shooter</strong>, <strong>Roller</strong>, <strong>Charger</strong>)
<ul>
<li>Defines the core movement mechanics, attack patterns, and overall gameplay archetype.</li>
</ul>
</li>
<li><strong>Specific Weapon</strong> (e.g., <strong>Splattershot</strong>, <strong>Carbon Roller</strong>, <strong>E-liter 4K</strong>)
<ul>
<li>Dictates precise weapon statistics and handling characteristics, shaping the nuances of play.</li>
</ul>
</li>
<li><strong>Weapon Kit</strong> (e.g., <strong>Splattershot</strong> vs. <strong>Tentatek Splattershot</strong>)
<ul>
<li>Includes a specific pairing of a secondary (<strong>sub</strong>) weapon, such as a bomb or utility, and a powerful <strong>special</strong> weapon, comparable to <strong>ultimates</strong> in other competitive games.</li>
<li>Shapes gear optimization even between variants of the same specific weapon.</li>
</ul>
</li>
</ul>
<p>This structured design both simplifies and complicates gear selection. On one hand, similar weapons kits often allow interchangeable gear builds, enabling players to experiment without too much investment. On the other hand, subtle differences between even closely related weapon kits might require entirely different gear setups.</p>
<h2 id="the-sheer-size-of-the-search-space">The Sheer Size of the Search Space</h2>
<p>Each piece of gear has one main slot and three sub slots. Headgear has four main-slot-only abilities tied to it, Clothing has five, and Shoes has three. This leads to a massive search space of <strong>1.3 billion</strong> possible gear options (1,262,451,960 exactly). There&apos;s also 130 unique weapon kits, which balloons the figure up to <strong>over 160 billion</strong> possibilities (164,118,754,800 exactly). Given that the largest repository of data (stat.ink) has, as of May 2025, about 15 million recorded battles, each involving 8 players, this translates to a maximum representation of approximately 120 million gear instances. Even in the highly optimistic scenario where each instance represents a unique gear combination, this coverage is still <strong>three orders of magnitude smaller than the total search space</strong>. This is what makes the problem especially difficult for both players and algorithms alike.</p>
<h2 id="the-intricacies-of-ability-stacking">The Intricacies of Ability Stacking</h2>
<p>Much of the strategic depth arises directly from the <strong>ability stacking</strong> mechanics. Splatoon quantifies the investment in each ability using an internal point system, often colloquially referred to as Ability Points (<strong>AP</strong>) where the different slot types carry distinct weights:</p>
<ul>
<li>A <strong>main</strong> ability slot grants a hefty <strong>10 AP</strong> towards that ability, offering a substantial boost.</li>
<li>A <strong>sub</strong> ability slot grants a comparatively modest <strong>3 AP</strong>, offering smaller, but cumulatively significant, gameplay effects.</li>
</ul>
<p>Critically, each ability also follows a unique, <strong>non-linear effectiveness curve</strong>, typically characterized by diminishing returns as the total AP invested increases:</p>
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://cegarza.com/content/images/2025/05/image_2025-05-06_010234055.png" class="kg-image" alt loading="lazy" width="1166" height="766" srcset="https://cegarza.com/content/images/size/w600/2025/05/image_2025-05-06_010234055.png 600w, https://cegarza.com/content/images/size/w1000/2025/05/image_2025-05-06_010234055.png 1000w, https://cegarza.com/content/images/2025/05/image_2025-05-06_010234055.png 1166w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Comparison of a fast-growing ability vs a slower growing ability, note the substantial investment required for Ink Saver (Main) to reach the effectiveness of Quick Super Jump.</span></figcaption></figure><p>This non-linear scaling introduces key strategic consequences:</p>
<ul>
<li><strong>Utility Subs</strong>: Some abilities provide a significant benefit with minimal investments (often just 3 AP), making them efficient and valuable additions to many builds. This specific phenomenon presents the biggest hurdle for traditional ML approaches: is a single sub-slot inclusion strategically optimal, or simply random noise? More on this later.</li>
<li><strong>Stacking-Dependent Abilities</strong>: Other abilities offer negligible benefit at low AP investments, becoming effective only when heavily stacked, making them powerful but niche options.</li>
</ul>
<p>This interplay transforms gear building into a complex resource allocation puzzle, as the optimal choice for each ability depends on:</p>
<ul>
<li>The effectiveness of the ability at the current level of investment.</li>
<li>The opportunity cost of investing AP elsewhere.</li>
<li>Synergies with other abilities in the build.</li>
<li>Compatibility with the equipped weapon.</li>
<li>Individual playstyle considerations.</li>
</ul>
<p>Like a snowball rolling downhill, these small but important pieces of the system compound, creating significant difficulty for both players and algorithms to properly optimize gear while taking everything into consideration.</p>
<h2 id="data-complexity-and-noise">Data Complexity and Noise</h2>
<p>As if the system wasn&apos;t complex enough already, there&apos;s one final wrinkle making the optimization problem particularly difficult to solve: <strong>noise</strong>. While Splatoon 3 reduces randomness significantly compared to its predecessors, there remain four distinct <em>layers</em> of noise that complicate the interpretation of gathered data:</p>
<ul>
<li><strong>Random Ability Assignment</strong>: Gear sub-slots are initially filled based on probability distributions tied to each gear&apos;s &quot;brand&quot;. Since brand information is typically excluded from real-world datasets, baseline observations inherently contain unpredictable elements that are not easy to compensate for, if possible at all.</li>
<li><strong>Optimization Costs</strong>: Crafting a min-maxed gear set demands substantial time and in-game resources. Consequently, many observed loadouts may represent incomplete optimizations, practical compromises (&quot;good enough&quot; builds), or gear setups recycled across multiple weapons and evolving competitive landscapes (the broader competitive context known as the <strong>meta</strong>game), despite being suboptimal.</li>
<li><strong>Player Expertise Distribution</strong>: Gear data aggregates choices from players with widely varying game knowledge and priorities. Some choices represent deep, strategic understanding by experienced players; others reflect aesthetic preferences, outdated practices, limited knowledge of current community best practices, or experimental off-meta strategies by skilled players that may not prove viable.</li>
<li><strong>Multimodality and Meta Evolution</strong>: Many weapons support multiple viable builds, making it challenging to identify a singular &quot;optimal&quot; choice. Conversely, certain weapons have clearly defined niches with straightforward optimal builds and broad consensus. Additionally, continuous meta shifts mean previously optimal gear configurations can become outdated or suboptimal over time.</li>
</ul>
<p>These factors combine to create substantial ambiguity in the data. Determining whether a single sub-slot ability (such as Quick Super Jump) is strategically optimal, randomly assigned, part of an incomplete setup, or intentionally suboptimal is a non-trivial challenge. Without careful consideration of context, what appears to be irrelevant &quot;noise&quot; could in fact be essential strategic signal, posing a formidable challenge for conventional machine learning approaches.</p>
<h3 id="why-conventional-ml-models-struggle">Why Conventional ML Models Struggle</h3>
<p>These layers of noise and system complexity underscore a fundamental requirement for gear optimization: <strong>context</strong>. Interpreting any individual gear choice, like that lone Quick Super Jump sub-slot mentioned earlier, is impossible in isolation. Is it:</p>
<ul>
<li>An optimal &quot;utility sub,&quot; carefully chosen to complement the specific weapon kit?</li>
<li>A randomly assigned ability yet to be scrubbed or overwritten?</li>
<li>Part of a gear piece primarily optimized for a <em>different</em> weapon or strategy?</li>
<li>An intentional, albeit suboptimal, choice reflecting a niche strategy or personal preference?</li>
</ul>
<p>The correct interpretation hinges entirely on interacting factors: the chosen weapon kit, the complete set of equipped abilities across the loadout, the prevailing competitive meta, and potentially unobservable factors like player intent or resource constraints.</p>
<p>This deep contextual dependency is exactly why conventional machine learning approaches struggle here. Standard techniques often identify noise through statistical deviations or treat features as somewhat independent variables. They might assume outliers represent errors to filter out, or that frequently occurring patterns inherently represent the primary signal. In the Splatoon gear system, however, these assumptions quickly break down. An apparent outlier (an uncommon ability choice) might be a highly effective niche strategy in the right context&#x2014;crucial signal disguised as noise. Conversely, blindly copying the most common builds can lead to suboptimal setups if key contextual nuances are overlooked, especially when dealing with multimodality.</p>
<p>Models not explicitly designed to handle <strong>set-based inputs</strong> (where order doesn&apos;t matter, but combinations do), <strong>non-linear interactions</strong>, and <strong>deep contextual dependencies</strong> simultaneously, are fundamentally ill-equipped for this task. Simply averaging popular builds or filtering perceived noise, the approach many community resources currently take because it&#x2019;s straightforward, cannot meaningfully optimize loadouts. Instead, we need an approach capable of capturing the holistic interplay between every element of a loadout within its specific gameplay environment.</p>
<h3 id="model-comparisons">Model Comparisons</h3>
<table>
<thead>
<tr>
<th>Model family</th>
<th>Handles set-based inputs (order-invariant)</th>
<th>Learns non-linear feature interactions</th>
<th>Captures deep contextual dependencies</th>
</tr>
</thead>
<tbody>
<tr>
<td>Linear / Logistic Regression</td>
<td>None</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>Naive Bayes</td>
<td>Full (bag-of-words)</td>
<td>None</td>
<td>None</td>
</tr>
<tr>
<td>k-Nearest Neighbors</td>
<td>None</td>
<td>Full</td>
<td>None</td>
</tr>
<tr>
<td>Support-Vector Machine (with kernels)</td>
<td>Partial (needs a permutation-invariant kernel)</td>
<td>Full</td>
<td>None</td>
</tr>
<tr>
<td>Decision Trees</td>
<td>None</td>
<td>Full</td>
<td>Partial (shallow, path-wise)</td>
</tr>
<tr>
<td>Random Forest</td>
<td>None</td>
<td>Full</td>
<td>Partial (ensemble of shallow paths)</td>
</tr>
<tr>
<td>Gradient-Boosted Trees (e.g. XGBoost)</td>
<td>None</td>
<td>Full</td>
<td>Partial (layered shallow paths)</td>
</tr>
<tr>
<td>Multi-Layer Perceptron (feed-forward NN)</td>
<td>None</td>
<td>Full</td>
<td>Partial (only if context is fixed in the input window)</td>
</tr>
<tr>
<td>DeepSets</td>
<td>Full</td>
<td>Partial (implicit via pooled sum)</td>
<td>Partial (global but not element-wise context)</td>
</tr>
<tr>
<td>Sequence Transformers (e.g. GPT, BERT)</td>
<td>None (order-aware via positional encoding)</td>
<td>Full</td>
<td>Full</td>
</tr>
<tr>
<td>Set Transformers</td>
<td>Full</td>
<td>Full</td>
<td>Full</td>
</tr>
</tbody>
</table>
<p>This makes <strong>Set Transformers</strong> the most attractive option to address this problem, which we&apos;ll address in the next part.</p>
<h2 id="the-road-ahead">The Road Ahead</h2>
<p>We&apos;ve journeyed through the intricate layers that make Splatoon 3 gear optimization such a deceptively difficult challenge. From the non-linear scaling of abilities and deep weapon dependencies to the ambiguous noise embedded in player data, it&apos;s clear that context is paramount. Conventional machine learning methods, often reliant on simpler assumptions about data independence or clearly separable signals, aren&apos;t designed to navigate this nuanced, combinatorial landscape effectively.</p>
<p>But complexity doesn&apos;t mean impossibility; it simply calls for a more specialized solution. In the <strong>next post (Part 2)</strong> of this series, I&apos;ll introduce <strong>SplatGPT</strong>, a deep learning model specifically built to handle these intricate challenges, leveraging architectures optimized for set-based inputs and deep contextual awareness.</p>
<p>Yet building the model is just the beginning. The deeper&#x2014;and potentially more exciting&#x2014;question is: <em>how exactly does it make these optimization decisions?</em> In <strong>Part 3</strong>, I&apos;ll dive into interpretability, showing how I&apos;ve trained a <strong>monosemantic Sparse Autoencoder (SAE)</strong> on SplatGPT to uncover thousands of internal neurons that map neatly onto distinct strategic concepts. Given the scale of these neurons, I&apos;m using <strong>doc2vec embeddings and automatic TF-IDF-based labeling</strong> to rapidly identify, label, and interpret these monosemantic features.</p>
<p>Finally, in <strong>Part 4</strong>, we&apos;ll push beyond passive interpretation into active collaboration. Using custom PyTorch hooks, I&apos;ll demonstrate how we can actively steer the gear completion process. Rather than passively accepting whatever optimal build the model generates, we&apos;ll be able to influence the direction it takes, nudging the optimization toward specific strategic goals: whether that&apos;s an aggressive push, a more defensive playstyle, or even entirely novel, niche configurations. By visualizing builds before optimization, after standard optimization, and following targeted steering, we&apos;ll unlock an entirely new dimension of control, turning SplatGPT into an interactive partner in strategic gear-building.</p>
<p>Join me as we move from clearly defining the complexity of gear optimization, to understanding the intricacies of an advanced AI solution, and finally, actively collaborating with that solution to build gear tailored precisely to specific strategic intentions in the rich, nuanced world of Splatoon 3.</p>

<!--kg-card-begin: html-->
<nav class="series-footer" aria-label="Series Post Navigation">
  <div class="series-footer__link-wrapper series-footer__link-wrapper--previous">
    <span class="series-footer__link series-footer__link--disabled series-footer__link--previous">
      <span class="series-footer__arrow">&#x2190;</span>
      <span class="series-footer__text">
        <span class="series-footer__label">Previous Post</span>
        <span class="series-footer__title">This is the first post</span>
      </span>
    </span>
  </div>

  <div class="series-footer__link-wrapper series-footer__link-wrapper--next">
    <a href="https://cegarza.com/splatgpt-part-2a/" class="series-footer__link series-footer__link--next">
      <span class="series-footer__text">
        <span class="series-footer__label">Next Post</span>
        <span class="series-footer__title">Architecture</span>
      </span>
      <span class="series-footer__arrow">&#x2192;</span>
    </a>
  </div>
</nav>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[SplatGPT: Set-Based Deep Learning for Splatoon Gear Completion]]></title><description><![CDATA[<h1 id="intro">Intro</h1>
<p>At first glance, optimizing gear loadouts in competitive games seems straightforward: identify the best combinations of abilities for each situation. However, when these systems allow for complex stacking mechanics and context-dependent effectiveness, the problem becomes remarkably challenging for traditional machine learning approaches. Nintendo&#x2019;s Splatoon 3 presents an</p>]]></description><link>https://cegarza.com/introducing-splatgpt/</link><guid isPermaLink="false">67285c1972e18d33954900a3</guid><dc:creator><![CDATA[Cesar Garza]]></dc:creator><pubDate>Sat, 02 Nov 2024 06:24:00 GMT</pubDate><content:encoded><![CDATA[<h1 id="intro">Intro</h1>
<p>At first glance, optimizing gear loadouts in competitive games seems straightforward: identify the best combinations of abilities for each situation. However, when these systems allow for complex stacking mechanics and context-dependent effectiveness, the problem becomes remarkably challenging for traditional machine learning approaches. Nintendo&#x2019;s Splatoon 3 presents an especially fascinating case study, where the interaction between gear abilities, weapon choice, and player strategy creates an optimization problem that reveals fundamental limitations in how we typically approach set-based prediction tasks.</p>
<h2 id="the-deceptive-complexity-of-loadout-systems">The Deceptive Complexity of Loadout Systems</h2>
<p>Imagine trying to build a recommender system for the optimal gear setup for a player. A na&#xEF;ve approach may suggest looking at what high-level players use and replicating their choices. Indeed, this is what multiple websites have attempted to do. However, this runs into problems. How do you account for multimodality? Can you still build proper recommendations for highly unpopular weapons? How do we distinguish between intentional choices and noise?</p>
<h2 id="the-splatoon-gear-system">The Splatoon Gear System</h2>
<p>Splatoon 3 is Nintendo&#x2019;s wildly successful 2022 team-based competitive shooter where players battle as squid-kids. Before even entering a match, players face a strategic decision that affects how they play: they must select a gear loadout that complements their weapon choice and personal playstyle.</p>
<p>You can think of Splatoon&#x2019;s gear system as the outfit your character is going to wear, and it consists of three distinct types: headgear, clothing, and shoes. Each piece of gear contains one primary (main) ability slot, three secondary (sub) ability slots, and a set of four unique main-slot-only abilities specific to that gear type. For example, the ability Comeback is only found on headgear.</p>
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://cegarza.com/content/images/2024/11/image_2024-11-03_233534904.png" class="kg-image" alt loading="lazy" width="1160" height="652" srcset="https://cegarza.com/content/images/size/w600/2024/11/image_2024-11-03_233534904.png 600w, https://cegarza.com/content/images/size/w1000/2024/11/image_2024-11-03_233534904.png 1000w, https://cegarza.com/content/images/2024/11/image_2024-11-03_233534904.png 1160w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Anatomy of a Gear Piece</span></figcaption></figure><h2 id="weapons-and-gear">Weapons and Gear</h2>
<p>Understanding weapon mechanics is crucial for gear optimization because different weapons demand different ability configurations. Weapons as they&#x2019;re set up in Splatoon 3 follow a hierarchical structure:</p>
<ul>
<li>Weapon Class (e.g. Shooter, Roller, Charger)
<ul>
<li>Defines basic movement, attack patterns, and controls; archetype-level</li>
</ul>
</li>
<li>Specific Weapon (e.g. Splattershot, Carbon Roller, E-liter 4K)
<ul>
<li>Determines precise statistics and handling</li>
</ul>
</li>
<li>Weapon Kit (e.g. Splattershot vs Tentatek Splattershot)
<ul>
<li>Provides specific sub-weapon and special weapon combination</li>
<li>Influences optimal gear choices even with the same specific weapon</li>
</ul>
</li>
</ul>
<h2 id="ability-stacking">Ability Stacking</h2>
<p>The complexity of gear optimization emerges from the ability stacking mechanics:</p>
<ul>
<li>Standard abilities can be placed in any slot
<ul>
<li>Primary slot abilities have a weight of 10</li>
<li>Secondary slot abilities have a weight of 3</li>
</ul>
</li>
<li>Each ability follows a unique, non-linear effectiveness curve:
<ul>
<li>Some abilities provide significant benefits from the minimum possible investment (&quot;utility subs&quot;)</li>
<li>Others require substantial investment to reach meaningful effectiveness.</li>
</ul>
</li>
</ul>
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://cegarza.com/content/images/2024/11/image_2024-11-03_234305989.png" class="kg-image" alt loading="lazy" width="1166" height="766" srcset="https://cegarza.com/content/images/size/w600/2024/11/image_2024-11-03_234305989.png 600w, https://cegarza.com/content/images/size/w1000/2024/11/image_2024-11-03_234305989.png 1000w, https://cegarza.com/content/images/2024/11/image_2024-11-03_234305989.png 1166w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Comparison of a fast-growing ability vs a slower growing ability, note the substantial investment required for Ink Saver (Main) to reach the effectiveness of Quick Super Jump.</span></figcaption></figure><p>This creates an optimization problem where the value of each ability slot depends on:</p>
<ul>
<li>The ability itself</li>
<li>Total investment in that ability across all gear</li>
<li>Synergies with other equipped abilities</li>
<li>Synergies with selected weapon</li>
<li>Playstyle considerations</li>
</ul>
<h2 id="data-challenges">Data Challenges</h2>
<p>As yet another wrinkle, the gear system in Splatoon 3 introduces several layers of noise into any data gathered:</p>
<ul>
<li>
<p><strong>Random Ability Assignment:</strong> Secondary slots are initially filled randomly based on the gear&apos;s brand. Each brand has its own probability distribution as to how those secondary slots are filled.</p>
</li>
<li>
<p><strong>Optimizing is Expensive:</strong> While players are able to change abilities of their piece of gear, it requires significant time investment. As a result, observations may be an incomplete optimization. Additionally, players will reuse gear optimal for one weapon across multiple weapon setups.</p>
</li>
<li>
<p><strong>Player Expertise Distribution:</strong> Not all players fully understand the complex mechanics behind ability stacking. Some choices might reflect a poor understanding of the game rather than a well-understood strategic decision. Some players might simply value aesthetics, regardless of the abilities.</p>
</li>
<li>
<p><strong>Build Multimodality:</strong> Many weapons have multiple viable optimal builds, while others have a single niche. Meta shifts can also change a weapon&apos;s niche, invalidating previously optimal gear configurations.</p>
</li>
</ul>
<h2 id="more-context-needed">More Context Needed</h2>
<p>What makes this system particularly challenging for traditional machine learning approaches is that noise in the data cannot be identified without understanding the full context. A single Quick Super Jump ability in a secondary slot might be:</p>
<ul>
<li>An optimal choice for the current weapon</li>
<li>A random ability from initial brand probabilities that hasn&apos;t been changed</li>
<li>Part of optimal gear for one weapon, used for another weapon</li>
</ul>
<p>The interpretation depends entirely on:</p>
<ul>
<li>The weapon being used</li>
<li>Other abilities present in the build</li>
<li>The current competitive meta</li>
</ul>
<p>This contextual dependency means we can&apos;t simply treat unexpected configurations as noise to be filtered out &#x2013; they might represent valid strategic choices that only make sense when considering the full picture. Traditional approaches to handling noise rely on the assumption that noise can be identified through statistical patterns or outlier detection. However, in the Splatoon 3 gear system, what looks like noise in one context may, in fact, be raw signal in another.</p>
<h2 id="requirements-for-high-quality-recommendations">Requirements for High Quality Recommendations</h2>
<p>Given all of these interacting complexities that compound upon each other, any model attempting to achieve a high performance on gear prediction must simultaneously satisfy multiple requirements:</p>
<p><strong>1. Set Processing</strong></p>
<ul>
<li>Must handle unordered collections of abilities</li>
<li>Needs to maintain identical predictions regardless of ability slot ordering</li>
<li>Should process all gear pieces together as a complete loadout</li>
</ul>
<p><strong>2. Nonlinear Interactions</strong></p>
<ul>
<li>Must capture complex stacking effects between abilities</li>
<li>Should implicitly understand ability breakpoints and effectiveness curves</li>
<li>Needs to model synergies between different abilities</li>
</ul>
<p><strong>3. Contextual Understanding</strong></p>
<ul>
<li>Must process weapon information alongside gear choices</li>
<li>Should recognize valid variants in builds for each weapon</li>
<li>Needs to distinguish between intentional choices and noise based on context</li>
</ul>
<p><strong>4. Multimodal Predictions</strong></p>
<ul>
<li>Must be capable of suggesting multiple valid configurations</li>
<li>Should avoid collapsing to a single recommendation regardless of input</li>
</ul>
<p>These requirements suggest the need for an architecture that can process sets while maintaining awareness of the relationship between all elements and their context. Traditional sequence models and standard neural networks are fundamentally ill-suited for this task. Given these stringent requirements, a novel approach is needed. One that can handle the set-based nature of the problem while capturing intricate interactions.</p>
<h2 id="attention">Attention</h2>
<p>To tackle the complexities of Splatoon&apos;s gear optimization, I drew inspiration from the attention mechanisms in transformer models. Attention inherently provides a way to incorporate context by allowing each element in a sequence to interact with every other element. Crucially, when positional embeddings are omitted, attention becomes permutation invariant&#x2014;making it ideal for processing sets where order doesn&apos;t matter.</p>
<p>This property aligns perfectly with our challenge. In the gear system, the effectiveness of an ability depends not just on its presence but also on its interaction with other abilities and the chosen weapon. By using attention mechanisms, we can model these interactions holistically, ensuring that each ability&apos;s impact is considered in the context of the entire set.</p>
<h2 id="a-two-stage-approach">A Two-Stage Approach</h2>
<p>Realizing that attention mechanisms could address our needs, I embraced the set-based nature of the problem and modeled it as a multilabel classification task. Here&apos;s how:</p>
<p><strong>1. Discretization and Tokenization:</strong> Standard abilities are discretized into buckets based on their stacking weights and effectiveness, transforming continuous ability values into categorical tokens. Main-slot-only abilities are straightforward to tokenize because they are tied to a single gear type and cannot be stacked.</p>
<ul>
<li>However, discretization introduces a loss of exact information. To construct a valid gear set that adheres to game constraints (like slot limitations, mutual exclusivity between pairs of abilities, etc.), we need a method to translate these probabilities into a feasible loadout.</li>
</ul>
<p><strong>2. Probability Prediction:</strong> A deep learning model predicts the probability of each discretized ability token as being part of the optimal gear set. By treating these tokens as labels, we can handle multiple abilities simultaneously, reflecting the multilabel nature of gear configurations.</p>
<p><strong>3. Gear Set Construction:</strong> Turning the probabilities into a gear build has multiple viable approaches. Instead of relying solely on the model&apos;s initial output, we employ a deterministic algorithm; specifically, beam search. This algorithm iteratively builds gear sets by selecting combinations of abilities that maximize the overall predicted probability while satisfying all constraints. It effectively bridges the gap between probabilistic predictions and practical applications. While the specifics of this algorithm are beyond the scope of this post, it serves as a crucial bridge between probabilistic predictions and practical gear set construction.</p>
<p>By splitting the problem into these two components, we leverage the strengths of deep learning in modeling complex, context-dependent interactions and use algorithmic strategies to ensure valid, optimized outputs.</p>
<h2 id="introducing-splatgpt">Introducing SplatGPT</h2>
<p>By integrating these strategies, I developed <strong>SplatGPT</strong>, a model tailored for the Splatoon gear optimization challenge. SplatGPT enhances the <a href="https://arxiv.org/abs/1810.00825?ref=cegarza.com">Set Transformer</a> architecture with elements inspired by GPT-2, specifically designed to handle the unique aspects of this problem.</p>

<!--kg-card-begin: html-->
<div style="
  margin: 5px auto; 
  max-width: 100%; 
  background: linear-gradient(145deg, #363636, #2d2d2d);
  padding: 20px;
  border-radius: 12px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2), inset 0 1px 1px rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.05);
">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="506px" height="761px" viewbox="-0.5 -0.5 506 761" class="ge-export-svg-dark" content="&lt;mxfile host=&quot;app.diagrams.net&quot; agent=&quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 OPR/116.0.0.0&quot; scale=&quot;1&quot; border=&quot;0&quot; version=&quot;24.8.6&quot;&gt;
  &lt;diagram name=&quot;Page-1&quot; id=&quot;Dx7qGdVuBCtARIyrACCt&quot;&gt;
    &lt;mxGraphModel dx=&quot;2020&quot; dy=&quot;1106&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;850&quot; pageHeight=&quot;1100&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;
      &lt;root&gt;
        &lt;mxCell id=&quot;0&quot; /&gt;
        &lt;mxCell id=&quot;1&quot; parent=&quot;0&quot; /&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-42&quot; value=&quot;Set Transformer Layer&amp;amp;nbsp; &amp;amp;nbsp;&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;shadow=0;glass=0;align=right;horizontal=1;verticalAlign=top;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;260&quot; y=&quot;130&quot; width=&quot;410&quot; height=&quot;200&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-1&quot; value=&quot;&amp;lt;div style=&amp;quot;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color: initial;&amp;quot;&amp;gt;Ability Embed&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;align=center;fillColor=#e1d5e7;strokeColor=#9673a6;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;165&quot; y=&quot;40&quot; width=&quot;50&quot; height=&quot;50&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-2&quot; value=&quot;&amp;lt;div style=&amp;quot;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color: initial;&amp;quot;&amp;gt;Weapon Embed&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;align=center;fillColor=#e1d5e7;strokeColor=#9673a6;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;375&quot; y=&quot;40&quot; width=&quot;50&quot; height=&quot;50&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-3&quot; value=&quot;+&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#b0e3e6;strokeColor=#0e8088;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;280&quot; y=&quot;110&quot; width=&quot;20&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-4&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;curved=0;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-1&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;225&quot; y=&quot;440&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;275&quot; y=&quot;120&quot; as=&quot;targetPoint&quot; /&gt;
            &lt;Array as=&quot;points&quot;&gt;
              &lt;mxPoint x=&quot;190&quot; y=&quot;120&quot; /&gt;
            &lt;/Array&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-5&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;curved=0;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-2&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;45&quot; y=&quot;340&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;305&quot; y=&quot;120&quot; as=&quot;targetPoint&quot; /&gt;
            &lt;Array as=&quot;points&quot;&gt;
              &lt;mxPoint x=&quot;400&quot; y=&quot;120&quot; /&gt;
            &lt;/Array&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-18&quot; value=&quot;Set Transformer&quot; style=&quot;rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;508&quot; y=&quot;200&quot; width=&quot;100&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-21&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=1;curved=0;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-23&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;360&quot; y=&quot;180&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;290&quot; y=&quot;280&quot; as=&quot;targetPoint&quot; /&gt;
            &lt;Array as=&quot;points&quot; /&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-22&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=0;&quot; parent=&quot;1&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-18&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;290&quot; y=&quot;160&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;230&quot; y=&quot;290&quot; as=&quot;targetPoint&quot; /&gt;
            &lt;Array as=&quot;points&quot;&gt;
              &lt;mxPoint x=&quot;558&quot; y=&quot;160&quot; /&gt;
            &lt;/Array&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-25&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;curved=0;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-29&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-23&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;180&quot; y=&quot;340&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;230&quot; y=&quot;290&quot; as=&quot;targetPoint&quot; /&gt;
            &lt;Array as=&quot;points&quot; /&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-26&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-3&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-23&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;290&quot; y=&quot;130&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;290&quot; y=&quot;480&quot; as=&quot;targetPoint&quot; /&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-23&quot; value=&quot;+&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#b0e3e6;strokeColor=#0e8088;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;280&quot; y=&quot;270&quot; width=&quot;20&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-29&quot; value=&quot;Feed-forward&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;333&quot; y=&quot;255&quot; width=&quot;50&quot; height=&quot;50&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-30&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;curved=0;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-18&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-28&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;558&quot; y=&quot;240&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;338&quot; y=&quot;280&quot; as=&quot;targetPoint&quot; /&gt;
            &lt;Array as=&quot;points&quot;&gt;
              &lt;mxPoint x=&quot;558&quot; y=&quot;280&quot; /&gt;
            &lt;/Array&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-28&quot; value=&quot;Cross&amp;lt;div&amp;gt;Attn&amp;lt;/div&amp;gt;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;454&quot; y=&quot;255&quot; width=&quot;50&quot; height=&quot;50&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-38&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;curved=0;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-28&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-37&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;454&quot; y=&quot;280&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;300&quot; y=&quot;280&quot; as=&quot;targetPoint&quot; /&gt;
            &lt;Array as=&quot;points&quot; /&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-40&quot; value=&quot;&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-37&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-29&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-37&quot; value=&quot;+&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#b0e3e6;strokeColor=#0e8088;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;405&quot; y=&quot;270&quot; width=&quot;20&quot; height=&quot;20&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-41&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=0;&quot; parent=&quot;1&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-37&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;290&quot; y=&quot;160&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;230&quot; y=&quot;290&quot; as=&quot;targetPoint&quot; /&gt;
            &lt;Array as=&quot;points&quot;&gt;
              &lt;mxPoint x=&quot;415&quot; y=&quot;160&quot; /&gt;
            &lt;/Array&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-45&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-23&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-44&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;290&quot; y=&quot;290&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;290&quot; y=&quot;480&quot; as=&quot;targetPoint&quot; /&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-47&quot; value=&quot;&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-44&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-46&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-44&quot; value=&quot;Set Transformer Layer&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;230&quot; y=&quot;360&quot; width=&quot;120&quot; height=&quot;60&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-50&quot; value=&quot;&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-46&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-48&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-46&quot; value=&quot;Set Transformer Layer&quot; style=&quot;rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;230&quot; y=&quot;440&quot; width=&quot;120&quot; height=&quot;60&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-52&quot; value=&quot;&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-48&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-51&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-48&quot; value=&quot;Masked Mean&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#fff2cc;strokeColor=#d6b656;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;250&quot; y=&quot;520&quot; width=&quot;80&quot; height=&quot;80&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-54&quot; value=&quot;&quot; style=&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;&quot; parent=&quot;1&quot; source=&quot;OCCttNjwiIRNWy9H9MT8-51&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-53&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-51&quot; value=&quot;Projection&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#fff2cc;strokeColor=#d6b656;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;250&quot; y=&quot;620&quot; width=&quot;80&quot; height=&quot;80&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-53&quot; value=&quot;Sigmoid&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#bac8d3;strokeColor=#23445d;&quot; parent=&quot;1&quot; vertex=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;250&quot; y=&quot;720&quot; width=&quot;80&quot; height=&quot;80&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;OCCttNjwiIRNWy9H9MT8-58&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=0;&quot; parent=&quot;1&quot; target=&quot;OCCttNjwiIRNWy9H9MT8-28&quot; edge=&quot;1&quot;&gt;
          &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;
            &lt;mxPoint x=&quot;290&quot; y=&quot;160&quot; as=&quot;sourcePoint&quot; /&gt;
            &lt;mxPoint x=&quot;230&quot; y=&quot;290&quot; as=&quot;targetPoint&quot; /&gt;
            &lt;Array as=&quot;points&quot;&gt;
              &lt;mxPoint x=&quot;480&quot; y=&quot;160&quot; /&gt;
            &lt;/Array&gt;
          &lt;/mxGeometry&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;HYfCtVAYvf80hUUsblHq-2&quot; value=&quot;key&amp;lt;br&amp;gt;value&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;504&quot; y=&quot;260&quot; width=&quot;50&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
        &lt;mxCell id=&quot;HYfCtVAYvf80hUUsblHq-3&quot; value=&quot;query&quot; style=&quot;text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;
          &lt;mxGeometry x=&quot;435&quot; y=&quot;219&quot; width=&quot;50&quot; height=&quot;30&quot; as=&quot;geometry&quot; /&gt;
        &lt;/mxCell&gt;
      &lt;/root&gt;
    &lt;/mxGraphModel&gt;
  &lt;/diagram&gt;
&lt;/mxfile&gt;
"><defs><style type="text/css">svg.ge-export-svg-dark:not(mjx-container &gt; svg) { filter: invert(100%) hue-rotate(180deg); }&#xa;svg.ge-export-svg-dark foreignObject img,&#xa;svg.ge-export-svg-dark image:not(svg.ge-export-svg-dark switch image),&#xa;svg.ge-export-svg-dark svg:not(mjx-container &gt; svg)&#xa;{ filter: invert(100%) hue-rotate(180deg) }</style></defs><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="OCCttNjwiIRNWy9H9MT8-42"><g><rect x="95" y="90" width="410" height="200" rx="30" ry="30" fill="#f8cecc" stroke="#b85450" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-end; width: 408px; height: 1px; padding-top: 97px; margin-left: 95px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Set Transformer Layer&#xA0; &#xA0;</div></div></div></foreignobject><image x="95" y="97.5" width="408" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-1"><g><ellipse cx="25" cy="25" rx="25" ry="25" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 25px; margin-left: 1px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div style=""><span style="background-color: initial;">Ability Embed</span></div></div></div></div></foreignobject><image x="1" y="11" width="48" height="32" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-2"><g><ellipse cx="235" cy="25" rx="25" ry="25" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 25px; margin-left: 211px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div style=""><span style="background-color: initial;">Weapon Embed</span></div></div></div></div></foreignobject><image x="211" y="11" width="48" height="32" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-3"><g><ellipse cx="125" cy="80" rx="10" ry="10" fill="#b0e3e6" stroke="#0e8088" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 80px; margin-left: 116px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">+</div></div></div></foreignobject><image x="116" y="73.5" width="18" height="17" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABECAYAAAAiL3M8AAAAAXNSR0IArs4c6QAAAQ9JREFUeF7t18Ftg0AURdFHDS7H2bsI15cisnfKSQ+WEm9hRnoCEfl4PYzgcOcLL/HbFFj4bAsAGhQCCFA3RBSkIAV1Agrq/MwgBSmoE1BQ52cGKUhBncA/KeiS5DPJ7XW/X0nuSX52ffqJzc8ygwANXhYgQBPneWOJghSkoE5AQZ3fW8+ga5JH57d69UeS7532/t32iA9FQIM3CAjQnof8b++3HtIzvIB8B810sr5GQQpSUCegoM7PDFJQV9Bprz7iz+ppH37mxgANlAABmjlI62sUpCAFdQIK6vzMIAUpqBNQUOdnBilIQZ2Agjo/M0hBCuoEFNT5mUEKUlAnoKDOzwxSkII6AQV1fmbQwO8Jan8+RSX4wwIAAAAASUVORK5CYII="/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-4"><g><path d="M 25 50 L 25 70 Q 25 80 35 80 L 103.63 80" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 108.88 80 L 101.88 83.5 L 103.63 80 L 101.88 76.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-5"><g><path d="M 235 50 L 235 70 Q 235 80 225 80 L 146.37 80" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 141.12 80 L 148.12 76.5 L 146.37 80 L 148.12 83.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-18"><g><rect x="343" y="160" width="100" height="40" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 180px; margin-left: 344px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Set Transformer</div></div></div></foreignobject><image x="344" y="173.5" width="98" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-21"><g/></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-22"><g><path d="M 125 120 L 383 120 Q 393 120 393 130 L 393 153.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 393 158.88 L 389.5 151.88 L 393 153.63 L 396.5 151.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-25"><g><path d="M 168 240 L 141.37 240" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 136.12 240 L 143.12 236.5 L 141.37 240 L 143.12 243.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-26"><g><path d="M 125 90 L 125 223.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 125 228.88 L 121.5 221.88 L 125 223.63 L 128.5 221.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-23"><g><ellipse cx="125" cy="240" rx="10" ry="10" fill="#b0e3e6" stroke="#0e8088" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 240px; margin-left: 116px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">+</div></div></div></foreignobject><image x="116" y="233.5" width="18" height="17" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABECAYAAAAiL3M8AAAAAXNSR0IArs4c6QAAAQ9JREFUeF7t18Ftg0AURdFHDS7H2bsI15cisnfKSQ+WEm9hRnoCEfl4PYzgcOcLL/HbFFj4bAsAGhQCCFA3RBSkIAV1Agrq/MwgBSmoE1BQ52cGKUhBncA/KeiS5DPJ7XW/X0nuSX52ffqJzc8ygwANXhYgQBPneWOJghSkoE5AQZ3fW8+ga5JH57d69UeS7532/t32iA9FQIM3CAjQnof8b++3HtIzvIB8B810sr5GQQpSUCegoM7PDFJQV9Bprz7iz+ppH37mxgANlAABmjlI62sUpCAFdQIK6vzMIAUpqBNQUOdnBilIQZ2Agjo/M0hBCuoEFNT5mUEKUlAnoKDOzwxSkII6AQV1fmbQwO8Jan8+RSX4wwIAAAAASUVORK5CYII="/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-29"><g><ellipse cx="193" cy="240" rx="25" ry="25" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 240px; margin-left: 169px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Feed-forward</div></div></div></foreignobject><image x="169" y="226" width="48" height="32" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAACACAYAAABdhGZrAAAAAXNSR0IArs4c6QAAFGpJREFUeF7tnQnQf9UYx7+FhJEhy5QsUWMLFdmXUqmIkJ0oKluWrEWWVAojS2WLSBSVsbfYSoslJHvUTBhFKqYs2bmfOoczz5xz77nve3/v733P+5yZ/zT93ufee85znu85z3bOs4a8OQdWMQfWWMVj96E7B+QAcCFY1RxwAKzq6ffBOwBcBlY1BxwAq3r6ffAOAJeBVc0BB8Cqnn4fvAPAZWBVc2C5AuC1kt44o5l5uqSPzejdLb123cCn7cKgvi/pSZJ+1tIgHQAtzea0Y3EATMvPUW/zHWAUu2ZC7ACYCVvrXuoAqOPTLKkcALPk7sC7LQDeJ2lvSVfPsU+r7dMOgDnOuANgjswPn3YAzHEOHABzZL4DYP7MdwDMfw58B5jjHDgA5sh83wHmz/zlAABiJBtI2lHS9pLuKel2gTXfk0Rg6CRJp0q6apEsW1PSnSQ9StLDJG0h6Wbhnd+UdK6kz0g6c5GOgOt279mse9+jJW0j6X7JeL4g6VhJ50v6jyTfARY5qYt5fN4AuL2k/SU9o2IQv5d0oKT3S/pzBX1KAsgQSL4F0IYaUVgi5J+U9Lch4uTvtd/5Yyf4h0k6RNJaHgkeweGJSecFAFbinSW9NVnta4f2RUl7Sbqg8oHrS9pT0kGSblz5TCQ7RtLLJF1W8Ryr/tMkHZrsKkOPvUfSWyS9V5KnQgxxawZ/nwcAWCWfEibdCiQr7zeCesBw7yJpywxIviVpty5n5qcDPEEoEWBWWttQr/jWryRdR9KmneqzdUZ4UYmeI+nSnm8Njemzkq4I6g4qEbtRbIBgE0kPDj94LtAMBL30ynkA4KGSjjZC/W1Jr5F0mqR/ms7eIOwWqD/RNoDkU0EwS6tzSSg/H1Qh9P1/m2+tE3aL15nd4nBJr+yxC+4h6eMBsPGVgBnwYbukY2L32zzsSA/PTIwDoGEA3FLSkcE4jMNkhX2BpIsHxn0vSUdIum9Ch2rzgWBM2scxdj8RjOp0tX1VJ5jo4KUGcDDGWZkj4KB/vCTUL9tQsVCvEPbY2KF27575Uc93biWJyPtOhsYBMEcALPbTrHbowWz3ufa4YFimglKjykR6VswTk9X5y8GA/o35GEJMSsfbkt9rVJlIzvMIMAZ3bB8Otoc1wO8m6YRk9e8Di+UJKt5xBqQOgMVK4Yjnp06G6wPAjSShSuya9K9vBc8NI/cOVlB07LStJ+kjwQXJ72OEMr7HvgOQ4T79rvkW9gFG7BBQcuPJAdUBMEKAF0u6lACwKslCJ9oK3MGSGMe/EmY8sFOVTk52ilMk7dKt4JePYBiG8QGdG3Tf5JnnBrUl/oR98vZgi8TfLM3QJ7Ef2NU2DoQL5cvQd+b699VyIKZvB9jW6NAEhBDKP4ycmYdI+lryDMKDunJl8psFybuDjv7Xkd8iPoHBHhvCvo+kv4cf1g8+fDxVtNIu0ffZm0rC3fpIB8DI2ZmAfCm9QFYoz+4ipKzM/xg5DqLGxAFiOz3YHZeEH3IrN5HkM0Z+B3LckxztjA1BxWCPRvSdJR3f2TV3DwSoR0/unrlwxLfWDrbK8x0AI7g2EelSAmBqdSuywKoMObVkInZd49JMjXxUrbOSlw85AUr9SHlTUoEWwr8HSWKhmXtbKSrQLA/ELGQCaybOAVDmkgNgQIJ8B6iB2P9pfAcYx6//UfsOcK2nJr2ChWgrXpapW04FmtUVLa4CVc6eA+Bad+KbEn4t1DMzxHJrVEL/akm4S6duU7h2rdHubtCpZ6nnfUupAnHZE/kysS3EN1/LGgu2Wdk2twi5/SS40fAO7TDS8CQhkBQPXMI0B0DtLE9At5QAIJfnc10giQgrDZ/5YySdM3IcpFPs12WD/jIcYPlxd7CFmEKat89BFFIfYiM3hwzUi0Z8K0Zpn9BFr3/RJeT9sMsR4tAMMYgYdMvtNi8NwbHaT02xi9R+a250rgJJBHw+2K1wj01mAZXo9ZkM0NJEka3JQZL0AI0NTvHshiHHpjZxLve9W4cA1VbJH3PCjVv0owkNaRl7SPpdpbQ9OyT0RXLfASoZNwXZUu4ALAIvkvSOpOOs4s80kd2+cRFkIkEtniNA5WBlZwdIWylDszbxDr0cYeewSmz0lR3rPPOtxYAtBzIHwBSSXfmOpQQAXeIIJKsl3pNUPSG6apPM7BCIypL6nK7qZGESYc6lU9w75NikZwgACt9CmEsNoLLqH2XOH5BZypkFe0SyBOznhUg3535zDRC/uTtoA13aHACVwjsF2VIDgD7bVZzfEEhcpOTv23RjVnOOT+I2RV9OV+S+3SO3ivMsAoYgk0pthZlsUzJUsTHiYXmeGTqBlsvtL51hBjAbBeFP1cE4LgfAFJJd+Y55AKDvmCJC85WgZmBosno/InMkEtWHgy2oQ2kWqB02Ao0aE/Ns0r8DOvKI4rFK8vpJSEsFP4LzJd2RyU8P8JTc/g+ZHSo+H7/Dqk90llNxpeYAqBTeKcjmAQD6DQhIG8YIHntQHeHHr08Ovj0+meMJIICef2MbIMEW4PhlSZVJ35k7tTb0zXcGEPOduEN5fYAhrk3093kBgO7HK0RQN3KqQG6InOfFa8SB9hqBjO/gHC73AKFGxcPnQyzkQA3fwgU6phEb4Hgku04fuNnt6A92DeeNY5Tcd4Ax3F4k7TwBkAonxjG+e1QDVImo67MC4+fH904MgYPm9iD7GBaw8/B+vDlcVoXaE41k3o06xLlfgPbrkSBL+wG4ee8TzQVcCP3Xw1hQqaKrtCYbdMw4lx3tco0DLDtGeYfa5IADoM159VFVcsABUMkoJ2uTAw6ANufVR1XJAQdAJaOcrE0OOADanFcfVSUHHACVjHKyNjngAGhzXn1UlRxwAFQyysna5IADoM159VFVcsABUMkoJ2uTAw6ANufVR1XJAQdAJaOcrE0OOADanFcfVSUHHACVjHKyNjngAGhzXn1UlRxwAFQyysna5IADoM159VFVcsABUMkoJ2uTAw6ANufVR1XJAQdAJaOcrE0OzBIA3JxG5cSnSrq/uVHhgu6mhdO6y57eJelPbbLWRzURB+wNIZMWFZkVALh6g9uR++7VmVUhion47q9ZJhxYcQDgunEKP3B/fV+bVXWUZTJv3o2JOLDiAGCLQEQ+cGvaZeF/uKWMG4i5dNabc6CPAysOALbD3GD8QknfWcSNZi4iq5cDKwoAuUqIXDaLSuTNObAQDqx4AHCv5hkLGbk/4xzobqhe8QBYNlXBXZxWJAccACty2rzTU3Fg2QPAViMcGnjNPfNcF75ZcjX5psmd9pQEPTeUGz07U7qo9H1rn5wqib5fEWqEUSiPUqfEMPBYnRlqeVGdhaovsdWWG71JuGP/8cmz+3f1B/g3VEPAPlvDM9zPDwhXuVOH7J6mqgx8O78LSjLur46oFmnnN+7oFPigKibloKiPxpXxODwo2nFSV8DjqsJEEHvaoHOK7Biq7NBnqt/EyjgfCypzLBO1qgBA9BjGIHBbDCEpMI1KJpQksjW87OM5ABBVJFp9aKbcUXz+oFC7K/7/MaGgHRVh+pqtswvtid39/rtLunLg2XsE2o0DXV9BbWoYUPgCQaytakPfCURSYC+6pktdygGA+gGHdzUFHl54KFciFtLaIh3UQXhFAOyqAQCrwAGFullDWGDV2XugymIOANQHfmuP8FOwjhWbyWZFpdWsxtDl4iG1z1qhy3nSWEmJtPeBd4hv7KDUA6YIRy0AKK5B/3YqPAC46Bc11dK2eUh9SStx9vWP3YTFgnfFKjXQL7tUCCqaxOJq1+uqlm9vyo0iPFQ1iY2t7eNdLa7fJr/lqhnGP6OOIIioKn3F3IYm0wKAivBs07HqCwznO38Ju8/WXQfeENQYxrBL0l8mn8LTpYZwUsaIf7axan6p59m1JB0SAA0ZeVOoUT8wz8DzozPgRZjhGRXkKdRHVUrAi5qSlmaNr+vbXaCxYOTdqKc01BbUHf4bCweingKqtERsqVAflWkoEUu1HcaNOgRA4k7G3y4Pu1vs77IDQDovuTjAkBeIZ6iYuJeZYFZ1alXBHKszs+2zMqeV2XmcZ6jPm9vWc33jGVYsypOiRqXlSW8Zit0xSbyT4nexsS2jGpV0+Zz+H58dSgFBkI4NwsAzObWJvh0Zdpn4XnYXanqh3+eK9KFeUtnyYFPWlYWA0kznFEBZsvFQBfleupDBYxaztH7ZOpIOM3MFz9l5UV+trbBeKAD48kJ/mgMAqynMTPVXqjTyr0+vL1V0pHQoWaZWOEsAQJhZcfsqO1JlkVpgTE5JKNP5sjp8+rchG2LbUA8sPoN+j06djgdj/ZPJS6khRp1ju0vkZAhVhKLgrMqx9QUrcwBgZUY9SYW/IK/XqErp/CL8FOoD5KW6an0la5sCAJ4E1ItdE+5RBZHUiZIXIWU0jGInSEuNogrBJFtFMQcABIekPXaZvnbzMImod7SSWhLfQTlR1DwaqlVcZfl/Ks8jrBdmPojqxG6ELURDWHaQxJhisyoSv+dAUhoPKhHv3zch6PNO5QCA8GM/DbXc/LKwoRoOlZLlWYC/h/lIUwCwK+vQdpxj+Ibdln6cKQSdY1IOAEOrcfxeTmgQ4lwyn6VFx6aaJCtebCU7wKpO2CSoefAlNlQZXLOs5LiH1w0qWs3qH99hhbrPDrC0Q+BP58juhLULTnzHfUIh8Ljz8ntTALC6da1ApkzOCWfODZcDQK1fnu9Zrw66NOqTrQhvdwviBnhE0OWjW7MUS7ACU/rG0Mo79PfFAABQcshpyH1KH+x3xs4vavERxgHRDADWDn5o9MHYaoNMdoKtcKZBrkibA8AYZtqd5pQwMXgpSqteVGF+HnaAbQIhRahfHDxO6bN2QRjyNg0JeunviwHAkNeob9dcyPyiqqE2xTZmzgb5M/WJsDFeoJynZKETblfOnL8917chl2TKwJwb9VFBp0/pUuGi+DSr5aUG7PF33IclgOZoBie0hwB+bxLc1Ng90f3LI2NUoNpd6YbBy4O9EFtJbewbV2pPQdcMANBdCXtvl4x+yGVaYpSNutYCYOz37ApN9BWjPTZroKaClT6bM26t+xNPFm7G1DU7BAC+T0rERl2kF1cpAh/TInIxgPi+MQDANR2N9L7+TDW/xAXOanEHmIpB8CaXdmCFe8zuVJpYa7RbWyOn/0NDI2D4xcTda12P1v1Zu9Ih6ERnCZbFgOQQUOzfHQBjOVagHyNkswRAzlMxpm8ldlgBPz0YepeEB1KA2FV+/bDjbRloU6HDkMc1iFFNq/GW4Cbcs3Mn7meS3oamkkgx/d0qIXQADHGt8u9jhGyWAJiVCmQF1Qo5LkvSE2hWh7dGfwoeC6whbwlJZSSypekZuSkibQGB5zgq8QfSI4hsY5cQDHMVqFKwa8nGAGBKI9iqJrlg05i+9Y3XqipRlenT/+P7rB2AEU6asu1/n7eE4N8+GT0c4UaoOX3HDkguTinSuhgvUK0NsFivW+TZQlXDKpmdpxcoF9EcypMpDcp6CgjVszqmCVlTAcAaq1F9wPjEqI8qTk6IMehOztgBKTAIeuW8S3Hsd5N0gkllINeGCPJQinZ8x1IAIJcQOJRDlZtf63iotY2WPQDo4LwDYWO9QPTZAimqOqgxMV8o5+XhWWsHYCATjOOKGHhBK8UXcrsIv3HDHmC/uGrGpZxgzsIGoDt2Yao9DxGHMtUuUmTNPHcAOpVLhcBXPOYQfc4DVJsKsRAA5ICLKnOHJGO05MO3E0pUlVx3VvB43qBvlayNevdhgZ2KPJ701r5ZAcDODbvbmPnN7XZN7QCzSIYj+ewpXQ75RUYKplKBcsAlNZqxkIlK6xMoq+6Qx4S6RCsdJolDyamNY66YZMEjMEXqd9pmBQDylkh157hpbLXJjrlER97RFAAYUC4dmjxxdNqFpEMTPOKUlM3RmRIA1oAHdJxoG8r1YbzWDkgF0bpVcyu5TQ3A4wXgcZ32tTXD6stuQ1/TVkrNgMbaC7VGcHw/gThUnzQQx0EjgHF1ocP0FU8V4LbHPJsDQOlADOdC8Y3jyrO5/bcNAMEPnrbPBF2a1APbpgSATVtOv1XS/yONtQPSZ0tnaVMaTqpx8CcVDAJsACPHK4TpruGMrT1AFN+by52Kf1ssAEq5/ewEzK9NW+cADXlSnAnOnXFuDgAweoojkazCu/WshFMCgD5b91wUmKEcntLBnLgb9h21hCZ3wip+G5cqt1lwfJR2Z3M1faTD0GZFjodi+jI8FwsAvol6yIqfJj7yO4sFZx3gGTs26d0A3O5Q6QLQJAAYIMEdTmY9q7At9v3MboEejf+71KYGgHWHxu/WZEta7xfP1h6YhxbjEkO29oB57BtBMFQYTpOh9nCugEYMgXQKrk2xbQoA8E6Emvm1B1z65hVwEBRMj6M2CwAYgdHEcT+287tXAIEoJ9mJx/fok/E1UwOgtJLXpPzm7IAa4KQsuY2kAzPnonNsY6UlQk30GJUjZ0yXBGsqAMT53TmAMM1GzfX5qKDm3rHVZLg++Ua4uMUA9yKuyngxFhN5XmAIei9qT8mQsu+fGgC83wrHkP4f+5SzAxZyiXDU73FpAiruUorqA/YAu0rpIix7rrjknZkSAHH8qHEc0McBwg0TEQyocKhjnLT7SYhkr6hs0IpF20mcA8uHA1MHwpbPyLwnzoEKDjgAKpjkJO1ywAHQ7tz6yCo44ACoYJKTtMsBB0C7c+sjq+CAA6CCSU7SLgccAO3OrY+sggMOgAomOUm7HHAAtDu3PrIKDjgAKpjkJO1ywAHQ7tz6yCo44ACoYJKTtMsBB0C7c+sjq+CAA6CCSU7SLgccAO3OrY+sggMOgAomOUm7HHAAtDu3PrIKDjgAKpjkJO1ywAHQ7tz6yCo44ACoYJKTtMsBB0C7c+sjq+CAA6CCSU7SLgccAO3OrY+sggMOgAomOUm7HHAAtDu3PrIKDjgAKpjkJO1ywAHQ7tz6yCo48F9ap53M4US0RAAAAABJRU5ErkJggg=="/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-30"><g><path d="M 393 200 L 393 230 Q 393 240 383 240 L 345.37 240" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 340.12 240 L 347.12 236.5 L 345.37 240 L 347.12 243.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-28"><g><ellipse cx="314" cy="240" rx="25" ry="25" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 48px; height: 1px; padding-top: 240px; margin-left: 290px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Cross<div>Attn</div></div></div></div></foreignobject><image x="290" y="226" width="48" height="32" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-38"><g><path d="M 289 240 L 266.37 240" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 261.12 240 L 268.12 236.5 L 266.37 240 L 268.12 243.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-40"><g><path d="M 240 240 L 220 240 L 238 240 L 224.37 240" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 219.12 240 L 226.12 236.5 L 224.37 240 L 226.12 243.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-37"><g><ellipse cx="250" cy="240" rx="10" ry="10" fill="#b0e3e6" stroke="#0e8088" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 240px; margin-left: 241px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">+</div></div></div></foreignobject><image x="241" y="233.5" width="18" height="17" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABECAYAAAAiL3M8AAAAAXNSR0IArs4c6QAAAQ9JREFUeF7t18Ftg0AURdFHDS7H2bsI15cisnfKSQ+WEm9hRnoCEfl4PYzgcOcLL/HbFFj4bAsAGhQCCFA3RBSkIAV1Agrq/MwgBSmoE1BQ52cGKUhBncA/KeiS5DPJ7XW/X0nuSX52ffqJzc8ygwANXhYgQBPneWOJghSkoE5AQZ3fW8+ga5JH57d69UeS7532/t32iA9FQIM3CAjQnof8b++3HtIzvIB8B810sr5GQQpSUCegoM7PDFJQV9Bprz7iz+ppH37mxgANlAABmjlI62sUpCAFdQIK6vzMIAUpqBNQUOdnBilIQZ2Agjo/M0hBCuoEFNT5mUEKUlAnoKDOzwxSkII6AQV1fmbQwO8Jan8+RSX4wwIAAAAASUVORK5CYII="/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-41"><g><path d="M 125 120 L 240 120 Q 250 120 250 130 L 250 223.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 250 228.88 L 246.5 221.88 L 250 223.63 L 253.5 221.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-45"><g><path d="M 125 250 L 125 313.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 125 318.88 L 121.5 311.88 L 125 313.63 L 128.5 311.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-47"><g><path d="M 125 380 L 125 400 L 125 380 L 125 393.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 125 398.88 L 121.5 391.88 L 125 393.63 L 128.5 391.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-44"><g><rect x="65" y="320" width="120" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 350px; margin-left: 66px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Set Transformer Layer</div></div></div></foreignobject><image x="66" y="336" width="118" height="32" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-50"><g><path d="M 125 460 L 125 480 L 125 460 L 125 473.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 125 478.88 L 121.5 471.88 L 125 473.63 L 128.5 471.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-46"><g><rect x="65" y="400" width="120" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 430px; margin-left: 66px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Set Transformer Layer</div></div></div></foreignobject><image x="66" y="416" width="118" height="32" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-52"><g><path d="M 125 560 L 125 580 L 125 560 L 125 573.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 125 578.88 L 121.5 571.88 L 125 573.63 L 128.5 571.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-48"><g><ellipse cx="125" cy="520" rx="40" ry="40" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 520px; margin-left: 86px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Masked Mean</div></div></div></foreignobject><image x="86" y="513.5" width="78" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-54"><g><path d="M 125 660 L 125 680 L 125 660 L 125 673.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 125 678.88 L 121.5 671.88 L 125 673.63 L 128.5 671.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-51"><g><ellipse cx="125" cy="620" rx="40" ry="40" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 620px; margin-left: 86px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Projection</div></div></div></foreignobject><image x="86" y="613.5" width="78" height="17" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAATgAAABECAYAAAAV6ClkAAAAAXNSR0IArs4c6QAADWtJREFUeF7tnXWsPUcVx78FgoQAwYvDH4QQPAQJ7hAo7q7BnQR3LwRp8WLB3SVAcHdKkWIJFqRogOB6P+kMnUxnd2fu3fvu7t7vJC/99b3Zke+Z/e45M+ecOUQuRsAIGIGFInDIQuflaRkBI2AEZILzIjACRmCxCJjgFitaT8wIGAETnNeAETACi0XABLdY0XpiRsAImOC8BoyAEVgsAia4xYrWEzMCRsAE5zVgBIzAYhFYIsGdUdLrJF17Tan9SdLRkn67auNzkj4j6auS/rpme1N97FSSniPpHskArxDmO9Ux72pc+Zr6uqRbSvrurgbkfusQMMHV4fRjSUdIOkrSn+semXwtE5x0CkmHSfqnpHf3SMwEN/nlXB6gCa5NcB+SdF9J3297bJK195ngTiLpciut/GGB4G4XtP4uQZngJrmEhwdlghvGKK/xrmDWHdf+6KSe2GeCe6ikwxNpmOAmtTTHG8y+ENxjJT2pEjYwOa2kc0m6YyCz02TPPlXS4yT9q7LNKVbbZ4J7jKQnmuCmuCzHHZMJrh9P8LmqpFdIOk9SlT25m63Mmy+PKw63dkAItBLcAQ3L3YyNgAluGFEwurWkF0tKNTlekqesNLn/DjfhGhNDwAQ3MYFsazgmuDpkT78yWV8u6cZJ9bdKupukP9Q14VoTQsAENyFhbHMoJrh6dB+02pt7dlLdvlD12E2tpgluahLZ0nhMcPXA3lbSa5PquIqwD3dM1kReLzrPnlrSHcLBxWUksY/3BUnvkPR+SX/sGcrJJF1i5XB8A0lXlnTxxFz+fHBE5nQXp+RaP71NDxlYO+cMbhbXWc3jYsk+5ddW2i4fAOb1wYG51Uggzp9+Li/pUpLOICk6ZX969bv3BTxLBz+lufb1mx9KbeomchDyA2fWHg7qFA7KrivphmHtXCD8nvXyRUlv7sGrRiazqGOCqxdTTlw8WfL8LxHcryQ9X9K1OrojouDhkv6R/T06ouKvxUs9VFockjchuPNKekIg7KEx/U7Sk9d0ksZf7WqSIJwrDnUk6VMBRyJQ0r3RXRHcQcovEhxbJjcPp/yR1Lqg+5KkB4aInUXuJZvgKt6aUCUnri4TNa93i/Bl5UtaKmgh7O19JPsjGgquLfeuH+L/a6IVYlJDeF1lHYKDcG4q6ZnZqXLNEFudpDnQ4RDnfjWNJ3XAk7m/KnHj2QXBHbT8ILi7B7emRzZgxgfoPpLetMQDMxNc3UoAp0dlvnQfD8T186yJnOAw1zAvKRAOZhv/xe0EE4I417tK+n3SzlklvSSYF/kIae/DwRSBBNAiMVvzgrlKu13xkq0E13WaTL/0gdb0nTCIC0q6SoEEMcnvvIrjPHYAdsz5Z3SQe838ITle9jeGfk4eiPnc4f+vFLCPw2Dr4ZvJmPg3Jm8srSbqLuSH9go290/GzTpjnYL3ScPWxtWDeZ+KYLH7ySa4OoI7m6RXS7pGUh0CQlPIg/BLpiyPvUYSHvS/TNqAZHgZfpT9jpebkLC0oJVhqn2r8KXtMhl5hmD6Xxem2UpwkChaUeoPiIkD8X+s4PRM+2h7mKfpM31jYpi8iA8OBJcO+73BLOaD8J/kD2iV7Ms9KzPjIXgiFFJs42OthwwtBMe8dyW/OD8+OOD+tsL6PPOq0uMLH4+HhOQLizJVTXDDBAdGfBWfm1XFRQTXkbyUCA5tgPopuXX1jCkLGaY+d0RO8NN3gMBG9j1DvfRZ9liOLJBiC8GdRdJLwyFHHDeHGpg2PxuA8JKSXiCJg5VY0K5e1mESXUjSW1YmE1pgLC8KcaNoZl2F+q/M+ul6abdJcLuUH9igJbPWUo00x6ykIX9A0u1XH9bfDL8S86lhguuXFZvEaAEcAqSk0acdlAiuiwxLC4/DiDslf0BzZB+q75Q1Vofk2PxP92C6xtpCcDcJ2kDsp9bUjPU5XMFvMGKIic2J8i8yAFiPaMVoY7G0fBxy7Lv62RbBQRy7lB8fAEiKj89QufTKZH3naisE64TyDUnsF8dthqHnZ/F3E9yJxcSLf6gk9mnYwyqd3rGIyDlXUudr3UlKCwRt5z3JooMAbhSO9WsX1PkkvSHTZErB5LUEV3pp+zSw0jhLbaDp5CmKzhS0V9xBYhkKhE/7y7cSeOEhV1wj0rItgtu1/Fq0sLOHNcxeaSyLywe4LwRXSw419V4Y9tK6zMWSFnGbjn2wvD/2ywgJiwVTFTOwzzTL22APi9PXRyR/KLmh1BIcrgacsOHnRll3Qzqf29MkQTT/TsaZEwSaImFyP6wRTNi/Q4MlFRJxwuxFocXlp8nbIrhdy6+EaRd0aNNsHfCxNsFVLrApVNs0o2/fHJ4XNtX7CCcnuK7DiLyfUwbTLHULYbMdcmotOASnZkruBEp7tQR3zRVh4OIRCyYjL0V66lszPjTiTyQVS6FuZMmNJ59UZZ/uAasPyl9qOmiosw2Cm4L8yH7DlkZNqZV/TVuTrWMNrk40HMGTXuej2Qle6emc4Gq/qqcLLzTREbGUzLiaEV807HmdP1QuaV21CzzXStjTwxQiC25LIeohPRkuudnkxIM2xs/YJ3vbILgpyO9WQduukUut/GvammwdE9yJRYM5QxjW90LoEy/0TyuILbaUE1xtLrqS5rnunkiNWVm7wHMyGGsx56TLWiTHHj+xcFjCB2Lssg2Cm6r8urCrlf/Y2B9oe/tCcLUkMwb4UyQ45pWTZe0CPyiCK42n5YChRXZzI7hN5GeCa1kZM6hb+pLuO8GVEgOY4E5YzENEWuPou00NbhP5meBmQFotQzTBSds0Ubf1sSid/tpEPX7lb7KHaoJrYY8Z1J0rwY25SZ27W3xl5cDJBvQPEvnVanC4mxBFEQtuMkQI/G0La8GHDMeDOqb8THBbWKi7bHKuBEdA+NODJ3/Eb10NJne3KLl21BJc3laLM2nrOiC6gXjXWNZxEyEuFXceDouIW+WHMaf+dtvYg5uq/Exwratw4vXnSnDAumtH0dKp7Rje+cyNcK9HJ8RD0gCI9+/Jerps8LmLIV2fXZ1m4yTdl/YpX441DsXbILipys8EN3HCah3enAmuRCaYlp9sACHff+PRTUK1SvdRtF6bSHZZtCo0tFhK0RWlrC1kJHl75fxrQ8K2RXBTlJ8JrnLxzKXanAluG8HaXeFOtSZqKZsKGhVe82lkQt/6gKSPSoLtiQQhBCvNucbzHDTgBwcBxdISbE+0BJEQMYC8a+7bIrgpys8ENxfmqhznnAmOKZbS7RwRQsTWSZdEDjouy0n3oOinluCoS745kkKyvxUL5EGcLAcYfeXCIUIjTZdEOiRMyVK4Vyld0lD8L/2fI8RWppmT2cMkN1s+95zgSDNFSF1XqXETic9OUX6lebXIv/LVm141O/qOL5N1HX3jSLoSJpLwEe2GrK156BKZakk8SZaPtBCPCpEcV5hm6wLPtTCaRJMjhI1g/Jx8STWFeYlbSXo3wJD215V/jwwp7OEReJ/On4SX3FdBiqWUgPtSWuU3pA3ltmshuKnKL18CrfIf/005gBZNcOODvCnBMaIxUl4P5WxrXeDkmsM9hJPevJDXnzsljg7aUkzHnmby5RlMUy7QwVzNtaq0zb6U5ZjF3KJFWxAPWZZjSvjYxhCJ5skIeI454G9GjC3tH55cAtRCcFOVnwlu/Hd9Jy3O3USNoJFaGjK5yxooou2RiQQP+K7SSnC005U1uGaIEBImI+mgSlf75W1ActRvuUAlapX3Cq4hXUH6JZM77T9PU9VKcLQ1Rfmlc1xH/jVynlQda3Dji2MMDS6OCjMP9wqcbS9SMVTynxGczp2X+V0RY33BWTNoTJiL3AZWU/rM677n47WBnNrWXJtIqiDM+NI9DGk/zIGkmqRCz7VM6uWZTtYhONqZovwiDia4mpU7wTpL0eDyry2b9GSnxVctXvycXnxMzjbM0iFiG2uBQz5oQvEyau5EiHttmIj4uWFOkqEY4k0vimldNmiOzP96hflziTH9cJnNtxv7YfxkbcbMxQcvljz2c12CS7GemvxMcK2r0PVnhcBeLPBZScSDHR2BJZqoo4O00AZNcAsVrKd1AgImuP1dDSa4/ZX93szcBLc3oj7RRPN9JW7wun6F4+7+IuaZzw4BE9zsRDbagDk9fH24gYpG170ta7QBuSEjMDYCJrixEZ1He8gddxb8vWJZ97aseczYo9xLBExw+yN2wqYOCzeXc8cp/45piUCBu1S5waovwmB/0PJMF4GACW4RYhycRCkdePrQsSHj7zGDLbmCEZgRAia4GQlrg6GW0qHH5nDKJawLR9mx7x/dYMh+1AhsjoAJbnMM59DCoSGrB976MTCdrCQkkiS86SdzmITHaARaETDBtSLm+kbACMwGARPcbETlgRoBI9CKgAmuFTHXNwJGYDYImOBmIyoP1AgYgVYETHCtiLm+ETACs0HABDcbUXmgRsAItCJggmtFzPWNgBGYDQImuNmIygM1AkagFQETXCtirm8EjMBsEDDBzUZUHqgRMAKtCJjgWhFzfSNgBGaDgAluNqLyQI2AEWhFwATXipjrGwEjMBsETHCzEZUHagSMQCsC/wMUulyB56PQHwAAAABJRU5ErkJggg=="/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-53"><g><ellipse cx="125" cy="720" rx="40" ry="40" fill="#bac8d3" stroke="#23445d" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 720px; margin-left: 86px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Sigmoid</div></div></div></foreignobject><image x="86" y="713.5" width="78" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="OCCttNjwiIRNWy9H9MT8-58"><g><path d="M 125 120 L 305 120 Q 315 120 314.89 130 L 314.07 208.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 314.01 213.88 L 310.59 206.85 L 314.07 208.63 L 317.59 206.92 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="HYfCtVAYvf80hUUsblHq-2"><g><rect x="339" y="220" width="50" height="40" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 240px; margin-left: 364px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">key<br/>value</div></div></div></foreignobject><image x="349.5" y="226" width="29" height="32" xlink:href="data:image/png;base64,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"/></switch></g></g></g><g data-cell-id="HYfCtVAYvf80hUUsblHq-3"><g><rect x="270" y="179" width="50" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignobject pointer-events="none" width="100%" height="100%" requiredfeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 194px; margin-left: 295px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">query</div></div></div></foreignobject><image x="280" y="187.5" width="30" height="17" xlink:href="data:image/png;base64,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"/></switch></g></g></g></g></g></g></svg>
</div>
<!--kg-card-end: html-->
<ul>
<li>
<p><strong>Embedding Layer:</strong> The model starts by converting discretized ability tokens and weapon IDs into embeddings. By adding the weapon embeddings to the ability embeddings, we provide contextual information that allows the model to understand how weapon choices influence ability effectiveness while retaining the ability for the model to transfer synergies from more popular weapons to less popular weapons.</p>
</li>
<li>
<p><strong>SetTransformer Layers:</strong> SplatGPT employs multiple layers of what I call the SetTransformerLayer. Each layer processes the input set through a Set Transformer module which, due to its design, maintains permutation invariance. This ensures the model&apos;s predictions are based solely on the combination of ability tokens and not their order.</p>
<ul>
<li><strong>Cross-Attention Mechanism:</strong> Within each layer, the output of the Set Transformer serves as the key and value in a cross-attention mechanism, with the original input as the query. Using the original input as the query allows the model to reference the initial state of the abilities, ensuring that the refined understanding doesn&apos;t drift from the original data while retaining the input sequence length. This setup allows the model to refine its understanding by focusing on relevant interactions between abilities.</li>
<li><strong>Feedforward:</strong> Each SetTransformerLayer ends with a feedforward layer that increases dimensionality, passes the input through an activation function (in this case GeLU, or Gaussian Error Linear Unit, which helps model complex patterns), and returns dimensionality to what it was before.</li>
<li><strong>Residual Connections:</strong> Through the use of residual connections, the layers build higher-order relationships that capture complex interactions between abilities and weapons. These connections enable what&apos;s sometimes referred to as &quot;virtual attention,&quot; enhancing the model&apos;s capacity to learn intricate patterns.</li>
</ul>
</li>
<li>
<p><strong>Masked Mean Layer:</strong> To aggregate information across the set and ensure permutation invariance, the inputs pass through a masked mean pooling layer. This mechanism averages the embeddings while accounting for variable input lengths, effectively summarizing the set without imposing any order.</p>
</li>
<li>
<p><strong>Output Layer:</strong> The final output first is projected to the size of the dictionary before it passes through a sigmoid activation function, generating probabilities for each ability token. This framing as a multilabel classification problem enables the model to predict multiple abilities simultaneously, capturing the multimodal nature of optimal gear configurations.</p>
</li>
</ul>
<p>SplatGPT effectively models the intricate, nonlinear relationships within the gear system, accounting for ability stacking, weapon synergy, and contextual dependencies. By integrating attention mechanisms and set-based processing, it overcomes the limitations of traditional models, providing accurate and practical gear recommendations.</p>
<h2 id="cross-attention-mechanism-in-splatgpt">Cross-Attention Mechanism in SplatGPT</h2>
<p>The key breakthrough that allowed me to create SplatGPT by putting in a Set Transformer into a GPT-2-like architecture was cross-attention. Here&apos;s a more detailed explanation:</p>
<h4 id="maintaining-sequence-length">Maintaining Sequence Length</h4>
<p>The Set Transformer module inherently includes a pooling operation that reduces the sequence length by summarizing the input into a condensed representation. While this is beneficial for capturing global set information with permutational invariance, it poses a challenge when integrating to the residual stream, as the sequence length must remain consistent across every connection back into the stream in order to work effectively.</p>
<p>To address this, I introduced a cross-attention mechanism that maintains the original sequence length. Here&apos;s how it works:</p>
<ul>
<li>
<p><strong>Cross-Attention Setup:</strong> The output of the Set Transformer (the pooled, set-level representation) serves as the key and value, while the original input sequence acts as the query in the cross-attention mechanism.</p>
</li>
<li>
<p><strong>Functionality:</strong> This setup allows each position in the original sequence to attend to the set-level context captured by the Set Transformer. Essentially, it broadcasts the set-level information back to each individual token while preserving the sequence length.</p>
</li>
</ul>
<h4 id="adding-context">Adding Context</h4>
<p>This process effectively distributes the aggregated set-level information back to each individual token, enriching their representation. In essence, each token now:</p>
<ul>
<li>
<p><strong>Holds Context:</strong> Each token incorporates some information about its role within the entire gear set and its interaction with other abilities in the build.</p>
</li>
<li>
<p><strong>Captures Complex Relationships:</strong> With each additional SetTransformerLayer, the model refines these representations, enabling it to model increasingly complex interactions between abilities.</p>
</li>
<li>
<p><strong>Benefits from Deeper Layers:</strong> The stacking of layers allows the model to build upon previous representations. Since each SetTransformerLayer is part of the residual stream, the higher-order relationships that can be captured as a result of preserving sequence length are much more than the sum of their parts. For more information on this, check out <a href="https://transformer-circuits.pub/2021/framework/index.html?ref=cegarza.com">A Mathematical Framework for Transformer Circuits by Anthropic</a>.</p>
</li>
</ul>
<h4 id="why-it-matters">Why It Matters</h4>
<ul>
<li>
<p><strong>Context-Dependent Abilities:</strong> The effectiveness of an ability often depends on other abilities equipped and the chosen weapon.</p>
</li>
<li>
<p><strong>Nonlinear Synergies:</strong> Certain ability clusters behave differently based on the surrounding context. While Comeback and Quick Respawn with 15 Ability Points (AP) have high amounts of synergy, if the input tokens include Quick Respawn with 40 Ability Points, the amount of synergy between Comeback and Quick Respawn 15 is much lower.</p>
</li>
<li>
<p><strong>Comprehensive Modeling:</strong> By enriching each token with the set-level context, the model can make more informed predictions about which abilities will optimize performance.</p>
</li>
</ul>
<h4 id="why-not-self-attention">Why Not Self-Attention?</h4>
<p>As mentioned above, attention is set-based in nature and needs to be provided positional embeddings for sequence-to-sequence tasks. So why not use self-attention? Why use a Set Transformer at all with Cross-Attention?</p>
<p>The primary reason is because self-attention works as pairwise relationships. Though the residual stream allows significantly more complex interactions over multiple layers of self-attention, we are still dealing with sets. That is, we have to deal with \( 2^n \) possibilities where \( n \) is the number of tokens in our vocabulary. We&#x2019;d need many layers of self-attention to replicate what we can get with a few layers of cross-attention with the set transformer output.</p>
<h2 id="results">Results</h2>
<h4 id="evaluation">Evaluation</h4>
<p>Evaluating a gear optimization model for Splatoon 3 presents a unique challenge. The true test of a build&#x2019;s effectiveness can only be measured across hundreds of games with multiple players &#x2013; a scale of testing that proves infeasible given Nintendo&#x2019;s locked-down API and the demographic challenges of convincing younger players to systematically track their games.</p>
<h4 id="where-are-the-standard-metrics">Where are the Standard Metrics?</h4>
<p>Traditional evaluation metrics would require large-scale user testing under controlled conditions. Since there is no direct efficacy score that we can extract from just the gear that the model produces, we would need to rely on players testing these out and aggregating results over dozens of matches per build in order to properly evaluate. Unfortunately, there are a few issues here. First, Splatoon 3&apos;s closed API and Nintendo&apos;s strict data policies make gathering such data nearly impossible. Second, coordinating players to pull this off would itself be a herculean logistical feat. Finally, meta shifts can quickly invalidate any static benchmark. As a result, we have to rely on qualitative feedback from top competitive players. While not the usual setup, the anecdotal evidence so far has been quite promising and has revealed both strengths and limitations of the model.</p>
<h4 id="initial-validation">Initial Validation</h4>
<p>Initial validation came from my own experience as a player ranked in the top 10,000 globally. Once the model began consistently surpassing my build optimization abilities, I sought more rigorous validation from top competitive players. These experts were asked to select random weapons they felt comfortable with and provide partial builds with varying levels of completion &#x2013; ranging from nearly complete setups to just weapon selection. This tested the model&#x2019;s ability to both complete existing builds and construct entirely new ones from minimal input.</p>
<h4 id="surprising-results">Surprising Results</h4>
<p>The response from top players was unanimously positive, with reactions ranging from impressed surprise to outright disbelief. The most compelling example came when the model perfectly reconstructed a top player&#x2019;s build for an extremely unpopular weapon, working from just a half-completed build &#x2013; and did so without having seen that specific configuration or similar builds in its training data. This demonstrated not just pattern matching, but a genuine understanding of gear optimization principles.</p>
<p>However, the model isn&#x2019;t without limitations. Weapons with minimal representation in the dataset, particularly when combined with unpopular abilities, can produce suboptimal results. While this seems unavoidable given the current dataset constraints, it&#x2019;s a clear area for future improvement.</p>
<h4 id="production-deployment">Production Deployment</h4>
<p>Perhaps the most meaningful validation is that this isn&#x2019;t just a proof of concept &#x2013; the model is already in production, actively helping players optimize their gear loadouts. It demonstrates that achieving superhuman performance isn&#x2019;t necessary to provide real value to the community. Like a solid NBA bench player, it consistently performs at a professional level while maintaining room for growth. Additionally, an API endpoint was created to take player feedback on the autocompleted build. This will be used with RLHF or DPO to improve future builds.</p>
<h2 id="training-dataset">Training Dataset</h2>
<p>The primary dataset was sourced from <a href="https://stat.ink/?ref=cegarza.com">stat.ink</a>, a community platform where players upload their match data using third-party tools. While the platform provides anonymized data with identifiable information stripped, this presents potential sampling biases from the site&apos;s users being overrepresented. Several preprocessing steps were necessary to ensure data quality and manage potential biases.</p>
<h4 id="player-level-bias-correction">Player-Level Bias Correction</h4>
<ul>
<li>Limited entries to 50 per likely-player through a discriminator (not an identifier) created via side-channel analysis</li>
<li>While imperfect, this is the best available compensation for sampling bias within the dataset constraints</li>
</ul>
<h4 id="performance-based-filtering">Performance-Based Filtering</h4>
<ul>
<li>Enforced a minimum 3:2 win-loss ratio on a per-weapon basis</li>
<li>This intentionally introduces a bias against losing configurations</li>
<li>Less effective builds or less skilled players are more likely to produce losses</li>
</ul>
<h4 id="temporal-filtering">Temporal Filtering</h4>
<ul>
<li><strong>Post-Update Periods:</strong>
<ul>
<li>Dropped two weeks of data after new weapon introductions</li>
<li>Dropped one week of data after balance patches</li>
<li>Players experiment heavily during these periods, leading to unstable data quality</li>
</ul>
</li>
<li><strong>Historical Data:</strong>
<ul>
<li>Progressively dropped older data</li>
<li>Accounts for meta shifts and evolution of optimal strategies</li>
<li>Helps ensure model reflects current game state</li>
</ul>
</li>
</ul>
<h4 id="completeness">Completeness</h4>
<ul>
<li>Dropped all incomplete builds</li>
<li>Ensures model trains on complete, valid configurations</li>
</ul>
<h4 id="impact">Impact</h4>
<p>The preprocessing decisions were carefully chosen using domain expertise to balance between availability and quality. The introduction of biases might seem counter-intuitive but serves to help the model produce optimal builds rather than replicating the dataset.</p>
<h1 id="training-process">Training Process</h1>
<h3 id="initial-success">Initial Success</h3>
<p>The training process was surprisingly smooth. Even early runs produced builds that, while far from optimal, demonstrated a logical consistency that an experienced player could understand. This early success suggested that the architecture was well-suited for this problem space.</p>
<h3 id="data-preparation">Data Preparation</h3>
<p>The training approach drew inspiration from large language model techniques, specifically the sliding window method for next token prediction. Each build generated multiple training examples through progressive token dropping:</p>
<ul>
<li>Before training, select \( n \) for how many times each build will be used in the dataset.</li>
<li>Generate a list of random numbers from 1 to \( k \) where \( k \) represents the sequence length, these will represent the number of ability tokens dropped for each training example.</li>
<li>Initial attempts dropped largest ability buckets first
<ul>
<li>Later switched to random drops, which improved learning of cross-bucket ability associations</li>
</ul>
</li>
<li>Padding tokens added to maintain consistent sequence length within batches</li>
<li>Binary cross-entropy with logits selected as loss function</li>
<li>Learning rate guided by validation set F-score after each epoch.</li>
</ul>
<p>The development process utilized two distinct training scenarios:</p>
<ul>
<li>&quot;Toy&quot; models: Single RTX 2080Ti, 10-to-20-minute training runs for rapid iteration</li>
<li>Production model: Single H100 GPU, 62-hour training period. While the training time could be optimized further, this was sufficient for production-quality results.</li>
</ul>
<h3 id="emergent-behavior-the-null-token">Emergent Behavior: The NULL Token</h3>
<p>Possibly the most fascinating discovery emerged halfway through development with the introduction of a <code>&lt;NULL&gt;</code> token. Early experiments with <code>&lt;NULL&gt;</code> revealed two extremes:</p>
<ul>
<li>Including <code>&lt;NULL&gt;</code> in all training data degraded overall build quality across the board</li>
<li>Sparse inclusion of <code>&lt;NULL&gt;</code> tokens led to overfitting on builds lucky enough to get <code>&lt;NULL&gt;</code></li>
<li>Anything in-between would lessen overfitting but also decrease overall build quality.</li>
</ul>
<p>I made a completely baseless hypothesis: completely excluding the <code>&lt;NULL&gt;</code> token from training but including it as part of the vocabulary might make the model treat it as a root token for generating an optimal build given no input. This proved correct, with <code>&lt;NULL&gt;</code> consistently producing highly-effective weapon-specific builds &#x2013; an emergent behavior that it was not explicitly trained for.</p>
<p>This unexpected success with the <code>&lt;NULL&gt;</code> token highlights that the model is actually developing optimization strategies and not simply regurgitating its training dataset. This is quite fascinating, as in a way the model is attempting to &quot;reason&quot; about what it should do given an unknown input.</p>
<h2 id="insights">Insights</h2>
<p>To better understand how SplatGPT makes decisions, I developed a utility that applies the logit lens to each layer of the model. The process involves progressively truncating <code>SetTransformerLayers</code> until only the embeddings flow into the masked mean, followed by projection and activation. I then analyzed the results across a comprehensive set of inputs: every ability token paired with each weapon, at each layer depth. By tracking how probability distributions change between layers, we can effectively peek at the model&#x2019;s &#x201C;thought process&#x201D; as it incorporates more contextual data and refines gear recommendations. See the <a href="#logit-lens-analysis">appendix</a> for excessive details on this.</p>
<p>Through this careful investigation using the logit lens, we can observe several patterns in how different types of ability tokens are processed:</p>
<ul>
<li><strong>Role-defining abilities</strong> tend to show accurate predictions from early layers. Their inclusion in the input will shift the output distribution towards generally viable builds immediately.</li>
<li><strong>Multimodal abilities</strong> hedge significantly, with input probabilities clustered tightly around \( 0.5 \). As more context is added and it goes through more layers, these abilities will either have higher probabilities in the output distributions or go towards zero.</li>
<li><strong>Ubiquitous abilities</strong> that require contextual understanding show a mesa-shaped distribution, with most values between \( 0.4 \) and \( 0.6 \). This requires significantly more context, and the mesa-shape represents their high appearance rate in the training data.</li>
<li><strong><code>&lt;NULL&gt;</code> Token</strong> exhibits weapon-specific distribution patterns and undergoes more significant change in the first two layers compared to other tokens.</li>
</ul>
<h2 id="conclusion">Conclusion</h2>
<p><strong>SplatGPT</strong> demonstrates that deep learning models based on LLM architectures can solve complex set-based optimization problems while capturing intricate domain constraints. Through careful architecture decisions, I created a model capable of understanding and leveraging the complex interactions between weapons, abilities, and playstyles in Splatoon 3.</p>
<p>The most fascinating aspects of this project were not the solutions we explicitly engineered but rather the behaviors that emerged. The <strong><code>&lt;NULL&gt;</code></strong> token&#x2019;s ability to generate strong baseline builds despite never being trained on them suggests the model developed genuine optimization capabilities rather than simply memorizing common configurations. The fact that the model has reached such a high level of performance despite being trained on such a wide skillset is also very impressive and goes to show how we can extract the wisdom of the crowds through careful, thoughtful data preprocessing. Additionally, the logit lens analysis reveals how the model progressively refines its understanding of ability interactions across layers, with different patterns for role-defining, multimodal, and ubiquitous abilities.</p>
<p>While SplatGPT has proven effective enough to deploy in production, there&#x2019;s still much to explore. Future work includes using sparse autoencoders to better understand the features being detected at each layer, expanding the training dataset to better handle rare weapon-ability combinations, and potentially applying similar architectures to optimization problems in other games. The model&#x2019;s deployment was also equipped with a <strong>feedback</strong> endpoint tied to the API&#x2019;s <strong>request id</strong>. This allows users to give both positive or negative feedback on builds. This is specifically to set up for the next stage of model improvement: having a dataset of judged model outputs in order to apply either <strong>RLHF</strong> or <strong>DPO</strong>. This should take the model from the current <strong>mid-level competitive</strong> player skill tier it is at and take it to <strong>top competitive</strong>.</p>
<p>The immediate success of the model suggests it is especially good at dealing with set completion tasks with a lot of contextual noise. While I can&#x2019;t think of many processes that this would apply to outside of Splatoon 3, the existence of this solution will hopefully inspire other solutions the way <strong>LLMs</strong> and <strong>Set Transformers</strong> inspired me.</p>
<h2 id="appendix">Appendix</h2>
<h3 id="logit-lens-analysis">Logit Lens Analysis</h3>
<p>The figure below illustrates the distributions for nine different weapon/ability token input combinations. The first six are for the weapon Splatana Stamper as a case study for how the distribution is affected by the token selection as it is one of the weapons that is multimodal in nature. The last three are specifically chosen weapon/ability token pairs that illustrate some interesting quirks.</p>
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://cegarza.com/content/images/2024/11/image-2.png" class="kg-image" alt loading="lazy" width="1536" height="1226" srcset="https://cegarza.com/content/images/size/w600/2024/11/image-2.png 600w, https://cegarza.com/content/images/size/w1000/2024/11/image-2.png 1000w, https://cegarza.com/content/images/2024/11/image-2.png 1536w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">A Selection of Logit Lens Outputs. First two rows are a multimodal weapon with various starting points, last row is selection of iconic builds</span></figcaption></figure><p>Shown above are a selection of nine logit lens distributions at different points of analysis, colored by their position on the visible spectrum:</p>
<ul>
<li><strong>Input Layer -&gt; Red</strong></li>
<li><strong>Layer 0 -&gt; Orange</strong></li>
<li><strong>Layer 1 -&gt; Green</strong></li>
<li><strong>Layer 2 -&gt; Blue</strong></li>
</ul>
<p>The first two rows are for the <strong>Splatana Stamper</strong>, a multimodal weapon with multiple viable builds. The selection of abilities to start with are from left to right then top to bottom: no ability, the single most commonplace ability, a highly commonplace ability for builds for this weapon, the two defining tokens for the different builds, and a minimal investment case that is signal here but is noise in almost any other context. The final row represents three selected weapons all with a representative of their builds. Below is a supplementary graph which has the differences between layers.</p>
<figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://cegarza.com/content/images/2024/11/image-3.png" class="kg-image" alt loading="lazy" width="1536" height="1226" srcset="https://cegarza.com/content/images/size/w600/2024/11/image-3.png 600w, https://cegarza.com/content/images/size/w1000/2024/11/image-3.png 1000w, https://cegarza.com/content/images/2024/11/image-3.png 1536w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">The same Logit Lens Outputs, Differences Between Layers</span></figcaption></figure><p>What we can tell from these differences between layers is that most of the feature selection is done by the first layer, with iterative refinements happening with each layer. What each feature actually is is not something I have looked into yet, though I will look into it via sparse autoencoders as detailed in <a href="https://transformer-circuits.pub/2023/monosemantic-features?ref=cegarza.com">this Anthropic paper</a></p>
]]></content:encoded></item></channel></rss>