RAG5 Barclays Bank와의 채팅 업무 관련 해외송금에 차질이 생겨 바클레이즈뱅크에 문의할 일이 생겼다. 오전에(영국 현지시각 약 새벽 2시) 바클레이즈 뱅크 웹사이트에서 contact info를 찾아보다가 애플 유저는 메세지로 바로 챗 할 수 있다고 하여 링크를 클릭하니 저절로 메세지가 생성되었다. 이런저런 문의를 하는데 바로바로 답이 왔다. 비즈니스 해외 송금이고, 수취측에서 currency가 변경된 흔치 않은 주제였는데계좌번호 등의 정보도 바로 조회가 되어 막 RAG 실습을 해본 나는 깜짝 놀랐다. RAG로 이렇게까지 구현이 된다고????우리나라 은행 서비스에서는 경험할 수 없었던 서비스에 놀라며 영국의 AI 기술 적용에 놀랐다. 한참 문의를 하다가, 대충 정리가 되어 대화가 마무리될 즈음 오,,,,,이런실례를 범했군.ㅋㅋㅋㅋ .. 2024. 7. 24. [RAG] Information Retrieval 대회: 스코어가 안나온다... 왜...도대체 왜.....! 이렇게 스코어가 낮게 나오는것인가 이번 대회에서는 과학 상식을 질문하는 시나리오를 가정하고 과학 상식 문서 4200여개를 미리 검색엔진에 색인해 둡니다. 대화 메시지 또는 질문이 들어오면 과학 상식에 대한 질문 의도인지 그렇지 않은 지 판단 후에 과학 상식 질문이라면 검색엔진으로부터 적합한 문서들을 추출하고 이를 기반으로 답변을 생성합니다. 만일 과학 상식 이외의 질문이라면 검색엔진을 활용할 필요 없이 적절한 답을 바로 생성합니다. 마지막으로, 본 프로젝트는 모델링에 중점을 둔 대회가 아니라 RAG(Retrieval Augmented Generation) 시스템의 개발에 집중하고 있습니다. 이 대회는 여러 모델과 다양한 기법, 그리고 앙상블을 활용하여 모델의 성능을 향상시.. 2024. 6. 26. [RAG] AutoRAG 설명 RAG 대회에 참여하여 이런저런 실험을 하다가 AutoRAG에 대해 알게 되었다. 유튜브에 자세한 설명이 있어 관련 내용을 정리해본다(출처 아래 표기) AutoRAG를 구현하는 것도 간단해보이진 않지만,처음부터 AutoRAG를 사용하면 멍충이가 될 것 같아 나름의 삽질을 좀 더 해보다가 시도하기로. 베이스: BM25(그냥 쓰면 한국어에서는 잘 작동 X. 한국어형태소와 함께 사용해야) 좋은 한국어 임베딩 모델 사용하는 것이 중요 : 단락에 인덱싱 -> 정답 단락을 가져왔는지를 평가 검색후 선정한 단락 A, B, C가 retrieval gt A(정답 단락)과 일치하는가 생성한 답변 A가 generation gt B(생성해 놓은 정답)와 일치하는가 Q. GT를 어떻게 만드는가? : LLM이 작성한.. 2024. 6. 24. [RAG] Retrieval 평가지표 Recall- 출력갯수를 늘리면 recall 점수는 같이 상승 - 10개 추출할 때 보다 20개 추출할 때 원하는 정보를 포함할 가능성 높음 Precision- 하지만 출력갯수를 늘릴수록 precision은 감소 - 불필요한(상관없는) 정보가 많아질수록 hallucination 가능성도 증가 - 특정 도메인(법률, 금융 등)에서는 Recall 보다는 Precision이 더 중요 (모르면 그냥 모른다고 해야지 잘못된 정보(hallucination)를 제공하면 안된다) NDCG / MAP / MRR: 순서를 고려(정답이 얼마나 높은 순위에서 나왔는가) NDCG(Normalized Discounted Cumulative Gain)- 이분법적인 구분 X- 더 관련있는 문서가 어떤 것인지 - 순위가 매겨진 검.. 2024. 6. 24. [RAG] Hybrid Retrieval(matching + cosine similarity) 예전에 읽었던 랭체인 도서에서 RAG 구현에 대한 설명이 있었는데, 여기서는 sparse retrieval로 1차 필터링 한 후 -> dense retrieval로 최종 결과를 선정하였다. 나도 그 아이디어를 쫓아 Hybrid Retrieval을 구현해보고자 한다. 1. 문서 검색(Sparse Retrieval) : 역색인을 이용한 검색. 단순 matching def sparse_retrieve(query_str, size): query = { "match": {"content": {"query": query_str}}} return es.search(index='test', query=query, size=size, sort='_score') 2. 유사도 검색(Dense Ret.. 2024. 6. 24. 이전 1 다음