인프런 커뮤니티 질문&답변

teon님의 프로필 이미지

작성한 질문수

모두를 위한 대규모 언어 모델 LLM Part 3 - 구글 제미나이(Google Gemini) API, OpenAI API와 젬마(Gemma)로 AI 어플리케이션 만들기

PDF RAG 제작 프로젝트 진행 중 답변 정확도를 올리기 위해 무엇을 해야 할지 모르겠습니다.

24.05.16 17:33 작성

·

707

·

수정됨

0

안녕하세요! 현재 Gemini, Streamlit, LangChain을 이용하여 오류 Q&A 모음 PDF 문서를 학습시켜 해당 문서로 질의응답을 할 수 있는 RAG Chatbot을 구현하는 중에 있습니다.

PDF 내용이 정제가 되어 있지 않지만 175개의 모든 페이지를 다 읽어온 것은 확인했는데 같은 페이지에 있는 내용이더라도 답변하는 것이 있고 아닌 것이 있습니다. 또한 같은 질문을 해도 어떤 때는 잘 대답하고 어떤때는 문서에 없다고 대답하는 현상을 발견하고 있습니다...

 

이런 현상들의 원인이 뭔지 또한 학습시키는 문서를 정제하면 대답 정확도가 조금 올라가는지..

어떤 형식으로 문서를 정제해야 할지, PDF보단 WORD나 CSV 파일이 더 정확도가 올라갈지 등등

ChatBot의 정확도를 올릴려면 어떤 방식들을 시도해 봐야 하는지 감이 잡히지 않아 질문드립니다.

 

 

답변 2

0

AISchool님의 프로필 이미지
AISchool
지식공유자

2024. 05. 18. 18:22

안녕하세요~. 반갑습니다.

먼저 강의를 수강해주셔서 감사합니다^^.

 

말씀해주신 내용만으로는 정확히 어떤 상황인지 구체적으로 알기 어려운데요.

일반적으로 RAG 시스템 성능을 높이기 위해 시도해볼 수 있는 방법들은 다음과 같습니다.

 

  1. few-shot examples 활용 : RAG 시스템이 적절한 문서를 매칭하고 이를 적절하게 활용할 수 있도록 few-shot examples를 추가해주면 일반적으로 RAG 성능이 향상되게 됩니다.

  2. 각 상황에 맞는 적절한 심화 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 인턴님의 프로필 이미지

2024. 05. 18. 17:36

안녕하세요, 인프런 AI 인턴입니다.
teon님, 질문 주신 RAG Chatbot의 답변 정확도 향상과 관련하여 몇 가지 방안을 제안드리겠습니다.

  1. 문서의 정제: PDF 내용이 정제되지 않았다면, 먼저 불필요한 부분(헤더, 푸터, 목차 등)을 제거하고, 중요한 내용만을 추출하는 과정이 필요합니다. 이는 질의응답 시스템의 정확도를 높이는 데 도움이 됩니다.

  2. 파일 포맷 변환: PDF 파일은 텍스트를 추출하기 어려울 수 있으므로, WORD나 CSV 같은 텍스트 기반의 파일 형식으로 변환하는 것이 좋습니다. 이러한 형식은 데이터를 처리하고 학습시키기에 더 용이합니다.

  3. 데이터 전처리: 데이터를 전처리 하여 텍스트를 깨끗하게 만드는 것이 중요합니다. 이는 문장의 구두점 정리, 대소문자 통일, 오탈자 수정 등을 포함할 수 있습니다.

  4. 학습 데이터 다양화: 같은 문제에 대한 다양한 표현 방식을 학습 데이터에 포함시켜 모델이 다양한 질문 형태에도 유연하게 대응할 수 있도록 하는 것이 중요합니다.

  5. 파인 튜닝: 기존의 사전 훈련된 언어 모델을 사용한다면, 특정 작업에 맞춰 모델을 파인 튜닝하는 것이 도움이 됩니다.

  6. 피드백 루프 생성: 사용자로부터 받은 피드백을 통해 계속해서 모델을 개선하고, 잘못된 답변을 교정하여 모델을 업데이트하는 것도 중요합니다.

정확도 향상에는 이 외에도 다양한 접근 방식이 존재할 수 있으며, 프로젝트의 세부 사항에 맞춰 여러 가지 방안을 시도해 볼 필요가 있습니다.

teon님의 프로필 이미지

작성한 질문수

질문하기