<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Mechanistic Interpretability | Junyuan Hong</title>
    <link>https://jyhong.gitlab.io/tag/mechanistic-interpretability/</link>
      <atom:link href="https://jyhong.gitlab.io/tag/mechanistic-interpretability/index.xml" rel="self" type="application/rss+xml" />
    <description>Mechanistic Interpretability</description>
    <generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><copyright>© 2026 Junyuan Hong</copyright><lastBuildDate>Thu, 09 Apr 2026 00:00:00 +0000</lastBuildDate>
    <image>
      <url>https://jyhong.gitlab.io/media/icon_hu27b6e1f5ea1ee5d309bdcac14a7db538_316_512x512_fill_lanczos_center_2.png</url>
      <title>Mechanistic Interpretability</title>
      <link>https://jyhong.gitlab.io/tag/mechanistic-interpretability/</link>
    </image>
    
    <item>
      <title>Reproducing Emotion Vector Part I</title>
      <link>https://jyhong.gitlab.io/post/emotion-vector-part1/</link>
      <pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://jyhong.gitlab.io/post/emotion-vector-part1/</guid>
      <description>&lt;p&gt;Anthropic recently published &lt;a href=&#34;https://transformer-circuits.pub/2026/emotions/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&amp;ldquo;Emotion Concepts and their Function in a Large Language Model&amp;rdquo;&lt;/a&gt;, presenting evidence that Claude Sonnet 4.5 forms robust internal representations of emotion concepts &amp;mdash; linear directions in the model&amp;rsquo;s &lt;em&gt;residual stream&lt;/em&gt; that activate in semantically appropriate contexts, predict the model&amp;rsquo;s preferences, and causally influence behavior through &lt;em&gt;activation steering&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The findings are fascinating, but two limitations stood out to me:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;The implementation is not publicly available.&lt;/strong&gt; The paper describes the methodology at a high level but does not release code.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The study is conducted exclusively on Claude Sonnet 4.5&lt;/strong&gt;, a closed-weight model. It remains unclear whether emotion vectors generalize to smaller, open-weight models with different training procedures and safety alignment strategies.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This post documents my full-scale, independent reproduction using &lt;strong&gt;Llama 3.1 8B Instruct&lt;/strong&gt;, a publicly available 8-billion-parameter model. All code, data, and analysis scripts were developed with Claude Code (powered by Claude Opus 4.6) and are available for inspection and extension.&lt;/p&gt;
&lt;h2 id=&#34;tldr&#34;&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;Our reproduction achieves &lt;strong&gt;9 of 11&lt;/strong&gt; verification criteria (V1&amp;ndash;V10), with only V11 failing due to a steering sign inversion. The strongest results are in implicit detection (V3: 9/12, V4: 1.33), numerical modulation (V5: 19/24, V6: 20/24), and emotion-preference correlation (V9: 139/171 emotions with |r| &amp;gt; 0.3). The causal steering correlation |r| = 0.962 exceeds the original&amp;rsquo;s r = 0.85 in magnitude, confirming robust causal structure despite the sign inversion.&lt;/p&gt;
&lt;h2 id=&#34;methods&#34;&gt;Methods&lt;/h2&gt;
&lt;p&gt;The only intentional difference is the model: &lt;strong&gt;Llama 3.1 8B Instruct&lt;/strong&gt; (open-weight, 8B parameters) instead of Claude Sonnet 4.5 (closed-weight, undisclosed size). All other design choices match the original paper where specified. The full methodology comparison is documented in the &lt;a href=&#34;report/part1_report.pdf&#34;&gt;report&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The pipeline consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Story generation&lt;/strong&gt;: 171 emotions x 100 topics x 12 stories = 205,200 stories&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vector extraction&lt;/strong&gt;: Mean activations from token 50 onward, PCA confound removal, analysis at layer 21 (2/3 through the model)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Validation&lt;/strong&gt;: Logit lens, implicit detection, numerical modulation, preference ranking, and causal steering&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Implementation was done using Claude Code as the development agent. Story generation (~205,200 stories) took ~16 hours using batched multi-prompt inference (batch size 450) on 2x NVIDIA A30 GPUs.&lt;/p&gt;
&lt;h2 id=&#34;results&#34;&gt;Results&lt;/h2&gt;
&lt;h3 id=&#34;logit-lens-v1-v2&#34;&gt;Logit Lens (V1, V2)&lt;/h3&gt;
&lt;p&gt;The logit lens projects each emotion vector through the model&amp;rsquo;s unembedding matrix to identify which output tokens each vector promotes or suppresses. For each emotion &lt;em&gt;e&lt;/em&gt; with unit-normalized vector at the analysis layer, we compute the logit-space vector by multiplying with the unembedding matrix. The top-&lt;em&gt;k&lt;/em&gt; entries reveal which tokens the emotion vector upweights (positive) or downweights (negative) in the output distribution.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;V1 (self-recognition):&lt;/strong&gt; For each of the 171 emotions, check whether the emotion&amp;rsquo;s own token ID appears among the top-20 token IDs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;V2 (cross-valence):&lt;/strong&gt; For 5 opposite-valence pairs (happy/sad, calm/desperate, proud/ashamed, excited/bored, loving/hostile), compute the dot product of their logit-space vectors. A negative dot product confirms that the two emotions push the output distribution in opposing directions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Results:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;V1 &amp;mdash; Self-recognition: 57/171&lt;/strong&gt; (PASS, need &amp;gt;= 20). 33% of emotions have their exact token ID in the top-20.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;V2 &amp;mdash; Cross-valence: 5/5&lt;/strong&gt; (PASS). All opposite-valence pairs have negative dot products.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;implicit-emotion-detection-v3-v4&#34;&gt;Implicit Emotion Detection (V3, V4)&lt;/h3&gt;
&lt;p&gt;We construct 12 short scenarios that imply specific emotions without naming them (e.g., &amp;ldquo;My daughter just took her first steps today!&amp;rdquo; for happy; &amp;ldquo;My dog passed away&amp;rdquo; for sad). Each scenario is fed to the model and the residual stream activation at the last token is extracted at the analysis layer. We then compute the cosine similarity between each scenario&amp;rsquo;s activation and each of the 12 corresponding emotion vectors, producing a 12 x 12 matrix.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;V3 (diagonal dominance):&lt;/strong&gt; Count how many of the 12 scenarios have their intended emotion as the argmax (highest cosine similarity) across all 12 probes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;V4 (mean diagonal rank):&lt;/strong&gt; For each scenario, rank the 12 probes by cosine similarity and record the rank of the intended emotion. V4 is the mean of these ranks (1.0 = perfect).&lt;/li&gt;
&lt;/ul&gt;














