Logohoccodeai.com
Đổi server VN (nếu load chậm)

Giới thiệu về Function Calling - Mở rộng khả năng của LLM

Nhuợc điểm cơ bản của LLM

Như chúng ta đã biết, mặc dù LLM rất thông minh, nhưng nó có giới hạn về kiến thức, không giỏi toán, cũng như... không có khả năng tương tác với thế giới bên ngoài. Nó giống nhu một bộ não, có mắt để nhìn, miệng để nói, nhưng không có tay chân để cầm nắm, làm việc.

Vậy ta cần làm gì để mở rộng khả năng của LLM? Nếu nó không có tay chân, có thể... gắn tay chân cho nó, hoặc đơn giản hơn, dựa theo kết quả của LLM để tương tác với thế giới bên ngoài.

Ở đây, tay chân của LLM chính là function (hàm)/ tool (công cụ). Những hàm này có thể là hàm làm toán, hàm gọi API lấy dữ liệu thời tiết, gọi API dể đặt hàng online, v.v.

title

Kĩ thuật sử dụng LLM để phân tích câu hỏi, yêu cầu từ ngôn ngữ tự nhiên, để gọi các hàm/công cụ bên ngoài gọi là Function Calling/Tool Use.

Vậy Function Calling hoạt động như thế nào?

Để đơn giản, từ giờ cho tới cuối bài bọn mình sẽ dùng khái niệm Function Calling để chỉ kĩ thuật sử dụng LLM để gọi các hàm/công cụ bên ngoài. Các ban search trên Google thì 2 từ khoá này cũng khá giống nhau, nên có thể dùng từ nào cũng được.

Function-calling là khả năng để LLM hiểu một câu hỏi/yêu cầu từ ngôn ngữ tự nhiên, và đưa ra quyết định để gọi hàm, dựa trên các mô tả được cung cấp.

lifetime

Quá trình này bao gồm một số bước như hình trên.

  1. Đầu tiên, client (code của bạn) cung cấp cho LLM một danh sách các function có sẵn, mỗi hàm đi kèm với một mô tả chi tiết và các tham số cần thiết.

  2. Khi LLM nhận được một prompt, nó sẽ phân tích câu hỏi bằng ngôn ngữ tự nhiên để hiểu ý định của người dùng.

    Tiếp theo, LLM sẽ xem xét danh sách các hàm có sẵn và mô tả của chúng để xác định hàm nào phù hợp nhất với câu hỏi.

  3. LLM sau đó sẽ tạo ra một câu trả lời, chỉ định hàm nào cần gọi và tham số của hàm đó.

  4. Code của bạn sẽ gọi hàm đó với các tham số được chỉ định.

  5. Đưa prompt và toàn bộ kết quả cho LLM, để nó hiển thị kết quả về cho người dùng

Nói nôm na, function calling/tool use giúp bạn tích hợp sự thông minh của LLM để chuyển đổi yêu cầu từ trong prompt thành tên hàm + tham số để tích hợp với các hệ thống/API khác. Việc tích hợp sẽ do bạn tự code, còn việc hiểu yêu cầu thì do LLM lo.

Ví dụ về Function Calling

Ví dụ, nếu bạn có câu hỏi là "Thời tiết ở Hà Nội hôm nay thế nào?", LLM sẽ... bó tay, vì điều đó không có trong dữ liệu đã học, mà LLM cũng không có khả năng tìm kiếm trên internet.

Thay vì làm vậy, với function calling ta sẽ làm như sau:

  1. Đưa cho LLM câu hỏi Thi tiết ở Hà Nội hôm nay thế nào?

    Đưa cho nó thêm danh sách function có thể dùng:

    • get_current_weather(location: string, unit: 'celsius' | 'fahrenheit')
    • get_stock_price(symbol: string)
    • view_website(url: string)
  2. Lúc này, LLM sẽ đọc, phân tích câu hỏi và ngữ cảnh.

  3. Sau đó, LLM hiểu là người dùng muốn biết thông tin thời tiết. Trong số các hàm đưa vào, có 1 hàm để lấy thông tin thời tiết. Nó sẽ trả về kết quả: Dùng hàm get_current_weather, với các arguments là (location: 'Hà Nội', unit: 'celsius').

  4. Ta sẽ viết code giúp LLM gọi hàm này, lấy được thời tiết ở Hà Nội là Tri rét vãii, 7 độ C.

  5. Tiếp tục gửi kết quả này cho LLM, để nó trả về kết quả cho người dùng là

Thời tiết ở Hà Nội hôm nay.
Trời rét vãi nôi, 7 độ C.
Nhưng các em gái vẫn diện quần đùi váy ngắn tung tăng dạo phố!

example

Tầm quan trọng của Function Calling

