24.05.16 17:33 작성
·
707
·
수정됨
0
안녕하세요! 현재 Gemini, Streamlit, LangChain을 이용하여 오류 Q&A 모음 PDF 문서를 학습시켜 해당 문서로 질의응답을 할 수 있는 RAG Chatbot을 구현하는 중에 있습니다.
PDF 내용이 정제가 되어 있지 않지만 175개의 모든 페이지를 다 읽어온 것은 확인했는데 같은 페이지에 있는 내용이더라도 답변하는 것이 있고 아닌 것이 있습니다. 또한 같은 질문을 해도 어떤 때는 잘 대답하고 어떤때는 문서에 없다고 대답하는 현상을 발견하고 있습니다...
이런 현상들의 원인이 뭔지 또한 학습시키는 문서를 정제하면 대답 정확도가 조금 올라가는지..
어떤 형식으로 문서를 정제해야 할지, PDF보단 WORD나 CSV 파일이 더 정확도가 올라갈지 등등
ChatBot의 정확도를 올릴려면 어떤 방식들을 시도해 봐야 하는지 감이 잡히지 않아 질문드립니다.
답변 2
0
2024. 05. 18. 18:22
안녕하세요~. 반갑습니다.
먼저 강의를 수강해주셔서 감사합니다^^.
말씀해주신 내용만으로는 정확히 어떤 상황인지 구체적으로 알기 어려운데요.
일반적으로 RAG 시스템 성능을 높이기 위해 시도해볼 수 있는 방법들은 다음과 같습니다.
few-shot examples 활용 : RAG 시스템이 적절한 문서를 매칭하고 이를 적절하게 활용할 수 있도록 few-shot examples를 추가해주면 일반적으로 RAG 성능이 향상되게 됩니다.
각 상황에 맞는 적절한 심화 Retriever 활용 : 문제 상황에 따라 해당 문제를 해결하기에 적절한 심화 Retriever를 활용하면 RAG 성능을 향상 시킬 수 있습니다.
심화 Retriever 목록은 아래 링크를 참조하시고 각 Retriever 사용법은 Part 2 강의를 참조하세요.
https://python.langchain.com/v0.1/docs/modules/data_connection/retrievers/
3. metadata의 적절한 활용 : page_content 부분에는 Embedding을 활용한 Similarity Search만을 활용하기 때문에 완벽하게 정확한 매칭을 원하면 meatadata 쪽에 충분한 정보를 저장하고 이를 활용하는 방식을 사용하면 RAG 성능을 향상 시킬 수 있습니다.
metadata 부분을 활용하는 대표적인 예시로 SelfQueryRetriever 활용이 있습니다. 해당 부분도 Part 2 강의의 SelfQueryRetriever 활용 예시를 참조하세요.
정리하면 RAG 시스템의 성능을 향상시키고 싶으시다면 현재 문제상황을 파악하시고 그 문제를 해결하는데 적절한 도구와 기법을 찾아서 하나씩 적용하시다보면 점진적인 성능 향상을 기대할 수 있을 것입니다.
좋은 하루되세요~.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
teon님, 질문 주신 RAG Chatbot의 답변 정확도 향상과 관련하여 몇 가지 방안을 제안드리겠습니다.
문서의 정제: PDF 내용이 정제되지 않았다면, 먼저 불필요한 부분(헤더, 푸터, 목차 등)을 제거하고, 중요한 내용만을 추출하는 과정이 필요합니다. 이는 질의응답 시스템의 정확도를 높이는 데 도움이 됩니다.
파일 포맷 변환: PDF 파일은 텍스트를 추출하기 어려울 수 있으므로, WORD나 CSV 같은 텍스트 기반의 파일 형식으로 변환하는 것이 좋습니다. 이러한 형식은 데이터를 처리하고 학습시키기에 더 용이합니다.
데이터 전처리: 데이터를 전처리 하여 텍스트를 깨끗하게 만드는 것이 중요합니다. 이는 문장의 구두점 정리, 대소문자 통일, 오탈자 수정 등을 포함할 수 있습니다.
학습 데이터 다양화: 같은 문제에 대한 다양한 표현 방식을 학습 데이터에 포함시켜 모델이 다양한 질문 형태에도 유연하게 대응할 수 있도록 하는 것이 중요합니다.
파인 튜닝: 기존의 사전 훈련된 언어 모델을 사용한다면, 특정 작업에 맞춰 모델을 파인 튜닝하는 것이 도움이 됩니다.
피드백 루프 생성: 사용자로부터 받은 피드백을 통해 계속해서 모델을 개선하고, 잘못된 답변을 교정하여 모델을 업데이트하는 것도 중요합니다.
정확도 향상에는 이 외에도 다양한 접근 방식이 존재할 수 있으며, 프로젝트의 세부 사항에 맞춰 여러 가지 방안을 시도해 볼 필요가 있습니다.