인공지능/논문 리뷰 or 진행

ToolLLM: Facilitating Large Language Models to Master 16000+ Real-world APIs - 논문 리뷰

이게될까 2025. 1. 21. 22:39
728x90
728x90

https://arxiv.org/abs/2307.16789

 

ToolLLM: Facilitating Large Language Models to Master 16000+ Real-world APIs

Despite the advancements of open-source large language models (LLMs), e.g., LLaMA, they remain significantly limited in tool-use capabilities, i.e., using external tools (APIs) to fulfill human instructions. The reason is that current instruction tuning la

arxiv.org

 

이 논문은 API를 정리하여 GPT를 이용해 Instruction data set을 만들었습니다.

그리하여 실제 API를 활용하여 작업을 진행할 수 있게 되었습니다.

ReACT의 단일 진행방식과는 다른 방식인 DFSDT 방식을 사용하여 진행하다가 막히면 되돌아가 다른 길을 찾습니다.(DFS)

ReACT방식보다 훨씬 높은 성공률을 보입니다.

깊게 읽어 본 것은 아니라 DFSDT를 어떻게 구현한 지는 모르겠지만 이런 방식이 결국 LLM Agent를 위한 초석이라 알아두면 좋을 내용일 것 같네요 

 

문제 정의 - LLM(대규모 언어 모델)이 외부 도구(API)를 효율적으로 사용하지 못하는 문제를 해결.
- 기존 모델은 실제 API 활용과 복잡한 작업 수행에 한계가 있음.
연구 목표 - ToolBench 데이터셋과 ToolLLaMA 모델을 개발하여 실제 API다중 도구 시나리오를 처리.
- 복잡한 작업에 대한 일반화 성능 향상.
ToolBench 데이터셋 1. API 수집: RapidAPI에서 16,464개 API와 3,451개 도구를 수집.
2. 지시 생성: ChatGPT를 활용해 단일/다중 도구 작업 지시 작성.
3. 해결 경로 주석: DFSDT(깊이 우선 탐색 기반 알고리즘)로 해결 경로 기록.
ToolLLaMA 학습 - LLaMA 모델을 ToolBench 데이터셋으로 미세 조정(SFT).
- Sentence-BERT 기반 API 검색기를 통합해 적합한 API를 자동 추천.
- 지시를 처리하며 여러 API를 호출하여 최종 결과 생성.
알고리즘 (DFSDT) - 깊이 우선 탐색 기반 의사결정 트리:
1. 지시를 여러 경로로 분해.
2. 실패한 경로에서 백트래킹.
3. 복잡한 다단계 작업에 높은 성공률 제공.
- 기존 ReACT 방식의 오류 전파 문제 해결.
평가 방법 (ToolEval) - 평가 기준: Pass Rate(정확도), Winner Rate(성능 우위).
- ChatGPT를 기반으로 생성된 답변을 자동 평가.
주요 결과 1. 성능:
- ToolLLaMA는 Text-Davinci-003 및 Claude-2를 초과, ChatGPT와 유사한 성능.
2. 일반화 능력:
- 학습되지 않은 API에서도 높은 성공률.
3. 효율성:
- 469,585회의 실제 API 호출 데이터를 활용하며 확장 가능.
관련 연구와 비교 - ToolBench는 기존 데이터셋(API-Bank, ToolAlpaca 등) 대비 가장 많은 API다양한 작업 시나리오를 제공.
- 다중 도구 사용복잡한 추론 작업에서 차별화.
한계점 - 일부 작업에서 GPT-4보다 성능이 낮음.
- 데이터셋의 도구와 도메인을 추가로 확장할 필요.
미래 연구 방향 1. ToolBench의 도구 및 도메인 확대.
2. ToolEval의 평가 기준을 정교화.
3. 복잡한 작업 처리 능력을 강화.
결론 ToolBench와 ToolLLaMA는 오픈소스 LLM의 도구 사용 능력을 혁신적으로 발전시켰으며, 실제 응용 가능한 AI 생태계 구축에 기여.

더보기

Figure 1은 ToolBench를 구성하고 ToolLLaMA를 학습시키는 과정과 모델의 추론 과정을 세 단계로 나눠 시각적으로 설명하고 있습니다. 각 단계의 주요 내용을 자세히 정리하겠습니다.


1. 데이터 구성 및 학습(Data Construction & Train)

(1) API Collection

RapidAPI에서 다양한 도구(API)를 수집하여 ToolBench 데이터셋의 기반을 구축합니다.

  • RapidAPI는 16,000개 이상의 API를 제공하며, 이를 통해 다양한 도메인과 작업을 포괄.
  • API의 메타데이터(설명, 입력 매개변수, 응답 등)를 정리하여 모델 학습에 사용.

(2) Instruction Generation

ChatGPT를 활용하여 자연어 지시문과 관련 API를 생성합니다.

  • 단일 도구 및 다중 도구 시나리오를 포함한 다양한 작업 지시를 작성.
  • 예: "영화 제목으로 정보를 검색하고, 상영 시간을 알려줘."

(3) Solution Path Annotation

생성된 지시문에 대해 문제를 해결하기 위한 해결 경로(Solution Path)를 주석 처리합니다.

  • DFSDT(깊이 우선 탐색)를 사용하여 API 호출의 올바른 순서를 결정.
  • 복잡한 다중 단계 작업에도 적합한 해결 방식을 탐색.

(4) ToolLLaMA 학습

LLaMA 모델을 ToolBench 데이터로 미세 조정(SFT, Supervised Fine-Tuning)하여 도구 사용 능력을 학습시킵니다.


2. 추론(Inference)

추론 과정에서는 입력된 지시문에 대해 모델이 올바른 API를 호출하고, 최종 답변을 생성합니다.

(1) API Retriever

  • 지시문에 적합한 API를 선택하도록 설계된 검색 모듈.
  • Sentence-BERT 기반 임베딩을 사용하여 지시문과 API 문서 간의 연관성을 계산.

(2) Retrieved APIs

  • 선택된 API를 ToolLLaMA에 전달하여 적절한 매개변수를 구성하고 호출.

(3) ToolLLaMA

  • 복잡한 작업의 경우, 여러 API를 순차적으로 호출하여 결과를 생성.
  • 필요한 경우 반복적인 호출을 통해 최적의 답변을 도출.

3. 평가 및 피드백(Evaluation)

ToolEval

ToolEval은 생성된 최종 답변이 정확한지 평가하는 자동 평가 시스템입니다.

  • ChatGPT를 기반으로 정답률(Pass Rate)과 우승률(Winner Rate)을 평가.
  • 지시 수행 성공 여부를 판단하여 모델의 성능을 피드백.

추가 설명

  • Figure의 흐름:
    • 왼쪽: RapidAPI에서 데이터를 수집하여 ToolBench 데이터셋을 구축.
    • 중앙: 지시문 생성 및 해결 경로 주석을 통해 ToolLLaMA 학습.
    • 오른쪽: 추론 과정에서 API 검색기와 ToolLLaMA가 협력하여 작업을 수행하고 ToolEval이 이를 평가.
  • 주요 특징:
    • API 검색기(API Retriever)는 지시문에 적합한 API를 자동으로 추천.
    • ToolLLaMA는 다중 API 호출을 통해 지시를 충족하며, 지시의 복잡성을 처리.

이 그림은 ToolBench를 활용해 LLM의 도구 사용 능력을 학습 및 평가하는 전체 과정을 체계적으로 요약하고 있습니다. 이를 통해 ToolLLaMA의 설계 및 실행 방식을 쉽게 이해할 수 있습니다.

