WorkSpace, Autonomous Agent in LINER

안녕하세요, LINER의 머신러닝 엔지니어 타일러입니다. 라이너의 웹 페이지인 getliner.com의 첫 화면이 AI Workspace로 바뀌었다는 사실을 알고 계신가요? 최근, 저를 비롯한 모든 LINER 팀원들이 Copilot과 AI Workspace 제품을 개발하고 알리는 데에 전력을 다하고 있는데요. GNN를 활용한 문서 추천 시스템을 소개하던 저, 그리고 하이라이팅과 추천을 주요 제품으로 밀고 있던 LINER가 어떤 변화를 겪은 걸까요? 혹시 피벗을 하게 된 걸까요?

Help People Get Smart Faster

결론부터 말하자면, 저희의 방향성은 변하지 않았습니다. LINER가 하이라이팅 기능만을 제공하던 시절부터, 현재 Copilot과 AI Workspace를 제공하게 된 지금까지, 저희의 비전은 항상 정보 탐색의 혁신이었습니다.

특히, 정보 탐색의 혁신을 위한 도구로서 AI Flywheel을 구축하는 데 집중했습니다. 간단히 설명하자면, (1) 제품을 사용하는 사용자가 많아질수록, 더욱 풍부한 데이터가 쌓이고, (2) 풍부한 데이터가 쌓이면 더욱 향상된 AI를 개발할 수 있게 되며, (3) 더욱 향상된 AI는 더욱 향상된 제품을 만드는 기반이 되어, (4) 더 많은 사용자가 제품을 사용하게 되는 선순환 구조를 구축하려고 했습니다.

방향성이 변하지 않았고, 구현하기 위한 시스템이 변하지 않았다면 LINER가 이처럼 변화한 원인은 무엇일까요? 답은 진부하게도 LLM의 등장입니다. 이전 글에서 카터가 언급했듯이, 2022년 11월에 등장한 ChatGPT(일종의 LLM)는 “정보 탐색”이라는 분야에 큰 변화를 가져왔습니다. 정보탐색의 주요 패러다임이었던 검색을 통해 문서를 찾고 그 문서의 내용을 직접 읽어 보던 방식이 흔들리기 시작한 것이죠.

그렇다면 우리는 “Help People Get Smart Faster”라는 비전이 유효한지, 그리고 유효하다면 LLM을 어떻게 활용해야 하는지에 대해 깊이 있는 토론을 통해 합의점을 찾아나갔습니다. 그 결론은 LLM이라는 파도를 타고 정보 탐색 분야를 혁신하는 개척자의 위치를 차지하는 것이었습니다.

“정보 탐색을 혁신한다”는 비전과 그 비전을 실현시키는 수단인 AI Flywheel은 그대로 유지되었습니다. 단지 그 중심에 있는 AI가 더욱 효과적이고, 가장 큰 임팩트를 가진 LLM 기반 AI로 바뀐 것뿐입니다.

LLM’s Reasoning Ability

LLM은 입력된 문장을 바탕으로 그럴듯한 문장을 생성하도록 학습된 모델입니다. 양질의 데이터와 거대한 컴퓨팅 자원을 통해 그럴듯 한 문장을 너무 잘 생성하는게 특징인데요. 기존의 Encoder-Decoder 형태의 모델이 수행하던 간단한 문장 변환(예: 번역, Q&A 등)은 물론, 텍스트 형태의 요구사항에 대해 거의 범용적인 지능에 가까운 추론 및 판단 능력을 보여줍니다. 간단한 사칙연산부터, 시스템의 일부로서 판단을 내리는 것까지 가능합니다.

이해를 돕기 위해 예시를 보여드리겠습니다. ChatGPT에게 “너는 자율 주행 Agent이고 상황을 알려줄테니 옵션에서 행동을 하나 선택해”라고 알려주어 봤는데요. 나이브 하지만 형식에 맞추어 그럴듯한 선택을 하는 것을 알 수 있습니다. 문장을 생성하는 것을 넘어, 텍스트를 입력받아 텍스트를 출력하는 추론기계, 범용적인 지능으로서 동작하는 것이죠.

이러한 추론 능력이 사용된 대표적인 프로젝트가 HuggingGPT 입니다. HuggingGPT는 LLM을 일종의 Controller이자 Interface로 사용하는데요. 풀고 싶은 문제를 문장의 형태로 입력하면, LLM의 추론 능력을 통해 사용해야 하는 모델을 결정하고 적절한 인자와 함께 모델 API를 호출합니다. 이후 그 결과를 받아와, 유저에게 리포트 형태로 제공하는 것까지 LLM으로 수행해냅니다.

HuggingGPT 외에도 다양한 어플리케이션과 프로젝트에서 LLM을 시스템의 Controller로서 사용하는 사례가 GPT-4의 API가 출시된 이후 급격하게 늘어났습니다. 저희는 이런 흐름을 보며 LLM을 이용해 일종의 정보탐색 Autonomous Agent을 만들 수 있겠다는 생각을 떠올리게 됩니다.

Autonomous Agent

Autonomous Agent는 말 그대로 자율적으로 판단해 사람의 일을 대신 수행해주는 시스템을 의미합니다. 구체적으로는 목표와 환경이 제공되면, 사람이 해야하는 여러 판단을 대신 수행하며 목적을 달성해 나가는 시스템입니다. 사람이 해야 하는 일들을 목적만 알려주면 알아서 처리해주니 “도구”의 궁극적인 형태라고도 볼 수 있겠네요. 예시로는 Tesla의 Autopilot(Driving Autonomous Agent) 기능이 있습니다.

Autonomous Agent의 핵심은 결국 “상황에 따라 알아서 판단해서 목적을 달성”하는 것인데요. 이를 구현하기 위해서는 “판단 능력”을 가진 지능이 필요합니다. 그리고 LLM은 텍스트에 대해서 판단 능력을 가진 지능처럼 동작합니다. 인터넷의 정보는 일반적으로 텍스트의 형태로 존재하고, LINER는 이런 정보를 탐색하는 과정을 혁신하는 팀입니다. 이러한 명제가 점에서 선으로 한 순간 이어졌고, 그때부터 정보 탐색 Agent를 구현하기 위한 전력질주가 시작되었습니다.

Agent in LINER Workspace

구현 관련 기술적인 내용은 이후 별도의 글을 통해 다룰 예정이기에 구조 정도만 말씀드리자면, (1) 유저가 찾고 싶어하는 정보나, 정보 탐색을 통해서 해결하려고 하는 문제를 Agent에게 알려줍니다. (2) Agent는 판단 능력을 통해 유저에게 정보를 전달하기 위한 행동 계획을 세웁니다. (3) 실제로 행동을 수행하고, 그 결과를 바탕으로 유저의 의도에 맞는 답변을 제공합니다.

이렇게 개발된 Agent는 유저가 해야하는 정보 탐색 + 취합 과정을 획기적으로 줄여줌으로서 훨씬 편리한 형태의 정보탐색을 제공합니다. 또한 단순히 LLM의 지식에만 의존하는 것이 아니라, 사고 능력을 통해 더 나은 답변을 제공하기 위한 행동을 자율적으로 수행함으로서 기존 LLM 프로덕트보다 풍부한 정보를 제공해 줄 수 있습니다. 실제로 기존 LLM 대비 QA BenchMark 데이터셋에서 더 나은 성능을 보여주기도 했습니다.

그리고 8월 1일 getliner.com의 메인 화면인 WorkSpace에 LINER Agent가 배포되었고, 현재까지 아름다운 유저 증가폭을 그리고 있습니다.

주간 Workspace 이용자 추이 (점선은 집계 미완)

Future Work

마지막으로 기술적인 얘기를 살짝 해보면, LINER의 Autonomous Agent는 이제 겨우 한 걸음을 뗀 만큼 도전적인 문제들이 많고, 가야할 길이 많이 남았습니다.

대표적인 문제로는 Output Formatting이 있습니다. Agent의 각 컴포넌트는 Json Format을 이용해 서로 데이터를 주고 받는데요. 만약 LLM이 괄호를 깜빡하고 안 닫는다거나, 콤마를 달아주지 않는다면 Parsing Error가 발생하게 됩니다. 아주 가끔 발생하는 에러지만, 저희는 실제로 많은 유저가 사용하는 프로덕트이기에 그 결과는 치명적입니다. 이를 극복하기 위해 Few-Shot, Function Calling등을 적극적으로 연구해보고 있습니다.

또 다른 종류의 문제로는 LLM의 추론능력을 극대화 하는 것이 있습니다. LLM은 그 자체로 어느정도의 추론 능력을 보여주지만, 프롬프팅을 통해 그 능력을 극대화 할 수 있습니다. 대표적인 방법으로는 단계적으로 생각하며 문제를 풀게하는 CoT(Chain of Thought) 등이 있는데요. 저희도 CoT와 같이 In-Context로 추론 능력을 끌어올리기 위한 다양한 방법론도 시도하며 연구해 보고 있습니다.

Help People Get More Done With Less Time and Energy

WorkSpace라는 이름에서 알 수 있듯이, 저희는 질문에 대한 정보를 제공하는 것을 넘어 실제로 유저가 정보탐색을 통해 생산적인 일을 해내는 것 까지 돕는 Autonomous Agent를 만드는 것이 궁극적인 목표입니다. 이를 위해 Agent가 정보탐색을 넘어 다양한 도구를 사용할 수 있도록 하는 것에 대해 고민하고 있으며 다양한 PoC를 진행 중에 있습니다. 또 한편으로는 그렇게 발전하고 있는 Agent의 효용을 극대화 할 수 있는 UX가 무엇인지에 대한 고민도 함께 진행 중입니다.

Outro

가장 즐겁게 했고, 또 하고있는 Autonomus Agent에 대해 프로젝트에 간략히 소개 드렸는데요. CLI 형태의 PoC, 데모 MVP를 거쳐, Production 출시까지 매우 빠른 속도로 진행되었던 프로젝트라 LINER 특유의 속도감을 제대로 느낄 수 있었습니다. PoC, MVP부터 더 나은 프로덕트를 위한 팀원들의 관심과 치열한 토론도 당연히 저를 즐겁게 하는 요소 중 하나였구요.

(실제로 프로젝트 기간동안 사무실 이곳 저곳에 Agent 데모를 사용할 수 있는 링크가 붙어있었고, 이를 통해 팀원들로부터 양질의 피드백을 얻을 수 있었습니다)

혹시 이 글을 읽으며 LINER 업무 환경, 혹은 제품으로서 LLM과 Autonomous Agent가 바꾸어 나갈 미래에 관심이 생기셨다면 언제든 연락 주세요. 같이 세상을 바꿔나갈 분들을 찾고 있습니다. 긴 글 읽어주셔서 감사합니다.