anuj0456/OpenArch

PyTorch implementations of modern open-source LLM architectures (Llama, Qwen, DeepSeek, Gemma, GPT-OSS, Kimi, and more) — written from scratch for readability and learning, based on Sebastian Raschka's LLM Architecture Gallery.

OpenArch – 현대 LLM 아키텍처의 가독성 있는 PyTorch 구현

무엇인가요 – 세바스티안 라슈카의 LLM 아키텍처 갤러리에서 가져온 단일 대규모 언어 모델(LLM) 아키텍처를 하나씩 수작업으로 구현한 PyTorch model.py 파일 모음입니다. 코드는 의도적으로 최소화되어 있으며, 모델당 하나의 가독성 있는 파일, 분할 없음, 성능 최적화 기법 없이, 순전파에 필요한 핵심 레이어만 포함되어 있습니다.

왜 존재하는가 – 허깅페이스 transformers와 같은 프로덕션 라이브러리는 밀도가 높고 성능 최적화에 중점을 두어, 모델이 왜 그렇게 설계되었는지 이해하기 어렵습니다. OpenArch는 아키텍처적 선택(어텐션 유형, 정규화, 위치 인코딩, MoE 라우팅 등)이 명시적이고, 서로 쉽게 비교할 수 있는 학습 자료를 목표로 합니다.

구현된 내용 – README에는 수십 개의 텍스트 전용 모델(GPT‑2 XL, Llama 2/3/4, OLMo 2, DeepSeek R1, Gemma 3, Mistral 3, Qwen 3 변형, Kimi K2, GLM 4.5, GPT‑OSS, Grok‑2.5 등)과 몇몇 멀티모달 또는 이미지 모델이 나와 있습니다. 각 항목에는 다음 정보가 표시됩니다:

  • 모델 크기 (예: 7B, 400B)
  • 정규화 (RMS Norm, QK‑Norm 등)
  • 위치 인코딩 (RoPE, 절대적 등)
  • 어텐션 유형 (멀티헤드, 그룹쿼리, 슬라이딩윈도우, 라틴, 게이트형)
  • Mixture-of-Experts (MoE) 사용 여부

✅는 전방 전파가 실행 가능함을 의미하고, 🚧는 구현이 진행 중임을 의미합니다.

리포지토리 구조

OpenArch/
├─ text/      ← 텍스트 모델별 폴더 (gpt2/, llama3/, …)
│   ├─ model.py
│   └─ README.md
├─ multimodal/ (예: pali-gemma/)
├─ requirements.txt
└─ README.md (이 파일)

각 모델 폴더에는 특정 아키텍처 선택과 참고한 자료에 대한 간단한 README가 포함되어 있습니다.

사용 방법

  1. 리포지토리를 클론하고 requirements.txt에서 종속성 설치 (PyTorch 및 몇 가지 유틸리티).
  2. 모델 폴더로 이동, 예: cd text/llama3.
  3. 제공된 model.py를 실행하거나 가져와 모델 클래스를 인스턴스화하고 토큰 ID 텐서를 입력합니다. 코드에는 공식 가중치를 선택적으로 로드하고 몇 가지 토큰 출력을 검증하는 간단한 전방 전파 테스트가 포함되어 있습니다.

기여 방법 – 다음을 원하는 기여자를 환영합니다:

  • 갤러리에 없는 아키텍처 추가
  • 기존 모델에 대한 README 작성
  • 공식 가중치와 비교하는 테스트 추가
  • 문서 문자열 개선 또는 공유 유틸리티 리팩터링 기여는 속도보다 명확성을 우선시해야 하며, 목표는 교육이지 프로덕션입니다.

라이선스 – 리포지토리 전체는 Apache 2.0; 개별 모델 파일은 원본 모델의 라이선스를 따릅니다.

결론 – OpenArch는 오늘날의 대규모 언어 모델의 구조 요소를 이해하고 읽고자 하는 누구에게나 유용한 진정한 오픈소스 교육 중심 코드베이스입니다. 전체 라이브러리의 부담 없이, 현대 LLM 아키텍처의 핵심을 탐구할 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트