Những bài học rút ra sau khi xử lý 500 triệu token GPT
(kenkantzer.com)- Trong 6 tháng gần đây, Truss đã vận hành các tính năng lấy LLM làm trung tâm và xử lý hơn 500 triệu token bằng các mô hình OpenAI, từ đó tổng hợp những giới hạn thực tế gặp phải trong các tác vụ tóm tắt, phân tích và trích xuất văn bản B2B
- Prompt không hề ổn định hơn khi nhồi quá nhiều chỉ dẫn chi tiết, và với những kiến thức thường thức mà GPT vốn đã biết, chỉ dẫn ngắn hơn, ít cụ thể hơn đôi khi lại cho kết quả tốt hơn
- Ngay cả khi không dùng Langchain, JSON mode, function calling hay assistants, họ vẫn vận hành được nhiều tính năng chỉ với API
chatvà một hàm trích xuất JSON; phần mã cốt lõi chỉ là một hàm 40 dòng cùng xử lý lỗi và tự động cắt bớt đầu vào - GPT yếu trong việc xử lý giả thuyết không (null hypothesis) như “nếu không có thì trả về giá trị rỗng”, đồng thời cũng yếu với đầu ra dài; tách biệt với cửa sổ đầu vào 128k của GPT-4, đầu ra vẫn chỉ quanh mức 4k
- RAG và vector DB không phù hợp lắm với các tác vụ trích xuất văn bản có phạm vi hẹp của Truss; phân tích, tóm tắt, trích xuất khi đưa vào toàn bộ ngữ cảnh thì đáng tin cậy, nhưng vấn đề sẽ lớn hơn khi đầu vào trống hoặc không có thông tin liên quan
Phạm vi sử dụng và các giả định
- Trong 6 tháng qua, Truss đã ra mắt một vài tính năng lấy LLM làm trung tâm, với tổng mức sử dụng ước tính nhỉnh hơn 500 triệu token
- Các mô hình được dùng thuộc họ OpenAI, và tỷ lệ sử dụng token là GPT-4 85%, GPT-3.5 15%
- Dữ liệu được xử lý chỉ là văn bản; không bao gồm các tính năng phi văn bản như
gpt-4-vision, Sora hay Whisper - Bối cảnh sản phẩm là B2B, và các tác vụ chính là tóm tắt, phân tích, trích xuất
- 500 triệu token tương đương khoảng 750.000 trang văn bản
Prompt có thể tốt hơn khi bớt cụ thể
- Với những kiến thức phổ quát mà GPT đã biết, nếu nhét vào quá nhiều danh sách và chỉ dẫn chính xác thì kết quả đôi khi lại tệ hơn
- Một pipeline phải phân loại xem mỗi khối văn bản liên quan đến bang nào trong 50 bang của Mỹ hoặc chính phủ liên bang
- Prompt ban đầu đưa danh sách ID của 50 bang và
federalvào trườnglocality_iddưới dạng JSON rồi yêu cầu chọn - Cách này hoạt động khoảng trên 98%, nhưng số lần thất bại vẫn đủ nhiều để phải điều tra thêm
- Prompt ban đầu đưa danh sách ID của 50 bang và
- Một trường khác là
namethì dù không yêu cầu rõ ràng, mô hình vẫn trả về ổn định tên đầy đủ chính xác của bang- Sau đó họ đổi sang cách tìm bang bằng cách tra cứu chuỗi xuất hiện trong
name, và nó hoạt động tốt
- Sau đó họ đổi sang cách tìm bang bằng cách tra cứu chuỗi xuất hiện trong
- Cách tiếp cận tốt hơn là dùng một prompt kiểu giao cho thường thức, như “bạn biết 50 bang, hãy trả về tên đầy đủ của bang tương ứng hoặc Federal”
- Cũng có vài quan sát phụ
- Lỗi xảy ra thường xuyên hơn với các bang bắt đầu bằng chữ M như Maryland, Maine, Massachusetts, Michigan
- Khi bắt mô hình chọn ID từ danh sách, một JSON dễ nhìn với mỗi bang trên một dòng ít gây nhầm lẫn hơn danh sách nối bằng dấu phẩy
API và lớp trừu tượng vẫn được giữ đơn giản
- Trong trường hợp này, Langchain gần như là một lớp trừu tượng hóa quá sớm, và ngay cả sau hàng triệu token cùng 3–4 tính năng production khác nhau, file
openai_servicevẫn chỉ còn một hàm dài 40 dòng - API thực sự được dùng chỉ là
chat- Luôn trích xuất JSON
- Không cần JSON mode, function calling hay assistants
- Cũng không dùng system prompt
- Khi
gpt-4-turbora mắt, họ chỉ thay đúng một chuỗi trong codebase
- Phần lớn các hàm còn lại lo xử lý lỗi như lỗi 500 từ OpenAI hay việc socket bị đóng
- Các lỗi này đã được cải thiện, và xét đến tải của OpenAI thì điều đó cũng không có gì đáng ngạc nhiên
- Giới hạn độ dài ngữ cảnh được xử lý bằng cơ chế tự cắt bớt
- Nếu độ dài chuỗi lớn hơn
model_context_size * 3thì sẽ cắt - Khi có rất nhiều dấu chấm hoặc chữ số, tỷ lệ token có thể thấp hơn 1 token cho 3 ký tự nên cách này có thể thất bại
- Nếu gặp
context_length_exceeded, họ sẽ cắt lại theo ngưỡngmodel_context_size * 3 / 1.3rồi thử lại
- Nếu độ dài chuỗi lớn hơn
UX streaming khó mà đánh giá thấp
- Ban đầu, việc dùng API streaming để giảm độ trễ và hiển thị cho người dùng các ký tự xuất hiện với tốc độ thay đổi trông giống một trò tiểu xảo
- Nhưng người dùng thực tế lại phản hồi rất tích cực với hiệu ứng “gõ chữ” ở tốc độ biến thiên đó
- Trải nghiệm này giống như một khoảnh khắc kiểu UX chuột/con trỏ trong thế giới AI
Kết quả rỗng và đầu ra dài là điểm yếu
- “Nếu không tìm thấy thì trả về đầu ra rỗng” gần như là kiểu câu trong prompt gây lỗi nhiều nhất
- Ý ở đây không phải là hoàn toàn không in gì ra, mà là trả về dạng biểu diễn giá trị rỗng như
{value: ""} - Vấn đề không hẳn là vượt giới hạn đầu ra, mà gần hơn với việc mô hình gặp khó trong đánh giá giả thuyết không
- Ý ở đây không phải là hoàn toàn không in gì ra, mà là trả về dạng biểu diễn giá trị rỗng như
- Khi cần trả về giá trị rỗng, GPT đôi khi chọn bịa ra; ngược lại, đôi lúc do thiếu tự tin nó lại trả về giá trị rỗng quá thường xuyên
- Khi có một lỗi khiến khối văn bản đầu vào có thể bị trống, hiện tượng bịa đặt xảy ra rất nặng
- Ví dụ xuất hiện các tên tiệm bánh giả như Sunshine Bakery, Golden Grain Bakery, Bliss Bakery
- Cách xử lý là nếu không có văn bản thì đừng gửi prompt đi ngay từ đầu
- GPT-4 có thể có cửa sổ đầu vào 128k token, nhưng cửa sổ đầu ra vẫn chỉ quanh mức 4k
- Cách gọi “context window” dễ khiến người ta nhầm giữa đầu vào và đầu ra
- Khi yêu cầu trả về danh sách đối tượng JSON, ngay cả với đối tượng đơn giản cũng khó vượt quá 10 mục
- Nếu yêu cầu 15 mục thì ước tính chỉ thành công khoảng 15%
- Ngay cả khi dừng ở mức 10 mục, đầu ra cũng chỉ khoảng 700–800 token
- Có thể lách giới hạn đầu ra bằng cách yêu cầu từng mục một rồi đưa kết quả trước đó trở lại vào prompt, nhưng như vậy sẽ thành kiểu chơi trò truyền tin với GPT và phải đụng đến các công cụ như Langchain
RAG và vector DB không hợp với ca sử dụng này
- Trong trường hợp của Truss, vector DB và RAG/embedding phần lớn là không mấy hữu ích
- Họ cho rằng vector DB và RAG hợp với bài toán search hơn, đặc biệt là search thực thụ như Google hay Bing
- Vấn đề cốt lõi là tiêu chí về độ liên quan
- Không có ngưỡng cắt rõ ràng cho mức độ liên quan
- Có thể dùng các cách như rerank của Cohere hoặc heuristic tự xây, nhưng không ổn định
- Kết quả tìm kiếm có thể bị nhiễm bởi kết quả không liên quan, hoặc ngược lại quá bảo thủ đến mức bỏ lỡ kết quả quan trọng
- Việc lưu vector trong một DB chuyên biệt, tách khỏi dữ liệu thông thường, cũng gây tổn thất đáng kể
- Nếu không ở quy mô Google hay Bing, họ cho rằng mất mát ngữ cảnh này không đủ đáng để đánh đổi
- Trong các ứng dụng doanh nghiệp, người dùng search thường là chuyên gia trong miền đó
- Họ cho rằng người dùng không thích semantic search kiểu đoán cả những ý nghĩa mà chính họ không hề gõ vào
- Với đa số trường hợp search, có thể tốt hơn nếu dùng LLM như một completion prompt thông thường để chuyển truy vấn của người dùng thành faceted search, truy vấn phức tạp hoặc SQL
- Cách này không phải RAG
Ảo giác giảm mạnh khi ngữ cảnh đủ đầy
- Đa số ca sử dụng của Truss là kiểu “đưa một khối văn bản vào rồi trích xuất thứ gì đó từ đó”
- Nếu yêu cầu tên công ty được nhắc tới trong văn bản, GPT thường không tự dưng trả về công ty ngẫu nhiên
- Tuy vậy, khi văn bản không có công ty nào thì vấn đề giả thuyết không lại xuất hiện
- Trong code cũng vậy, khi GPT viết lại khối mã đã được đưa vào, nó hiếm khi bịa ra biến hay tự ý chèn lỗi chính tả giữa chừng theo nghĩa ảo giác
- Nhưng nếu yêu cầu nó tạo ra thứ gì đó mới, nó có thể bịa cả sự tồn tại của hàm trong standard library
- Điều này cũng gần với vấn đề không biết cách nói “tôi không biết”
- Với các tác vụ cung cấp toàn bộ ngữ cảnh để phân tích, tóm tắt, trích xuất, họ thấy mô hình rất đáng tin cậy
- Nó gần với một cấu trúc kiểu “đưa dữ liệu tốt vào thì nhận lại phản hồi token GPT tốt”
Nhận định về triển vọng sắp tới
- Họ cho rằng chỉ với transformer hiện tại, dữ liệu Internet và hạ tầng trị giá hàng chục tỷ USD thì vẫn chưa thể đạt AGI
- GPT-4 không phải chiêu tiếp thị mà là một công nghệ hữu ích 100%, và hiện vẫn đang ở giai đoạn giống thời kỳ đầu của Internet
- Đây không phải công nghệ sẽ sa thải tất cả mọi người
- Nhưng nó giúp hạ thấp rào cản tiếp cận ML/AI vốn trước đây gần như chỉ Google mới có
- Với Claude, Gemini v.v., họ chưa làm A/B test nghiêm ngặt
- Nhưng khi thử trong công việc coding hằng ngày, họ cảm thấy các mô hình này chưa thật sự gần GPT-4 ở những khác biệt tinh tế về khả năng hiểu đúng ý định
- Họ cho rằng không cần phải chạy theo mọi làn sóng LLM/AI
- Nếu nhìn qua The Bitter Lesson và tin rằng hiệu năng của mô hình tổng quát quan trọng hơn các tối ưu chuyên biệt, thì chỉ cần quan tâm GPT-5 có ra hay không là đủ
- Ngoài các mảng riêng biệt như Sora, phần lớn các bản phát hành trung gian của OpenAI gần như chỉ là nhiễu
- GPT-5 có khả năng chỉ là cải tiến dần dần hơn là thay đổi mọi thứ
- Khi chuyển từ GPT-3 sang GPT-3.5, người ta từng kỳ vọng nếu tăng cường độ huấn luyện gấp 2 thì hiệu năng sẽ tăng siêu tuyến tính lên 2,2 lần
- Nhưng thực tế trông giống tăng trưởng theo log hơn, và để có cải tiến dần dần thì tốc độ token lẫn chi phí trên mỗi token lại tăng theo cấp số nhân
- GPT-4 có thể là điểm tối ưu cho bộ tác vụ hiện tại
- Họ sẵn sàng trả chi phí gấp 20 lần để dùng GPT-4 thay cho GPT-3.5, nhưng có lẽ sẽ không trả thêm gấp 20 lần mỗi token để đi từ GPT-4 lên GPT-5
- GPT-5 có thể phá vỡ nhận định này, hoặc cũng chỉ giống như nâng từ iPhone 4 lên iPhone 5
1 bình luận
Ý kiến trên Hacker News
Nhóm tôi phụ trách đang xử lý hơn 5 tỷ token mỗi tháng và con số này vẫn tiếp tục tăng; chúng tôi đã rút ra vài bài học
Thứ nhất, có quá nhiều lớp trừu tượng hóa quá sớm. Những công cụ như Langchain có thể hữu ích vào một ngày nào đó, nhưng rốt cuộc prompt cũng chỉ là lời gọi API, và thay vì coi lời gọi LLM là thứ gì đó đặc biệt, xử lý nó bằng mã tiêu chuẩn như một lời gọi API không ổn định sẽ dễ hơn
Thứ hai, ảo giác chắc chắn là một vấn đề lớn. Tóm tắt thì qua kiểm thử khá vững, nhưng suy luận thì thật sự khó; các mô hình hành động nhận đầu vào từ người dùng rồi để LLM quyết định hành động tiếp theo đặc biệt khó ở phần hiểu ngữ cảnh và khiến nó nói “không chắc”. Dù vậy, riêng việc có thể làm được điều này đã thay đổi cuộc chơi
Thứ ba, tôi nghiêng về phía “thay đổi cuộc chơi” hơn tác giả một chút, nhưng không nghĩ thế giới sẽ tận thế. Một số nghề sẽ bị ảnh hưởng lớn, và có thể sẽ có vài năm khó khăn khi bot thao túng dư luận trên các nền tảng. Nhìn chung, nó có vẻ giống một bộ khuếch đại năng lực hơn là một đột phá kiểu Internet
Cá nhân tôi thấy nó giống với sự chuyển dịch DevOps những năm 2000. Giờ không cần một đội chuyên trách khổng lồ để hỗ trợ triển khai nữa; người ta tuyển một số ít chuyên gia và phần lớn mua giải pháp có sẵn. Tương tự, một số công việc machine learning giờ đã trở nên đủ dễ để một web developer như tôi cũng có thể triển khai
Sự tiến hóa của DevOps cũng có những đánh đổi. Ví dụ, hệ quả trực tiếp của việc “cứ dùng AWS RDS là được” là các năng lực cốt lõi như quản trị cơ sở dữ liệu bị mai một, còn hóa đơn cloud thì tăng vọt. Đặc biệt, chi phí vận hành của các startup không có quy mô dữ liệu hay độ phức tạp khu vực quá lớn cũng tăng lên, và tôi cho rằng xu hướng này cũng dẫn đến những sự cố tương tự vụ gián đoạn lớn của GitLab
Điều này giống như khi bảo ai đó đoán mặt sấp/ngửa của đồng xu và họ trả lời “mặt ngửa”: trước khi trả lời, họ có thể nói về sự bất định như Pr[mặt ngửa] = .5, nhưng trong dự đoán thực tế và kết quả tung đồng xu, sự bất định đó biến mất. Với LLM cũng vậy, sự bất định trong quá trình tính toán biến mất ở dự đoán token cuối cùng, nên trừ khi bản thân dự đoán là một biểu đạt về sự bất định, đầu ra kiểu “tôi không hiểu” hầu như sẽ không xuất hiện. Nhưng lý do là vì ngay từ đầu nó không hiểu mà chỉ dự đoán
Về cơ bản, tôi cho rằng chúng ta đang dùng GPT như một thứ tương đương PaaS/Heroku/Render trong vận hành AI
Tôi tò mò về đoạn “chúng tôi luôn trích xuất JSON. Không cần chế độ JSON”. Trong trường hợp của tôi thì nó hoạt động khá tốt
Tôi thật sự đồng tình với câu “Bài học 4: GPT rất kém trong việc tạo giả thuyết không”. Hôm qua tôi cũng đang thử nghiệm prompt về các quy tắc chỉnh sửa văn bản và viết ở cuối: “Nếu không có quy tắc nào áp dụng cho văn bản, hãy trả về nguyên văn không thay đổi”
Bạn biết ChatGPT đã trả lời gì với một văn bản không áp dụng bất kỳ quy tắc nào không? Nó trả về đúng nguyên chuỗi “The original text without any changes”
Trước đây khi tạo hình ảnh ba người phụ nữ uống rượu trong một khu vườn đẹp cho bài tarot, tôi thêm “lush vegetation” ở cuối prompt, và do tính đa nghĩa của từ lush, bầu không khí thanh lịch đã biến thành cảm giác nữ sinh đại học tiệc tùng với mũi đỏ
Viết prompt tốt hơn thì có thể dùng mô hình rẻ hơn
“Nếu không tìm thấy gì thì đừng trả về gì cả” là cách cấp 0 để cho LLM một lối thoát. Tốt hơn là nên cho một lối thoát mềm hơn. Ví dụ, viết kiểu “Nếu không có đủ thông tin để đưa ra một phát biểu chắc chắn, bạn có thể nêu giả thuyết miễn là nói rõ rằng mình đang làm vậy và ghi ra căn cứ cùng nền tảng logic của giả thuyết”, rồi cuối cùng yêu cầu nó tự đánh giá câu trả lời của mình
Nếu không có phương pháp tự động, bạn phải kiểm thử lặp đi lặp lại phản hồi của mô hình trên nhiều đầu vào khác nhau để hiểu nó diễn giải yêu cầu ra sao, thất bại ở đâu, rồi lấp các lỗ hổng đó. Thậm chí còn phải kiểm chứng xem mô hình có biết nothing nghĩa là gì hay không
Tôi đăng ký cả 3 dịch vụ hàng đầu trong lĩnh vực LLM và thường xuyên đưa cùng một prompt cho chúng, và GPT-4 có lợi thế rất áp đảo. Thật đáng ngạc nhiên dù GPT-4 đã ra mắt được 1 năm và trong thời gian đó đã có vài lần cập nhật
Ít nhất với kiểu sử dụng của tôi, hiện tượng ảo giác cũng khá hiếm. Trong khi đó Claude khi viết code lại khá dễ bịa ra những API nghe có vẻ hợp lý nhưng không tồn tại. GPT-4 cứng rắn hơn và ít hùa theo hơn khi nó biết mình đúng. Những khác biệt này gần như không thể hiện trên các chỉ số, nên phải tự dùng mới thấy được
Ngay cả trong các tác vụ lập trình, tôi thường yêu cầu giải thích chủ đề hoặc code hơn là bắt nó viết code, và nó có xu hướng đưa ra câu trả lời tinh tế hơn nhiều. Khi đưa một văn bản dài và trò chuyện, Claude Opus cho cảm giác hiểu nội dung sâu hơn; GPT-4 thì thường dừng ở mức tóm tắt văn bản được đưa vào, còn Claude suy luận và mở rộng tốt hơn
Tuy nhiên, với prompt được xây dựng tốt, Claude Opus có xu hướng cho đầu ra tốt hơn GPT-4. Claude linh hoạt hơn và đưa ra câu trả lời dài hơn, trong khi ChatGPT/GPT-4 thường nghe như kiểu trả lời ngắn và “điển hình” đặc trưng của nó
Trong các ví dụ code tôi yêu cầu, code do GPT-4 tạo ra nhiều khi thậm chí không biên dịch được, còn với Claude thì gần như không gặp chuyện đó
Bài test giấy quỳ tôi hay dùng gần đây là “hãy cho tôi biết 10 quán bar độc đáo trong bán kính 200 dặm từ Austin”. Câu này cực khó với tất cả, GPT-4 còn tạm gần đúng, nhưng Claude thì bịa ra luôn, còn Gemini thì sụp hoàn toàn
GPT rất tuyệt, nhưng tôi không đồng ý mạnh với cách diễn giải trong hai đoạn của bài viết
Có thể tóm tắt rằng cách tiếp cận tốt hơn là kiểu “GPT này, bạn rõ ràng biết 50 tiểu bang, nên hãy đưa tên đầy đủ của tiểu bang tương ứng, hoặc trả lời Federal nếu thuộc chính phủ Mỹ”
Nhưng tôi nghĩ diễn giải rằng khi nói mơ hồ hơn thì chất lượng và khả năng khái quát hóa của GPT tốt hơn là dấu hiệu điển hình của ủy quyền/tư duy bậc cao thì hơi quá. Ngôn ngữ tự nhiên là đầu ra có xác suất cao nhất đối với GPT, vì nó giống với văn bản đã được huấn luyện. Trong trường hợp này, nhà phát triển chỉ dựa nhiều hơn vào thứ GPT làm tốt, chứ không phải giao thêm việc cho nó
Có nhiều tác vụ đơn giản khiến GPT thất bại. Những việc như thay thế chữ cái, cố ý tạo lỗi chính tả rất khó với GPT. Mapping ID cũng vậy, đặc biệt khi mapping đó khác xa những gì nó đã thấy trong quá trình huấn luyện. Ví dụ như các mã ba chữ cái tương tự nhưng không phải mã quốc gia ISO
Điểm thú vị là bản thân việc GPT “hiểu” được mapping. Tôi nghĩ đó mới là manh mối thực sự của khớp mẫu bậc cao
Mẹo cho vấn đề ‘null’: LLM được tạo ra để xuất token, chứ không phải để không xuất token
Vì vậy thay vì nói “đừng trả về gì cả”, hãy bảo nó “trả về giá trị mặc định của XYZ” khi không có kết quả, rồi tìm kiếm văn bản giá trị mặc định đó, ví dụ XYZ, trong kết quả như khi tìm tên tiểu bang
Ngoài ra system prompt có thể rất hữu ích. Về cơ bản đó là cơ hội để cho LLM nhập vai X. Sẽ tốt hơn nếu có thể truyền trực tiếp system prompt, nhưng dù sao vẫn hơn là không có
Việc GPT không thể trả về đúng danh sách hơn 10 đối tượng JSON là vấn đề prompt. Tôi từng khiến nó trả về ổn định tới 200 mục theo đúng thứ tự
Mẹo là hoàn toàn không dùng danh sách, mà dùng các khóa JSON trong đầu ra như
"item1": {...}. Khi với một đầu vào có thể có 0~n đầu ra, có thể dùng danh sách làm giá trịNếu đưa cho GPT-4 một danh sách các mục hiện có với cấu trúc đã định nghĩa và yêu cầu chuyển thành JSON kiểu như chuyển đổi schema, nó làm tốt cả ngày. Nhưng nếu cần bất kỳ kiểu suy luận nào và thực chất phải tự tạo danh sách của nó, nó chỉ đưa ra một tập con rất hạn chế
Các LLM khác cũng có vấn đề tương tự. Tôi rất tò mò bạn tiếp cận như thế nào
Các tác vụ như “trích xuất tên công ty từ khối văn bản” có thể chia thành hai bước
Trước tiên hỏi “trong khối văn bản này có công ty nào được nhắc đến không?”, nếu không thì ta có kết quả null. Nếu có, hãy hỏi “hãy liệt kê tên các công ty trong khối văn bản này”
Tôi đang dùng mô hình OpenAI trong một ứng dụng viết cá nhân, và bài này thật sự chính xác. Tôi đã học được một điều liên quan đến Bài học 1: “prompt càng ít càng tốt”
Khi xây dựng tính năng tìm kiếm thông minh cho ghi chú, tôi đã cố để ChatGPT trả về dữ liệu JSON có cấu trúc. Ví dụ hỏi “hãy đưa tất cả ghi chú của tôi trong 2 năm qua có nhắc đến Haskell và được đánh dấu là bản nháp”, rồi để ChatGPT tự phán đoán cần trả về gì. Cách này chỉ thỉnh thoảng hoạt động
Thay vào đó, tôi đưa dữ liệu vào cơ sở dữ liệu SQLite, gửi schema cho ChatGPT, rồi nhờ nó viết truy vấn trả về kết quả mong muốn; cách này hoạt động tốt hơn nhiều
response_format=json_objectchưaGọi hàm phù hợp hơn để nhận phản hồi có cấu trúc, nhưng nó có nhiều ràng buộc hơn so với việc chỉ nhận phần thân JSON
Ví dụ về việc chỉ dẫn quá chính xác lại làm giảm độ chính xác nghe có lý theo hiểu biết còn thô sơ của tôi về cách các hệ thống này hoạt động
Nếu đưa toàn bộ danh sách tiểu bang vào, tức là phần nào kích hoạt các vector cho mọi tiểu bang. Nếu chỉ nói “state” và văn bản truyền vào có một tiểu bang rõ ràng, thì ít vector liên quan đến mục tiêu cần tìm được kích hoạt hơn. Vì vậy khi thực hiện softmax, khả năng chọn đúng tiểu bang sẽ cao hơn
Cùng mạch đó, so sánh giữa
/nvà dấu phẩy có lẽ cũng rất có khả năng là do khác biệt token hóa