1P by GN⁺ | ★ favorite | 댓글 1개
  • LLM의 표준 목표인 다음 토큰 예측을 여러 미래 토큰 동시 예측으로 바꾸면, 같은 데이터와 계산 예산에서도 코드·자연어 생성 성능을 더 끌어낼 수 있음
  • 구조는 공유 Transformer 본체 위에 여러 출력 헤드를 두는 방식이며, 기본 추론에서는 다음 토큰 헤드만 써 기존 자기회귀 생성처럼 동작함
  • 코드 모델에서는 13B 파라미터 모델이 비교 가능한 다음 토큰 모델보다 HumanEval을 12%, MBPP를 17% 더 많이 풀었고, 이득은 큰 모델에서 더 뚜렷함
  • 추가 헤드는 자기 추측 디코딩에 활용되어 4-token prediction 모델은 최대 3×, 8-byte prediction 모델은 6.4× 추론 속도 향상을 보임
  • 합성 과제에서는 induction heads와 알고리듬 추론에 유리했으며, 학습 시 teacher forcing과 생성 시 자기회귀 분포 차이를 줄이는 효과가 있을 가능성이 있음

멀티 토큰 예측 방식

  • 기존 언어 모델링은 각 위치에서 다음 토큰 하나의 교차 엔트로피 손실을 최소화함
  • 멀티 토큰 예측은 각 위치에서 다음 n개 토큰을 한꺼번에 예측하도록 학습 목표를 확장함
  • 모델 구조는 세 부분으로 나뉨
    • 공유 Transformer 본체가 관측된 컨텍스트의 잠재 표현을 만듦
    • n개의 독립 출력 헤드가 각 미래 토큰을 병렬로 예측함
    • 공유 unembedding matrix가 최종 토큰 확률을 계산함
  • 가장 단순한 추론 방식은 다음 토큰 예측 헤드만 사용하는 일반 자기회귀 예측이며, 나머지 헤드는 버릴 수 있음
  • 추가 출력 헤드는 blockwise parallel decoding이나 Medusa-like tree attention 같은 자기 추측 디코딩(self-speculative decoding) 에 활용 가능함

메모리 효율 구현

  • 단순 구현에서는 각 헤드의 logit과 gradient를 모두 메모리에 올려야 해 GPU 메모리 사용량이 커짐
  • 현재 LLM에서는 vocabulary 크기 V가 잠재 표현 차원 d보다 훨씬 커서 logit vector가 GPU 메모리 병목이 됨
  • 제안 구현은 공유 본체의 forward pass 뒤에 각 출력 헤드의 forward/backward를 순차 실행함
    • 한 헤드의 logit과 gradient는 다음 헤드로 넘어가기 전에 해제됨
    • 본체에는 누적 gradient만 유지됨
  • 이 방식은 peak GPU 메모리 사용량을 O(nV + d) 에서 O(V + d) 로 줄이며, 런타임 비용은 늘리지 않음

코드 모델 실험 결과

  • 실제 데이터 실험은 다음 토큰 예측 모델과 n-token prediction 모델을 같은 파라미터 수로 비교함
    • 미래 예측 헤드에 n−1개 레이어를 추가하면 공유 본체에서 n−1개 레이어를 제거함
  • 300M부터 13B까지 여섯 크기의 모델을 최소 91B code tokens로 처음부터 학습함
  • MBPP와 HumanEval 평가에서는 작은 모델이 기준 모델보다 나쁠 수 있었지만, 규모가 커질수록 멀티 토큰 예측이 앞섬
  • 13B 모델은 비교 가능한 다음 토큰 모델보다 더 많은 문제를 해결함
    • HumanEval에서 12% 더 많은 문제를 해결함
    • MBPP에서 17% 더 많은 문제를 해결함
  • 7B 모델을 200B code tokens로 학습한 ablation에서는 n=1, 2, 4, 6, 8을 비교함
    • n=4가 HumanEval과 MBPP의 pass@1, pass@10, pass@100에서 일관되게 가장 좋음
    • APPS/Intro에서는 n=6이 앞섬
    • 최적 window size는 입력 데이터 분포에 따라 달라질 수 있음

추론 속도와 byte-level 모델

  • 7B 4-token prediction 모델에 greedy self-speculative decoding을 적용하고, 학습에 쓰지 않은 코드·자연어 테스트 프롬프트에서 디코딩 속도를 측정함
  • 결과는 코드에서 3.0×, 텍스트에서 2.7× 속도 향상을 보임
    • 코드에서는 3개 제안 중 평균 2.5개 토큰이 수락된 토큰이었음
  • 8-byte prediction 모델은 추론 속도에서 6.4× 향상을 기록함
  • byte-level tokenization 실험에서는 7B byte-level transformer를 314B bytes, 약 116B tokens에 해당하는 데이터로 학습함
  • 8-byte prediction 모델은 next-byte prediction 대비 더 많은 문제를 해결함
    • MBPP pass@1에서 67% 더 많은 문제를 해결함
    • HumanEval pass@1에서 20% 더 많은 문제를 해결함
  • multi-byte prediction은 byte-level 모델을 더 효율적으로 학습시키는 경로가 될 수 있음

여러 epoch, 미세조정, 자연어 결과

  • 같은 데이터로 여러 epoch 학습해도 멀티 토큰 예측은 다음 토큰 예측보다 일부 우위를 유지함
    • MBPP pass@1은 +2.4%
    • HumanEval pass@100은 +3.2%
    • 나머지 지표는 유사함
  • CodeContests 미세조정에서는 4-token prediction으로 사전학습한 7B 모델이 다음 토큰 기준 모델보다 pass@k 전반에서 우수함
    • 4-token prediction 모델을 그대로 n′=4 loss로 미세조정한 경우도 기준 모델보다 좋음
    • 추가 헤드를 제거하고 next-token target으로 미세조정한 경우가 전체적으로 가장 좋았음
  • 자연어에서는 7B 모델을 200B tokens로 학습해 6개 표준 NLP benchmark를 평가함
    • 2-token prediction 모델은 다음 토큰 기준 모델과 비슷함
    • 4-token prediction 모델은 성능이 다소 하락함
    • 더 큰 모델 크기가 필요할 수 있음
  • 생성형 자연어 평가는 요약과 수학 과제로 나눠 수행됨
    • 8개 summarization benchmark에서 n=2와 n=4 모델은 200B·500B tokens 학습 모두에서 ROUGE-L F1 기준 다음 토큰 기준 모델보다 높음
    • GSM8K 8-shot 평가에서는 200B tokens에서 n=2가 기준 모델을 앞섰지만, 500B tokens 이후에는 패턴이 뒤집혔고 n=4는 전반적으로 더 나쁨

합성 과제에서 본 induction과 알고리듬 추론

  • induction은 문장에 “AB”가 나온 뒤 나중에 “A”가 다시 나오면 이어서 “B”를 예측하는 패턴임
  • children stories 데이터셋으로 1M~1B nonembedding parameters 모델을 학습하고, 무작위 2-token 이름을 넣은 테스트셋으로 induction capability를 측정함
  • 30M 이하 작은 모델에서는 2-token prediction loss가 induction capability 형성을 크게 개선함
    • 100M 이상에서는 이 이점이 사라짐
  • 다항식 산술 과제에서는 F7[X]/(X5)에서 unary negation, addition, multiplication, composition을 포함한 표현식을 학습·평가함
  • 멀티 토큰 예측은 task difficulty 전반에서 정확도를 높였고, out-of-domain generalization도 낮은 절대값이지만 크게 개선함
  • 30M에서 100M으로 모델을 키우는 것보다 next-token prediction을 멀티 토큰 예측으로 바꾸는 효과가 더 컸음

