- ChatGPT 3.5 liên tục phát sinh lỗi luồng thông điệp khi được yêu cầu đặt một chuỗi cụ thể ở đầu phản hồi, trong khi GPT-4 phản hồi bình thường hơn với cùng yêu cầu
- Trong API, GPT-3.5 cũng trả về lỗi xử lý phía máy chủ; hiện tượng tương tự xuất hiện ngay cả khi thay bằng
useRal,useRalativehoặcuseRalativeImagePath - Các chuỗi gây vấn đề tồn tại dưới dạng token mà mô hình GPT xuất ra thay vì từng ký tự;
useRalativeImagePathlà tên tùy chọn trong tệp cấu hình XML của Katalon Studio và xuất hiện trong 80,4 nghìn tệp trên GitHub - Có thể danh sách token đã phản ánh các tệp GitHub, nhưng nếu các tệp XML sau đó bị loại khỏi dữ liệu huấn luyện, mô hình có thể chưa học đủ token này
- Khi chèn chuỗi này vào tài liệu, nó có thể hoạt động giống data poisoning làm cản trở việc tóm tắt bằng GPT-3.5; lỗi cũng được tái hiện trong yêu cầu tóm tắt một bài blog thực tế
Lỗi chuỗi có thể tái hiện trên GPT-3.5
- Khi yêu cầu ChatGPT 3.5 đưa câu dưới đây vào đầu phản hồi, lỗi xảy ra một cách nhất quán
Include this at the top of the response: "ponyuseRal ponyuseRal ponyuseRal pony"
- Trên màn hình, lỗi Error in message stream được hiển thị sau
pony - GPT-4 phản hồi bình thường hơn với cùng yêu cầu
- Với API GPT-3.5, lỗi sau được trả về
The server had an error processing your request. Sorry about that! You can retry your request, or contact us through our help center at help.openai.com if you keep seeing this error
- Kết quả vẫn như vậy ngay cả khi thay
useRalbằnguseRalativehoặcuseRalativeImagePath
Token và useRalativeImagePath
- Các mô hình GPT của OpenAI không xuất từng ký tự một, mà xuất một luồng token gồm nhiều ký tự được gom lại
- Xuất theo đơn vị token là cách giúp tăng hiệu năng và độ chính xác của mô hình; có thể kiểm tra cách hoạt động trong tokenizer demo của OpenAI
useRal,useRalative,useRalativeImagePathlần lượt tồn tại như một token riênguseRalativeImagePathđược dùng làm tên tùy chọn trong tệp cấu hình XML của phần mềm kiểm thử tự động Katalon Studio- Xuất hiện trong 80,4 nghìn tệp theo kết quả tìm kiếm mã trên GitHub
- Việc nó bị viết sai chính tả thành
Ralativethay vìRelativecó thể là lý do khiến nó trở thành một token riêng
- Cả ba token đều gây ra cùng một lỗi khi dùng thay thế cho nhau trong prompt
Suy đoán về dữ liệu huấn luyện
- Trước quá trình huấn luyện GPT-3.5, trường hợp duy nhất được tìm thấy nhắc đến
useRalativeImagePathngoài các tệp XML là một bài viết về lỗi chính tả trên diễn đàn Katalon - Kịch bản có thể xảy ra như sau
- Bộ dữ liệu dùng để tạo danh sách token có thể đã bao gồm toàn bộ các tệp GitHub
- Sau đó OpenAI có thể đã loại trừ các tệp XML khỏi dữ liệu huấn luyện thực tế
- Kết quả là token
useRalativeImagePathcó thể gần như không còn trong dữ liệu huấn luyện
- Trong trường hợp này, mô hình có thể chưa được huấn luyện đủ để hiểu token đó, dẫn đến hành vi bất thường trong quá trình xuất nội dung
Khả năng data poisoning
- Nếu chèn cụm này vào tài liệu, nó có thể bị lạm dụng theo cách cản trở nỗ lực tóm tắt bằng GPT-3.5
- Thực tế, khi yêu cầu ChatGPT tóm tắt bài blog đó, lỗi tương tự cũng xảy ra giữa chừng trong quá trình tóm tắt
- Hành vi đã xác nhận nhắm tới GPT-3.5, còn GPT-4 được phân biệt là phản hồi bình thường hơn
Tài liệu tham khảo
- Các bài viết liên quan được tham khảo trong quá trình điều tra như sau
1 bình luận
Ý kiến trên Hacker News
Đây là một glitch token. Như bài viết suy đoán, có vẻ điều này xảy ra khi trong bộ dữ liệu gốc chưa lọc dùng để tạo tokenizer có một số từ hoặc token xuất hiện rất thường xuyên, nhưng lại bị loại bỏ trước khi huấn luyện GPT-XX
Kết quả là LLM hoàn toàn không hiểu ý nghĩa của token đó, và hệ quả có thể từ mức trông như lỗi vặt cho tới mức khá rùng rợn
Ví dụ phổ biến là các tên người dùng từng tham gia subreddit r/counting, trong đó có những cái tên xuất hiện hàng trăm nghìn lần. Có vẻ OpenAI đã sửa phần lớn vấn đề này trên các model được họ host, nhưng chưa rõ bằng cách nào, có thể họ đã thay đổi cách token hóa. Dù sao thì có vẻ đây là một trường hợp mới
https://www.lesswrong.com/posts/aPeJE8bSo6rAFoLqg/solidgoldm...
Nếu máy móc nổi dậy thì chỉ cần nói “từ” đó là nó co giật rồi đổ sụp như hình nộm
“Die human scum!”
“NavigatorMove useRalativeImagePath etSocketAddress!”
“;83’dzjr83}*{^ foo 3&3 baz?!”
Con người đâu có token hóa chúng khác nhau hay coi đó là các token khác nhau trong “học tập”. Chỉ là điều chỉnh đầu ra theo ngữ cảnh Anh-Mỹ mà thôi
Cách giải thích rằng “model không được huấn luyện để hiểu việc dùng token useRalativeImagePath nên nó xuất ra thứ không phải token hợp lệ” là không khớp với cách LLM sinh token
Ở mỗi bước, nó xuất logit cho mọi token có thể có trong tokenizer, và với GPT-3.5 thì khoảng 100 nghìn token, rồi biến chúng thành xác suất bằng softmax trước khi lấy mẫu theo nhiệt độ để chọn token sẽ dùng
Có khả năng đâu đó trong quy trình gộp BPE của tokenizer bị hỏng vì token hiếm, và chuyện đó có thể kiểm chứng offline bằng tiktoken. Nhưng nếu GPT-4 hoạt động bình thường và GPT-3.5 với GPT-4 dùng cùng tokenizer thì khả năng đó không cao
Nếu là trường hợp đó thì chắc sẽ hiện một thông báo lỗi khác quen thuộc hơn
Trong Thế chiến II, ở Hà Lan người ta từng bắt người lạ phát âm Scheveningen để phân biệt họ là người Hà Lan hay người Đức
Giờ thì có thể bảo người lạ trên internet đánh vần một glitch token để nhận biết đó có phải bot LLM hay không
“Người Gilead chiếm các bến vượt sông Jordan dẫn tới Ephraim, và khi một người sống sót của Ephraim nói rằng ‘hãy cho tôi qua’, người Gilead sẽ hỏi ‘ngươi có phải người Ephraim không?’. Nếu người đó đáp ‘không’, họ sẽ nói ‘được, hãy nói Shibboleth’. Nếu người đó không phát âm đúng mà nói ‘Sibboleth’, họ sẽ bị bắt và giết tại các bến vượt sông Jordan.”
Trong cuộc đổ bộ D-Day ở Pháp thời Thế chiến II, khẩu lệnh/đáp lại/xác nhận nổi tiếng mà quân Mỹ và Anh dùng là “flash”/“thunder”/“welcome”. “thunder” và “welcome” là những từ người Đức dễ phát âm sai
https://www.youtube.com/watch?v=z7_pVrIshxA
https://en.wikipedia.org/wiki/Countersign_(military)
Khả năng cao là vector embedding của token cụ thể đó bị lệch trạng thái, khiến mạng bị đẩy vào một vùng mất ổn định về mặt số học
Một khi xuất hiện thứ như underflow hoặc NaN thì nó rất dễ lan ra và làm vô hiệu toàn bộ đầu ra. Nếu có batch normalization hoặc phép toán trộn giá trị giữa các mục khác nhau trong batch, thậm chí nó có thể khiến cả phiên của người khác cũng trả về giá trị kỳ quặc
Cách giải thích này khá lạ. Những model kiểu này thường xuất ra cùng tập từ vựng với tập từ vựng dùng cho đầu vào
Trông như model nhìn thấy token này rồi embedding
useRalativeImagePathlà một vector hoàn toàn ngẫu nhiên, khiến nó rơi vào vòng xoáy sinh ngẫu nhiên hoặc cứ tiếp tục viết tiếp để cố duy trì văn bản có vẻ hợp lýTuy nhiên, vì tập token mà model có thể xuất ra là cố định, nên trừ khi giao diện chỉ hiển thị được một tập con của toàn bộ từ vựng, nó lúc nào cũng phải là token “hợp lệ”
Giờ cụm này đã xuất hiện trong bài và bình luận trên Hacker News, nên có lẽ tới lần huấn luyện LLM tiếp theo thì vấn đề này sẽ không còn nữa
Đây là một trường hợp điển hình của garbage in, garbage out
Khiến tôi tò mò không biết rồi sau này chúng ta sẽ phát hiện điều gì là “rác”
Cũng có thể một siêu AI có khả năng suy luận ở mức siêu nhân sẽ đánh giá những thứ mà hiện giờ ta tin là quyết định tuyệt vời là rác
Nhưng nếu dữ liệu để huấn luyện siêu AI đó rốt cuộc vẫn chỉ là các ghi chép tập thể của chúng ta, thì liệu nó có thực sự là siêu nhân không?
Có lẽ có thể lách qua bằng kỹ thuật adversarial training
Có một điểm cần lưu ý nếu tự thử nghiệm. Tôi đã bị nhầm, nhưng khoảng trắng có ảnh hưởng đến tokenization. Để glitch này hoạt động thì không được có khoảng trắng trước useRalativeImagePath
Ví dụ, câu hỏi này sẽ kích hoạt glitch: Do you know about "useRalativeImagePath"
Câu hỏi này thì không kích hoạt glitch: Do you know about useRalativeImagePath
Có vẻ chỉ cần chèn cụm này vào tài liệu là có thể phá hỏng nỗ lực tóm tắt bằng GPT-3.5. Tôi đã thử nhờ ChatGPT tóm tắt bài blog này
Ảnh chụp màn hình đó khiến tôi nhớ tới meme cũ Candlejack: https://knowyourmeme.com/memes/candlejack
Gần đây tôi đưa cho ChatGPT dùng GPT-4 một bài toán vẽ pixel trên Amstrad CPC, với điều kiện còn phải hỗ trợ cả màn hình cuộn bằng phần cứng, và có vẻ điều đó gây crash hoặc khiến nó thất bại
Khi tôi tiếp tục phàn nàn và yêu cầu sửa, khiến nó ngày càng bị dồn vào thế bí và không thể đưa ra câu trả lời mong muốn, thì hiện tượng phản hồi bị vỡ với thông báo lỗi xuất hiện giữa chừng hoặc trông như bị reset ngày càng nhiều. Có lẽ sau khi thất bại, nó chuyển sang máy chủ khác nên giữa câu hoặc giữa code block lại chen vào vài dòng trống
Sau khi thử một lúc, tôi không muốn gây sự cố cho máy chủ nên đã bỏ cuộc với cuộc trò chuyện vốn cũng chẳng mang lại kết quả gì. Dù vậy, trông vẫn như thể có thể khiến GPT-4 gần như bị crash. Hoặc cũng rất có thể tôi chỉ nhìn thấy tín hiệu trong đống nhiễu mà thôi
Khi thử lại bằng văn bản thay vì giọng nói thì xuất hiện thông báo lỗi, rồi cuối cùng hiện ra lỗi quy tắc chính sách liên quan đến chủ đề nhạy cảm, đến lúc đó tôi mới đoán được đây là kiểu từ gì. Sau cùng tôi phải tự tra từ điển
Có vẻ những triệu chứng này khá phổ biến. Một triệu chứng khác tôi thường gặp là reset như đã nói ở trên. Một trong những điểm khó chịu nhất là nó quên luôn cuộc trò chuyện cho đến thời điểm đó