2P by GN⁺ | ★ favorite | 댓글 1개
  • 긴 응답을 만들 때 토큰을 하나씩 생성하는 자기회귀(AR) 디코딩이 지연의 핵심 병목이며, CLLM은 이를 n개 토큰 단위의 병렬 디코딩으로 줄이려는 접근임
  • Consistency Large Language Models(CLLMs) 는 사전학습 LLM을 미세조정해 임의의 n토큰 상태를 AR greedy 결과와 같은 고정점으로 빠르게 매핑하도록 학습함
  • Jacobi decoding은 이론적으로 AR greedy 생성과 같은 결과에 수렴하지만, 기존 LLM에서는 평균 1.05배 수준의 제한적 속도 향상에 그쳐 실용성이 낮았음
  • CLLM은 Spider, Human-Eval, GSM8k, MT-bench 실험에서 2.4배~3.4배 생성 속도 향상을 보였고 Medusa2, Eagle 같은 빠른 추론 기법과 비슷하거나 더 나은 수준으로 평가됨
  • 추론 시 보조 모델 컴포넌트나 대상 모델 아키텍처 변경이 필요 없어, 속도 개선과 메모리 효율을 함께 노릴 수 있음

CLLM이 겨냥하는 디코딩 병목

  • LLM은 프로그래밍, 법률, 건강 조언 등 다양한 영역에서 쓰이지만, 추론 단계에서는 보통 자기회귀(AR) 디코딩으로 토큰을 하나씩 생성함
  • 응답이 길어질수록 토큰별 생성 방식 때문에 지연이 커지고, 사용자에게 체감되는 대기 시간이 늘어남
  • 기존의 빠른 추론 방식은 여러 토큰을 한 번에 만들기 위해 아키텍처 수정, 보조 컴포넌트, 초안 모델을 요구하는 경우가 많음

Jacobi decoding의 작동 방식과 한계

  • Jacobi decoding은 Jacobi 및 Gauss-Seidel 고정점 반복에서 출발한 방식이며, greedy 디코딩에서는 AR 생성과 동일함이 증명됨
  • 순차 생성을 n개 변수와 n개 비선형 방정식의 시스템으로 바꾸고, Jacobi 반복으로 병렬 계산할 수 있게 만듦
  • 구체적인 흐름은 다음과 같음
    • 입력 프롬프트에서 다음 n개 토큰을 무작위로 추측함
    • 프롬프트와 n토큰 시퀀스를 LLM에 넣어 반복적으로 업데이트함
    • 시퀀스가 더 이상 변하지 않으면 고정점(fixed point) 에 도달함
    • 최종 n토큰 시퀀스는 greedy 전략에서 AR 디코딩이 생성했을 출력으로 수렴함
  • 초기 무작위 추측에서 최종 AR 생성 결과까지 이어지는 경로를 Jacobi 궤적(Jacobi trajectory) 이라고 부름
  • 기본 Jacobi decoding은 실제 LLM에서 AR 디코딩 대비 평균 1.05배 정도의 제한적 속도 향상만 보임
    • AR로 학습된 LLM은 앞 토큰에 오류가 있으면 뒤 토큰을 올바르게 예측하기 어려움
    • 대부분의 Jacobi 반복이 n토큰 시퀀스에서 하나의 토큰만 교정해 궤적이 길어짐
  • Lookahead decoding과 speculative decoding은 Jacobi decoding 및 기존 AR 디코딩의 비효율을 줄이려 하지만, 추론 시 추가 메모리 비용이 생김

