본문 바로가기

카테고리 없음

RAG를 활용한 LLM Application 개발 _ 1편

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같이 저장
      • 문서의 이름, 페이지 번호르 같이 저장 → 답변의 퀄리티가 상승

 

 

 

실습 화면

환경변수에 “OPENAI_API_KEY” 이름으로 api key 를 저장하면, 내부적으로 알아서 찾아서 연결이 되고, 다른 이름으로 한다면 두번째 사진 처럼 세팅이 필요하다.

 

 

 

 

 


 

pyenv 설치 이유

여러 프로젝트가 서로 다른 Python 버전을 요구할 때 유용하며, 각 버전에 맞춰 별도의 가상 환경(virtual environment)을 쉽게 만들 수 있음

pyenv-win의 주요 기능

  • 여러 Python 버전을 설치 및 관리
  • 전역 및 로컬(프로젝트별) Python 버전을 설정
  • 각 버전 별로 가상 환경을 만들 수 있도록 지원(다만, 리눅스/맥에서 제공하는 “pyenv virtualenv”와 동일한 명령어가 완전히 지원되지 않을 수 있음)