본문으로 건너뛰기

직접 만드는 505만 파라미터 AI 브레인

Aven-1은 random weights에서 시작한 505만 파라미터 Transformer를 로컬에서 학습합니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

Aven-1은 사전 학습 모델이나 API 없이 random weights에서 시작해 학습하는 5,055,360-parameter byte-level Causal Transformer 프로젝트입니다. 모델은 최대 128개 UTF-8 byte를 입력으로 받아 다음 byte를 예측하며, 네 개의 Transformer block과 다섯 개의 attention head, hidden width 320을 사용하고 Apple Silicon에서는 MPS를 학습 장치로 선택할 수 있습니다. 로컬 UI와 CLI는 checkpoint, optimizer state, corpus hash, 학습 이력, W&B 추적을 관리하지만, 포함된 데이터가 비슷한 템플릿의 짧은 이야기라서 낮은 loss가 일반 지능이나 범용 대화를 뜻하지는 않습니다. 프로젝트는 학습 데이터 workspace, 실제 learned weights, 사용자가 직접 편집하는 SQLite memory를 분리하고, 이후에는 더 다양한 말뭉치와 독립 평가 데이터, 긴 context, dialogue 학습으로 확장하는 경로를 제시합니다.

섹션별 상세

01
Aven-1은 외부 API나 pretrained model에 의존하지 않고 5,055,360개 파라미터를 random weights에서 초기화해 학습하는 로컬 프로젝트입니다. PyTorch는 tensor 연산, automatic differentiation, AdamW를 제공하고, 모델 구조와 학습 loop, checkpoint 처리, 웹 인터페이스는 저장소 안에 구현되어 있습니다. 따라서 사용자는 cloud inference 없이 자신의 Mac에서 학습과 텍스트 생성을 직접 실행할 수 있지만, 이 프로젝트는 범용 assistant나 음성·vision·web access를 갖춘 시스템이 아닙니다.
bash
cd /Users/ariveinbers/Documents/Codex/my-ai-brain
.venv/bin/python server.py

macOS에서 서버를 직접 실행해 로컬 브라우저 인터페이스를 여는 명령입니다.

02
모델은 앞선 최대 128개 UTF-8 byte를 읽고 다음 byte를 예측하는 byte-level Causal Transformer입니다. 네 개의 causal Transformer block에 다섯 개 attention head와 hidden width 320을 배치했으며, batch size 8과 float32를 기본값으로 사용해 8 GB Mac에서 시작하기 쉬운 설정을 택했습니다. 학습 장치는 실행 시 MPS 사용 가능 여부를 확인해 선택하지만, 생성은 CPU에서 처리해 UI와 메모리 사용을 단순하게 유지합니다.
03
기본 학습 데이터는 프로그램으로 만든 연습용 이야기이며 여러 샘플이 같은 template을 공유합니다. 마지막 10%의 byte를 gradient update에서 제외해 held-out loss를 계산하지만, 검증 데이터가 학습 데이터와 유사하므로 loss 하락만으로 일반 지능이나 unrelated text에 대한 generalization을 판단할 수 없습니다. 짧은 학습 뒤의 출력도 거칠게 남을 수 있어 corpus의 다양성과 별도 평가 데이터가 결과 해석에 중요합니다.
bash
.venv/bin/python train.py --data data/training.txt --steps 200 --resume

같은 학습 말뭉치를 사용해 200 step을 추가로 학습하고 기존 checkpoint에서 재개합니다.

04
사용자는 UTF-8 plain text를 data/training.txt로 넣거나 UI의 Training-data workspace에서 여러 source를 관리한 뒤 하나의 corpus로 합칠 수 있습니다. checkpoint에는 corpus hash가 기록되므로 다른 corpus로 resume할 수 없고, model weights와 optimizer state, step count, CPU random-generator state도 함께 보존됩니다. 학습 중단 시 현재 step을 마친 뒤 저장하며 20 step마다 checkpoint를 기록하지만, 강제 종료나 전원 손실로 마지막 저장 이후의 진행분이 사라질 수 있습니다.
bash
.venv/bin/pip install wandb
.venv/bin/wandb login
.venv/bin/python train.py --data data/training.txt --resume --steps 200 --wandb

Weights & Biases를 설치하고 로그인한 뒤 학습 지표와 실행 설정을 원격으로 기록합니다.

bash
.venv/bin/wandb sweep sweep.yaml
.venv/bin/wandb agent /aven-1/ sweep.yaml

sweep 설정을 등록하고 learning rate, dropout, batch size 조합을 자동으로 실험합니다.

