데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      Open Thoughts - 추론 모델을 위한 데이터 레시피

      sj.cheon 25.06.16
      1,324 3 1
      DEVOTEE 요약
      본 블로그는 추론 모델(Reasoning Model) 학습 데이터를 설계하고 실험하면서 성능을 개선한 Open Thoughts 연구의 주요 내용을 다룹니다. 연구진은 어려운 질문을 중심으로 데이터를 구성하고, 하나의 질문에서 다양한 답변을 생성하는 방식을 실험했으며, 데이터 크기를 늘릴수록 성능이 개선됨을 확인했습니다. 최종적으로, Open Thoughts3 데이터와 관련 방법론을 활용해 추론 능력을 효과적으로 향상시킬 수 있음을 시사합니다.
      DEVOTEE 추천 블로그

      소개

      추론 모델(Reasoning models)은 Inference-time scaling이라고도 불리는, 생성 시간에 더 많은 자원을 투자하여 고품질의 답변을 만들어내는 원리를 적극 활용하는 모델들로,

      OpenAI의 o1, o3, o4 모델들, Gemini-2.5 pro, DeepSeek-R1처럼 think trace를 거쳐 유저에게 전달할 답변을 생성하는 것이 특징입니다.

      그런 추론 모델을 잘 만들기 위한 방법들 중 오늘 소개드릴 내용은 어떻게 추론 모델을 학습시킬 데이터를 잘 만들 수 있을까에 대한 논문으로,

      Qwen2.5-7B-Instruct model의 수학/코드/과학 성능을 비약적으로 상승시킨 결과롤 소개하고 있습니다.

      Open Thoughts에는 Stanford, University of California Berkeley, University of Washington, Bespoke Labs, UT Austin 등 다양한 소속의 연구자들과 엔지니어들이 소속되어있으며,

      저에게는 Alpaca 시리즈로 유명한 Tatsunori Hashimoto 교수님과, 최근에 Allen Institute of AI/UW 에서 각각 NVIDIA/Stanford 로 소속을 옮기신 최예진 교수님이 익숙한 저자입니다.

      Open Thoughts에서는 추론 모델 학습 데이터를 만드는 과정에서 엔지니어링이 필요한 변수들을 다양하게 탐색해보기 위해,

      파이프라인의 한 단계씩에서 평가를 통해 수학/코드/과학 벤치마크에서 전반적으로 가장 우수한 성능을 낸 방식을 채택하여 다음 단계를 진행하는 식으로 실험이 진행되었습니다.

      이 글에서는 Open Thoughts 논문에 소개된 다양한 실험들을 정리해보면서, 저의 생각도 함께 정리를 해볼까 합니다.


      Links


      저자들이 정리한 Key findings

      • 문제별로 Teacher model 답변을 여러개 생성하는건 효과적이고, 성능상의 이점도 크다.

      • 꼭 teacher 성능이 좋은 teacher를 보장하는건 아니고, QwQ-32B가 DeepSeek-R1보다 좋은 teacher일 수 있다.

      • 답변 verification이나 filtering이 성능 향상에 크게 영향을 주지는 않는다.

      • 데이터 소스들 중 질문난이도 평균 점수 기준 top8 뽑는거보다 top 1, top 2 뽑는게 나았다.

      • 질문의 난이도나 답변길이 필터링이, embeddings나 fastText filtering보다 나았다.


      Performance

      • Main table


      • 프로젝트 진행과 성능 향상 과정


        • Bespoke-Stratos 17K로 시작

        • OpenThoughts 114K: 기존 데이터들 합치고 오답 filtering

        • OpenThoughts2 1M: 소스 추가

        • OpenThoughts3 1.2M: 본문에서 자세히 소개


      OpenThoughts3

      • 별다른 얘기가 없으면 각 단계 실험용으론 31600개 sample로 구성하고, DeepSeek-R1으로 답변 생성한 dataset으로 실험했다고 합니다.

      • 질문 Sources 평가 단계

        • 분야별 Top3 질문 data sources


      • 질문 Sources Mixing 단계

        • Top N 개 data sources 중 31600/N개씩 random sample 해서 데이터를 구성해본 실험 결과


          • 여러개 데이터 고르지 말고, 분야별 top1~2에서만 고르자는 결론을 낼 수 있었다고 합니다.

          • 최종 선택된 5개 Sources는 다음과 같습니다.

            • Code: CodeGolf, OpenCodeReasoning

            • Math: OpenMath-2-Math (이 데이터의 크기가 커서 1개만 선택)

            • Science: StackExchangePhysics and OrganicChemistry-PDF

      • 질문 filtering 단계

        • 5개 소스로부터 이번엔 random sample하지 말고, 필터링 방법을 다양하게 해보면


          • Math나 science는 GPT 답변 길이로, Code는 질문 난이도 GPT 평가로 filtering한게 가장 좋았다고 합니다.

      • 질문의 중복 제거 여러개 답변 샘플링 단계

        • 답변당 답변 개수 여러개로 만들고, 중복 제거(deduplication)도 다양한 방법으로 해보니


          • 16개 answers 좋았고, Math나 science는 exact dedup, code는 no dedup이 좋았다고 저자들은 적어두었습니다.

          • 16개 answers 로 고정하면, code는 fuzzy, math는 exact dedup, science는 no dedup이 좋았다고도 해석할 수 있을 것 같습니다.

          • 제가 이 표의 결과를 정리한다면

            • Code는 문법이 좀 더 strict하기때문에 variability가 낮아서 4개 답변정도, Math/science는 16개 답변정도가 좋고

            • 대부분의 deduplication 방법들은 숫자를 무시하기 때문에, 숫자가 많이 들어간 Math는 dedup의 의미가 크지 않거나, 숫자가 바뀜으로써 결과가 달라지는 것도 배워야 한다고 생각하면 수학은 dedup하지 않는 것이 괜찮고,

              code는 문제를 deduplication 하는 것이 나았다고 할 것 같습니다.


      • 답변 filtering 단계

      • Teacher model 선택

        • 답변을 어떤 모델로 생성한게 나았나 보니


          • 의외로 R1에 비해 benchmark 성능은 낮지만, QwQ-32B로 distillation 하는 것이 낫다는 것이 밝혀져, 이 이후로는 QwQ-32B 를 teacher model로 사용했다고 합니다.


      Scaling pipeline

      • LIMO 등에서 주장된것과 달리 31.6k까지 데이터 늘려보면서 실험해보니 데이터 많아질수록 좋아지는 추세가 아직 있어서, 데이터 더 추가하기로 했다고 합니다.


      • 최종 1.2M 만든 pipeline은 다음과 같습니다.


      • 1.2M 까지 증가시키며 Scaling experiments를 더 해본 결과


        • 1.2M 까지 데이터가 늘어날수록 성능이 계속 증가되었다고 합니다. 아마도 LIMA의 결과는 확보할 수 있는 '어려운 문제'의 수가 적을 때 수행된 실험이라 그런 결론이 나왔을 수도 있겠다고 추측 해 볼 수 있겠습니다.

      • 유사한 시기에 발표된 NVIDIA의 Nemotron Nano 와 비교해본 결과에서도, Open Thoughts3 데이터가 우수함을 확인해볼 수 있습니다.



      시사점

      • 실험 결과에 따르면, 좋은 질문을 뽑는 것이 중요하며, 다양한 질문보다 적은 수의 어려운 질문을 뽑는게 더 중요해보입니다.

      • 의외로, 꼭 맞는 정답 하나보다도, 하나의 질문으로부터 여러 개의 답변을 뽑는게 성능 향상에 긍정적 영향을 제법 많이 주며,

        심지어 중단된 것이어도 다양한 reasoning trace를 일부만 넣는 것 만으로도 성능 향상에 긍정적 영향을 준다고 합니다.

      • Open Thoughts3 데이터와, 논문에 소개된 방법들을 활용하여 추가적으로 좋은 데이터를 만들면,

        다양한 task에 대해 A.X의 추론 능력 향상에 도움을 줄 수 있을 것 같습니다.


      Appendix - Training details

      • Training framework로는 LlamaFactory 사용했음

      • Training dataset 크기에 따라 다음과 같이 LR, batch size, epoch 다르게 했음

      • Packing 여부는 성능에는 영향을 거의 미치지 않았음

      • chat template의 reasoning부분은 <think></think>

      • System prompt에 think 하라고 하기 vs 하지 말라고 하기 라면 하라고 하는게 훨씬 좋았음

      • System prompt에 think 하라고 하기 vs No system prompt에는 차이가 크진 않았는데, AIME24에선 No system prompt가 나았음


      Appendix - Evaluation details

      • https://github.com/mlfoundations/evalchemy 활용

      • Temperature 0.7, top_p=1.0, max_new_tokens=32768

      • Decontamination

        • Indel similarity, N-gram-based similarity metric 활용

        • Evaluation data 3092, uncontaminated 3000 samples 로 평가해봤는데 99.6% true negative 달성, 자신있다는듯

      • Base model은 Llama-3.1-8B-Instruct 보다 Qwen-2.5-7B-Instruct가 나았음


      Appendix - Additional data recipe experiments

      • Verification 방법

        • Proof-based 질문 제거

        • Extraction-based math verification (정답 확실히 가려진거만 남기기)

        • LLM-generated unit test verification

      • Verification 효과

        • 32B에는 긍정적, 7B에는 부정적 효과

      • Compressing reasoning traces

        • "wait", "but wait", "but the question" 등 제거해봤더니 성능 하락 심각

        • 너무 긴 reasoning trace제거해도 성능 하락

        • Reasoning trace 함부로 자르지 말라는 교훈


      Appendix - Testing reasoning robustness: Alice In Wonderland evaluation

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      sj.cheon 님의 최신 블로그

      더보기

      DEVOTEE 추천 블로그

      동영상 기고하기