zml/zml

Any model. Any hardware. Zero compromise. Built with @ziglang / @openxla / MLIR / @bazelbuild

ZML – 프로덕션 수준의 추론 스택

무엇인가요 – ZML은 NVIDIA CUDA, AMD ROCm, Intel OneAPI, Google TPU, AWS Trainium/Inferentia 등 다양한 유형의 가속기에서 고성능으로 AI 모델(LLM, 비전 모델 등)을 실행하기 위한 오픈소스 프레임워크입니다. Zig로 한 번 모델을 작성하면 각 하드웨어 타겟의 네이티브 명령어 세트로 컴파일된 동일한 코드를 생성할 수 있으며, 수동으로 작성한 디바이스 전용 코드가 필요하지 않습니다.

주요 구성 요소

  • Zig 기반 라이브러리 – 시스템 언어인 Zig로 작성된 핵심 API(zml.Tensor, zml.Platform, zml.Mesh 등)는 저수준 제어와 안정성을 제공합니다.
  • MLIR 및 Bazel – 빌드 파이프라인은 중간 표현으로 MLIR를 사용하고, Bazel(Bazelisk를 통해)을 이용해 각 백엔드용으로 컴파일 및 링크합니다.
  • 통합 VFS – 로컬 경로, Hugging-Face(hf://), HTTP(S), S3 URL에서 가상 파일 시스템 계층을 통해 모델을 로드할 수 있습니다.
  • 플랫폼 플래그 – 빌드 또는 실행 시점에 --@zml//platforms:cuda=true와 같은 플래그로 타겟을 활성화할 수 있습니다.

체험 방법

  1. Bazelisk 설치(유일한 전제 조건). macOS: brew install bazelisk; Linux: 바이너리 다운로드.
  2. 작고 간단한 MNIST 데모 실행(사전 학습된 모델을 다운로드하고 컴파일한 후 임의의 숫자를 분류):
    bazel run //examples/mnist
    
  3. LLM 예제 실행(Llama-3.2, Qwen-3.5, LFM-2.5). 필요 시 Hugging Face 인증:
    bazel run //tools/hf -- auth login
    bazel run //examples/llm -- --model=hf://meta-llama/Llama-3.2-1B-Instruct --prompt="What is the capital of France?"
    
    특정 가속기에서 실행하려면 --@zml//platforms:cuda=true(또는 rocm, oneapi, tpu, neuron)를 추가합니다.

코드 예시 – Zig로 작성된 최소한의 MNIST 모델은 API 스타일을 보여줍니다:

const Mnist = struct {
    fc1: Layer,
    fc2: Layer,
    // … layer definition omitted …
    pub fn forward(self: Mnist, input: zml.Tensor) zml.Tensor {
        var x = input.flatten().convert(.f32);
        for (self.layers) |layer| { x = layer.forward(x); }
        return x.argMax(0).indices.convert(.u8);
    }
};

모델은 zml.io.load로 로드되며, 선택된 플랫폼용으로 컴파일되어 하드웨어에 관계없이 동일한 호출 지점에서 실행됩니다.

다음 단계

  • 다른 예제(sharding, io, benchmark) 탐색.
  • docs/tutorials/의 튜토리얼을 따라 자신만의 모델을 작성.
  • 프로덕션에서 모델을 배포하기 위한 배포 가이드(docs/howtos/deploy_on_server.md) 읽기.

커뮤니티 및 라이선스 – ZML은 Apache-2.0 라이선스이며, Discord 커뮤니티가 있으며, 일반적인 GitHub 워크플로우를 통해 기여를 환영합니다.


TL;DR – ZML은 Zig로 AI 모델을 한 번 작성하고, Bazel/MLIR를 백엔드로 사용해 주요 가속기 어디서나 효율적으로 실행할 수 있도록 컴파일할 수 있게 해줍니다. MNIST와 여러 LLM 패밀리용 즉시 실행 가능한 예제, 통합 모델 로딩 VFS, 프로토타입에서 프로덕션 배포까지의 명확한 경로를 제공합니다.

관련

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