더보기

Table 1: ToolBench와 주요 데이터셋 비교

이 표는 ToolBench와 다른 데이터셋(API-Bench, API-Bank, ToolAlpaca, 기존 ToolBench)을 비교하여 도구 학습을 위한 지시 튜닝 데이터셋의 특성과 차별성을 보여줍니다. 각 데이터셋의 주요 특징과 ToolBench의 강점을 설명하겠습니다.


비교 항목

1. Real-world API?

  • 설명: 데이터셋이 실제 사용 가능한 API를 기반으로 구성되었는지 여부를 나타냄.
  • 결과:
    • ToolBench, API-Bank는 실제 API를 사용함.
    • APIBench, ToolAlpaca는 시뮬레이션된 API를 사용하여 현실성을 낮춤.

2. Real API Call & Response?

  • 설명: 데이터셋이 실제 API 호출 및 응답 데이터를 포함하는지 여부.
  • 결과:
    • ToolBench와 API-Bank는 실제 API 호출과 응답 데이터를 포함함.
    • 다른 데이터셋은 이러한 기능이 부족함.

3. Multi-tool Scenario?

  • 설명: 여러 도구(API)를 조합하여 작업을 수행할 수 있는 다중 도구 시나리오를 지원하는지 여부.
  • 결과:
    • ToolBench는 다중 도구 작업을 완벽히 지원.
    • 다른 데이터셋은 단일 도구 작업에 초점.

4. API Retrieval?

  • 설명: 데이터셋이 적절한 API를 자동으로 검색(retrieve)하도록 설계되었는지 여부.
  • 결과:
    • ToolBench는 API 검색을 지원.
    • 다른 데이터셋은 이 기능이 없음.

5. Multi-step Reasoning?

  • 설명: 데이터셋이 여러 단계를 거치는 복잡한 추론 작업을 지원하는지 여부.
  • 결과:
    • ToolBench와 기존 ToolBench는 다단계 추론을 지원.
    • APIBench, ToolAlpaca, API-Bank는 제한적인 추론 작업만 가능.

수치 비교

1. Number of Tools

  • ToolBench는 3,451개의 실제 도구를 지원하며, 이는 다른 데이터셋에 비해 압도적으로 많음.
  • ToolAlpaca: 400개, 기존 ToolBench: 8개, API-Bank: 53개.

2. Number of APIs

  • ToolBench는 16,464개의 API를 포함, 가장 풍부한 API를 제공.
  • API-Bank: 1,645개, ToolAlpaca: 400개.

3. Number of Instances

  • ToolBench는 126,486개의 인스턴스(지시문)를 제공하여 대규모 학습 데이터를 제공.
  • API-Bench: 17,002개, ToolAlpaca: 3,938개.

4. Number of Real API Calls

  • ToolBench는 469,585회의 실제 API 호출 데이터를 포함하며, API-Bank의 568회를 크게 초과.
  • ToolAlpaca와 APIBench는 실제 호출 데이터를 포함하지 않음.

5. Avg. Reasoning Traces

  • ToolBench는 평균 4단계의 추론 과정을 지원.
  • 기존 ToolBench는 5.9로 더 긴 추론을 지원하지만, 도구와 API의 수가 제한적.

ToolBench의 차별성

  1. 현실성:
    • ToolBench는 실제 API와 응답 데이터를 대규모로 포함하며, 시뮬레이션 데이터를 사용하는 데이터셋보다 더 현실적이고 실용적.
  2. 다양성:
    • 도구와 API의 수, 인스턴스의 양에서 가장 큰 규모를 자랑.
  3. 복잡한 작업 처리:
    • 다중 도구 시나리오 및 다단계 추론을 지원하며, 복잡한 문제 해결 능력을 강화.
  4. 확장 가능성:
    • API 검색과 조합을 통해 새로운 도구 및 작업에도 유연하게 확장 가능.

결론

이 표는 ToolBench가 다른 데이터셋에 비해 압도적으로 강력하고 실질적인 데이터셋임을 입증합니다. 특히, 현실적인 API 호출과 다단계 작업을 지원한다는 점에서, 실제 응용 가능한 도구 학습 모델을 학습시키기에 최적화된 환경을 제공합니다. 이는 ToolLLaMA와 같은 모델의 성능을 극대화하는 데 중요한 역할을 합니다.

더보기

Figure 3: RapidAPI 계층 구조와 지시문 생성 과정

이 그림은 RapidAPI의 계층 구조(왼쪽)ToolBench의 지시문 생성 과정(오른쪽)을 시각적으로 설명하고 있습니다. RapidAPI를 기반으로 데이터를 구성하고, 이를 통해 다양한 지시문을 생성하는 전체 과정을 보여줍니다.


1. RapidAPI 계층 구조 (왼쪽)

RapidAPI는 API를 활용할 수 있도록 카테고리(Category), 도구(Tool), API로 계층화된 구조를 제공합니다.

계층 구성

  1. Category (카테고리):
    • 각 도메인에 따라 그룹화된 API의 상위 계층.
    • 예: Finance, Movies, Jobs, Top QR Code APIs 등.
  2. Tool (도구):
    • 특정 기능을 수행하는 하나의 도구로, 카테고리 내에서 세부적으로 분류됨.
    • 예: Star Wars Characters, Streaming Availability, IMDB Search 등.
  3. API:
    • 각 도구에서 제공하는 세부적인 기능.
    • 예: GET Services, GET Search By Title, GET Genres 등.

API Documentation (API 문서화)

각 API에는 다음과 같은 세부 정보가 포함됩니다:

  • API Name: API의 이름 (예: Search By Title).
  • API Description: API의 설명 (예: "제목으로 영화 및 시리즈 검색").
  • Required Parameters: 필수 매개변수 (예: title, country).
  • Optional Parameters: 선택 매개변수 (예: show_type, output_language).
  • Code Snippets: API 호출 예제 코드.
  • Example Response: 예상 응답 예제.

이러한 문서는 각 API의 기능을 이해하고 적합한 매개변수를 설정하는 데 사용됩니다.


2. 지시문 생성 과정 (오른쪽)

ToolBench는 RapidAPI에서 수집한 데이터를 바탕으로 다양한 유형의 지시문을 생성합니다. 지시문 생성은 단일 도구(single-tool)다중 도구(multi-tool) 작업 시나리오를 포함합니다.

단계별 과정

  1. Single-tool Instructions (단일 도구 지시):
    • 하나의 API만을 사용하는 단순한 작업 지시 생성.
    • 예: "영화 제목으로 정보를 검색해줘."
    • 입력 구조: Category → Tool → API.
  2. Intra-category Multi-tool Instructions (카테고리 내 다중 도구 지시):
    • 같은 카테고리 내에서 여러 도구(API)를 조합하여 작업을 수행.
    • 예: "영화 정보를 검색하고, 관련된 스트리밍 서비스를 알려줘."
    • 입력 구조: Category → Tools → APIs.
  3. Intra-collection Multi-tool Instructions (컬렉션 내 다중 도구 지시):
    • 여러 카테고리에 걸친 도구(API)를 활용하여 복잡한 작업을 수행.
    • 예: "산속에서 영화의 밤을 계획 중입니다. 날씨를 확인하고, 상영할 영화를 추천하며, 근처 숙소를 검색해줘."
    • 입력 구조: Category/Collection → Tools → APIs.

API와 지시문 매칭

  • 샘플링된 API와 문서를 ChatGPT에 입력하여 지시문과 관련 API를 자동 생성.
  • 결과적으로 지시문과 관련 API 목록이 생성됨.

