[선행AI기술팀 신숙영]
Redis를 사용하면서 관심을 가지게 된 RedisAI에 관하여 소개하도록 하겠습니다.
RedisAI란?
RedisAI는 Redis Labs에서 개발한 오픈 소스 솔루션으로, Redis 데이터 구조 서버를 기반으로 딥러닝 모델을 관리하고 실행하는 데 사용됩니다. Redis 서버를 설치한 후 RedisAI 모듈을 추가로 설치하여 이를 활용할 수 있습니다.
RedisAI의 주요 기능으로는 실시간 추론, 모델 배포 및 관리, 그리고 데이터 관리 등이 있습니다. RedisAI는 Redis의 메모리 내 데이터베이스 기능과 Tensorwerk의 딥러닝 프레임워크를 결합하여 빠르고 효율적인 모델 추론을 제공합니다. 모델 학습 및 추론에 필요한 데이터를 저장하고 관리할 수 있으며 NNX, TensorFlow, PyTorch, Keras 등 다양한 프레임워크에서 학습된 모델을 로드, 저장 및 관리할 수 있습니다. 이러한 기능들은 클러스터링을 통해 수평 확장이 가능합니다. 이러한 방법을 통해 RedisAI 클러스터를 사용하여 데이터 크기 제한을 극복하고 확장 가능한 데이터 관리를 실현할 수 있습니다.
RedisAI 아키텍처
Redis에 저장된 데이터 추론 flow
Advantages
높은 성능: Redis의 메모리 내 데이터베이스 기능을 활용하여 빠른 추론 속도를 제공합니다.
낮은 지연 시간: 로우 레이턴시로 실시간 AI 애플리케이션에 적합합니다.
간편한 사용: Redis CLI 또는 API를 통해 손쉽게 사용 가능합니다.
다양한 프레임워크 지원: ONNX, TensorFlow, PyTorch, Keras 등 다양한 프레임워크를 지원합니다.
확장성: 클러스터링을 통해 수평 확장이 가능하므로 대규모 애플리케이션에 적합합니다.
높은 가용성: Redis의 고가용성 기능을 통해 안정적인 서비스를 제공합니다.
Disadvantages
모델 복잡도 제한: 아직까지는 일부 복잡한 모델을 지원하지 않아 제한이 있을 수 있습니다.
커뮤니티 규모: 다른 AI 서빙 솔루션에 비해 커뮤니티 규모가 작습니다. 서로 정보를 교환하고 문제를 해결하는 데 있어서 어려움이 있을 것 같습니다.
모니터링 및 디버깅: 자체적인 모니터링 및 디버깅 도구가 부족합니다. 따라서 개발자가 모델의 동작을 추적하는 등 추가적인 노력이 필요합니다.
Conclusion
RedisAI는 실시간 AI 애플리케이션 개발에 적합하며, 특히 높은 성능과 낮은 지연 시간이 중요한 애플리케이션에 유용합니다. RedisAI는 Redis 모듈로 구축이 가능하여 Redis를 이미 사용하고 있거나 Redis에 익숙하신 분들은 쉽게 배포가 가능하기 때문에 수평 확장이 필요할 경우 RedisAI를 고려해보면 좋을 것 같습니다.
reference
https://redis.com/blog/redisai-ai-serving-engine-for-real-time-applications/