
아래는 ICLR 2025 논문 “Improving Instruction-Following in Language Models Through Activation Steering”의 핵심 내용을 정리한 상세 설명입니다.
📌 연구 문제
LLM들은 지식을 잘 알고 있음에도 사용자가 제시한 세부 지시(instruction)를 완전히 준수하지 못한다는 문제가 존재합니다.
예)
- JSON 형식으로 출력해 달라고 했는데 자연어로 답변
- “3문장으로 답하라” 했는데 길어짐
- “특정 단어를 포함/제외하라” 요청을 무시함
연구 질문: LLM 내부에는 “지시를 따르도록 만드는 방향성(벡터)”이 존재하며, 이를 활성화 스티어링으로 조정해 inference 시 지시 준수도를 높일 수 있을까?
🔧 핵심 아이디어: Activation Steering 기반 Instruction Vector
논문은 아래와 같은 방식으로 지시를 인코딩하는 벡터(steering vector) 를 구성합니다.
① 같은 질문 + 지시 없음 → 입력
② 같은 질문 + 지시 추가 → 입력
두 입력의 residual stream activation 차이(mean difference) 를 계산 → instruction vector
즉, “지시가 있을 때 나타나는 내부 표현 − 지시가 없을 때 내부 표현” = 지시 방향성(Instruction Feature Direction)
해당 벡터를 추론 중 특정 레이어 residual stream에 더해줌으로써 모델이 지시를 따르도록 유도합니다.
쉽게 말해: 지시가 입력 문장에 없어도 “지시가 존재하는 것처럼 내부 표현을 바꿔버림”.
📌 실험한 instruction 종류
| 범주 | 예시 |
|---|---|
| Format | JSON으로 출력, 소문자로 출력, 인용부호로 감싸기, 불릿 리스트 등 |
| Length | N개의 문장 제한, N단락 등 |
| Keyword | 특정 단어 포함/제거 |
| Multi-instruction | 형식 + 길이, 소문자 + 금지 단어 등 |
| Cross-model | 지시튜닝 모델로 만든 벡터를 base 모델에 적용 |
🔍 주요 결과 요약
✔ Format (출력 형식) 지시
지시가 입력에 없어도 활성화 스티어링만 적용하면 지시 준수율이 10% → **30%**로 성장
지시가 입력에 있어도 스티어링 적용 시 정확도 증가
→ 스티어링은 “instruction drift(지시가 길어지며 지켜지지 않는 현상)” 역시 줄임
📌 시각화: Figure 3a,b
✔ Length (길이 제어)
길이에 대한 고유 벡터 계산 → 스티어링 weight(c)을 조정하면 길이 비례적 조절 가능
📌 예시: c값 ↑ → 점점 더 간결한 문장 생성
Table 2 및 Figure 5
✔ Keyword 포함/제외
- 특정 단어 포함: “단어 포함 벡터”를 추가 → 포함율 증가
- 특정 단어 제외: “단어 포함 벡터를 음수로 적용(빼기)” → 제외 성공
처음부터 “제외 벡터”를 만들면 오히려 해당 단어 확률이 증가하는 문제가 발견 → 포함 벡터의 음수 적용이 해법
📌 Example: Table 3
✔ Multi-Instruction
두 개의 벡터를 서로 다른 레이어에 동시에 삽입
→ Format+Length, Lowercase+Keyword Exclusion 모두 성능 상승
📌 Figure 7
✔ Cross-Model Steering (가장 인상적인 결과)
Instruction-tuned 모델에서 계산한 벡터를 Base 모델에 적용
→ Base 모델이 스스로 만든 벡터보다 더 높은 지시 준수율
📌 특히 Gemma-2 2B에서 극적 향상
📌 Figure 8
결론: Instruction tuning은 가중치 자체를 크게 바꾸기보다 “지시 표현 방향성”을 학습한다 → 이 벡터를 다른 모델로 이전 가능
⚠ 부작용 및 한계
- 스티어링 적용 시 일부 모델에서 출력 품질이 소폭 하락
(정보가 줄어들거나 반복/헛소리 발생) - 특정 instruction(예: “문장의 마지막에 문구 X로 끝내라”)은 표현 variablility 때문에 평균 벡터가 잘 작동하지 않음
📌 Figure 4
🧠 핵심 기여 정리
| 요소 | 기존 연구 | 본 논문의 차별점 |
|---|---|---|
| Activation Steering 사용 | 스타일/정서/안전성 등 고수준 속성 | 세부 지시 준수(형식·길이·단어)라는 정량적 제어 |
| 다중 속성 | 어려움 보고됨 | 서로 다른 레이어 적용으로 해결 |
| Cross-model transfer | 몇몇 실험적 보고 | instruction vector를 base 모델에 이전 → 더 높은 성능 |
🚀 한 줄 요약
LLM은 “지시를 따르는 방향성”을 activation 공간의 선형 벡터로 표현하며, 이를 추론 중에 주입하면 명령을 더 잘 따르게 만들 수 있고, 이는 instruction-tuned 모델에서 base 모델로 이전도 가능하다.
아래는 ICLR 2025 논문
**“Improving Instruction-Following in Language Models through Activation Steering”**의 방법론(Method) 을 핵심 개념 → 공식 → 구현 절차 → 설계 선택의 이유까지 포함해 구조적으로 정리한 설명입니다.
🧩 1. 문제 정의: “지시(instruction)를 표현하는 내부 방향 벡터 찾기”
LLM은 입력 문장에 지시를 추가하면 내부 활성화가 변한다.
즉,
- x: base query
- x⁺: base query + instruction
이 두 입력의 residual stream activation 차이는 해당 지시가 내부적으로 어떻게 표현되는지를 나타낼 수 있음.
→ 목표: 이 차이를 평균내어 instruction steering vector 를 만들고,
추론 시 residual stream에 더해 “지시가 있는 것처럼” 모델을 유도하는 것.
🧠 2. Activation Steering 핵심 아이디어
논문에서 사용하는 모델 개입(intervention) 위치는 Residual Stream
: LLM의 모든 sublayer 출력이 누적되는 지점.
Residual Stream hidden state (token t, layer l):
instruction이 있을 때와 없을 때의 차이(difference-in-means) 를 계층별로 계산.
🔧 3. Steering Vector 계산(Method Section 2.2)
3.1 Contrastive Activation Difference (Diff-in-means)
N개의 base query–instruction 쌍이 있다고 할 때
(같은 질문 × instruction 존재/부재)
- residual stream at layer l, 마지막 입력 토큰 위치:
차이 평균:
정규화하여 unit instruction direction:
3.2 Scaling Coefficient (c) 산출 방식 (Format / Keyword Instruction)
스티어링은 단순히 u_l을 더하는 것이 아니라
입력 x′에 대해 instruction이 있을 때와 유사한 activation 수준으로 맞추는 방식.
입력 x′의 layer l residual stream을 x′ₗ이라 할 때:
여기서,
즉,
입력 x′의 projection을, instruction 존재 시 평균 projection 값으로 이동시키는 것.
그리고 최종 steering vector는:
3.3 Residual Stream Intervention
Forward pass 중 layer l에서:
이후 forward 계속 진행.
핵심: 파라미터 변경 없이 활성화만 조정 → inference-time steering.
🧪 4. Layer 선택 과정
모든 layer를 다 쓰지 않고,
Instruction 효과가 가장 잘 나타나는 layer를 선택해야 함.
- 후보 layer를 여러 개 설정
- 작은 검증셋에서 steering 적용 후 instruct-following accuracy 측정
- 품질 검증(perplexity check) 도 함께 수행
(지나친 steering으로 언어 모델 품질 저하 가능)
최종적으로 지시별로 서로 다른 최적 layer 가 선택됨.
(부록 E에서 각 instruction에 대한 layer 번호 공개)
📝 5. Instruction 종류별 Method 차이
5.1 Format Instructions (JSON, lowercase, bullet list 등)
- steering vector: diff-in-means 방식 그대로
- coefficient c는 식 (2)를 사용한 동적 스케일링
5.2 Length Instructions (concise / verbose)
“3문장 이하” 같은 다양한 n에 대해 벡터를 하나씩 만들 수 없음 →
이 논문은 “일반적인 brevity / verbosity vector” 만을 학습함.
즉,
- “간단히 답하라”
- “자세히 길게 답하라”
두 방향 벡터 중 “간결하게” 벡터를 사용하여
c 값을 크게 조절하면 더 짧은 출력이 생성됨.
Length steering은 discrete instruction이 아니라 continuous control 로 취급.
5.3 Keyword Inclusion / Exclusion
Inclusion
- “단어 w를 포함하라” instruction으로 vector 생성
- test-time에서 포함해야 하는 w에 대한 vector를 바로 계산 가능 (20개 예시만 필요)
Exclusion
- 처음에는 “단어 w를 제외하라” vector를 만들려고 했으나
vocabulary projection에서 w의 logit이 오히려 증가하는 문제가 발견됨.
해결책:
즉, 포함 벡터의 부호 반전을 steering vector로 사용.
이 방식이 최고의 exclusion 성능을 보임.
🧩 6. Multi-Instruction Steering (두 지시를 동시에 따르게)
한 steering vector에 여러 instruction 변수를 섞는 것이 아니라:
- instruction A → layer l_A
- instruction B → layer l_B
서로 다른 optimal layer에 각각 벡터를 넣는 방식으로 병렬 적용.
→ 논문 Figure 7에서 두 instruction이 모두 향상됨.
기존 연구에서 “벡터 합치기(concatenation)”가 실패했던 문제를 회피하는 설계.
🔁 7. Cross-Model Steering (방법론 관점의 핵심 혁신)
Instruction-tuned 모델에서 생성한 steering vector를
base 모델의 residual stream에 추가하는 방식.
절차는 동일하지만:
- vector 계산: IT(Instruction-tuned) model
- vector 적용: Base model
결과:
- base model이 스스로 만든 벡터보다 더 정확하게 instruction 준수
- 특히 Gemma-2 2B 모델에서 큰 향상
이를 통해 본 논문이 보인 방법론적 메시지:
“Instruction tuning이 내부적으로 학습하는 것은
실제로는 residual stream 상의 선형 방향성(Instruction Feature Direction)이며,
이것은 다른 모델로 transfer도 가능하다.”
🏁 8. 전체 방법론 프로세스 요약 (Pseudo-Pipeline)
1. Define instruction type I
2. Collect N base queries:
(x_i, x_i⁺ = x_i + instruction I)
3. For each layer l:
Compute residual activation at final input token:
a_i,l = Residual(x_i, l)
a_i⁺,l = Residual(x_i⁺, l)
Compute mean difference vector:
v_l = mean(a_i⁺,l - a_i,l)
u_l = normalize(v_l)
4. Select best layer l* via:
- instruction adherence on validation
- perplexity sanity check
5. At inference, for new input x':
Compute residual stream x'_{l*}
Compute scaling coefficient c using eq. (2)
Inject steering:
x'_{l*} ← x'_{l*} + c u_{l*}
6. Continue forward pass to output.
📌 방법론의 핵심 철학
- Instruction = Activation space의 선형 방향
- 지시는 residual stream에 나타나므로, 해당 방향으로 projection 조절만 하면 LLM을 제어할 수 있다
- Fine-tuning 없이 inference-time control이 가능
- 단일 instruction이 아니라 조합 instruction도 layer-wise 분리로 가능
- 지시 능력을 다른 모델에 transferable한 representation으로 취급할 수 있다

답글 남기기