RAG (Retreiver Augmented Generation) 이란 ?
- 검색 - 증강 생성
Retreival
- 데이터를 가져오는 것
- 구체적으로는 "컴퓨터 시스템에 저장된 자료를 취득하는 것" 이라는 뜻
- 언어모델이 가지고 있지 않은 정보를 가져오는 것
- 언어모델이 아웃풋을 만드는데 필요한 정보 제공
- 답변 생성에는 능숙하지만 정보는 가지고 있지 않음
- 보안이 걸려있는 사내자료
Augmented
- ar/vr에서 사용되는 것과 같은 단어
- 사실인 것 처럼
- Retreival 된 데이터를 주면서 “마치 정보를 아는 것 처럼”
Generation
- 생성
- 가져온 데이터를 제공할테니 정보를 아는 것 처럼 답변을 생성해라.
Vector를 생성하는 방법
- Embedding 모델을 활용하여 vector 생성
- 문장에서 비슷한 단어가 자주 붙어있는 것을 학습
- Embedding Projector 단어 유사도 _ https://projector.tensorflow.org/
Vector Database
- Embedding 모델을 활용해 생성된 vector를 저장
- 단순히 vector만 저장하지 않고 metadata같이 저장
- 문서의 이름, 페이지 번호르 같이 저장 → 답변의 퀄리티가 상승
- 단순히 vector만 저장하지 않고 metadata같이 저장
실습 화면
환경변수에 “OPENAI_API_KEY” 이름으로 api key 를 저장하면, 내부적으로 알아서 찾아서 연결이 되고, 다른 이름으로 한다면 두번째 사진 처럼 세팅이 필요하다.
pyenv 설치 이유
여러 프로젝트가 서로 다른 Python 버전을 요구할 때 유용하며, 각 버전에 맞춰 별도의 가상 환경(virtual environment)을 쉽게 만들 수 있음
pyenv-win의 주요 기능
- 여러 Python 버전을 설치 및 관리
- 전역 및 로컬(프로젝트별) Python 버전을 설정
- 각 버전 별로 가상 환경을 만들 수 있도록 지원(다만, 리눅스/맥에서 제공하는 “pyenv virtualenv”와 동일한 명령어가 완전히 지원되지 않을 수 있음)