도구 사용은 에이전틱 워크플로우의 중요한 디자인 패턴이다. - 앤드류 응 교수님
- LLM에 도구 사용을 통합하는 것은 AI 에이전트 워크플로우의 핵심 설계 패턴입니다.
- 도구 사용을 통해 LLM이 웹 검색, 코드 실행, 다양한 소스 검색, 생산성 도구와의 인터페이스 등 다양한 작업을 수행할 수 있습니다.
- 도구 사용은 에이전트 워크플로우를 발전시키고, LLM의 기능을 확장하여 더 많은 일을 수행할 수 있게 합니다.
정보 수집, 작업 수행 또는 데이터 조작을 위해 호출하도록 요청할 수 있는 함수를 LLM에 부여하는 도구 사용은 AI 에이전트 워크플로우의 핵심 설계 패턴입니다. 웹 검색을 수행하거나 코드를 실행할 수 있는 LLM 기반 시스템에 익숙할 것입니다. 일부 대규모 소비자 대상 LLM에는 이미 이러한 기능이 통합되어 있습니다. 하지만 도구 사용은 이러한 예시를 훨씬 뛰어넘습니다.
온라인 LLM 기반 채팅 시스템에 "리뷰어들이 꼽은 최고의 커피 메이커는 무엇인가요?"라고 질문하면, 이 시스템은 웹 검색을 수행하고 하나 이상의 웹 페이지를 다운로드하여 맥락을 파악할 수 있습니다. 초기에 LLM 개발자들은 사전 학습된 트랜스포머에만 의존하여 출력 토큰을 생성하는 것은 한계가 있으며, LLM에 웹 검색용 도구를 제공하면 훨씬 더 많은 일을 할 수 있다는 사실을 깨달았습니다. 이러한 도구를 사용하면 LLM을 미세 조정하거나 {tool: 웹 검색, 쿼리}와 같은 특수 문자열을 생성하도록 (아마도 몇 번의 프롬프트를 통해) 프롬프트할 수 있습니다: "커피 메이커 리뷰"}와 같은 특수 문자열을 생성하여 검색 엔진 호출을 요청합니다. (문자열의 정확한 형식은 구현에 따라 다릅니다.) 그런 다음 사후 처리 단계에서 이와 같은 문자열을 찾고, 관련 매개변수를 사용하여 웹 검색 함수를 호출한 다음, 추가 처리를 위해 결과를 추가 입력 컨텍스트로 LLM에 다시 전달합니다.
마찬가지로 "100달러를 12년 동안 복리 7% 이자로 투자하면 최종적으로 얼마가 남을까?"라고 묻는 경우, 정답이 나올 가능성이 낮은 트랜스포머 네트워크를 사용하여 직접 답을 생성하는 대신 코드 실행 도구를 사용하여 Python 명령을 실행하여 100 * (1+0.07)**12를 계산하여 정답을 얻을 수 있습니다. LLM은 다음과 같은 문자열을 생성할 수 있습니다: {도구: 파이썬 인터프리터, 코드: "100 * (1+0.07)**12"}*
하지만 이제 에이전트 워크플로우에서의 도구 사용은 훨씬 더 발전했습니다. 개발자들은 다양한 소스(웹, Wikipedia, arXiv 등)를 검색하고, 생산성 도구(이메일 보내기, 캘린더 항목 읽기/쓰기 등)와 인터페이스하고, 이미지를 생성하거나 해석하는 등의 기능을 사용하고 있습니다. 여러 기능에 대한 자세한 설명을 제공하는 컨텍스트를 사용하여 LLM에 메시지를 표시할 수 있습니다. 이러한 설명에는 함수가 수행하는 작업에 대한 텍스트 설명과 함수가 기대하는 인수에 대한 세부 정보가 포함될 수 있습니다. 그리고 LLM이 작업을 수행하기 위해 호출할 적절한 함수를 자동으로 선택할 수 있을 것으로 기대합니다.
또한 LLM이 수백 개의 도구에 액세스할 수 있는 시스템이 구축되고 있습니다. 이러한 환경에서는 사용 가능한 함수가 너무 많아서 모든 함수를 LLM 컨텍스트에 넣을 수 없으므로 휴리스틱을 사용하여 현재 처리 단계에서 가장 관련성이 높은 하위 집합을 LLM 컨텍스트에 포함할 수 있습니다. 아래에 인용된 Gorilla 논문에 설명된 이 기술은 컨텍스트로 포함할 텍스트가 너무 많을 경우 검색 증강 생성(RAG) 시스템이 포함할 텍스트의 하위 집합을 선택하는 휴리스틱을 제공하는 방식을 떠올리게 합니다.
LLM의 역사 초창기, LLaVa, GPT-4V, Gemini와 같은 대규모 멀티모달 모델(LMM)이 널리 보급되기 전에는 LLM이 이미지를 직접 처리할 수 없었기 때문에 컴퓨터 비전 커뮤니티에서 도구 사용에 대한 많은 작업을 수행했습니다. 당시 LLM 기반 시스템이 이미지를 조작할 수 있는 유일한 방법은 함수를 호출하여 물체 인식이나 다른 기능을 수행하는 것이었습니다. 그 이후로 도구 사용 사례는 폭발적으로 증가했습니다. 작년 중반에 출시된 GPT-4의 함수 호출 기능은 범용 도구 사용을 향한 중요한 진전이었습니다. 그 이후로 점점 더 많은 LLM이 비슷한 방식으로 도구를 쉽게 사용할 수 있도록 개발되고 있습니다.
도구 사용에 대해 더 자세히 알고 싶으시다면 이 글을 참고하세요:
- Gorilla: 대규모 API와 연결된 대규모 언어 모델, Patil 외(2023)
- MM-REACT: 멀티모달 추론과 행동을 위한 ChatGPT 프롬프트, Yang 외. (2023)
- 추상화 연쇄 추론을 통한 효율적인 도구 사용, Gao 외. (2024)
지난주에 소개한 도구 사용과 리플렉션은 모두 제 애플리케이션에서 상당히 안정적으로 사용할 수 있는 디자인 패턴으로, 두 가지 모두 배울 가치가 있는 기능입니다. 앞으로는 계획 및 다중 에이전트 협업 디자인 패턴에 대해 설명하겠습니다. 이 패턴을 사용하면 AI 에이전트가 훨씬 더 많은 일을 할 수 있지만 덜 성숙하고 예측 가능성은 떨어지지만 매우 흥미로운 기술입니다.
원본 : Microsoft Absorbs Inflection, Nvidia's New GPUs, Managing AI Bio Risk, and more (the batch)