팀 구성과 YUTECT사 기술 자문: 문과 도쿄대생이 GPT형 모델을 풀스크래치로 개발하는 이야기 (외전 4) [주식회사 하이레조 협력]
요약
도쿄대 학생 동아리가 주식회사 하이레조의 GPU 클라우드 서비스(GPUSOROBAN)를 활용하여 25억 파라미터 규모의 GPT형 모델 'SGT' 개발 및 훈련을 진행하고 있습니다. 본 글은 프로젝트 과정에서 팀 구성과 기술적 어려움을 겪었으며, 주식회사 YUTECT로부터 전문적인 기술 자문을 받아 문제점을 해결해 나가는 과정을 담고 있습니다.
핵심 포인트
- GPU 클라우드 서비스(GPUSOROBAN)를 활용하여 고성능 컴퓨팅 자원에 접근 가능합니다.
- GPT형 모델 개발을 위해 25억 파라미터 규모의 SGT 프로젝트를 진행 중입니다.
- 팀 구성 및 기술적 방향 설정에 어려움을 겪어 전문 기업으로부터 자문을 받았습니다.
- AI 개발 과정에서 검증 방법, 사후 학습 등 구체적인 기술적 질문들을 던졌습니다.
지난 기사는 여기에서 확인하실 수 있습니다.
→ https://qiita.com/uaokit0905/items/40b8b6b1203c921fe07b
【장비 협력에 대하여】
본 기사(및 본 연재 프로젝트)는 주식회사 하이레조로부터 GPU 클라우드 서비스 'GPUSOROBAN'의 컴퓨팅 자원(NVIDIA A100 80GB)을 제공받아 개발 및 검증을 진행하고 있습니다.
안녕하세요! 도쿄대학교 문과 3류 2학년으로, 도쿄대 AI 연구회 대표인 아오키입니다.
저희 도쿄대 AI 연구회는 도쿄대에서 활동하는 동아리이며, 1년 동안 0부터 GPT형 모델을 개발하기 위해 매주 수요일에 스터디를 개최하고 있습니다. 스터디에서는 초보자도 이해하기 쉬운 슬라이드와 충실한 커리큘럼을 활용하여 개발을 진행하고 있습니다.
주식회사 하이레조는 자체적으로 GPU 데이터센터를 운영하며 'GPUSOROBAN'이라는 GPU 클라우드 서비스를 제공하는 회사입니다. 고성능 GPU는 매우 비싸서 저희 같은 학생 동아리가 쉽게 접근할 수 있는 물건은 아닙니다. GPUSOROBAN에서는 클라우드 상에서 필요한 기간과 양만큼만 GPU를 빌릴 수 있기 때문에, 초기 투자를 줄이면서 GPU를 활용하여 개발을 진행할 수 있습니다.
현재 주식회사 하이레조의 협력으로 25억 파라미터의 GPT형 모델 구현 및 훈련을 진행하고 있습니다. 그 이름은 SGT(Scratch Generative Transformer) 프로젝트입니다! 지난 기사에 이어, SGT 프로젝트의 상황을 전해드립니다.
얼마 전 대학 연수를 다녀온 베트남에서 돌아왔습니다. 4월에 프로젝트가 시작된 것 같은데 벌써 9월이 되어버렸습니다. 시간이 정말 빠르지만, 10월에는 대학 수업이 봄 학기보다 늘어나고 유학 준비에도 시간을 할애해야 하므로, 이 프로젝트에 투입할 수 있는 시간도 줄어들게 됩니다. 따라서 이 9월이 실질적인 타임 리미트가 됩니다.
저는 여름방학이 끝날 무렵이 되어서야 숙제에 손을 대는 타입이었습니다. 마감일이 다가오지 않으면 제 속도로 진행해 버리는 습관이 있습니다. 이번에도 예와 같이, 마감일을 의식하고 나서야 초조함을 느끼기 시작했습니다.
아무리 생각해도 지금 상태로는 안 되겠다고 판단하여 팀을 꾸미기로 했습니다. 선배들에게는 계속 '팀을 짜라'라는 말을 들었지만, 저는 팀제 경진대회 같은 것에 참여한 적이 없고, 팀으로 무언가를 해본 경험이 거의 없어서 '팀을 짠다'는 행위 자체에 와닿지 않았습니다...
팀을 꾸리지 못한 다른 이유로는 무엇을 해야 할지 모른 채 진행하려고 했다는 점이 있습니다. 저의 생각으로는 제가 팀 멤버를 소집하는 것이니, 제가 리더가 되어 남들에게 일을 분배해야 한다고 생각했습니다. 반면 이번 프로젝트는 상당히 즉흥적이고 우왕좌왕하며 진행했기 때문에, 무엇을 해야 하는지 잘 모르는 상태였습니다. 의식적인 문제와 진행 방식의 문제가 좋지게 결합하여, 다른 사람에게 도움을 요청할 수 없는 상황이었습니다.
그리고 사려 깊은 것도 이유 중 하나입니다. 저는 참는 편이라서, 간단하게 남에게 도움을 청하는 것이 서툽니다.
놀랍게도 하이레조의 배려 덕분에 주식회사 YUTECT의 다나카님과 카도와키님께 직접 기술적인 자문을 받을 수 있게 되었습니다. (주식회사 YUTECT: HP https://yutect.com/)
주식회사 YUTECT는 제품 제공 외에도 건축×AI를 축으로 한 AI 모델 개발, 이미지 생성, R&D 공동 연구, PoC까지 폭넓게 다루는 AI 개발 및 컨설팅 기업입니다. 게다가 건축 업계에서 사용되는 3D 모델링 소프트웨어인 REVIT에서 AI가 설계를 지원하는 'Revit 조수'를 개발하고 있습니다.
이번 목표는 일단 현재의 문제점을 파악하여, 우왕좌왕하던 상황을 타개하는 것이었습니다. 다음 사항에 대해 질문했습니다.
・검증 방법은 어떻게 정하는 것이 좋을지
・사후 학습(事後学習) 방법은 어떻게 결정하면 좋을지
・무엇이 무엇인지 모른 채 AI를 사용해 개발해도 괜찮은지
・사전 학습 모델의 성능 부족 가능성은 있는지
・사후 학습에서 강화학습 (RL)을 결합하는 경우 어떻게 진행해야 하는지
하이레조를 통해 이러한 사전 질문들을 전달받았고, YUTECT 측의 답변을 바탕으로 자문 당일에는 더욱 내용을 깊이 파고들었습니다. 자문을 받으면서 명확해진 현재의 큰 문제점들을 정리합니다.
저는 '실험 진행 방식'이 좋지 않았고, 현안의 문제점이나 가설을 세우고 이를 실증하는 식의 진행이 되어 있지 못했습니다. 당연히 실험을 해본 적 없는 문과 대학생이라 그럴 수밖에 없었습니다.
「GPT 모델을 풀스크래치로 학습시켜, G 자격증(G検定)에 합격시키는」 같은 프로젝트를 다른 사람이 하고 있는 사람은 없습니다. 따라서 이 프로젝트는 기존의 방법을 그대로 따라 하는 것만으로는 충분하지 않으며, 어떤 방식으로 진행해야 잘 될지 실험을 반복할 필요가 있습니다.
잘 되었을 때 무엇이 입증되었는지, 그리고 잘 되지 않았을 때 원인이 무엇인지 알 수 있는 실험 방법으로 진행해 나가야 합니다.
타임 리미트(Time limit)까지 프로젝트 완료의 목표를 세우려면 제대로 된 파이프라인을 구축해야 합니다. 아마도 프로젝트를 진행하면서 이런 진행 파이프라인을 구축하는 것은 처음에 시간을 들여 하는 일일 텐데, 그것조차 전혀 되어 있지 않았던 것이죠.
저는 앞서 말씀드린 것처럼 이런 개발은 해본 적이 없고, 게다가 경진대회에 참가해 본 적도 없습니다. 당연히 프로젝트 진행 방식 같은 건 모릅니다. 그저 「G 자격증 합격」이라는 모호한 목표만 걸어놓은 상태입니다. 정말 암중모색(暗中摸索)입니다.
우선 어둠 속을 나아가는 것을 멈추고, 진행 방향과 방법을 명확히 정할 필요가 있습니다.
YUTECT의 다나카님과 카도와키님께 상담하면서, 이쪽에 대해 못 본 척하고 있던 문제점들이 상당히 명확해졌습니다.
목표로부터 역산(逆算)하는 형태로 파이프라인을 구축해 나가겠습니다.
애초에 목표가 구체적으로 무엇인지부터 시작하겠습니다.
지금까지는 「G 자격증 합격」이라는 모호한 목표였지만, G 자격증 벤치마크를 자체적으로 만들고 그 정답률을 70%로 만드는 것을 목표로 하겠습니다.
(G 자격증 벤치마크는 선배가 만들어 판매용으로 공개했던 문제의 사용 허가를 받아 준비했습니다. 참고 링크→https://www.udemy.com/course/gkentei-moshi/?couponCode=V3JPLETSLEARN)
만약 70%에 도달하지 못한다면, 「왜 도달하지 못했는지」를 명확히 하고, 전체를 되돌아보며 「프로젝트 진행 방식이 적절했는지」「다음번에 다른 프로젝트를 할 때는 어떻게 진행해야 하는지」를 기록으로 남겨, 도쿄대 AI 연구회 전체에서 배움이 남도록 하겠습니다.
목표가 정해졌으니, 여기서부터 목표를 향한 검증을 진행하겠습니다.
우선 베이스 모델(base model)에서의 G 자격증 벤치마크 정답률을 보겠습니다.
0샷(0shot), 선택지 유도 추론(尤度推定), 위치 편향이 없는 상태에서, 정답률은 20%(29/145)입니다.
지금까지의 실험을 통해 사전 학습(事前学習) + CPT(Contextual Prompt Tuning) + Instruction tuning을 해도 G 자격증 벤치마크에 대한 이 정답률이 유의미하게 향상되는 것은 아니라는 것을 알고 있습니다. 따라서, 사전 학습, CPT, Instruction tuning 중 어디가 학습의 병목 현상(bottleneck)이 되고 있는지 살펴보겠습니다.
우선 Instruction tuning 단계부터 의심해 보겠습니다. 지금까지는 단순히 G 자격증 같은 문제(G検定likeの問題)를 약 1100문제 정도 그대로 학습시키고 있었습니다. 그 방식으로는 성능 향상이 보이지 않았기 때문에, 이번에는 모델에게 CoT 형식으로 출력하도록 하겠습니다.
CoT란 Chain of Thought의 약자로, AI의 사고 과정을 출력하게 하는 기법입니다.
G 자격증 문제와 선택지 및 정답에 더해, 정답에 이르는 과정의 해설문(解説文)을 학습시킴으로써, 모델이 스스로 문제를 풀 때도 해설문과 같은 것을 출력하도록 만듭니다. 이 해설문이 사고 과정의 역할을 하게 되어, 정답률 향상이 기대되지만, 저 역시 이유는 잘 모르니 궁금한 분은 조사해 보시면 좋겠습니다.
CoT 형식을 적용한 결과는 다음과 같습니다.
우선 답변 형식부터 확인하겠습니다.
어떤 AI 모델 학습에 사용하기 위해, 여러 제공처에서 얻은 데이터에 대해 제외나 변환 등의 가공을 진행했다. 나중에 특정 예측 결과에 대해 어떤 데이터가 어떤 경위를 거쳐 학습에 사용되었는지 확인할 수 있도록 하기 위한 대응으로서, 가장 적절한 것을 1개 고르시오.
A. 취득처・취득조건, 가공내용, 이용목적을 데이터셋의 버전에 기록하고, 업데이트 이력과 연관시킨다
B. 취득처・취득조건, 가공내용, 이용목적을 데이터셋의 버전에 기록하고, 이용 시 운영 로그와 연관시킨다
C. 취득처・취득조건, 가공내용, 이용목적을 모델의 버전에 기록하고, 평가 결과와 연관시킨다
D. 취득처・취득조건, 가공내용, 이용목적을 데이터셋의 버전에 기록하고, 모델의 버전과 연관시킨다
라는 프롬프트를 입력합니다.
학습 전 답변은 이렇습니다.
(이미지 placeholder)
이렇게 데이터셋마다 다른 기록과 가공을 진행함으로써, 모델의 재현성과 신뢰성을 높이고, 과거 데이터와의 비교나 개선점 추출에 활용할 수 있습니다.
CoT 형식으로 학습한 후(1 epoch)의 답변은 다음과 같습니다.
데이터셋 버전에 따라 기록하고 업데이트 이력과 연결함으로써, 출처 및 획득 조건, 가공 내용, 활용 목적이 일관성 있는 데이터셋을 만들 수 있습니다. 정답: A
꽤 그럴듯한 답변이 되었습니다. 그렇다면 정답률에는 변화가 있었을까요?
epoch 수는 CoT 형식의 데이터셋 학습 epoch 수를 나타냅니다.
1 epoch 차수: 27.6%
2 epoch 차수: 26.2%
3 epoch 차수: 27.6%
4 epoch 차수: 26.2%
5 epoch 차수: 28.3%
추측으로 답변을 선택했을 경우와는 유의미한 차이가 없습니다.
즉, 답변 형식은 학습했지만, 그것이 정답률 향상으로 이어지지는 않았습니다.
덧붙여, 2 epoch부터는 학습에 사용된 문제를 프롬프트로 주면 해설 부분까지 학습 데이터와 한 글자도 똑같이 답하는 암기 현상이 보이거나, 문제문이 아닌 일반적인 프롬프트에도 '정답: A' 같은 기호를 붙여서 반환하는 현상이 나타났습니다.
하지만 이것만으로는 CoT의 의미가 없었다고 단언할 수는 없습니다.
애초에 모델이 '4지선다 문제'라는 형식을 이해하지 못했을 가능성이 있습니다.
지식은 가지고 있어도, 그것을 적절하게 꺼내 쓰지 못하고 있을지도 모릅니다.
그래서 간단한 문제로 4지선다 문제에 대한 적응력을 확인해 보기로 했습니다.
기본 모델의 지식만으로 답변이 가능할 것이라 기대되는 간단한 4지선다 문제를 준비하여, 그 문제에 정답을 맞힐 수 있는지 검증합니다.
만약 간단한 4지선다 문제에서도 틀린다면, 그것은 지식보다는 형식적인 부분에 문제가 있다는 의미가 됩니다. 반대로 정답을 맞힌다면, 4지선다 문제를 푸는 능력 자체는 문제가 없고 모델의 지식 부족이 원인이라는 뜻입니다. 이 결과는 다음 기사에서 공개하겠습니다.
자, 만약 '모델의 지식 부족'이 원인이었다고 가정하고 더 자세히 살펴보면, CPT를 통한 지식 획득에 실패한 경우와, CPT는 잘 되고 있지만 사전 학습 모델이 CPT로 보충할 수 없을 정도의 지식 부족인 두 가지 가능성이 있습니다.
이 검증도 동시에 진행해 나갈 것입니다. 검증에는 Qwen3-0.6B를 사용합니다.
Qwen3-0.6B의 G 자격증(G検定) 벤치마크 정답률은 약 59%입니다 (0shot, 선택지 유도 추정, 위치 편향 없음).
여기에 CPT를 더했을 때, G 자격증 벤치마크의 정답률이 유의미하게 상승한다면, CPT로 지식 획득에 성공했으며 CPT 데이터셋에 문제는 없다는 것을 알 수 있습니다. 만약 정답률 변화가 없거나 유의미하게 하락한다면, CPT 데이터셋에 문제가 있을 가능성이 있습니다.
이 부분에 대해서도 다음 기사에서 결과를 공개하겠습니다.
지금까지 새로운 실험 과정을 말씀드렸는데, 팀으로 구성하면서 실험 속도가 엄청나게 빨라졌습니다. 감동적입니다. 일부는 지금까지의 검증과 비슷한 내용이라 다시 해봤는데, 제가 2개월 정도 걸렸던 내용이 2주 정도로 끝났습니다. 팀이라는 것이 정말 대단합니다...
저는 팀 전체의 태스크 관리를 담당하고 있습니다. 선배나 동료들의 도움을 받아 조금씩 요령을 터득했습니다. 아래에 현재 팀 체제에서 의식하고 있는 것들을 정리하겠습니다.
・태스크 관리자 자신이 너무 많은 태스크를 떠맡지 않도록 하기.
제가 여러분들에게 태스크 지시를 내리는데, 제 지시가 모호하거나 필요한 도구가 갖춰져 있지 않아 팀원들로부터 저에게 질문이 많이 들어옵니다. 그 대부분은 제가 책임지고 판단해야 하는 질문입니다. 여기서 제가 다른 태스크로 바빠지면, 원래 제가 해야 할 '판단'에 시간을 쓸 수 없게 됩니다.'판단' 자체를 태스크 관리자의 중요한 태스크로 간주하고, 다른 부분에서는 팀원들에게 도움을 받고 있습니다. 물론, 판단할 때도 팀원들의 도움을 받습니다.
・산출물(정보)의 일원화된 관리
이것은 선배에게서 조언받은 것입니다. 모두가 여기저기 흩어져 작업하기 편하도록, 산출물은 한 곳에서 관리합니다. 이 프로젝트에서는 Notion을 사용하고 있으며, 모든 산출물이 그 Notion에서 볼 수 있도록 합니다.
기본적인 작업은 병렬로 진행할 수 있게 되어 있지만, 다른 사람의 산출물을 참조해야 하는 태스크도 있습니다. 그럴 때마다 그 사람에게 연락해서 답장이 올 때까지 기다리고 있으면 낭비되는 대기 시간이 생깁니다. 산출물(정보)의 일원화된 관리는 커뮤니케이션 비용과 대기 시간을 줄이는 데 도움이 됩니다.
・미팅을 정기적으로 열고, 최대한 짧게 끝내기.
미팅을 정기적으로 열어 성과 보고와 방침 상담을 진행하고 있습니다. 매번의 미팅에서 새로운 태스크가 발생하여 다음 미팅이 마감일이 되므로, 전체 진척도를 관리하기 용이합니다. 또한, 사이가 좋은 멤버들과 미팅하면 잡담이 들어가서 길어지기 쉬우므로, 집중해야 할 때 집중할 수 있도록 회의 중 주제 이탈에 주의하고 있습니다.
팀을 경험하면서 많은 것을 배웠고, 팀원들이 여러 번 도움을 주었기 때문에 진척 속도가 비교할 수 없을 만큼 빨라졌습니다. 아직 팀 리더로서 미숙하기 때문에 앞으로도 팀 운영 공부를 계속해 나갈 것입니다.
상담을 받을 수 있었던 덕분에 기술적으로나 의식적으로 큰 깨달음을 얻었습니다.
이 자리를 빌려 주식회사 YUTECT의 다나카님과 카도가와미님께 다시 한번 감사의 말씀을 전합니다. 정말 감사했습니다。
관련 링크
주식회사 하이레조 공식 사이트:
클라우드 서비스 "GPUSOROBAN":
주식회사 YUTECT 공식 사이트:
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기