반응형
[사용자가 원하는 정보]
1. 사용자의 질문과 관련있는 데이터
a. 관련이 있다는 것을 어떻게 판단할까?
b. 관련성 파악을 위해 vector를 활용함
ㄱ. 단어 또는 문장의 유사도를 파악해서 관련성을 측정함
2. Vector를 생성하는 방법
a. Embedding 모델을 활용해서 vector를 생성함
b. 문장에서 비슷한 단어가 자주 붙어있는 것을 학습
ㄱ. 왕은 왕자의 아버지다.
ㄴ. 여왕은 왕자의 어머니다.
c. "왕자의"라는 단어 앞에 등장하는 "왕"과 "여왕"은 유사할 가능성이 높다
3. Embedding 모델을 활용해 생성된 vector를 저장
a. 단순히 vector만 저장하면 안되고 metadata도 같이 저장
ㄱ. 이 항목이 상당히 중요
ㄴ. 문서의 이름, 페이지 번호 등등을 같이 저장 -> LLM이 생성하는 답변의 퀄리티가 상승함
4. Vector를 대상으로 유사도 검색 실시
a. 사용자의 질문과 가장 비슷한 문서를 가져오는 것 -> Retrieval
ㄱ. 소득세법을 RAG의 knowledge base로 활용할 예정
ㄴ. 문서 전체를 활용하면 속도도 느리고, 토큰수 추과로 답변 생성이 안될 수도 있음
ㄷ. 문서를 chunking, 나눠서 저장해야함
b. 가져온 문서를 prompt를 통해 LLM에 제공 -> Augmented
c. LLM은 prompt를 활용해서 답변 생성 -> Generation
5. 추가 TIP!
upstage를 사용하면 무료 API제공해주면서 임베딩 테스트 가능해짐!
구글에 upstage 검색 후 api키 받기
한국어 사용 시 upstage embedding을 활용할 것
openai embedding 모델 사용도 괜찮
아래 참고해서 upstage 사용해보기 !
반응형
'Python' 카테고리의 다른 글
[pyenv-win][streamlit]가상환경에서 streamlit 실행하기 (2) | 2024.10.12 |
---|---|
[pyenv-win] pyenv를 사용하여 파이썬 가상환경 만들기 - 윈도우용 window (0) | 2024.09.27 |
[Python] OpenAI 설정하는 방법 (1) | 2024.09.27 |
[Python] RAG (Retrieval Augmented Genderation) 알아보기 (0) | 2024.09.27 |
[upstage]upstage를 이용한 무료 openai 활용법 (0) | 2024.09.26 |