2P by GN⁺ | ★ favorite | 댓글 1개
  • Quiet-STaR는 정답이 있는 QA 데이터셋 대신 일반 웹 텍스트를 학습 신호로 삼아, 언어 모델이 말하기 전 내부 근거를 생성하도록 훈련하는 방법임
  • 기존 STaR가 정답으로 이어진 근거만 골라 학습했다면, Quiet-STaR는 미래 텍스트 예측을 개선하는 근거를 보상해 비정형 텍스트의 암묵적 추론을 활용함
  • 모든 토큰 위치에서 근거를 병렬 샘플링하고, 근거가 있는 예측과 없는 예측을 섞어 실제 다음 텍스트를 더 잘 맞히는 방향으로 학습함
  • Mistral 7B를 OpenWebMath와 C4로 계속 사전학습한 결과, 태스크별 파인튜닝 없이 GSM8K 5.9%→10.9%, CommonsenseQA 36.3%→47.2%로 정확도가 상승함
  • 효과는 예측하기 어려운 토큰에서 더 크게 나타났고, 내부 생각에 쓰는 토큰 수가 길수록 직접 추론 성능 개선도 커지는 경향을 보임

일반 텍스트를 추론 학습 대상으로 삼음

  • 사람은 글을 쓰거나 말할 때 잠시 멈춰 생각하며, 텍스트의 의미 상당 부분은 문장 사이에 드러나지 않은 이유와 함의에 있음
  • 기존 추론 중심 접근은 주로 질문에 답하거나 에이전트 작업을 완료하는 방식에 집중했지만, Quiet-STaR는 추론이 거의 모든 글에 암묵적으로 존재한다고 봄
  • 암묵적 추론의 예시는 다음과 같음
    • 증명에서 명시되지 않은 중간 단계
    • 대화에서 상대의 마음 상태를 추정하는 이론

STaR를 언어 모델링으로 확장

  • STaR(Self-Taught Reasoner) 는 질문-답변 데이터셋에서 소수 예시를 바탕으로 근거를 샘플링하고, 정답으로 이어진 근거만 학습해 더 어려운 문제를 반복적으로 풀도록 만든 방법임
  • STaR는 고품질 QA 데이터셋처럼 세심하게 큐레이션된 데이터에 의존한다는 제약이 있음
    • 이런 데이터셋은 특정 추론 과제만 담을 수 있음
    • 근거 자체를 제공하거나 특정 추론 태스크를 제공해야 하는 경우가 있음
  • Quiet-STaR는 특정 수학 QA 같은 태스크 대신, 대규모 인터넷 텍스트에서 미래 텍스트를 추론하는 데 도움이 되는 근거를 생성하도록 언어 모델을 학습시킴
  • 이 접근은 “언어 모델은 비지도 멀티태스크 학습자”라는 언어 모델링 패러다임의 직관 위에 구축됨

학습 절차: think, talk, learn

  • Quiet-STaR는 세 단계로 동작함
    • think: 텍스트의 모든 토큰 뒤에서 미래 텍스트를 설명하는 근거를 병렬로 생성함
    • talk: 근거가 있을 때와 없을 때의 다음 토큰 예측을 혼합함
    • learn: REINFORCE 기반 보상으로 미래 텍스트 예측을 돕는 근거의 가능도는 높이고, 해치는 근거는 버림
  • 학습 중 한 개의 thought에 대해 모델은 STARTEND 같은 학습 가능한 메타 토큰으로 생각의 시작과 끝을 표시함
  • 근거를 만든 뒤에는 mixing head가 그 근거 기반 예측을 미래 토큰 예측에 얼마나 반영할지 결정함

