Một mô hình ngôn ngữ tự nó chỉ làm được một việc: sinh ra chữ. Khi bạn thấy chatbot tra web, tính toán, đặt lịch hay đọc tệp, thật ra mô hình chỉ viết ra một yêu cầu theo mẫu quy định, còn phần mềm bao quanh mới là bên thi hành rồi đưa kết quả trở lại cho mô hình đọc. Cơ chế này trong tiếng Anh gọi là tool use hay function calling, tạm dịch là gọi công cụ.
Hiểu cơ chế này giúp bạn trả lời nhiều câu hỏi thường gặp: vì sao chatbot lúc tra web lúc không, vì sao có khi nó nói đã làm mà thật ra chưa làm, và vì sao người dựng sản phẩm vẫn giữ được quyền kiểm soát dù AI "tự hành động". Bài này đi từ ví dụ quầy gọi món tới những chỗ cơ chế hay hỏng.
Ví dụ quầy gọi món: người ghi phiếu và người nấu
Hình dung một quán ăn: nhân viên phục vụ nghe khách nói, ghi phiếu, đưa vào bếp. Bếp nấu, đưa món ra, nhân viên mang tới bàn và nói thêm vài câu với khách. Nhân viên phục vụ không nấu, nhưng biết bếp nấu được món gì và phải ghi phiếu đúng mẫu thì bếp mới hiểu.
Mô hình ngôn ngữ đóng vai nhân viên phục vụ. Trước cuộc trò chuyện, phần mềm đưa cho mô hình một "thực đơn công cụ": tên từng công cụ, công cụ đó làm gì, cần những thông tin nào. Ví dụ công cụ tra thời tiết cần tên địa điểm và ngày. Khi bạn hỏi "mai Cần Thơ có mưa không", mô hình nhận ra câu này cần dữ liệu mới, nên thay vì trả lời ngay, nó viết ra một phiếu yêu cầu đúng mẫu: dùng công cụ thời tiết, địa điểm Cần Thơ, ngày mai.
Phần mềm nhận phiếu, gọi dịch vụ thời tiết thật, lấy về con số, rồi đưa kết quả vào cuộc trò chuyện. Mô hình đọc kết quả đó như đọc thêm một đoạn văn bản, và viết câu trả lời cho bạn. Toàn bộ quá trình có thể diễn ra trong vài giây nên bạn chỉ thấy chatbot "biết" thời tiết.
Ví dụ này cũng cho thấy một điều hay bị hiểu nhầm: mô hình không "vào mạng" theo nghĩa một người mở trình duyệt. Nó không nhìn thấy trang web, không bấm nút, không xem quảng cáo. Nó chỉ nhận về đoạn chữ mà phần mềm đã lấy giúp và cắt gọn. Nếu phần mềm lấy nhầm trang hay cắt mất đoạn quan trọng, mô hình không có cách nào biết.
Một lần gọi công cụ đi qua những bước nào
Dù công cụ là tìm web, đọc lịch hay chạy mã, khung chung gần như giống nhau. Các bước dưới đây mô tả theo nguyên lý; mỗi hãng triển khai chi tiết khác nhau.
- Người dựng ứng dụng khai báo danh sách công cụ cho mô hình, kèm mô tả bằng lời và các thông tin bắt buộc.
- Bạn gửi câu hỏi. Mô hình đọc câu hỏi cùng danh sách công cụ và tự đánh giá có cần dùng công cụ không.
- Nếu cần, mô hình sinh ra một yêu cầu có cấu trúc: tên công cụ và các giá trị điền vào. Đây vẫn là chữ do mô hình đoán ra, chỉ là chữ theo một khuôn chặt.
- Phần mềm kiểm yêu cầu đó, có thể hỏi bạn xác nhận nếu là việc quan trọng, rồi mới thi hành.
- Kết quả thi hành, có thể là dữ liệu, có thể là thông báo lỗi, được đưa trở lại cho mô hình đọc.
- Mô hình quyết định trả lời luôn hay gọi thêm công cụ khác. Nếu gọi thêm, quay lại bước ba. Đây chính là vòng lặp làm nên tác tử.
Bước bốn là chỗ quan trọng nhất về an toàn: mô hình chỉ đề nghị, phần mềm mới quyết định có làm hay không. Một sản phẩm cẩn thận luôn đặt chốt xác nhận trước những hành động như gửi thư hay thanh toán.
Vì sao cơ chế này giúp AI giỏi hơn ở những việc nó vốn kém
Dữ liệu mới. Mô hình chỉ biết những gì có trong dữ liệu huấn luyện, dừng ở một mốc thời gian. Công cụ tìm kiếm hay tra cứu cho nó đọc thông tin hôm nay, như giá vé, lịch tàu, tin vừa đăng.
Phép tính chính xác. Mô hình đoán chữ nên dễ sai khi nhân chia số lớn. Khi được gọi một công cụ tính toán hay chạy mã, việc tính do máy làm chính xác, mô hình chỉ cần viết đúng phép tính.
Dữ liệu riêng. Lịch họp, hộp thư, tài liệu công ty không có trong dữ liệu huấn luyện. Công cụ đọc tệp hay tra cơ sở dữ liệu cho phép mô hình trả lời dựa trên tài liệu của chính bạn.
Hành động thật. Gửi thư, tạo sự kiện, bật đèn trong nhà thông minh. Không có công cụ, mô hình chỉ mô tả được cách làm; có công cụ, nó đề nghị làm hộ và chờ phần mềm thi hành.
Công cụ chỉ đọc và công cụ có tác động: hai mức rủi ro khác hẳn
Không phải công cụ nào cũng đáng lo như nhau. Cách chia đơn giản nhất là hỏi: công cụ này chỉ lấy thông tin về, hay làm thay đổi một thứ gì đó ngoài đời thật? Tra thời tiết, đọc một trang web, xem lịch trống, tính một phép nhân là nhóm chỉ đọc. Gửi thư, đặt hàng, xoá tệp, sửa lịch họp của người khác, đăng bài lên trang của cửa hàng là nhóm có tác động.
Với nhóm chỉ đọc, lỗi tệ nhất thường là thông tin sai đưa vào câu trả lời, và bạn còn cơ hội kiểm lại trước khi dùng. Với nhóm có tác động, lỗi có thể đã xảy ra trước khi bạn kịp đọc: thư đã tới hộp thư khách, đơn hàng đã đặt, tệp đã mất. Vì vậy các sản phẩm cẩn thận thường cho nhóm chỉ đọc chạy tự do nhưng dừng lại hỏi bạn trước mỗi hành động thuộc nhóm thứ hai.
Ranh giới đôi khi mờ hơn bạn tưởng. Một công cụ "chỉ đọc" trang web vẫn có thể để lộ thông tin nếu địa chỉ trang mà mô hình tự điền chứa dữ liệu của bạn. Một công cụ "chỉ tạo bản nháp" thư vẫn vô hại cho tới khi có người lỡ tay bấm gửi. Khi xem một ứng dụng AI xin kết nối với hộp thư hay lịch, bạn nên xem nó xin quyền đọc, quyền ghi, hay cả hai; đó là thông tin cụ thể nhất bạn có trong tay để đoán mức rủi ro.
Những chỗ cơ chế gọi công cụ hay hỏng
Biết các kiểu hỏng giúp bạn đọc kết quả đúng mức tin cậy. Những lỗi dưới đây gặp ở nhiều sản phẩm, không riêng hãng nào.
- Không gọi khi cần gọi. Mô hình tự tin trả lời từ trí nhớ cũ thay vì tra cứu, nên đưa thông tin lỗi thời. Đây là lý do có lúc chatbot tra web, có lúc không, với hai câu hỏi trông giống nhau.
- Điền sai thông tin vào phiếu. Nhầm ngày, nhầm múi giờ, nhầm tên người nhận. Công cụ vẫn chạy đúng theo phiếu, nên kết quả sai mà trông như đúng.
- Đọc sai kết quả trả về. Công cụ trả về một bảng dài, mô hình tóm tắt lệch hoặc bỏ sót dòng quan trọng.
- Nói đã làm khi chưa làm. Nếu công cụ báo lỗi mà mô hình không để ý, nó vẫn có thể viết "đã gửi thư cho bạn". Một ứng dụng tốt hiển thị rõ công cụ nào đã chạy và kết quả ra sao.
- Tin nhầm nội dung lạ. Trang web hay tệp mà công cụ đọc về có thể chứa câu cài cắm kiểu ra lệnh, và mô hình có thể làm theo. Hiện tượng này được bàn trong bài về rủi ro giao quyền cho tác tử.
Cách đọc kết quả thực tế: khi ứng dụng cho xem nó đã gọi công cụ gì, nguồn nào, hãy liếc qua phần đó trước khi tin câu trả lời. Với việc quan trọng, mở chính nguồn gốc ra xem.
Gọi công cụ, tìm kiếm tăng cường và tác tử khác nhau thế nào
Ba khái niệm này hay được nhắc cùng nhau và dễ lẫn. Bảng dưới đặt cạnh nhau để thấy chúng là các tầng nối tiếp chứ không phải ba thứ tách biệt.
| Khái niệm | Bản chất | Ví dụ đời thường |
|---|---|---|
| Gọi công cụ | Cơ chế cho mô hình viết yêu cầu để phần mềm thi hành một việc | Nhân viên phục vụ ghi phiếu gửi bếp |
| Tìm kiếm tăng cường (RAG) | Một cách dùng công cụ: tra tài liệu liên quan rồi đưa vào để mô hình trả lời dựa trên đó | Trước khi trả lời khách, nhân viên mở sổ tay quy định của quán ra đọc |
| Tác tử AI | Mô hình được gọi công cụ nhiều lần trong một vòng lặp, tự quyết bước tiếp theo | Nhân viên được giao lo trọn một bữa tiệc, tự gọi bếp, gọi kho, gọi khách |
| Giao thức kết nối công cụ | Chuẩn chung để công cụ khai báo với nhiều ứng dụng AI khác nhau | Mẫu phiếu gọi món thống nhất dùng được ở nhiều quán |
Hai dòng cuối có bài riêng trong danh mục này. Điều cần nhớ: gọi công cụ là viên gạch nền, các khái niệm khác xây trên nó.
Ai chịu trách nhiệm khi công cụ làm sai
Vì mô hình chỉ đề nghị còn phần mềm thi hành, trách nhiệm thiết kế nằm ở người dựng sản phẩm: họ chọn trao công cụ nào, có đặt chốt xác nhận hay không, có ghi lại nhật ký các lần gọi hay không. Một công cụ gửi thư không có bước xác nhận là lựa chọn thiết kế, không phải lỗi ngẫu nhiên của AI.
Ở phía người dùng, phần việc của bạn là đọc kỹ trước khi bấm đồng ý, và cảnh giác với những ứng dụng xin quyền rộng hơn mức cần. Một trợ lý chỉ cần đọc lịch thì không cần quyền xoá thư. Khi kết nối chatbot với hộp thư, lịch hay ổ lưu trữ, hãy nghĩ tới việc những dữ liệu cá nhân và bí mật công việc trong đó sẽ được mô hình đọc; che bớt hoặc tách tài khoản khi cần.
Về mặt pháp lý, câu hỏi ai chịu trách nhiệm khi một hành động do AI đề nghị gây thiệt hại vẫn đang được nhiều nước bàn và chưa có câu trả lời chung. Bạn nên coi mọi hành động AI làm thay như hành động chính mình đã duyệt.
Câu hỏi thường gặp
Mô hình biết công cụ nào tồn tại bằng cách nào?
Người dựng ứng dụng đưa danh sách công cụ cùng mô tả bằng lời vào phần chỉ dẫn ẩn trước mỗi cuộc trò chuyện. Mô hình đọc mô tả đó như đọc văn bản. Mô tả viết mơ hồ thì mô hình dễ chọn sai công cụ hoặc bỏ qua công cụ đáng lẽ phải dùng.
Mô hình học cách gọi công cụ từ đâu?
Các hãng huấn luyện thêm mô hình trên nhiều ví dụ trong đó câu hỏi đi kèm một yêu cầu gọi công cụ đúng mẫu và kết quả trả về. Nhờ vậy mô hình quen với khuôn yêu cầu. Chất lượng gọi công cụ khác nhau giữa các mô hình và thay đổi qua từng phiên bản.
Vì sao cùng một câu hỏi, lúc chatbot tra web lúc không?
Quyết định có gọi công cụ hay không cũng do mô hình đoán, nên có yếu tố ngẫu nhiên. Cách đặt câu hỏi, ngữ cảnh trước đó và cài đặt của ứng dụng đều ảnh hưởng. Nhiều ứng dụng có nút bật tìm kiếm thủ công để bạn chủ động yêu cầu tra cứu.
Chatbot có thể tự cài thêm công cụ cho mình không?
Với các sản phẩm phổ biến thì không. Danh sách công cụ do người dựng ứng dụng hoặc người dùng quyết định bật. Mô hình chỉ dùng được những gì đã được trao. Một số hệ thống cho phép tác tử viết đoạn mã mới để chạy, nhưng việc đó vẫn đi qua công cụ chạy mã có giới hạn sẵn.
Gọi công cụ có làm AI hết bịa không?
Giảm được ở những câu hỏi mà công cụ trả lời được chính xác, như phép tính hay dữ liệu tra cứu. Nhưng mô hình vẫn có thể đọc sai kết quả, tóm tắt lệch, hoặc tự tin không gọi công cụ. Thói quen kiểm lại nguồn vẫn cần, nhất là với số liệu và tên riêng.
Công cụ của chatbot có thấy được dữ liệu trong máy tính của bạn không?
Chỉ khi bạn hoặc ứng dụng cho phép rõ ràng, như tải tệp lên hay cấp quyền đọc thư mục. Chatbot trên trình duyệt thông thường không tự đọc được tệp trong máy. Trước khi cấp quyền cho một ứng dụng AI, hãy đọc nó xin những quyền gì và có cần đủ ngần ấy không.