AI 마스터 카파티의 오픈소스 프로젝트가 화제가 되면서 단 4시간 만에 8,000줄의 코드로 ChatGPT를 복제했습니다.

이 기사는 기계로 번역되었습니다
원문 표시

10월 14일 이른 아침, AI 분야의 저명한 전문가 안드레이 카르파티가 "나노챗(nanochat)"이라는 새로운 오픈소스 프로젝트를 공개했습니다. 그는 이 프로젝트를 자신이 작성한 프로젝트 중 "가장 제약이 없고" 엉뚱한 프로젝트 중 하나라고 묘사했습니다.

사전 학습만 다루었던 이전의 nanoGPT와 달리, 새로운 nanochat은 처음부터 끝까지 최소한의 풀스택 학습/추론 프로세스로 진행되며, 최소한의 종속성으로 단일 코드 베이스를 통해 간단한 버전의 ChatGPT를 완벽하게 빌드할 수 있습니다.

nanochat의 사용 과정은 매우 간단합니다. 클라우드 GPU 서버를 임대하고 단일 스크립트를 실행하기만 하면 4시간 만에 ChatGPT와 비슷한 웹 인터페이스에서 훈련한 대규모 언어 모델(LLM)과 통신할 수 있습니다.

나노챗이란 무엇인가요?

Kapathy가 제시한 원칙을 기반으로 Nanochat은 다음을 포함하여 챗봇을 처음부터 구축하는 데 필요한 모든 단계와 도구를 패키지로 제공합니다.

1. 데이터 준비: 원시 웹 텍스트(예: FineWeb 데이터 세트)를 시작으로, 대량의 텍스트를 모델이 이해할 수 있는 숫자로 변환하는 토크나이저를 만듭니다.

2. 모델 사전 학습: 대규모 데이터를 기반으로 기본적인 Transformer 모델을 학습하여 언어 문법, 사실, 그리고 기본적인 추론을 학습할 수 있도록 합니다. 이는 가장 시간이 많이 소요되고 핵심적인 단계입니다.

3. 정렬 미세 조정:

  • a. 지침 세부 조정: 고품질의 질문 답변 및 대화 데이터를 사용하여 모델이 지침을 따르고 보조자처럼 사람들과 소통하는 방법을 가르칩니다.
  • b. 강화 학습: (선택 사항) 보상과 페널티를 통해 특정 작업(예: 수학 문제 해결)에 대한 모델의 성능을 더욱 향상시킵니다.

4. 모델 추론: ChatGPT와 유사한 명령줄이나 웹 인터페이스에서 훈련된 모델과 실시간으로 대화할 수 있는 효율적인 엔진을 제공합니다.

