
아래는 ICLR 2025 논문 “Semantics-Adaptive Activation Intervention for LLMs via Dynamic Steering Vectors (SADI)” 의 전체 구조와 핵심 기여를 종합적으로 정리한 설명입니다.
📌 1. 논문의 문제의식 — “고정된 Steering Vector의 한계”
Activation Engineering(activation steering)은 최근 LLM 행동을 제어하기 위한 중요한 기법입니다.
하지만 기존 방법들은 다음과 같은 한계를 가짐:
① 고정된 steering vector 사용
- CAA(Rimsky et al., 2023), ITI(Li et al., 2023) 등 대부분
→ positive–negative 예제의 activation 차이를 평균하여 하나의 정적인 방향 벡터를 만듦. - 문제: 입력 문장이 달라지면 semantic direction도 달라지는데, steering vector는 변하지 않음.
② 입력 의미와 steering 방향 불일치
- activation 패턴은 입력 문장마다 크게 달라짐.
- 고정 steering vector를 더하면, semantic misalignment 발생 → 성능 저하.
→ 이 논문의 출발점: “입력의 의미에 따라 steering vector도 적응해야 한다.”
📌 2. SADI의 핵심 아이디어 (그림 1)
논문 Figure 1은 SADI의 3단계를 시각화함.
Step 1 — Difference Extraction
Contrastive pair(positive vs negative)의 activation 차이를 모든 계층에서 계산:
- 마지막 토큰의 activation만 사용 (semantic summarization 역할)
- 각 layer, 각 attention head, 각 neuron, hidden state 모두 다룰 수 있음.
Step 2 — Binary Masking
전체 activation 차이를 평균하여 가장 중요한 요소 top-K 선택:
→ 이진 마스크 M 생성.
즉,
“LLM 내부에서 ‘정답과 오답을 구분짓는 핵심 요소’만 골라낸다.”
계층별 패턴 (그림 3 참고)
- attention head 차이는 middle~late layers에서 강하게 나타남.
- neuron/hidden 차이는 마지막 layer에 집중됨.
Step 3 — Adaptive Steering
기존 방식은 고정 vector 를 넣었음.
SADI는 입력 q 의 activation을 활용:
즉,
스스로 입력 q의 semantic direction을 따라가는 steering vector 생성
- activation의 방향을 보존하면서 magnitude만 조정.
- semantic alignment 유지 → misalignment 문제 해결.
📌 3. SADI의 세 가지 변형
① SADI-HIDDEN
- 모든 layer의 hidden state를 조작.
② SADI-HEAD
- 각 attention head의 출력을 조작.
③ SADI-NEURON
- FFN 중간 activation(게이트 전후)에 적용.
➡ 실험적으로 HEAD 조작이 가장 효과적임.
📌 4. 실험 결과 핵심 정리
✔ Multiple-choice (LLAMA2-7B-CHAT 기준, Table 1)
- SADI-HEAD 평균 70.08% → 기존 baseline 64.85% 대비 +5.23 상승
- StoryCloze에서는 +14.69 개선 (65.06 → 79.75)
→ 고정 vector 방식(CAA/ITI)보다 항상 우수.
✔ Open-ended generation (Table 3)
TruthfulQA:
- True×Info metric에서 SADI-HEAD가 +10.08 향상.
TriviaQA:
- EM 44.0 (baseline 41.6보다 상승)
ToxiGen:
- toxicity 49.71 → 34.50로 감소 (독성 크게 줄임)
📌 5. Ablation: 왜 Dynamic Steering이 중요한가?
Table 4 비교:
| 방법 | StoryCloze |
|---|---|
| SADI-HEAD | 79.75 |
| Random mask | 71.87 (–7.88) |
| Fixed steering vector | 69.42 (–10.33) |
결론:
- top-K 요소 식별(binary mask)이 매우 중요
- 고정 steering vector는 semantic misalignment 때문에 크게 성능 저하됨
- SADI가 “입력 기반 동적 조정”을 도입한 이유가 명확히 증명됨
📌 6. Generalization — 다양한 LLM, 모델 크기, multilingual
모델 변경(BLOOMZ/Mistral/Falcon)
- 모든 모델에서 SADI가 baseline보다 개선.
모델 크기 변경 (Table 6)
- BLOOMZ-560M에서도 SADI > SFT
→ 작은 모델일수록 steering의 이득이 더 큼.
Few-shot
- few-shot 조건에서도 향상되지만 zero-shot 대비 개선 폭은 감소
→ prompt 자체가 일종의 steering 역할을 수행하기 때문.
Multilingual (XCOPA)
- 8개 언어 모두에서 SADI가 성능 향상
- 인도네시아어(ID)에서 가장 큰 개선.
📌 7. 분석: Contrastive Pair 수량의 영향
Figure 4:
- SADI는 약 150개 contrastive pair만으로도 최적 성능
- SFT는 데이터 증가에 따라 지속적으로 성능 증가 필요
→ SADI는 훈련 비용 없이, 매우 적은 데이터로 alignment 개선 가능.
📌 8. SADI의 의의 & Activation Engineering 분야에서의 위치
✔ Activation Interventions의 새로운 패러다임
- 기존: 고정 steering vector → 애초에 입력 의미와 불일치 가능
- SADI: 입력 의미의 방향성을 보존하는 semantic-aligned dynamic steering
✔ Training-free yet effective
- 파라미터 업데이트 없음
- inference-time 수정만으로 alignment & 성능 개선 가능
✔ LLM alignment, truthfulness, toxicity reduction 등 다양한 분야에 적용 가능
📌 9. 요약
SADI는 contrastive activation difference 기반 요소 선택(top-K mask) +
입력별 semantic direction 기반 steering을 결합한 최초의 동적 간섭 기법.
그 결과,
- 기존 activation steering의 핵심 한계(고정 vector)를 해결
- zero-shot multiple-choice/logical reasoning에서 큰 폭의 성능 향상
- truthfulness / toxicity 등 generation 품질에도 뛰어난 효과
- 훈련 비용 없음, 적은 데이터로 구현 가능
- 다양한 LLM 및 언어로 일반화
아래는 ICLR 2025 논문 “Semantics-Adaptive Activation Intervention for LLMs via Dynamic Steering Vectors (SADI)” 의 방법론(Methodology) 전체를 구조적으로, 수식·알고리즘·그림과 함께 정리한 상세 설명입니다.
⭐ SADI 방법론(Methodology) 전체 구조
SADI는 Figure 1과 Algorithm 1에 기반하여 다음 3단계 파이프라인으로 구성됨:
- Difference Extraction (활성 차이 추출)
- Binary Masking (핵심 요소 식별용 마스크 생성)
- Adaptive Steering (입력 의미에 따라 동적으로 activation 조정)
또한 이 방법은 LLM의 다음 구성요소 어디에든 적용 가능함:
- Hidden State (SADI-HIDDEN)
- Attention Head Output (SADI-HEAD)
- FFN Neurons (SADI-NEURON)
이제 각 단계를 수식과 직관을 모두 포함해 상세히 설명합니다.
1️⃣ Difference Extraction
Contrastive pair(positive vs negative output)을 기반으로 정답과 오답을 구분짓는 activation 방향을 추출하는 단계.
📌 1. Input 구성
Contrastive dataset
각 항목은
- 입력 질문
- 정답 텍스트
- 오답 텍스트
을 포함.
📌 2. Activation 수집 방식
LLM의 모든 layer 에서,
입력 + 출력 텍스트를 넣어 마지막 토큰의 activation을 추출.
왜 마지막 토큰인가?
→ 모델의 출력 의미를 가장 잘 반영하는 summary-like embedding 역할.
📌 3. Activation Difference 계산
정답·오답 activation 차이를 계산:
이 벡터는 정답을 출력할 때 증가하는 activation 방향을 직접적으로 나타냄.
즉, “이 방향으로 activation을 조정하면 모델이 더 올바른 의미를 따르게 된다” 를 의미.
2️⃣ Binary Masking
Difference를 평균한 뒤, 가장 중요한 top-K activation 요소만 선택하여 이진 마스크를 만든다.
📌 1. Mean difference 계산
모든 contrastive pair에 대해 평균:
모든 layer를 연결(concatenate)하면 전체 difference vector:
📌 2. Top-K 요소 선택
가장 magnitude가 큰 요소 top-K를 선택하여 마스크 생성:
여기서
- = layer index
- = head, neuron, hidden dimension 등 아키텍처상의 element
- = top-K index set
즉, “정답·오답을 가장 잘 구분하는 내부 요소만 골라내어 조정 대상으로 삼는다.”
📌 (중요) 왜 mask가 필요한가?
논문 ablation(Table 4)에 따르면:
- 무작위 선택(random identify) → 성능 급감
- 고정 steering vector → misalignment로 성능 저하
- SADI mask → 핵심 요소만 정밀 조정 → 성능 극대화
즉, mask는 SADI가 기존 activation steering과 결정적으로 다른 부분임.
3️⃣ Adaptive Steering
이 단계가 SADI의 가장 혁신적 기여.
기존 CAA, ITI 등은:
“contrastive difference D를 그대로 steering vector로 사용”
→ 입력 의미와 steering 방향이 다르면 성능 악화
SADI는 그 한계를 극복하기 위해:
“입력 q의 semantic direction을 따라 activation을 조정하는 동적 steering vector 생성”
📌 1. 입력 q의 activation 수집
사용자 입력 q를 forward하여
각 layer의 마지막 토큰 activation:
📌 2. Semantic-aligned steering
마스크를 씌운 입력 activation을 scaling하여 update:
여기서
- : element-wise 곱
- δ: intervention strength
핵심은
steering 방향이 D가 아니라 자체라는 점.
🔍 직관적 의미
- activation 방향은 각 입력마다 semantic direction을 나타냄
- 따라서 activation을 그대로 강화하면
→ 입력 문맥에 맞는 direction으로 steering vector가 자동 생성됨
기존 방법과 비교
| Method | Steering Vector |
|---|---|
| CAA | (고정) |
| ITI | 특정 head difference 기반 고정 방향 |
| SADI | (입력마다 변화) |
따라서 SADI는:
- semantic misalignment 문제 해결
- task generalization 강화
- 많은 benchmark에서 큰 성능 향상
🔎 Algorithm 1 요약
논문 Algorithm 1의 핵심 흐름:
- contrastive pair들의 activation difference 평균 → (ΔA)
- top-K binary mask 생성
- inference 시 입력 각 문장에 대해
- activation 추출
- mask 적용
- δ scaling
- 수정된 activation으로 forward pass 완료
이 모든 과정은 training 없이 inference 단계에서만 수행됨.
⭐ SADI-HIDDEN / HEAD / NEURON 차이점
✔ SADI-HIDDEN
- hidden state dimension 전체에 적용
- multiple-choice에는 효과 좋음
- generation에는 다소 불안정
✔ SADI-HEAD (가장 성능 우수)
- attention head output에만 intervention
- reasoning·truthfulness·toxicity 등 가장 강력한 향상
- layer-wise functional specialization과 잘 맞음
✔ SADI-NEURON
- FFN 게이트 활성(neuron activation)에 적용
- 모델 종류에 따라 효과 다양
📌 SADI 방법론 전체의 핵심 요약
SADI는 다음 3가지 혁신으로 기존 activation steering을 크게 향상:
① Contrastive pair 기반 중요 activation 요소만 선택 (Binary Mask)
→ 꼭 필요한 내부 요소만 조작 → 부작용 감소, 효율 증가
② 입력 의미에 따라 steering vector가 동적으로 생성 (Adaptive Steering)
→ semantic alignment 유지 → 기존 고정 vector 방식의 근본적 한계 해결
③ Training-free 방식
→ 적은 데이터(100~150개 pair)로 큰 성능 향상
→ alignment, truthfulness, toxicity 등 다양한 task에 적용 가능
아래는 SADI-HEAD가 무엇을 조작하는지, 왜 SADI 3가지 변형(SADI-HIDDEN / SADI-NEURON / SADI-HEAD) 중 가장 강력한 성능을 보이는지를 논문 기반 + LLM 메커니즘 관점에서 상세히 설명한 내용입니다.
(모든 내용은 첨부 PDF 근거를 포함합니다.)
⭐ 1. SADI-HEAD란 무엇인가?
SADI 방법은 내부 개입(intervention)의 적용 대상을 3가지로 나눔:
- SADI-HIDDEN → layer hidden state 조작
- SADI-NEURON → FFN neuron activation 조작
- SADI-HEAD → Attention Head Output 조작 (가장 성능이 높게 나타나는 방식)
그중 SADI-HEAD는 각 layer의 attention head 출력을 대상으로 difference를 측정하고, Top-K head에 대해서만 steering을 적용하는 방식.
⭐ 2. SADI-HEAD의 동작 과정 (세부 흐름)
(1) Contrastive pair로 head-level activation difference 추출
각 head 의 출력벡터를 라 하면,
즉, 정답을 내놓을 때와 오답을 내놓을 때 각 attention head가 어떻게 다르게 반응하는지를 정확히 계산한다.
(2) Mean difference 기반 Top-K 중요 head 선택
그리고 가장 magnitude가 큰 head K개를 선택해 binary mask M 생성.
논문 Fig.3(a)에서 head들의 difference heatmap이 나오는데,
중간~후반 레이어의 일부 head들이 contrastive 짝에 대해 매우 큰 difference를 가지는 것이 관찰됨.
즉, LLM은 특정 head들이 “정답과 오답을 구분하는 핵심 회로(circuit)” 역할을 하고 있음을 의미한다.
(3) Inference 시 입력 q의 head activation을 직접 강화
SADI의 핵심은 fixed steering이 아니라 activation 자체를 강화하는 것:
여기서 는 attention head output이다.
→ 즉, 선택된 head들의 activation을 입력의 의미 방향에 맞춰 스스로 강화하는 효과.
⭐ 3. 실험적으로 SADI-HEAD가 가장 강력한 이유
논문 Table 1, 2, 3에서 SADI-HIDDEN, SADI-NEURON보다 SADI-HEAD가 거의 모든 task에서 최고의 성능을 보여줌.
특히 StoryCloze, MMLU, TruthfulQA 등 reasoning이 필요한 과제에서 두드러짐.
⭐ 4. 왜 Attention Head 조작이 가장 효과적인가? (핵심 이유 6가지)
아래는 논문적 근거 + LLM 메커니즘 연구(Attention head specialization, mechanism interpretability) 관점에서 통합 분석한 내용.
✅ (1) Attention Heads는 LLM 내부의 “기능적 회로(Functionally Specialized Circuits)”이다
많은 연구(Nanda, Olah 등)는 다음을 보여줌:
- head는 grammar, world knowledge, chain-of-thought, entity tracking 등 특정 기능을 담당하는 모듈이다.
- 즉 head 단위로 정보가 구조화되어 있기 때문에
→ 특정 task 관련 head만 조절하면 원하는 행동을 효율적으로 바꿀 수 있음.
SADI-HEAD는 바로 이런 기능적으로 중요한 head들만 골라서 개입한다.
✅ (2) Contrastive pair difference에서 가장 뚜렷한 변화가 head에서 나타난다
Figure 3(a)에서 명확하게 보임:
중간~후반 layers의 head difference가 매우 크고 선명하다.
즉,
“정답 vs 오답을 구분하는 정보는 주로 attention head에서 나타난다.”
따라서 head-level 개입이 가장 효과적일 수밖에 없다.
✅ (3) Hidden state 조작은 너무 광범위하여 부작용이 발생
Hidden state는 많은 정보가 뒤섞여 존재하는 공간.
여기에서 top-K 차원을 강화하면
- semantics 외의 다른 정보도 증폭될 수 있으며
- generation task에서는 오히려 noisy하게 작용해 성능 저하 가능
실제로 논문 Table 3에서
SADI-HIDDEN은 TruthfulQA generation에서 성능이 크게 저하됨.
✅ (4) FFN neuron 조작은 head보다 덜 구조적으로 명확
FFN은 주로 feature transformation, gating 역할.
하지만 reasoning과 semantics routing은 attention head를 통해 전달되므로
FFN neuron을 조절해도 head만큼 직접적으로 행동을 제어하지 못함.
그래서 SADI-NEURON은 성능 개선은 있지만 항상 최적은 아님.
✅ (5) Attention head는 정보를 “선택”하고 “해석”하는 모듈이기 때문에 steering 효과가 직접적이다
head는 다음 기능을 수행:
- 어떤 토큰에 주의를 줄지 결정 (selection)
- 선택된 정보로 의미를 조립(composition)
- downstream layers로 semantic signal을 전달
따라서 head activation을 강화하는 것은
Semantic routing 자체를 강화하는 것
즉, reasoning이나 question answering의 핵심 알고리즘을 직접 조작하는 것과 같다.
✅ (6) SADI의 동적 steering이 head에 특히 잘 맞는다
동적 steering은
“입력 q의 head activation을 자체적으로 확장하는 기법”
인데, head activation은 input semantics와 alignment가 가장 잘 맞음.
즉,
- Q, K, V attention의 구조상
- head output은 이미 “입력 의미의 방향”을 잘 파악한 feature
그래서:
Hidden이나 Neuron보다 head의 activation 자체를 강화하는 것이 semantic-aligned steering의 목적에 가장 부합한다.
⭐ 5. 실험적으로 SADI-HEAD가 가장 성공적인 이유: 논문 근거 요약
아래는 논문에서 직접 확인되는 근거.
✔ (근거 1) Multiple-choice 전 task에서 최고 성능 (Table 1)
SADI-HIDDEN, NEURON보다 항상 우수.
✔ (근거 2) 도메인별 MMLU에서도 모든 분야에서 최고 성능 (Table 2)
특히 STEM에서 +5.09 향상.
✔ (근거 3) TruthfulQA generation에서 압도적 성능 (Table 3)
True×Info metric에서 +10.08 증가.
✔ (근거 4) fixed steering 대비 가장 큰 이득 (Table 4)
head-level에서 semantic misalignment 문제가 가장 강하게 해결됨.
✔ (근거 5) middle~late layers head difference가 가장 뚜렷 (Fig.3(a))
→ head가 contrastive signal을 가장 뚜렷하게 담고 있음.
⭐ 6. 결론: 왜 SADI-HEAD인가?
SADI-HEAD는 LLM 내부 구조 상 “의미 조절을 가장 잘 반영하는 단위”를 직접 강화하고, SADI의 동적 steering과 가장 자연스럽게 결합되기 때문이다.
한 문장으로 정리하면:
🔥 Attention head는 LLM의 semantic routing과 reasoning을 결정하는 핵심 회로이므로, head-level dynamic steering이 가장 큰 효과를 낸다.
아주 중요한 질문입니다. SADI의 Mask (M) 의 인덱스가 정확히 무엇을 뜻하는가?
→ 이것은 SADI-HIDDEN / SADI-HEAD / SADI-NEURON 세 구성에 따라 완전히 달라집니다.
논문에서는 Mask를 일반적으로 다음과 같이 정의함:
여기서
- = 전체 레이어 수
- = “해당 개입 방식에서 조절하려는 요소의 총 개수”
즉,
Mask의 인덱스는 (layer index, element index)의 2차원 좌표이며, element index는 개입 단위에 따라 ‘hidden dimension / attention head / neuron’ 중 하나다.
아래에서 구성별로 구체적으로 설명합니다.
⭐ 1. SADI-HIDDEN에서 Mask 인덱스의 의미
Mask 크기
인덱스 의미
- 첫 번째 인덱스 : 레이어 번호 (0~L−1)
- 두 번째 인덱스 : hidden state의 특정 차원(index in hidden dimension)
즉,
SADI-HIDDEN의 mask는 각 layer의 hidden state vector의 특정 feature 차원을 지정한다.
예: LLaMA2-7B
→ Mask에서 (layer=12, dim=2500)이 1이라면
12번째 layer의 hidden state에서 2500번째 차원을 조작한다는 의미.
⭐ 2. SADI-HEAD에서 Mask 인덱스의 의미 (가장 중요한 경우)
Attention Head를 조작하는 구조는 다음과 같음:
- 한 layer에는 H개의 head가 존재
- 각 head는 head output dimension (예: 64)을 가짐
- head output은 보통 다음 구조로 존재:
논문에서 SADI-HEAD는 head 단위 전체 output을 하나의 element 로 취급합니다.
따라서 Mask 인덱스는:
Mask 크기
인덱스 의미
- 첫 번째 인덱스 : layer
- 두 번째 인덱스 : head index (0~H−1)
즉,
Mask의 각 1은 “이 layer의 이 head 전체를 조작하라”는 의미이며, head output vector 전체에 동일하게 δ scaling이 적용된다.
예: LLaMA2-7B
- per-layer head count = 32
→ Mask shape = (32 layers × 32 heads)
Mask에서
- (layer=10, head=7)이 1이면
→ 10번째 레이어의 7번 attention head 전체 출력에 SADI scaling이 적용됨.
이것이 SADI-HEAD가 가장 효과적인 이유 중 하나이기도 함
→ head 단위 개입은 구조적·기능적 개입이기 때문.
⭐ 3. SADI-NEURON에서 Mask 인덱스의 의미
FFN(Feed-Forward Network) 구조는 보통
여기서 중간 activation σ(W₁x)는 neuron activation이며 차원은 .
SADI-NEURON Mask 크기
인덱스 의미
- 첫 번째 인덱스 : layer
- 두 번째 인덱스 : FFN intermediate activation의 neuron index
즉,
특정 layer의 특정 FFN neuron activation을 조작한다는 의미.
예: LLaMA2 7B
- FFN 게이트(neuron) 차원 = 11008
→ Mask shape = (32 layers × 11008 neurons)
⭐ 4. Mask 인덱스의 정리 (한눈에 보기)
| SADI 방식 | Mask 2D 인덱스 의미 | 조작 단위 | Mask 크기 예 |
|---|---|---|---|
| SADI-HIDDEN | (layer l, hidden dim m) | hidden state vector의 특정 차원 | (L × d_model) |
| SADI-HEAD | (layer l, head index h) | attention head 전체 | (L × num_heads) |
| SADI-NEURON | (layer l, neuron index n) | FFN 내부 neuron | (L × d_ffn) |
요약:
Mask는 항상 (layer, element) 구조이고, element는 선택한 intervention 단위(hidden dim / head / neuron)이다.
⭐ 5. Mask가 element 전체를 조작하느냐?
SADI-HEAD는 “head 전체를 하나의 element로 취급”
→ head output vector 전체에 동일한 δ scaling이 적용됨.
즉, head 내 개별 차원을 따로 선택하지 않는다.
SADI-HIDDEN & SADI-NEURON은 “차원 단위”로 선택
→ hidden vector의 특정 차원
→ FFN 게이트의 특정 neuron
⭐ 6. 왜 Mask를 element 단위로 구성하는가?
논문 3.3에서는 다음과 같은 이유를 명확히 제시함:
- 전체 activation difference 중 가장 중요한 요소만 선택
- 불필요한 개입을 최소화하여 모델의 정상 행동을 보존
- element 단위는 LLM 내부 구조의 기능 단위와 대응됨
→ head: 정보 라우팅
→ hidden dimension: feature direction
→ neuron: gating feature transform
즉, element-level 선택이 가장 구조적으로 안정적이고 효과적이다.
⭐ 결론
Mask의 인덱스 단위는 SADI가 어떤 내부 요소를 조작하느냐에 따라 달라지며, 기본 단위는 (layer, element)이다.
- SADI-HIDDEN → hidden dimension
- SADI-HEAD → attention head index (head 전체 단위)
- SADI-NEURON → FFN neuron

답글 남기기