본문 바로가기

katsubee

(7)
RAG 임베딩 검색 품질 개선기, 리랭킹은 후보 회수 뒤에야 효과가 났다 Katsubee 지식 검색은 nomic-embed-text 벡터 검색과 키워드 검색을 RRF로 합치고, 켜면 채팅 모델이 후보를 다시 줄 세우는 구조다.리랭킹을 처음 켰을 때 정답이 상위 4개에 드는 비율(hit@4)은 10%에서 15%로 겨우 올랐다. 원인은 키워드 검색이 질문 40개 중 0건을 돌려주던 후보 회수 문제였다.키워드를 고친 뒤에는 같은 리랭킹이 hit@1을 17.5%에서 70%로 끌어올렸다. 대신 질문당 6.4초가 더 들어서 기본값은 꺼 두었다.Katsubee의 프로젝트 지식 검색(RAG)은 임베딩 모델 하나에 기대지 않고 벡터, 키워드, 리랭킹을 겹쳐 쓴다. 이 글은 그 구성을 일반적인 임베딩 검색 방법과 견주어 보고, 측정하면서 틀렸던 가정을 시행착오 순서로 남기는 개발일지다. 수치는..
환각 방지 프롬프트, 효과는 입증 못 했다 katsubee의 환각 방지 시스템프롬프트(TB-224)는 정기 수집에서 드러난 저점 답변 6건을 계기로 넣었고, 배포는 했지만 효과는 입증하지 못했다.규칙 4개를 더 얹은 TB-225 버전은 골든셋 6건을 3회씩 돌려 2/6 대 2/6으로 달라진 점이 없어서 반영하지 않았다.배포 게이트가 막은 별도 케이스(TB-270)는 코드와 무관한 모델 비결정성으로 판단해 flaky 표시로 분리했다. 실제 품질 문제는 그대로 남아 있다.이 글은 katsubee의 환각 방지 시스템프롬프트와 배포 게이트 불안정을 다룬 개발 기록이다. 저장소의 티켓 문서와 커밋 기록에서 확인한 내용만 적었다.문제: 근거 없이 단정하는 답변katsubee는 검색 결과와 프로젝트 지식을 바탕으로 답하는 채팅 서비스다. 정기적으로 수집한 질..
katsubee 답변 품질 측정, 골든셋과 한계 katsubee는 답변 품질을 골든셋 회귀 eval, 정기 eval, 일반 질의 수집 세 갈래로 잰다.골든셋은 43케이스이고, 통과는 규칙 검사와 LLM 판정 점수를 모두 넘어야 한다.채팅 모델이 판정도 맡아서 절대 점수보다 기준선 대비 변화를 보고, 프롬프트로 품질을 올리려던 시도는 두 번 모두 효과가 입증되지 않았다.이 글은 katsubee·katsubox 소개 글에서 이어지는 개선 시리즈의 여섯 번째 글이다. 앞선 글들이 검색 품질을 다뤘다면, 이번에는 답변 자체의 품질을 어떻게 재고 있고 그 방법이 어디서 한계에 부딪히는지 정리한다.모델이나 프롬프트를 바꿀 때 무엇이 나빠졌는지 알아야 한다로컬 모델은 바꾸거나 시스템 프롬프트를 고칠 때마다 답이 달라질 수 있다. 눈으로 몇 개 확인하는 것으로는 어..
katsubee RAG 리랭킹, 기본 꺼짐과 운영 켜짐 katsubee의 지식 검색에는 LLM으로 후보를 다시 줄 세우는 리랭킹이 있고, 코드 기본값은 꺼짐이지만 운영 설정은 켜짐이다.검색이 고장 난 상태에서는 hit@4가 10%에서 15%로 올랐을 뿐이고, 복구 뒤에는 47.5%에서 72.5%로 올랐다.정확도는 크게 오르지만 질문당 6.4초가 늘어서, 어드민에서 즉시 켜고 끄는 토글로 두었다.이 글은 katsubee·katsubox 소개 글과 RAG 키워드 검색 복구 글에 이어지는 시리즈의 세 번째 글이다. 앞 글이 후보를 제대로 뽑는 이야기였다면, 이번에는 뽑힌 후보의 순서를 바꾸는 리랭킹을 다룬다.리랭킹이 하는 일katsubee의 검색은 벡터 검색과 키워드 검색을 RRF로 합쳐 후보를 만든다. 리랭킹은 그 후보를 채팅 모델에게 한 번에 보여 주고 질문에..
katsubee RAG 로우데이터 수집, 198건 분석 katsubee는 매일 새벽 지식 청크에서 질문을 만들어 실제 검색 경로를 돌리고, 단계별 정답 순위를 기록한다.10월 12일부터 25일까지 쌓인 198건을 보면 정답은 키워드 후보에 82.3%, 벡터 후보에 29.8% 들어 있었다.정답이 후보 어디에도 없는 경우가 26건이고, RRF 12개 단계에서 잘린 경우가 43건이라 다음 개선 대상이 보인다.이 글은 katsubee·katsubox 소개 글에서 이어지는 개선 시리즈의 다섯 번째 글이다. 앞선 글에서는 한 번 돌린 벤치마크 40문항으로 검색을 고치고 리랭킹을 쟀다. 이번에는 그 측정을 한 번으로 끝내지 않기 위해 만든 로우데이터 수집을 다룬다.벤치마크 40문항 한 번으로는 부족했다키워드 검색이 0건이던 문제를 찾은 것도, 리랭킹 효과를 잰 것도 벤치..
katsubee·katsubox 소개, 직접 구축한 AI 채팅 katsubee는 회사에서 쓸 수 없는 AI 채팅을 로컬 Ollama로 직접 서버에 구축한 것이고, katsubox는 대용량 파일을 떨어뜨리고 정리하는 개인용 파일 드롭이다.katsubee는 문서 검색, 운영 질의, 주간 보고 작성에 쓰이고, katsubox는 Docker 이미지 tar를 Windows FTP로 넘기는 경유지다.이 글은 두 서비스 소개이고, 이후 글은 여기서 드러난 개선점을 하나씩 다룬다.katsubee와 katsubox, 한 줄 소개katsubee와 katsubox는 내가 직접 구축해 같은 Mac mini 위에서 돌리는 두 서비스다. 같은 Cloudflare 터널을 쓰지만 레포와 프로세스는 분리돼 있다.katsubee는 로그인 없이 바로 묻고, 로그인하면 대화와 문서가 계정에 남는 LL..
하이브리드 검색인 줄 알았는데 키워드 쪽이 40문항 모두 0건이었다 katsubee에는 올려 둔 문서 안에서 답을 찾아주는 지식 검색(RAG)이 있다. 벡터 검색과 Postgres 키워드 검색을 RRF로 합치는 구조라 하이브리드 검색이라고 생각하고 있었는데, 벤치마크를 돌려 보니 키워드 쪽이 한 번도 일하지 않고 있었다. 찾아서 고친 과정을 적는다.위 화면은 고친 뒤의 모습이다. 부동산 정책 샘플 문서 5개를 올려 두고 "재개발 조합 설립 동의율은 얼마로 바뀌었어?"라고 물었더니 75%에서 70%로 완화된다는 답과 함께 참고 자료 칩에 파일명이 붙었다. 이 질문이 고치기 전에는 키워드 쪽에서 아무것도 못 찾는 질문이었다.리랭킹부터 붙였다시작은 리랭킹이었다. 검색 결과 상위 후보를 LLM에게 다시 줄 세우게 하는 기능인데, 크로스인코더를 새로 받지 않고 이미 쓰는 채팅 모..