HAIF(Hyperswarm-RPC AI Inference Framework): MSA 구조로 AI 추론 작업을 분산처리하도록 설계된 프레임워크

HAIF 소개

HAIF(Hyperswarm-RPC AI Inference Framework)는 AI 추론(AI Inference) 작업을 마이크로서비스 형태로 분산 처리할 수 있도록 설계된 프로덕션 수준의 프레임워크입니다. 이 프로젝트는 단순한 모델 서버가 아니라, 게이트웨이(Gateway), 오케스트레이터(Orchestrator), 레지스트리(Registry), 워커(Worker), 그리고 관측성(Observability) 구성 요소를 완비한 엔드투엔드(end-to-end) AI 추론 플랫폼을 제공합니다.

HAIF의 핵심 아이디어는 AI 모델 실행을 단일 서버에 한정하지 않고, 여러 개의 서비스로 분리해 효율적인 스케줄링, 부하 분산, 그리고 안정적인 모니터링을 가능하게 하는 것입니다. 이 프레임워크는 Hyperswarm RPC 프로토콜을 기반으로 서비스 간 통신을 수행하며, 모든 구성 요소는 Docker Compose 환경에서 손쉽게 실행할 수 있습니다.

HAIF를 통해 AI 모델을 대규모 서비스로 배포하려는 개발자들이 겪는 모델 간 동적 로드 밸런싱, 추론 성능 모니터링, 장애 복구 자동화 등의 어려움을 체계적으로 해결해준다는 점입니다. 단순한 “모델 서버”를 넘어, 실제 운영 환경에서 재현 가능한 아키텍처를 제공하기 때문에 연구뿐 아니라 상용 서비스에도 활용할 수 있습니다.

또한 HAIF는 Prometheus, Grafana, Loki, Jaeger 등 관측성(Observability) 도구를 완벽하게 통합하여, 서비스 메트릭, 로그, 트레이스 등을 한눈에 확인할 수 있는 환경을 제공합니다. 즉, 모델 추론 시스템의 성능 및 신뢰성을 정량적으로 모니터링할 수 있는 “AI 인프라 운영 플랫폼”이라 할 수 있습니다.


기존의 대표적인 AI 서빙 프레임워크로는 TensorFlow Serving , TorchServe , 그리고 OpenAI Triton Inference Server 등이 있습니다.

이들 대부분은 단일 서비스 기반의 REST/gRPC 서버로 동작하며, 모델 로딩 및 요청 처리에 집중합니다. 반면 HAIF는 이러한 단일 노드 구조를 넘어서, 분산형 마이크로서비스 아키텍처를 기반으로 하고 있습니다.

항목 TensorFlow Serving / TorchServe HAIF
구조 단일 서비스 마이크로서비스 (Gateway, Orchestrator, Worker 등)
통신 방식 REST / gRPC Hyperswarm RPC
확장성 모델별 수동 스케일링 동적 Worker 스케일링 (--scale worker=N)
관측성 제한적 Prometheus, Grafana, Jaeger, Loki 통합
배포 개별 서버 Docker Compose 및 Kubernetes 변환 가능
특징 모델 호스팅 중심 AI 인프라 오케스트레이션 중심

즉, HAIF는 “AI 모델이 분산 환경에서 효율적으로 관리되고 실행되는 인프라”를 목표로 한다는 점에서 기존의 프레임워크들과 다른 지향점을 갖고 있습니다.

HAIF 주요 구성 요소 및 아키텍처

요청 처리 흐름

HAIF의 요청 처리 흐름은 다음과 같습니다:

  1. HTTP Bridge가 클라이언트의 추론 요청을 POST /infer 형태로 수신합니다.
  2. 요청은 RPC Gateway로 전달되어 인증, 유효성 검사, 속도 제한(rate limiting)을 수행합니다.
  3. Orchestrator는 Registry를 참조하여 적합한 Worker를 선택하고, RPC를 통해 추론 작업을 위임합니다.
  4. Worker는 로컬 CPU/GPU 환경에서 추론을 수행하고 결과를 스트리밍 형태로 반환합니다.
  5. 결과는 Orchestrator → Gateway → Bridge 경로를 통해 클라이언트로 전달됩니다.

데이터 저장에는 PostgreSQL이 메타데이터와 상태를 저장하고, Redis가 큐 관리(Queueing)과 경량 조정을 담당합니다.

관측성 및 모니터링

HAIF는 운영 중 시스템의 상태를 시각적으로 파악할 수 있도록 완전한 모니터링 환경을 제공합니다:

  • Prometheus: 모든 Node 서비스에서 메트릭을 수집 (:9464 포트)
  • Grafana: 성능 대시보드 제공 (http://localhost:3001)
  • Loki + Promtail : 로그 집계 및 탐색
  • Jaeger: 트랜잭션 단위의 트레이스 추적

특히 Grafana에는 사전 정의된 “Service Overview” 및 “Worker Inference” 대시보드가 포함되어 있으며, 시스템의 처리량, 지연 시간(P95), 오류율 등을 실시간으로 관찰할 수 있습니다.

설치 및 설정

HAIF는 Docker Compose가 설치된 환경이라면 곧바로 실행이 가능합니다. 저장소를 복제(Clone)한 뒤, 복제된 저장소 디렉토리에서 docker compose up -d 명령어로 곧바로 실행이 가능합니다. 실행 시 필요한 모든 서비스 컨테이너를 빌드 및 실행하고 헬스체크를 수행하며, 다음의 URL로 각 서비스들에 접근할 수 있습니다:

이후 서비스를 종료하려면 docker compose down 명령어를, 데이터를 포함하여 완전 초기화하려면 docker compose down -v 명령어를 실행합니다.

서비스 실행에 필요한 환경 변수는 docker-compose.yml 혹은 .env 파일을 통해 제어할 수 있습니다. 주요 설정은 다음과 같습니다:

  • MODEL_ID: 사용할 모델 ID (기본값: Xenova/TinyLlama-1.1B-Chat-v1.0)
  • POSTGRES_*: 데이터베이스 관련 설정
  • OTEL_*: OpenTelemetry 기반 모니터링 포트 및 엔드포인트
  • GATEWAY_URL: Gateway 접근 URL

예를 들어, 기본 모델이 아닌 다른 모델을 사용하고자 한다면 .env 파일에 다음을 추가하면 됩니다:

MODEL_ID=TheBloke/Llama-2-7B-GGUF

배포 가이드 (Deployment)

프로덕션 환경 배포 시에는 다음 사항이 권장됩니다:

  • 기본 DB 계정(haif, haifpass)을 반드시 교체
  • 내부 서비스 포트를 외부에 노출하지 않도록 제한
  • Gateway를 Nginx나 Traefik 같은 리버스 프록시 뒤에 두고 TLS 적용
  • docker compose up -d --scale worker=N으로 수평 확장 가능
  • Postgres와 Loki의 데이터를 영속 볼륨에 매핑

HAIF는 Kubernetes, Nomad 등 다른 오케스트레이터로 손쉽게 변환할 수 있도록 설계되어 있으며, 모든 서비스에 헬스체크가 내장되어 있어 무중단 배포가 가능합니다.

라이선스

HAIF 프로젝트는 Apache-2.0 라이선스로 공개되어 있으며, 상업적 사용 및 수정이 모두 가능합니다.

:github: HAIF 프로젝트 GitHub 저장소




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: