페이지

2024년 12월 29일 일요일

기업폐쇄망에서의 Private LLM 기반 Agentic RAG 구축 - 1편

AI Agent 트렌드 부상

 지난 12월11일 코엑스 그랜드볼륨에서 개최된 AI Summit Seoul 2024 에서 "기업폐쇄망에서의 Private LLM 기반 Agentic RAG 구축"이라는 주제로 발표를 하였다. 올해로 7년째 개최되는 AI Summit Seoul 2024는 12월10일~11일 양일간 개최된 유료 행사로 100만원에 육박하는 가격에도 매회 1,500명 참석자가 행사 조기에 등록이 마감되는 국내 최대 AI conference 중 하나다.  예상했던 것과 같이 AI Agent 가 트렌드로 부상함을 느낄 수 있었다.  발표했던 내용을 간추려 정리해본다.



Closed-source vs Open-weight models

아래 그림 1과 같이 2022년4월부터 2024년 7월까지 GPT, Claude, Gemini 등의 폐쇄형 소스 기반 모델의 성능향상(MMLU 5-shot)의 증가가 2023년 10월 기점으로 87% ~89%의 완만한 증가세를 보이는 반면 같은 기간 Qwen 1.5 72B, Llama 3.1 70B, 405B 등의 Open-weighted 모델의 급속하게 추격하고 있음을 확인할 수 있다. 무엇보다도 올해 Meta 사의 Llama 3.1 405B 을 개방형 weight 로 발표함으로써 OpenAI 사의 GPT-4o 와 비견되는 성능을 온프레미스 환경에서 실행할 수 있는 기회가 주어진 점이 오픈소스 진영에 의미하는 함의가 크다고 하겠다.

2023년 3월 스탠포드대학에서 GPT-3 를 이용한 self-instruct 생성으로 Llama-7B 모델을 파인튜닝한 Alpaca 모델 공개로부터 영감을 받아 시작된 Open-weight 모델을 통한 Private LLM 개발 여정은 그동안 Polyglot, Llama 2, Falcon, Mixtral 8x7B, Llama 3 8B, Llama 3.1 8B, 70B 그리고 405B 까지 나 역시 아래 그림 1과 같은 궤적을 쫓아왔고 어느새 50개가 넘는 파인튜닝 모델을 보유하게 되었다는 점에서 감개가 무량했다. 이 과정에서 RAG(검색증강생성)를 위한 임베딩 및 LLM 모델 파인튜닝용으로 사용될 instruction 생성 데이터세트에 사용되는 GPT-4 의 성능을 대치할 모델로 Llama 3.1 405B 모델이 Open-weight 모델로 발표되어 매우 흥분되었었고 기업내부 폐쇄형 환경에서 외부 API 접속 없이 RAG 를 완성할 수 있을 것 같다는 나의 가설이 현실화될 수 있다는 생각에 기뻤다. 2023년 3월부터 모든 것이 가설과 실행, 에러, 수정 그리고 확인의 쉽지 않은 과정이고 무모할 수 있는 도전이었는데 어쨌든 현재는 여기까지 왔다.


<그림 1. Closed-source vs Open-weight models>

Llama 3.3 70B beats GPT-4o, Llama 3.1 405B

행사에서 발표하기 5일 전인 12월7일 마침 Meta 사의 Llama 3.3 70B 의 발표가 있었다. 3.1의 405B의 성능을 3.3 버전에서 70B으로 비슷한 성능을 제공한다는 것이다. 그간 405B 을 사용하기위해 4비트 양자화 버전인 경우에도 최소 H100 4대 정도의 환경을 보유해야 하는 제약을 3.3 버전의 70B 모델은 4비트 양자화의 경우 H100 1대에서 운영(약 42GB 메모리 필요)할 수 있게 해준다는 것을 의미한다. 이는 합성데이터 생성은 물론, 앞으로 급부상할 AI Agent 에서 의미하는 바가 크다. Meta 의 허깅페이스 모델 카드에서 언급한 바와 같이, Llama 3.1 8B 로는 AI Agent 를 수행할 tool calling 에서 제약이 따라서 70B, 405B 을 사용하기를 추천하고 있다. 
 아래 그림 2는 Llama 3.3 70B 과 GPT-4o 등과의 성능 비교를 보여주고 있다. 초록색 네모칸과 같이 Multilingual MGSM 의 경우, Llama 3.3 70B 이 GPT-4o 보다 뛰어난 성능을 보여주어 한글 데이터처리에 이점이 있을 것으로 보이고, 빨간색 네모칸은 가격 면에서 GPT-4o 를 사용하는 비용의 1/25 의 가격으로 사용이 가능함을 보여주고 있다.

<그림 2. Llama 3.3 70B beats GPT-4o>

Basic RAG Flow