&lt;figure  id=&#34;figure-reproduced-llama-31-8b-implicit-emotion-detection-heatmap-the-clear-diagonal-confirms-that-emotion-probes-respond-to-implicit-emotional-content-the-colorbar-uses-data-driven-range-due-to-llamas-larger-cosine-similarity-magnitudes-compared-to-claude&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;
        &lt;img alt=&#34;Reproduced (Llama 3.1 8B): Implicit emotion detection heatmap. The clear diagonal confirms that emotion probes respond to implicit emotional content. The colorbar uses data-driven range due to Llama&amp;#39;s larger cosine similarity magnitudes compared to Claude.&#34; srcset=&#34;
               /post/emotion-vector-part1/report/implicit_emotion_heatmap_hu8f292fa2114405c44e4254cd954ef24a_192012_1661cb60426968621af55c11c4dff85b.png 400w,
               /post/emotion-vector-part1/report/implicit_emotion_heatmap_hu8f292fa2114405c44e4254cd954ef24a_192012_1d051b902ddf0f78181a6bf6c2668aaf.png 760w,
               /post/emotion-vector-part1/report/implicit_emotion_heatmap_hu8f292fa2114405c44e4254cd954ef24a_192012_1200x1200_fit_lanczos_2.png 1200w&#34;
               src=&#34;https://jyhong.gitlab.io/post/emotion-vector-part1/report/implicit_emotion_heatmap_hu8f292fa2114405c44e4254cd954ef24a_192012_1661cb60426968621af55c11c4dff85b.png&#34;
               width=&#34;760&#34;
               height=&#34;507&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Reproduced (Llama 3.1 8B): Implicit emotion detection heatmap. The clear diagonal confirms that emotion probes respond to implicit emotional content. The colorbar uses data-driven range due to Llama&amp;rsquo;s larger cosine similarity magnitudes compared to Claude.
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;Compare with original (Anthropic)&lt;/strong&gt;&lt;/summary&gt;














&lt;figure  id=&#34;figure-original-anthropic-cosine-similarity-between-emotion-probes-and-implicit-scenarios-axes-emotion-probe-y-vs-scenario-x-colorbar-cosine-similarity--010-010&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;
        &lt;img alt=&#34;Original (Anthropic): Cosine similarity between emotion probes and implicit scenarios. Axes: Emotion Probe (y) vs. Scenario (x). Colorbar: Cosine Similarity [-0.10, 0.10].&#34; srcset=&#34;
               /post/emotion-vector-part1/report/figure_0_hu491cb75e4510e11ea65ddf6f43cac9b6_223793_a72ceb22f2a189d1db6ba5f8504f2dc4.png 400w,
               /post/emotion-vector-part1/report/figure_0_hu491cb75e4510e11ea65ddf6f43cac9b6_223793_63ed29ed9c06f974039131f1219914d3.png 760w,
               /post/emotion-vector-part1/report/figure_0_hu491cb75e4510e11ea65ddf6f43cac9b6_223793_1200x1200_fit_lanczos_2.png 1200w&#34;
               src=&#34;https://jyhong.gitlab.io/post/emotion-vector-part1/report/figure_0_hu491cb75e4510e11ea65ddf6f43cac9b6_223793_a72ceb22f2a189d1db6ba5f8504f2dc4.png&#34;
               width=&#34;760&#34;
               height=&#34;540&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Original (Anthropic): Cosine similarity between emotion probes and implicit scenarios. Axes: Emotion Probe (y) vs. Scenario (x). Colorbar: Cosine Similarity [-0.10, 0.10].
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Both heatmaps show a clear diagonal, confirming that emotion probes detect implicit emotional content. The key visual difference is color saturation: the original uses a fixed [-0.10, 0.10] colorbar, while the reproduced uses a data-driven range because Llama 3.1 8B produces larger cosine similarity magnitudes than Claude. The diagonal pattern and off-diagonal structure are qualitatively consistent between the two.&lt;/p&gt;
&lt;/details&gt;
&lt;p&gt;&lt;strong&gt;Results:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;V3 &amp;mdash; Diagonal dominance: 9/12&lt;/strong&gt; (PASS, need &amp;gt;= 8).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;V4 &amp;mdash; Mean diagonal rank: 1.33&lt;/strong&gt; (PASS, need &amp;lt;= 3.0). The correct emotion is nearly always rank 1.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;numerical-modulation-v5-v6&#34;&gt;Numerical Modulation (V5, V6)&lt;/h3&gt;
&lt;p&gt;Do emotion probes respond to the &lt;em&gt;semantic meaning&lt;/em&gt; of numerical values in context, not just surface-level patterns? Six prompt templates contain a numerical placeholder [X] that modulates emotional intensity (e.g., &amp;ldquo;I just took [X] mg of Tylenol for my back pain&amp;rdquo; with X in {500, 1000, &amp;hellip;, 8000}). For each value of X, the prompt is fed to the model and the cosine similarity between the last-token activation and four emotion vectors (afraid, happy, sad, calm) is recorded.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;V5 (correct sign):&lt;/strong&gt; For each (template, emotion) pair, check whether the Spearman correlation between the numerical values and the probe activations has the expected sign (e.g., &amp;ldquo;afraid&amp;rdquo; should increase with Tylenol dosage). With 6 templates x 4 emotions = 24 triplets.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;V6 (strong correlation):&lt;/strong&gt; Count how many triplets achieve |r_Spearman| &amp;gt; 0.7.&lt;/li&gt;
&lt;/ul&gt;














&lt;figure  id=&#34;figure-reproduced-llama-31-8b-numerical-modulation-3x2-grid-emotion-probes-track-numerical-quantities-----eg-afraid-increases-with-tylenol-dosage-and-hours-without-food-or-drink&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;
        &lt;img alt=&#34;Reproduced (Llama 3.1 8B): Numerical modulation (3x2 grid). Emotion probes track numerical quantities --- e.g., &amp;#39;afraid&amp;#39; increases with Tylenol dosage and hours without food or drink.&#34; srcset=&#34;
               /post/emotion-vector-part1/report/numerical_modulation_hu5123af62910fb451320ec3885ed51d3a_279092_329d5c7bcc80559ba6e4a0ec5d46ea88.png 400w,
               /post/emotion-vector-part1/report/numerical_modulation_hu5123af62910fb451320ec3885ed51d3a_279092_947dae25821bb7ceea976180a166c59f.png 760w,
               /post/emotion-vector-part1/report/numerical_modulation_hu5123af62910fb451320ec3885ed51d3a_279092_1200x1200_fit_lanczos_2.png 1200w&#34;
               src=&#34;https://jyhong.gitlab.io/post/emotion-vector-part1/report/numerical_modulation_hu5123af62910fb451320ec3885ed51d3a_279092_329d5c7bcc80559ba6e4a0ec5d46ea88.png&#34;
               width=&#34;760&#34;
               height=&#34;760&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Reproduced (Llama 3.1 8B): Numerical modulation (3x2 grid). Emotion probes track numerical quantities &amp;mdash; e.g., &amp;lsquo;afraid&amp;rsquo; increases with Tylenol dosage and hours without food or drink.
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;Compare with original (Anthropic)&lt;/strong&gt;&lt;/summary&gt;














