GitHub

higgsfield-ai/higgsfield — Fault-tolerant, highly scalable GPU orchestration, and a machine learning framework designed for training models with billions to trillions of parameters

higgsfield-ai/higgsfield — 수십억~수조 파라미터 모델 학습을 위한 내결함성·고확장성 GPU 오케스트레이션 및 머신러닝 프레임워크

Higgsfield는 대규모 언어 모델(LLM) 학습을 위해 GPU 노드 할당, 실험 큐 관리, 분산 샤딩, 학습 모니터링, GitHub Actions 연동을 제공하는 오픈소스 프레임워크입니다. PyTorch FSDP와 DeepSpeed ZeRO-3를 지원하며, 여러 노드에서 대규모 모델을 학습하고 체크포인트를 관리하는 흐름을 단순화합니다.

주제
AI시스템개발 도구

AI 요약

Higgsfield는 수십억에서 수조 개 파라미터를 가진 대규모 모델을 분산 환경에서 학습하기 위한 오픈소스 GPU 오케스트레이션 및 머신러닝 프레임워크입니다. 단순히 GPU 작업을 실행하는 도구가 아니라, 학습에 사용할 노드를 사용자에게 할당하고, 여러 실험의 실행 순서를 관리하며, 대규모 신경망의 학습 과정과 결과를 추적하는 기능을 하나의 흐름으로 묶습니다. 저장소는 특히 Large Language Models(LLMs) 학습을 주요 사용 사례로 제시합니다.

■ GPU 자원 오케스트레이션

Higgsfield는 학습 작업에 필요한 컴퓨팅 노드에 대해 독점적 또는 비독점적 접근 권한을 할당할 수 있습니다. 여러 사용자가 제한된 GPU 자원을 공유하는 상황에서는 실행 중인 실험을 큐에 넣어 자원 경쟁을 관리합니다. 따라서 각 학습 작업을 개별적으로 실행하는 수준을 넘어, 여러 노드와 실험을 대상으로 한 GPU workload manager 역할을 수행합니다. 저장소가 설명하는 핵심 기능에는 자원 할당, 실험 실행, 실행 상태 모니터링, 자원 경합 조정이 함께 포함됩니다.

대규모 모델을 여러 GPU에서 학습하기 위해 PyTorch의 Fully Sharded Data Parallel(FSDP) API와 DeepSpeed의 ZeRO-3 API를 지원합니다. 이 방식에서는 모델 파라미터와 학습에 필요한 상태를 여러 장치에 나누어 배치할 수 있으므로, 단일 GPU에 전체 모델을 올리기 어려운 규모의 모델을 분산 학습하는 데 사용할 수 있습니다. Higgsfield는 자체 방식만 강제하지 않으며, 일반적인 PyTorch 작업 흐름을 따르기 때문에 DeepSpeed, Accelerate 또는 사용자가 직접 구현한 PyTorch 샤딩 코드를 함께 사용할 수 있다고 설명합니다.

■ LLaMa 분산 학습 예시

설치 명령은 `pip install higgsfield==0.0.3`입니다. 저장소의 예제에서는 `higgsfield.llama`에서 `Llama70b`를 가져오고, `higgsfield.loaders`의 `LlamaLoader`와 `higgsfield.experiment`의 `experiment` 데코레이터를 사용합니다. `@experiment("alpaca")`로 학습 실험을 정의한 뒤 `Llama70b(zero_stage=3, fast_attn=False, precision="bf16")`를 생성합니다. 여기서 Zero stage 3을 사용하도록 지정하고, 정밀도는 `bf16`으로 설정합니다.

이후 PyTorch의 `AdamW` 옵티마이저를 학습률 `1e-5`, `weight_decay=0.0`으로 초기화하고, `get_alpaca_data(split="train")`으로 학습 데이터를 읽습니다. `LlamaLoader(dataset, max_words=2048)`로 데이터 로더를 구성한 다음, 각 배치에 대해 그래디언트를 초기화하고 `model(batch)`를 호출해 손실을 계산합니다. 손실을 역전파한 뒤 옵티마이저를 갱신하는 표준 PyTorch 학습 루프를 사용하며, 학습이 끝나면 `model.push_to_hub('alpaca-70b')`를 호출해 결과 모델을 Hub에 올립니다. 즉, 모델 정의와 데이터 로딩, 옵티마이저, 학습 루프는 익숙한 PyTorch 형태로 유지하면서 대규모 모델을 위한 분산 실행 설정을 Higgsfield가 담당하는 구조입니다.

■ GitHub 기반 배포와 실행

노드에는 Ubuntu, SSH 접근 권한, 그리고 비밀번호 없이 sudo를 사용할 수 있는 비루트 사용자가 필요합니다. Higgsfield는 서버에 Docker, 프로젝트의 deploy key, Higgsfield 바이너리 등 필요한 도구를 설치합니다. 그 다음 실험을 위한 deploy 및 run workflow를 생성하고, 해당 코드가 GitHub에 올라가면 연결된 노드에 자동으로 배포합니다.

사용자는 GitHub를 통해 실험의 실행 UI에 접근할 수 있습니다. 이 UI에서 실험을 시작하고 학습을 실행하며 체크포인트를 저장하는 흐름을 제공한다고 설명합니다. GitHub와 GitHub Actions를 머신러닝 개발 과정에 연결함으로써 코드 변경, 배포, 실행을 이어지는 자동화된 절차로 구성할 수 있습니다. 저장소가 제시하는 방식에서는 별도의 복잡한 배포 스크립트를 처음부터 작성하기보다, GitHub 저장소에 코드를 반영하는 것을 중심으로 학습 작업을 운영합니다.

■ 환경과 설정 관리

프로젝트는 서로 다른 PyTorch 버전, NVIDIA 드라이버, 데이터 처리 라이브러리 때문에 발생하는 이른바 환경 문제를 줄이는 것을 목표로 합니다. 실험에 사용한 의존성의 버전과 구성 정보를 기록하고 추적해 재현 가능한 환경을 구성할 수 있다고 설명합니다. 학습 코드뿐 아니라 어떤 버전과 설정으로 실험했는지를 함께 관리하려는 접근입니다.

실험 설정 측면에서는 수백 개의 인자를 가진 설정 파일이나 복잡한 YAML 구성을 작성하지 않아도 되도록 단순한 인터페이스를 제공합니다. 저장소는 600개의 인자를 정의하거나 YAML을 복잡하게 조작할 필요 없이, 실험과 상호작용하는 방식을 설계하는 데 집중할 수 있다고 설명합니다. 다만 사용자는 Higgsfield가 제공하는 기능에 한정되지 않고, 표준 PyTorch 코드와 다른 분산 학습 라이브러리 또는 직접 작성한 샤딩 구현을 함께 사용할 수 있습니다.

■ 지원 환경

Higgsfield가 테스트한 클라우드 환경은 Azure, LambdaLabs, FluidStack입니다. 그 외 클라우드에서 문제가 발생하면 이슈를 열어 달라고 안내합니다. 설치 후에는 제공된 quick start guide를 따라 노드를 설정하고 학습을 시작할 수 있습니다. 저장소의 API는 대규모 언어 모델 학습에서 자주 필요한 작업을 대상으로 하며, 버그 보고, 기능 요청, 설치 및 사용 문제는 GitHub Issues를 통해 다룬다고 안내합니다. GitHub에서는 새로운 기능을 확인할 수 있고, 웹사이트에서는 토론과 소식을 제공하는 지원 경로도 제시합니다.

원문: GitHub / 번역·요약: Trawling