3. RapidAPI와 ToolBench의 연계

RapidAPI 활용

  • RapidAPI의 계층적 구조를 활용하여 도구(API)를 분류하고, 다양한 도메인과 작업에 맞는 데이터를 수집.

ToolBench 데이터 생성

  • RapidAPI에서 수집한 API 문서화와 예시를 기반으로 단일 및 다중 도구 시나리오를 포괄하는 다양한 지시문과 해결 경로를 생성.

주요 특징 요약

  • 계층적 구조: RapidAPI의 체계적인 분류를 통해 다양한 도메인과 도구를 쉽게 탐색 가능.
  • 다양한 시나리오: 단일 도구뿐만 아니라 다중 도구와 복잡한 작업 지시문을 생성.
  • 자동화된 생성: ChatGPT를 활용하여 API 문서에서 직접적으로 지시문과 관련 데이터를 생성.
  • 응용 가능성: 실제 API 호출과 응답 데이터를 기반으로 현실적인 응용 가능.

이 그림은 ToolBench가 RapidAPI의 방대한 데이터와 구조를 활용하여 어떻게 효율적으로 지시문을 생성하고, 이를 기반으로 도구 사용 능력을 학습시키는지를 잘 보여줍니다.

더보기

Figure 4: DFSDT와 기존 CoT/ReACT 비교 및 지시 해결 경로 주석 과정

이 그림은 DFSDT(Depth-First Search-based Decision Tree)와 기존의 CoT(Chain-of-Thought)ReACT(Reasoning + Acting) 접근 방식을 비교하며, DFSDT가 어떻게 더 나은 추론 성능을 제공하는지 설명합니다. 또한, ChatGPT를 활용한 해결 경로 주석(Solution Path Annotation) 과정도 포함되어 있습니다.


1. CoT/ReACT와 DFSDT의 비교 (왼쪽)

1.1 CoT/ReACT의 문제 해결 과정

  • 일련의 단계적 호출:
    • 주어진 지시를 처리하기 위해 하나의 API를 호출하고 그 결과를 기반으로 다음 API를 호출.
    • 각 단계는 정상(Normal) 또는 오류(Error)로 끝남.
  • 오류 전파:
    • 특정 단계에서 발생한 오류가 이후 단계에도 영향을 미침.
    • 오류 발생 후 백트래킹(backtracking)을 하지 못해 작업이 실패로 종료.
  • 특징:
    • 단일 경로만 탐색.
    • 복잡한 작업에서 오류 회복 능력이 부족.

1.2 DFSDT의 문제 해결 과정

  • 깊이 우선 탐색(DFS):
    • 여러 경로를 생성하고 하나씩 탐색하며 올바른 해결 경로를 찾음.
  • 백트래킹:
    • 특정 경로에서 실패하면 다른 경로를 탐색.
  • 성공적인 최종 결과:
    • 여러 번의 API 호출을 통해 최적의 해결 경로를 탐색하고 성공적인 결과를 도출.
  • 특징:
    • 다중 경로 탐색 가능.
    • 오류 발생 시 경로를 변경해 작업을 회복.
    • 복잡한 다중 단계 작업에서 높은 성공률.

2. 해결 경로 주석 과정 (오른쪽)

2.1 지시문 예시

  • 사용자 요청:
    • "친구의 생일 선물을 준비하려고 합니다. 그녀가 좋아하는 배우는 Hailee Steinfeld입니다. 추천을 도와주세요."

2.2 과정 설명

  1. 모델의 초기 생각:
    • "먼저 Hailee Steinfeld의 정보를 수집해야겠다."
    • API 호출: get_extra_character_details
      매개변수: { "name": "Hailee Steinfeld" }
  2. 관찰(Observation):
    • 첫 번째 호출 결과:
      • { "age": 28, "recent movies": ["Spider-Man: Across the Spider-Verse"] }
      • 정상 응답(정보 수집 성공).
    • 두 번째 호출 결과:
      • { "message": "server is not available" }
      • 서버 오류 발생.
  3. 반복 호출:
    • 오류가 발생할 경우 다른 API 호출 또는 재시도를 통해 작업을 이어감.
  4. 최종 결과:
    • 정상적인 API 호출과 적절한 추론을 통해 결론 도출:
      • "Hailee Steinfeld는 최근 'Spider-Man: Across the Spider-Verse'에서 Spider-Woman 역을 맡았습니다. Spider-Woman 마스크를 선물로 추천합니다."
    • 실패 시, "Give Up" 메시지로 작업 종료.

3. DFSDT의 장점

  1. 오류 회복 능력:
    • 오류 발생 시 백트래킹을 통해 다른 경로 탐색 가능.
    • CoT/ReACT 방식의 오류 전파 문제를 해결.
  2. 다중 경로 탐색:
    • 단일 경로 탐색에 의존하지 않고 다양한 해결 경로를 평가.
  3. 복잡한 작업 처리:
    • 다중 API 호출 및 다단계 작업에서도 높은 성공률.
  4. 현실적 문제 해결:
    • 실제 API 호출 결과를 기반으로 지시를 처리하므로, 실질적인 응용 가능성이 높음.

결론

이 그림은 DFSDT가 CoT/ReACT 방식보다 복잡한 작업을 더 효과적으로 처리하고, 실패한 경로를 회복할 수 있는 강력한 추론 프레임워크임을 보여줍니다. 또한 ChatGPT를 활용한 해결 경로 주석 과정은 ToolBench 데이터셋의 구축과 ToolLLaMA의 학습을 위한 핵심 단계로, 모델의 실용성을 극대화합니다.

더보기

Table 4: ToolBench 실험 결과 비교

이 표는 ToolBench를 사용하여 주요 모델(ChatGPT, Claude-2, Text-Davinci-003, GPT-4, Vicuna, Alpaca, ToolLLaMA)의 성능을 평가한 결과를 보여줍니다. Pass RateWin Rate를 사용하여 모델의 문제 해결 성능을 평가하며, 각 모델의 추론 방법으로 ReACTDFSDT를 비교합니다.


1. 용어 설명

  • Pass Rate: 주어진 지시문을 성공적으로 해결한 비율.
  • Win Rate: ChatGPT-ReACT와 비교하여 더 나은 성능을 보인 비율(50% 이상이면 우위).
  • I1, I2, I3:
    • I1: 단일 단계 문제(Single-step Instructions).
    • I2: 다중 단계 문제(Multi-step Instructions).
    • I3: 더 복잡한 다중 단계 문제.
  • Tool: 단일 도구를 사용하는 문제.
  • Cat: 다중 도구를 사용하는 문제.

2. 주요 결과

2.1 ChatGPT

  • ReACTDFSDT 비교:
    • DFSDT를 사용한 경우 Pass Rate와 Win Rate가 크게 향상됨.
    • Average Win Rate: ReACT는 64.3%, DFSDT는 70.4%.

2.2 Claude-2

  • 전반적으로 낮은 Pass Rate와 Win Rate를 기록.
  • 단순한 작업(I1)에서는 ReACT와 DFSDT 모두 평균 이하 성능을 보임.

2.3 Text-Davinci-003

  • 복잡한 문제(I2, I3)에서 성능이 급격히 감소.
  • DFSDT를 사용할 때 ReACT 대비 약간의 향상을 보임.

2.4 GPT-4

  • DFSDT에서 모든 지표에서 최고 성능을 기록.
    • Pass Rate (Average): 71.1%.
    • Win Rate (Average): 70.4%.
  • 단순한 작업(I1)뿐만 아니라 복잡한 다중 단계 작업(I3)에서도 탁월한 성능.

