반응형

생성형 26

RAG 구현 Step-by-Step Vector DB 구현 - 2: Faiss with LangChain

RAG 구현 Step-by-Step: Intro 가상환경 설정 및 MVP 구현Dataset과 Vector DB 구현Dataset 확보Vector DB 구현Embedding & Searching 구현Generation 구현이전의 포스트에 이어 이제는 Faiss를 활용해 Vector Store를 구현했다. 그리고 여기서 먼저 말하고 싶은게 있다. 절대로 ChatGPT를 써서는 안된다. ChatGPT의 경우 구현에 대한 클루와 인사이트를 줄 수 있으나 디테일한 부분에 있어서는 공식문서가 더 확실하다. 그리고 ChatGPT가 정확하다면 모델을 파인튜닝하거나 지금과 같이 RAG 방식을 구현한다는게 의미가 없을 것이다.  FAISS의 구체적인 부분에 있어 아래의 포스트를 참고하면 좋다. 1. 도대체 LangChai..

AI/Gen AI 2024.09.17

RAG 구현 Step-by-Step Vector DB 구현 - 1: Implementation Outline

RAG 구현 Step-by-Step: Intro가상환경 설정 및 MVP 구현Dataset과 Vector DB 구현Dataset 확보Vector DB 구현Embedding & Searching 구현Generation  구현 위의 내용을 바탕으로 현재 크롤러가 잘 작동하고 있는 상황이고 크롤러가 현재 열심히 크롤링을 하고 있다. (인간이 미안해) 현재 크롤러가 크롤링한 내용의 경우 간단한 json의 형태로 저장되고 있다. 그리고 json의 저장된 내용을 Vector DB에 담기 위해서는 아래와 같은 순서로 json을 변환해 주어야 한다.Json을 토큰화를 진행한다.전환된 토큰을 바탕으로 Embedding을 활용해 백터화를 진행한다.백터화된 값을 저장한다.이렇게 간단한 로직을 바탕으로 진행하면 되나 고민해 봐..

AI/Gen AI 2024.09.16

RAG 구현 Step-by-Step Dataset 확보: Selenium을 활용한 Crawler

RAG 구현 Step-by-Step: Intro가상환경 설정 및 MVP 구현Dataset과 Vector DB 구현Dataset 확보Vector DB 구현Embedding & Searching 구현Generation  구현데이터셋의 확보를 위해서 Selenium 크롤러를 구현했다. Beautifulsoup 대신 Seleinum을 사용한 이유는 간단히 자동화와 현재 같이 팀프로젝트를 진행하고 있는 팀원들도 쉽게 사용할 수 있도록 만들기 위해서 였다.  그래서 아래의 기능을 하는 크롤러를 만들었다.서울기준 각 행정구와 행정동의 음식점, 카페, 그리고 가볼만한곳을 검색한다.행정구 행정동의 검색된 장소들을 크롤링해온다.마지막으로 크롤링된 내용을 json으로 전환하여 저장한다. 행정구와 행정동의 카테고리별 장소들을..

AI/Gen AI 2024.09.02

RAG 구현 Step-by-Step Dataset 확보

RAG 구현 Step-by-Step: Intro가상환경 설정 및 MVP 구현Dataset과 Vector DB 구현Dataset 확보Vector DB 구현Embedding & Searching 구현Generation  구현기존의 Datset 및 Vector DB 순으로 진행하려고 했으나 문제가 발생했다. 생각보다 데이터를 확보하는 것이 엄청난 작업이라는 사실을 깨달아 버린것이다. 프로젝트를 위한 RAG이다 보니 프로젝트에서 필요한 Dataset을 확보 해야 했다. 그래서 여러 웹애플리케이션을 사용하려고 시도했으나 자원과 학습 목적(만들 수 있음 만들어보자)에 위배 돼 직접 Dataset을 확보하기로 하였고 이 생각을 했던 1주일 전의 나에게 쌍욕을 하고 싶으나 결론적으로 확보에 성공했다. 그래서 Datas..

AI/Gen AI 2024.08.28

Project: HowAbout - RAG

Project: HowAbout - Intro에서 언급된 데이팅 계획 생성에 있어 RAG 방식을 사용하기로 선정했다.  선정 이유는 Why: RAG를 사용 해야 할까?와 도채체 RAG는 뭘까?를 참고하면 된다.  기본적으로 생성 해야하는 로직은 아래와 같다.   사용자 혹은 클라이언트에서 오는 요청은 두 종류다.Dating Request: Dating에 대한 기본정보와 Theme이 들어있다. Dating 계획에 대한 추천 사항을 생성한다.Activity Request: Dating Request에 더해 Activity와 관련된 정보가 추가적으로 들어있다.Dating 계획에서의 특정 Activity에 대한 추천 사항을 생성한다.요청에 대한 Embedding을 진행한다.Embedding 모델의 경우 아래의 ..

AI/Projects 2024.08.16

도대체 RAG는 뭘까?

Retrieval-Augmented Generation의 약자인 RAG는 모델이기보다는 하나의 생성형 AI를 구성하는 방식이라고 생각된다. 크게는 2개의 단계로 이루어져 있으며 해당 단계를 통해 사용자에게 개발자가 의도한대로 답변이 가도록 한다.물론 2개의 단계 안에서 작은 단위의 단계가 존재한다.  그래서 RAG의 흐름을 Retreival과 Generation 두 단계로 나누었을 때 아래와 같다. RetrievalEmbedding사용자가 입력한 Query를 Vector로 전환한다.SearchingVector로 전환된 내용을 바탕을 DB에서 Generation에 사용될 내용을 찾는다.GenerationQuery + Searched ResultsDB에서 반환된 내용을 Query와 함께 참고하여 생성을 한다..

반응형