아래 그림 3은 일반적인 RAG(검색증강생성) 흐름을 보여준다. GPT-4 에다가 국내 기업의 데이터와 관련된 질문을 하면 수조개의 데이터로 사전학습된 내용을 기반으로 해서 응답을 하므로 웹상에 존재하지 않는 기업내부 데이터에 맞는 데이터보다는 그럴듯한 응답(할루시네이션)을 제공할 확률이 크다. 이러한 LLM 의 국내 비정형 데이터 검색이라는 측면에서 2024년 한해 RAG를 검토한 기업들이 많았고 결과도 어느정도 만족할 성과들이 있었다. 먼저 기업내부의 비정형 문서들(HWP, MSDOC, PDF 등)을 문자열 형태로 읽혀들인다. 
이때 2)번과 같이 문자열로 변환된 전체 문서를 일정크기(chunk)의 문서로 분할한다. 다음 1) 번과 같이, 임베딩 모델을 사용하여 분할된 문서를 3)번과 같이 벡터로 변환한다. 예를 들어, 700 token 크기로 문서를 분할했다면, 700 토큰에 대응하는 벡터 내용들이 쭉 4)번의 vector DB 에 저장된다. 
5)번에 dataset 은 2)번의 분할된 문서를 '참조' 문서로 하여 질문과 답변을 생성하는 합성데이터를 의미한다. 이렇게 만들어진 합성데이터는 1)번의 임베딩 모델과 6)번의 Private LLM 모두에 파인튜닝하여 base model 로 사용된 Llama 3.1 8B 이 학습하지못했던 기업데이터에 few-shot 학습할 기회를 제공한다. 이렇게 준비된 상황에서 질문이 들어오면 7)번과 같이 질문도 역시 임베딩 모델로 벡터화하여 8)번과 같이, 질문 벡터와 vector DB에 저장된 벡터들과 1:1 유사도검색을 통하여 9)번의 사전에 정의된 Top-K 즉 유사도 순서로 랭킹 몇 위까지 표시하는 것에 따라 벡터DB 로 부터 유사 문서를 추출한다. 
만약 top-K 가 2라면 2개의 의미(semantic)가 유사한 문장이 검색되어 온다. 이 2개의 참조 문헌에 9)번과 같이, Private LLM (예를 들면, 파인튜닝된 Llama 3.1 8B)이 프롬프트(질문내용)를 던져 응답을 생성한다.


<그림 3. Basic RAG Flow>

Challenges: Building RAG in Closed Network System

발표주제에서 의미하는 바와 같이, 기업 폐쇄망에서의 Agentic RAG 구축은  몇가지 도전적 요소를 내포한다. 첫째, 당연한 이야기지만 기업폐쇄망에서의 구현은 외부 API 와의 연결이 보장되지 않는 곳이다. 눈부신 속도로 발표되는 최신 SOTA 모델 적용에도 허깅페이스와 같은 모델 저장소를 사용하지 못한다. 이를 위해 우리는 치타라는 LLMOPs Model Repository 에 기업용 파인튜닝된 모델 set 를 저장하고 이로부터 Git/LFS 같은 형태로 허깅페이스와 같은 모델 로드를 시도한다. 
둘째, 임베딩모델과 LLM 모두를 대상으로 기업내부 정보를 파인튜닝하는데 필요한 instruction dataset 을 생성하는데 외부 GPT-4o 를 대체할 성능의 합성데이터 생성용 로컬 LLM 이 준비되어야 한다.
셋째, RAG 를 구성하는 LLM, Vector DB, 트랜스포머, bitsandbytes 와 같은 양자화, Langchain, LlamaIndex 와 같은 LLM 응용 프레임워크 등 가용 기술요소가 파이선이나 파이토치와 같은 환경상의 최적화가 필요하다. 마지막으로, 이 들간에 이음새없는 통합이 필요하다. 오픈소스를 통한 개발에는 버전간의 충돌로 인한 통합에 많은 정성이 들어가는 것이 사실이다.

기업내부망의 LLM/RAG를 위한 효과적인 파이프라인을 제공하는 LLMOps

이러한 폐쇄망에서의 도전적인 요소들에 대응하고자 LLM과 RAG 개발/운영 측면에서도 LLMOPs 로의 전환이 불가피하게 되었다. '치타'는 그간 고객들이 요구하는 폐쇄형 환경에서 많은 참조사례를 확보한 바 있는데 이를 기반으로 LLMOps 로의 확장이 신속하게 이루어졌다. 아래 그림 4는 '치타'의 LLMOps 라이프사이클 파이프라인 모습을 나타낸다. 특히 1) Data Management 기능에서 데이터셋관리와 어노테이션 관리 부분이 강화되었고, 2)번 모델 개발/훈련에서 직관적인 워크플로우 기능과 워크스페이스 기능이 3)번 모델 관리에서는 임베딩 모델과 LLM 모델 저장소가 특히 4) 모델 서빙에서는 엔디비아에 특화된 Tritron Server 추론 방식을 채택하였고, 5) 모니터링에서는 모델 성능 모니터링과 더불어 오토스케일링 기능을 제공하여 서빙에서 부하가 증가할 경우, 자동적으로 GPU 자원을 확장하는 기능을 제공한다.

<그림 4. 기업내부망의 LLMOps>

Limitations of Traditional RAG

RAG는 분명히 내부데이터 보안 문제 없이 AI 검색을 제공하는데 역할이 있다. 하지만 아래와 같은 이유들로 제한 사항이 있는 것 역시 사실이다, 
첫째, 질문에대한  의미에 유사한 정보를 제공하는 단방향의 솔루션이다. 즉 보다 검색해보고 싶은 탐색적 능력이 부족하다.
둘째, LLM 이 사용되고 있지만, 자체 학습, 목표 설정과 같은 의사결정이 결여되어 있다.
셋째, 프롬프트는 어느정도 주어진 프롬프트를 사용한다. 질문과 답변이 목적이기 때문에 그렇다. 새로운 정보에 적응해서 동적으로 프롬프트를 조정해서 LLM이 보유한 보다 지성적인 동적 프롬프트 조정능력을 활용할 순 없을까?
넷째, 웹검색이나 SW API 같은 외부 tool 에 접근이 불가하다.

- 기업폐쇄망에서의 Private LLM 기반 Agentic RAG 구축 - 2편에서 계속됩니다.





댓글 없음:

댓글 쓰기