2.5 Vicuna와 Alpaca

  • Pass Rate와 Win Rate 모두 매우 낮은 성능을 기록.
  • 실제 API 호출 및 복잡한 문제 해결 능력이 부족.

2.6 ToolLLaMA

  • DFSDT와 API 검색기(Retriever)를 함께 사용한 경우:
    • Average Pass Rate: 67.3%.
    • Average Win Rate: 63.1%.
  • 다른 모델보다 낮은 성능이지만, DFSDT를 통해 Pass Rate를 대폭 향상.

3. DFSDT의 장점

  • 모든 모델에서 ReACT 대비 성능 향상을 보여줌.
  • 복잡한 작업(I3-Inst)에서 특히 큰 차이를 기록하며, 복잡한 문제 해결에 강점.

4. 주요 관찰

  1. 모델 성능 순위:
    • GPT-4 > ChatGPT > ToolLLaMA > Text-Davinci-003 > Claude-2 > Vicuna/Alpaca.
  2. DFSDT의 효과:
    • 모든 모델에서 ReACT 대비 Pass Rate와 Win Rate가 향상.
    • 특히 복잡한 작업(I2, I3)에서 큰 성능 차이.
  3. ToolLLaMA의 성능:
    • GPT-4와 ChatGPT보다 낮은 성능이지만, 오픈소스 모델 중 가장 우수.
    • API 검색기와 결합할 경우 복잡한 작업에서도 경쟁력 확보.

5. 결론

이 표는 DFSDT가 ReACT보다 효과적임을 입증하며, GPT-4가 가장 뛰어난 성능을 보임을 확인할 수 있습니다. ToolLLaMA는 상용 모델에 비해 성능이 낮지만, 오픈소스 환경에서 API 검색기를 활용하여 강력한 도구 학습 능력을 보여줍니다. 이는 DFSDT와 ToolBench가 모델의 도구 사용 성능을 크게 향상시킬 수 있음을 보여줍니다.

 

 


문제 정의

대규모 언어 모델(LLMs)은 인간의 지시를 처리하는 데 있어 뛰어난 능력을 보여왔지만, 실제 외부 도구(API)를 사용하는 능력은 여전히 제한적입니다. Open-source 모델인 LLaMA와 같은 LLM은 이러한 한계를 극복하려고 하지만, 현재의 학습 데이터는 도구 사용 영역에 초점을 맞추지 않아 효과적인 활용이 어렵습니다. 이에 비해 ChatGPT와 GPT-4는 뛰어난 도구 활용 능력을 보이지만, 폐쇄형 모델로 공개된 학습 과정과 구조가 제한적입니다.


연구 목표

ToolLLM은 open-source LLM의 도구 사용 능력을 강화하기 위해 ToolBench 데이터셋ToolLLaMA 모델을 개발하여 API 활용 성능을 극대화하고, unseen API에 대한 일반화 능력을 검증하는 데 목적이 있습니다.


연구 방법

  1. ToolBench 데이터셋 구성
    • API 수집: RapidAPI Hub에서 16,464개의 RESTful API를 수집해 49개 카테고리로 분류. 잘못된 API와 비정상적인 응답을 필터링하여 최적의 API를 선정.
    • 지시 생성: ChatGPT를 사용하여 단일 도구와 다중 도구 시나리오를 포함하는 다양한 지시를 자동 생성.
    • 해결 경로 주석: ChatGPT 기반 깊이 우선 탐색(DFSDT) 알고리즘을 통해 다단계 API 호출 경로를 생성하고 주석 처리.
  2. ToolLLaMA 모델 학습
    • ToolBench로 LLaMA 모델을 미세 조정하여 API 추천기와 통합.
    • DFSDT 알고리즘을 활용해 복잡한 지시를 효율적으로 해결.
  3. 평가 방법
    • ToolEval 자동 평가기: ChatGPT를 기반으로 패스율과 우승률을 평가.
    • 일반화 실험: APIBench 데이터셋에서 ToolLLaMA의 out-of-distribution (OOD) 일반화 성능 평가.

주요 결과

  1. 모델 성능
    • ToolLLaMA는 ChatGPT와 유사한 성능을 보여주었으며, Text-Davinci-003 및 Claude-2 모델을 초과하는 결과를 기록.
    • DFSDT는 기존의 ReACT 방식보다 우수한 성능을 보여 복잡한 작업에서 더 높은 성공률을 달성.
  2. 일반화 능력
    • ToolLLaMA는 학습에 사용되지 않은 새로운 API에서도 강력한 일반화 능력을 보여줌(APIBench 실험).
    • API 검색기와의 통합을 통해 적절한 API를 추천받아 성능이 더욱 향상됨.
  3. 효율성과 확장성
    • ToolBench 데이터셋은 ChatGPT 기반으로 자동화되었으며, 새로운 API로 쉽게 확장 가능.
    • DFSDT는 오류 전파를 줄이고 복잡한 지시를 해결할 수 있는 강력한 탐색 알고리즘으로, 실질적인 응용 가능성을 보여줌.

결론 및 미래 연구 방향

ToolLLM은 open-source LLM의 도구 활용 능력을 크게 향상시키며, 실제 응용 프로그램에서의 활용성을 증대시켰습니다. 향후 연구에서는 ToolBench를 더 확장하고, 도구 사용 능력을 평가하기 위한 더욱 정교한 지표를 개발하며, 추가적인 복잡한 도구 활용 시나리오를 탐구할 수 있습니다.


 

ToolBench 데이터셋 구성 및 ToolLLaMA 모델 학습 방법


1. ToolBench 데이터셋 구성

ToolBench는 API 사용에 특화된 데이터를 구축하기 위해 세 가지 주요 단계를 통해 구성되었습니다.

1.1 API 수집

RapidAPI Hub에서 16,464개의 RESTful API를 수집하고 이를 49개 카테고리로 분류했습니다.
목적: LLM이 다양한 도구(API)를 학습하고 unseen API에도 일반화할 수 있도록 다양한 데이터를 제공.

  • 수집 과정:
    • RapidAPI에서 API 이름, 설명, 필수 매개변수, 선택 매개변수, 코드 스니펫, 응답 예시 등 메타데이터를 크롤링.
    • 53,190개의 API 중 비정상적인 응답(404 에러 등)이나 유지 관리가 부실한 API를 제거.
    • 최종적으로 3,451개의 고품질 도구(API 16,464개)로 데이터셋을 구성.
  • 예시: RapidAPI의 **"영화 검색 API"**가 포함된 경우:
    • API 이름: Search By Title
    • 설명: 제목으로 영화 및 시리즈를 검색.
    • 필수 매개변수: title (string, 제목), country (string, 국가).
    • 선택 매개변수: show_type (string, 영화 또는 시리즈 여부).
    • 응답 예시: { "type": "movie", "title": "Batman", "overview": "Dark Knight movie" }

1.2 지시 생성 (Instruction Generation)

