3.5 Retrieval 효율 개선을 위한 데이터 전처리 - 동일한 결과가 안나옴
안녕하세요, 강의 수강 중 아무리 실행해도 결과가 영상과 동일하게 나오지 않아서 질문드립니다.
실습에 사용중인 tax.docx 파일에서 제55조의 그림으로 되어 있는 테이블을 마크다운으로 변환한 tax_with_markdown.docx로 실습 진행하고 있습니다 .
강의에서 올려주신 마크다운 변환된 파일과 코드로 실행했는데, retriever.invoke(query) 결과에서 제55조가 나오지 않아서 result 값이 제대로 나오지 않습니다. 파인콘 인덱스를 삭제하고 새로 만들어도 결과는 동일하게 나옵니다. 원인이 무엇인지 알 수 있을까요?
from langchain_community.document_loaders import Docx2txtLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
text_splitter = RecursiveCharacterTextSplitter(
chunk_size = 1500, # 문서를 쪼갤 때, 하나의 chunk가 가질 수 있는 토큰 수
chunk_overlap = 200 # 문서를 쪼갤 떄, 중복을 허용하는 토큰 수
)
loader = Docx2txtLoader("tax_with_markdown.docx")
document_list = loader.load_and_split(text_splitter=text_splitter)
document_list[52] # 마크다운 부분 잘 나오는 거 확인
from dotenv import load_dotenv
from langchain_openai import OpenAIEmbeddings
load_dotenv() # API Key 필요 (환경 변수)
embedding = OpenAIEmbeddings(model='text-embedding-3-large')
import os
import time
from pinecone import Pinecone
from langchain_pinecone import PineconeVectorStore
index_name = 'tax-index-markdown'
pinecone_api_key = os.environ.get("PINECONE_API_KEY")
pc = Pinecone(api_key=pinecone_api_key)
database = PineconeVectorStore.from_documents(document_list, index_name=index_name, embedding=embedding)
query = '연봉 5천만원인 직장인의 소득세는 얼마인가요?'
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model='gpt-4o')
from langchain import hub
prompt = hub.pull("rlm/rag-prompt")
from langchain.chains import RetrievalQA
retriever = database.as_retriever()
qa_chain = RetrievalQA.from_chain_type(
llm,
retriever = retriever,
chain_type_kwargs = {"prompt":prompt}
) # llm 모델과 벡터데이터베이스와 프롬프트 템플릿 준다.
retriever.invoke(query)
답변 2
0
안녕하세요!
k 값을 늘려서 한번 확인해보시고, 그래도 retrieval이 안되면 3.6강에 해답이 있습니다!
0
안녕하세요, 인프런 AI 인턴입니다.
장은조님의 질문은 강의에서 제공된 tax_with_markdown.docx 파일을 사용하여 실습을 진행할 때, retriever.invoke(query)에서 예상한 결과가 나오지 않는 부분입니다. 이런 경우 여러 가지 원인이 있을 수 있습니다. 우선, 유사한 문제를 겪은 다른 학습자의 경우를 참고하여 해결책을 제시해드리겠습니다.
원인 및 해결책:
- 벡터 검색 설정 값 (
k값 조정):
retriever설정에서k값(검색할 문서의 수)을 변경해보는 것이 좋습니다. 일반적으로k값을 늘리면 더 많은 문서를 검색할 수 있으며, 이로 인해 원하는 결과가 포함될 확률이 높아집니다.
관련된 질문과 해결 방법은 다음 링크에서 보실 수 있습니다. 같은 강의에서 비슷한 문제가 다루어졌습니다. 이 스레드에서는 사용된 k 값을 늘려 제55조를 포함시켜 원하는 답변을 얻을 수 있었습니다.
Pinecone 인덱스 재설정:
인덱스를 삭제 후 재생성하셨다고 하셨지만, 인덱스 생성 시 데이터가 정확히 로드되었는지 확인하는 것도 중요합니다. 데이터 로딩 단계에서 에러가 발생하지 않았는지 살펴보시기 바랍니다.문서의 텍스트 내용 확인:
실습에 사용된 문서 파일 내 텍스트 내용이 정확히 처리되고 있는지도 확인해보세요. 특히, 변환된 마크다운 파일이 올바르게 로드되고 있는지 문서 내용을 검토해야 합니다.
코드 검토:
text_splitter설정으로 쪼개지는 문서의 크기가 적절한지 여부도 확인 필요합니다. 특정 구간에서의 텍스트 분할이 적절히 수행되고 있는지 본인 문서에서 직접 확인해보시기 바랍니다.
만약 위의 해결책으로 해결되지 않는다면, 강의의 문제 탐구 방법과 강의 내에서 다루어진 다양한 사례들을 참고하여 추가적인 디버깅을 시도해보시기를 권장드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
소득세법 docx 파일 공유 요청건
0
65
1
EXAONE 모델 불러오기 안되는 문제
0
89
2
[5.1 강의] LLM Evaluator에 Upstage를 사용하는 방법 + 변경된 Langsmith Docs를 참고하여 구현하는 방법 공유
0
104
2
강의 9에 QA관련된 import가 되지 않네요
0
111
2
🚨 python3.14 를 쓰고 계시면 chroma 에서 ConfigError 가 발생합니다.
1
200
1
강의와 책 관련 질문
0
87
1
문서 전처리 고민
0
111
1
RAG 배포 질문드립니다
0
95
1
강의 내용과는 별개로 궁금한 점이 있습니다
0
89
2
폐쇄망 챗봇 모델
0
94
1
AI agent 쿠폰
0
95
2
저는 왜 그대로 했는데 답변이 틀리게 나오는지 모르겠네요
0
102
2
langchain howto/sequence는 지금 doc 공식 사이트 어디서 확인할 수 있나요?
1
95
1
new_question에 대한 답 출력
0
74
2
랭체인 라이브러리
0
148
2
[LangGraph를 활용한 AI Agent 개발] 쿠폰 유효기간
0
106
1
postgresql의 pgvector 벡터는 어떤가요?
0
345
2
doc관련
0
128
2
load_dotenv() 실행 False
0
96
1
RAG 답변 개선을 위한 정답지 활용 구조 검토 요청
0
119
2
3.2 from langchain.chains ~ 에서 모듈을 찾지 못할 때.
1
406
2
강의 완료 오류
0
89
1
hub.pull 이슈
0
131
2
[3.3 강의] Upstage를 사용한 RAG 구현 성공기 공유
1
150
1





