1P by GN⁺ | ★ favorite | 댓글 1개
  • σ-GPT는 데이터의 입력 순서와 자기회귀 생성 순서를 분리해, Transformer가 시퀀스를 임의로 섞인 순서로도 학습·생성할 수 있게 함
  • 기존 자기회귀 모델은 텍스트의 왼쪽-오른쪽 순서나 이미지의 래스터 스캔 순서처럼 자연스러운 배열을 따르는 경우가 많지만, 두 순서가 반드시 같을 필요는 없음
  • 샘플마다 임의의 셔플 순서 σ를 즉석에서 고르고, 입력·출력 순서에 대응하는 두 위치 인코딩을 붙여 자기회귀 과정을 일관되게 유지함
  • 생성 중 어느 시점에서도 남은 토큰의 조건부 분포를 추정할 수 있어, 임의 위치 샘플링·임의 조건부 생성·인필링·버스트 샘플링으로 확장됨
  • 커리큘럼 학습을 함께 쓰면 왼쪽-오른쪽 자기회귀 모델과 유사한 성능에 도달할 수 있고, 토큰 기반 거절 샘플링으로 여러 토큰을 버스트 단위로 생성할 수 있음

입력 순서와 생성 순서의 분리

  • Transformer는 여러 모달리티에서 강한 자기회귀 성능을 보여 왔음
  • 전통적인 자기회귀 방식은 데이터의 자연스러운 순서를 따름
    • 텍스트는 보통 왼쪽에서 오른쪽으로 처리함
    • 비전에서는 이미지를 래스터 스캔 순서로 펼쳐 얻은 시퀀스를 Transformer로 모델링함
  • σ-GPT는 데이터의 입력 순서와 자기회귀 순서를 구분함
    • 대부분의 응용에서는 두 순서가 정렬되어 있지만, 반드시 같을 필요는 없음
    • 시퀀스를 임의로 섞은 순서로 학습하고 생성하는 방식을 탐구함
  • 시퀀스 순서를 바꾸면 학습은 더 어려워지지만, 모델이 임의 위치 조건부 생성 같은 새로운 성질을 갖게 됨

σ-GPT 구조와 동작

  • σ-GPT는 각 샘플마다 임의의 셔플 순서 σ를 즉석에서 선택할 수 있음
  • 선택된 σ는 입력 순서 0, σ(1), σ(2), ...와 출력 순서 σ(1), σ(2), σ(3), ...를 만듦
    • 입력에는 토큰 수를 일관되게 맞추기 위해 먼저 0 패딩이 붙음
    • 토큰은 해당 순서에 맞춰 섞임
  • 모델 입력에는 두 개의 위치 인코딩이 연결됨
    • 하나는 입력 순서에 대응함
    • 다른 하나는 출력 순서에 대응함
  • 출력은 마지막에 실제 순서로 다시 되돌려짐
  • 코드 공개: https://github.com/idiap/sigma-gpt

표준 GPT·확산 모델과의 비교

  • σ-GPT는 표준 causal transformer encoder인 GPT 및 확산 모델과 비교됨
  • 지원 기능은 다음과 같음
    • 시퀀스의 임의 위치에서 토큰 샘플링
    • 부분적으로 샘플링된 시퀀스에 따른 남은 밀도 모델링
    • 임의 조건부 생성
    • 인필링
    • 여러 토큰을 한 번에 생성하는 버스트 샘플링
    • 교차 엔트로피 기반 로그우도 학습
  • 표준 GPT는 임의 조건부 생성과 로그우도 학습은 가능하지만, 임의 위치 샘플링·조건부 밀도 추정·인필링·버스트 샘플링은 지원하지 않는 것으로 비교됨
  • 확산 모델은 버스트 샘플링을 지원하지만, 로그우도 학습은 지원하지 않는 것으로 비교됨

생성 중 조건부 분포와 거절 샘플링

  • 표준 자기회귀 순서에서 벗어나면 모델은 특정 순서에 따라 토큰을 예측할 수 있음
  • 이 방식에서는 생성 중 어느 시점에서도 남은 토큰의 조건부 분포를 예측할 수 있음
  • 조건부 분포 추정은 특정 시점에서 가능한 생성 결과를 정량화하는 데 활용됨
  • 이를 거절 샘플링에 적용하면 동적인 단계 수로 시퀀스를 버스트 단위 생성할 수 있음

