*이번 뉴스레터는 요즘 핫한 토픽인 AI Agent와 RAG를 결합한 Agentic RAG에 대해 다룹니다.
..그래도 11월 2-3주차 주요 뉴스 물어왔습니다ㅋㅎ 자세히 다루지는 않을게요!
- ChatGPT 데스크톱 어플 출시: https://openai.com/chatgpt/desktop/
- 미국 법무부, 독점 규제를 위해 구글 크롬 강제 매각 요청하기로 함: https://www.businesspost.co.kr/BP?command=article_view&num=373371
- (그 와중에) Gemini-Exp-1121, Chatbot Arena 1위 등극: https://ai.google.dev/gemini-api/docs/models/experimental-models
- NVIDIA 3분기 실적발표: https://nvidianews.nvidia.com/news/nvidia-announces-financial-results-for-third-quarter-fiscal-2025
Agentic RAG
Agentic RAG를 설명하려면 Agent와 RAG가 뭔지 알아야겠죠. RAG가 좀 더 이전에 등장했으니 얘부터 설명을 해보자면,
RAG는 Retrieval-augmented-Generation의 준말로, 어떤 질의(query)가 들어왔을 때 이에 대한 응답을 생성하기 전에, 질의와 연관된 문서를 데이터베이스에서 먼저 회수하고(retrieval), 이를 참고하여 응답을 생성하는 플로우를 말합니다. 이때 '연관성'이라는 것은 질의 벡터와 문서 벡터 사이의 코사인 유사도 —둘의 내적을 바탕으로 계산됨— 를 근거로 판단합니다. 질의와 가장 연관성 높은 $k$개의 문서를 회수한 후 이걸 그대로 LLM에게 프롬프팅해주면, 응답을 훨씬 더 잘 생성하더라~ 뭐 그런 내용이에요.
Agent는 원래 강화학습에서 많이 사용하던 용어인데요, agent를 정의하기 위해서는 이것이 상호작용하는 환경(environment)과 거기서 취하는 행동(action)을 함께 언급해야 해요. 즉, agent란, 자신이 있는 환경에서 수집한 정보를 바탕으로 일정한 행동을 취하는 존재예요. 위 이미지의 출처인 블로그 포스트에서는 다음과 같이 AI agent의 구성 요소를 나열하고 있어요[1].
- LLM (with a role and a task)
- Memory (short-term and long-term)
- Planning (e.g., reflection, self-critics, query routing, etc.)
- Tools (e.g., calculator, web search, etc.)
메모리에 대한 부분은 'core component'라고 불리기엔 개인적으로는 좀 애매하다 생각하지만 fine-tuning되어 파라미터 내에 필요한 정보를 저장한 것을 두고 long-term 메모리를 갖췄다고 보면 또 틀린 말은 아니니.. 넘어갈게요.
아무튼 이 두 요소를 결합한 것이 agentic RAG인데, RAG에서는 언어모델이 retriever와 generator 각각에 사용되죠. Generator는 생성형 LLM이라면 디폴트 역할이니, 주로 retrieval 쪽에서 LLM Agent를 사용하는 시스템이라고 생각해도 무방할 것 같습니다. 사실 '좋은' retriever에 요구되는 여러 기능과 자질이 있죠. 웹사이트 검색 기능이 있으면 좋을 것이고, 벡터상으로는 코사인 유사도가 높은 문서라도 유해한 정보를 담고 있다면 회수하지 않는 등의 의사결정도 할 줄 알아야 하고, retrieve가 필요한 질문인지도 판단할 수 있어야 하고요. 이런 추론 능력을 갖춘 agentic RAG라면 좀 더 정확하고 좋은 답변을 생성하는 시스템이 되겠죠?
Agentic RAG는 agent를 몇 개 사용하느냐에 따라 single- 또는 multi-agent RAG로 분류한대요. Single의 경우는 router라고도 부르는데, 하나의 retrieval agent가, 해당 질의에 retrieve가 정말 필요한지, 필요하다면 어떤 툴을 사용할 것인지 모두 결정하는 거예요. 반면 multi의 경우에는 오른쪽 그림처럼 agent끼리 역할 분담을 하는 거죠. 그림에는 orchestrating agent를 나타냈는데, 꼭 필수적인 것은 아니에요[1].
의외로 그렇게 특별한 게 있진 않은..ㅋㅋㅋ
이런 agentic RAG를 활용한 최근 논문을 간단하게 두 편만 소개하려고 합니다.
Golden-Retriever (An et al., 2024)
AI 연구자들 특: 이름 짓기에 매우 성의가 없거나 지나치게 공들임
retrieval를 할 때 이미 저장된 문서 자체는 어떻게 바꿀 수가 없으니, 질의를 증강(augment)시키는 절차를 거쳐 RAG를 수행하는 agentic RAG를 제안했어요. 질의에 약어 등의 전문용어(jargon)가 많이 포함되어 있으면 벡터 검색 과정에서 연관성 높은 문서가 안 나올 가능성이 있어요. 이게 무슨 말인지 잘 모르겠다면, 제가 엄청 좋아하는 게임인 Semantle 또는 한국어 버전인 꼬맨틀을 해보시길 바라요! (갑분 게임 추천) 벡터 검색이 작동하는 원리인 코사인 유사도를 똑같이 활용하기 때문에, 어떤 상황에서 유사도가 낮게 나오고 어떤 상황에서 높게 나오는지 감을 익히실 수 있어요.
아무튼 전문용어가 등장한다면 query를 증강시켜줄 필요가 있다고 판단한 연구진은, 전문용어를 발견하면 SQL을 생성해 사전에서 용어 검색한 결과를 바탕으로 query를 재작성했다고 해요. Paraphrasing 정도까진 아니고, 용어 설명을 덧붙이거나 풀어쓰는 수준으로요. 이때 SQL 문에서 에러가 나면 query augmentation은커녕 그냥 retrieval도 못하니까, SQL 템플릿을 고정시키고 (SELECT * FROM ~~ WHERE Jargon IN … ) 전문용어만 끼워넣는 식이었다고 하네요. RAG를 위한 RAG를 한 셈이죠😂
Agentic RAG in Time-Series Analysis (Ravuru et al., 2024)
시계열(time series) 데이터란 정말 시간 간격에 따라 기록된 데이터를 말해요. 신호처럼 특정 타임스탬프와 그때의 측정값으로 구성된 일련의 데이터인거죠. Agentic RAG로 시계열 데이터를 분석한 논문이 최근에 나와서 가져와 보았어요.
Orchestrator의 역할을 하는 agent가 여러 sub-agent를 관리, 통제하는 역할을 하는 것 같아요. Sub-agent는 저마다 맡은 역할(role)이 있는데요, 이중 어떤 sub-agent를 쓸 건지 master agent가 결정하는 거예요. 각 sub-agent에 연결된 prompt pool은 key-value 쌍으로 구성된 일종의 지식 베이스라고 해요. 그래서 RAG 시스템인 것이죠! 사실 이 부분은 제가 시계열 데이터를 깊게 공부하지 않아 잘 이해가 안 됐는데, key에는 시계열 데이터에서 나타나는 패턴 —계절에 따른 변화(seasonality), 순환성(cyclicality) 등—을 저장하고, value에는 그에 상응하는 'historical trend'를 저장한다고 되어 있는데, 특정 도메인에서 데이터의 경향성에 관한 정보를 저장하고 있는 것 같아요. 뭐.. 이를테면 병원의 통원 기록이라고 하면 겨울에 감기 환자가 급증한다든지 하는.. 그런 유의 정보이려나요..
이런 agentic RAG는 시계열 데이터를 전처리하거나 이를 통해 예측을 하는 데 활용돼요. 특히 시계열 데이터에는 데이터가 잘못 기록되어 있거나 공백이 생기는 경우가 흔하거든요. 저도 예전에 시계열 데이터를 바탕으로 하는 전기요금 최적화 경진대회에 참가한 적이 있는데, 사용해야 하는 데이터 중 하나였던 부하 데이터는 심지어 중간에 공백도 있고 단위도 Wh에서 kWh로 바뀌었었어요. 그래서 agent들로 anomaly detection, missing data imputation, forecasting, classification 등을 시도하려고 했대요. Classification의 역할을 부여받은 sub-agent의 경우 특정 도메인에 특화되게끔 DPO로 훈련시킨 SLM(small language model, 비교적 작은 파라미터 수로 구성된 모델)을 사용했다고 합니다.
-❊-
사실 아주 본격적으로 연구가 진행되는 분야라기보단, RAG를 활용하던 연구주제에서 agentic한 요소를 추가한 연구들이 많은 것 같아요. 그래도 이런 트렌드가 있다~고 소개를 간단히 해보고 싶었습니다ㅎㅎ
이만 총총! 다다음주에도 뉴스를 들고오겠읍니다~.~
Reference
- Cardenas, E., & Monigatti, L. (2024, November 5). What is Agentic RAG. Weaviate. Retrieved November 22, 2024, from https://weaviate.io/blog/what-is-agentic-rag
- An, Z., Ding, X., Fu, Y.-C., Chu, C.-C., Li, Y., & Du, W. (2024). Golden-Retriever: High-Fidelity Agentic Retrieval Augmented Generation for Industrial Knowledge Base. arXiv [Cs.IR]. Retrieved from http://arxiv.org/abs/2408.00798
- Ravuru, C., Sakhinana, S. S., & Runkana, V. (2024). Agentic Retrieval-Augmented Generation for Time Series Analysis. arXiv [Cs.AI]. Retrieved from http://arxiv.org/abs/2408.14484
'newsie' 카테고리의 다른 글
[Fortnightly Tech Digest] December's First Half (0) | 2024.12.22 |
---|---|
[Fortnightly Tech Digest] Emergency Leave (1) | 2024.12.09 |
[Fortnightly Tech Digest] October-November Crossover (6) | 2024.11.08 |
[Fortnightly Tech Digest] October's Second Half (9) | 2024.10.26 |
[Fortnightly Tech Digest] October's First Half (1) | 2024.10.12 |