Consistency LLM의 학습 목표

  • CLLM은 사전학습 LLM이 Jacobi 궤적의 임의 지점에서 고정점으로 일관되게 이동하도록 적응시키는 방식임
  • 이 목표는 확산 모델 가속 기법인 consistency models의 목표와 유사함
  • 대상 모델에서 수집한 Jacobi 궤적을 이용해, Jacobi 반복 중 단일 단계 수렴을 장려하는 손실로 모델을 학습함
  • 각 대상 모델을 CLLM으로 바꾸는 학습은 두 부분으로 구성됨
    • Jacobi 궤적 준비
      • 각 프롬프트에 대해 n토큰 단위의 모든 절단 구간마다 Jacobi decoding을 순차 수행함
      • 전체 응답 시퀀스는 연속된 고정점들을 이어 붙인 형태가 됨
      • 궤적 중 생성된 각 시퀀스가 하나의 학습 데이터 항목으로 계산됨
      • 긴 응답에서 전체 긴 입력을 평가하는 속도 저하를 피하기 위해 n토큰 절단을 사용함
    • Consistency loss와 AR loss 공동 최적화
      • consistency loss는 여러 토큰을 한 번에 예측하도록 유도함
      • AR loss는 CLLM이 대상 LLM의 분포에서 벗어나지 않게 해 생성 품질 유지를 돕음

손실 함수 구성

  • 대상 LLM을 p, CLLM을 로 두며, p의 파라미터로 초기화됨
  • Global consistency(GC) loss는 Jacobi 궤적의 임의 상태 y를 입력으로 넣었을 때 CLLM이 고정점 y*를 출력하도록 유도함
  • Local consistency(LC) loss는 Jacobi 궤적에서 인접한 상태 y(j)y(j+1)이 같은 출력을 내도록 맞춤
  • 분포 간 거리 D(·||·)는 GKD 방법에서 논의된 선택지를 따르며, 본 실험에서는 주로 forward KL을 사용함
  • AR loss는 대상 LLM p의 생성 결과 l을 기반으로 전통적인 자기회귀 손실을 적용해 대상 LLM 분포에서 벗어나는 것을 막음
  • 전체 학습 손실은 consistency loss와 가중치 w가 붙은 AR loss의 합으로 구성됨

실험 설정과 결과

  • 실험은 세 가지 특화 도메인 작업과 하나의 오픈 도메인 대화 벤치마크를 포함함
    • Spider: text-to-SQL
    • Human-Eval: Python 코드 완성
    • GSM8k: 수학
    • MT-bench: 오픈 도메인 대화
  • 작업에 따라 대상 모델로 fine-tuned coder LLM, Deepseek-coder-7B-instruct, LLaMA-2-7B, ABEL-7B-001을 사용함
  • 학습과 평가는 모두 NVIDIA A100 40GB 서버에서 수행됨
  • 특화 도메인에서는 원래 대상 모델, Medusa2, speculative decoding 등 기준선과 비교했을 때 CLLM이 가장 큰 속도 향상을 보임
  • MT-bench에서는 ShareGPT 데이터셋으로 LLaMA2-7B에서 학습한 CLLM이 lookahead decoding과 결합했을 때 Medusa2와 비슷한 속도 향상을 달성함
    • MT-bench 점수도 비교 가능한 수준임
    • CLLM은 대상 모델의 원래 아키텍처 수정이 필요 없음
    • 보조 컴포넌트가 없어 메모리 효율성이 높음

학습 비용

  • CLLM 미세조정 비용은 중간 수준으로 제시됨
  • LLaMA-7B는 Spider 데이터셋에서 약 100만 토큰만 통과해 3.4배 속도 향상을 달성함
  • CodeSearchNet-Python처럼 데이터셋이 큰 경우, 데이터셋의 10% 만 Jacobi 궤적 생성에 사용해 약 2.5배 속도 향상을 얻음
  • 총 토큰 수는 다음 식으로 추정함
    • 평균 프롬프트당 궤적 수 × 평균 궤적 길이 × 프롬프트 수
  • 데이터셋별 추정 학습 비용은 다음과 같음
    • Spider: 200만 토큰, 사전학습 비용의 < 0.01%
    • CodeSearchNet-Python: 1억 토큰, 사전학습 비용의 ~0.1%
    • GSM8K: 1,000만 토큰, 사전학습 비용의 ~0.01%
    • ShareGPT: 2억 토큰, 사전학습 비용의 ~0.2%