API 사용법을 모델에 가르치기 위해 다양한 지시(Instruction)를 생성.

  • 단계:
    1. 단일 도구 지시: API의 다양한 매개변수를 활용해 하나의 도구를 사용하는 지시를 생성.
      • 예시: "미국에서 'Batman' 영화 정보를 검색해줘."
    2. 다중 도구 지시: 여러 도구를 연계해 복잡한 작업을 수행하는 지시를 생성.
      • 예시: "영화 'Batman' 정보를 검색하고, 관련 뉴스도 함께 알려줘."
    3. 복잡한 시나리오: 다단계로 도구를 조합해 문제를 해결하는 긴 지시 생성.
      • 예시: "산속에서 영화의 밤을 계획 중입니다. 현재 날씨를 확인하고, 상영할 영화를 추천하며, 근처 숙소도 검색해줘."
  • 생성 방식:
    • ChatGPT에 API 문서와 예시를 제공하여, 입력 파라미터와 출력 결과를 기반으로 지시 생성.
    • RapidAPI의 카테고리컬렉션을 활용하여 API를 그룹화하고 자연스러운 다중 도구 조합 지시 생성.

1.3 해결 경로 주석 (Solution Path Annotation)

LLM이 지시를 해결하기 위해 어떤 API를 사용하고 어떤 순서로 호출해야 하는지 기록.

  • 사용 기술:
    • 깊이 우선 탐색 기반 의사결정 트리(DFSDT)를 활용해 다양한 경로를 탐색.
    • 기존 방식(ReACT)의 한계(에러 전파, 제한된 탐색)를 극복하여 복잡한 지시도 효율적으로 처리.
  • 과정:
    1. ChatGPT가 주어진 지시를 분석.
    2. 필요하면 여러 API를 순차적으로 호출하여 정보를 수집.
    3. 유효한 결과를 반환하거나 불가능한 경우 명확히 포기 메시지를 생성.
  • 예시: 지시: "Hailee Steinfeld의 최근 영화 목록을 확인하고, 그녀의 생일 선물을 추천해줘."
    해결 경로:
    1. API get_extra_character_details 호출 → { "recent_movies": ["Spider-Man", "Pitch Perfect"] }
    2. API suggest_gift_ideas 호출 → { "suggestion": "Spider-Woman mask" }
      최종 답변: "Hailee Steinfeld의 최근 작품은 'Spider-Man: Across the Spider-Verse'입니다. Spider-Woman 마스크를 선물로 추천합니다."

2. ToolLLaMA 모델 학습

ToolLLaMA는 LLaMA 모델을 ToolBench 데이터셋으로 미세 조정하여 도구 사용 능력을 학습시켰습니다.

2.1 모델 학습 준비

  • 컨텍스트 길이 확장: 기존 LLaMA-2 모델의 4,096 토큰 길이를 8,192로 늘리기 위해 포지셔널 보간(Positional Interpolation) 기법 사용.
  • 학습 형식: ChatGPT의 대화 형식을 유지하며 입력과 출력을 동일하게 구성.

2.2 학습 과정

  • 하이퍼파라미터:
    • 학습률: 5×10^{-5}
    • 배치 크기: 64
    • 에폭: 2회
  • 손실 함수: 모델이 올바른 API 호출과 순서를 학습하도록 크로스 엔트로피 손실 사용.

2.3 API 추천기와의 통합

  • Sentence-BERT 기반 추천기:
    • 지시와 API 문서를 임베딩하여 연관성을 계산.
    • 모델이 적절한 API를 선택하도록 보조.
  • 예시: 지시: "현재 뉴욕의 날씨를 확인하고, 그에 맞는 야외 활동을 추천해줘."
    • 추천기: [날씨 API, 활동 추천 API] 선택.
    • ToolLLaMA: 두 API를 호출하여 최종 답변 생성.

3. 실제 활용 및 결과

ToolLLaMA는 학습되지 않은 API와 복잡한 지시에도 일반화 능력을 보이며, 실제 응용 가능성을 입증했습니다. 특히 APIBench 실험에서는 기존 모델 대비 높은 성능과 낮은 오류율을 보여주었습니다.


위 과정을 통해 ToolBench와 ToolLLaMA는 실질적인 문제 해결 능력을 갖추었으며, 다양한 도구 활용 요구에 부합하는 강력한 LLM 생태계를 제안했습니다.

 

깊이 우선 탐색 기반 의사결정 트리인 DFSDT에 대해 설명해줘
또한 기존 방식인 ReACT의 한계를 어떻게 극복했는지도 알려줘

깊이 우선 탐색 기반 의사결정 트리(DFSDT) 설명

DFSDT(Depth-First Search-based Decision Tree)는 LLM이 복잡한 문제 해결 경로를 탐색하는 데 효과적인 새로운 알고리즘입니다. 이는 LLM이 여러 가지 잠재적인 해결 경로를 동시에 평가하고, 최적의 경로를 선택하도록 설계되었습니다.


DFSDT의 작동 방식

  1. 초기 상태 정의:
    • 주어진 문제(지시)에 대해 사용할 수 있는 모든 API를 포함한 초기 상태를 설정.
  2. 탐색 과정:
    • 현재 상태 분석: 현재 상태에서 사용할 수 있는 API와 그 호출 방법을 평가.
    • 의사결정 노드 생성: 각 가능한 API 호출(또는 작업)을 "노드"로 생성.
    • 자식 노드 확장: 특정 API를 호출한 결과를 기반으로 새 상태를 생성하고, 이를 다음 탐색의 시작점으로 사용.
  3. 깊이 우선 탐색(DFS):
    • 한 경로를 끝까지 탐색하여 해결 가능성을 평가.
    • 경로가 실패하거나 비효율적일 경우 백트래킹(backtracking)을 수행해 다른 경로를 탐색.
  4. 노드 다각화:
    • 동일한 상태에서 생성된 자식 노드 간 중복을 피하기 위해 이전 노드 정보를 분석.
    • "다양성 사용자 프롬프트(Diversity User Prompt)"를 활용해 이전 노드와 구별되는 새 노드를 생성.
  5. 종료 조건:
    • 유효한 해결 경로를 찾으면 탐색 종료.
    • 모든 경로를 탐색했지만 유효한 경로가 없을 경우 포기 메시지 생성.

DFSDT의 장점

  1. 다양한 해결 경로 평가:
    • 단일 경로만 탐색하는 기존 방식과 달리 여러 경로를 탐색하고 비교.
  2. 효율적인 탐색:
    • 깊이 우선 탐색을 통해 특정 경로를 신속히 평가하며, 경로가 실패할 경우 빠르게 다른 경로로 전환.
  3. 에러 회복력 강화:
    • 실패한 경로에서 되돌아가 다른 경로를 시도함으로써 오류 전파를 방지.
  4. 복잡한 문제 해결:
    • 다중 도구를 조합하거나 여러 단계를 포함하는 복잡한 지시에도 적합.

기존 방식(ReACT)의 한계와 극복 방안

ReACT(Reasoning + Acting)의 한계

ReACT는 단일 경로 탐색에 기반하여 다음과 같은 제약을 가집니다:

  1. 오류 전파:
    • 초기에 잘못된 API 호출이나 잘못된 매개변수 선택이 이루어질 경우 이후 단계에도 영향을 미쳐 문제를 해결하지 못함.
    • 예: 잘못된 매개변수로 API 호출 반복 → 무의미한 시도.
  2. 제한된 탐색 공간:
    • 한 번에 한 방향만 탐색하므로 더 나은 경로를 놓칠 가능성이 큼.
    • 복잡한 문제에서 단순 경로만 시도해 문제를 해결하지 못할 확률 증가.
  3. 복잡한 작업에서 비효율성:
    • 다단계 작업(예: 다중 API 호출을 포함하는 작업) 처리에 비효율적.