05
프로젝트는 learned weights, training-data workspace, Memory를 별도 저장소로 분리합니다. gradient descent로 바뀌는 checkpoint의 weights만 생성 결과를 바꾸며, data/sources/*.txt는 다음 학습에 사용할 원문이고 memory.db의 SQLite notes는 학습과 generation에 전혀 읽히지 않습니다. 이 구분을 통해 사용자가 직접 편집하는 메모리와 모델 내부의 opaque parameters를 혼동하지 않도록 하며, source나 memory record 삭제는 즉시 영구 반영됩니다.
06
학습 비교를 위해 W&B에는 loss, held-out loss와 perplexity, gradient norm, total weight norm, layer별 histogram, tokens/sec, 고정 prompt의 sample generation, run config와 system metrics를 기록할 수 있습니다. 학습 text 자체는 W&B 서버로 업로드하지 않고, 로컬 runs/ledger.jsonl에는 완료·일시정지·오류 run의 architecture, dataset, final perplexity와 timestamp를 한 줄씩 남깁니다. sweep mode는 checkpoints/를 건드리지 않는 임시 trial을 만들고 기존 tokenizer와 encoded corpus cache를 재사용해 learning rate, dropout, batch size 조합을 비교합니다.
bash
python3.11 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
.venv/bin/python -m unittest -v

Apple Silicon용 Python 가상환경을 만들고 고정된 의존성을 설치한 뒤 테스트를 실행합니다.

07
저장소는 brain.py에 embedding, causal attention, Transformer block과 generation을 두고 train.py에 data split, optimization, validation, checkpointing, tokenizer 재사용, W&B logging을 모읍니다. tokenizer.py는 자체 corpus로 byte-pair encoding을 학습하고, server.py와 ui.html은 로컬 control panel과 chat panel을 제공하며, test_brain.py는 causal mask, next-byte target, learning, generation을 검사합니다. 이후 개발 방향은 더 다양하고 독립적인 평가용 corpus, tokenization 개선, 메모리 예산 안에서의 긴 context, dialogue-specific training과 evaluation이며, vision·audio·action은 별도의 encoder, dataset, objective와 tool-control system이 필요합니다.

용어 해설

인과적 Transformer(Causal Transformer)
이전 위치의 토큰만 참고해 다음 토큰을 예측하는 Transformer 구조입니다. 각 위치가 미래 토큰을 보지 못하도록 causal mask를 적용하며, Aven-1에서는 최대 128개 UTF-8 byte를 입력으로 받아 다음 byte를 생성하는 데 사용됩니다. 순차 생성과 언어 모델 학습의 기본 구조입니다.
바이트 수준 토큰화(Byte-level Tokenization)
텍스트를 단어가 아닌 UTF-8 byte 단위로 처리하는 방식입니다. 별도의 대규모 어휘 사전 없이 임의의 텍스트를 입력할 수 있지만, 한 단어가 여러 byte로 나뉘어 긴 시퀀스가 될 수 있습니다. Aven-1은 byte 예측을 기본으로 하고 tokenizer 학습과 재사용 기능도 제공합니다.
Metal Performance Shaders(MPS)
Apple Silicon의 GPU에서 PyTorch 연산을 실행하기 위한 backend입니다. Aven-1은 실행 시 MPS 사용 가능 여부를 확인해 학습 장치를 선택하며, 생성은 인터페이스 단순화와 메모리 절약을 위해 CPU에서 수행합니다.
퍼플렉서티(Perplexity)
언어 모델이 검증 데이터의 다음 토큰을 얼마나 잘 예측하는지 나타내는 지표입니다. 값이 낮을수록 모델의 예측 확률 분포가 실제 데이터에 더 가까움을 뜻합니다. 다만 비슷한 템플릿으로 만든 데이터에서는 낮은 검증 perplexity가 일반화나 지능을 입증하지 않습니다.
경사 하강법(Gradient Descent)
모델의 예측 오차에서 계산한 gradient를 이용해 가중치를 조금씩 조정하는 최적화 방법입니다. Aven-1의 checkpoint에는 이 과정으로 바뀐 model weights와 optimizer state가 저장되며, UI의 Memory에 기록한 메모리는 학습에 사용되지 않아 가중치에 영향을 주지 않습니다.

기술

  • PyTorch
  • Python 3.11
  • Apple Silicon
  • MPS
  • AdamW
  • SQLite
  • Weights & Biases
  • W&B
  • JSON Lines

활용 사례

  • 개인 Mac에서 작은 Transformer의 학습 과정 실험
  • 자체 보유 UTF-8 텍스트를 사용한 next-byte language modeling
  • 학습 run과 hyperparameter sweep 비교
  • checkpoint와 외부 memory 저장소의 동작 차이 확인

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 09. 09.수집 2026. 09. 09.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.