빠른 전진과 고정 토큰

  • 대상 LLM은 일반적으로 한 번의 Jacobi 반복에서 올바른 토큰을 하나만 생성함
  • CLLM에서는 한 번의 Jacobi 반복에서 여러 연속 토큰을 올바르게 예측하는 빠른 전진(fast forwarding) 현상이 나타남
  • 대상 LLM에서는 앞서 올바르게 생성된 토큰도 이후 반복에서 잘못된 토큰으로 바뀌는 경우가 있음
  • CLLM은 앞 토큰에 오류가 있어도 올바른 토큰을 미리 예측하고, 그 토큰을 이후에도 유지하는 능력을 보임
    • 이런 토큰을 고정 토큰(stationary tokens) 이라고 부름
  • 빠른 전진과 고정 토큰은 CLLM의 Jacobi decoding이 더 빨리 수렴하게 만들어 생성 속도 향상에 기여함

언어적 패턴 학습

  • CLLM은 학습을 통해 연어(collocations) 라는 언어 개념을 습득하는 것으로 관찰됨
  • 연어는 무작위 우연보다 더 자주 함께 등장하는 단어나 용어의 연속을 뜻함
  • 자연어와 코드 모두에서 연어 예시가 존재함
    • 자연어: talk to, remind … of …
    • 동사+명사 구조: make a decision, catch a cold
    • 도메인별 문법 구조: SELECT … FROM …, if … else
  • consistency generation 목표는 CLLM이 Jacobi 궤적의 어느 지점에서도 이런 구조를 추론하게 해, 반복 단계를 줄이기 위해 여러 단어를 동시에 예측하도록 장려함

자료와 코드

댓글과 토론

Hacker News 의견들
  • "자유 드로잉"(강의 없음) 수업을 들었을 때의 경험과 비슷함
    어릴 때부터 그림을 잘 그린다는 말을 들었지만, 실제로는 예전에 그렸던 비슷한 세밀화들을 반복하거나 시간을 많이 들여 그렸던 기억이 남. 시간과 인내심만 있으면 누구나 장면을 꽤 그럴듯하게 그릴 수 있다고 봄
    수업에는 규칙이나 강의가 없었고, 각자 원하는 재료를 가져왔음. 누군가는 잉크, 누군가는 연필, 나는 목탄을 가져갔고, 정해진 건 모델 포즈 사이의 시간뿐이었음. 처음 몇 포즈는 1분쯤으로 매우 짧고, 점점 길어져 5분 포즈까지 갔으며, 언제든 그림을 찢고 같은 포즈를 다시 그릴 수 있었음
    짧은 워밍업이 실제로는 비율과 윤곽을 첫 시도에 맞추도록 강제했고, 서두르면 망친다는 통념과 달리 기술을 배우거나 다듬을 때는 조급함이 주의와 학습을 유도하는 스트레스 요인으로 작동하는 것 같음
    수업 전에도 비슷한 품질의 그림은 그릴 수 있었겠지만, 5~10배는 오래 걸렸을 것이라고 확신함. 빙빙 돌지 못하게 강제되고 성급한 실수의 대가를 느끼는 방식이 효과가 있었음
    다만 이 기법을 Consistency라고 부르는 건 아쉬움. 성능 개선에는 어울리지만 추론 속도 개선에는 덜 맞는 이름 같고, "한 토큰씩 생성했을 때 결국 나왔을 결과와의 일관성"이라는 뜻은 이해함. 차라리 같은 출력을 기대하되 같은 결론에 더듬거리며 도달하는 억제가 없는 Proficiency LLM이라고 부르고 싶음

    • CLLM 저자로서 경험과 통찰을 공유해줘서 고마움. 그림 실력을 다듬는 과정이 CLLM 학습 과정과 닮아 보이고, 다만 현재 CLLM 학습의 스트레스 요인은 점점 더 빡세지는 형태는 아님
      그림에서는 매 시도마다 허용 시간을 정하고 점점 짧게 만들 수 있음. CLLM에서는 Jacobi 궤적에서 점점 더 먼 상태를 최종 상태에 매핑하도록 해서 학습 과정을 더 어렵게 만들 수 있을 듯함
      "consistency"라는 용어는 확산 이미지 생성의 consistency model과 consistency LLM 사이의 유사성을 가져온 것이고, 학습 과정이 서로 비슷하기 때문임
    • 어느 여름 무척추동물학 실험 수업에서 흥미로운 경험을 했음
      학생들은 실험실에 들어가 표본을 받고, 지시는 "이걸 30분 안에 그려라. 시작"뿐이었음
      "그림은 이렇게 그린다", "이건 하고 저건 하지 마라" 같은 말은 없었고, 사실상 "네가 불안해하든, 못 그린다고 생각하든 상관없다. 변명하지 말고 그냥 그려라. 지금"에 가까웠음
      우리는 모두 그렸고, 여름 내내 더 많은 동물이 들어오고 같은 훈련을 반복하면서 모두 엄청나게 늘었음
      그 수업이 가르쳐준 건 누구나, 정말 누구나 그릴 수 있다는 것임. 집단적인 태도가 "이게 가능한지도 모르겠다"에서 "당연히 할 수 있다. 쉽고, 일상적이고, 별것 아니다"로 바뀌었음
      강력히 추천할 만한 접근이고, 대학에서 들은 수업 중 가장 해방감 있고 놀라웠던 수업이었음
    • 시스템은 보통 스트레스를 받으면 더 효율적이 됨. 동시에 지역 최적해로 밀려나기도 하니, 모든 것에는 장단점이 있음
  • 저자들은 Jacobi 디코딩이 탐욕적 자기회귀 디코딩과 같다고 말하지만, 실제로는 반복과 지나치게 일반적인 답변을 피하려고 샘플링 온도를 0보다 높이고 싶을 때가 많지 않나 싶음
    이 디코딩 전략을 전혀 몰라서, 이를 반영하는 간단한 방법을 놓치고 있을 수도 있음

    • 좋은 질문임. 탐욕적 샘플링이 아닌 다른 샘플링 전략도 지원하려고 적극적으로 작업 중임
      CLLM 학습 맥락에서는 Jacobi 디코딩으로 얻은 정적인 고정점을 학습 목표로 매핑하는 대신, 이를 동적 고정점이라고 부르고 있음. 새 진행 상황은 GitHub 저장소를 지켜보면 됨
    • 동의함. 어떤 토큰이 최댓값 선택이었는지는 확인하기 쉽지만, 어떤 토큰이 원하는 확률로 나타났는지 확인하기는 어려워 보임
      원하는 통계를 가진 n-토큰 완성으로 궤적이 접근하도록 학습하는 미세조정 단계는 여전히 가능하겠지만, 고정점 확인 단계를 어떻게 대체할 수 있을지는 잘 모르겠음. 아마 "우도에 대해 이 고정 임계값 이상이었는지 확인" 같은 방식일 수 있음
  • LLM 내부에서 무슨 일이 일어나는지 정말로 이해하기 전에 하기에는 꽤 위험한 최적화처럼 느껴짐. 예를 들어 기하학적 해석을 믿는 쪽에서는 할 말이 있을 테고, "채우기" 토큰을 쓰는 경우에는 해로울 수도 있어 보임
    또 "마음속에서 완전한 문장을 만든 뒤 단어별로 말한다"는 가정은 보편적 사실이 아니라 가정일 뿐이고, 우리 마음에서 일어나는 활동을 지나치게 단순화하는 것 같음. 정말 말하거나 타이핑하기 전에 완전한 계획이 있나? 불교 신자로서 그것은 환상에 가깝다고 봄. 더 나아가 동시적인 생각은 어떻게 되는가? 우리는 문장 단위에서 선형적으로 사고하는가?
    어쨌든 수학은 꽤 멋짐

    • 이 최적화는 LLM의 결과에 영향을 주지 않고, 직접 디코딩한 것과 동등한 결과를 생성하도록 보장됨
      LLM을 우리 마음과 닮은 마법 같은 것으로 취급하지 말자. 그저 말이 되는 문장을 만들어내는 또 하나의 프로그램일 뿐임
    • 그 가정이 이 맥락에서는 유용할 수 있지만, 사실이 아닌 건 꽤 분명해 보임
      복잡한 과거 사건을 여러 갈래로 설명해보라고 하면, 사람들은 전체 사건 범위를 담기 위해 문장 중간에 조각, 보충, 곁가지를 빠르게 끼워 넣음. 문장 단위 세분성 가설을 진지한 과학적 맥락에서 본 적은 없는 것 같음
    • 모두에게 해당한다고 말할 수는 없지만, 적어도 나는 말하기 전에 완전한 문장을 머릿속에서 만들지 않음
      가끔 문장 중간에 문법적으로 막다른 길에 몰려 어색한 단어나 구절로 생각을 마무리해야 하거나, 그냥 멈추고 처음부터 다시 말하기도 함
    • 우리는 단어가 여러 언어에서 의미를 가진 더 작은 단위로 쪼개질 수 있음에도, 그 아래 구성 요소에서 순차적으로 단어를 만드는 것처럼 보이지 않음
      이 현상이 문장 수준에서 갑자기 깨질 명확한 이유도 없어 보임
    • 기하학적 해석이 무엇인지 궁금함
  • 더 큰 주목을 못 받는 게 놀라울 정도임. 이건 추론 성능에 명확한 이득으로 보임
    이 미세조정 비용은 합리적이고, 원래 사전학습 비용의 약 0.01% 수준임. 성능 이득도 꽤 일관적으로 보임

    • LLM 성능에 아주 큰 결과처럼 보임
      이 정도로 LLM 추론 성능을 높일 수 있다고 제안한 다른 논문을 잘 모르겠음. 이전에 있었나?
      적어도 출력 품질을 유지하고, 질의 지연시간뿐 아니라 전체 처리량도 개선하며, 추가 연산을 요구하지 않고, 구현도 비교적 실용적이고 큰 복잡성을 추가하지 않는 조건에서는 더욱 그렇음
      병렬/Jacobi 디코딩에서 해온 작업 위에 쌓은 것이니 통찰 자체는 점진적이라고 볼 수도 있음. 이전 결과들도 필요하고 중요했지만, 병렬 디코딩의 가능성에서 실제 세계의 가치를 뽑아낸 건 이 결과일 수 있음
    • 비슷하거나 더 큰 추론 이득은 이미 널리 쓰이는 추측 디코딩으로도 얻어짐
      그래서 이 작업은 정말 흥미롭고, 내가 알기로는 이전에도 덜 성공적으로 시도된 적이 있지만, 실제 영향력이 얼마나 클지는 아직 분명하지 않음
    • 우리 작업에 관심을 가져줘서 고마움. consistency loss + AR loss로 데이터셋의 일부만 학습해도 상당한 속도 향상이 나왔고, 비용은 사전학습의 0.01% 수준이었음
      더 많은 데이터로 학습하면 속도가 더 올라감. 모델이 더 자주 등장하는 연어와 구문에서 배울 수 있기 때문임
      자세한 내용은 논문을 보면 되고, 학습 데이터 크기가 커질수록 속도 향상이 포화되는 것도 확인할 수 있음
  • 처음에는 후속 토큰을 추측하기 위해 unembed head를 더 쓰는 Medusa류 논문인 줄 알았는데, 전혀 아니었음
    정말 대단함. 추가 매개변수도 쓰지 않고, 그냥 보조 학습 손실만 추가함

    • Medusa와 CLLM의 유일한 공통점은 둘 다 빠른 추론을 위해 LLM을 학습·적응시킨다는 것뿐임
      학습 기법, 디코딩 기법이 완전히 다르고, 지적한 대로 CLLM은 추가 매개변수나 트리 기반 검증을 위한 어텐션 마스크 설정이 필요 없음
  • 곧 모델을 꼭 학습할 필요가 없다는 걸 깨닫게 될 것 같음
    필요한 건 좋은 색인화와 샘플링
    본질적으로 어느 수준에서는 모든 LLM이 데이터셋의 데이터베이스와 같고, 그 위에 훌륭한 자연어 인터페이스가 올라간 것이라고 볼 수 있음
    둘 다 저장된 데이터를 탐색하는 서로 다른 방법일 뿐임

    • LLM은 학습 데이터셋에 없는 데이터를 쉽게 만들어낼 수 있음
      LLM은 저장된 데이터를 탐색하지 않음. LLM은 학습 데이터의 데이터베이스가 아님
    • 하지만 색인화도 학습임. 다만 종단 간 경사하강법을 쓰지 않을 뿐임
    • 모델은 학습 데이터의 압축본보다도 여러 자릿수로 더 작기 때문에, 그 데이터베이스와 동등할 수 없음
    • 그렇다면 Infinigram 논문이 마음에 들 수 있음. 최근에 논의됐음
      https://news.ycombinator.com/item?id=40266791
  • 나처럼 잘 모르는 사람이 "AI 전문가에게 물어보기"를 할 수 있는 곳이 있을까?
    예를 들어 LLM이 같은 프롬프트를 받아도 왜 같은 결정론적 방식으로 응답하지 않는지 묻고 싶음
    이걸 배우고 싶고, YouTube의 "1시간 만에 LLM 만들기" 같은 영상을 따라가야 할지도 모르겠음

    • 소프트웨어에는 모델이 내놓는 가중치가 붙은 다음 토큰 후보들 중 하나를 고르는 난수 생성기가 말 그대로 들어 있음
      선택 과정에는 응답을 조작하는 여러 손잡이가 있을 수 있음. 결정론적으로 만들고 싶고 소프트웨어에 직접 접근할 수 있다면, 사용하는 소프트웨어에 따라 top-k = 1 또는 temperature = 0.0으로 설정하면 결정론적으로 됨
      보통 기본 설정은 결정론이 아닌데, 완전히 결정론적으로 만들면 결과 품질이 별로 좋지 않은 경향이 있기 때문임
    • 그 답은 3blue1brown 영상을 참고하면 됨
      LLM 모델은 토큰에 대한 확률 벡터를 출력하고, LLM 사용자는 난수를 이용해 가능성이 높은 목록에서 토큰을 고름
    • LLM은 본질적으로 확률 행렬이기 때문임
      프롬프트를 입력하면 다음 단어가 나올 확률을 계산하고, 그 과정을 반복해 결국 문장을 만듦. 학습된 확률은 학습 데이터에 기반함
      이런 기반 확률 모델 때문에 100% 결정론적이지 않음. 게다가 ChatGPT 같은 모델은 의도적으로 temperature 매개변수를 두어 전체 과정에 무작위성을 더함
      더 읽고 싶다면 이 답은 다음 논문을 바탕으로 했음: The Matrix: A Bayesian learning model for LLMs, https://arxiv.org/abs/2402.03175
    • 대부분의 시스템에서는 temperature라는 추론 설정 매개변수로 이를 제어할 수 있음
      하지만 온도를 가능한 한 낮게 설정하면 답변 품질이 매우 낮아지는 경향이 있음. 시스템이 어떤 지역 최적해에서 빠져나오지 못하고 계속 반복하게 됨. 그런 답변은 "결정론적"일 수는 있지만 좋지는 않음
    • 이 글이 꽤 체계적으로 설명하면서도 큰 그림을 잃지 않는 좋은 출발점이었음
      https://writings.stephenwolfram.com/2023/02/what-is-chatgpt-...
  • 공짜 점심은 없으니, 내가 보기에는 여기에도 어떤 경로 손실이 있음
    예를 들어 일부 Jacobi 궤적은 정의상 더 높은 온도의 경로를 제외함. 데이터 검색 관점에서는 오히려 긍정적일 수도 있지만, 창의성을 최대화하고 싶다면 부정적일 수 있음

    • 더 좋은 알고리즘과 더 나쁜 알고리즘은 있음
      "공짜 점심은 없다"가 항상 특별히 의미 있게 적용되는지는 잘 모르겠음. 어떤 것들은 파레토 전선 위에 있지 않음
  • "추측 디코딩 방식은 추론 시 추가 메모리 비용이 든다"는 부분에 대한 자세한 설명이 궁금함
    추측 디코딩에서는 더 작은 모델이 빠르지만 부정확할 수 있는 "분기"를 생성하고, 이후 큰 모델로 이 분기들을 검증함. 하지만 추측 디코딩에는 단일 토큰에 해당하는 메모리만 필요하고, 다른 분기의 토큰은 추론 중 단순히 마스킹됨. 문맥 크기 1000에 5토큰짜리 분기 약 30개라면 메모리 오버헤드는 3%로 무시할 만함. 문맥 크기가 분기 수에 비해 훨씬 작다면, 문맥 창이 50토큰뿐인 생성형 LLM 사용자가 생성 속도를 신경 쓸까 싶음
    또한 추측 디코딩 기법은 탐욕적 샘플링에 제한되지 않음. 원래 모델과 정확히 동일하게 동작하고 기대 확률로 샘플링해야 함. 추측 디코딩 관련 문헌 대부분은 이미 2.6~3.5배 속도 향상을 보고함. 이 블로그 글은 2.4~3.4배 생성 속도를 보고하는데, 그렇게 큰 업그레이드인지는 모르겠음
    위에서 추측 디코딩을 언급했고 저자가 비교한 기술은 Medusa2와 Eagle로 보이지만, 핵심 문제는 그대로임. 토큰을 미리 예측하는 어떤 방식을 쓰든, 다음 토큰을 예측하기 전에 이전 토큰이 절대적으로 필요한 특정 지점이 있음. 이는 모델이나 기법에 달린 문제가 아니라 수학적으로 무엇이 가능한가의 문제임. 다섯 번째 다음 토큰의 확률분포가 앞선 네 토큰에 크게 의존한다면, 어떻게 한 번에 5토큰을 예측할 수 있나? 추측 디코딩이든, Jacobi 디코딩이든, 다중 토큰 병렬 디코딩이든 마찬가지임
    이 방식이 탐욕적 샘플링만 지원한다면 장점이 무엇인지 의문임. 다른 기법들이 이미 기대한 속도 향상을 달성하고 있다는 점까지 고려하면 더 그렇음. 탐욕적 샘플링 속도 향상과 무작위 샘플링 속도 향상을 비교하는 건 사과와 오렌지를 비교하는 셈이고, 이 방식을 무작위 샘플링에 맞게 바꾼 뒤에도 위에서 말한 핵심 문제 때문에 같은 속도 향상이 남을지 의심됨

    • "다음 토큰을 예측하기 전에 이전 토큰이 절대적으로 필요하다"는 부분이 이 논문의 핵심 기여일지도 모름
      consistency training을 통해 이전 토큰에 잘못된 추측이 있어도 LLM이 다음 n개 토큰을 예측할 수 있음을 보여준 것일 수 있음
      한편 수학적으로는 p(x_t|x_1,...,x_t-1)가 x_1부터 x_t-1까지 모두에 의존하는 것이 맞지만, 실제로는 x_t 예측에 x_1부터 x_t-2만 필요하고 x_t-1에 대한 어텐션은 미미할 수 있음. 따라서 x_1부터 x_t-2와 부정확한 x_t-1로도 x_t를 예측할 수 있음
    • 추측 디코딩은 더 작은 모델을 메모리에 올리고 그 모델로 추론을 실행해야 함
  • 흥미로운 내용임. 많은 사람이 떠올렸을 법한 아이디어지만, 글과 발표가 잘 정리돼 있었음

    • 맞음. 룸메이트와 나는 1년 전에 이런 얘기를 했음. LLM 조향에도 비슷한 걸 할 수 있음