DFSDT가 한계를 극복한 방식

  1. 다양한 경로 탐색:
    • 단일 경로 탐색(ReACT) 대신, 의사결정 트리를 통해 가능한 모든 경로를 평가.
    • 실패한 경로에서 다른 옵션을 시도하므로 탐색 범위가 넓어짐.
  2. 노드 다각화 및 백트래킹:
    • 특정 경로가 실패하거나 비효율적일 경우, 다른 자식 노드로 되돌아가 새 경로를 탐색.
    • 중복 노드를 방지하여 탐색 효율을 극대화.
  3. 성공률 및 효율성 향상:
    • DFSDT는 ReACT가 실패하는 복잡한 문제에서 높은 성공률을 기록.
    • 실험에서 ReACT 대비 약 +20%의 성공률 향상을 달성.
  4. API 호출 비용 절감:
    • 깊이 우선 탐색을 통해 빠르게 유효한 경로를 찾음으로써 API 호출 비용을 최소화.

예시: DFSDT vs ReACT 비교

문제: "Hailee Steinfeld의 최근 영화 목록을 검색하고, 생일 선물을 추천해줘."

  • ReACT:
    1. get_movies 호출 → {} (잘못된 매개변수 사용).
    2. 반복적으로 잘못된 매개변수로 호출 → 실패.
  • DFSDT:
    1. get_movies 호출 → { "recent_movies": ["Spider-Man"] } (올바른 매개변수 사용).
    2. 결과를 기반으로 suggest_gift 호출 → { "suggestion": "Spider-Woman mask" }.
    3. 최종 답변 반환 → "Spider-Man 영화를 기반으로 Spider-Woman 마스크를 선물로 추천합니다."

DFSDT는 잘못된 경로를 탐색하더라도 백트래킹으로 성공적인 경로를 찾아 문제를 해결할 수 있습니다.

 

관련 연구 및 논문 정리

ToolLLM 논문에서는 도구 학습지시 튜닝을 중심으로 한 다양한 관련 연구를 언급하며, ToolBench와 ToolLLaMA의 성과를 기존 연구와 비교하고 발전 방향을 제시하고 있습니다. 이와 관련된 연구들을 주요 주제별로 정리하면 아래와 같습니다.


1. 도구 학습 (Tool Learning)

주요 내용:

도구 학습은 LLM이 외부 도구(API)를 통해 복잡한 작업을 처리하는 능력을 연구하는 분야입니다. 도구를 활용하면 모델이 제한된 지식을 넘어 실시간 정보나 특수 기능을 활용할 수 있습니다.

관련 연구:

  1. ToolFormer (Schick et al., 2023):
    • LLM이 학습 없이도 적절한 도구를 선택하고 사용하는 방법을 탐구.
    • 도구 사용 능력을 자체적으로 학습하도록 설계.
  2. RESTGPT (Song et al., 2023):
    • RESTful API를 활용해 실제 세계와 연결하는 LLM 연구.
    • ToolLLM과 유사하게 API를 활용하지만, ToolBench처럼 대규모 데이터셋을 제공하지 않음.
  3. HuggingGPT (Shen et al., 2023):
    • Hugging Face의 다양한 AI 모델을 호출하여 다중 모달 작업을 수행.
    • ToolLLM과 달리 학습된 LLM이 아닌 미리 정의된 도구를 호출하는 방식에 중점.
  4. AssistGPT (Gao et al., 2023):
    • 다중 모달 기능을 가진 도구를 통합하여 모델이 계획, 실행, 학습을 수행.
    • ToolLLM과는 사용 사례와 도메인에서 차별화.

2. 지시 튜닝 (Instruction Tuning)

주요 내용:

지시 튜닝은 LLM이 인간의 지시를 더 잘 이해하고 실행하도록 학습시키는 방법론입니다. 이 과정에서 다양한 지시와 학습 데이터를 생성하여 모델 성능을 향상시킵니다.

관련 연구:

  1. Alpaca (Taori et al., 2023):
    • LLaMA 기반 모델을 인간 지시를 따르도록 미세 조정한 연구.
    • ToolLLM과 달리 도구 사용 영역보다는 일반적인 언어 능력에 집중.
  2. WizardLM (Xu et al., 2023):
    • 복잡한 지시를 따르는 능력을 강화하기 위해 고품질 데이터를 활용.
    • ToolLLM과의 차이점은 다중 도구 시나리오를 다루지 않음.
  3. Self-Instruct (Wang et al., 2022):
    • LLM을 활용해 자체적으로 지시 튜닝 데이터를 생성.
    • ToolBench의 ChatGPT 기반 데이터 생성 방식과 유사하지만, 도구 사용 시나리오는 제한적.
  4. AlpacaEval (Li et al., 2023):
    • LLM의 성능을 평가하기 위한 자동 평가 메커니즘 개발.
    • ToolEval이 이 연구를 기반으로 설계되어, 도구 사용 능력 평가에 초점을 맞춤.

3. LLM의 의사결정 및 추론 (Decision Making & Reasoning in LLMs)

주요 내용:

LLM이 복잡한 작업을 분해하고, 각 작업 단계에서 최적의 결정을 내릴 수 있도록 하는 알고리즘 개발.

관련 연구:

  1. ReACT (Yao et al., 2022):
    • 추론과 행동(도구 호출)을 결합하여 작업을 수행하는 방식.
    • ToolLLM의 DFSDT는 ReACT의 한계를 보완하며, 오류 전파 문제를 해결.
  2. Reflexion (Shinn et al., 2023):
    • 모델이 이전 실패를 반성하고 더 나은 결정을 내리는 메커니즘.
    • DFSDT는 Reflexion의 아이디어를 확장하여 더 복잡한 탐색 및 의사결정을 가능하게 함.
  3. Tree of Thoughts (ToT) Reasoning (Yao et al., 2023):
    • 모델이 문제를 다양한 경로로 해결할 수 있도록 의사결정 트리 기반 접근 방식 제안.
    • DFSDT와 유사한 구조를 가지지만, DFSDT는 무한한 의사결정 공간을 탐색하는 데 초점.

4. API 활용 데이터셋 구축 (API Utilization Datasets)

주요 내용:

ToolLLM의 ToolBench와 같은 API 중심 데이터셋은 도구 사용 능력을 강화하기 위한 필수적인 요소입니다.

관련 연구:

  1. API-Bank (Li et al., 2023):
    • 소규모 API 데이터셋으로 도구 사용 학습.
    • ToolBench보다 도구 및 데이터의 다양성이 제한적.
  2. ToolAlpaca (Tang et al., 2023):
    • 3,000개의 시뮬레이션된 API를 사용한 학습 데이터 구축.
    • ToolBench와 달리 실제 API와의 상호작용은 부족.
  3. APIBench (Patil et al., 2023):
    • API 활용을 평가하기 위한 데이터셋.
    • ToolBench는 APIBench보다 더 많은 실제 API를 포함하고, 다중 도구 시나리오를 지원.

5. ToolLLM의 차별화 및 공헌

ToolLLM은 위 연구들에서 제기된 한계점을 극복하며 다음과 같은 혁신을 이뤘습니다:

  1. 대규모 데이터셋 구축:
    • 16,000개 이상의 실제 API를 포함한 ToolBench를 통해 학습 및 평가.
  2. 다중 도구 및 다단계 작업 지원:
    • 기존 데이터셋이 다루지 못한 복잡한 지시를 처리.
  3. 새로운 탐색 알고리즘 DFSDT:
    • 기존 ReACT 방식의 한계를 극복하고 복잡한 문제 해결 능력을 강화.

ToolLLM은 도구 학습과 LLM의 실질적 응용 가능성을 확장하며, 관련 연구의 중요한 발전 방향을 제시합니다.

 

결과, 결론 및 마무리


1. 결과 (Results)