Function Calling giúp mở rộng khả năng của LLM rất nhiều. Nó cải thiện những vấn đề như hallucination, giúp LLM trở thành bộ não, tích hợp đuợc với nhiều hệ thống, chứ không chỉ là chatbot đơn thuần.

Function-calling cho phép ta làm những việc như:

  • Sử dụng hiệu quả các công cụ bên ngoài để lấy dữ liệu, cải thiện độ tin cậy và giảm sự ảo tưởng.
  • Chuyển đổi ngôn ngữ tự nhiên thành tool/API call.
    • Ví dụ, bạn có thể dùng function calling kết hợp với API để lưu note, đặt lịch hẹn, mua hàng...
    • Bản thân app ChatGPT cũng có rât nhiều tool như: Draw tool để vẽ bằng Dall-E. Note tool để lưu và tóm tắt hội thoại.
    • Do vậy, bạn thấy ChatGPT có thể vẽ hình, nhớ nội dung trò chuyện.
  • Sử dụng LLM để trích xuất dữ liệu, biến dữ liêu phi cấu trúc (Ảnh, văn bản) thành dữ liệu có cấu trúc. Ví dụ như trích xuất tên/kinh nghiệm từ CV thành dạng JSON để lưu trữ.

Tạm kết

Túm cái quần lại, Function Calling là một kĩ thuật mạnh mẽ để mở rộng khả năng của LLM, giúp nó tương tác với thế giới bên ngoài một cách hiệu quả hơn.

Bài nay chỉ dừng ở lý thuyết. Ở bài sau, bọn mình sẽ cùng viết code để hiểu rõ hơn về function calling nhé!

Tài liệu tham khảo


Tóm tắt bài học

  • Function Calling là một kỹ thuật giúp mở rộng khả năng của LLM (Large Language Model) bằng cách cho phép nó tương tác với các hàmcông cụ bên ngoài.
  • LLM có giới hạn về kiến thức và không thể truy cập thông tin từ thế giới bên ngoài, do đó cần phải "gắn tay chân" cho nó thông qua các hàm như gọi API để lấy dữ liệu.
  • Quá trình Function Calling diễn ra qua các bước: cung cấp danh sách hàm, phân tích câu hỏi, chọn hàm phù hợp, gọi hàm với tham số và trả kết quả cho người dùng.
  • Function Calling giúp cải thiện độ tin cậy của LLM, giảm thiểu sự hallucination và cho phép tích hợp với nhiều hệ thống khác nhau, không chỉ dừng lại ở vai trò chatbot.
  • Kỹ thuật này mở ra khả năng sử dụng hiệu quả các công cụ bên ngoài, chuyển đổi ngôn ngữ tự nhiên thành các cuộc gọi API, và trích xuất dữ liệu từ thông tin phi cấu trúc.

Câu hỏi ôn tập

  1. Tại sao LLM cần Function Calling và nó giải quyết những hạn chế gì của LLM?

    Function Calling giải quyết các hạn chế cơ bản của LLM như: không có khả năng tương tác với thế giới bên ngoài, giới hạn về kiến thức và khả năng tính toán. Nó hoạt động như "tay chân" cho LLM, cho phép thực hiện các tác vụ như tính toán, gọi API lấy dữ liệu thời tiết, đặt hàng online thông qua việc kết nối với các hàm và công cụ bên ngoài.

  2. Function Calling hoạt động theo quy trình như thế nào?

    Function Calling hoạt động qua 5 bước chính:

    1. Client cung cấp danh sách functions có sẵn kèm mô tả,
    2. LLM phân tích câu hỏi để hiểu ý định người dùng,
    3. LLM xác định và chọn hàm phù hợp kèm tham số,
    4. Code thực thi hàm được chọn,
    5. Kết quả được đưa về LLM để hiển thị cho người dùng.
  3. Function Calling có những ứng dụng thực tế nào?

    Function Calling có nhiều ứng dụng thực tế như: lấy dữ liệu thời tiết realtime, đặt lịch hẹn, mua hàng online, vẽ hình bằng Dall-E, lưu note, trích xuất thông tin từ CV thành JSON, và tích hợp với các API khác nhau để mở rộng khả năng tương tác của LLM với thế giới bên ngoài.

  4. Function Calling giúp cải thiện những vấn đề gì trong LLM?

    Function Calling giúp cải thiện vấn đề hallucination (ảo tưởng), tăng độ tin cậy của thông tin, chuyển đổi ngôn ngữ tự nhiên thành lệnh gọi API/tool, và biến LLM từ một chatbot đơn thuần thành một hệ thống thông minh có khả năng tương tác với nhiều hệ thống khác nhau.

Facebook Messenger

fb.com/toidicodedao

Email Support

[email protected]

Telegram

t.me/hoccodeai