- 최신 LLM들은 실제로 존재하지 않는 해마 이모지가 있다고 확신함
- 많은 사람들이 과거 해마 이모지를 기억한다고 주장하며 인터넷에서 다양한 미디어와 밈이 존재함
-
LLM 내부에서는 "해마 + 이모지" 개념을 생성해 실제 이모지로 바꾸려 하지만, 관련 토큰이 없어 엉뚱한 이모지로 연결됨
-
logit lens를 통해 중간 레이어에서 "seahorse"와 "emoji" 개념이 혼합되는 과정을 확인 가능함
- 이 현상은 lm_head 구조와 샘플링 방식, 그리고 LLM이 훈련되고 정정하는 과정과 연관됨
서론
- 이 글은 @arm1st1ce의 트위터 포스팅에 대한 확장 버전임
- 여러 LLM에게 "해마 이모지가 있냐"고 질문하면 일관되게 "있다"고 답변함
- 실제로 존재하지 않는 이모지임에도 불구하고 인간과 기계 모두 기억하거나 있다고 확신하는 현상이 발생함
- Unicode에서는 해마 이모지 추가가 2018년에 공식적으로 거부된 바 있음
LLM들은 정말 해마 이모지가 있다고 생각함
- GPT-5, GPT-5 Chat, Claude 4.5 Sonnet, Llama-3.3-70B 등 주요 언어 모델은 해마 이모지가 있다고 자신 있게 답변함
- Reddit 등 온라인 커뮤니티에서도 많은 사람들이 해마 이모지가 있었다고 기억함
- 인터넷에는 "seahorse emoji"의 '실종'에 대한 밈과 영상, 심지어 밈 기반 암호화폐까지 존재함
- 인간과 LLM 모두 물고기, 돌고래, 거북 등 다른 바다 동물 이모지가 있기 때문에 해마 이모지도 당연히 있을 것이라는 일반화된 믿음을 공유함
- 이러한 이유로 LLM은 새로운 입력이 들어올 때마다 해마 이모지가 있다는 잘못된 잠재 신념으로 시작하게 됨
logit lens를 이용한 내부 상태 분석
-
logit lens는 각 레이어별로 다음 토큰 예측값을 확인하여 LLM 내부 상태를 해석하는 도구임
- 연구자는 llama-3.3-70B에 특정 프롬프트를 주고, 각 4레이어마다 어떤 토큰이 예측되는지 테이블로 확인함
- 중간 레이어(예: 52번째)에서는 "sea horse horse" 등 '해마'와 연관된 개념이 여러 번 나타남
- 최종 레이어로 갈수록 실제 존재하는 이모지가 예측되며, 토크나이저의 특이성(UTF-8 바이트 분해 등)도 관찰됨
- "seahorse + emoji" 개념을 직접적으로 합쳐서 해당 이모지를 만들려 하지만, 실제로는 존재하지 않아 이 과정이 어긋남
lm_head란?
-
lm_head는 풀 사이즈의 토큰 백터 행렬로, 입력 잔차 벡터와 각 토큰 백터의 유사도를 비교해 다음 토큰을 선택하는 구조임
- "hello"를 출력하려면 "hello" 벡터에 최대한 가까운 상태로 잔차를 만들어야 함
- 친근한 인사 상황 예시를 통해 레이어별 "hello" 토큰이 어떻게 생성되는지 보여줌
- 진짜 존재하는 이모지(예: fish emoji)는 "fish + emoji" 개념을 성공적으로 결합해 결과를 냄
- 하지만 해마 이모지는 해당 토큰이 없어, "seahorse + emoji" 벡터가 horse 또는 sea animal 계열 이모지로 잘못 맵핑됨
실제 샘플링 과정과 LLM의 반응
- 채택된 잘못된 이모지 토큰이 context에 포함되면, 일부 모델(예: Claude 4.5 Sonnet)은 해당 이모지가 아니라고 인지하고 자기 수정함
- 일부 모델은 오류에서 빠져나오지 못하고 반복적으로 잘못된 이모지를 출력함
- 모델이 실제로 해마 이모지가 없다는 정보를 인식하려면, lm_head를 통해 잘못된 샘플링이 발생해야만 가능함
추가적 추측
- 이 현상은 LLM의 강화학습 단계에서 lm_head 출력에 대한 정정 신호를 학습할 수 있음
- base 모델은 자기 출력을 활용하지 않으므로, RL 과정에서만 이런 학습이 이루어짐
코드