같은 문제를 준비
EN, KO, MIX1, MIX2, MIX3을 한 묶음으로 준비했습니다.
같은 문제를 다섯 가지 문장으로 보여준 뒤, Qwen이 문장을 읽으며 각 층에서 만든 숫자 묶음인 hidden state를 꺼냈습니다.
정답을 새로 생성하지 않았습니다. 프롬프트만 읽히는 forward pass를 한 번 수행했습니다.
EN, KO, MIX1, MIX2, MIX3을 한 묶음으로 준비했습니다.
Qwen이 평소 대화할 때 쓰는 chat template을 똑같이 적용했습니다.
어떤 token이 자연어와 바뀐 표현에 해당하는지 정확한 위치를 기록했습니다.
output_hidden_states=True로 36개 층과 첫 embedding의 상태를 받았습니다.
필요한 token을 평균내고 정규화한 뒤 표본별 압축 파일로 저장했습니다.
모든 token의 모든 벡터를 저장하면 파일이 너무 커집니다. 그래서 각 층에서 연구 질문에 필요한 부분만 평균냈습니다.
질문이나 지시문에 속한 token을 모두 평균낸 대표 벡터입니다. 코드와 스키마는 모델이 읽지만 이 평균에는 넣지 않았습니다.
자연어 지시문의 마지막 지점에서 모델이 가지고 있던 벡터를 따로 저장했습니다.
‘상관계수’와 ‘correlation coefficient’처럼 치환된 span의 token만 골라 평균냈습니다.
KO와 MIX가 얼마나 다른지, MIX가 KO보다 EN에 가까워졌는지를 각 층에서 계산했습니다.
Alignment gain
KO–EN 거리에서 MIX–EN 거리를 뺀 값입니다. 양수면 MIX가 EN 쪽에 조금 더 가깝습니다.
scripts/colab_full_representation_alignment.pyscripts/colab_representation_forward.py