Chia Việc Lớn Thành Nhiều Việc Nhỏ Cho AI
Một việc lớn thường dễ làm tốt hơn khi được chia thành các phần nhỏ, rõ ràng. Nhờ vậy, mô hình tập trung được vào từng phần.
Hãy tưởng tượng bạn bước vào bếp của một nhà hàng vào tối thứ Sáu và quan sát bếp trưởng. Có một kiểu bếp trưởng cố tự làm tất cả mọi việc: tự thái rau, tự áp chảo từng miếng bít tết, tự bày món tráng miệng, tự nếm từng chiếc chảo. Kết quả là họ mệt lả, đổ mồ hôi, la hét vì căng thẳng, rồi còn dễ đưa nhầm món đến nhầm bàn. Nhưng cũng có một kiểu bếp trưởng khác làm việc hiệu quả hơn. Người này chia việc rõ ràng cho từng người: bạn phụ trách các loại sốt, bạn nướng thịt, bạn bày món ra đĩa. Mỗi đầu bếp đứng ở khu vực riêng, chỉ dùng đúng công cụ và nguyên liệu cần cho phần việc của mình, nên không bị cả căn bếp hỗn loạn làm mất tập trung. Khi làm xong, họ không cần giải thích lại từng bước mình đã làm. Họ chỉ đưa đĩa món ăn đã hoàn chỉnh tới quầy ra món, rồi bếp trưởng ghép mọi thứ lại thành một bữa ăn hoàn chỉnh. AI cũng gặp vấn đề tương tự. Những AI hoạt động tốt nhất thường xử lý vấn đề theo cách giống như vậy. Một nhiệm vụ lớn, nếu bắt AI làm vội trong một lần, thường cho kết quả kém hơn so với khi nhiệm vụ đó được chia thành nhiều phần nhỏ, rõ ràng và tập trung. Khi hiểu được điều này, bạn sẽ biết cách chia nhỏ yêu cầu của mình một cách chủ động hơn.
Ngữ cảnh chỉ chứa được một lượng thông tin nhất định
Một AI chỉ có thể ghi nhớ một lượng thông tin nhất định tại một thời điểm. Phần trí nhớ đang được dùng này chính là ngữ cảnh, như đã nói ở Phần 3. Đó là phần văn bản mà mô hình đang thật sự tập trung xử lý. Điều quan trọng cần nhớ là ngữ cảnh có giới hạn.
Hãy hình dung ngữ cảnh như một cái bàn chỉ đặt vừa một số tờ giấy nhất định. Khi những tờ giấy trên bàn đúng là những gì cần cho công việc, mọi thứ diễn ra suôn sẻ. Nhưng cái bàn nào cũng có mép. Khi bàn đã đầy, mỗi tờ giấy mới được đặt lên sẽ đẩy một tờ giấy cũ rơi xuống. AI không có một ngăn kéo bí mật nào để lấy lại những thứ đã rơi khỏi bàn. Thông tin nào không còn nằm trong ngữ cảnh thì coi như AI không còn thấy nó nữa.
Đây là lý do việc nhồi quá nhiều thông tin có thể âm thầm làm kết quả kém đi. Khi bạn đưa vào quá nhiều dữ kiện không liên quan, AI dễ bị rối và câu trả lời trở nên tệ hơn. Điều này giống như bạn đang cố viết một đoạn văn cẩn thận, nhưng trước mặt lại có năm mẩu ghi chú dang dở của bốn dự án khác nhau. Nếu bạn đưa cho AI một yêu cầu quá nhiều việc cùng lúc, như tìm vé máy bay, khách sạn, quán ăn, danh sách đồ cần mang và ngân sách, các chủ đề sẽ dễ bị lẫn vào nhau. Một chi tiết thuộc phần ngân sách có thể bị dùng nhầm trong phần gợi ý quán ăn. Một điều kiện về vé máy bay có thể bị bỏ sót vì bị che lấp bởi danh sách đồ cần mang. Cách xử lý rất đơn giản: hãy chia yêu cầu thành từng bước riêng. Mỗi lần chỉ tập trung vào một chủ đề, để AI có đủ không gian xử lý rõ ràng và trả lời chính xác hơn.
Hiểu được điều này sẽ dẫn đến một cách làm việc rõ ràng. Hãy chia một việc lớn thành nhiều nhiệm vụ nhỏ hơn và tập trung vào từng phần. Nhờ vậy, mỗi phần sẽ vừa với khả năng ghi nhớ tạm thời của bạn, nên thông tin quan trọng không bị chen lấn hoặc bị bỏ quên. Thay vì để mọi thứ chất đầy trên một cái bàn, bạn sắp xếp chúng vào vài cái bàn gọn gàng. Mỗi cái bàn chỉ chứa đúng những gì cần cho nhiệm vụ đó, không thừa thứ gì. Khối lượng công việc vẫn được hoàn thành, nhưng không phần nào phải gánh quá nhiều so với sức chứa của nó.
Một AI điều phối, nhiều trợ thủ AI
Bây giờ, hãy mở rộng ý tưởng đó cho nhiều AI cùng tham gia. Trong một hệ thống đa tác nhân (multi-agent), nhiều AI làm việc với nhau. Một AI đóng vai trò dẫn dắt sẽ chia công việc thành nhiều phần nhỏ, rồi giao từng phần cho các AI trợ thủ. Mỗi AI trợ thủ xử lý phần việc của mình trong một ngữ cảnh riêng, tách biệt với các trợ thủ khác. AI dẫn dắt này được gọi là orchestrator, hay mô hình điều phối. Có thể hiểu nó giống như bếp trưởng trong một nhà bếp. Mô hình điều phối không tự làm hay tự nghiên cứu mọi thứ. Thay vào đó, nó quyết định công việc cần được chia thành những phần nào và AI nào sẽ phụ trách từng phần.
Điều xảy ra tiếp theo mới là phần giúp mọi thứ không bị rối tung. Mỗi trợ thủ tự tìm hiểu một phần của vấn đề trong phạm vi riêng, rồi gửi lại một bản tóm tắt ngắn gọn và có chọn lọc, thay vì đưa về cả đống chi tiết thô. Ví dụ, một trợ thủ được giao tìm hiểu về quán ăn sẽ không mang về toàn bộ thực đơn và mọi bài đánh giá đã đọc. Thay vào đó, nó chỉ trả về một danh sách đã được rút gọn và sắp xếp rõ ràng. Sau đó, AI chính sẽ dẫn dắt quá trình và ghép các bản tóm tắt này thành một câu trả lời hoàn chỉnh. Cách làm này giống như trong một căn bếp. Người phụ trách trạm nướng không kể lại cho bếp trưởng từng lần lật hay từng phút để miếng bít tết nghỉ. Họ chỉ đưa ra một đĩa đã hoàn thành, rồi bếp trưởng kết hợp vài đĩa hoàn chỉnh lại thành cả bữa ăn, thay vì phải xử lý từng nguyên liệu nhỏ lẻ.
Còn một lý do thứ hai, tinh tế hơn, cho thấy vì sao các bản tóm tắt ngắn lại quan trọng. Vấn đề không chỉ là có bao nhiêu thông tin, mà còn là thông tin nằm ở đâu. AI thường dùng dữ kiện tốt nhất khi chúng xuất hiện ở gần đầu hoặc gần cuối phần nội dung nó đang đọc. Những dữ kiện nằm sâu ở giữa dễ bị bỏ sót,1 giống như khi bạn đọc một danh sách đi chợ dài, bạn có thể quên món thứ tư nhưng vẫn nhớ món đầu tiên và món cuối cùng. Một bản tóm tắt cô đọng giúp giữ các ý quan trọng ở gần đầu và cuối, nơi mô hình dễ nhận ra và sử dụng chúng hơn. Vì vậy, mỗi phần nội dung nên được giữ ngắn gọn. Ngắn gọn không chỉ giúp văn bản gọn gàng hơn, mà còn giúp mô hình tìm đúng những thông tin quan trọng khi cần.
Cái giá của việc dùng nhiều trợ thủ AI
Nghe đến đây có vẻ như ta chỉ được thêm lợi ích mà không mất gì: có thêm người hỗ trợ, câu trả lời tốt hơn, bàn ghế sạch hơn. Nhưng thật ra không miễn phí. Mỗi trợ thủ đều tiêu tốn một phần tài nguyên, và với AI thì chi phí đó là tài nguyên tính toán. Chạy nhiều AI cùng lúc sẽ tốn nhiều tài nguyên hơn nhiều so với một cuộc trò chuyện đơn lẻ. Điều này giống như một gian bếp bận rộn cần nhiều đầu bếp hơn và cần không gian lớn hơn để họ làm việc. Vì vậy, bạn chỉ nên tăng thêm lực lượng vào những lúc thật sự cần.
Cần nói rõ chi phí này lớn đến mức nào, vì nó thường cao hơn nhiều người nghĩ. Anthropic cho biết hệ thống dùng nhiều tác nhân của họ tiêu tốn số token gấp khoảng 15 lần so với một cuộc trò chuyện thông thường, còn một tác nhân đơn lẻ cũng tốn khoảng 4 lần.2 Token là các đơn vị nhỏ mà mô hình đọc và tạo ra, vì vậy dùng nhiều token hơn đồng nghĩa với chi phí cao hơn. Cách bố trí nhiều tác nhân có thể giúp hệ thống nhanh hơn và xử lý rộng hơn, nhưng lợi ích đó đi kèm một cái giá thật sự. Đây là khoản chi bạn nên chủ động quyết định, thay vì vô tình tạo ra do thiết kế không cẩn thận. Một vài trợ thủ được dùng đúng loại việc có thể rất đáng tiền. Nhưng cũng từng ấy trợ thủ, nếu dùng sai việc, chỉ khiến hóa đơn tăng lên mà câu trả lời lại kém hơn.
Vì sao nhiều trợ thủ hơn chưa chắc tốt hơn
Người ta dễ nghĩ rằng nếu vài trợ thủ có thể giúp câu trả lời tốt hơn, thì càng nhiều trợ thủ AI sẽ càng cho kết quả hay hơn và nhanh hơn. Nhưng thực tế không phải lúc nào cũng vậy. Mỗi trợ thủ được thêm vào đều làm tăng chi phí tính toán. Nếu dùng quá nhiều trợ thủ cho một câu hỏi đơn giản, quá trình có thể trở nên chậm hơn, rối hơn và kém hiệu quả hơn. Hãy tưởng tượng một gian bếp: nếu giao cho mười lăm đầu bếp cùng phết bơ lên một lát bánh mì nướng, lát bánh không vì thế mà xong nhanh hơn. Ngược lại, gian bếp sẽ trở nên chật chội, lộn xộn và mọi người có thể tranh cãi quanh chiếc máy nướng bánh.
Đây không phải là chuyện giả định. Anthropic phát hiện rằng một số phiên bản đầu trong hệ thống của họ từng tạo ra tới năm mươi trợ thủ chỉ để xử lý những truy vấn rất đơn giản. Các trợ thủ này còn đi khắp web để tìm những nguồn không hề tồn tại.3 Đó là một hình ảnh vừa phi lý vừa đáng suy nghĩ: rất nhiều công sức được bỏ ra, nhưng lại không được dùng vào việc thật sự hữu ích. Bài học quan trọng mà đội ngũ rút ra là: thành công đến từ việc chia nhỏ những nhiệm vụ thật sự lớn và có thể làm song song, chứ không phải từ việc đưa trợ thủ vào mọi tình huống. Khi một nhiệm vụ lớn có thể tự nhiên tách thành nhiều phần độc lập, cách chia việc sẽ phát huy tác dụng. Nhưng khi nhiệm vụ nhỏ, chỉ cần một cách xử lý gọn gàng là đủ. Gọi thêm cả một nhóm trợ thủ trong trường hợp đó chỉ làm tăng chi phí và gây thêm rối rắm.
Bạn có thể hiểu ý tưởng này trong khoảng mười phút chỉ với một chatbot bình thường. Hãy chọn một yêu cầu cụ thể và quan trọng, chẳng hạn: "Lên kế hoạch cho mình một chuyến đi Tokyo trong ba ngày", rồi thử yêu cầu đó theo hai cách khác nhau.
Trước tiên, hãy thử hỏi mọi thứ trong một tin nhắn duy nhất: vé máy bay, khách sạn, quán ăn, lịch trình từng ngày và danh sách đồ cần mang theo. Tất cả được gộp vào cùng một prompt. Hãy xem kết quả nhận được như thế nào. Sau đó, bắt đầu lại từ đầu và chia cùng chuyến đi đó thành nhiều cuộc trò chuyện riêng. Một cuộc trò chuyện chỉ dành cho lịch trình từng ngày, một cuộc trò chuyện khác chỉ dành cho ý tưởng quán ăn, và một cuộc trò chuyện nữa chỉ dành cho danh sách đồ cần mang theo. Hãy để mỗi chủ đề có một không gian riêng, rõ ràng và không bị lẫn với các phần khác.
Bây giờ hãy so sánh hai phiên bản. Hãy chú ý xem phiên bản nào giữ được sự tập trung và nhiều chi tiết hơn. Cũng hãy để ý rằng khi một câu trả lời phải xử lý quá nhiều thứ cùng lúc, nó rất dễ trở nên hời hợt hoặc âm thầm bỏ sót vài phần. Ví dụ, danh sách đồ cần mang theo có thể bị rút gọn thành một mục thêm vào cho có, hoặc ngày thứ ba trong lịch trình có thể trở nên sơ sài hơn. Bạn đang thấy việc nhồi nhét quá nhiều thông tin diễn ra ngay trước mắt. Phiên bản được chia nhỏ không thông minh hơn. Nó chỉ đơn giản là không bắt một phần ngữ cảnh duy nhất phải gánh nhiều hơn mức nó có thể xử lý thoải mái.
- Tìm hiểu và đề xuất lịch trình tham quan Tokyo trong 3 ngày theo từng khu vực.
- Lập danh sách các điểm tham quan nổi bật, kèm thời gian mở cửa và thời lượng tham quan gợi ý.
- Nghiên cứu phương tiện di chuyển trong Tokyo, bao gồm tàu điện, metro, thẻ đi lại và tuyến đường giữa các điểm chính.
- Đề xuất khu vực lưu trú phù hợp cho chuyến đi 3 ngày, so sánh ưu nhược điểm của từng khu.
- Tìm khách sạn hoặc chỗ ở phù hợp với ngân sách, vị trí thuận tiện và đánh giá tốt.
- Lập danh sách nhà hàng, quán ăn địa phương và món nên thử theo từng khu vực trong lịch trình.
- Ước tính ngân sách tổng thể cho chuyến đi, bao gồm chỗ ở, ăn uống, di chuyển, vé tham quan và mua sắm. …
Khi nhận một việc lớn, mô hình dẫn dắt không cố làm hết mọi thứ cùng lúc. Thay vào đó, mô hình chia công việc thành các phần nhỏ, rõ ràng và độc lập. Thực ra, mô hình đề xuất chia thành mười phần. Mỗi phần có một trợ thủ riêng, có thể tự xử lý phần việc của mình.
Kỹ năng chia việc giúp cả người và AI làm tốt hơn
Bỏ qua các lớp token và những mô hình điều phối, điều còn lại là một sự thật cũ và rất đời thường. Đây là kỹ năng giúp một người quản lý làm việc tốt, hoặc giúp một đầu bếp giữ được bình tĩnh: một việc lớn nếu bị làm vội trong một lần thường cho kết quả kém hơn so với khi được chia thành nhiều phần nhỏ, rõ ràng và tập trung. Điều này đúng dù người thực hiện là con người hay máy móc. Bạn có lẽ đã thấy điều đó trong cuộc sống hằng ngày. Chương này chỉ cho thấy AI cũng tuân theo quy luật ấy. Vì vậy, ngay từ đầu, bạn có thể áp dụng bằng cách giao cho AI từng phần việc rõ ràng, thay vì đưa cho nó một khối lượng công việc quá lớn và khó xử lý.
Nhưng chia nhỏ công việc mới chỉ là một phần của việc làm nghề. Phần còn lại là chọn đúng công cụ và cách sắp xếp phù hợp cho từng việc nhỏ ngay từ đầu. Đó sẽ là nội dung của chương tiếp theo.
Nguồn
- 1.Nelson F. Liu và cộng sự, "Lost in the Middle: How Language Models Use Long Contexts," Transactions of the Association for Computational Linguistics 12 (2024), aclanthology.org/2024.tacl-1.9/. Nghiên cứu thấy hiệu năng mô hình cao nhất khi thông tin liên quan nằm ở đầu hoặc cuối ngữ cảnh đầu vào và suy giảm đáng kể khi mô hình phải truy hồi thông tin từ khúc giữa của một ngữ cảnh dài.
- 2.Anthropic, "How we built our multi-agent research system," anthropic.com/engineering/multi-agent-research-system. Anthropic báo cáo rằng các hệ đa tác nhân dùng token nhiều hơn khoảng 15 lần so với một đoạn chat, và rằng một agent thường dùng token nhiều hơn khoảng 4 lần so với một lượt chat.
- 3.Anthropic, "How we built our multi-agent research system," anthropic.com/engineering/multi-agent-research-system. Anthropic lưu ý rằng những phiên bản đầu của hệ này từng mắc những lỗi như tung ra 50 trợ thủ cho những truy vấn đơn giản và sục sạo khắp web tìm những nguồn không hề tồn tại.