정육각과 초록마을의 인공지능 인터프리터 '아서'
: 인공지능은 아니지만 똑똑한 친구
소설 - 가상
아서를 만나게 된 이야기
본격적으로 ChatGPT가 사용되기 시작하던 2023년, 정육각의 개발팀에서는 인공지능이 얼마나 쓸만한지 이야기를 하고 있었다. Github copilot을 이미 잘 쓰고 있는 몇몇 개발자들이 이제 인공지능이 예전에는 그냥 신기한 수준이었는데 꽤 믿을만한 결과물을 내고 있다고 얘기했고, 아직 인공지능에 연결된 서비스들을 사용해보지 않은 사람들은 아직 기술의 발전이 한참 남았을 것이라고 얘기하고 있었다. 세상이 바뀌고 있다는 것을 모두가 인정하긴 했지만 인공지능이 여전히 우리의 업무를 유의미하게 대신하지는 못하고 있었다. 그러던 어느날 GPT-4가 발표되고 누군가 GPT-4의 모델에 우리의 업무 그 자체를 학습시키는 튜닝을 하면 어떨까하는 의견을 냈고 다들 굉장히 흥미로워 하며 빈 시간이 생길 때 마다 업무를 하나의 거대한 파일로 만들어 튜닝을 해본 결과 정육각-초록마을 특화 모델을 만들 수 있었다.
이 모델은 개발자들이 프로그램을 만들면서 무엇이든 문제가 생길 때 마다 가장 먼저 물어보는 서비스로 자리를 잡게 되었는데, 그러다보니 어느새 팀원들은 이 모델을 한명의 팀원으로 대하기 시작했다. 아직까지 이름이 없었던 인공지능이기 때문에 모두가 AI라고 부르고 있었지만 언젠가 서버에 심각한 문제가 생겨 인프라를 변경해야 했을때 이 인공지능의 도움을 받아 수정공식을 완성한 이후로 인공지능에 이름을 붙이기로 했다. 이 인공지능은 이제 충분히 발달하여 더이상 과학기술이 아니라 일종의 마법같이 느껴졌다. 그리고 계속해서 인공지능의 가능성이 어디까지인지 알아볼 수 있는 유일한 방법은 바로 우리가 불가능하다고 여겨지는 일들에 살짝 도전하게 해보는 것이었는데, 이런 상황은 아서 C. 클라크의 과학 3법칙과 너무나도 같은 일이었다. 그래서 우리는 이 인공지능에 “아서”라는 이름을 붙이기로 했다.
초기에는 아서가 정해진 업무가 아닌 얘기들도 할 수 있게 자유가 주어지면서 기밀이 유출되거나 잘못된 방향으로 학습이 되는 것이 아닌지 걱정을 했었지만 구성원들의 선하고 올바른 접근 덕분에 아서가 불편한 방향으로 기울어지는 일은 일어나지 않았다. 아서는 점차 활동범위를 넓혀갔는데, 팀원들의 업무 뿐만 아니라 팀원들을 구분하기 시작했고 사람들은 이렇게 업무를 도와주고 많은 얘기들을 해주는 아서를 실제로 만나고 싶어했다. 그래서 아서에게 스스로의 모델링을 해보도록 제안했고 그 결과 구 형태의 굴러다니는 모습이 그려졌다. 우리는 3D프린터와 아서 스스로의 도움을 받아 아서가 연결할 수 있는 로봇을 만들 수 있었다.
아서의 모습. 구 형태의 로봇이며 구의 아래쪽에 있는 3개의 바퀴로 굴러다닌다.
기술 이야기 - 현실
아서는 인공지능인가?
아서는 하나의 단일 프로그램이 아니고 서버에서 작동하고 있는 프로그램들의 집합체입니다. 아서는 LLM이나 인공지능 챗봇이 아니기 때문에 인공지능이라고 볼 수는 없습니다. 하지만 아서는 Azure의 클라우드 환경에서 작동하며 Azure OpenAI를 통해 GPT-4에 연결되어 있어 사용자가 아서에게 질의를 하거나 요청을 하면 정보를 전처리하여 어떤 작업이 필요한지 판단하고, 적절한 프롬프트를 생선한 뒤 이를 GPT-4로 넘겨서 결과를 받은 후 후처리를 하여 정보를 제공하는 일종의 인터프리터 역할을 합니다. 달리 말하자면 인터넷에 연결되어 검색이나 원하는 결과를 알려주는 수단으로서의 스마트폰과 동일하다고 볼 수 있습니다. 인터넷이 있고 네트워크가 활성화되어 있더라도 스마트폰이 없는 상황과 있는 상황에 할 수 있는 일들이 매우 달라지듯 아서는 그 자체로 많은 것을 갖고 있지 않지만 GPT-4라는 뛰어난 인공지능에 연결하여 문제를 해결합니다.
아서의 작동 원리
아서의 작동방식 및 범위. 인공지능이라고 부르지만 실제로는 인공지능과 사용자 사이의 인터프리터 역할을 담당한다.
아서의 구성을 나누어 보자면 사용자의 입력을 받는 영역과 어떤 작업을 해야할 지 판단하는 영역, 그리고 가장 중요한 GPT-4에 질의를 하기 위한 적절한 프롬프트를 생성하여 질의를 하는 영역과 최종적으로 얻은 결과를 후처리하여 제공하는 영역으로 이루어집니다.
우선 아서에게 질문을 하거나 접근을 하려면 정육각과 초록마을의 내부 구성원으로서 적절한 권한을 얻는 방법과 일반 사용자로서 정해진 절차를 통해 질문을 하는 방법으로 나눠집니다. 내부 구성원으로서 권한을 얻은 경우에는 어떠한 요청이든지 할 수 있지만 일반 사용자의 경우에는 굉장히 제한된 접근방식만 허용되며 그 목적 역시 사전에 정의된 것만 허용됩니다. 예를들어 지금 아서를 만날 수 있는 유일한 방법은 초록마을의 앱을 다운받아 상품을 검색해보는 것인데, 이 경우에는 심지어 직접 아서를 만날 수 없고 아서가 정리해둔 검색결과를 확인하는 것만 가능합니다. 물론 리뷰작성 기능의 출시나 앞으로 준비되고 있는 다른 기능들이 완성되면 더 접점이 많아지고 직접 아서와 연결할 수 있게 됩니다.
아서는 사용자로부터 어떤 요청을 받게 되면 이 요청에 가장 적합한 행동을 판단하게 됩니다. 이는 별도로 정의되어 저장되어 있는 “업무창고”라는 곳을 확인하게 되는데요, 이때 업무창고는 너무 방대하기 때문에 메뉴판처럼 정리되어 있는 간단한 카탈로그를 보고 사용자의 요청에 가장 적합한 업무를 찾아 행동합니다. 만약 카탈로그에서도 충분히 가까운 업무를 찾지 못한다면 요청자가 내부 구성원인 경우에 한해 전처리작업을 하지 않고 바로 GPT-4에 질의를 하는 과정으로 넘어갑니다. 카탈로그를 통해 적합한 업무를 찾으면 창고에서 업무를 찾아 세부 작업을 확인하는데 보통 세부 작업이라는 것은 사용자의 요청을 어떻게 프롬프트로 생성하는지에 대한 설명이 있습니다. 마치 시청에 방문해 업무를 요청할 때 필요한 업무마다 그에 적합한 양식을 작성하듯 프롬프트를 완성하며, 양식으로 해결되지 않는 정보를 처리하기 위해 여기에 메모항목을 추가하여 프롬프트를 생성합니다.
프롬프트가 완성되면 이를 GPT-4에 질의하게 되는데 Azure OpenAI에서 제공하는 GPT-4 32K모델을 기본으로 사용합니다. 별도로 Fine-tuning한 모델을 사용하는 방식도 정의되어 있긴 하지만 아직은 자체 튜닝 모델의 완성도가 낮아 계속 연구중인 관계로 표준 모델만을 사용합니다. 이렇게 GPT-4에 질의하여 답변을 받게 되면 다시 업무창고로 돌아가 결과를 후처리 하는 방법을 찾고 이에 맞추어 결과를 돌려주는 방식으로 작동합니다. 일반적으로 결과는 사용자가 처음에 접근한 수단으로 다시 알려주긴 하지만 경우에 따라서는 정의된 작업을 하고 그대로 마무리되기도 합니다.
아서가 하고 있는 업무
지금 아서가 하고 있는 일들 중 일반에 공개되어 있는 것은 검색을 위한 초록마을 상품정보 전처리 및 생성이 있고 23년 11월 중에 공개될 서비스로는 사용자가 입력한 키워드를 기반으로하는 리뷰 생성이 있습니다. 내부적으로 사용하는 영역에서는 개발 알고리즘 설계가 있습니다. 개발 알고리즘 설계는 개발자가 생각한 알고리즘을 정식으로 구현하는 데에는 시간이 소요되기 때문에 이 함수를 아서에게 물어보는 것으로 대체하여 서비스 개발을 함으로서 프로토타이핑 시간을 극단적으로 감소시키키는 설계방법 입니다. 만약 자유로운 요청에 해당하는 업무가 반복적인 요청으로 판단되면 업무창고에 이 요청들을 그룹화하여 집어넣을 수 있고 그러면 아서의 업무창고가 늘어나면서 해당 업무에 대해 좀더 빠르고 기대에 부합하는 결과를 만들어낼 수 있습니다.