모든 토큰에서 생각하게 만드는 구현 과제

  • 일반 텍스트에서는 모든 토큰마다 근거를 생성해야 하므로 계산 비용이 큼
  • 이를 줄이기 위해 문자열 내 모든 토큰 위치에서 근거를 생성하는 토큰별 병렬 샘플링 알고리듬을 제안하고 구현함
  • 언어 모델이 처음부터 내부 생각을 생성하거나 사용하는 법을 알지 못한다는 문제도 함께 다룸
    • 생각의 시작과 끝을 나타내는 커스텀 메타 토큰을 도입함
    • 모델이 근거를 생성해야 하는 시점과 그 근거를 바탕으로 예측해야 하는 시점을 학습하게 함
  • 단일 다음 토큰만 보는 근시안적 학습을 피하기 위해 여러 토큰 앞까지 포함하는 비근시안 손실(non-myopic loss) 을 사용함
  • 확장된 teacher-forcing 기법으로 개별 다음 토큰 너머의 예측까지 학습에 반영함

실험 설정과 결과

  • 실험은 Mistral 7B에 Quiet-STaR를 적용해 수행됨
  • 계속 사전학습에는 웹 텍스트 데이터셋인 OpenWebMathC4(Colossal Clean Crawled Corpus) 가 사용됨
  • 태스크별 파인튜닝 없이 제로샷 직접 추론 성능이 개선됨
    • GSM8K: 5.9%→10.9%
    • CommonsenseQA: 36.3%→47.2%
  • GSM8K와 CommonsenseQA 모두에서 Quiet-STaR 학습 중 사용한 생각 토큰 수가 길어질수록 성능 개선이 일관되게 증가함
  • 자연 텍스트에서는 예측하기 어려운 토큰의 perplexity가 개선됨
  • 생성된 근거는 특히 예측하기 어려운 토큰에 불균형적으로 더 큰 도움을 줌

Quiet-STaR의 기여

  • Quiet-STaR는 큐레이션된 추론 태스크가 아니라 다양한 비정형 텍스트 데이터에서 추론을 학습하도록 STaR를 일반화함
  • 병렬 샘플링 알고리듬으로 주어진 문자열의 모든 토큰 위치에서 근거를 생성하는 학습 절차를 확장 가능하게 만듦
  • 생각의 시작과 끝을 나타내는 커스텀 메타 토큰은 모델이 근거 생성과 근거 기반 예측의 타이밍을 학습하는 데 사용됨
  • mixing head는 특정 thought에서 나온 다음 토큰 예측을 현재 예측에 얼마나 반영할지 사후적으로 결정함
  • 여러 토큰 앞을 포함하는 언어 모델링 손실이 생각의 효과를 개선함
  • 여러 태스크에서 생각을 사용하면 같은 웹 텍스트로 학습한 모델보다 어려운 토큰을 더 잘 예측하고, 더 긴 thought에서 개선 폭이 커짐

댓글과 토론

