Lý luận tự động và sử dụng công cụ (ART)

ART là một phương pháp mới được phát triển bởi các nhà nghiên cứu từ Đại học Washington, Microsoft, Meta, Đại học California và Viện Allen AI. Phương pháp này sử dụng các mô hình ngôn ngữ lớn (LLMs) để tự động tạo ra các bước suy luận trung gian và sử dụng các công cụ bên ngoài để hỗ trợ tính toán vượt ra ngoài khả năng của LLM.

ART hoạt động như sau:

  • được giao một nhiệm vụ mới, nó chọn các minh họa về lý luận nhiều bước và cách sử dụng công cụ từ thư viện nhiệm vụ
  • tại thời điểm thử nghiệm, nó sẽ tạm dừng quá trình tạo bất cứ khi nào các công cụ bên ngoài được gọi và tích hợp đầu ra của chúng trước khi tiếp tục quá trình tạo sinh

ART khuyến khích mô hình khái quát hóa từ các trình diễn để phân tách một nhiệm vụ mới và sử dụng các công cụ ở những nơi thích hợp, theo kiểu zero-shot. Ngoài ra, ART còn có khả năng mở rộng vì nó cũng cho phép con người sửa lỗi trong các bước suy luận hoặc thêm các công cụ mới bằng cách cập nhật thư viện tác vụ và công cụ. Quá trình này được thể hiện dưới đây:

Nguồn hình ảnh: Paranjape và cộng sự, (2023)

Giải thích ví dụ ở lưu đồ:

Hình ảnh trên minh họa quy trình làm việc của một hệ thống xử lý ngôn ngữ tự nhiên (NLP) sử dụng mô hình ngôn ngữ lớn (LLM) để chuyển đổi câu “albert goes home” sang tiếng lóng Pig Latin. Quá trình này được chia thành ba phần chính: chọn ví dụ từ thư viện nhiệm vụ, chạy chương trình và sửa lỗi (nếu cần thiết).

A. Chọn một ví dụ từ thư viện nhiệm vụ

  • Hệ thống đã lưu một số chỉ thị thực hiện nhiệm vụ trước đó:
    • Ví dụ 1: Nhiệm vụ về lịch sử (“Anachronisms”):
      • Input: “George HW … Gulf War”
      • Q1: “[Tìm kiếm] When was George H.W. Bush president?”
      • A1: “From 1989-1993 …”
      • Trả lời: Đúng
    • Ví dụ 2: Nhiệm vụ về số học (“Arithmetic”):
      • Input: “Viola bought 167 books …”
      • Q1: “[Tạo mã] Write arithmetic as python code”
      • A1: “viola = 167, nancy = 137; ans = viola – nancy;”
      • Trả lời: 30

B. Chạy Chương Trình (Run Program)

  • Mô Hình Ngôn Ngữ đóng băng (Frozen LLM):
    • Hệ thống sử dụng các ví dụ từ thư viện để tạo ra câu trả lời cho nhiệm vụ hiện tại: “Translate into Pig Latin Input: albert goes home”.
    • Quá trình bao gồm các bước sau:
      • Q1: Tìm kiếm hướng dẫn viết tiếng Anh thành Pig Latin.
        • A1: “Add ‘yay’ if it starts with a vowel …”
      • Q2: Tạo mã python để dịch câu “albert goes driving” sang Pig Latin.
      • Q3: Chạy đoạn mã đã tạo.
      • Q4: Kết thúc câu hỏi.
    • Kết quả được tạo ra từ LLM:
      • “albertay oesgay ivingdray”

C. Sửa Lỗi (Fix Mistakes)

  • Sửa Lỗi (nếu có):
    • Hệ thống kiểm tra và sửa lỗi trong quá trình dịch:
      • Q1: Tìm kiếm hướng dẫn viết tiếng Anh thành Pig Latin.
        • A1: “Add ‘yay’ if it starts with a vowel …”
      • Q2: Tạo mã để dịch câu “albert …”
      • Q3: Chạy đoạn mã đã sửa.
        • Bổ sung: “consonant_cluster = find_clstr(w)” để tìm cụm phụ âm.
      • Q4: Kết thúc câu hỏi.
    • Kết quả Cuối Cùng:
      • “albertay oesgay ivingdray”

D. Giải thích chi tiết về mã thiếu từ Lưu đồ

Trong hình ảnh lưu đồ mà ta thấy tương đối vắn tắt về quá trình tạo mã bổ sung nhằm cải tiến thêm trong quá trình phản hồi người dùng (mặc dù kết quả của ví dụ là giống nhau) vì vậy chúng tôi giải thích để làm rõ thêm ở dưới đây:

Mã trước khi sửa lỗi:

for w in ["albert", "goes", "home"]:
    if w[0] in "aeiou":
        print(w + "yay")

Mã sau khi sửa lỗi:

for w in ["albert", "goes", "home"]:
    if w[0] in "aeiou":
        print(w + "yay")
    else:
        consonant_cluster = find_clstr(w)
        print(w[len(consonant_cluster):] + consonant_cluster + "ay")

Giải thích:

  • Trước sửa lỗi: Mã chỉ thêm “yay” vào cuối từ nếu từ bắt đầu bằng nguyên âm, nhưng không xử lý đúng cách các từ bắt đầu bằng phụ âm.
  • Sau sửa lỗi: Mã thêm logic để xử lý các từ bắt đầu bằng phụ âm bằng cách tìm cụm phụ âm đầu tiên và di chuyển nó đến cuối từ, sau đó thêm “ay”.

Cụ thể:

  • Từ “albert”:
    • Trước sửa lỗi: “albert” không được xử lý chính xác vì không có logic để di chuyển cụm phụ âm.
    • Sau sửa lỗi: “albert” được chuyển đúng thành “albertay”.
  • Từ “goes”:
    • Trước sửa lỗi: “goes” không được xử lý vì mã không có logic cho từ bắt đầu bằng phụ âm.
    • Sau sửa lỗi: “goes” được chuyển đúng thành “oesgay” (chuyển “g” đến cuối và thêm “ay”).
  • Từ “home”:
    • Trước sửa lỗi: “home” không được xử lý.
    • Sau sửa lỗi: “home” được chuyển đúng thành “omehay” (chuyển “h” đến cuối và thêm “ay”).

Giải thích thêm Frozen LLM:

“Mô hình ngôn ngữ đóng băng” (Frozen LLM) đề cập đến một mô hình ngôn ngữ lớn (LLM) đã được huấn luyện trước và không thay đổi trong quá trình sử dụng. Điều này có nghĩa là các trọng số và tham số của mô hình không được cập nhật hoặc điều chỉnh thêm khi nó thực hiện các nhiệm vụ cụ thể. Mô hình được sử dụng như một công cụ cố định, chỉ thực hiện các tác vụ dựa trên kiến thức và khả năng đã được tích lũy trong giai đoạn huấn luyện (không bổ sung thêm).


ART cải thiện đáng kể so với nhắc nhở trong few-shot và Auto CoT đối với các nhiệm vụ phức tạp trong điểm chuẩn BigBench và MMLU, đồng thời vượt xa hiệu suất của lời nhắc CoT thủ công khi kết hợp phản hồi của con người.

Dưới đây là bảng thể hiện hiệu suất của ART đối với các nhiệm vụ BigBench và MMLU: