도구를 든 AI == ?
OpenAI에서 최근 ChatGPT API에서 사용할 수 있는 “Function Calling” 이라는 기능을 공개했다.
업데이트의 주요 내용은 ChatGPT API를 사용할 때 “functions” 라는 파라미터로 GPT가 사용할 수 있는 기능들의 목록을 제공하면 GPT의 자의적인 판단 하에 해당 기능을 사용하는 것이다.
예를 들어 “웹 검색하기 : 검색하고자 하는 키워드를 제공하면 검색결과를 반환한다” 라는 정보를 GPT에 제공하고, “현재 한국의 대통령이 누구지?” 라는 질문을 한다면
GPT가 이 정보를 대답하는데에 있어 스스로 웹 검색이 필요하다 판단하고 “웹_검색(검색어 : ‘현재 한국의 대통령은?’)” 처럼 직접 검색 도구를 사용하는 식이다.
그래서 이게 왜 중요한데?
한때 유행했었던 “세종대왕 맥북 던짐 사건에 대해 알려줘” 밈을 기억하는가?
이처럼 ChatGPT가 답을 지어내는 걸 “Hallucination” 이라고 하는데, AI가 정해진 지식의 범위 안에서 주어진 질문에 대해 최대한 “그럴듯한” 답을 만들어 내기 때문에 발생한다.
ChatGPT를 이용해서 실제 서비스를 만드는 입장에서는 굉장히 곤란한 문제인데, 민감한 정보나 문제될만한 내용들을 지어내는 것을 통제할 수 없다라고 한다면 신뢰성있는 서비스를 구축할 수 없기 때문이다.
GPT와 같은 LLM(Large Language Model)이 겪는 Hallucination 문제를 해결하기 위해 제시되고 있는 방법 중 하나가 Augmented LM, 즉 “도구를 든 AI” 이다.
ALM : Augmented Language Model
ALM은 GPT와 같은 언어모델이 사용할 수 있는 외부 도구를 제공함으로서 더 좋은 답변을 생성하도록 하는 방식이다.
Meta AI (구 Facebook AI) 에서는 2023년 2월에 Toolformer 라는 논문을 공개했는데, 해당 논문에서 모델은 계산기, 검색 엔진, 달력 등의 사용법을 스스로 학습하여 자신의 성능을 높이는 데에 사용할 수 있었다.
실제로 연구진은 GPT-3(1750억 파라미터)보다 훨씬 작은 GPT-J(65억 파라미터) 모델을 가지고 도구 사용을 학습시켰을 때, GPT-3 보다 더 나은 성능을 보였다고 말한다.
이처럼 ChatGPT의 Function Calling은 이처럼 우리가 GPT에게 그가 좀 더 많은 일을 할 때 사용할 수 있는 “도구” 를 쥐여주는 기능이라고 할 수 있는 것이다.
ALM을 어떻게 활용할 수 있을까?
도구를 든 AI를 우리가 어떻게 활용할 수 있을까?
a16z 블로그에서 소개한 "Using Generative AI to Unlock Probabilistic Products" 라는 글의 내용에서 방법을 찾아보자.
해당 글에서는 제품을 먼저 3단계로 나누라고 조언한다.
- LLM의 확률적인 특성(매번 답이 약간 달라지는 특성) 이 도움이 되는 기능
- 어느정도 확률적이어도 상관없는 기능
- 항상 동일한 결과를 도출해야 하는 기능 = GPT와 같은 LLM이 잘 못하는 일들
그리고 이 중 확률적인 결과를 사용해도 괜찮은 기능에 대해서 LLM을 활용하라고 조언한다.
ALM의 발전은 여기서 좀 더 나아가 LLM이 잘 못하는 일들에 대해서 API 로 제공해주기만 한다면 LLM의 자체 판단으로 적절한 도구를 선택하여 결과를 제공하는 것에 대한 가능성을 열어준다.
한계점은 없을까?
여기까지만 본다면 전지전능한 AI가 도구까지 갖췄으니 이제 인간세계의 멸망밖에 남지 않았나? 할 수 도 있겠지만 아직까지 한계점도 명확하다.
- Toolformer 논문에서는 모델이 한번의 API 호출을 하는 것은 학습시킬 수 있었으나, 여러번의 API를 연속적으로 활용하는 것은 학습시키지 못했다고 말한다. ( 검색 결과를 이용해서 다시 새로운 검색을 하는 등 )
- 또한 OpenAI에서는 이러한 API의 호출 결과를 GPT가 사용했을 때 예상치 못한 결과를 만들어낼 수 있다라고 말한다.
AI 를 서비스화하는 입장에서는 이러한 한계점들을 서비스적으로 어떻게 풀어나갈지가 숙제가 될 것이다.
이러한 한계점에도 불구하고, 도구를 자체적으로 판단하여 사용할 수 있는 AI의 등장은 앞으로의 미래에 큰 영향을 미칠 것이라 확신한다.
도구의 사용이 인류 진화를 가능케 한 원동력이라는 주장에 힘을 실어준 루시의 사진과 함께 이름의 유래가 된 비틀즈의 노래를 마지막으로 글을 마친다.

Lucy In The Sky With Diamonds (Remastered 2009)
Provided to YouTube by Universal Music GroupLucy In The Sky With Diamonds (Remastered 2009) · The BeatlesSgt. Pepper's Lonely Hearts Club Band℗ 2009 Calderst...
https://youtu.be/naoknj1ebqI
---
앞으로도 LLM 등의 기술에 대해서 글을 써볼 생각입니다!
substack을 통해서 이메일로도 받아보실 수 있으니, 괜찮으셨다면 구독한번 해주시면 감사하겠습니다 :)

Red Giant | Antares | Substack
LLM, AI 관련 다양한 기술(논문, 프레임워크, API) 에 대한 소개 및 리뷰를 보내드립니다. Click to read Red Giant, by Antares, a Substack publication. Launched 3 days ago.
https://devantareskor.substack.com/?r=2j0m2z&utm_campaign=pub&utm_medium=web
댓글
로그인 후 댓글을 남길 수 있습니다.
잘 읽었습니다 ^^
진짜 대박이네요
저도 안데르센 호로이츠의 말에 동의하는 편이예요~ GPT는 말할 것도 없고 직접 function calling을 사용해 보니 이 기능에도 "내용이 랜덤해도 상관 없는 작업"에 아주 알맞더라구요. 다만 단점을 꼽자면 이 기능은 "질문에 대한 콘텍스트를 제대로 이해하고 function을 calling하는 것"이 가장 첫 단추인데 이 부분에서 맥락 파악을 잘못하는 경우가 종종 있었습니다. "내용이 랜덤해도 상관 없는 작업"이라는 건 콘텍스트를 잘 이해하고 나온 답변이 랜덤해도 괜찮다는 뜻인데 질문이 복잡하거나 중의적이라서 콘텍스트 이해 단계부터 꼬이는 경우에는 난감하더라구요..! GPT3.5 turbo 16k에서는 종종 있는 편, GPT4에서는 정확한 편 결론 : 이미 좋은 기능이지만 모델이 좋아질 수록 점점 더 쓸모 있는 기능이 될 거라고 기대하고 있습니다 :)
확실히 gpt-3.5 는 중의적으로 해석이 가능한 요구사항에 대해서 명확하게 판단하지 못하는 경우가 많더라구요! function calling 자체에 대한 랜덤성을 어떻게 줄일수 있을지가 앞으로 중요하겠다는 생각이 드네요(프롬프트적으로나, 모델적으로나..) 귀한 경험 공유 감사합니다
혁준님 메이커로그가 Must Reads #206에 선정되었습니다! https://stib.ee/V608