평가 작업과 기여

  • σ-GPT는 셔플 자기회귀를 도입하고, 커리큘럼 방법과 결합해 기반 모델 성능을 높일 수 있는지 평가함
  • 평가 대상은 세 가지 주요 작업임
    • 열린 텍스트 생성
    • 경로 해결
    • 항공기 수직 속도 예측
  • 기여는 네 가지로 정리됨
    • 입력 순서와 출력 순서에 각각 대응하는 두 위치 인코딩을 가진 σ-GPT 아키텍처 도입
    • 커리큘럼 학습을 쓰면 왼쪽-오른쪽 자기회귀 모델과 유사한 성능에 도달할 수 있음을 보임
    • 임의 순서 샘플 생성을 통해 시퀀스의 어느 부분에 대해서도 조건부 생성이 가능함을 보임
    • 버스트 단위 샘플 생성을 위한 토큰 기반 거절 샘플링 방식 도입

댓글과 토론

Hacker News 의견들
  • 좋아 보임. 학습 때 입력 토큰을 무작위로 섞고, 각 토큰에 두 종류의 위치 인코딩을 붙임: 하나는 해당 토큰의 위치, 다른 하나는 예측할 토큰의 위치임
    그 외에는 표준 자기회귀 GPT인데, 이 단순해 보이는 변경의 결과가 큼. 학습된 모델에 시퀀스 일부를 프롬프트로 주면 빠진 토큰을 순서와 무관하게 한꺼번에 병렬 디코딩할 수 있고, 모든 누락 토큰의 조건부 확률 밀도도 병렬로 계산 가능함
    또한 저자들은 거절 표본추출 기반의 병렬 채워넣기 생성 방법을 제안했고, 실제로 잘 작동하는 듯함

    • 이 문제 설정은 꽤 오래전부터 있었고, 모델링의 성배 같은 주제였음. PixelCNN 계열과 비교해 새로워 보이는 부분은 위치 임베딩 아이디어
    • 그 병렬 예측이 어떻게 가능한지 이해가 잘 안 됨. 예를 들어 입력이 I . . . . . . . . happily.라면, 예측할 두 번째 단어는 첫 번째 단어에 의존하지 않나 싶음
    • 이게 된다면 정말 대단함. 멋진 발견들이 자주 그렇듯, 듣고 나면 “아, 그렇게 말하니 당연하네” 싶은 맛도 있음
    • BERT가 원래 비인과적 마스킹, 즉 중간 단어 예측을 하던 것 아니었나 싶음
    • 이건 토큰/텍스트용인 건 알지만, 같은 개념을 확산 모델 같은 방식으로 이미지에도 적용할 수 있을지 궁금함. 그렇게 되면 채워넣기로 이미지를 임의 크기로 업스케일할 수도 있을까 싶음
  • 예전 것[1]이 다시 새것이 됐는데, 선행 연구 인용이 없음. 알려지지 않은 연구도 아니고 ICML에 실렸으며 인용도 약 250회임
    [1]: https://arxiv.org/abs/1902.03249

  • 정말 멋진 개념임. 이미지 생성 모델에서 보이는 동역학과 비슷해지기 시작하는지 궁금함. 이미지의 한 영역에서 구조와 디테일이 생기고, 주변 영역이 점차 맞춰져 해소되는 식임
    이런 행동은 긴 추론/논리/계획에 특히 유용해 보임. 큰 아이디어가 먼저 드러나고, 그 사이의 세부 내용과 텍스트가 자연스럽게 채워질 수 있기 때문임

    • 묘사한 과정은 확산이라고 부름
  • Twitter에 텍스트를 생성하는 영상이 있음. 약간 이미지 확산처럼 보임
    https://x.com/ArnaudPannatier/status/1799055129829839166

    • 결과가 다소 말이 안 되는 예시를 골랐다는 게 이상함
  • 오늘 이 논문을 계속 생각했는데, 기능이 정말 마음에 듦. 순차적 LLM에서는 비교적 어려운 일이 여기서는 쉬워짐
    JSON을 원하면 중괄호 토큰을 시작과 끝에 고정하면 됨. 특정 토큰 길이의 답변 설명을 원하면 짧은 답을 뒤에 붙여두고 중간을 채우면 됨
    정보 밀도 높은 답변을 원하면 생성 텍스트에 밀도 평가 섹션과 LLM이 정보 밀도를 점수화할 공간을 추가한 뒤, 높은 점수를 찾도록 생성하면 됨. 실험해볼 게 많아 보이고, 논문 기준으로는 토큰이 3배쯤 필요해 아쉽지만 합리적인 토큰 수의 8B 매개변수 모델로도 해보면 좋겠음

    • “중괄호 토큰을 시작에 고정”하는 건 일반 LLM도 이미 가능함. 어시스턴트 응답 시작 부분을 미리 채우면 됨
      하지만 더 나은 방법도 있음. LLM 출력을 JSON 같은 특정 문법으로 제한하면, 구문적으로 유효한 JSON으로만 답하게 만들 수 있음
  • 이게 컴퓨터 코드 생성에 특히 도움이 될지 궁금함. 어떤 단계에서 출력할 내용이 이후 단계에서 작성될 내용에 실질적으로 의존할 수 있기 때문임

    • 어쩌면 너무 느릴 수도 있지만, 거절 표본추출 일부로 린팅이나 구문 검사를 통합할 수 있을 듯함. 예를 들어 N개의 후보 코드 조각을 병렬로 대량 샘플링하고, 구문적으로 잘못된 것은 버리는 식임
  • 흥미로운 연구임. 비슷한 순열 접근은 Taylorformer 논문(https://arxiv.org/pdf/2305.19141v1)에도 이미 나옴
    저자들은 시계열 같은 연속 과정에 Transformer 디코더를 쓰고, 학습 중 각 시퀀스를 무작위로 섞음. 각 시퀀스 원소에는 위치 인코딩이 있고, 섞인 시퀀스에 대해 로그 가능도를 사용함
    거기서는 순열이 보간, 외삽, 불규칙 표본 데이터 예측에 도움이 됨. 또한 생성 순서와 관계없이 평균제곱오차가 대체로 같아지는 “일관성”에도 도움이 된다고 보임
    이 논문이 이런 아이디어의 이해나 응용에 무엇을 더해주는지 궁금함. 시퀀스 순서를 섞는 아이디어는 Transformer Neural Process 논문에도 나옴: https://arxiv.org/pdf/2207.04179

  • 이건 비전 Transformer에서 배운 것을 언어 Transformer에 적용하는 건가 싶음
    내가 이해한 바로는 비전 모델은 이미지를 타일로 나누고, 각 타일에 위치 인코딩을 붙여 모델이 타일의 상대 위치를 이해하게 함
    솔직히 초록만 읽었고 많은 부분은 어렵지만, 이 논문은 비슷한 아이디어를 2D 대신 1D에 제안하는 것처럼 보임

    • 위치 인코딩은 모든 종류의 Transformer에서 표준임. 여기서는 새로워 보이는, 중복적인 위치 인코딩 방식을 도입함
      학습은 더 어렵지만, 여러 토큰을 한 번에 생성할 수 있게 하는 듯함. 즉 N 토큰 길이의 답을 N단계가 아니라 N/x단계에 얻을 수 있음
  • 코드가 있는지 궁금함. 이중 위치와 셔플링을 완전히 이해하진 못하겠음. 위치값을 더하지 않고 이어붙인 것도 흥미로움

  • Yann LeCun이라면 자기회귀 자체가 문제이고, 이런 종류의 기계학습으로는 AGI 근처에도 못 간다고 말할 것임[0]
    적어도 자기회귀 패러다임 안에 머무는 한 환각 문제는 해결할 수 없음
    [0] https://twitter.com/ylecun/status/1640122342570336267

    • LeCun이 맞을 수도 틀릴 수도 있지만, 이 논의와 관련이 있는지는 잘 모르겠음
      원 논문 저자들은 이 작업이 AGI에 가까워지는 데 도움이 된다고 주장하지 않음. 그저 자기회귀 LLM이 전에는 못 하던 새 일을 할 수 있게 만들었을 뿐임
    • 모든 게 AGI로 향해야 하는 건 아님. 더 빠르고 싸게 실행되는 LLM을 만들었다면 그 자체로 가치가 있음
      대부분의 작업에 AGI가 필요하다고 보지도 않음. 의식 있는 존재에게 고통을 만들려는 의도가 아니라면 더욱 그렇다
    • 여기서 LeCun의 논증은 간단히 말해 틀렸음. 그의 증명은 디코딩된 모든 토큰이 조건부 독립이거나, 적어도 잘못된 다음 토큰이 나올 확률이 독립이라는 전제가 필요함. 실제로는 그렇지 않음
      직관적으로 어떤 토큰은 다른 토큰보다 더 어려움. 출력 안에 핵심 토큰이 있을 수 있고, 그 뒤로는 남은 토큰이 훨씬 쉬워질 수 있음. 또한 자기회귀 방식에서도 actually no... 같은 토큰을 출력하며 잘못된 토큰에서 회복할 수 있음
    • 이 방법은 실제로 지수적 발산 논증에 잘 맞지 않을 수도 있음
      토큰 샘플링 방식에 따라 제안된 생성을 전체로 보고 수정할 수 있을 듯함. 현재 논문에서 제안한 샘플링 방식이 지금 당장 그렇게 하는지는 모르겠지만, 확률에서 얻는 정보로는 가능해 보임
    • LeCun은 매우 똑똑하지만, 자기회귀 LLM의 한계를 예측한 전적은 형편없음