TF
Toolformer: LLMs Teach Themselves Tools
Paper 07 (P7) • NeurIPS 2023 Meta AI Research & Universitat Pompeu Fabra Self-Supervised Tool Learning

Toolformer: Các Mô Hình Ngôn Ngữ Có Thể Tự Dạy Mình Cách Sử Dụng Công Cụ

"Toolformer: Language Models Can Teach Themselves to Use Tools" — Bước đột phá thiết lập mô thức tự giám sát hoàn toàn (Self-Supervised API Learning): mô hình tự quyết định gọi công cụ nào, khi nào gọi, truyền tham số gì và tích hợp kết quả ra sao dựa trên độ suy giảm hàm mất mát ($L_i^- - L_i^+ \ge \tau_f$). Giúp GPT-J 6.7B đánh bại cả GPT-3 175B trên bài toán số học mà không cần bất kỳ nhãn gán thủ công nào.

Tác giả: Timo Schick, Jane Dwivedi-Yu, Roberto Dessì, Maria Lomeli, Luke Zettlemoyer, Nicola Cancedda, Roberta Raileanu, Thomas Scialom
Meta AI Research & Universitat Pompeu Fabra (Barcelona)
Quy Mô Huấn Luyện
GPT-J 6.7B
Vượt trội GPT-3 175B (+26x quy mô)
Nhãn Gán Thủ Công
0 Annotations
Tự giám sát 100% từ tập CCNet
Suy Luận Số Học (Math)
37.9% vs 14.1%
Gấp gần 3x GPT-3 nhờ Calculator
Bảo Toàn Ngôn Ngữ Cốt Lõi
PPL 12.35
Không bị catastrophic forgetting

Tóm Tắt Học Thuật (Academic Abstract)

Bản dịch học thuật tiếng Việt đối chiếu nguyên bản tiếng Anh

Abstract
Bản Dịch Tiếng Việt

Các mô hình ngôn ngữ (LMs) thể hiện năng lực giải quyết tác vụ mới đáng kinh ngạc chỉ từ vài ví dụ (few-shot) hoặc chỉ dẫn văn bản khi được tăng thang đo quy mô tham số. Tuy nhiên, một cách nghịch lý, chúng lại gặp khó khăn nghiêm trọng với các chức năng cơ bản như tính toán số học chính xác hoặc tra cứu sự thật thời gian thực — những tác vụ mà các công cụ nhỏ gọn, chuyên biệt lại vượt trội hoàn toàn.

Bài báo chứng minh rằng các mô hình ngôn ngữ có thể tự dạy mình cách sử dụng các công cụ bên ngoài thông qua các giao diện lập trình ứng dụng đơn giản (APIs). Chúng tôi giới thiệu Toolformer, mô hình được huấn luyện để tự chủ quyết định: (1) Gọi API nào; (2) Khi nào nên gọi; (3) Truyền vào những đối số nào; và (4) Kết hợp kết quả trả về ra sao để tối ưu hóa việc dự đoán token tiếp theo.

Toàn bộ quy trình được thực hiện theo cơ chế tự giám sát hoàn toàn (self-supervised), chỉ cần một vài ví dụ minh họa ban đầu cho mỗi API mà không cần con người gán nhãn thủ công. Mô hình tích hợp 5 công cụ: máy tính, hỏi đáp, tìm kiếm Wikipedia, dịch máy và lịch thời gian. Toolformer đạt hiệu năng zero-shot vượt trội, đánh bại cả GPT-3 175B trên nhiều bài toán số học và tra cứu, đồng thời không hề làm suy giảm năng lực ngôn ngữ cốt lõi.

English Original Abstract
arXiv:2302.04761v1

"Language models (LMs) exhibit remarkable abilities to solve new tasks from just a few examples or textual instructions, especially at scale. Paradoxically, they struggle with basic functionality, such as arithmetic or factual lookup, where much simpler and smaller models excel. In this paper, we show that LMs can teach themselves to use external tools via simple APIs and achieve the best of both worlds. We introduce Toolformer, a model trained to decide which APIs to call, when to call them, what arguments to pass, and how to best incorporate the results into future token prediction. This is done in a self-supervised way, requiring nothing more than a handful of demonstrations for each API. We incorporate a range of tools, including a calculator, a Q&A system, a search engine, a translation system, and a calendar. Toolformer achieves substantially stronger zero-shot results across a variety of downstream tasks, often outperforming much larger models like GPT-3 (175B), without sacrificing its core language modeling abilities."

Từ khóa: Language Models Toolformer Tool Use Self-Supervised Learning API Calls Zero-Shot Augmented LMs
Cú Pháp Tuyến Tính Hóa Lời Gọi API Trong Toolformer Linearized API Syntax

"Out of 1400 participants, 400 (or [Calculator(400 / 1400) → 0.29] 29%) passed the test with honors."

[Calculator(...): Tên API và đối số truyền vào
→: Token ngắt chuyển giao quyền thực thi công cụ
0.29]: Kết quả trả về và token đóng API

1. Động Lực Nghiên Cứu & 4 Điểm Yếu Cố Hữu Của LLM Thuần Túy

