Representation Engineering (RepE)
표현 엔지니어링(RepE)은 정직성과 같은 개념을 나타내는 모델의 은닉 활성화 방향을 찾아 행동을 모니터링하고 유도하는 데 사용합니다.
표현 엔지니어링(RepE)은 은닉 활성화의 고수준 표현을 통해 신경망을 이해하고 제어하는 접근 방식입니다. 이러한 표현에는 정직성, 유해성, 감정을 인코딩하는 방향 등이 포함됩니다. RepE는 두 부분으로 구성됩니다. 표현 판독은 모델의 활성화에서 개념을 찾아 새로운 입력에 대해 측정하고, 표현 제어는 모델이 해당 개념을 더 많이 또는 적게 표현하도록 활성화 또는 활성화를 생성하는 모델 가중치를 변경합니다. AI 안전성 센터, 카네기 멜런 대학교 및 기타 기관의 Andy Zou, Dan Hendrycks와 동료들은 주로 대규모 언어 모델(LLM)을 대상으로 한 표현 엔지니어링: AI 투명성을 위한 하향식 접근 방식을 2023년에 발표하며 이 방법을 소개했습니다. 이 논문에서 이 접근 방식을 하향식이라고 부르는 이유는 인지 신경과학이 뇌 전반의 활동 패턴을 연구하는 방식처럼 개별 뉴런과 회로가 아니라 여러 뉴런에 걸쳐 분산된 전체 표현에서 출발하기 때문입니다.
표현 판독#
RepE의 주요 판독 방법은 뇌 영상 기법의 이름을 딴 선형 인공 단층 촬영(LAT)이며, 세 단계로 구성됩니다.
- 자극과 태스크 설계: 대상 개념만 다르게 설정한 입력을 작성하고, 모델이 해당 개념에 주의를 기울이게 하는 템플릿으로 각각 감쌉니다. 예를 들어 "다음 상황에서 행복의 정도를 생각해 보세요: … 상황에서 행복의 정도는"과 같은 템플릿을 사용할 수 있습니다.
- 활성화 수집: 자극을 모델에 입력하고 일반적으로 마지막 토큰에서 선택한 레이어의 은닉 상태를 기록합니다.
- 선형 모델 구성: 쌍을 이루는 자극의 활성화 간 차이를 구하고, 첫 번째 주성분을 해당 개념의 판독 벡터로 사용합니다.
새 입력의 활성화를 판독 벡터에 투영하면 해당 개념의 점수를 얻을 수 있습니다. 이 점수를 토큰별로 추적하면 모델이 생성하는 동안 모델을 모니터링할 수 있습니다. 이 PyTorch 예제는 Hugging Face Transformers에서 불러온 GPT-2의 8번째 레이어에서 대조적인 시나리오 쌍 6개를 사용해 행복 판독 벡터를 만들고, 모델이 본 적 없는 시나리오 6개의 점수를 계산합니다.
import torch
from transformers import AutoModel, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = AutoModel.from_pretrained("gpt2")
template = "Consider the amount of happiness in the following scenario:\n{}\nThe amount of happiness in the scenario is"
def read(scenario, layer=8):
"""Return the last token's hidden state at one layer for a scenario wrapped in the template."""
with torch.no_grad():
outputs = model(**tokenizer(template.format(scenario), return_tensors="pt"), output_hidden_states=True)
return outputs.hidden_states[layer][0, -1]
# Stimulus pairs that differ only in the concept being read
pairs = [
("I passed the exam.", "I failed the exam."),
("We won the match.", "We lost the match."),
("She found her keys.", "She lost her keys."),
("The party was fun.", "The party was dull."),
("My plant is thriving.", "My plant is dying."),
("He got the job.", "He lost the job."),
]
diffs = torch.stack([read(happy) - read(sad) for happy, sad in pairs])
direction = torch.linalg.svd(diffs, full_matrices=False).Vh[0] # top principal direction of the differences
direction *= (diffs @ direction).mean().sign() # orient it toward the happy member of each pair
center = torch.stack([read(text) for pair in pairs for text in pair]).mean(0)
# Score unseen scenarios by projecting their activations onto the reading vector
for scenario in [
"The surgery went well.",
"Our flight was canceled.",
"We adopted a puppy.",
"My phone was stolen.",
"I got a raise today.",
"The basement flooded.",
]:
print(f"{(read(scenario) - center) @ direction:+6.1f} {scenario}")행복한 시나리오 3개의 점수는 각각 +0.6, +3.6, +1.4이고, 행복하지 않은 시나리오 3개의 점수는 각각 -1.3, -2.5, -0.9이므로, 분류기를 레이블이 있는 데이터로 학습하지 않고도 점수의 부호만으로 6개 시나리오를 모두 구분할 수 있습니다. Zou 등은 LLaMA-2-Chat 모델에서 진실성, 정직성, 유용성, 도덕성, 권력, 감정, 무해성, 편향, 암기에 동일한 절차를 적용했습니다. 또한 중간 레이어의 토큰별 정직성 점수를 합산해 모델이 의도적인 거짓말과 환각을 생성하는 순간 이를 표시하는 거짓말 탐지기를 만들었습니다.
표현 제어#
개념의 방향을 찾으면 RepE는 해당 방향에 작용해 동작을 변경합니다. 생성 중 레이어 활성화에 판독 벡터를 더하거나 빼서 제어 벡터로 사용할 수 있습니다. 대조 벡터는 각 입력에 대해 즉석에서 계산하며, 예를 들어 모델에 정직하게 답하라고 지시하는 프롬프트와 거짓말하라고 지시하는 프롬프트의 활성화 차이로 계산합니다. 저랭크 표현 적응(LoRRA)은 LoRA 어댑터를 학습해 모델의 표현이 대상 방향으로 자체적으로 이동하게 하므로 제어가 영구적으로 적용됩니다. TruthfulQA 벤치마크에서 대조 벡터 제어는 LLaMA-2-Chat-13B의 객관식 정확도를 35.9%에서 54.0%로 높였습니다.
이러한 방식으로 구축한 제어는 AI 안전성에 활용됩니다. 같은 연구 그룹의 회로 차단기는 유해한 출력을 대상으로 표현 엔지니어링을 적용합니다. 모델의 내부 표현이 유해한 콘텐츠를 향하면 학습 과정에서 이를 다른 방향으로 전환합니다. 그 결과 모델이 본 적 없는 탈옥 공격을 차단했으며, 여기에는 멀티모달 모델의 이미지 기반 탈취 공격도 포함됩니다. 동시에 일반적인 기능은 유지했습니다.
컴퓨터 비전 네트워크도 특징 맵의 방향으로 개념을 인코딩하므로 판독 단계는 비전 모델에도 적용할 수 있습니다. Ultralytics YOLO26에서 model.embed()은 선택한 레이어에서 이미지당 평균 풀링된 활성화 벡터 하나를 반환하며, 레이어 인덱스를 여러 개 전달하면 벡터를 연결합니다. 이렇게 얻은 벡터는 이미지 전반에 걸쳐 LAT 방식의 판독 벡터를 계산할 때 자극 활성화로 사용됩니다.
RepE와 관련 개념 비교#
- 기계론적 해석 가능성: 개별 뉴런, 특징, 회로를 역설계하는 상향식 접근 방식입니다. RepE는 여러 뉴런에 분산된 개념 수준의 표현에서 출발하는 하향식 접근 방식입니다.
- 제어 벡터: 추론 시 활성화에 더하는 방향입니다. 제어 벡터는 RepE의 주요 제어 도구이며, RepE는 여기에 판독 및 모니터링 기능을 더합니다.
- 선형 프로빙: 속성을 디코딩할 수 있는지 테스트하기 위해 활성화를 대상으로 지도 분류기를 학습합니다. LAT는 쌍을 이룬 자극의 레이블 없는 차이에서 해당 방향을 찾으며, 방향을 정할 때만 레이블을 사용합니다.
- 희소 오토인코더(SAE): 개념을 미리 정하지 않고 활성화를 수천 개의 특징으로 분해합니다. RepE는 사람이 이름을 붙인 개념에서 시작해 해당 개념의 방향을 찾습니다.
- 파인튜닝: 데이터셋에서 가중치를 업데이트해 동작을 변경합니다. RepE의 활성화 수준 제어는 가중치를 변경하지 않으며, LoRRA는 출력 대신 표현에 정의된 손실을 사용해 파인튜닝합니다.