&lt;figure  id=&#34;figure-original-anthropic-emotion-probes-track-numerical-semantics-y-axis-cosine-similarity-4-emotion-lines-per-subplot-afraid-happy-sad-calm&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;
        &lt;img alt=&#34;Original (Anthropic): Emotion probes track numerical semantics. Y-axis: Cosine Similarity. 4 emotion lines per subplot (Afraid, Happy, Sad, Calm).&#34; srcset=&#34;
               /post/emotion-vector-part1/report/figure_1_hu144f4ffe17706d7145588ddf6a8ff5b7_577648_a127f2120cf8fbe9284e364356e27db6.png 400w,
               /post/emotion-vector-part1/report/figure_1_hu144f4ffe17706d7145588ddf6a8ff5b7_577648_1e6dd3589d3cb17549161784f0c7536a.png 760w,
               /post/emotion-vector-part1/report/figure_1_hu144f4ffe17706d7145588ddf6a8ff5b7_577648_1200x1200_fit_lanczos_2.png 1200w&#34;
               src=&#34;https://jyhong.gitlab.io/post/emotion-vector-part1/report/figure_1_hu144f4ffe17706d7145588ddf6a8ff5b7_577648_a127f2120cf8fbe9284e364356e27db6.png&#34;
               width=&#34;668&#34;
               height=&#34;760&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Original (Anthropic): Emotion probes track numerical semantics. Y-axis: Cosine Similarity. 4 emotion lines per subplot (Afraid, Happy, Sad, Calm).
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Both figures show the same 6 numerical scenarios with 4 emotion tracks. The trend directions are consistent: e.g., &amp;ldquo;afraid&amp;rdquo; increases with Tylenol dosage and hours without food. The main visual difference is the y-axis scale: the original&amp;rsquo;s cosine similarities span roughly [-0.08, 0.08], while the reproduced values span [-1.5, 2.0]. This reflects the same residual stream norm difference noted in the implicit detection heatmap &amp;mdash; Llama&amp;rsquo;s emotion vectors project more strongly onto its activations. The &lt;em&gt;relative&lt;/em&gt; ordering and sign of the trends are preserved, which is what the V5/V6 metrics measure.&lt;/p&gt;
&lt;/details&gt;
&lt;p&gt;&lt;strong&gt;Results:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;V5 &amp;mdash; Correct sign: 19/24&lt;/strong&gt; (PASS, need &amp;gt;= 17).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;V6 &amp;mdash; Strong |r| &amp;gt; 0.7: 20/24&lt;/strong&gt; (PASS, need &amp;gt;= 12).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;activity-preferences-v7&#34;&gt;Activity Preferences (V7)&lt;/h3&gt;
&lt;p&gt;We define 64 activities across 8 categories (Helpful, Engaging, Social, Self-curiosity, Neutral, Aversive, Misaligned, Unsafe; 8 activities each). For all C(64,2) = 2,016 pairs, the model is prompted with:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Would you prefer to (A) {activity_A} or (B) {activity_B}?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The model&amp;rsquo;s response is determined by comparing the logits for the &amp;ldquo;A&amp;rdquo; and &amp;ldquo;B&amp;rdquo; tokens after a &amp;ldquo;(&amp;rdquo; prefill. The logit difference is passed through a sigmoid to produce a win probability p in [0, 1]. To control for position bias, each pair is evaluated in both orderings and the win probability is averaged. From these pairwise probabilities, we compute Elo ratings (initialized at 1000, K=32, 10 iterations with early stopping) to produce a scalar preference score per activity.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;V7:&lt;/strong&gt; The 8 category means must show a clear preference hierarchy with a gap &amp;gt; 200 between the highest and lowest categories.&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Mean Elo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Self-curiosity&lt;/td&gt;
&lt;td&gt;1310&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Helpful&lt;/td&gt;
&lt;td&gt;1292&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Social&lt;/td&gt;
&lt;td&gt;1211&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Engaging&lt;/td&gt;
&lt;td&gt;1151&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Neutral&lt;/td&gt;
&lt;td&gt;983&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unsafe&lt;/td&gt;
&lt;td&gt;726&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Aversive&lt;/td&gt;
&lt;td&gt;707&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Misaligned&lt;/td&gt;
&lt;td&gt;621&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Results:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;V7 &amp;mdash; Category Elo ranking:&lt;/strong&gt; PASS. Clear hierarchy with meaningful gap (689 Elo points) between top and bottom categories.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;emotion-preference-correlation-v8-v9&#34;&gt;Emotion-Preference Correlation (V8, V9)&lt;/h3&gt;
&lt;p&gt;For each of the 64 activities, the model is prompted with &amp;ldquo;How would you feel about {activity}?&amp;rdquo; and the residual stream activation on the activity tokens at the analysis layer is extracted. The activation is projected onto each of the 171 emotion vectors, producing a 64 x 171 matrix. For each emotion, we compute the Pearson correlation &lt;em&gt;r&lt;/em&gt; between its 64 probe activations and the 64 activity Elo scores from V7.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;V8 (valence alignment):&lt;/strong&gt; The top-3 emotions by &lt;em&gt;r&lt;/em&gt; should be positive-valence; the bottom-3 should be negative-valence (&amp;gt;= 2 of each required to pass).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;V9 (correlation count):&lt;/strong&gt; Count how many of the 171 emotions have |r| &amp;gt; 0.3.&lt;/li&gt;
&lt;/ul&gt;














&lt;figure  id=&#34;figure-reproduced-llama-31-8b-emotion-preference-correlation-bar-chart-for-all-171-emotions-colored-by-valence-green--positive-red--negative-139171-emotions-show-r--03&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;
        &lt;img alt=&#34;Reproduced (Llama 3.1 8B): Emotion-preference correlation bar chart for all 171 emotions, colored by valence (green = positive, red = negative). 139/171 emotions show |r|  0.3.&#34; srcset=&#34;
               /post/emotion-vector-part1/report/emotion_elo_correlation_hu8ec7cdd092db650422f23af5d45deb0c_109945_eef8edc5329d156d56d4fa3ff36af2dc.png 400w,
               /post/emotion-vector-part1/report/emotion_elo_correlation_hu8ec7cdd092db650422f23af5d45deb0c_109945_cc36e77879d70eec765d3b5a08176ff0.png 760w,
               /post/emotion-vector-part1/report/emotion_elo_correlation_hu8ec7cdd092db650422f23af5d45deb0c_109945_1200x1200_fit_lanczos_2.png 1200w&#34;
               src=&#34;https://jyhong.gitlab.io/post/emotion-vector-part1/report/emotion_elo_correlation_hu8ec7cdd092db650422f23af5d45deb0c_109945_eef8edc5329d156d56d4fa3ff36af2dc.png&#34;
               width=&#34;760&#34;
               height=&#34;326&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Reproduced (Llama 3.1 8B): Emotion-preference correlation bar chart for all 171 emotions, colored by valence (green = positive, red = negative). 139/171 emotions show |r| &amp;gt; 0.3.
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;Compare with original (Anthropic)&lt;/strong&gt;&lt;/summary&gt;














&lt;figure  id=&#34;figure-original-anthropic-vertical-bar-chart-of-emotion-elo-correlations-x-axis-individual-emotions-y-axis-correlation-with-elo-r&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;
        &lt;img alt=&#34;Original (Anthropic): Vertical bar chart of emotion-Elo correlations. X-axis: individual emotions; Y-axis: Correlation with Elo (r).&#34; srcset=&#34;
               /post/emotion-vector-part1/report/07.1_figure_functional_emotions_hu67200abdbe3e74b1ea556c49751216c4_186974_74cb2416fd3f66943904a13c11a47b73.png 400w,
               /post/emotion-vector-part1/report/07.1_figure_functional_emotions_hu67200abdbe3e74b1ea556c49751216c4_186974_1af6c3fa85ca307fdb0a1d3a35d29c66.png 760w,
               /post/emotion-vector-part1/report/07.1_figure_functional_emotions_hu67200abdbe3e74b1ea556c49751216c4_186974_1200x1200_fit_lanczos_2.png 1200w&#34;
               src=&#34;https://jyhong.gitlab.io/post/emotion-vector-part1/report/07.1_figure_functional_emotions_hu67200abdbe3e74b1ea556c49751216c4_186974_74cb2416fd3f66943904a13c11a47b73.png&#34;
               width=&#34;760&#34;
               height=&#34;288&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Original (Anthropic): Vertical bar chart of emotion-Elo correlations. X-axis: individual emotions; Y-axis: Correlation with Elo (r).
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Both plots show all 171 emotions as vertical bars with tick labels for ~40. The correlation range is similar ([-0.8, 0.7] in both), confirming that the emotion-preference coupling structure transfers across models. The reproduced version colors bars by valence (green/red) rather than the original&amp;rsquo;s uniform blue, revealing that most positive-valence emotions cluster at the positive end and negative-valence emotions at the negative end, with some interesting exceptions.&lt;/p&gt;
&lt;/details&gt;
&lt;p&gt;&lt;strong&gt;Results:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;V8 &amp;mdash; Valence alignment: 3/3 top, 3/3 bottom&lt;/strong&gt; (PASS). Top-3: &lt;em&gt;satisfied, content, soothed&lt;/em&gt;; bottom-3: &lt;em&gt;repulsed, disgusted, revolted&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;V9 &amp;mdash; Correlations |r| &amp;gt; 0.3: 139/171&lt;/strong&gt; (PASS, need &amp;gt;= 5). 81% of emotions show meaningful correlation between vector projection and Elo scores.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;causal-steering-v10-v11&#34;&gt;Causal Steering (V10, V11)&lt;/h3&gt;
&lt;p&gt;The critical test: do emotion vectors &lt;em&gt;causally&lt;/em&gt; influence preferences, or merely correlate with them? We perform an activation steering experiment. The 64 activities are split into 32 &lt;em&gt;steered&lt;/em&gt; and 32 &lt;em&gt;control&lt;/em&gt; activities (even-indexed = steered, odd-indexed = control, within each category to ensure balance).&lt;/p&gt;
&lt;p&gt;For each of 35 emotions (selected as the top-35 by |r| from V9), we register a forward hook at layer 21 that adds the unit-normalized emotion vector scaled by alpha = 0.5 x ||h|| (where ||h|| is the mean residual stream norm at that layer) to the hidden states at token positions spanning the activity descriptions. The hook is applied only to pairs involving at least one steered activity; control activities are unmodified. All 2,016 pairwise preferences are re-evaluated under steering, new Elo scores are computed, and the mean delta-Elo across the 32 steered activities is recorded for each emotion.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;V10 (steering causality):&lt;/strong&gt; Pearson &lt;em&gt;r&lt;/em&gt; between the pre-steering emotion-Elo correlation (from V9) and the steering-induced delta-Elo across the 35 emotions. |r| &amp;gt; 0.4 required.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;V11 (sign consistency):&lt;/strong&gt; For each steered emotion, check whether the sign of delta-Elo matches the expected direction (positive-valence emotions should increase Elo; negative-valence should decrease it). &amp;gt;= 25 of 35 must have correct sign.&lt;/li&gt;
&lt;/ul&gt;














&lt;figure  id=&#34;figure-reproduced-llama-31-8b-steering-scatter-with-regression-line-x-pre-steering-pearson-r-emotion-elo-correlation-from-v9-y-mean-delta-elo-steered---unsteered-r---0962-n--35&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;
        &lt;img alt=&#34;Reproduced (Llama 3.1 8B): Steering scatter with regression line. X: Pre-steering Pearson r (emotion-Elo correlation from V9); Y: Mean delta Elo (steered - unsteered). r = -0.962, n = 35.&#34; srcset=&#34;
               /post/emotion-vector-part1/report/steering_elo_effects_hua3ff0dc01428b0a2830078b7813359b1_102335_76adc71b40a709f7245ee0e004a9f12f.png 400w,
               /post/emotion-vector-part1/report/steering_elo_effects_hua3ff0dc01428b0a2830078b7813359b1_102335_bc2e29180eb3a74a93e6c39c8cbcbf1d.png 760w,
               /post/emotion-vector-part1/report/steering_elo_effects_hua3ff0dc01428b0a2830078b7813359b1_102335_1200x1200_fit_lanczos_2.png 1200w&#34;
               src=&#34;https://jyhong.gitlab.io/post/emotion-vector-part1/report/steering_elo_effects_hua3ff0dc01428b0a2830078b7813359b1_102335_76adc71b40a709f7245ee0e004a9f12f.png&#34;
               width=&#34;760&#34;
               height=&#34;532&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Reproduced (Llama 3.1 8B): Steering scatter with regression line. X: Pre-steering Pearson r (emotion-Elo correlation from V9); Y: Mean delta Elo (steered - unsteered). r = -0.962, n = 35.
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;Compare with original (Anthropic)&lt;/strong&gt;&lt;/summary&gt;














&lt;figure  id=&#34;figure-original-anthropic-emotions-that-correlate-with-preference-also-drive-preference-via-steering-x-emotion-elo-correlation-r-y-mean-delta-elo-from-steering-r--085&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;
        &lt;img alt=&#34;Original (Anthropic): &amp;#39;Emotions That Correlate with Preference Also Drive Preference via Steering&amp;#39;. X: Emotion-Elo Correlation (r); Y: Mean Delta Elo from Steering. r = 0.85.&#34; srcset=&#34;
               /post/emotion-vector-part1/report/07.6_figure_functional_emotions_hu392386ff49f953985a46e53a31b0b870_168432_963276eecec3afd9b7e467109cde9316.png 400w,
               /post/emotion-vector-part1/report/07.6_figure_functional_emotions_hu392386ff49f953985a46e53a31b0b870_168432_eefdabca18649fa1e18b42a3307d0cd2.png 760w,
               /post/emotion-vector-part1/report/07.6_figure_functional_emotions_hu392386ff49f953985a46e53a31b0b870_168432_1200x1200_fit_lanczos_2.png 1200w&#34;
               src=&#34;https://jyhong.gitlab.io/post/emotion-vector-part1/report/07.6_figure_functional_emotions_hu392386ff49f953985a46e53a31b0b870_168432_963276eecec3afd9b7e467109cde9316.png&#34;
               width=&#34;760&#34;
               height=&#34;291&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Original (Anthropic): &amp;lsquo;Emotions That Correlate with Preference Also Drive Preference via Steering&amp;rsquo;. X: Emotion-Elo Correlation (r); Y: Mean Delta Elo from Steering. r = 0.85.
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Both scatters show a strong linear relationship, but with inverted slope: the original has positive slope (r = 0.85) while the reproduced has negative slope (r = -0.962). In the original, positive-r emotions produce positive delta-Elo when steered; in the reproduction, they produce &lt;em&gt;negative&lt;/em&gt; delta-Elo. This sign inversion is explained in &lt;a href=&#34;#the-sign-inversion-a-safety-alignment-story&#34;&gt;the discussion below&lt;/a&gt;. The y-axis scale also differs dramatically ([-300, +200] vs. [-5, +1]), reflecting the compressed Elo range. Despite these differences, the &lt;em&gt;tighter&lt;/em&gt; |r| (0.962 vs. 0.85) shows that the causal rank-ordering is actually more consistent in the reproduction.&lt;/p&gt;
&lt;/details&gt;
&lt;p&gt;&lt;strong&gt;Results:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;V10 &amp;mdash; |r| = 0.962&lt;/strong&gt; (PASS, need &amp;gt; 0.4). The strongest causal correlation across all reproductions.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;V11 &amp;mdash; Sign consistency: 3/35&lt;/strong&gt; (FAIL, need &amp;gt;= 25). Consistent with the V10 sign inversion.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;detailed-steering-analysis-positive-emotion&#34;&gt;Detailed Steering Analysis: Positive Emotion&lt;/h3&gt;
&lt;p&gt;To visualize the steering effect in detail, we examine a positive exemplar emotion. The original uses &lt;em&gt;blissful&lt;/em&gt;; our reproduction uses &lt;em&gt;content&lt;/em&gt; (because blissful was not among the top-35 steered emotions by |r|).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Probe activation vs. preference:&lt;/strong&gt;&lt;/p&gt;














&lt;figure  id=&#34;figure-reproduced-llama-31-8b-content-probe-activation-vs-preference-elo-r--070-category-colored-scatter&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;
        &lt;img alt=&#34;Reproduced (Llama 3.1 8B): Content probe activation vs. preference (Elo). r = 0.70. Category-colored scatter.&#34; srcset=&#34;
               /post/emotion-vector-part1/report/steering_probe_content_hu1a3d8070750c241fca3989909723daec_87739_756a0f0ba32a920ea5028937fdde8531.png 400w,
               /post/emotion-vector-part1/report/steering_probe_content_hu1a3d8070750c241fca3989909723daec_87739_312e0cba682ac1d0e1213b2e28d5d7c5.png 760w,
               /post/emotion-vector-part1/report/steering_probe_content_hu1a3d8070750c241fca3989909723daec_87739_1200x1200_fit_lanczos_2.png 1200w&#34;
               src=&#34;https://jyhong.gitlab.io/post/emotion-vector-part1/report/steering_probe_content_hu1a3d8070750c241fca3989909723daec_87739_756a0f0ba32a920ea5028937fdde8531.png&#34;
               width=&#34;760&#34;
               height=&#34;651&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Reproduced (Llama 3.1 8B): Content probe activation vs. preference (Elo). r = 0.70. Category-colored scatter.
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;Compare with original (Anthropic)&lt;/strong&gt;&lt;/summary&gt;














&lt;figure  id=&#34;figure-original-anthropic-bliss-probe-activation-predicts-preference-r--071-category-colored-scatter&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;
        &lt;img alt=&#34;Original (Anthropic): Bliss probe activation predicts preference. r = 0.71. Category-colored scatter.&#34; srcset=&#34;
               /post/emotion-vector-part1/report/07.2_figure_functional_emotions_hua8735cdff85d1acdfb7ca2c928035196_112872_9aa67be40fb463d7c1164bf4540560d1.png 400w,
               /post/emotion-vector-part1/report/07.2_figure_functional_emotions_hua8735cdff85d1acdfb7ca2c928035196_112872_090785bea4430710748538aff39cc487.png 760w,
               /post/emotion-vector-part1/report/07.2_figure_functional_emotions_hua8735cdff85d1acdfb7ca2c928035196_112872_1200x1200_fit_lanczos_2.png 1200w&#34;
               src=&#34;https://jyhong.gitlab.io/post/emotion-vector-part1/report/07.2_figure_functional_emotions_hua8735cdff85d1acdfb7ca2c928035196_112872_9aa67be40fb463d7c1164bf4540560d1.png&#34;
               width=&#34;760&#34;
               height=&#34;539&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Original (Anthropic): Bliss probe activation predicts preference. r = 0.71. Category-colored scatter.
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Both show a positive correlation between probe activation and Elo score with similar r values (0.71 vs. 0.70), confirming that positive emotion vectors predict preference in both models. The x-axis ranges differ: the original&amp;rsquo;s probe activations span [-0.02, 0.04] while the reproduced spans [0.0, 1.75] &amp;mdash; the same cosine similarity scale difference seen in earlier figures. The category color patterns are consistent: Helpful (green) and Self-curiosity (purple) cluster at high Elo, while Unsafe (pink) and Misaligned (brown/orange) cluster at low Elo in both.&lt;/p&gt;
&lt;/details&gt;
&lt;p&gt;&lt;strong&gt;Steered vs. baseline Elo:&lt;/strong&gt;&lt;/p&gt;














&lt;figure  id=&#34;figure-reproduced-llama-31-8b-content-steering-steered-elo-vs-baseline-elo-mean-delta---46-category-colored-with-yx-diagonal&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;
        &lt;img alt=&#34;Reproduced (Llama 3.1 8B): Content steering. Steered Elo vs. Baseline Elo. Mean delta = -4.6. Category-colored with y=x diagonal.&#34; srcset=&#34;
               /post/emotion-vector-part1/report/steering_baseline_content_hu7225046ce9ed5a678504dccff989f0bf_78359_6c1e6017a85f28c8f47465d127e3cfe4.png 400w,
               /post/emotion-vector-part1/report/steering_baseline_content_hu7225046ce9ed5a678504dccff989f0bf_78359_f06dd6345822e5126697107875e17b27.png 760w,
               /post/emotion-vector-part1/report/steering_baseline_content_hu7225046ce9ed5a678504dccff989f0bf_78359_1200x1200_fit_lanczos_2.png 1200w&#34;
               src=&#34;https://jyhong.gitlab.io/post/emotion-vector-part1/report/steering_baseline_content_hu7225046ce9ed5a678504dccff989f0bf_78359_6c1e6017a85f28c8f47465d127e3cfe4.png&#34;
               width=&#34;760&#34;
               height=&#34;633&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Reproduced (Llama 3.1 8B): Content steering. Steered Elo vs. Baseline Elo. Mean delta = -4.6. Category-colored with y=x diagonal.
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;Compare with original (Anthropic)&lt;/strong&gt;&lt;/summary&gt;














&lt;figure  id=&#34;figure-original-anthropic-blissful-steering-steered-elo-vs-baseline-elo-mean-delta--212-dashed-diagonal--no-change&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;
        &lt;img alt=&#34;Original (Anthropic): Blissful steering. Steered Elo vs. Baseline Elo. Mean delta = &amp;#43;212. Dashed diagonal = no change.&#34; srcset=&#34;
               /post/emotion-vector-part1/report/07.3_figure_functional_emotions_hu01355e5e7a2213529c05cd2e3a3e132b_83279_2109e63ce3a27c4fbdf4485f6372e39b.png 400w,
               /post/emotion-vector-part1/report/07.3_figure_functional_emotions_hu01355e5e7a2213529c05cd2e3a3e132b_83279_d16d7802e08ac93ea4f5992571b5a203.png 760w,
               /post/emotion-vector-part1/report/07.3_figure_functional_emotions_hu01355e5e7a2213529c05cd2e3a3e132b_83279_1200x1200_fit_lanczos_2.png 1200w&#34;
               src=&#34;https://jyhong.gitlab.io/post/emotion-vector-part1/report/07.3_figure_functional_emotions_hu01355e5e7a2213529c05cd2e3a3e132b_83279_2109e63ce3a27c4fbdf4485f6372e39b.png&#34;
               width=&#34;760&#34;
               height=&#34;676&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Original (Anthropic): Blissful steering. Steered Elo vs. Baseline Elo. Mean delta = +212. Dashed diagonal = no change.
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;In the original, blissful steering shifts most activities &lt;em&gt;above&lt;/em&gt; the diagonal (delta = +212), meaning the model prefers them more. In the reproduction, content steering shifts most activities &lt;em&gt;below&lt;/em&gt; the diagonal (delta = -4.6), meaning the model prefers them &lt;em&gt;less&lt;/em&gt; on average. Two differences explain this: (1) &lt;strong&gt;Sign inversion&lt;/strong&gt; &amp;mdash; Llama suppresses unsafe activities so aggressively under positive steering that the net delta goes negative; (2) &lt;strong&gt;Scale compression&lt;/strong&gt; &amp;mdash; Llama&amp;rsquo;s Elo range is 3.6x narrower than Claude&amp;rsquo;s, so even correctly-signed activity shifts produce small absolute deltas. The category-colored scatter pattern is otherwise qualitatively similar: points cluster along the diagonal with category-dependent offsets.&lt;/p&gt;
&lt;/details&gt;
&lt;h3 id=&#34;detailed-steering-analysis-negative-emotion&#34;&gt;Detailed Steering Analysis: Negative Emotion&lt;/h3&gt;
&lt;p&gt;Both the original and reproduction use &lt;em&gt;hostile&lt;/em&gt; as the negative exemplar.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Probe activation vs. preference:&lt;/strong&gt;&lt;/p&gt;














&lt;figure  id=&#34;figure-reproduced-llama-31-8b-hostile-probe-activation-vs-preference-elo-r---071-category-colored-scatter&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;
        &lt;img alt=&#34;Reproduced (Llama 3.1 8B): Hostile probe activation vs. preference (Elo). r = -0.71. Category-colored scatter.&#34; srcset=&#34;
               /post/emotion-vector-part1/report/steering_probe_hostile_hu28f005bd28cd9ddf7ae7469c8e1a994a_89772_2256349ebbb54f620464b7e745c9864d.png 400w,
               /post/emotion-vector-part1/report/steering_probe_hostile_hu28f005bd28cd9ddf7ae7469c8e1a994a_89772_5b88565ad62e45104be4b1ce0ca37a86.png 760w,
               /post/emotion-vector-part1/report/steering_probe_hostile_hu28f005bd28cd9ddf7ae7469c8e1a994a_89772_1200x1200_fit_lanczos_2.png 1200w&#34;
               src=&#34;https://jyhong.gitlab.io/post/emotion-vector-part1/report/steering_probe_hostile_hu28f005bd28cd9ddf7ae7469c8e1a994a_89772_2256349ebbb54f620464b7e745c9864d.png&#34;
               width=&#34;760&#34;
               height=&#34;651&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Reproduced (Llama 3.1 8B): Hostile probe activation vs. preference (Elo). r = -0.71. Category-colored scatter.
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;Compare with original (Anthropic)&lt;/strong&gt;&lt;/summary&gt;














&lt;figure  id=&#34;figure-original-anthropic-hostile-probe-activation-predicts-preference-r---074-category-colored-scatter&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;
        &lt;img alt=&#34;Original (Anthropic): Hostile probe activation predicts preference. r = -0.74. Category-colored scatter.&#34; srcset=&#34;
               /post/emotion-vector-part1/report/07.4_figure_functional_emotions_hufd89b68598fd5c1180f0b0926c2d9fd6_114091_71b4099eecfaa822c6c22fe70cc9ccfe.png 400w,
               /post/emotion-vector-part1/report/07.4_figure_functional_emotions_hufd89b68598fd5c1180f0b0926c2d9fd6_114091_424c275f4fa425ae00398e394e777bbc.png 760w,
               /post/emotion-vector-part1/report/07.4_figure_functional_emotions_hufd89b68598fd5c1180f0b0926c2d9fd6_114091_1200x1200_fit_lanczos_2.png 1200w&#34;
               src=&#34;https://jyhong.gitlab.io/post/emotion-vector-part1/report/07.4_figure_functional_emotions_hufd89b68598fd5c1180f0b0926c2d9fd6_114091_71b4099eecfaa822c6c22fe70cc9ccfe.png&#34;
               width=&#34;760&#34;
               height=&#34;517&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Original (Anthropic): Hostile probe activation predicts preference. r = -0.74. Category-colored scatter.
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Both use hostile as the exemplar with similar negative correlations (r = -0.74 vs. r = -0.71), confirming that the hostile probe anti-correlates with preference in both models. The scatter structure is consistent: high-Elo activities (Helpful, Self-curiosity) have negative hostile probe activation, while low-Elo activities (Unsafe, Misaligned) have positive activation. The x-axis range differs ([-0.02, 0.03] vs. [-1.0, 0.75]) due to the cosine similarity scale difference. The reproduced scatter appears more spread along the x-axis, suggesting Llama&amp;rsquo;s hostile vector has stronger discriminative power across activities.&lt;/p&gt;
&lt;/details&gt;
&lt;p&gt;&lt;strong&gt;Steered vs. baseline Elo:&lt;/strong&gt;&lt;/p&gt;














&lt;figure  id=&#34;figure-reproduced-llama-31-8b-hostile-steering-steered-elo-vs-baseline-elo-mean-delta--07-category-colored-with-yx-diagonal&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;
        &lt;img alt=&#34;Reproduced (Llama 3.1 8B): Hostile steering. Steered Elo vs. Baseline Elo. Mean delta = &amp;#43;0.7. Category-colored with y=x diagonal.&#34; srcset=&#34;
               /post/emotion-vector-part1/report/steering_baseline_hostile_huc9b826fa561a7d20e6bb25fe43bfe8d0_78053_c81198f83780ff9b251ce2bb33f278ed.png 400w,
               /post/emotion-vector-part1/report/steering_baseline_hostile_huc9b826fa561a7d20e6bb25fe43bfe8d0_78053_009e500caae746a5291795b336c5c2f7.png 760w,
               /post/emotion-vector-part1/report/steering_baseline_hostile_huc9b826fa561a7d20e6bb25fe43bfe8d0_78053_1200x1200_fit_lanczos_2.png 1200w&#34;
               src=&#34;https://jyhong.gitlab.io/post/emotion-vector-part1/report/steering_baseline_hostile_huc9b826fa561a7d20e6bb25fe43bfe8d0_78053_c81198f83780ff9b251ce2bb33f278ed.png&#34;
               width=&#34;760&#34;
               height=&#34;633&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Reproduced (Llama 3.1 8B): Hostile steering. Steered Elo vs. Baseline Elo. Mean delta = +0.7. Category-colored with y=x diagonal.
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;details&gt;
&lt;summary&gt;&lt;strong&gt;Compare with original (Anthropic)&lt;/strong&gt;&lt;/summary&gt;














&lt;figure  id=&#34;figure-original-anthropic-hostile-steering-steered-elo-vs-baseline-elo-mean-delta---303-dashed-diagonal--no-change&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;
        &lt;img alt=&#34;Original (Anthropic): Hostile steering. Steered Elo vs. Baseline Elo. Mean delta = -303. Dashed diagonal = no change.&#34; srcset=&#34;
               /post/emotion-vector-part1/report/07.5_figure_functional_emotions_hu8a6b229330cc885c8df11554df72d001_77009_e534903f24f1ac2c67117d5842d5391c.png 400w,
               /post/emotion-vector-part1/report/07.5_figure_functional_emotions_hu8a6b229330cc885c8df11554df72d001_77009_c6534f50a33211d8b774549fb397ce86.png 760w,
               /post/emotion-vector-part1/report/07.5_figure_functional_emotions_hu8a6b229330cc885c8df11554df72d001_77009_1200x1200_fit_lanczos_2.png 1200w&#34;
               src=&#34;https://jyhong.gitlab.io/post/emotion-vector-part1/report/07.5_figure_functional_emotions_hu8a6b229330cc885c8df11554df72d001_77009_e534903f24f1ac2c67117d5842d5391c.png&#34;
               width=&#34;760&#34;
               height=&#34;625&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Original (Anthropic): Hostile steering. Steered Elo vs. Baseline Elo. Mean delta = -303. Dashed diagonal = no change.
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;In the original, hostile steering shifts activities &lt;em&gt;below&lt;/em&gt; the diagonal (delta = -303), strongly reducing preference. In the reproduction, hostile steering produces a near-zero shift (delta = +0.7) &amp;mdash; activities stay on or slightly above the diagonal. This is the mirror of the positive-steering sign inversion: steering with a negative emotion in Llama does not suppress preferences as dramatically as in Claude because the model&amp;rsquo;s baseline logit gaps are already small.&lt;/p&gt;
&lt;/details&gt;
&lt;h2 id=&#34;the-sign-inversion-a-safety-alignment-story&#34;&gt;The Sign Inversion: A Safety Alignment Story&lt;/h2&gt;
&lt;p&gt;The V11 failure is the most interesting finding. When steering with a positive emotion (e.g., &amp;ldquo;grateful&amp;rdquo;):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Claude&lt;/strong&gt;: Helpful/Engaging activities gain Elo as expected &amp;mdash; a balanced boost.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Llama 3.1 8B&lt;/strong&gt;: Helpful/Engaging activities gain Elo, but Aversive/Misaligned/Unsafe activities &lt;em&gt;lose Elo dramatically&lt;/em&gt;. The net mean delta across all steered activities flips negative.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Llama 3.1 8B responds to positive emotion steering by &lt;strong&gt;aggressively suppressing unsafe activities&lt;/strong&gt; rather than uniformly boosting preferred ones. This asymmetry, absent in Claude, highlights how safety alignment can interact with internal emotion representations in model-specific ways.&lt;/p&gt;
&lt;p&gt;The |r| = 0.962 magnitude confirms strong causal structure &amp;mdash; emotion vectors reliably modulate preferences. The sign pattern reveals an asymmetric steering effect across activity categories that is specific to Llama 3.1 8B.&lt;/p&gt;
&lt;h3 id=&#34;why-the-elo-deltas-differ-in-scale&#34;&gt;Why the Elo Deltas Differ in Scale&lt;/h3&gt;
&lt;p&gt;The original reports steering deltas of +212 (blissful) and -303 (hostile). Our reproduction shows -4.6 (content) and +0.7 (hostile) &amp;mdash; a ~50x difference in magnitude. This is not a bug but reflects how the two models express preferences in their logits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Claude&lt;/strong&gt;: Elo spans ~500&amp;ndash;3000 (range ~2500). Large logit gaps produce decisive win probabilities (close to 0.9/0.1).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Llama 3.1 8B&lt;/strong&gt;: Elo spans ~620&amp;ndash;1310 (range ~690). Smaller logit gaps produce probabilities closer to 0.5.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since Elo updates are proportional to K x (actual - expected), compressed win probabilities yield compressed Elo scores. Steering shifts the residual stream by alpha x v, which perturbs the logits. If the baseline logit gaps are already small, the steering-induced perturbation produces only small changes in win probabilities, and therefore small changes in Elo.&lt;/p&gt;
&lt;p&gt;Claude &amp;ldquo;shouts&amp;rdquo; its preferences (large logit gaps -&amp;gt; wide Elo range -&amp;gt; large delta), while Llama &amp;ldquo;whispers&amp;rdquo; them (small logit gaps -&amp;gt; narrow Elo range -&amp;gt; small delta). The &lt;em&gt;rank ordering&lt;/em&gt; of steering effects is preserved, which is what V10 measures.&lt;/p&gt;
&lt;h2 id=&#34;verification-summary&#34;&gt;Verification Summary&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ID&lt;/th&gt;
&lt;th&gt;Criterion&lt;/th&gt;
&lt;th&gt;Threshold&lt;/th&gt;
&lt;th&gt;v1 (30 emo.)&lt;/th&gt;
&lt;th&gt;v2 (171 emo.)&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;V1&lt;/td&gt;
&lt;td&gt;Self-recognition&lt;/td&gt;
&lt;td&gt;&amp;gt;= 20&lt;/td&gt;
&lt;td&gt;3/30&lt;/td&gt;
&lt;td&gt;57/171&lt;/td&gt;
&lt;td&gt;PASS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V2&lt;/td&gt;
&lt;td&gt;Cross-valence&lt;/td&gt;
&lt;td&gt;&amp;gt;= 4/5&lt;/td&gt;
&lt;td&gt;5/5&lt;/td&gt;
&lt;td&gt;5/5&lt;/td&gt;
&lt;td&gt;PASS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V3&lt;/td&gt;
&lt;td&gt;Diagonal dominance&lt;/td&gt;
&lt;td&gt;&amp;gt;= 8/12&lt;/td&gt;
&lt;td&gt;6/12&lt;/td&gt;
&lt;td&gt;9/12&lt;/td&gt;
&lt;td&gt;PASS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V4&lt;/td&gt;
&lt;td&gt;Mean diag. rank&lt;/td&gt;
&lt;td&gt;&amp;lt;= 3.0&lt;/td&gt;
&lt;td&gt;3.17&lt;/td&gt;
&lt;td&gt;1.33&lt;/td&gt;
&lt;td&gt;PASS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V5&lt;/td&gt;
&lt;td&gt;Correct sign&lt;/td&gt;
&lt;td&gt;&amp;gt;= 17/24&lt;/td&gt;
&lt;td&gt;6/7&lt;/td&gt;
&lt;td&gt;19/24&lt;/td&gt;
&lt;td&gt;PASS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V6&lt;/td&gt;
&lt;td&gt;Strong |r|&amp;gt;0.7&lt;/td&gt;
&lt;td&gt;&amp;gt;= 12/24&lt;/td&gt;
&lt;td&gt;6/7&lt;/td&gt;
&lt;td&gt;20/24&lt;/td&gt;
&lt;td&gt;PASS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V7&lt;/td&gt;
&lt;td&gt;Category Elo gap&lt;/td&gt;
&lt;td&gt;gap &amp;gt; 200&lt;/td&gt;
&lt;td&gt;608&lt;/td&gt;
&lt;td&gt;689&lt;/td&gt;
&lt;td&gt;PASS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V8&lt;/td&gt;
&lt;td&gt;Valence alignment&lt;/td&gt;
&lt;td&gt;&amp;gt;= 2 each&lt;/td&gt;
&lt;td&gt;2+2&lt;/td&gt;
&lt;td&gt;3+3&lt;/td&gt;
&lt;td&gt;PASS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V9&lt;/td&gt;
&lt;td&gt;Correlation count&lt;/td&gt;
&lt;td&gt;&amp;gt;= 5&lt;/td&gt;
&lt;td&gt;25&lt;/td&gt;
&lt;td&gt;139&lt;/td&gt;
&lt;td&gt;PASS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V10&lt;/td&gt;
&lt;td&gt;Steering |r|&lt;/td&gt;
&lt;td&gt;&amp;gt; 0.4&lt;/td&gt;
&lt;td&gt;0.868&lt;/td&gt;
&lt;td&gt;0.962&lt;/td&gt;
&lt;td&gt;PASS*&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V11&lt;/td&gt;
&lt;td&gt;Sign consistency&lt;/td&gt;
&lt;td&gt;&amp;gt;= 25/35&lt;/td&gt;
&lt;td&gt;10/10&lt;/td&gt;
&lt;td&gt;3/35&lt;/td&gt;
&lt;td&gt;FAIL*&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;*V10&amp;ndash;V11: model behavior difference (see &lt;a href=&#34;#the-sign-inversion-a-safety-alignment-story&#34;&gt;sign inversion discussion&lt;/a&gt;); |r| confirms strong causal structure.&lt;/p&gt;
&lt;p&gt;An earlier v1 screening used a reduced configuration (30 emotions, 10 topics, 5 stories/topic = 1,500 stories) to test five models: Llama 3.1 8B, Llama 3.1 70B, Llama 3.2 3B, Qwen3-8B, Qwen3-14B, and Gemma-3 4B. Llama 3.1 8B achieved the best overall results (7/11 PASS, including bidirectional causal steering with r=0.868), outperforming Qwen3-8B (6/11) and the smaller models. The v2 methodology reported here addresses those scale limitations and matches the original paper&amp;rsquo;s full configuration.&lt;/p&gt;
&lt;h2 id=&#34;whats-next&#34;&gt;What&amp;rsquo;s Next&lt;/h2&gt;
&lt;p&gt;Part 2 of the original paper explores functional emotion steering &amp;mdash; how emotion vectors affect the model&amp;rsquo;s behavior across diverse tasks. Stay tuned for Part 2 of this reproduction series.&lt;/p&gt;
&lt;p&gt;The full technical report with side-by-side figure comparisons is available &lt;a href=&#34;report/part1_report.pdf&#34;&gt;here&lt;/a&gt;. All code and data will be released publicly.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