왜 작동할 수 있는가

  • 멀티 토큰 예측은 teacher forcing 학습과 inference-time autoregressive generation 사이의 분포 불일치를 완화할 수 있음
  • 다음 토큰 예측은 짧은 범위의 예측에 집중하면서 긴 범위 의존성을 무시할 수 있음
  • 멀티 토큰 예측은 뒤따르는 토큰들과 강하게 관련된 토큰에 더 큰 암묵적 가중치를 부여함
    • 이를 choice point 강화로 해석할 수 있음
    • 유용한 텍스트 생성은 choice point에서 올바른 결정을 고르는 데 좌우된다고 봄
  • 정보이론적 전개에서는 2-token prediction이 X와 Y 사이의 mutual information 항 중요도를 next-token prediction보다 더 키우는 형태로 나타남

한계와 비용

  • 남은 과제는 멀티 토큰 예측에서 n을 자동으로 고르는 방법, loss scale과 loss balancing 활용, vocabulary size 조정, embedding space에서 동작하는 보조 prediction loss 개발임
  • 모든 실험 모델 학습에는 총 약 500K GPU hours가 사용됨
    • 하드웨어는 A100-80GB와 H100임
    • 추정 총 배출량은 약 50 tCO2eq이며, Meta의 sustainability program으로 100% offset됨
  • 목표는 언어 모델의 compute와 data efficiency를 높이는 것이지만, rebound effects를 주의해야 하며 LLM의 사회적 장점과 위험을 함께 고려해야 함

댓글과 토론

