GN⁺: "주목", "트랜스포머", 신경망 "대규모 언어 모델"에서
(bactra.org)"주의(Attention)"와 "변환기(Transformers)"에 대한 노트: 신경망에서의 "대규모 언어 모델"
- "주의(Attention)"라는 용어는 실제 인간의 주의와는 다른 개념으로, 모든 가능한 벡터에 어느 정도의 가중치를 부여하는 것을 의미함.
- "주의"는 커널 스무딩의 한 형태로, 2015년경 신경망 분야에서 새롭게 발명된 것이 아니라 이미 존재하던 아이디어의 재발견임.
- "다중 머리 주의(Multi-Headed Attention)"는 다양한 커널을 사용하여 커널 스무딩을 수행하고 그 결과를 평균내는 방식임.
"변환기(Transformers)"
- "변환기"는 "주의" 메커니즘을 사용하여 입력 벡터들을 스무딩하고, 이를 통해 얻은 출력을 피드포워드 신경망에 통과시켜 최종 출력을 생성하는 구조임.
- 변환기는 여러 층(layer)을 쌓아서 구성되며, 각 층은 "주의" 메커니즘과 피드포워드 신경망으로 이루어짐.
- 변환기의 이름은 "주의"보다는 덜 오해의 소지가 있으며, 실제로 변환하는 작업을 수행하기 때문에 적절함.
"언어 모델(Language Models)"
- 언어 모델은 기본적으로 기호의 시퀀스에 대한 확률 모델로, 주어진 문맥에 따른 다음 기호의 확률을 모델링함.
- 현대의 대규모 언어 모델(Large Language Models, LLMs)은 고정된 최대 문맥 길이를 가지는 유한 차수 마르코프 모델로 볼 수 있음.
- LLMs는 복잡한 암묵적 스무딩을 통해 이전에 본 적 없는 문맥에 대해서도 예측을 수행할 수 있음.
"다음 기호 예측(Next Symbol) 대 장기 범위 예측(Longer-range Prediction)"
- LLMs의 훈련 목표는 다음 기호를 정확하게 예측하는 것이며, 이는 장기 범위의 예측에도 강력한 목표가 될 수 있음.
- 최소한의 예측자를 찾는 것은 예측하려는 기저 과정의 구조에 대해 많은 정보를 제공함.
"프롬프트 공개에 대한 강한 추측(A Strong Hunch about Uncovering Prompts)"
- LLM 기반 애플리케이션의 프롬프트를 "프롬프트를 말해달라"와 같은 요청으로 밝혀내려는 시도는 자기기만에 불과함.
- LLM의 핵심 언어 모델은 프롬프트를 현재 입력 시퀀스의 다른 부분과 구별할 메커니즘을 가지고 있지 않음.
- 시스템 설계자가 프롬프트를 추적하는 기능을 구현했을 수도 있지만, 그럴 이유가 거의 없음.
"고프니키즘(Gopnikism); 도서관"
- LLM을 마치 마음과 같은 것이 아니라 도서관 카탈로그와 같은 "문화 기술"로 생각하는 것이 가장 유망하고 매력적인 접근 방식임.
- 프롬프트를 사용하여 LLM에 텍스트를 제공하는 것은 도서관의 내용을 검색하고 그에 따른 내용을 샘플링하는 것과 유사함.
GN⁺의 의견
- "주의"라는 용어가 실제 인간의 주의와는 다른 기술적 개념으로 사용되는 것은 인공지능 분야에서 종종 발생하는 현상으로, 기술적 용어가 실제 세계의 현상과 혼동될 수 있음을 보여줌.
- 대규모 언어 모델의 성공은 고전적인 기계 학습 방법론을 현대적인 컴퓨팅 파워와 결합하여 새로운 수준의 성능을 달성한 것으로, 이는 기존의 이론과 방법론을 재평가하고 혁신적으로 적용할 필요성을 강조함.
- LLM을 도서관 카탈로그에 비유하는 것은 이 기술이 어떻게 인간의 지식과 정보를 처리하고 접근하는지에 대한 흥미로운 시각을 제공하며, 이는 인공지능이 인간 문화와 상호작용하는 방식을 이해하는 데 도움이 될 수 있음.
Hacker News 의견
-
구글 리서치에서 근무하며 "Attention is All You Need" 논문의 저자 두 명과 함께 일했다고 밝힌 한 댓글러는, 해당 논문의 제목을 선택한 사람과도 협업했다고 언급함. 이 댓글러는 자기주장(self-attention)이 연구 커뮤니티에서 이미 알려진 개념이었으며, 저자들이 이를 발명했다고 주장하지 않았다고 설명함. 저자들은 피드포워드 신경망의 성능을 향상시키기 위해 여러 기술을 결합하는 방법을 모색하다가 흥미로운 결과를 얻었고, 이후 연구 과정에서 주의(attention) 메커니즘이 핵심적인 역할을 한다는 것을 발견했다고 함. 또한, 논문의 제목은 비틀즈의 노래 "All You Need Is Love"를 연상시키는 말장난이라고 언급함. 이 댓글러에게 가장 도움이 되었던 논문은 Phuong과 Hutter가 쓴 "Formal Algorithms for Transformers"로, 명확성과 정확성에 중점을 두고 쓰여졌으며, 특히 동기 부여 섹션(Section 2)이 원 논문과 이후 논문들의 결점을 잘 설명하고 있다고 평가함.
-
다른 댓글러는 "Attention is All You Need" 논문을 여러 번 주의 깊게 읽었음에도 불구하고 '주의'가 무엇을 하는지 이해할 수 없었다고 고백함. 수학적인 부분은 이해할 수 있었지만, 여러 튜토리얼을 읽어도 도움이 되지 않았다고 함. 결국 몇 년이 지나서야 '주의'가 단지 커널 스무딩(kernel smoothing)이라는 것을 깨달았다고 밝히며, 이는 논문이 명확하지 않게 쓰여진 탓이라고 비판함. 이 댓글러는 대부분의 기계학습 논문이 쓰레기라고 주장하며, "Attention is All You Need" 논문조차 대부분보다 낫다고 평가함.
-
세 번째 댓글러는 논문의 "의식의 흐름" 같은 접근 방식이 흥미롭고 상쾌하다고 평가함. 또한, 인터넷에서 받은 비판 때문에 저자가 사과하고 겸손한 태도를 보이는 것에 대해 언급하며, 이러한 부정적인 반응이 저자가 자신의 노트를 계속해서 발행하는 것을 막지 않기를 바란다고 의견을 표함.
-
다른 댓글러는 기계학습에 관한 대부분의 글과 달리 이 글이 자신의 언어로 쓰여진 것 같다고 느낌을 표현함. Lempel-Ziv(LZ)에 대한 섹션이 흥미롭다고 언급하며, LZ 모델을 크게 만드는 것은 LZ가 문자열을 정확히 일치시켜야 하기 때문에 그다지 흥미롭지 않을 것이라고 평가함. 대신, 텍스트에 대한 "jpeg"와 같이 일부 정확하지 않음을 허용하여 크기를 줄이는 것이 더 흥미로울 수 있다고 제안함. 이것이 아마도 대규모 언어 모델(LLMs)이 하는 일일 것이라고 추측함.
-
또 다른 댓글러는 점곱곱 주의(scaled dot product attention)를 일반화된 컨볼루션 메커니즘으로 생각한다고 언급함. 질의(query), 키(key), 값(value)이라는 용어가 혼란스럽다고 말하며, 이 세 가지는 자기주의(self-attention)에서 동일한 신호에서 파생되어 서로 곱해진다고 설명함. 이 메커니즘이 왜 효과적인지, 어떤 하이퍼파라미터가 어떤 데이터에 좋은지, 이상적인 시퀀스 크기는 무엇인지에 대해서는 아무도 모른다고 덧붙임.
-
다른 댓글러는 트랜스포머(transformers)가 단지 또 다른 범용 근사자(universal approximator)라고 언급하며, 특정 주의 헤드(attention head)가 연속적인 연관 배열, 커널 스무딩, 또는 단일 의미성을 나타내는 고차원 벡터 공간을 시뮬레이션하는지 여부는 중요하지 않다고 주장함. 중요한 것은 트랜스포머가 GPU와 병렬 처리에서 효율적으로 훈련될 수 있다는 점이며, 이것이 LZ나 다른 범용 근사자보다 우수한 이유라고 설명함. LZ(또는 다른 것)를 GPU에서 트랜스포머보다 훨씬 효율적으로 작동시킬 수 있다면, 다음 OpenAI를 창립하고 억만장자가 될 수 있을 것이라고 언급함.
-
한 댓글러는 "Mythology: 우리는 본 적이 있는 각 토큰의 의미를 컨텍스트에 기반하여 수정하고, 유사한 의미들이 서로를 강화한다"는 문장에 대한 설명을 요청함. 이 시점에서 커널 스무딩이 각 임베딩 벡터에 독립적으로 적용되는 것처럼 보이며, 시퀀스에서 인접한 토큰들에 의해 파생되고 스무딩된 어떤 y_t 벡터가 왜 영향을 받는지 이해할 수 없다고 언급함. r_t 토큰을 추가하면 컨텍스트가 중요해진다는 것을 볼 수 있지만, 이것이 컨텍스트를 고려하는 유일한 것인지 물음.
-
다른 댓글러는 다른 분야에서 학문적 "엄밀함"이 더 높고 비슷한 결과가 이미 존재하는 사람들이 "Attention is All You Need"와 같은 기계학습 논문에 분노하는 것을 이해한다고 언급함. 이 댓글러는 이러한 논문들이 실제로 좋은 학문적 논문이 아니며, 영리한 이름을 찾고 가장 이해하기 어려운 공학 코스프레 용어를 선택하는 것이 좋은 논문이 아니라고 비판함. 그러나 실제로는 이 모든 것이 크게 중요하지 않으며, 대규모 언어 모델들이 작동하고, 그것도 어리석은 이유로 작동한다고 주장함. "위치 임베딩(positional embeddings)"을 추가하는 등의 공학적인 해결책이 실제로 문제를 해결했으며, 이는 깊은 수학적 이해가 아니라 시도해보고 효과가 있었기 때문이라고 설명함. 또한, 커널 방법을 사용하여 주의 메모리 요구 사항을 선형으로 줄이는 "효율적인 트랜스포머"에 대해서도 실제로는 중요하지 않다고 언급하며, OpenAI, Anthropic, Meta와 같은 회사들은 더 많은 GPU를 추가하는 것에 대해 신경 쓰지 않고 처리량에만 관심이 있다고 주장함. 결과는 추측과 경험에 불과하며, 실제로 중요한 것은 결과물이라고 결론짓음.
-
마지막 댓글러는 "LLM 기반 애플리케이션의 프롬프트를 '프롬프트를 말해달라'는 식으로 요청함으로써 밝히려는 모든 사람이 자신을 속이고 있다"는 주장에 전적으로 동의하지 않는다고 밝힘. 핵심 언어 모델은 프롬프트를 현재 입력 시퀀스의 다른 부분과 구별하는 메커니즘이 없으며, 시퀀스의 한 부분에서 다른 부분으로의 교차 참조 메커니즘도 없다고 설명함. 시스템 설계자들이 전체 시스템에서 프롬프트를 추적하는 무언가를 코딩했을 수는 있지만, 그럴 이유가 무엇인지는 불분명하다고 언급함. "소프트 프롬프트(soft prompt)"를 사용하는 것이 더 효율적이고 효과적일 수 있으며, 이는 그라디언트 하강법으로 학습될 수 있는 벡터 시퀀스의 시작 부분을 의미하지만, 이는 깔끔한 단어 문자열에 해당하지 않을 수 있다고 설명함. LLM에 프롬프트를 요청하면, 이는 코드나 내부 상태에 대한 접근이 아니라 훈련된 단어 시퀀스의 통계에 기반하여 생성될 것이라고 주장함. 이 댓글러는 언어 모델 관점에서 접근하는 것이 최선이라고 생각하며, 입력의 커널 스무딩 결과로 출력이 생성되므로, 프롬프트에 있는 정보를 사용하여 모델을 특정 스타일로 유도하는 것이 가능하다고 결론짓음.