Tại sao tăng quy mô tham số (scaling parameters) không thể giải quyết triệt để các bài toán thực tế?

1

Không Thể Truy Cập Tri Thức Thời Gian Thực

Trọng số mô hình bị đóng băng (frozen weights) ngay tại thời điểm hoàn tất tiền huấn luyện. Mô hình hoàn toàn "mù" trước các sự kiện thế giới mới, thông tin chứng khoán, chính sách thay đổi hoặc tài liệu nội bộ mới ban hành hôm qua.

2

Xu Hướng Ảo Giác & Bịa Đặt Sự Thật (Hallucination)

Đối với các thực thể đuôi dài (long-tail entities), sự kiện hiếm hoặc công thức dược lý/hóa học chính xác, LLM thường tự tin bịa đặt thông tin sai lệch nhưng diễn đạt rất trôi chảy, gây rủi ro khôn lường trong y tế và tài chính.

3

Kém Cỏi Trong Tính Toán Số Học Chính Xác

Dù sở hữu hàng trăm tỷ tham số, LLM chỉ dự đoán token theo phân phối xác suất chứ không thực sự thực thi các phép toán. Ngay cả GPT-3 175B vẫn tính sai phép nhân 4 chữ số, tính sai phần trăm và phân chia hóa đơn nhà hàng.

4

Thiếu Nhận Thức Về Thời Gian (Temporal Blindness)

Mô hình không có xung nhịp đồng hồ nội tại. Khi người dùng hỏi: "Hôm nay là ngày mấy?", "Nhà hàng có bàn trống tối nay không?", LLM thuần túy không thể xác định điểm mốc tham chiếu nếu không có công cụ bên ngoài hỗ trợ.

Phương Pháp Hiện Nay Cơ Chế Thực Hiện Chi Phí & Tài Nguyên Khuyết Tật Lớn Nhất
Gán Nhãn Thủ Công (Human Annotation) Thuê chuyên gia con người chèn lời gọi API vào từng câu Cực kỳ đắt đỏ, không thể scale Không mở rộng được khi có API mới; thiên lệch con người
Kỹ Thuật Nhắc Lệnh Thuần Túy (Prompting Only) Đưa vài mẫu (Few-shot) vào Prompt trước mỗi câu hỏi Tốn context window, chi phí token cao Đòi hỏi LLM khổng lồ (>100B params); rất nhạy cảm với format
Học Tăng Cường (RLHF / PPO) Mô hình thưởng phạt dựa trên phản hồi hành động Huấn luyện bất ổn định, tốn GPU Reward hacking; khó hội tụ với không gian API phân tán
Toolformer (Đề Xuất) Tự giám sát dựa trên độ suy giảm Loss ($\Delta L \ge \tau_f$) Chi Phí Zero Annotation Mô hình 6.7B vượt trội mô hình 175B!
Ý Tưởng Trọng Tâm Đề Xuất

Mô Thức Đột Phá Của Toolformer

Để vượt qua các rào cản này, chúng tôi đề xuất Toolformer. Ý tưởng trọng tâm là: tận dụng chính khả năng tạo sinh vài ví dụ (in-context few-shot learning) của LLM để tự động tạo ra một tập dữ liệu gán nhãn lời gọi API khổng lồ từ kho văn bản phi cấu trúc, sau đó dùng một hàm mất mát tự giám sát (self-supervised loss) để lọc ra những lời gọi API thực sự hữu ích, và cuối cùng tinh chỉnh (fine-tune) chính mô hình đó.

1. Tự Động Hóa Hoàn Toàn (Fully Self-Supervised)

Không cần bất kỳ sự can thiệp gán nhãn thủ công nào từ con người. Mô hình tự sinh lời gọi ứng viên, tự thực thi và tự chấm điểm đánh giá giá trị thông tin.

2. Bảo Toàn Năng Lực Tổng Quát

Quá trình huấn luyện không làm suy giảm khả năng mô hình hóa ngôn ngữ gốc. LLM vừa giữ trọn khả năng đối thoại, lập luận, vừa thành thạo kích hoạt công cụ khi cần.

3. Hiệu Quả Tính Toán Vượt Trội

Giúp mô hình có kích thước nhỏ gọn (6.7B tham số) đạt hiệu năng giải toán và tìm kiếm sự thật tương đương hoặc vượt trội cả các siêu mô hình 175B tham số như GPT-3.

2. Quy Trình 4 Bước Tự Giám Sát Của Toolformer (Chuẩn Hóa Theo Figure 2 Gốc)

Mô hình hóa chi tiết quy trình tự động biến kho ngữ liệu văn bản thô $\mathcal{C}$ thành tập dữ liệu tăng cường $\mathcal{C}^*$

Sơ Đồ Kiến Trúc Luồng Dữ Liệu Tự Động Hóa (Chuẩn Hóa Figure 2 - Schick et al., 2023)