Hacker News 의견들
  • 예를 들어 50층 깊이의 네트워크는 상징적 질문에 대해 50단계 정도만 추론할 수 있다는 게 직관적으로 당연해 보임
    더 복잡해 보이는 건 모델이 학습한 하나 이상의 부분공간에서 50단계를 수행하기 때문이고, 그 한 “단계”가 인간의 한 단계보다 더 많은 일을 할 수도 있음
    인간은 그 이상으로도 추론할 수 있지만, 그러려면 실제 사고와 숙고, 때로는 메모장이 필요함
    ChatGPT가 아무 생각이나 “종이” 없이 4자리 곱셈을 정확히 하길 기대하는 건 꽤 놀라운 일이고, 실제로 그런 계산을 암산으로 하는 사람도 많지 않음

    • 맞는 말이지만 자기회귀적 요소도 고려해야 함
      예시에서는 모델 실행 1회당 50단계이고, 출력 토큰마다 모델이 한 번씩 실행됨
      그래서 실제로 모델이 얼마나 “생각”할 수 있는지를 계산하는 건 더 복잡함
      물론 토큰이 한 번 출력되면 기본 설정에서는 그 토큰에 커밋되지만, 이후 토큰을 생성하면서도 계속 “생각”하지 않는다는 뜻은 아님
      문맥과 이전 출력 토큰은 다음 모델 단계의 입력이므로, 말한 메모장으로 볼 수 있음
    • 이 논문은 그런 직관을 따라 합성 과제에서 트랜스포머의 한계를 조사함. 곱셈처럼 여러 단계의 추론이 필요한 작업도 여기에 포함됨: https://arxiv.org/abs/2305.18654
      실험 결과는 트랜스포머 대형 언어 모델이 다단계 합성 추론을 체계적 문제 해결 능력으로 풀기보다, 선형화된 부분그래프 매칭으로 축소해 푸는 경향이 있음을 시사함
      또한 추상적 다단계 추론 문제에 대한 이론적 논증으로, 자기회귀 생성의 성능이 과제 복잡도가 증가할수록 빠르게 떨어질 수 있음을 보임
    • 여기서 중요한 세부사항인 토큰 수를 놓치고 있음. 네트워크 깊이로는 50 “단계”가 있어도 추가 토큰을 쓸 수 있음
      테이프가 바닥나지 않는다고 가정하면, 대형 언어 모델이 단순한 연산에만 제한될 이유는 없음
    • 역전파가 어떻게 작동하는지 생각하면 이 설명은 별로 말이 안 됨. 층들이 독립적으로만 동작하도록 제한되어 있지 않음
      모델이 자기회귀적이라는 점을 생각해도 마찬가지로 잘 맞지 않음
  • Edsger Dijkstra는 정확한 영어 문체를 가졌고, 모국어가 네덜란드어였는데도 많은 원어민보다 영어를 더 잘 활용했다고 봄
    어떤 EWD에서 그는 어릴 때 “문장을 어떻게 끝낼지 이미 알기 전에는 말하기 시작하지 말라”고 배웠다고 회상함
    이 두 관찰 사이에는 인과관계가 있을 것 같음

    • 젊었을 때 외국에 잠시 살면서 언어 수업을 들었는데, 같은 수업의 한 중년 남성이 새 언어는 매우 서툴렀지만 늘 사람들을 웃기는 능력이 있었음
      그가 어떻게 하는지 궁금했는데, 어느 날 점심을 같이 먹으며 그가 진지하게 설명해 줬음
      그는 단 한 문장도 머릿속에서 완전히 말해 보기 전에는 입 밖에 내지 않았고, 단어를 여러 번 떠올리며 문장을 다듬고, 상대가 어떻게 반응할지 상상한 뒤 원하는 반응이 그려질 때만 말한다고 했음
      그 조언은 동시에 내가 생각 없이 말한다는 걸 콕 집어 알려주는 것이기도 했고, 내가 묻지 않은 질문을 정확히 읽고 답한 것 같았음
      이 방법을 시도하면 노력한 만큼 보상이 있었지만, 습관으로 만들지는 못했고 여전히 마음보다 입이 앞서 나가는 편임
    • 그건 내겐 지옥처럼 들림. 즉흥성과 그 순간에 머무는 감각이 완전히 사라지는 방식임
      예전에는 말하기 전에 무엇을 말할지 강박적으로 생각하려 했고, 사회적으로 어색한 편인데도 전혀 도움이 되지 않았음
      글쓰기는 비동기적이라 생각을 정확히 정리하고 고칠 수 있어서 좋아하지만, 사회적 상황에서는 큰 방해가 됨
    • 두 가지를 봄. 첫째, 글쓰기와 말하기는 다름. 글쓰기는 비동기라 쓰기 전에 생각하고 고칠 수 있음
      둘째, 모국어가 아닌 언어로 말하면 앞으로 말할 내용을 더 깊이 생각하게 됨. 관용구는 줄고, 의미가 제대로 전달되는지에 더 집중하며, 혹시 상대를 불쾌하게 할까 더 민감해지는 듯함
      새삼스러운 일도 아님. 과학 같은 분야도 프랑스어, 독일어, 라틴어처럼 연구자의 모국어가 아닌 언어로 많이 이루어졌음
      또 분야별 전문용어도 한몫함. “Kubernetes is een open-bron houder orkestratiesysteem voor het automatiseren van de inzet, schalen, en het beheer van zachte waren”라고 그냥 말하면 내 모국어 청중 절반은 혼란스러워할 것임
    • 그의 EWD를 읽는 걸 좋아함. 그와 함께 일했던 교수님이 시험 볼 때 학생들에게 펜을 쓰게 했다고 말한 적이 있음
      학생들이 실수할 가능성을 줄이려던 걸까?
    • 나도 교과서로 영어를 배웠는데, 원어민들이 “their, there, they’re”를 일상적으로 혼동하는 게 가장 이상한 일 중 하나였음
      내가 할 수 있는 실수라고는 생각도 못 했고, ‘wet’과 ‘vet’을 헷갈리는 것과 비슷하게 느껴짐
      확실히 원어민과 비원어민의 언어 사용에는 차이가 있음
  • 며칠 전 든 생각인데, 대형 언어 모델 기반 시스템에서 사고의 사슬 추론 패턴이 성능 향상에 기여하는 모습은 Kahneman의 『Thinking, Fast and Slow』에 나오는 마음의 두 시스템 모델과 나란히 놓이는 것 같음
    책을 몇 년간 다시 읽지는 않았지만, 낮은 노력과 낮은 계산이 필요한 사고에는 ‘System 1’을 주로 쓴다고 했던 것으로 기억함. 예컨대 1+1=? 또는 “하늘은 ____” 같은 것임
    반면 ‘System 2’는 의도적이고 의식적이며 인지 부담이 큰 작업에 쓰임. 큰 곱셈, 추론 문제, 도구 사용, 의사결정 전반처럼 집중력이나 두뇌 자원이 필요한 것들임
    “대형 언어 모델은 확률적 앵무새라 지능이 없다”는 비판은, 사실 모델이 ‘System 1’만 쓰도록 장비되어 있다는 관찰처럼 느껴짐
    대형 언어 모델에 단계별로 생각하라고 프롬프트하면, 자기 생각을 적어 둘 작업공간을 주고 다음 토큰 예측에서 그것을 다시 고려하게 하므로, 일종의 기초적 System 2, 즉 숙고용 샌드박스가 됨
    사람도 System 2를 쓸 때 마음 앞쪽에 세계의 디오라마를 붙잡고, 특정 행동을 했을 때 환경이 어떻게 반응할지 시뮬레이션함. 친구가 뭐라고 답할지, 철판이 힘에 어떻게 휠지, 코드가 어떻게 깨질지, 타이어가 어떻게 접지할지를 그려보고 가능성의 나무를 탐색해 가장 보상이 큰 행동을 고름
    전문가는 아니지만 이 논문도 비슷한 틀을 알아본 것 같음. 특히 로봇공학에서 보이는 행동 모델에는 앞으로 반복적 숙고/시뮬레이션 메커니즘이 들어갈지도 모름

    • 완전히 지어낸 말, 비과학적 일화, 순진하거나 미성숙한 얘기처럼 들릴 수 있음을 먼저 밝힘. 다행히 아무도 믿을 필요는 없음
      몇 주 전 완전히 깨어 있지도 자고 있지도 않은 상태에서, 빠른 사고를 하는 뇌가 빛의 속도처럼 단어와 개념을 뱉어내고, 느린 사고를 하는 뇌가 그것들을 실제 문장으로 바꾸는 과정을 알아차리는 순환에 들어갔음
      사고의 사슬을 아이디어 목록으로 보는 듯했고, 그 목록은 말도 안 되게 빠르게 채워진 뒤 신중히 선택된 단어 목록으로 된 제대로 된 “생각”으로 요약됐음
      그 뒤로 우리가 생각이라고 인식하는 것은 바로 직전의 브레인스토밍 과정에서 나온 선별된 출력이라는 견해를 믿게 됨
    • 대형 언어 모델이 전혀 지능이 없다고는 말하지 않겠음. 예측에 기반하기 때문이고, 우리가 지능으로 인식하는 능력이 바로 예측 능력이라고 믿음. 피질도 예측을 하도록 진화했음
      그래도 지능은 전부 아니면 전무가 아니라 스펙트럼 위에 있음. 내 정의는 “과거 경험을 바탕으로 미래 결과를 올바르게 예측하는 능력의 정도”이고, 생물학적이든 인공적이든 시스템이 패턴을 인식하고 예측하는 데 쓸 수 있는 메커니즘에 좌우됨
      지능은 경험에도 의존함. 경험하지 않은 것은 인식할 수 없고 따라서 예측할 수도 없기 때문임. 다만 예측 능력과 경험을 모두 “지능”으로 묶기보다는 구분하는 어휘가 있으면 더 나을 수 있음
      대형 언어 모델의 예측 장치와 인간 뇌를 비교하면 빠진 것이 많음. “말하기 전에 생각하기”는 그중 하나이고, Q* 접근이나 생각의 나무 방식은 여기에 도움이 될 것임
      시상-피질 루프 같은 반복 구조도 대형 언어 모델/트랜스포머 접근에 끼워 넣을 수 있을지 모르지만, 인간 수준 능력에 결정적으로 빠진 조각은 온라인 학습이라고 봄. 행동하고, 그 결과를 보고, 거기서 배우는 능력임
      현재 접근으로 “책으로 배운” AGI는 만들 수 있겠지만, 기술은 연습과 실험 없이는 배울 수 없음. 개발자든 무엇이든 책을 읽거나 다른 사람이 만든 결과물을 분석하는 것만으로는 배울 수 없고, 자기 예측과 행동이 현실에서 낳는 결과를 이해하고 거기서 배워야 함
    • Andrej Karpathy도 2023년 11월 “[1hr Talk] Intro to Large Language Models” 영상에서 같은 책을 인용하며 같은 요지를 말함
      관련 부분 링크: https://youtu.be/zjkBMFhNj_g?t=2120
    • 그 책의 주장 대부분이 반박되지 않았나? 일부는 저자 본인이 반박한 것으로 알고 있음
      재미있게 읽었고 통찰도 많다고 느꼈지만, 나중에 그 분야 친구에게 책이 정확하지 않고 저자가 일부 주장을 “철회”했다는 말을 들었음
    • 사람들은 대형 언어 모델이 이전에 읽은 텍스트나 자기 응답의 일부 창을 바탕으로 단어, 정확히는 토큰 흐름을 반사적으로 만들어낼 뿐이니 진짜 생각하는 게 아니라고 자주 말함. 그건 사실임
      하지만 말할 때 나도 내가 무슨 말을 할지, 말한 걸 듣기 전까지 모르는 경험이 있음
      가끔은 머릿속에서 문구를 시험해 보며 숙고하고 계획하지만, 대부분의 나는 그냥 토큰 흐름을 생성하는 대형 언어 모델에 가까운 듯함
  • 기준선이 형편없는 강화학습 논문임. GSM8k에는 출력 방식이 꽤 특정되어 있는데, 0샷 비지시 튜닝 Mistral을 사용했음
    개선 후 정확도가 11%였지만, 퓨샷 프롬프팅은 37%를 달성함[1]. GPT-4는 프롬프팅으로 약 97%까지 가능함
    [1]: https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderb...

    • 진지한 과학자라면 알려진 방법과 기준선을 잡고 그것을 개선하는 것도 좋은 과학임
      최신 성능까지 확장하는 것도 가능하겠지만, 목표는 단순한 설정에서 자신들의 변경이 미치는 영향만 측정하는 것일 수 있음
      여러 시스템 조합을 뒤섞어 최신 성능을 내는 일은 엔지니어들에게 맡기면 됨
  • OpenAI의 소문난 Q*, 즉 q-star 모델과 관련이 있나? 이 논문 저자들은 관련이 없어 보임
    그냥 이름이 우연히 겹친 건가?

    • 같은 과장된 용어를 가지고 말장난한 것 같음
    • 나도 같은 생각을 했음. 이 논문이 확장한 STaR 논문은 2022년에 나왔으니, 최소한 q-star도 이것을 기반으로 했을 가능성은 있음
      다만 Q가 다른 의미일 수도 있음
  • 이건 추론 능력을 가진 AI를 학습시키는 데 빠진 조각임
    답은 알려져 있지만 추론 단계는 빠진 작업이 아주 많음. 이 방법을 쓰면 더 적은 주석 데이터로 그 능력에 도달할 수 있음
    흥미로운 부분은, 생성된 생각이 인간에게는 이해하기 어려워도 정답을 얻는 데는 훨씬 도움이 될 수 있다는 점임
    그렇게 된다면 우리보다 더 지능적인 무언가를 만든 셈임

  • 오늘 아침 프롬프트 수준에서 기본적으로 비슷한 걸 시도했지만 결과는 형편없었음. 다만 머릿속의 거친 아이디어는 더 나아가, 대형 언어 모델이 자기 문맥을 다시 탐색하도록 돕는 제어 흐름 메타 토큰을 도입하는 것이었음
    이 관점에서는 문맥을 스스로 편집되는 구조화된 마인드맵으로 다시 생각할 수 있고, 특정 시점 T의 선형 문맥은 그 마인드맵 탐색의 지금까지 실행 추적이 됨
    일부 메타 토큰은 문맥 일부를 강조하고, 구조화하고, 요약하고, 잊는 등의 부작용을 가질 수 있음
    이렇게 하면 json 같은 구문 형식이나 LMQL식 프로그래밍 구성 없이도 네이티브 구조화 출력, 메모리 구현 등이 가능할 수 있음
    목표는 대형 언어 모델에 논리/추론 능력을 주는 데 그치지 않고, 자기만의 인지 아키텍처를 만들어낼 수단을 주는 것임
    구조화 출력에 ... 토큰을 써서 메모리나 스크래치패드도 구현하면, 그런 인지 구조의 검사 가능성도 덤으로 얻을 수 있음
    물론 어떻게 구현할지는 전혀 모르겠음. 머신러닝 관광객이라서

  • 이들은 자신들의 작업보다 거의 8년 앞서 나온, 언어 모델링에 적용한 RNN의 학습된 가변 계산 논문 [1]을 인용하지 않음
    [1] https://openreview.net/pdf?id=S1LVSrcge
    Microsoft도 그 시기에 비슷한 것을 이미지 인식용으로 갖고 있었음. 입력에는 CNN을 쓰고 분류 단계에서 가변 계산을 하는 방식이었음

  • 평가에 Base Mistral 7B를 쓰는 건 거의 적절하지 않음. Intel의 한 팀도 NeuralChat에서 정확히 같은 방식으로 꼼수를 쓰려 했음 https://huggingface.co/Intel/neural-chat-7b-v3#quantitative-...

  • “텍스트의 의미 대부분은 행간에 숨어 있다. 문서에 왜 그런 문장이 나타나는지 이해하지 못하면 독자는 얕은 이해만 갖는다”는 문장은 내가 읽는 방식이나 내가 아는 대부분의 사람들에게는 사실이 아닌 것 같음
    거의 항상 우리는 세계 모델을 갖고 있고, 그런 문장들이 책에 왜 등장하는지 어느 정도 알고 있다고 봄
    유체역학 교과서를 읽을 때 수학은 이해하지 못할 수 있어도, 그 문장들이 이론을 배우도록 돕는 수학적 진술이고 중요한 개념을 가르치기 위한 패턴을 따른다는 건 알 수 있음
    예를 들어 개념은 이전 개념 위에 쌓임. 베르누이 방정식은 에너지 보존 법칙이 앞에 있었기 때문에 등장하고, 내가 후자를 이해한다고 가정하기 때문에 거기에 있는 것임