Hacker News 의견들
  • 이 분야에는 너무 많은 일이 벌어지고 있음
    데이터, 사전 학습, 학습, 추론, 전문가 혼합, RAG 같은 용어가 실제 흐름 속에서 언제 등장하는지, 공장 견학처럼 시간순으로 설명해 주는 자료가 있으면 좋겠음
    대부분은 큰 그림에서 용어가 어디에 들어가는지 모르겠고, 처음 사전 학습을 봤을 때는 학습 전에 데이터를 처리하는 과정인 줄 알았는데 실제로는 또 다른 학습이었음

    • 큰 그림에서 용어가 어디에 들어가는지 모르는 건 LinkedIn, Twitter, 팟캐스트에서 보는 많은 AI 전문가와 컨설턴트도 마찬가지임
      이 분야는 신호 대 잡음비가 매우 낮고, Langchain 같은 업계 선도자의 문서도 이미 낡았거나 서로 모순되는 경우가 있음
      블록체인 과열 때도 비슷했으니, 과열 열차의 특징 같음
    • 고통과 흥분이 동시에 느껴짐
      특히 RAG처럼 최근 발전이 너무 빨라 당분간 최신성을 유지하는 참고서가 나오기 어렵기 때문에, 어디서 시작해야 할지 알기 힘듦
      그래도 LlamaIndex 같은 상위 수준 도구의 문서는 개념 자체를 깊게 설명한다기보다 전체 그림에서 어디에 들어가는지 보여줘서 출발점으로 괜찮음
      YouTube는 늘 그렇듯 최신 유행으로 클릭을 끌려는 비전문가가 바다처럼 많아, 시작점으로는 별로라고 봄
    • Lilian Weng의 블로그를 보면 좋음: https://lilianweng.github.io/posts/2023-01-27-the-transforme...
    • Sebastian Raschka의 Machine Learning Q and AI를 추천함
    • 지금은 사람들이 AI에서 정말 형편없는 것들을 만드는 데 시간을 너무 많이 씀
      물론 모든 게 그렇긴 하지만, 그걸 땜질하려 하기보다 가까운 미래에 GPT-4보다 훨씬 나은 것이 나올 거라고 가정하고, 그 전제 위에서 차별화된 제품을 설계하는 편이 더 나음
  • 추측 디코딩을 아는 사람에게는 이게 기본적으로 자기 추측 디코딩임
    예측한 라벨 시퀀스를 여전히 자기회귀적으로 다시 네트워크에 넣고, 일치하는 지점까지만 예측을 유지함
    그래서 성능은 나빠지지 않고 더 빨라질 뿐이며, 여기서는 최대 3배인데 추측 디코딩에서는 보통 수준임
    다중 과제 학습 덕분에 더 좋아질 수도 있음. 여러 단계 앞의 타깃을 보조 손실로 예측하는 아이디어는 이미 꽤 오래됐고, 좋은 작업임

    • 추측 디코딩의 문제는 이를 지원하는 모델이 거의 없고, 지원을 추가하려면 추가 GPU 시간이 든다는 데 있음
      추측 디코딩이 계획 성능까지 개선한다면 더 쉽게 채택될 것임
    • “성능은 나빠지지 않고 더 빨라질 뿐”이라는 말이 조금 혼란스러움
      추측 디코딩은 출력의 정확도나 품질 측면에서 모델 성능을 낮추지 않음
      수학적으로는 정규 자기회귀 디코딩을 했을 때와 샘플링되는 변경된 분포가 동일하고, 차이가 나는 이유는 단순한 무작위성 때문임
      만약 성능을 속도라는 뜻으로 쓴 거라면 추측 디코딩이 속도를 떨어뜨릴 수도 있지만, 대부분의 입력과 적절한 초안 모델 선택에서는 그렇지 않아야 함
  • LLM은 시퀀스 예측에서 특정 출력 길이까지 가능한 모든 토큰 조합의 확률분포를 고려하지 않는 건가? 이미 그렇게 한다고 생각했음
    그렇지 않다면 지금처럼 잘 작동하는 게 놀라움
    예를 들어 2비트 시퀀스의 가능성과 확률이 00: p=0.36, 01: p=0.04, 10: p=0.30, 11: p=0.30이라면 가장 가능성 높은 2비트 시퀀스는 00임
    하지만 다음 토큰 하나만 예측하면 0: p=0.40, 1: p=0.60이라서 다음 비트는 1처럼 보이고, 그다음 비트를 예측할 때 최적이 아닌 시작점으로 이어짐
    긴 시퀀스에서는 결합 확률분포가 주변 분포로 더 잘 분해되지 않을수록 오류가 더 두드러질 것임
    더 생각해 보니, 텍스트 학습 데이터에서 n번째 미래 토큰만 고려하도록 교차 엔트로피 손실 함수를 바꾸고 LLM 성능과 n의 관계를 그려보는 간단한 연구가 가능할 것 같음
    현재 LLM은 모두 n=1이라고 가정하면, 다음 1개부터 n개 토큰까지의 결합 확률분포를 예측하는 데 필요한 자원 폭증을 대부분 우회할 수 있을 것이라는 가설임
    n번째 토큰을 직접 예측하면 더 나은 데이터 모델이 암묵적으로 필요하기 때문임. 적어도 인간이 만든 텍스트에서는 그렇고, 모든 데이터 유형에 해당하지는 않음

    • 관점을 조금 다르게 봐야 할 것 같음
      LLM은 학습 분포를 따르는 텍스트를 샘플링하도록 설계됐지, 뒤따르는 “가장 가능성 높은” 텍스트를 알려주도록 설계된 게 아니며 실제로도 우리는 그걸 원하지 않음
      그러면 출력 다양성이 사라짐
      예시에서는 채팅 애플리케이션이라면 40%는 0, 60%는 1을 샘플링하는 게 말이 됨
      가장 가능성 높은 문장이 중요한 질문 답변 같은 용도에서는 다른 사람들이 말한 것처럼 빔 탐색이 도움이 됨
      또 모델이 “앞을 내다보고” 미래 토큰을 미리 계산한 다음, 그것을 현재 토큰 예측에 사용할 수 있다는 점도 고려해야 함
      실제로 [1] 같은 연구가 이를 다루고 있음
      마지막으로 한 번에 한 토큰을 예측하는 건 인간이 말할 때 하는 방식이므로 틀린 접근은 아님. 우리는 말하기 전에 머릿속에서 이런 “앞보기”를 하고 있음
      [1] https://arxiv.org/abs/2404.00859
    • 실제로 그렇게 작동하고, 낮은 온도에서 예측할 때는 진짜 문제가 됨
      기억하기로는 LLM 출력에서 이상한 패턴이 보이는데, “an”이 “a”보다 덜 가능성이 높은 경우가 많아서 예상보다 모음으로 시작하는 명사가 적게 나오는 식임
    • 언어 모델은 결합 확률 p(y, x)를 p(y, x) = p(y|x) p(x)로 분해하며, 이는 정확함
      즉 어떤 분포로 언어 모델을 학습시키고 온도 1로 샘플링하면 정확히 같은 분포가 나옴
      낮은 온도나 탐욕적으로 샘플링하면 당연히 다른 분포가 나옴
    • 이건 기본적으로 디코더의 탐욕적 샘플링 문제임
      빔 탐색 같은 여러 지역 최적화 샘플링 전략이 있고, 추측 디코딩 같은 더 전역적인 샘플링 작업도 많이 있었음
    • 학습 손실인 다음 토큰의 교차 엔트로피/놀람값과, 학습 후 예측 디코딩인 빔 탐색 같은 것을 섞어 말하고 있음
  • 현재 LLM은 각 출력 토큰마다 처음부터 시작하는 것 맞나?
    “바나나를 노랗게 만드는 것은?”이라고 물었고 “Bananas are yellow due to a pigment called bromelain.”이라고 답한다면, “a”를 출력할 때 이미 신경망 안에서 pigmentbromelain 개념이 어느 정도 활성화돼 있을 것 같음
    이제는 마음을 바꿔 “an optical illusion...” 같은 답으로 이어갈 수 없으니, bromelain이라는 색소에 대해 말하겠다고 이미 앞을 계획한 듯 보임
    LLM이 “a”를 출력할 때 이미 한 작업을 다음 답변에 활용할 수 있을까? 신경망 상태를 다음 답변을 위해 보존할 수 있을까?

    • 다른 방식으로 보면, GPT에게 다음 문장을 완성하라고 해볼 수 있음
      “Bananas are yellow due to a”와 “Bananas are yellow due to an”
      첫 경우엔 “Bananas are yellow due to a pigment called bromelain.”이라고 답할 수 있고, 둘째 경우엔 “Bananas are yellow due to an organic compound called bromelain, which is a yellow pigment.”라고 답할 수 있음
      어느 쪽이든 GPT는 “a”나 “an”을 골라도 응답의 의미에는 영향이 없을 수 있음
      극단적으로는 LLM이 “due to” 다음 토큰은 “a”가 55%, “an”이 45%라는 멍청한 휴리스틱으로 움직인다고 볼 수도 있음
      현실은 물론 더 정교하지만, 그런 휴리스틱만으로도 이 행동은 설명됨
      사전 학습 데이터에 bromelain 관련 사실을 넣지 않았다면 LLM은 정말 “an optical illusion” 같은 내용으로 자동완성할 수도 있음
      GPT-3는 그런 사실 오류를 꽤 자주 냈지만, “a”와 “an”의 문법 규칙은 알아낸 것으로 기억함
      말한 것처럼 개념이 실제로 미리 활성화될 필요는 없다고 보지만, 암묵적·창발적 의미에서는 그런 사전 활성화가 일어날 가능성은 있음
    • 어느 정도는 어텐션이 이전 토큰의 계산을 나중에 유용하게 만드는 메커니즘임
      KV 캐시를 지금까지의 텍스트와 그에 대한 모델의 생각을 표현한 것으로 볼 수 있음
      언어 모델은 시퀀스 전체를 끝까지 학습하므로 이런 일이 일어날 가능성이 크다고 봄
      다중 토큰 예측은 이 행동을 명시적으로 장려하지만, 정의한 작은 n 토큰 창 안에서만 그럼
      한편 transformer 언어 모델의 계산 활용도를 높이려는 작업으로 조기 종료, 깊이 혼합, SSM 같은 새 구조도 많이 있음
    • LLM 출력은 보통 가장 확률 높은 다음 토큰/단어 몇 개에서 무작위로 샘플링되지만, 모델 자체는 샘플러가 어떤 단어를 고를지 모름
      아마 “a”나 다른 후보 뒤에 무엇이 올 수 있는지에 대한 개념적 계획은 있겠지만, 그런 고수준 예측은 “a”가 생성되면 다시 처음부터 재고됨
      모델은 각 단어가 생성된 뒤 마음을 바꿀 수 있을 뿐 아니라 그래야만 함
      그래서 이런 “계획”은 매우 덧없고, 깊이 생각해서 답변과 표현을 고르는 사람보다는 즉흥적으로 만들어내는 프리스타일 래퍼에 가까움
    • 이 글이 흥미로움: https://clementneo.com/posts/2023/02/11/we-found-an-neuron
    • 대부분 LLM의 출력은 확률적
      핵심 LLM은 토큰을 받아 다음에 올 순위 매긴 토큰 집합과 “확신도”를 출력함
      그다음 보통 필터링과 탐색 단계가 있어, 그 순위 토큰을 다시 LLM에 넣어 더 많은 순위 토큰을 얻고 짧은 확률 트리를 만듦
      예를 들어 상위 N개 토큰을 다시 넣으면 각각이 새로운 상위 N개 토큰 집합을 만듦
      그 트리를 보고 합산 확신도가 가장 높은 가지, 반복 토큰이 가장 적은 가지, 입력 토큰과 일치하는 토큰이 가장 적은 가지를 고르는 식의 기본 필터링을 하거나, 대개는 이런 기준을 조합하고 합산 확신도로 가중한 무작위 선택까지 더함
      그래서 가중치가 완전히 고정된 LLM에 같은 입력을 여러 번 줘도 다른 출력이 나올 수 있음
      즉 구체적인 질문에 답하면, 모델은 “마음을 바꿀” 수 있음. 생성된 모든 토큰은 확률적 출력 필터가 가능한 출력 경로 중 새 경로를 고를 기회를 만듦
  • 아주 순진한 질문일 수 있지만, 문장 전체의 의미를 인코딩하는 벡터를 만들 수 있다고 가정하면 왜 LLM을 단어 하나 대신 그 문장 벡터를 예측하도록 학습시키지 못하는 걸까?

    • 저자임. 아주 좋은 지점이고, 이해하기로는 여러 팀에서 진행 중인 작업임
      언어용 오토인코더를 학습시키는 건 텍스트에 담긴 정보량이 시각/영상에 비해 작아서 실제로 매우 쉬움
      어려운 부분은 모든 신호가 토큰 공간의 정확한 일치에서 올 때 모델이 의미 부분에 집중하게 만드는 것임
      그래서 Yann LeCun의 공동 임베딩 예측 구조 아이디어가 나옴
      또한 보조 과제는 더 많은 신호를 주지만 초점을 옮겨버리는 절충이 항상 있음
      우리 경우 예측 토큰 수가 너무 많으면 성능 저하를 봤음
      따라서 잠재 예측 방법은 무엇이 유용한지 정리해야 함
    • 멍청한 질문은 아니라고 봄
      문제는 답을 나타내는 벡터를 얻은 뒤, 그 답을 다시 단어 표현으로 되돌리는 또 다른 모델 같은 것이 필요하다는 점임
      텍스트용 확산 모델 같은 것일 수 있음
      추가로 이 확산 모델이 근사할 함수는 단사 함수가 아니고, 잘해도 전사 함수이며, 나쁘면 수학적 의미의 함수조차 아닐 수 있음
      하나의 임베딩에 대해 가능한 텍스트 표현이 많고, 그중 대부분은 문법적으로나 의미적으로 유효하지 않을 수 있기 때문임
      마지막으로 임베딩은 어떤 데이터의 손실 있는 표현이므로 역함수는 많은 뉘앙스와 문맥을 잃게 됨
      LLM은 질의와 이전 n개 토큰과 자기일관성을 유지하는 방식으로 다음 토큰, 이제는 다음 n개 토큰을 예측함으로써 위 문제를 피하고, 이들이 근사하는 함수는 대체로 전사에 가까워야 함
    • 나도 초보지만, 문장 벡터를 인코딩하고 학습하고 합성한다면 AI가 새것을 만드는 능력이 문장에서 단어 수준으로 올라가는 게 아닐까?
      지금은 대략 단어를 다루므로 AI는 아는 단어만 쓸 수 있지만 단어로 새로운 문장을 합성할 수 있음
      AI가 문장 단위로 작동하면 이미 본 문장만 되뇌는 것 아닌가? 그러면 새 문단은 합성할 수 있어도 새 문장은 못 만들 것 같음
      영어에서는 문장이 AI에 유용한 추상화인지 확신이 없음. 인간에게도 간신히 유용한 정도임
      평범한 채팅, 이메일, YouTube 댓글을 보면 실제로 문장이 아니거나 구두점도 안 쓴 경우가 아주 많음
      문장이 의미 장치에 대응한다고 보지 않음
      문장은 작성자에 따라 두 단어일 수도, 영어 논문의 절반일 수도 있고, 여섯 가지 아이디어를 가로지를 수도, 하나만 담을 수도 있음
      문장이 어디서 끝나는지는 대체로 의미보다 작성자 성향에 더 좌우됨
    • 토큰화가 병목의 일부라고 이해함
      문장을 토큰으로 쪼개면 각 토큰이 벡터 표현을 얻음
      문장 수준으로 가면 모든 토큰의 사전이 무한해질 것임
    • 그래도 단어와 문장 벡터 사이를 어떻게든 변환해야 함
      그걸 더 빠른 모델로 해볼 수는 있겠지만, 출력 품질이 떨어질 것 같음
  • 논문을 아직 아주 자세히 읽지는 않았지만, 작은 편집 코멘트가 있음
    부록 L.2는 만족스러웠지만 5.2의 압축된 논증은 조금 허술하다고 느낌
    특히 H(X) + H(Y) = H(X | Y) + 2I(X ; Y) + H(Y | X)에서 H(Y | X)를 “버린다”고 하는 부분이 명확하지 않았음
    세 번째 토큰 Z를 예측한다면 H(Y | X)는 암묵적 문맥 C에 들어 있어야 하고, 따라서 자유롭게 버릴 수 없는 것 아닌가?
    부록에서도 이 논증이 명확해진 것 같지는 않음
    다만 주장의 요지를 의심할 정도로 헷갈린 건 아니고, 대체로 표현 방식의 문제임

    • 피드백 고마움. 더 잘 말해보면, 결국 생성에는 다음 토큰 헤드만 사용함
      그렇다면 2토큰 타깃 H(X) + H(Y) 중 어떤 부분이 학습을 돕는 보조 정보이고 어떤 부분이 낭비인가?
      H(X | Y)와 I(X; Y)는 다음 토큰 생성에 유용하지만, H(Y | X)는 정의상 다음 토큰 X와 관련 없는 정보량임
      그래서 “다중 토큰 예측은 H(Y)의 유용한 정보 I(X; Y)를 H(Y | X)에 대한 낭비 계산과 맞바꾼다”고 말할 수 있음
      다만 H(Y | X)는 접두사 (C, X)에서 Y를 예측하는 다음 토큰 엔트로피라는 점에 유의해야 함
      어텐션 메커니즘이 Y|X 예측을 위해 이미 수행한 계산을 다음 단계로 옮길 수 있다면, 그 계산은 실제로 낭비가 아니라 사전 계산이었을 수 있음
  • LLM은 말 그대로 세계를 향한 1차원 창만 갖고 있다는 글을 읽었음
    모든 것이 토큰 시퀀스일 뿐임
    이런 다중 예측 같은 것이 그 시야를 1.1차원쯤으로 넓혀줄지도 모름
    어쨌든 그 창을 어떻게든 2차원 이상으로 확장해야 한다는 실제 논거가 있음

    • 구조적으로는 특히 코딩 작업에서 더 잘할 여지가 많아 보임
      예를 들어 FAIR 수준의 자원이 있고 정말 좋은 Java 코딩 모델을 학습시키고 싶다면, 토큰이 아니라 AST를 예측하도록 학습시키는 게 말이 됨
      주석, 식별자 이름 등을 예측하려면 일반 LLM과 결합된 형태가 여전히 필요하겠지만, 프로그램 자체를 토큰 스트림으로 모델링하지는 않을 것임
      대신 “if 블록 추가”, “매개변수 4개짜리 메서드 호출 블록 추가” 같은 것을 예측하게 할 수 있음
      또한 현재 커서의 타입 멤버 같은 정보를 위해 문맥 창의 특정 위치를 예약하도록 모델을 학습시키고, 추론 루프를 IDE/LSP 스타일 정적 분석과 통합할 수도 있음
      이렇게 하면 모델이 실제 텍스트에 포함된 것보다 더 많은 정보를 볼 수 있음
      지금 이런 모델이 잘 안 보이는 이유는 이런 연구 비용이 크고, AI 쪽 사람들이 다 Python 중심이라 Python은 IDE의 이점을 크게 못 받기 때문이라고 봄
  • 머신러닝에서 head라는 단어가 일관되게 쓰이지 않아 헷갈릴 수 있음
    이 논문에는 multihead attention과 multiple output heads라는 개념이 둘 다 있음
    multihead attention은 transformer 구조에서 입력의 서로 다른 영역에 집중하는 것이고, 여기서 생물학적 비유는 중앙 처리 장치로서의 머리에 가까움
    output head는 신경망의 마지막 층을 뜻하며, 같은 이전 층을 바탕으로 서로 다른 출력을 내는 여러 개를 둘 수 있음
    이것도 느슨한 생물학적 비유지만, CPU로서의 머리라기보다 몸의 한쪽 끝에 있는 머리에 더 가까움
    어느 쪽도 데이터를 읽는 테이프 헤드에 대한 비유는 아님

  • LLM은 자기 출력을 다시 입력으로 먹이는 방식으로 상당 부분 “생각”하는 것처럼 보이고, 그래서 모델에게 소리 내어 생각하기를 강제하면 추론 품질이 높아진다는 점이 꾸준히 관찰됨
    즉 사고 사슬 추론은 질문에 바로 답하게 하는 것과 달리, 무엇을 요구받았는지 다시 말하고, 답하기 위해 어떤 정보가 필요할지에 대한 상위 전략을 표현하고, 알고 있는 정보를 말하고, 그 정보가 초기 추론에 어떻게 영향을 줄지 설명하게 함
    그런데 매 시점에 다음 여러 토큰을 예측하게 하는 방식은 본질적으로 반대 효과를 낼까 걱정됨
    사고 사슬 프롬프팅은 모델이 입력으로 n개 토큰만 가질 때보다 n + m개 토큰을 가질 때 더 “똑똑하다”는 점을 보여주는 것 같음
    따라서 주어진 n에서 다음 5토큰을 얻는 것은, n에서 다음 1토큰을 얻고 n+1에서 다음 1토큰을 얻는 식보다 결과가 나쁠 수 있음

    • LLM에 충분히 저렴한 모델이 있다면 작업에 필요한 만큼 항상 토큰을 생성할 것임
      이 특정 방법이 더 많은 토큰을 요구한다는 사실은 중요하지 않음
      저렴한 모델이 없다면 LLM이 실제 답 대신 추정치로 답하려는 편향에 늘 좌우될 것임
      또한 대부분의 추측 디코딩 전략은 모델을 순차적으로 실행한 것과 동일한 출력을 냄
      예측이 틀리면 해당 토큰은 버려지고 속도 향상만 사라짐
  • 토큰/단어 +1과 +2를 독립적으로 예측한다면, 문법적으로 어떻게 여전히 말이 되는 결과가 나오지? 자주 깨질 것 같은데?

    • +1과 +2 예측은 그냥 버리고, 더 효율적인 학습을 위해서만 생성함
      초록에서는 명확하지 않지만 그림 1 설명에 “추론 중에는 다음 토큰 출력 헤드만 사용한다. 선택적으로 다른 세 헤드는 추론 시간을 줄이는 데 사용할 수 있다”고 되어 있음
      상위 예측을 전부 가져오면 세 헤드를 모두 쓸 수도 있겠지만, 그러면 흔한 샘플링 전략을 쓸 수 없게 됨
      벤치마크 밖에서 온도 0으로 LLM을 실제로 돌리는 사람이 얼마나 되는지는 모르겠고, 온도를 적용하는 것보다 더 나은 뭔가를 한다면 또 다를 수 있음
    • n+1번째 토큰은 n번째 토큰이 주어졌을 때 가능성이 낮으면 버려짐