안녕하세요, 저는 Afonso입니다. 저는 16살이고, 지난 약 1년 동안 제가 만든 대규모 언어 모델(LLM)인 Ganymede를 주로 저 혼자 시작한 작은 연구실 Merkium에서 구축해 왔습니다.
대부분의 LLM 학습 관련 글들은 거대한 팀을 가진 큰 연구소들로부터 나옵니다. 저는 실제로 외부에서 본 모습, 그리고 제가 잘못했던 부분들을 포함하여 공유하고 싶었습니다.
1. 컴퓨팅 자원이 한계일 때 희소(Sparse)가 밀집(Dense)보다 낫다
Ganymede 1.1은 Mixture-of-Experts (MoE) 모델입니다. 총 파라미터는 780B이지만, 주어진 토큰에 대해 활성화되는 것은 약 20B에 불과합니다. 라우터(router)가 각 토큰을 처리할 전문가를 선택하므로, 훨씬 작은 모델의 컴퓨팅 비용만 지불하면서 매우 큰 모델의 용량을 얻을 수 있습니다.
대규모 연구소 예산이 없는 사람에게는 이 방법만이 이 정도 크기의 모델을 학습시키고 서비스하는 것이 현실적이었습니다.
2. 데이터 정제(Data cleaning)가 학습보다 오래 걸린다
Ganymede는 약 5조 개의 공개 웹 텍스트와 오픈 소스 코드로 사전 학습되었습니다. 그 어떤 것도 학습에 들어가기 전에, 저는 모든 것을 필터를 거쳐 API 키와 개인 정보를 제거했습니다.
저는 이것이 간단한 단계일 것이라고 예상했지만 그렇지 않았습니다. 유용한 코드를 버리지 않으면서 실제 비밀 정보들을 포착하는 필터를 만드는 데 제가 계획했던 것보다 훨씬 많은 반복 작업이 필요했습니다.
3. 모든 것을 재창조하려고 하지 마라
Ganymede는 다른 모델의 파인튜닝(fine-tune) 버전은 아닙니다. 하지만 그 아키텍처는 공개된 오픈 가중치 MoE 디자인을 따르며, 몇몇 구성 요소들은 기존의 오픈 모델들에서 각색되었습니다.
저는 이 점을 솔직하게 밝히는 것이 중요하다고 생각합니다. 좋은 출판된 연구를 기반으로 하는 것은 저에게 몇 달의 시간을 절약해 주었고, 그렇지 않은 척할 이유가 없습니다.
4. 안전성은 나중에 추가하는 것이 아니라 처음부터 내장되어야 한다
버전 1.1에서는 시스템 프롬프트에 지침 계층 구조(instruction hierarchy)를 추가하여 모델이 어떤 지침을 우선순위로 두어야 하는지 알게 했고, 또한 탈옥 시도(jailbreak attempts)와 자신의 정체성을 무효화하려는 시도를 감지하는 기능을 추가했습니다.
사람들이 구멍을 발견한 후에 패치하는 것보다 처음부터 이를 염두에 두고 설계하는 것이 훨씬 쉽습니다.
5. 컴퓨팅 자원은 한 곳에 국한될 필요가 없다
학습은 프랑스, 포르투갈, 네덜란드의 데이터 센터에 분산된 450개 이상의 H200 GPU에서 진행되었습니다. 여러 지역에 걸쳐 조정하는 과정이 복잡성을 더했지만, 제가 필요로 하는 컴퓨팅 자원을 실제로 확보할 수 있게 해주었습니다.
현재 상태
Ganymede 1.1은 1M 토큰 컨텍스트 창을 가진 범용 추론(general reasoning) 모델입니다. 추론 기능이 항상 활성화되어 있으며, 스트리밍과 도구 호출(tool calling)을 지원합니다.
현재는 채팅과 OpenAI와 호환되는 API를 통해 모두 무료로 사용할 수 있어 대부분의 기존 도구와 연동됩니다. 사용량 제한은 키당 분당 30회 요청입니다.
아직 미흡한 부분이 많다는 것을 잘 알고 있으며, 솔직한 피드백이 제가 얻을 수 있는 가장 유용한 정보라고 생각합니다. 한번 사용해 보시고 어떤 부분에서 부족한지 알려주시면 감사하겠습니다.
채팅: https://chat.merkium.nl
문서: https://www.merkium.nl/docs
과정의 어느 부분에 대해서든 댓글로 질문해 주시면 기꺼이 답변드리겠습니다.