5. 평가( 훈련이 완료되면 시스템은 자동으로 여러 표준 테스트(예: 수학, 코딩, 상식적 추론)에 대한 모델의 성과를 보여주는 자세한 "보고서"를 생성합니다.

Karpathy의 이전 프로젝트인 nanoGPT2단계: 모델 사전 학습 에 중점을 두었습니다. 이는 교육 목적으로 제작된 미니멀리스트 GPT 모델 학습 코드로, 대규모 모델의 학습 방식을 모두가 이해할 수 있도록 돕기 위한 것이었습니다.

Nanochat은 nanoGPT의 사전 학습 부분을 포함할 뿐만 아니라 후속 핵심 단계(명령 미세 조정, 강화 학습, 추론 및 UI 인터페이스)를 모두 완료하여 궁극적으로 실제로 대화에 참여할 수 있는 챗봇을 제공하는 풀스택 프로젝트 입니다.

이 모든 것은 카파시가 입력한 단 8,000줄의 코드로 달성되었습니다.

카파시가 이 나노챗을 만든 데에는 어떤 의미가 있나요?

첫째, 교육과 학습을 제공합니다. ChatGPT를 처음부터 구축하는 방법을 이해하는 데 현재 가장 유용한 자료 입니다. 일반 개발자와 연구원도 비교적 저렴한 비용으로 자신만의 소규모 채팅 모델을 만들 수 있어, 원시 텍스트부터 지능형 대화형 비서까지 전체 과정을 완벽하게 경험할 수 있습니다.

둘째, 연구 및 실험 플랫폼을 제공합니다. 연구자들에게 가볍고 제어 가능하며 재현 가능한 실험 플랫폼을 제공합니다. 이 프레임 사용하면 값비싼 대규모 컴퓨팅 리소스를 사용하지 않고도 새로운 모델 아키텍처, 학습 방법 또는 정렬 기법을 신속하게 테스트할 수 있습니다.

마침내 X의 네티즌도 새로운 가능성을 발견했습니다. 그는 이 시스템이 하드웨어 평가의 새로운 기준이 될 수 있다고 믿었습니다.

정말 멋지네요! 이게 하드웨어 평가의 새로운 기준이 될 겁니다. 우리가 해야 할 일은 순서가 정해진 트리플을 보고하는 것뿐입니다.

● 총 엔드투엔드 교육 비용(USD)

● 총 엔드투엔드 교육 시간(분)

● 특정 테스트 세트에 대한 전반적인 성능

그리고 전체 과정은 매우 재현 가능합니다.

AI를 처음부터 훈련하는 데 100달러

그렇다면 Nanochat을 사용하면 얼마나 많은 비용을 절감할 수 있을까요?

● 약 100달러(8XH100 노드에서 약 4시간의 교육)만 투자하면 기본 대화를 나누고 스토리와 시를 쓰고 간단한 질문에 답할 수 있는 작은 ChatGPT 클론을 교육할 수 있습니다.

(웹 인터페이스는 나노챗 모델과의 대화를 보여주는데, 4시간이 걸렸고 비용은 100달러였습니다. 이 모델은 이미 시를 쓸 수 있습니다.)

(나노챗 성적표에는 이 100달러 스피드런에서 생성된 몇 가지 요약 지표가 나와 있습니다. 전반적으로 꽤 좋습니다.)

● CORE 지표 기준 GPT-2를 능가하려면 약 12시간의 훈련이 필요합니다.

● 예산을 약 1,000달러(41.6시간의 학습)로 늘리면 모델의 일관성이 향상되어 간단한 수학 및 프로그래밍 문제를 풀고 객관식 시험을 통과할 수 있습니다. 예를 들어, 깊이가 30인 모델은 24시간 학습 후 MMLU에서 40점대, ARC-Easy에서 70점대 이상, GSM8K에서 20점대 이상의 점수를 얻을 수 있습니다(GPT-3 Small 125M 또는 GPT-3의 1/1000에 해당하는 연산 부하).

카파시가 직접 그 기술을 공개한다

카파시는 X 플랫폼에서 네티즌들과 질의응답 대화를 나누며 나노챗의 개발 배경과 관련 기술에 대한 내용을 공개했습니다.

다음은 선택된 질문과 답변입니다.

질문: 이 모델의 훈련/인프라는 어떤 모델 설계를 기반으로 하고 있나요?

Kapathy: nanochat의 모델 아키텍처는 기본적으로 Meta Llama 모델과 유사하지만, 개선된 버전인 modded-nanoGPT 프로젝트의 일부 단순화와 디자인 아이디어를 반영했습니다. 이 프로젝트의 목표는 이 규모의 모델에 대한 "견고한 기준선"을 구축하는 것입니다.

주요 건축적 특징은 다음과 같습니다.

고밀도 변압기

회전 임베딩(회전 위치 인코딩), 명시적 위치 임베딩 없음

QK Norm (쿼리 및 키 벡터를 정규화)

임베딩 및 언임베딩 가중치는 공유되지 않습니다(비연결 가중치)

토큰 임베딩 후 정규화 수행

MLP는 ReLU² 활성화 함수를 사용합니다.

RMSNorm에는 학습 가능한 매개변수가 없습니다.

바이어스 없는 선형 레이어

다중 쿼리 어텐션(MQA) 채택

출력 레이어는 Logit Softcap 기술을 사용합니다.

옵티마이저는 Muon + AdamW 조합을 사용하는데, 이는 modded-nanoGPT의 영향을 크게 받습니다. Kapathy는 향후 Adam 옵티마이저의 각 모듈 의 학습률을 신중하게 조정하여 Muon을 제거할 계획이라고 밝혔지만, 아직 완료되지는 않았습니다.

질문: 제 데이터로 학습시킬 수 있나요? 제 모든 Notion 메모, 건강 데이터, 그리고 다른 대형 모델과의 대화처럼요. 저를 진정으로 이해하는 개인용 챗봇을 만드는 것처럼요?

Kapathy: 이 코드베이스가 이 목적에 적합하지 않다고 생각합니다. 이 미니어처 모델들을 아주 어린아이들(유치원생처럼)이라고 생각해 보세요. 이 모델들은 대형 모델들이 가진 본래적인 지능을 가지고 있지 않습니다. 자신의 데이터로 미세 조정/훈련시키면, 자신의 글쓰기 스타일을 흉내 내는 듯한 흥미로운 결과를 얻을 수 있겠지만, 최종 결과는 조잡할 것입니다.

원하는 결과를 얻으려면 먼저 원본 데이터를 정리하고, 대량 의 합성 데이터로 다시 작성해야 할 수 있습니다(이 단계는 까다롭고 불확실성이 높으며 연구 분야입니다). 그런 다음 주요 오픈 소스 대규모 모델을 미세 조정해야 합니다. 이 과정에서 모델의 원래 지능을 잃지 않도록 사전 학습된 대량 의 데이터를 혼합해야 할 수도 있습니다.

그러니 솔직히 말해서, 이 과정을 완벽하게 작동시키는 것은 여전히 ​​최첨단 연구입니다.

현재 가장 실현 가능한 비기술적 해결책은 모든 데이터를 NotebookLM과 같은 도구로 가져오는 것입니다. 이 도구는 RAG(Retrieval of References in Blocks) 기술을 사용하여 데이터를 처리합니다. 정보는 컨텍스트 창을 통해 모델로 전달되지만, 모델의 가중치는 변경되지 않습니다. 모델이 사용자를 완전히 "알지는" 못하지만, 아마도 이것이 구현하기 가장 쉬운 근사치일 것입니다.

질문: 이 코드 중 얼마나 많은 부분을 직접 작성하셨나요?

Kapathy: 코드는 대부분 손으로 작성되었습니다(탭 기반 자동 완성 기능 포함). Claude나 Codex 같은 AI 코딩 도우미를 몇 번 사용해 봤지만, 전혀 효과가 없었고 전반적으로 도움이 되지 않았습니다. 아마도 제 코드베이스 스타일이 훈련 데이터의 스타일과 너무 많이 다른 것 같습니다.

본 기사는 Tencent Technology 에서 작성되었으며 저자는 Jinlu이고 36Kr에서 승인을 받아 게시했습니다.

출처
면책조항: 상기 내용은 작자의 개인적인 의견입니다. 따라서 이는 Followin의 입장과 무관하며 Followin과 관련된 어떠한 투자 제안도 구성하지 않습니다.
라이크
즐겨찾기에 추가
코멘트