Figure 2 Aligned
flowchart TD subgraph Phase1["GIAI ĐOẠN 1: LẤY MẪU ỨNG VIÊN (Sampling API Calls)"] direction TB A["Kho văn bản thô C: câu văn bản x = (x_1, ..., x_n)"] --> B["Ghép Prompt hướng dẫn P(x) cho từng API"] B --> C{"Tính xác suất mở API tại từng vị trí i:
p_i = p_M(⟨API⟩ | P(x), x_1:i-1)"} C -- "p_i > τ_s (Top-k vị trí)" --> D["Lấy mẫu m ứng viên lời gọi API c_i = (a_c, i_c):
e(c_i) = ⟨API⟩ a_c(i_c) ⟨/API⟩"] C -- "p_i ≤ τ_s" --> E["Bỏ qua vị trí i (Không cần công cụ)"] end subgraph Phase2["GIAI ĐOẠN 2: THỰC THI CÔNG CỤ (Executing API Calls)"] direction TB D --> F["Thực thi API thực tế a_c với tham số i_c
(Calculator, Atlas QA, BM25 Search, NLLB-200, Calendar)"] F --> G["Thu nhận kết quả chuỗi văn bản r_i
Tạo chuỗi có đáp án: e(c_i, r_i) = ⟨API⟩ a_c(i_c) → r_i ⟨/API⟩"] end subgraph Phase3["GIAI ĐOẠN 3: BỘ LỌC ĐỘ SUY GIẢM LOSS (Filtering API Calls)"] direction TB G --> H["Tính Loss L_i^+ khi CÓ API và CÓ kết quả r_i:
L_i^+ = L_i(e(c_i, r_i))"] H --> I["Tính Loss cơ sở L_i^- khi KHÔNG CÓ kết quả:
L_i^- = min( L_i(ε), L_i(e(c_i, ε)) )"] I --> J{"Điều kiện lọc tự giám sát:
L_i^- - L_i^+ ≥ τ_f ?"} J -- "Thỏa mãn (ΔL ≥ τ_f)" --> K["GIỮ LẠI lời gọi c_i (API thực sự giảm sai số)"] J -- "Không thỏa mãn" --> L["LOẠI BỎ c_i (API thừa hoặc vô ích)"] end subgraph Phase4["GIAI ĐOẠN 4: TINH CHỈNH MÔ HÌNH (Model Finetuning)"] direction TB K --> M["Chèn e(c_i) [KHÔNG CHỨA kết quả r_i] vào văn bản x:
x* = x_1:i-1 ∁ e(c_i) ∁ x_i:n → Tạo tập huấn luyện C*"] M --> N["Fine-tune mô hình ngôn ngữ M trên tập C*
với hàm mất mát tiêu chuẩn L_LM"] N --> O["Suy luận Thời Gian Thực (Inference):
Sinh token → Gặp token → thì ngắt → gọi API ngoài lấy r → tiếp tục giải mã"] end Phase1 --> Phase2 Phase2 --> Phase3 Phase3 --> Phase4 classDef panel fill:#f8fafc,stroke:#cbd5e1,stroke-width:1.5px,color:#0f172a; classDef decision fill:#fef3c7,stroke:#f59e0b,stroke-width:1.5px,color:#78350f; classDef highlight fill:#ede9fe,stroke:#6366f1,stroke-width:2px,color:#312e81; classDef success fill:#dcfce7,stroke:#16a34a,stroke-width:2px,color:#14532d; class Phase1,Phase2,Phase3,Phase4 panel; class C,J decision; class D,G,M highlight; class K,N success;

Bảng Chú Giải Toàn Diện Các Biến Số & Ký Hiệu Chuẩn Của Bài Báo (Notation Glossary)

Ký Hiệu Tên Gọi Học Thuật Bản Chất Toán Học & Ý Nghĩa Trực Quan Ví Dụ Cụ Thể Trong Bài Báo
$\mathcal{C}$ Training Corpus Kho ngữ liệu văn bản thô gốc không có gán nhãn, được dùng làm nguồn để khai phá lời gọi API. Một tập con trích xuất từ CCNet
$x = (x_1, \dots, x_n)$ Input Text Sequence Một câu hoặc đoạn văn bản gồm chuỗi $n$ token liên tiếp trích từ tập $\mathcal{C}$. "Out of 1400 participants, 400 passed..."
$P(x)$ Prompt / Demonstration Câu nhắc mồi cung cấp định nghĩa cú pháp và một vài ví dụ minh họa (few-shot) cách dùng API. Đoạn text mô tả cú pháp gọi máy tính và 3 ví dụ mẫu
$p_i$ API Initiation Probability Xác suất mô hình muốn sinh token mở đầu $\langle\text{API}\rangle$ tại vị trí token thứ $i$: $p_i = p_M(\langle\text{API}\rangle \mid P(x), x_{1:i-1})$. Nếu $p_i > \tau_s$, vị trí $i$ là ứng viên tiềm năng để gọi công cụ
$\tau_s, k, m$ Sampling Hyperparameters $\tau_s$: Ngưỡng xác suất lọc vị trí ban đầu.
$k$: Số lượng vị trí tối đa được chọn trong một văn bản.
$m$: Số lượng lời gọi ứng viên được giải mã tại mỗi vị trí.
$\tau_s$ tùy chỉnh, $k \le 16$, $m \le 5$
$c = (a_c, i_c)$ API Call Tuple Bộ đôi biểu diễn lời gọi API gồm: tên công cụ $a_c$ và đối số chuỗi ký tự truyền vào $i_c$. `c = (Calculator, "400 / 1400")`
$e(c)$ Linearized API Call Chuỗi văn bản tuyến tính hóa biểu diễn lời gọi khi chưa có kết quả: $\langle\text{API}\rangle a_c(i_c) \langle/\text{API}\rangle$. `[Calculator(400 / 1400)]`
$r$ API Execution Result Chuỗi văn bản kết quả trả về khi công cụ thực thi xong lệnh gọi. `r = "0.29"` (hoặc `"Canberra"`)
$e(c, r)$ Annotated API Call Chuỗi văn bản tuyến tính hóa chứa cả lời gọi và kết quả: $\langle\text{API}\rangle a_c(i_c) \to r \langle/\text{API}\rangle$. `[Calculator(400 / 1400) -> 0.29]`
$w_t, \tilde{w}_t$ Distance Decay Weights Hàm trọng số suy giảm khoảng cách: $\tilde{w}_t = \max(0, 1 - 0.2t)$. Đảm bảo hàm mất mát chỉ chấm điểm trong 5 token kế tiếp ($t \in [0, 4]$). $\tilde{w}_0=1.0, \tilde{w}_1=0.8, \dots, \tilde{w}_{\ge 5}=0$
$L_i^+, L_i^-$ Conditional Loss Comparison $L_i^+$: Sai số khi CÓ công cụ và CÓ kết quả $r$.
$L_i^-$: Sai số nhỏ nhất khi KHÔNG CÓ kết quả (hoặc không gọi công cụ $\varepsilon$).
So sánh xem có công cụ thì mô hình có đoán dễ hơn không
$\tau_f$ Filtering Threshold Ngưỡng suy giảm mất mát tối thiểu: Lời gọi $c_i$ chỉ được giữ lại nếu $L_i^- - L_i^+ \ge \tau_f$. Được tinh chỉnh thực nghiệm để loại bỏ các lời gọi API vô ích
$\mathcal{C}^*$ Augmented Dataset Tập dữ liệu mới gồm các câu văn bản gốc $x$ đã được chèn $e(c_i)$ (chỉ cú pháp gọi, không chèn $r$). Dùng để fine-tune mô hình $M$ học cách và thời điểm gọi tool
1 Bước 1: Lấy Mẫu Ứng Viên Gọi API (Sampling)

Duyệt qua văn bản $x$. Với mỗi vị trí token $i$, mô hình tính xác suất chèn token mở đầu: $p_i = p_M(\langle\text{API}\rangle \mid P(x), x_{1:i-1})$. Chọn tối đa $k$ vị trí có $p_i > \tau_s$. Tại mỗi vị trí được chọn, lấy mẫu tối đa $m$ lời gọi ứng viên $c_i = (a_c, i_c)$ bằng cách giải mã từ $M$ với tiền tố $[P(x), x_{1:i-1}, \langle\text{API}\rangle]$ cho đến khi gặp token đóng $\langle/\text{API}\rangle$.

2 Bước 2: Thực Thi Lời Gọi Công Cụ (Execution)

Thực thi toàn bộ các lệnh gọi API hợp lệ được sinh ra từ Bước 1 bằng cách gửi đối số $i_c$ tới các dịch vụ thực tế: gửi biểu thức số học tới bộ tính Python (Calculator), gửi truy vấn tới chỉ mục BM25 (WikiSearch), hoặc gọi mô hình NLLB-200. Thu được chuỗi văn bản kết quả $r_i$ và ghép thành chuỗi $e(c_i, r_i) = \langle\text{API}\rangle a_c(i_c) \to r_i \langle/\text{API}\rangle$.

3 Bước 3: Lọc Tự Giám Sát Bằng Hàm Mất Mát (Filtering)

Đo lường mức độ hữu ích thực sự: Lời gọi API chỉ được giữ lại nếu kết quả $r_i$ giúp mô hình dễ dàng đoán các từ tiếp theo hơn so với khi không có API, tức là làm giảm hàm mất mát tối thiểu một ngưỡng $\tau_f$: $$L_i^- - L_i^+ \ge \tau_f$$ Nếu API không giúp giảm lỗi hoặc đưa ra kết quả sai lệch khiến $L_i^+$ tăng cao, lời gọi sẽ bị loại bỏ ngay lập tức.

4 Bước 4: Tinh Chỉnh Mô Hình & Học Cách Tự Kích Hoạt (Finetuning)

Chèn các lời gọi API vượt qua bộ lọc vào tập văn bản gốc để tạo tập dữ liệu tăng cường $\mathcal{C}^*$. Lưu ý then chốt: chỉ chèn $e(c_i) = \langle\text{API}\rangle a_c(i_c) \langle/\text{API}\rangle$ (chưa chứa kết quả $r_i$) vào văn bản. Bằng cách này, mô hình được huấn luyện bằng chuẩn đoán từ tự hồi quy chuẩn để tự quyết định khi nào và công cụ nào cần gọi.

Thời Gian Thực

Cơ Chế Suy Luận Thời Gian Thực (Inference Mechanism)

Khi tạo văn bản trong thời gian thực, mô hình sinh token bình thường. Ngay khi mô hình sinh ra token ->, quá trình sinh văn bản được tạm ngắt để thực thi quy trình 4 bước:

1 Bóc Tách Lời Gọi

Hệ thống bóc tách tên API $a_c$ và chuỗi tham số đầu vào $i_c$ vừa được mô hình sinh ra trước ký tự ->.

2 Gọi Công Cụ Ngoại

Gọi công cụ bên ngoài (Calculator, WikiSearch, Calendar...) để lấy kết quả thực thi $r$.

3 Chèn Kết Quả Vào Ngữ Cảnh

Chèn kết quả $r$ cùng token đóng ] ($\langle/\text{API}\rangle$) vào ngữ cảnh.

4 Tiếp Tục Sinh Văn Bản

Tiếp tục quá trình sinh văn bản bình thường với câu trả lời chính xác, đáng tin cậy.

3. Khung Toán Học Chi Tiết & Diễn Giải Trực Quan Dễ Hiểu

Giải phẫu toán học: Biểu diễn API, hàm mất mát có trọng số và tiêu chuẩn lọc tự giám sát $\Delta L \ge \tau_f$

1. Biểu Diễn Lệnh Gọi API Ký hiệu Bộ Đôi và Tuyến Tính Hóa Cú Pháp (Linearized API Syntax)

Mỗi lệnh gọi API được định nghĩa dưới dạng một bộ đôi tham số:

$$c = (a_c, i_c)$$

Trong đó $a_c$ là tên của công cụ (ví dụ: `Calculator`, `WikiSearch`) và $i_c$ là chuỗi đối số truyền vào (ví dụ: `400 / 1400`, `"Brown Act"`). Khi biểu diễn trong chuỗi token của mô hình ngôn ngữ:

$$e(c) = \langle\text{API}\rangle \, a_c(i_c) \, \langle/\text{API}\rangle, \qquad e(c, r) = \langle\text{API}\rangle \, a_c(i_c) \to r \, \langle/\text{API}\rangle$$
💡 Diễn giải trực quan: Thay vì tạo thêm các token đặc biệt vào bộ từ vựng (vocabulary) của mô hình vốn rất tốn kém và làm xáo trộn embedding, Toolformer khéo léo dùng chính các ký tự sẵn có: token `[` đóng vai trò $\langle\text{API}\rangle$ (`<API>`), `->` đóng vai trò chuyển giao sang công cụ ($\to$), và `]` đóng vai trò $\langle/\text{API}\rangle$ (`</API>`). Điều này giúp mô hình tái sử dụng 100% bộ từ vựng nguyên bản của GPT-J!

2. Hàm Mất Mát Có Trọng Số Weighted Cross-Entropy Loss & Hàm Trọng Số Suy Giảm Khoảng Cách

Một công cụ khi được gọi ra thường chỉ cung cấp thông tin hữu ích cho một vài token nằm ngay sau nó (ví dụ: số 29% hay tên thủ đô Canberra), chứ không ảnh hưởng tới toàn bộ 1000 từ phía sau. Do đó, tác giả đưa ra hàm mất mát có trọng số suy giảm theo khoảng cách:

$$L_i(z) = -\sum_{j=i}^n w_{j-i} \cdot \log p_M(x_j \mid z, x_{1:j-1})$$

Trong đó $w_t$ là trọng số chuẩn hóa của token cách vị trí gọi $t$ bước:

$$w_t = \frac{\tilde{w}_t}{\sum_{s \in \mathbb{N}} \tilde{w}_s} \quad \text{với} \quad \tilde{w}_t = \max(0, 1 - 0.2 \cdot t)$$
💡 Diễn giải trực quan hàm trọng số: Hãy nhìn vào công thức $\tilde{w}_t = \max(0, 1 - 0.2 \cdot t)$:
  • Tại token ngay sau lời gọi ($t = 0$): trọng số $\tilde{w}_0 = 1 - 0 = 1.0$ (quan trọng nhất!).
  • Tại token thứ 1 ($t = 1$): trọng số $\tilde{w}_1 = 0.8$.
  • Tại token thứ 2 ($t = 2$): trọng số $\tilde{w}_2 = 0.6$.
  • Tại token thứ 3 ($t = 3$): trọng số $\tilde{w}_3 = 0.4$.
  • Tại token thứ 4 ($t = 4$): trọng số $\tilde{w}_4 = 0.2$.
  • Từ token thứ 5 trở đi ($t \ge 5$): trọng số $\tilde{w}_t = 0$ (hoàn toàn không tính vào Loss!).
Ý nghĩa: Hàm mất mát chỉ tập trung chấm điểm xem công cụ có giúp đoán đúng 5 từ then chốt kế tiếp hay không. Điều này ngăn chặn việc mô hình bị phạt oan bởi các từ xa xôi không liên quan đến kết quả công cụ.

3. Tiêu Chuẩn Lọc Tự Giám Sát Quy Tắc Độ Suy Giảm Mất Mát (Loss Reduction Threshold)

Để biết một lời gọi API là "vàng ròng" hay "rác thải", Toolformer so sánh hai kịch bản mất mát tại vị trí $i$:

Mất Mát Khi CÓ HỖ TRỢ CỦA API ($L_i^+$):
$$L_i^+ = L_i\big(e(c_i, r_i)\big)$$

Mô hình được nhìn thấy cả lời gọi API và kết quả trả về $r_i$. Nếu kết quả đúng, mô hình sẽ cực kỳ dễ đoán các từ tiếp theo (Loss rất nhỏ).

Mất Mát Tối Thiểu Khi KHÔNG CÓ KẾT QUẢ ($L_i^-$):
$$L_i^- = \min \Big( L_i(\epsilon), \, L_i(e(c_i, \epsilon)) \Big)$$

Là giá trị nhỏ hơn giữa: (i) hoàn toàn không gọi API nào ($\epsilon$) và (ii) có gọi API nhưng API bị lỗi không trả về kết quả.

Điều Kiện Chấp Nhận Lời Gọi API Vào Tập Huấn Luyện: $$L_i^- - L_i^+ \ge \tau_f$$
💡 Ví dụ thực tế dễ hiểu nhất:
Giả sử câu văn là: "Trong số 1400 thí sinh, 400 người (chiếm 29%) đã thi đỗ."
  • Trường hợp A (Không dùng máy tính): Mô hình phải tự đoán xem con số tiếp theo sau dấu ngoặc là gì. Vì không biết tính nhẩm 400/1400, mô hình đoán mò (15%, 30%, 25%...). Xác suất đoán trúng số `29%` rất thấp → Mất mát $L_i^- = 4.8$.
  • Trường hợp B (Dùng máy tính): Mô hình gọi `Calculator(400/1400) -> 0.29`. Nhìn thấy số `0.29` ngay trước mắt, mô hình ngay lập tức biết token kế tiếp là `29%` với xác suất 99%! → Mất mát $L_i^+ = 0.3$.
  • Độ suy giảm Loss: $\Delta L = L_i^- - L_i^+ = 4.8 - 0.3 = 4.5 \gg \tau_f$ (giả sử $\tau_f = 1.0$).
  • Quyết định: Lời gọi API này cực kỳ xuất sắc → GIỮ LẠI ĐỂ HUẤN LUYỆN!
Ngược lại: Nếu ở câu "Hôm nay trời nhiều mây", mô hình tự nhiên gọi bậy `Calculator(1+1) -> 2`, kết quả số 2 hoàn toàn không giúp ích gì cho việc đoán chữ "nhiều mây", Loss $L_i^+$ thậm chí còn tệ hơn $L_i^-$ → Bộ lọc lập tức VỨT BỎ, không để làm bẩn dữ liệu huấn luyện.

4. Bộ 5 Công Cụ Được Tích Hợp Vào Toolformer

Mỗi công cụ đại diện cho một chiều kích tri thức mà mô hình ngôn ngữ truyền thống bất lực

Công Cụ (Tool) Động Cơ Nền Tảng (Engine) Mục Đích Khắc Phục Ví Dụ Đầu Vào (Input) Kết Quả Đầu Ra (Output)
Hỏi Đáp (QA) Atlas (Izacard 2022) Tra cứu các sự thật ngắn, thực thể bách khoa QA("Thủ đô của Úc là gì?") Canberra
Máy Tính (Calculator) Python Eval Arithmetic Số học chính xác: cộng, trừ, nhân, chia, làm tròn Calculator(27 + 4 * 2) 35
Tìm Kiếm (WikiSearch) BM25 Retrieval (Wikipedia dump) Truy xuất ngữ cảnh tài liệu mở dài WikiSearch("Brown Act") Đoạn tóm tắt về Đạo luật Brown...
Dịch Máy (MT) NLLB-200 (600M) + fastText Dịch từ vựng đa ngữ sang tiếng Anh chuẩn MT("merci beaucoup") thank you very much
Lịch Hệ Thống (Calendar) System Real-time Clock Cung cấp ngày tháng năm hiện tại (không nhận tham số) Calendar() Today is Friday, Sep 11, 2026

5. Thực Nghiệm & Đánh Giá Hiệu Năng Đột Phá

So sánh đối đầu với GPT-J 6.7B gốc, OPT 66B và mô hình khổng lồ GPT-3 Text-Davinci-003 (175B)

Suy Luận Số Học (Mathematical Reasoning Benchmarks - Độ chính xác %)

ASDiv • SVAMP • MAWPS
Mô Hình (Model) Quy Mô (Params) ASDiv (%) SVAMP (%) MAWPS (%) Trung Bình (Avg %)
GPT-J (Gốc) 6.7B 7.5 5.2 9.9 7.5
GPT-J + CC (Fine-tune CCNet thuần) 6.7B 8.2 5.0 9.3 7.5
Toolformer (Khóa API) 6.7B 14.7 8.1 18.4 13.7
Toolformer (Mở Đầy Đủ API) 6.7B 40.4 29.4 44.0 37.9%
OPT 66B 6.0 4.9 7.9 6.3
GPT-3 Text-Davinci-003 175B 16.8 10.6 15.0 14.1
🔥 Kết quả chấn động: Toolformer 6.7B đạt 37.9% trung bình trên toán học, vượt trội gấp 2.7 lần so với GPT-3 175B (chỉ đạt 14.1%) dù mô hình nhỏ hơn 26 lần! Trong 97.9% trường hợp, Toolformer tự chủ quyết định kích hoạt công cụ Calculator mà không cần bất kỳ gợi ý nào từ người dùng.

Tra Cứu Sự Thật LAMA Benchmark (Độ chính xác %)

Kiểm tra khả năng truy xuất sự thật với công cụ QA (Atlas)

Model Params SQuAD T-REx Trung Bình
GPT-J 6.7B 19.3 31.4 18.5
Toolformer 6.7B 33.8 53.5 32.8
OPT 66B 23.4 37.8 22.7
GPT-3 175B 37.5 53.2 34.2

Toolformer 6.7B (32.8%) vượt xa OPT 66B (22.7%) và tiệm cận ngang ngửa GPT-3 175B (34.2%).

Bộ Chuẩn Đa Ngữ MLQA (F1 Score %)

Tự động dịch sang tiếng Anh bằng NLLB-200 trước khi tìm đáp án

Ngôn Ngữ GPT-J (Gốc) Toolformer (6.7B) GPT-3 (175B)
Tây Ban Nha (Es) 21.5 31.4 23.1
Đức (De) 20.8 30.2 22.5
Tiếng Việt (Vi) 18.2 26.8 (+8.6%) 20.1
Trung Quốc (Zh) 19.4 28.7 21.4
Ả Rập (Ar) 14.5 22.1 16.8

Nhờ tự động gọi Dịch Máy, hiệu năng tiếng Việt tăng vọt từ 18.2% lên 26.8%, đánh bại GPT-3 (20.1%).

Khảo Sát Năng Lực Ngôn Ngữ Cốt Lõi: Liệu Mô Hình Có Bị "Lú Lẫn" (Catastrophic Forgetting)?

Một rủi ro lớn khi fine-tune mô hình ngôn ngữ trên cú pháp mới là mô hình bị suy giảm khả năng hành văn tự nhiên gốc. Tác giả đo lường Độ hỗn loạn (Perplexity - PPL) trên hai tập chuẩn: WikiText và CCNet (giá trị càng nhỏ mô hình càng thông minh, mạch lạc):

GPT-J (Gốc)
12.45 / 10.82
WikiText / CCNet PPL
GPT-J + CC
12.38 / 10.45
WikiText / CCNet PPL
Toolformer (Đề Xuất)
12.35 / 10.42
Bảo toàn & Giảm nhẹ PPL!

Kết luận: PPL của Toolformer không hề tăng mà thậm chí giảm nhẹ. Việc học cách sử dụng công cụ qua cơ chế tự giám sát của Toolformer hoàn toàn không gây tổn hại đến khả năng hiểu và sinh ngôn ngữ tự nhiên thông thường.

6. Các Hạn Chế Cốt Lõi & Điểm Nghẽn Kỹ Thuật (Limitations)

Những giới hạn được chính các tác giả Meta AI chỉ rõ và các thách thức cần giải quyết

1. Không Thể Nối Chuỗi Công Cụ Phụ Thuộc (No Tool Chaining)

Toolformer chỉ hỗ trợ gọi công cụ độc lập tại từng vị trí đơn lẻ. Mô hình chưa thể lấy đầu ra của công cụ này (ví dụ: tìm ngày sinh của nhà bác học qua WikiSearch) để truyền thẳng làm đầu vào cho công cụ khác (ví dụ: tính số tuổi bằng Calculator).

2. Không Có Tính Tương Tác Nhiều Lượt (No Multi-Turn Exploration)

Với công cụ tìm kiếm, Toolformer chỉ gửi 1 truy vấn duy nhất. Nếu kết quả BM25 đầu tiên không chứa thông tin cần tìm, mô hình không thể tự suy nghĩ để thay đổi từ khóa hay lật sang trang 2 như con người (điều mà sau này ReAct và Tree-of-Thought giải quyết).

3. Nhạy Cảm Với Định Dạng Prompt Mẫu Ban Đầu

Chất lượng của toàn bộ dữ liệu tự tạo ở Bước 1 phụ thuộc nặng nề vào vài ví dụ ít ỏi trong prompt $P(x)$. Nếu các ví dụ mẫu có cú pháp thiên lệch hoặc thiếu phong phú, các ứng viên sinh ra sẽ kém đa dạng và bị bộ lọc loại bỏ hàng loạt.

4. Chi Phí Tính Toán Offline Khi Lọc Dữ Liệu Lớn

Dù không tốn công gán nhãn người, quá trình lấy mẫu $m$ ứng viên và tính toán đối chiếu hai giá trị Loss $L_i^-$ và $L_i^+$ trên hàng triệu văn bản thô đòi hỏi năng lực tính toán GPU suy luận ban đầu rất lớn trong giai đoạn tiền xử lý dữ liệu.

Ứng Dụng Khóa Luận Tốt Nghiệp

7. Kế Thừa & Chuyển Giao Công Nghệ Vào Hệ Thống SmartRestaurant

Tích hợp cơ chế tự chủ dùng công cụ của Toolformer vào Trợ lý AI Tư vấn Ẩm thực "Aria"

So Sánh Chiến Lược: Khi Nào Dùng ReAct (In-Context) vs Toolformer (Fine-Tuned API)?

Trong đồ án SmartRestaurant, hệ thống phân định rõ ranh giới áp dụng giữa hai trường phái:

ReAct (Yao et al., 2023) — System 2

Áp dụng cho các ca tư vấn lập luận phức tạp nhiều bước (ví dụ: khách dị ứng đậu phộng, ăn chay nhưng muốn món giàu protein cho 4 người). Tác tử cần suy nghĩ xen kẽ (Thought → Action → Observation) qua nhiều lượt để thương lượng.

Toolformer (Schick et al., 2023) — System 1

Áp dụng cho các phản xạ gọi API trực tiếp thời gian thực không cần suy nghĩ dài dòng (ví dụ: tính tổng tiền giỏ hàng, tra cứu nhanh giờ mở cửa, kiểm tra dị ứng thành phần). Mô hình tự sinh lời gọi API nội dòng với độ trễ siêu thấp (<300ms).

Bảng Ánh Xạ Công Cụ Toolformer Sang Nghiệp Vụ Nhà Hàng Thực Tế

Công Cụ Toolformer Công Cụ Trong SmartRestaurant (Aria) Hành Vi Thực Thi Trong Hệ Thống Nhà Hàng Ví Dụ Tuyến Tính Hóa Tuyệt Đối
Calculator API calculate_order_bill Tính chính xác 100% tổng tiền gồm VAT 8%, giảm giá voucher và phí dịch vụ [Bill(2x Steak(250k) - 10%) → 486,000 VNĐ]
QA & Search API search_menu_rag Truy xuất nguyên liệu, công thức chế biến và định mức dinh dưỡng từ Qdrant [MenuSearch("Súp bò Wagyu") → Có chứa nấm hương, hành tây]
Calendar API check_table_booking Đối chiếu xung nhịp thời gian thực để kiểm tra bàn trống tối nay theo giờ hệ thống [TableCheck(Date: Today, Time: 19:30, Pax: 4) → Bàn B12 Trống]
Machine Translation multilingual_consultant Phục vụ khách nước ngoài bằng cách dịch câu hỏi sang tiếng Việt để truy vấn DB rồi dịch ngược [Translate("Does this contain peanuts?", en→vi) → "Món này có đậu phộng không?"]

Áp Dụng Cơ Chế Lọc Suy Giảm Mất Mát ($\Delta L \ge \tau_f$) Để Huấn Luyện Aria

Thay vì thuê nhân viên ghi nhãn hàng ngàn cuộc hội thoại đặt bàn và gọi món, nhóm nghiên cứu áp dụng trực tiếp thuật toán lọc của Toolformer: Cho mô hình chạy thử trên kho lịch sử tương tác của nhà hàng. Những lời gọi hàm `check_table_booking` hay `filter_allergens` nào giúp câu trả lời của trợ lý khớp chính xác với kết quả thực tế của khách hàng trong quá khứ ($L_i^- - L_i^+ \ge 1.0$) sẽ được tự động đưa vào tập huấn luyện tinh chỉnh. Phương pháp này tiết kiệm 100% chi phí gán nhãn thủ công cho đề tài tốt nghiệp!

8. Tài Liệu Tham Khảo & Trích Dẫn BibTeX

Các ấn phẩm khoa học nền tảng liên quan và định dạng trích dẫn chuẩn

[1] Schick, T., Dwivedi-Yu, J., Dessì, R., Lomeli, M., Zettlemoyer, L., Cancedda, N., Raileanu, R., & Scialom, T. (2023). Toolformer: Language models can teach themselves to use tools. In Advances in Neural Information Processing Systems (NeurIPS 2023). arXiv:2302.04761.
[2] Brown, T., Mann, B., Ryder, N., et al. (2020). Language models are few-shot learners. In NeurIPS.
[3] Yao, S., Zhao, J., Yu, D., et al. (2023). ReAct: Synergizing reasoning and acting in language models. In ICLR 2023. arXiv:2210.03629.
[4] Izacard, G., Lewis, P., Lomeli, M., et al. (2022). Few-shot learning with retrieval augmented language models. arXiv:2208.03299.
[5] Team, N., Costa-jussà, M. R., Cross, J., et al. (2022). No language left behind: Scaling human-centered machine translation. arXiv:2207.04672.
Trích dẫn BibTeX chuẩn NeurIPS 2023
@inproceedings{schick2023toolformer,
  title={Toolformer: Language Models Can Teach Themselves to Use Tools},
  author={Schick, Timo and Dwivedi-Yu, Jane and Dess{\`\i}, Roberto and Lomeli, Maria and Zettlemoyer, Luke and Cancedda, Nicola and Raileanu, Roberta and Scialom, Thomas},
  booktitle={Thirty-seventh Conference on Neural Information Processing Systems (NeurIPS)},
  year={2023},
  url={https://arxiv.org/abs/2302.04761}
}