[5] RAG 기술은 차갑다.

민입니다.·2024년 3월 29일
2

창업기록

목록 보기
6/8
post-thumbnail

창업대회에 나가려고 시연을 보여주기 위해 테스트버전으로 서비스을 하는 코드을 구축했다.
내 아이디어는 RAG 기술이 매우 중요하다.

RAG란?

RAG(Retrieval-Augmented Generation)는 대규모 언어 모델의 출력을 최적화하여 응답을 생성하기 전에 학습 데이터 소스 외부의 신뢰할 수 있는 지식 베이스를 참조하도록 하는 프로세스입니다. 대규모 언어 모델(LLM)은 방대한 양의 데이터를 기반으로 학습되며 수십억 개의 매개 변수를 사용하여 질문에 대한 답변, 언어 번역, 문장 완성과 같은 작업에 대한 독창적인 결과를 생성합니다. RAG는 이미 강력한 LLM의 기능을 특정 도메인이나 조직의 내부 지식 기반으로 확장하므로 모델을 다시 교육할 필요가 없습니다. 이는 LLM 결과를 개선하여 다양한 상황에서 관련성, 정확성 및 유용성을 유지하기 위한 비용 효율적인 접근 방식입니다.

RAG 기술을 구현하면서 굉장히 골치아팠다. 50장~300장에에 다르는 PDF파일들을 벡터DB에 저장 후
사용자가 쿼리문을 입력하여 실행하면 맞는 답변이 나와야 정상인데.. 데이터 크기가 많다보니 제대로 답을 찾아 출력을 못했다. 이를 통해 관련 서비스을 만든 해외 커뮤니티나 깃허브에서 큰 데이터을 어떻게 처리하는지 찾아보았고, 엄청 다양한 해결방법과 코드가 있었다. 부모 청크 자식청크,쿼리요청에 다시 쿼리요청,요약데이터등등 커뮤니티에 이 관련된 문제을 해결하기 위해 엄청 많고 좋은 아이디어가 많았다. 테스트하면서 정확성을 측정해 맞는 방식을 사용하고 싶지만.. 시간이 많이 들어 시도하는 걸 미뤘다. 추후 최적화을 할 예정이다

내가 일단 채택한 방식은 벡터DB을 저장하기전 PDF파일을 좀 더 데이터을 정제하고 필터하여 저장식으로 하고 벡터DB을 다른걸 사용했다. 결과는 원하는 답변도 잘 나온다. 아직 매우 세세하게 나오진 않지만 파이프라인을 구성하면 더 좋은 데이터 결과값이 나올거로 기대하고 있다.

후기

자바만 하다 파이썬 넘어가고 파이썬하다 플러터때문에 다트을 쓰고...
그래서 그런지 두통이 심해졌다. 근데 코드가 내가 원하는 결과값이 안 나오니깐 독기가 생기고 몰입이 되더니 결국 해결해서 다행이다.. 사실 코드 문법도 잘 모르고 언어에 대한 깊이가 없다. 근데 자바을 배워서 그런지 왠만하면 다 추측하여 쓸 수 있었다. 신기하게 여러가지 문제을 해결못해서 근본적인 문제을 해결하기 위해 docs,깃허브,오버플로우,OpenAI 개발커뮤니티,레딧 등등... 커뮤니티에서 코드을 계속 보고 분석하고 비교하니 어느순간 코드의 실행순서 코드의 역할 어디서 문제가 생기는건지는 어느순간 코드가 읽혀져서 어디 행이 문제인지 보여서 신기했다. 커뮤니티을 보다 내 컴퓨터 관련 정보을 벡터DB로 저장해 나만의 컴퓨터 AI서비스을 개발하려는 미친 외국인개발자도 봤다 ㅋㅋㅋㅋㅋㅋㅋㅋ... 이 사람도 큰 데이터때문에 골치가 아파서 그런지 깃허브을 보니 엄청 복잡하고 신기했다.

0개의 댓글

관련 채용 정보