개요
서비스를 고도화 하고 이슈들을 해결하기 위해,
그 해결의 key가 될 듯 하여 Multi Agents 기술을 접했다.
업계에서 이제는 대중적인 기술 스택이 된 Multi Agents 기술에 대해 학습하고 Agents들의 역할을 정리해 본다. (사실 역할 정리가 더 크다.)
본문
Multi Agents 란?
- 각자의 역할을 하는 Agent들을 도입하여 서로 보완, 감시, 수정 등으로 좀더 좋은 LLM의 추론 결과를 뽑기 위한 기술이다. (라고 생각한다.)
Multi Agent가 대두하게 된 이유
- 기존 RAG (RAG+LLM서비스. 이하 RAG로 명명) 만으로는 사용자의 수많은 패턴의 질문에 대응하기 어렵다.
- RAG는 1인 1답 같은 것으로, 지식 검색의 성격이 강하다.
- 사용자들이 원하는
대화를 이어간다 라는 느낌은 지원하기 어렵다.
- RAG가 답변하기 힘든 일반적인 문제 상황들
- 일반적으로 RAG의 답변이 품질이 좋지 않을 경우 이탈
- 원인은 여러 가지가 있으나 보통 유사도 검색 프로세스(Retriever, Rerank) 를 통한 결과물 Contexts 들이 유사도 점수가 낮을 경우
- LLM에 전달할 프롬프트에 그런 문서들이 포함 되므로 결과적으로 답변도 품질이 좋지 않다.
- But, 이런 경우에는 Vector DB의 적재 데이터를 충원하거나 Chunk를 변경하는 등 Vector DB를 변경하여 해결이 가능한 부분이 있다.
- 사용자는 자신의 질문에 이어 말하기를 시도하며, 모델의 기억력(Memory) 이 약할 경우 (모델이 slm이거나 저용량 모델) 반드시 이탈한다. ⇒ 멀티턴 기능
- 또한 사용자는 위와 같은 시점에서, 자신이 이탈했다가 돌아와도 그 이전 대화를 기억하길 원하며 그에 맞는 답변을 원한다. ⇒ 개인화 기능
- 사용자는 일반적으로 사전적 의미(
Lexical)를 묻기보다는 관련된 현상에 대한(Contextual) 답변을 원하고, 이를 AI가 스스로 판단할 수 있기를 원한다 ⇒ 질문에 대한 전처리
Multi Agent Roles 예시 (대표적인 Roles)
business_analyst : 사용자의 의도 파악
supervisor : 일 분배, 요청 분류
web_search_agent : 웹 검색 에이전트
contents_strategist : 컨텐츠 결정
vector_search_agent : 벡터 검색 에이전트 (RAG Retriever)