“다양한 AI 툴로 LLM 기반 에이전트 잠재력 극대화”
상태바
“다양한 AI 툴로 LLM 기반 에이전트 잠재력 극대화”
  • 데이터넷
  • 승인 2023.11.20 10:00
  • 댓글 0
이 기사를 공유합니다

[데이터넷] 챗GPT와 GPT-4 같은 거대언어모델(LLM)은 생산성을 높이고 다양한 주제를 잘 이해하기 위한 필수 툴이 됐다. 교육부터 소프트웨어 개발과 콘텐츠 제작에 이르기까지 LLM이 마술처럼 정보를 요약하고 생성하는 능력을 보이면서 화제의 중심으로 부상했다.

이러한 능력은 놀라울 만큼 인상적이지만 LLM은 틀린 답을 내놓거나 정확한 지식을 필요로 하는 작업을 처리하지 못하는 경우도 종종 있다. 예를 들면 복잡한 수학 문제나 모호한 주제에 대한 질문에 틀린 답이나 부적절한 답을 내놓는 것을 볼 수 있다. 이러한 한계는 LLM이 과거의 데이터를 사용해 학습했을 가능성이 있고, 이성적 추론을 통해 옳은 답을 구하는 것이 아니라 어떤 한 문장으로 가장 확률이 높은 다음 단어를 예측하는 방식으로 작동하기 때문이다.

이러한 과제를 극복하고 LLM의 정확도를 향상시키기 위해서 연구자들과 개발자들은 AI 툴을 개발하고 LLM과 툴의 상호작용을 업데이트하고 있다. 이러한 노력은 세상과 관계를 맺을 줄 알고 보다 풍부한 정보와 전문지식에 접근할 수 있는 AI 기반의 에이전트를 가능하게 할 것이다.

스스로 알아서 AI 활용

LLM이 다양한 주제에 대한 질문에 대답하는 것을 보면 거의 기적처럼 보인다. 실제로 LLM이 매우 효과적이라 생산성을 높이고 다양한 주제에 대한 이해를 높이기 위해 점점 더 일상적으로 찾고 있다. LLM이 이러한 상호작용을 처리하는 것을 보면 기존 검색 엔진을 응축시키고 보다 간단명료하게 만든 것처럼 보인다.

교육 분야에서는 LLM을 활용해 학생들이 어떤 주제를 보다 더 잘 설명할 수 있고, 소프트웨어 개발 분야에서는 LLM을 활용해 프로그래머들이 코드를 작성하고 이해할 수 있다. 콘텐츠 분야 역시 요약, 문서 작성, 브레인스토밍 같은 작업에 LLM을 활용하고 있다.

하지만 토대를 이루는 AI가 역부족을 드러낼 때가 있다. 어떤 질문에 대답하거나 특정한 작업 완수를 위해 매우 정밀한 정보가 필요할 때 그렇다. LLM이 수학 문제에 대해 틀린 답을 내놓거나 누군가의 고향 역사나 유명하지 않은 인물처럼 잘 알려지지 않은 주제에 관한 질문에 엉뚱한 대답을 내놓는 것을 예로 들 수 있다.

이러한 오류들이 발생하는 것은 LLM이 인터넷을 기반으로 방대한 양을 학습하고 체인 상으로 가장 확률이 높은 다음 단어를 예측하는 방식으로 작동하기 때문이다. 기본적으로 LLM은 이러한 정보를 기억하기는 하지만 대략적으로 기억한다. AI의 지식은 많은 주제를 대강 어림잡는 것에 가깝다.

학습을 하는 데이터로 정보 조각이 잘 표현돼 있지 않을수록 모델이 그 정보를 정확하게 재현할 수 있는 가능성은 낮아진다. 예를 들면 LLM이 1+1=2와 같은 교과서적인 데이터 포인트들을 접하고 곱셈이나 뺄셈을 어렴풋이 이해하고 통계적으로 개연성 있는 답을 내놓을 수 있다. 하지만 649, 152와 같이 이전에 접하지 않았던 복잡한 입력이 주어지면 틀린 답을 내놓을 수 있다. 이는 사용된 학습 데이터가 필요한 답보다 오래됐기 때문이거나 필요한 정보를 공공의 시선으로부터 숨겨진 출처(예: 웹사이트의 데이터베이스)로부터 가져온 것이기 때문일 수 있다.

따라서 호텔이나 항공편 가격을 엉뚱하게 알려주거나 1년 전에는 맞았지만 현재는 틀린 답을 줄 수도 있다. 이러한 한계를 극복하고 보다 정확한 답을 제공하도록 LLM이 주변 세상과 보다 원활히 상호작용하며 풍부한 정보와 전문성에 접근할 수 있게 하는 툴들이 개발되고 있다.

▲ LLM은 방대한 양의 학습 데이터를 자가 학습을 통해 확률이 가장 높은 다음 단어를 예측한다.

AI 위한 툴

LLM의 세계에서 툴은 특정 답을 도출하거나 검증하기 위해 모델이 특화된 방식으로 상호작용하는 애플리케이션이다. 우리가 알고 있는 예로는 계산기, 코드 러너, 검색 엔진을 들 수 있으며 새로운 툴들이 계속 추가되면서 이러한 목록은 꾸준히 늘고 있다.

앞서 언급한 실패 사례들을 계산기나 검색 엔진 같은 툴을 활용해 해결할 수 있다. 보다 정확한 답을 내놓기 위해 LLM이 학습했던 데이터에만 전적으로 의존하는 것이 아니고 이용 가능한 툴들을 활용하는 것이다. 어떤 계산을 하거나, 코드를 실행하고 정확도를 확인하거나, 사용자 데이터에 관한 질문에 대답하거나, 사용자가 웹사이트를 통해 흔히 하는 요청에 응답해야 할 때와 같이 필요 시 툴들을 활용할 수 있다.

이러한 툴들은 사람에게는 인터페이스에 상관없이 쉽게 이해하고 상호작용할 줄 아는 간단한 것들로 보이지만 AI 모델을 위해서는 기존 툴을 코드로 포장하고 상호작용이 가능하도록 만들어야 한다. 특히 툴을 소프트웨어 지향적으로 만들어 코드를 통해 입력과 출력을 할 수 있어야 한다.

예를 들면 사용자 인터페이스 대신에 웹사이트의 API를 사용할 수 있어야 한다. 그러면 버튼 클릭이나 체크박스 토글이 필요 없이 툴로 텍스트 입력을 전달할 수 있다. 툴 활용을 위한 또 하나의 중요 요소는 언제 툴을 사용할지 기술하는 것으로, LLM이 툴을 어디에 사용할지 이해하도록 만드는 한편 과도한 사용 방지를 위해 어떤 경우 사용하지 말지에 대한 구체적인 지침을 정하기 위해 필요하다.

▲ AI 툴은 소프트웨어 기능에 코드 기반 입출력과 활용 기술을 더한 것이다.

툴 활용에 대한 AI 학습

인간을 상대하던 툴들을 AI에 활용하기에 적합하도록 재작성하거나 포장하는 것만으로는 불충분하다. 따라서 언제 툴과 상호작용할지를 결정하기 위해 LLM이 사용하는 프롬프트 플로우(prompt flow)를 업데이트해야 한다. 이 프로세스가 모델을 에이전트로 변모시킨다. 다시 말하면 주어지는 입력, 프롬프트 명령, 이용 가능한 툴들을 결합해 어떻게 옳은 답을 생성할지 이해하는 것이다.

LLM과 상호작용하기 위해서는 모델이 실행해야 하는 특정 명령을 작성하고, 이와 함께 특정 형태의 입력이 주어졌을 때 대답을 어떻게 하는지에 관한 예들을 제시해야 한다. 이러한 명령을 개발하는 작업을 프롬프트 엔지니어링이라고 한다. AI를 툴을 활용하도록 학습하는 경우 프롬프트 엔지니어링은 모델이 주어진 작업을 처리하기 위해 내려야 하는 연쇄적인 결정들까지 포함한다.

