개발 인원 : 1명
기여도 : 100%
프로젝트 목적 : 개발자가 편하게 Stackoverflow 질문을 검색하고 답변을 조회할 수 있게 하는 것
개요
StackOverflow에서 프로그래밍 언어와 관련된 질문을 받으면 해당 언어에 대한 Agent가 벡터 저장소(FAISS)에서 StackOverflow에 채택되어있는 유사성 있는 질문을 찾은(Retriever) 다음 해당 질문에 대한 답변에 대한 Reranking을 진행하여 LLM에게 프롬프트를 적절하게 반환하게 되고 해당 프롬프트를 활용하여 LLM은 사용자에게 관련 질문에 대한 답변을 제공한다.
담당 역할
•
pandas을 사용한 데이터 분석 및 전처리
•
LangChain, LangGraph를 사용한 Agentic RAG 파이프라인 설계 및 구축
•
RAGAs를 사용한 RAG 파이프라인 평가 및 개선
•
Streamlit을 사용한 웹 애플리케이션 개발
•
LangSmith를 이용한 프로젝트 추적 모니터링
기술 스택 (I used)
•
언어 : Python
•
프레임워크 : Streamlit LangChain LangGraph RAGAs
•
데이터베이스 : FAISS
•
Devops : Docker, Git/Github LangSmith
흐름도
실험
문제 & 목표
•
한국어 미지원 문제
•
어떤 답변을 봐야 하는가?
•
너무 많은 태그 목록 -> 정보의 불확실성을 초례
가설
•
RAG LLM을 통한 태그 맞춤형 Agent를 제작하여 응답을 반환한다면 번역 문제를 해결할 수 있고 정보의 확실성을 보장할 수 있다.
•
이때 아래의 이유로 인한 Advanced RAG가 필요하다고 판단되어짐.
◦
현업의 사용자가 실제 업무중에 Work Assistant로 활용되어져야 한다.
◦
오류를 최소화하여 정보의 확실성을 높혀야 한다.
•
RAG 평가지표를 바탕으로 프롬프트를 증강시키는 방식을 고려
실험 및 검증
•
context_recall 부분에서 1.0 스코어를 유지
•
검증 평가를 프롬프트에 추가시키면 성능 개선이 보여짐
정량적 성과
•
RAG 평가지표를 바탕으로 프롬프트를 증강시키는 방식(Re-Training (Hidden Multi-Turn))을 사용 시 일부 결과에서 성능 개선이 이루어지는 것을 확인 (실험및 검증 2 참고)
•
각 임베딩 모델과 reranker 모델을 이용한 비교 수치를 통한 모델 결정
정성적 성과
•
임베딩에 따른 Re-ranking 모델 실제 검증
◦
Dongjin-kr/ko-reranker는 관련성이 낮은 응답을 완전히 배제(점수 0%)하는 경향이 있다.
◦
BAAI/bge-reranker-v2-m3는 매우 미세하지만 0이 아닌 값을 할당하며, 덜 적합한 응답에도 약간의 관련성을 부여하는 성향이 있다.