Modular RAG Architectures with Java and Spring AI by Thomas Vitale @ Spring I/O 2025
- 스프링 I/O 2025에서 Thomas Vitale은 Java와 Spring AI를 사용한 모듈형 RAG 아키텍처에 대해 발표함. 🗣️
- 대규모 언어 모델(LLM)은 학습 데이터에 의존하며 문맥 이해가 부족하다는 문제점을 지적함. 🧠
- RAG(Retrieval Augmented Generation)는 LLM에 외부 데이터 및 API를 통합하여 이러한 문제를 해결하는 방법임. 🧩
- 데모 애플리케이션은 Spring Boot, Spring AI, Vadim, Aronia 라이브러리를 사용하여 구축되었으며, PostgreSQL 데이터베이스, Grafana 관측 플랫폼, Lama 추론 서비스를 통합함. 🛠️
- Aronia 라이브러리는 관측 가능성을 애플리케이션에 쉽게 통합할 수 있도록 지원하며, 개발 서비스는 Testcontainers를 기반으로 외부 서비스를 관리함. ⚙️
- 챗봇은 AI 라벨을 얻기 위한 수단으로 잘못 구현될 수 있다는 경고와 함께, RAG를 통해 LLM에 문맥을 제공하는 방법이 제시됨. ⚠️
- 프롬프트 스터핑은 사용자가 직접 문맥을 제공하는 방식이지만, RAG는 애플리케이션 내에서 자동으로 문맥을 보강함. ✍️
- 검색 엔진 문서 검색기는 Spring AI의 문서 검색기 인터페이스를 구현하여 웹 검색 엔진에서 정보를 가져옴. 🌐
- Grafana를 통해 RAG 프로세스의 내부 동작을 관찰하고, 검색 엔진에서 검색된 정보가 프롬프트에 통합되는 것을 확인할 수 있음. 🔍
- 기본적인 RAG 패턴은 검색 단계와 질의 보강 단계를 거쳐 LLM을 사용하여 답변을 생성하는 순차적인 방식임. ➡️
- 기업 내 데이터를 활용하기 위해 문서 리더, 데이터 변환, 문서 작성 단계를 거쳐 데이터를 벡터 스토어에 저장하는 방법을 설명함. 🗄️