marin-community/marin
Open-source framework for the research and development of foundation models.
Marin – 기초 언어 모델 구축을 위한 오픈소스 플랫폼
무엇인가요
- 대규모 언어 모델의 전 생애 주기(데이터 정제, 토큰화, 사전 학습, 사후 학습, 평가)에 초점을 맞춘 연구 수준의 소프트웨어 스택(및 커뮤니티).
- 오픈 개발 설계: 모든 실험, 설정, 심지어 실패한 실행도 기록되고 공개된다.
핵심 기능
| 영역 | Marin이 제공하는 것 |
|---|---|
| 실험 정의 | Makefile과 유사한 선언적이고 단계 기반의 파이프라인. 데이터 준비, 학습, 평가를 기술. 단계는 지연 평가되며 서로 의존 가능. |
| 스케일링 세트 – Delphi | 컴퓨팅 예산에서 모델 크기로의 매핑을 가능하게 하는 레시피. Google TPU Research Cloud에서 실행되는 스케일링 법칙 실험 및 Mixture-of-Experts (MoE) 파이프라인 재현 코드. 체크포인트와 플롯용 데이터는 Hugging Face에 호스팅. |
| Mixture-of-Experts 지원 | 공개 데이터셋(Nemotron-CC, StarCoderData, ProofPile 2)의 결정론적 혼합 및 MoE 로드 밸런싱(분위수 밸런싱)을 위한 도구. |
| 최적화 및 학습 유틸리티 | 설정 가능한 Adam 변형(CompletedAdamHParams), 리소스 사양(ResourceConfig), 사전 정의된 모델 정의(예: llama_nano). |
| 확장 가능한 에이전트 기술 | 일반 워크플로우 단계를 자동화하는 로드 가능한 "기술"(예: add_scaling_heuristic, add-dataset). |
| 문서 및 튜토리얼 | ReadTheDocs의 완전한 문서, 작고 작은 모델 학습을 위한 빠른 시작 가이드, 대규모 예제(1B 파라미터 DCLM, 8B 및 32B 모델). |
일반적인 워크플로우(작은 모델 예제)
# 1️⃣ 데이터셋을 지연 토큰화
tinystories = tokenized(
name="tokenized/tinystories",
source="roneneldan/TinyStories",
tokenizer=marin_tokenizer,
sample_count=1_000,
)
# 2️⃣ 토큰화된 데이터에 의존하는 학습 단계 정의
nano_model = train_lm(
name="checkpoints/marin-nano-tinystories",
version="v1",
model=llama_nano,
optimizer=AdamConfig(learning_rate=6e-4, weight_decay=0.1),
datasets={tinystories: 1.0},
batch_size=4,
seq_len=2048,
num_train_steps=100,
resources=ResourceConfig.with_cpu(),
)
# 3️⃣ 파이프라인 실행
StepRunner().run([lower(nano_model)])
동일한 패턴은 멀티 GPU/TPU 풀과 여러 데이터셋의 혼합에도 확장 가능.
시작하기
- 설치 가이드 읽기:
docs/tutorials/installation.md. - 작은 모델 튜토리얼 실행 (
docs/tutorials/first-experiment.md). - 대규모 학습 가이드 따르기 (
docs/tutorials/train-an-lm.md). - 실험 카탈로그 둘러보기 (
docs/reports/index.md). - Discord에서 커뮤니티에 참여해 지원과 협업 받기.
커뮤니티 및 후원
- 핵심 기여자는 스탠포드 CRFM 및 Open Athena에서 옴.
- Google TPU Research Cloud, Jen-Hsun & Lori Huang Foundation, Siegel Family Endowment, Schmidt Sciences에서 후원.
왜 중요한가 Marin은 최전선 규모의 LLM 연구를 재현 가능하고 투명하게 만들고자 한다. 데이터 파이프라인, 스케일링 법칙, MoE 밸런싱을 포함한 전체 학습 스택을 오픈소스화함으로써 연구자들은 기반 인프라를 다시 만들지 않고도 대규모 모델을 구축, 비교, 확장할 수 있다.
링크
- 📚 문서: https://marin.readthedocs.io
- 🐙 소스 코드: https://github.com/marin-community/marin
- 🤖 모델 체크포인트 (Delphi): https://huggingface.co/collections/marin-community/delphi-69f93cbd09845c03b070bae9
- 💬 Discord: https://discord.gg/J9CTk7pqcM
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트