4GB 노트북 GPU에서 8B 언어 모델을 미세 조정하는 단일 명령 워크플로
클라우드 서버나 복잡한 원격 접속 설정 없이, 내장 그래픽이 달린 노트북에서도 대규모 언어 모델을 직접 학습시킬 수 있습니다. Soup는 YAML 설정 파일 하나와 명령어 하나로 미세 조정 과정을 끝까지 처리하는 도구입니다. 덕분에 개발자는 인프라 설정에 시간을 쓰지 않고 모델 개선 자체에만 집중할 수 있습니다.
v0.75.0: 설정 오류를 더 이상 무시하지 않습니다
최근 발표된 v0.75.0 버전에서는 설정 파일에 존재하지 않는 키를 발견하면 즉시 실행을 중단합니다. 이전 버전에서는 오타나 지원되지 않는 옵션이 조용히 무시되고 학습이 진행되어, 의도하지 않은 결과물이 나올 위험이 있었습니다. 이제 CLI와 API 모두에서 잘못된 필드 이름을 정확히 알려주며, MLX 백엔드에서도 설정값이 실제로 적용되는지 검증합니다. 또한 검증 손실(validation loss)이 이제 대시보드에 실시간으로 표시되어 학습 상태를 더 명확하게 파악할 수 있습니다.
레이어 스트리밍으로 VRAM 한계를 넘습니다
Soup의 핵심 기능인 레이어 스트리밍은 동결된 베이스 모델을 GPU 메모리에 올리지 않고, 호스트 RAM에서 디코더 레이어 하나씩 순서대로 GPU로 전달하는 방식입니다. 이를 통해 RTX 3050 Laptop 4GB와 같은 제한된 환경에서도 Llama-3.1-8B-Instruct 모델을 NF4 양자화로 학습시킬 수 있습니다. 측정 결과 피크 메모리 사용량은 3.32GB, 처리 속도는 119.6 tok/s로 확인되었습니다. 이 방식은 일반 실행과 비트 단위로 동일한 결과를 보장하며, H100에서도 동일한 메모리 사용량으로 재현되었습니다. 다만 이 기능은 아직 베타 단계이며, stream_layers: true 옵션을 명시적으로 켜야 사용할 수 있습니다.
설치부터 배포까지의 흐름
설치는 pipx install "soup-cli[train]" 한 줄로 끝납니다. 웹 UI(soup ui)를 통해 브라우저에서 실험을 관리하고 실시간 메트릭을 확인할 수도 있습니다. 데이터 형식은 Alpaca, ShareGPT, ChatML 등을 자동 감지하므로, JSONL 파일 경로를 지정하기만 하면 됩니다.
사용 전 확인해야 할 하드웨어와 버전
Soup는 Python 3.10부터 3.12까지를 지원하며, 3.13 이상은 아직 검증되지 않았습니다. GPU는 CUDA를 지원하는 NVIDIA 카드가 권장되며, Apple Silicon(MPS)과 CPU도 지원되지만 CPU는 실험적이며 매우 느립니다. 7B 모델의 QLoRA 학습에는 최소 8GB VRAM이 필요합니다. 라이선스는 Apache-2.0이며 무료입니다. 다만 레이어 스트리밍 기능은 베타 버전이므로, 중요한 프로젝트에서는 기존 방식과 비교 테스트를 거치는 것이 좋습니다.