728x90

rag 3

[에이전트] 학계 1순위 중요도 점수를 버린 이유, LLM 1~10점은 변별력이 없다

부제: 학술적으로 가장 강력히 추천되던 "중요도 점수"를 왜 기억 시스템에서 뺐나에이전트가 장기기억을 쌓을 때, 어떤 기억을 더 중요하게 다룰지 정해야 한다.무엇을 항상 꺼내 보고, 무엇을 먼저 잊을지의 기준이다.1순위 추천을 받았지만기억 시스템을 설계하며 학술 조사를 크게 한 번 했다.신경과학·인지심리학·AI 에이전트 시스템·철학을 훑어 "기억의 유의미함"을 여러 축으로 정리했다.그중 학술 근거가 가장 강하고 구현 비용도 낮은 1순위가 "importance score"였다.Stanford Generative Agents가 직접 인용되는 정석 방법이다.LLM이 각 기억에 1~10점을 매기고, 그 점수로 주입·검색 우선순위를 정한다.정석이니 넣으면 될 것 같았다.그런데 변별력이 없다문제는 실제로 LLM에게..

AI 2026.07.15

[RAG] 하이브리드 검색 BM25 벡터 RRF 순위 결합

부제: 키워드 검색과 벡터 검색을 점수 대신 순위로 합친 이유한국어 문서 검색에 두 방식을 같이 썼다.하나는 키워드 검색이다. 형태소로 자른 단어가 문서에 있는지를 본다.다른 하나는 의미 검색이다. 문장을 벡터로 바꿔 뜻이 비슷한 문서를 찾는다.각각 장단이 있어 둘 다 쓰기로 했다. 각 방식에서 상위 50개씩 뽑는다.그다음이 문제였다.두 결과를 어떻게 합치나처음 떠오른 건 점수를 더하는 거였다.키워드 점수와 벡터 점수를 합쳐서 다시 정렬하면 되지 않을까.안 됐다.두 점수는 스케일이 다르다.벡터 유사도는 0에서 1 사이로 얌전한데, 키워드 점수(BM25)는 위로 열려 있고문서·쿼리마다 분포가 제각각이다.그냥 더하면 한쪽이 다른 쪽을 압도해 버린다. 합치는 의미가 없어진다.가중치 튜닝은 답이 아니었다그럼 가..

AI 2026.07.12

[RAG] PostgreSQL 한국어 전문검색 MeCab 형태소 분석

부제: "약"을 검색하면 "약을"이 안 걸리던 문제한국어 문서 검색을 붙이는데, 기본 전문검색이 영 엉뚱하게 걸렸다.결국 언어 특성에 맞는 토크나이저를 고르는 게 일의 절반이었다.문제PostgreSQL 기본 전문검색(tsvector, simple 토크나이저)은 공백으로 단어를 나눈다.영어는 단어 사이가 공백이라 이게 통하는데, 한국어는 다르다."오늘 약을 먹었어요"공백 토큰화 → ["오늘", "약을", "먹었어요"]사용자가 "약"을 검색하면 약을이라는 덩어리와는 안 맞는다.한국어는 어근에 조사·어미가 달라붙는 구조라 공백으로 자르면 "약 + 을"이 통째로 하나가 돼버린다.영어식 어근 추출(stemming)도 답이 아니다. 그건 접사가 떨어지는 영어 형태에나 맞는 방식이라 결합형인 한국어엔 형태소 분석이 ..

AI 2026.07.08
728x90