홈
K1A2 blog
취소

[RAG] Agentic RAG 구현과 평가셋 기반 개선

개요 지난 글에서는 복합 질의를 측정하기 위해 평가셋과 검색 지표를 재구축한 과정을 정리했습니다. 그 평가셋으로 측정한 결과, 질문으로 한 번만 검색하는 단일 검색 RAG는 연쇄 유형의 All Evidence@10이 0.062로 매우 낮았습니다. 사실상 문서 A를 읽어야 문서 B의 이름을 알 수 있는 질문은 거의 답변이 불가능한 수치였습니다. 이 ...

[RAG] RAGAS의 단점을 개선한 복합 질의용 평가셋과 검색 지표 만들기

개요 지난 글에서는 RAGAS로 합성 평가셋을 만들어 RAG를 평가하는 방법을 정리했습니다. 이후 한동안 60문항으로 구성된 이 평가셋으로 RAG의 성능을 측정했는데, 검색 개선 작업의 효과를 비교하는 과정에서 문제가 드러났습니다. 개선을 적용한 뒤에도 점수가 거의 변하지 않았고 점수가 일부 변한 경우에도 그 원인이 개선의 효과인지 판단할 수 없었습...

[OCR] 로컬 OCR로 상용 OCR API 대체하기 (PaddleOCR와 ONNX)

로컬 OCR을 고민한 이유 신분증 OCR은 보통 상용 API에 맡깁니다. 호출 한 번에 결과가 나오고, 인식 품질도 검증되어 있어 직접 만들 이유가 없어 보입니다. 그런데 운영을 하다 보면 두 가지가 계속 걸립니다. 비용: 호출 건당 과금이라 사용자가 늘수록 그대로 비용이 됩니다. 개인정보: 신분증 이미지를 외부로 내보내야 합니다. ...

[RAG] 검색 품질을 끌어올리는 Contextual Retrieval, 그리고 BM25

Contextual Retrieval이란? Contextual Retrieval은 Anthropic이 제안한 RAG 검색 품질 개선 기법입니다. 청킹 과정에서 잘려나간 문맥을 각 청크에 다시 주입하고, 벡터 유사도 검색에 BM25 키워드 검색을 결합하는 두 가지 축으로 구성됩니다. Anthropic에 따르면 Contextual Embedding만 ...

[RAG] RAG의 평가 방법, RAGAS

RAGAS란? RAGAS는 RAG Assessment의 줄임말로, RAG 파이프라인을 자동으로 평가하는 프레임워크입니다. 2023년 논문 RAGAS: Automated Evaluation of Retrieval Augmented Generation에서 제안되었고, 이후 오픈소스로 공개되어 현재 RAG 평가의 사실상 표준으로 자리잡았습니다. 기존 L...

[RAG] RAG가 뭘까?

개요 요즘 많은 서비스에서 자연어 기반 QnA 봇을 사용합니다. 3년 전만 해도 이런 기능은 모델을 직접 학습하기 어려워 도입이 더뎠는데, 요즘은 왜이렇게 많이 보일까요? 그 이유는 RAG의 등장과 발전 때문입니다. 요즘 안쓰이는 분야가 없는 RAG에 대해 자세하게 알아보겠습니다. 기존 LLM의 한계 가장 먼저, RAG라는 개념이 등장하게된...

[REDIS] REDIS Transaction과 WATCH로 동시성 문제 해결하기

개요 OIDC 프로토콜을 도입할 때, Authorization Code를 동시에 조회해서 여러 사람이 가져가는 일을 방지하고 싶었습니다. 그러다 찾은게 WATCH였는데, WATCH 명령어가 뭐고 왜 사용하는지 정리해 보겠습니다. Transaction WATCH를 이해하기 위해서는 우선 트랜잭션에 대해 이해해야 합니다. 트랜잭션은 데이터베이스에...

[OIDC] OIDC(OpenID Connect)와 Oauth2.0

OIDC? OIDC는 OpenID Connect의 줄임말로, Oauth2.0 기반 인증(Authentication) 프로토콜입니다. 기존 OAuth2.0은 서비스를 사용할 수 있는 권한(Authorization)을 제공했다면, OIDC는 OAuth 플로우에 신원확인(Authentication)을 제공합니다. OAuth2.0 OIDC 자체가 OA...

[하이스코어] 서버 부하 테스트와 병목 해결

개요 인프라를 개선하면서 같이 구축한 모니터링 시스템을 이용해서 현재 인프라가 어느정도 버틸 수 있는지 테스트 해봤습니다. 테스트 과정과 병목을 찾아 해결한 과정까지 적어보겠습니다. Locust 부하 테스트를 위해 사용한 툴은 Loucst 입니다. 직역하자면 메뚜기인데, 메뚜기 떼 처럼 달려들어서 서버를 공격해서 이런 이름이 붙여졌나 봅니다....

[하이스코어] API와 DB 서버 분리 및 DB 모니터링 구축

개요 기존에 구축된 인프라는 장기적으로는 좋지 않다고 판단하여 몇가지 작업을 진행했습니다. API서버와 DB의 분리, DB 인스턴스 숨기기, DB 모니터링 구축, DB 자동 백업 구축 순서로 진행했는데, 각 변경점에 대해 기록해보려고 합니다. 기존 인프라 우선 기존 인프라가 어떤지 보고, 어떤 문제가 있는지 분석해 보겠습니다. 한눈에 보기...