ToolLLM은 ToolBench 데이터셋과 DFSDT 알고리즘을 기반으로 LLM의 도구 사용 능력을 크게 향상시키며 다음과 같은 주요 결과를 도출했습니다.

1.1 모델 성능

  • ToolLLaMA의 성과:
    • 단일 도구와 다중 도구 작업 모두에서 Text-Davinci-003Claude-2를 초과하는 성능을 보임.
    • ChatGPT와 유사한 성능을 달성, GPT-4에 근접한 결과를 기록.
    • 다중 단계 작업 및 복잡한 지시에 대해 높은 패스율과 우승률을 달성.
  • DFSDT 알고리즘의 성과:
    • 기존 ReACT 대비 패스율이 +20% 이상 향상됨.
    • 복잡한 작업에서 성공률이 더 높아짐.
    • 실패한 경로에서 효율적으로 되돌아가 다른 경로를 탐색함으로써 오류 전파를 방지.

1.2 일반화 성능

  • Unseen API 및 도메인:
    • ToolLLaMA는 학습되지 않은 API에서도 강력한 일반화 능력을 보임.
    • APIBench 실험에서, 기존 모델 대비 우수한 성능을 보여줌.
    • 특히, 새로운 API 설명만으로도 모델이 작업을 수행할 수 있는 유연성을 입증.

1.3 효율성과 확장성

  • API 검색기를 통해 적절한 API를 자동 추천함으로써 작업 정확도와 효율성이 향상됨.
  • ToolBench 데이터셋은 ChatGPT 기반 자동화 프로세스를 통해 쉽게 확장 가능.

2. 결론 (Conclusions)

2.1 연구의 주요 공헌

  1. ToolBench 데이터셋:
    • 16,000개 이상의 실제 API와 다중 도구 및 다단계 작업 시나리오를 포함한 대규모 데이터셋.
    • LLM이 도구 사용 능력을 학습하고 일반화하는 데 필요한 고품질 데이터를 제공.
  2. DFSDT 알고리즘:
    • 기존 ReACT 방식의 한계를 극복한 깊이 우선 탐색 기반 의사결정 트리.
    • 복잡한 문제에서 높은 성공률과 효율성을 입증.
  3. ToolLLaMA 모델:
    • 다양한 지시와 작업을 처리할 수 있는 강력한 오픈소스 모델.
    • 복잡한 작업 시나리오에서도 기존 모델을 능가하며, 새로운 도구에 대한 적응 능력을 입증.

2.2 연구의 의의

ToolLLM은 오픈소스 LLM이 복잡한 작업을 처리할 수 있는 도구 사용 능력을 크게 확장시켰습니다. 이로써 모델이 실질적으로 응용될 수 있는 새로운 가능성을 제시하며, 도구 학습 및 지시 튜닝 연구의 중요한 발전 방향을 제시합니다.


3. 마무리 (Final Remarks)

3.1 한계점

  • 모델 성능이 GPT-4와 같은 최첨단 모델에 비해 일부 작업에서 약간 부족.
  • ToolBench 데이터셋은 높은 품질을 유지하고 있으나, 더 많은 도메인 확장이 필요.

3.2 미래 연구 방향

  1. ToolBench 확장:
    • 추가적인 도구와 도메인을 포함하여 데이터셋의 다양성을 증대.
  2. 평가 메커니즘 개선:
    • ToolEval의 평가 기준을 정교화하여 더 공정하고 신뢰할 수 있는 도구 사용 평가 체계 개발.
  3. 복잡한 작업 처리 능력 강화:
    • 다중 단계 작업을 처리할 수 있는 추론 및 계획 능력의 추가 강화.

3.3 최종 비전

ToolLLM은 LLM과 외부 도구를 결합하여 복잡한 문제를 해결할 수 있는 새로운 패러다임을 열었습니다. 이 연구는 오픈소스 LLM을 더욱 강력하고 실용적인 도구로 발전시키는 중요한 기반이 되며, AI 응용 기술의 실질적 확장에 기여할 것입니다.

 

DFSDT(Depth-First Search-based Decision Tree) 방식의 구현

DFSDT는 ToolBench에서 복잡한 지시문을 해결하기 위해 설계된 깊이 우선 탐색 기반의 의사결정 트리 알고리즘입니다. 이는 기존의 ReACT 방식의 한계를 극복하고, 다중 단계 작업과 오류 회복을 가능하게 하여 성공적인 문제 해결 경로를 탐색할 수 있도록 구현되었습니다. 논문을 기반으로 DFSDT의 구현 과정을 단계별로 자세히 설명하겠습니다.


1. DFSDT의 핵심 목표

  • 여러 API 호출 경로 중에서 최적의 해결 경로를 탐색.
  • 오류가 발생하더라도 백트래킹(Backtracking)을 통해 대체 경로를 시도.
  • 모든 가능한 해결 경로를 평가하여 최적의 결과를 도출.

2. DFSDT의 구성 요소

DFSDT는 다음과 같은 요소로 구성됩니다:

  1. 노드(Node):
    • 각 노드는 특정 API 호출과 그 결과(응답 또는 오류)를 나타냅니다.
    • API 호출의 입력 매개변수와 결과 데이터를 포함.
  2. 트리(Tree):
    • 트리는 지시문을 해결하기 위한 가능한 모든 경로를 나타냅니다.
    • 각 경로는 노드들의 연결로 구성되며, API 호출의 순서와 결과를 추적.
  3. 루트(Root):
    • 트리의 시작점으로, 초기 지시문에서 출발.
  4. 리프(Leaf):
    • 트리의 끝점으로, 성공(Success) 또는 실패(Failure) 상태로 종료.

3. DFSDT의 알고리즘 동작 과정

단계 1: 초기화

  • 주어진 지시문과 관련된 API 목록을 검색(API Retriever 활용).
  • 초기 상태(루트 노드)를 생성하고 트리 탐색을 시작.

단계 2: 트리 확장

  • 각 노드에서 가능한 모든 API를 호출하여 하위 노드를 생성.
  • API 호출 결과:
    1. 정상 응답 (Normal):
      • API 호출이 성공적으로 수행되면, 응답 데이터를 기반으로 다음 API 호출을 준비.
      • 새로운 노드를 생성하여 탐색 경로를 확장.
    2. 오류 응답 (Error):
      • 호출 실패 시, 백트래킹으로 이전 노드로 돌아가 다른 경로를 시도.

단계 3: 깊이 우선 탐색

  • DFS(Depth-First Search) 방식을 사용하여 가능한 경로를 끝까지 탐색.
  • 특정 경로가 실패할 경우, 백트래킹하여 다른 경로를 탐색.

단계 4: 경로 평가 및 선택

  • 모든 탐색이 완료되면, 성공적으로 작업을 해결한 경로 중 최적의 경로를 선택.
  • 평가 기준:
    • 최종 결과의 정확성.
    • API 호출 횟수(비용).
    • 오류 최소화.

단계 5: 종료 조건

  • 성공(Success):
    • 적절한 API 호출 순서를 찾아 최종 결과를 반환.
  • 실패(Failure):
    • 가능한 모든 경로를 시도했으나 문제 해결이 불가능한 경우.

4. DFSDT 구현의 특징

4.1 백트래킹 (Backtracking)

  • 오류 발생 시 다른 경로를 탐색하기 위해 이전 노드로 되돌아감.
  • ReACT와 달리 오류가 전파되지 않으며, 다양한 경로 탐색 가능.

