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의 요청 처리 흐름은 다음과 같습니다:
- HTTP Bridge가 클라이언트의 추론 요청을 POST
/infer형태로 수신합니다. - 요청은 RPC Gateway로 전달되어 인증, 유효성 검사, 속도 제한(rate limiting)을 수행합니다.
- Orchestrator는 Registry를 참조하여 적합한 Worker를 선택하고, RPC를 통해 추론 작업을 위임합니다.
- Worker는 로컬 CPU/GPU 환경에서 추론을 수행하고 결과를 스트리밍 형태로 반환합니다.
- 결과는 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로 각 서비스들에 접근할 수 있습니다:
- Gateway: http://localhost:8080
- Grafana: http://localhost:3001
- Jaeger: http://localhost:16686
- Web Chat 예시: http://localhost:5173
이후 서비스를 종료하려면 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 라이선스로 공개되어 있으며, 상업적 사용 및 수정이 모두 가능합니다.
HAIF 프로젝트 GitHub 저장소
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()
