상호작용으로 더욱 똑똑해지는 LLM

상호작용으로 더욱 똑똑해지는 LLM

인간의 집단지성은 개개인의 상상력을 넘어서는 강력한 힘을 발휘한다. 집단이 모여 한 가지 목표를 향해 노력하고 협력할 때, 그들이 얻는 시너지 효과는 각 개인이 도달하기 힘든 수준으로 올라간다. 집단의 다양성과 경험이 모여 문제를 다양한 시각에서 바라보고 해결하는 능력을 강화하기 때문이다. 

이제 집단지성은 인간만의 전유물이 아니다. 최근 각광받고 있는 생성형 AI 역시 집단지성의 힘을 이용하여 발전을 거듭하고 있기 때문이다. LLM 오케스트레이션(Orchestration)과 다양한 개별 LLM 간의 상호작용을 유도하여 질문에 대해 더욱 퀄리티 높은 답을 얻어낼 수 있다.

1. LLM 오케스트레이션이란?

IT에서 오케스트레이션이란 여러 개의 시스템, 애플리케이션 혹은 서비스를 보다 작은 단위로 관리하고, 연결 및 조율하여 최종적으로 크기가 큰 프로세스를 실행하는 방법론을 뜻한다. 생성형 AI 분야에서도 이러한 오케스트레이션 기법이 활용되는데, 생성형 AI의 성능을 최상으로 유지하고 효율적으로 관리하기 위한 프롬프트 엔지니어링과 Agent 그리고 생성형 AI 간 상호작용 등을 활용한 프로세스를 LLM 오케스트레이션이라고 한다.

(출처 : a16z)

이러한 LLM 오케스트레이션이 환각현상(Hallucination) 해결 및 답변 퀄리티의 향상을 원하는 기업들에게 새로운 해결책을 제시해줄 수 있을 것으로 기대를 모으고 있다. 이에 따라 프롬프트 엔지니어링(Prompt Engineering)을 통한 역할 지정을 단일 통해 모델의 답변 품질을 향상시키는 방법뿐 아니라 별도의 데이터 소스를 통한 검색증강생성(RAG, Retrieval Augmented Generation)과 복수의 생성형 AI 간의 상호작용을 통해 추가적으로 답변 품질을 향상시키는 생성형 AI 오케스트레이션 기법까지 다양한 기술에 대한 연구 및 개발이 이루어지고 있다. 

2. LLM 오케스트레이션의 구성 요소

1) 프롬프트 엔지니어링

프롬프트 엔지니어링은 생성형 AI의 캐릭터를 설정하고 제약사항과 답변 형식을 사전에 제공하여 답변 품질을 향상시키고 부정확한 답변을 방지하기 위한 기법이다. 프롬프트 엔지니어링을 통해 사용자는 생성형 AI 모델에게 특정 캐릭터나 제약사항, 답변 형식 등을 지정하여 원하는 답변의 품질을 높이고 부정확한 답변을 방지할 수 있다. 

예를 들어, ‘당신은 스포츠 전문가입니다.’라는 프롬프트를 통해 캐릭터를 설정하고 어투와 뉘앙스를 설정할 수 있다. 또한 ‘경기 결과를 모르는 경우, 모른다고 답변하세요’라는 제약조건을 걸어 관련성 없는 답변(오답)이 발생하는 것을 방지할 수 있다. 원하는 답변 형식이 있는 경우 ‘소속팀, 득점’ 등 사전에 지정할 수도 있다.

2) 검색증강생성(RAG, Retrieval Augmented Generation)

RAG란 대규모 언어 모델의 출력을 최적화하여 응답을 생성하기 전에 학습 데이터 소스 외부의 신뢰할 수 있는 지식 베이스를 참조하도록 하는 프로세스를 가리킨다. (출처 : Amazon Sagemaker) 사용자는 검색증강생성 기법을 통해 사내 DB를 비롯한 양질의 정보를 참조하여 답변하도록 유도할 수 있다. 한 발 나아가 서로 다른 데이터로 학습된 복수의 생성형 AI에게 똑같은 문제를 여러 가지 시각에서 고민하고, 더욱 면밀하고 유익한 대답을 제공하도록 유도할 수도 있다.

(출처 : AWS)

3) 에이전트(Agent)

에이전트는 사용자와 생성형 AI 모델 간의 상호작용을 조율하고 관리하는 역할을 한다. 이는 다양한 모델과의 상호작용을 통해 더 나은 답변을 도출하고, 필요한 경우에는 다른 기술들을 통합하여 최적의 결과를 얻을 수 있도록 하는 방법론 역시 포함한다. 한 발 나아가 에이전트는 모델과 모델 간의 상호작용 역시 담당한다.

3. 상호작용으로 더욱 똑똑해지는 LLM

기존의 방식이 단일 LLM과 여러 데이터소스(벡터 DB)를 활용하는 방식이었다면, 여러개의 LLM을 결합하여 성능을 개선하는 방법 역시 활용되고 있다. 예를 들어 고객이 ‘나에게 맞는 여행 상품을 추천해 줘’라는 질문을 던졌다고 가정해 보자. 이때 고객에게 가장 적합한 여행 상품을 추천받고 싶은 경우, 단일 LLM 모델이 아닌 여러 LLM에게 저마다 역할을 부여하고, 서로 토의하며 상호작용하게 유도할 수 있다.

LLM 간의 토론은 다음과 같은 방식으로 진행된다. 우선 프롬프트 엔지니어링을 통해 A LLM에게 ‘가격’의 측면에서 여행 상품을 고려해 보라고 명령한다.  다음으로 B LLM에게 ‘여행지 정보’를 통해 고객에게 가장 최적화된 여행지를 고르라고 명령한다. 마지막으로 C LLM에게 ‘가격과 고객의 성향 그리고 여행지 정보를 종합해 최적의 여행 상품을 추천해 줘’라는 명령을 내린다. 

세 개의 LLM은 ‘여행 상품’이라는 동일한 문제를 여러 시각에서 고민하고, 각각의 관점에서 고심한 결과를 서로 주고받으며 최종적으로 질문에 대한 답을 도출해 낸다. 이를 통해 단일 LLM의 답변보다 더욱 다양한 측면에서 심도 있게 고민한 끝에 얻은 답을 얻어낼 수 있는 것이다.

(출처 : Microsoft Autogen)







문과 출신으로 AI 스타트업에서 데이터 사이언티스트로 일하고 있습니다. 


* 슈퍼브 블로그의 외부 기고 콘텐츠는 외부 전문가가 작성한 글로 운영 가이드라인에 따라 작성됩니다. 슈퍼브 블로그에서는 독자분들이 AI에 대한 소식을 더 쉽고 간편하게 이해하실 수 있도록 유용한 팁과 정보를 제공하고 있습니다.