4.2 다중 경로 탐색

  • 단일 경로만 탐색하는 ReACT와 달리, DFSDT는 가능한 모든 경로를 생성하고 평가.
  • 복잡한 다중 단계 작업에서도 높은 성공률을 보장.

4.3 동적 의사결정

  • 특정 경로의 중간 결과를 기반으로 다음 API를 동적으로 선택.
  • 각 API 호출의 결과에 따라 의사결정 트리가 확장.

5. 구현 예시

지시문:

"Hailee Steinfeld의 최근 영화를 확인하고, 그녀에게 적절한 선물을 추천해줘."

DFSDT 작동 흐름:

  1. 루트 노드 생성:
    • 초기 지시문에서 시작.
    • 가능한 API: get_extra_character_details, suggest_gift.
  2. 첫 번째 API 호출:
    • get_extra_character_details(name="Hailee Steinfeld") 호출.
    • 정상 응답: { "age": 28, "recent_movies": ["Spider-Man"] }.
    • 새로운 노드 생성 후, 트리 확장.
  3. 두 번째 API 호출:
    • suggest_gift(movie="Spider-Man") 호출.
    • 정상 응답: { "suggestion": "Spider-Woman mask" }.
    • 최종 결과 도출 → 성공.
  4. 오류 처리:
    • 특정 API 호출 실패 시, 다른 매개변수로 다시 호출하거나 대체 API를 시도.
    • 예: suggest_gift 호출 시 서버 오류 발생 → 백트래킹하여 다른 도구(API) 시도.

6. DFSDT와 기존 방식(ReACT)의 비교

특징 DFSDT ReACT
오류 회복력 백트래킹 가능 오류 발생 시 경로 종료
탐색 경로 모든 가능한 경로 탐색 단일 경로 탐색
복잡한 작업 처리 다중 단계 및 다중 도구 작업 가능 단순 작업에 적합
성공률 높은 성공률 오류 전파로 성공률 낮음

7. 결론

DFSDT는 기존 ReACT 방식의 한계를 극복하여 복잡한 작업에서도 높은 성공률과 오류 회복력을 보장합니다. 이를 통해 ToolBench와 ToolLLaMA는 다중 단계 작업과 다중 도구 활용 시 강력한 문제 해결 능력을 제공합니다. DFSDT의 체계적인 탐색 방식은 API 활용에 있어 더욱 신뢰할 수 있는 추론 결과를 도출합니다.

 

정리하신 내용은 핵심을 잘 담고 있지만, 조금 더 구체적인 내용을 보완하거나 약간의 수정이 필요한 부분이 있습니다. 아래에서 수정 및 보완된 내용을 제안드립니다:


수정 및 보완된 내용

  1. Instruction Dataset 생성
    • 원문: "API를 정리하여 GPT를 이용해 Instruction data set을 만들었습니다."
    • 수정:
      • "RapidAPI에서 16,464개의 실제 API를 수집하고, GPT를 이용해 단일 및 다중 도구 작업을 포괄하는 ToolBench Instruction Dataset을 생성하였습니다."
    • 이유: RapidAPI를 기반으로 데이터셋을 구성하고, 단일 도구 및 다중 도구 작업 시나리오를 포함했다는 점을 강조할 필요가 있습니다.
  2. 실제 API 활용
    • 원문: "그리하여 실제 API를 활용하여 작업을 진행할 수 있게 되었습니다."
    • 수정:
      • "ToolBench 데이터셋과 ToolLLaMA 모델은 실제 API 호출과 응답 데이터를 학습함으로써 LLM이 외부 도구를 활용해 작업을 처리할 수 있도록 설계되었습니다."
    • 이유: "실제 API를 활용"한다는 점은 명확하지만, 데이터셋과 모델이 어떻게 실제 API 호출과 연계되어 있는지 구체적으로 명시하는 것이 좋습니다.
  3. DFSDT 방식
    • 원문: "ReACT의 단일 진행방식과는 다른 방식인 DFSDT 방식을 사용하여 진행하다가 막히면 되돌아가 다른 길을 찾습니다.(DFS)"
    • 수정:
      • "DFSDT(Depth-First Search-based Decision Tree) 방식은 ReACT의 단일 진행방식과 달리, **깊이 우선 탐색(DFS)**을 통해 문제를 해결합니다. 작업이 실패하면 이전 상태로 되돌아가 다른 경로를 탐색하며, ReACT 방식의 한계였던 오류 전파 문제를 효과적으로 해결합니다."
    • 이유: DFSDT의 핵심인 "백트래킹"과 오류 회복 능력을 구체적으로 설명하여 차별점을 명확히 합니다.
  4. 성공률 비교
    • 원문: "ReACT방식보다 훨씬 높은 성공률을 보입니다."
    • 수정:
      • "DFSDT는 ReACT 방식 대비 평균적으로 20% 이상 높은 성공률을 기록하며, 특히 복잡한 다중 단계 작업에서 더 두드러진 성능을 보입니다."
    • 이유: "훨씬 높은 성공률"이라는 표현보다, 논문에서 제시된 성공률 데이터를 구체적으로 언급하여 비교를 명확히 합니다.
  5. DFSDT 구현에 대한 언급
    • 원문: "깊게 읽어 본 것은 아니라 DFSDT를 어떻게 구현한 지는 모르겠지만..."
    • 수정:
      • "DFSDT는 의사결정 트리를 기반으로 API 호출 경로를 탐색하며, 각 호출 결과(정상 또는 오류)에 따라 동적으로 트리를 확장하거나 백트래킹합니다. 이를 통해 모든 가능한 경로를 평가하여 최적의 해결 경로를 탐색합니다."
    • 이유: DFSDT의 기본 원리와 구현 과정을 간략히 추가 설명하여 알고리즘의 동작 방식을 이해하기 쉽게 보완합니다.
  6. LLM Agent와의 연관성
    • 원문: "이런 방식이 결국 LLM Agent를 위한 초석이라 알아두면 좋을 내용일 것 같네요."
    • 수정:
      • "이 방식은 LLM이 외부 도구를 효과적으로 사용하도록 설계된 것으로, LLM Agent의 기반 기술로 매우 중요한 역할을 합니다. 특히, API를 활용한 작업 자동화와 지능형 에이전트 개발에 초석이 될 수 있는 접근법입니다."
    • 이유: LLM Agent와의 연관성을 명확히 설명하며 기술적 중요성을 강조합니다.

보완된 최종 정리

이 논문은 RapidAPI에서 16,464개의 실제 API를 수집하고, 이를 기반으로 GPT를 활용해 ToolBench라는 Instruction Dataset을 생성했습니다. 이 데이터셋은 단일 및 다중 도구 작업 시나리오를 포함하며, 실제 API 호출과 응답 데이터를 학습하도록 설계되었습니다.

DFSDT(Depth-First Search-based Decision Tree)는 ReACT의 단일 경로 탐색 방식을 개선하여, 깊이 우선 탐색(DFS)과 백트래킹을 통해 모든 가능한 경로를 평가하고 최적의 해결 경로를 찾습니다. 작업이 실패하면 이전 상태로 돌아가 다른 경로를 탐색하며, 오류 전파 문제를 해결하여 ReACT 방식 대비 20% 이상 높은 성공률을 기록합니다.

이 방식은 LLM이 외부 도구를 활용한 작업 자동화와 복잡한 문제 해결 능력을 갖추도록 지원하며, LLM Agent를 설계하기 위한 기반 기술로 주목할 만합니다.

이 보완된 내용은 논문의 핵심을 구체적으로 설명하면서도, 중요한 점을 간결히 정리하여 보다 명확하게 전달합니다.

728x90