jingyaogong/minimind-o
🎙️ A 0.1B Omni model trained from scratch, capable of listening, speaking, and seeing!
MiniMind‑O – 초소형 엔드투엔드 옴니 모델 (약 0.1 B 파라미터)
무엇인가요 – MiniMind‑O는 오픈소스이며, 텍스트 + 음성 + 이미지의 다중 모달 입력을 처리하고, 텍스트 및 스트리밍 음성 출력을 생성하는 다중 모달 모델입니다. "Thinker → Talker" 파이프라인은 PyTorch로 완전히 재구현되었으며, 고수준 프레임워크의 마법 없이, 훈련 스크립트, 데이터, 사전 학습된 가중치, 데모 인터페이스를 함께 제공합니다.
주요 기능 (README에 기술됨)
- 옴니 기능 – 하나의 가중치 파일이 텍스트, 음성, 시각 입력 3가지 모달리티와 텍스트, 실시간 음성 출력 2가지 모달리티를 모두 처리합니다.
- 초소형 크기 – 기본 모델 "minimind‑3o"는 약 113 M의 학습 가능한 파라미터(≈0.1 B)입니다. MoE 버전(≈315 M)도 제공됩니다. 이로 인해 mini 데이터셋을 사용하면 단일 RTX‑3090에서 약 2시간 내에 전체 체인 훈련이 가능합니다.
- Thinker–Talker 이중 경로 아키텍처
- Thinker: 다중 모달 임베딩을 융합하고 텍스트 응답을 생성하는 MiniMind 트랜스포머입니다.
- Talker: Thinker의 은닉 상태를 조건으로 하여 MTP(Multi‑Token Prediction)를 통해 여러 레이어의 Mimi 음성 코드를 예측합니다. 코드는 실시간으로 24 kHz 음성으로 디코딩되어, 바지인(barge-in)과 근접 이중화 상호작용을 가능하게 합니다.
- 모달리티 프로젝터 – 고정된 외부 인코더(SenseVoice‑Small: 음성용, SigLIP‑2: 시각용)가 2층 MLP 프로젝터를 통해 특징을 MiniMind의 은닉 공간에 매핑합니다.
- 보이스 클로닝 및 프롬프트 – 스피커 임베딩(CAM++)과 참조 음성 코드를 사용한 컨텍스트 내 보이스 클로닝. 실험용으로 5개의 내장 보이스 프롬프트와 7개의 미사용 프롬프트가 제공됩니다.
- 훈련 데이터 – 두 가지 패키지:
- mini: 영어 전용 소규모 서브셋으로 전체 파이프라인을 약 2시간 내에 실행 가능합니다.
- full: 공개된 가중치에 사용된 완전한 다국어(중국어 + 영어) 데이터셋입니다.
- 풀스택 코드 – 데이터 로딩(
train_sft_omni.py)에서 평가(eval_omni.py)까지, 데모 UI(Gradio 웹 UI 및 실시간 전화 모드 UI)까지 포함합니다. - 제3자 추상화 없음 – 모든 핵심 레이어는 PyTorch 텐서로 직접 작성되었으며, 편의를 위해 HuggingFace 토크나이저도 사용 가능합니다.
일반적인 사용 사례
| 시나리오 | MiniMind‑O의 도움 |
|---|---|
| 연구 및 교육 – 옴니 모델이 어떻게 처음부터 구축되고 훈련되는지 배우기. | 0.1 B의 최소 모델, 완전한 훈련 스크립트, 단일 GPU에서 실행 가능한 작은 데이터셋을 제공합니다. |
| 다중 모달 어시스턴트 프로토타이핑 – 텍스트로 대화하거나, 모델에게 말하거나, 이미지를 보여주고 음성으로 응답을 받기. | 제공된 CLI(eval_omni.py) 또는 Gradio/WebUI를 사용하여 실시간으로 상호작용 가능하며, 바지인 지원이 있습니다. |
| 보이스 스타일 실험 – 컨텍스트 내 보이스 클로닝을 테스트하거나, 다양한 스피커 임베딩을 비교하기. | 내장된 보이스 프롬프트 + 임의의 참조 음성 코드 제공 기능. |
| 초소형 옴니 모델 벤치마킹 – 더 큰 오픈 모델과 비교하여 파라미터 효율성, CER/WER, 보이스 클로닝 유사도를 평가하기. | 기술 보고서에 공개된 평가 곡선, CER/WER 수치, 스피커 유사성 표가 포함되어 있습니다. |
빠른 시작 (README에서)
- 클론 및 설치
git clone --depth 1 https://github.com/jingyaogong/minimind-o cd minimind-o pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple - 필요한 모델 및 데이터 다운로드 (ModelScope 또는 HuggingFace LFS)
modelscope download --model gongjy/SenseVoiceSmall --local_dir ./model/SenseVoiceSmall modelscope download --model gongjy/siglip2-base-p32-256-ve --local_dir ./model/siglip2-base-p32-256-ve modelscope download --model gongjy/mimi --local_dir ./model/mimi modelscope download --model gongjy/campplus --local_dir ./model/campplus modelscope download --model gongjy/minimind-3o-pytorch llm_768.pth --local_dir ./out # 기본 LLM 가중치 - 추론 실행 (CLI 예제)
또는 Gradio 데모 시작:python eval_omni.py --load_from model --weight sft_omnicp -r minimind-3o ./scripts/minimind-3o # 트랜스포머 형식 가중치 복사 cd scripts && python web_demo_omni.py - mini 데이터셋에서 훈련 (단일 GPU 예제)
(이후 음성 프로젝터 및 전체 파이프라인 단계도 동일한 패턴을 따릅니다.)cd trainer CUDA_VISIBLE_DEVICES=0 torchrun --master_port 29560 --nproc_per_node 1 \ train_sft_omni.py --learning_rate 5e-4 \ --data_path ../dataset/sft_t2a_mini.parquet --epochs 1 \ --batch_size 40 --use_compile 1 --from_weight llm --save_weight sft_zero \ --max_seq_len 512 --use_wandb 0 --use_moe 0
더 많은 정보 찾기
- 기술 보고서 – arXiv: 2605.03937 (README 상단에 링크됨).
- 모델 가중치 및 컬렉션 – ModelScope 및 HuggingFace의 MiniMind‑O 컬렉션에서 확인 가능.
- 데모 영상 및 실시간 Gradio 데모 – README에 링크 제공.
- 관련 프로젝트 – 기반 트랜스포머 백본인 MiniMind (LLM) 및 MiniMind‑V (시각언어) 참조.
TL;DR
MiniMind‑O는 보통의 GPU를 가진 누구나, 텍스트 + 음성 + 이미지의 완전한 엔드투엔드 다중 모달 모델을 처음부터 훈련하거나 즉시 사용할 수 있도록 합니다. 초소형 0.1 B 크기, 오픈소스 코드, 그리고 함께 제공되는 데이터 덕분에, 옴니모달 AI의 학습이나 프로토타이핑에 실용적인 입문점이 됩니다.
관련
- 프로젝트
- 프로젝트
- Dispatch
- 프로젝트
- 프로젝트