랭체인(LangChain) 같은 소프트웨어 라이브러리를 활용함으로써 사용자가 LLM, 일련의 툴, 에이전트 구조를 결합해 툴을 활용할 줄 아는 AI 애플리케이션을 빌드할 수 있다. 나아가 기억과 응답 체이닝이라는 부가적인 기능들을 가능하게 해 보다 강력한 능력이 갖출 수 있다.

한 가지 사례를 들면 “작년 매출을 판매량으로 나누면 어떻게 되나”라는 질문에 답하기 위해서는 로직 체이닝이 가능한 다중 툴을 활용하는 에이전트가 필요하다. 첫째, 나눗셈을 위해 계산기가 필요하고, 데이터베이스와 인터페이스를 위한 룩업 프로그램이 필요하다. 둘째, 다단계 질문이기 때문에 에이전트의 프롬프트로 어떤 행동들을 취해야 할지 판단해야 하는데 이 예의 경우에는 작년 매출과 판매량이 얼마인지 찾아봐야 한다.

판단이 내려졌으면 그 다음에는 에이전트의 내부 프롬프트가 어떻게 행동할지 결정해야 하는데 ‘룩업 툴을 사용해 값을 검색하기’ 등을 활용해 결정할 수 있다. 최종적으로 답을 구할 때까지 필요한 만큼 프로세스를 반복한다.

이 사례의 경우 작년 매출과 판매량에 대한 정보를 얻은 다음 이 둘을 나눠서 답을 얻어야 한다는 판단에 이를 것이고, 두 값을 계산기 툴로 입력하는 행동을 취할 것이다. 그런 다음 더 이상의 단계가 발생하지 않으면 에이전트가 최종 답에 도달했다는 것을 인지하고 사용자에게 제공하게 된다. 이러한 일련의 판단, 행동, 응답 체이닝을 통해 LLM 기반 에이전트는 LLM만 사용하는 것보다 훨씬 복잡한 작업을 처리할 수 있게 된다.

▲ 에이전트로 특정 프롬프트 플로우를 사용해 LLM이 툴과 상호작용할 수 있다.

LLM과 툴 결합으로 시너지 극대화

LLM이 정보 검색과 생성에 있어 혁명적인 변화를 가져오고 있지만 정밀한 지식을 필요로 하는 작업들에는 아직 한계점을 드러내고 있다. 이를 극복하기 위해 LLM 에코시스템으로 툴들이 도입되고 있다. 계산기와 검색 엔진에서부터 API와 데이터베이스 접속에 이르는 이러한 툴들을 활용해 LLM이 외부 애플리케이션과 상호작용하고 보다 풍부한 정보에 접근할 수 있고, 한계를 극복하고 정확한 답을 제공할 수 있다.

툴을 효과적으로 활용하도록 LLM을 학습시키기 위해서는 프롬프트 플로우를 업데이트하고 LLM을 지능적인 에이전트로 변모시켜야 한다. 프롬프트 플로우를 통해 모델이 언제 툴들과 상호작용할지 결정을 내릴 수 있으며, 주어지는 입력, 프롬프트 명령, 툴들에 대한 접근을 활용해 옳은 답을 내놓도록 할 수 있다.

LLM이 진화를 거듭하고 툴들의 성능이 고도화됨에 따라 가까운 미래에는 더욱 더 놀랄 만한 애플리케이션과 진보가 가능해질 전망이다. 다양한 툴들을 활용해 LLM 기반 에이전트의 잠재력을 극대화하면 생산성, 문제 해결, 지식 발견을 위한 새로운 가능성들도 열릴 것으로, LLM과 툴의 결합으로 인한 시너지는 사람과 AI가 한층 지능적이고 효율적으로 상호작용할 수 있는 시대를 앞당길 것으로 기대된다.

기고자: 벡스 심슨(Becks Simpson)은 미국 뉴욕 소재 스타트업 로고(Rogo)의 풀스택 AI책임자다. 새로운 딥 러닝 기법 연구과 적용은 물론 AI 모델을 학습 및 구축을 위한 파이프라인과 플랫폼을 설계하고 스타트업에게 AI와 데이터 전략에 관한 자문을 제공하는 등 딥 러닝과 머신 러닝의 스펙트럼 전반에 걸쳐서 경험을 쌓고 있다. / 제공: 마우저


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.