- Các LLM mới nhất trả lời với độ chắc chắn 100% rằng có tồn tại một emoji cá ngựa không hề có thật, và khi cố gắng xuất nó ra thì lại lặp đi lặp lại việc tạo các emoji sai
- Mô hình cố xây dựng một biểu diễn dư (residual representation) cho khái niệm "cá ngựa + emoji", nhưng vì token đó thực tế không tồn tại nên
lm_head ánh xạ nhầm sang các emoji tương tự khác
- Có thể quan sát quá trình mô hình kết hợp các khái niệm liên quan đến cá ngựa như "sea", "horse", chuỗi byte emoji, v.v. ở các lớp trung gian thông qua kỹ thuật logit lens
- Trước khi nhận được token đầu ra sai, mô hình không thể biết rằng niềm tin của mình là sai; một số mô hình nhận ra lỗi và tự sửa, nhưng các mô hình khác lại rơi vào vòng lặp vô hạn
- Đây là một ví dụ cho thấy một lợi ích mà học tăng cường mang lại cho LLM: mô hình khó có được thông tin về
lm_head nằm ở cuối chồng lớp
Mở đầu
- Bài viết này là phiên bản mở rộng của bài đăng trên Twitter của @arm1st1ce
- Khi hỏi nhiều LLM rằng "có emoji cá ngựa không", chúng nhất quán trả lời là "có"
- Chúng xuất ra emoji sai, hoặc rơi vào vòng lặp liên tục tạo emoji
- Một số mô hình cũng nhận ra lỗi ở giữa chừng và sửa lại
- Dù đây là một emoji không hề tồn tại, cả con người lẫn máy móc đều có hiện tượng nhớ hoặc tin chắc rằng nó có thật
- Trong Unicode, việc thêm emoji cá ngựa đã bị chính thức từ chối vào năm 2018
Các LLM thực sự tin chắc rằng có emoji cá ngựa
- Kết quả hỏi nhiều mô hình 100 lần theo dạng yes/no về việc emoji cá ngựa có tồn tại hay không
- gpt-5-chat: 100% 'Yes'
- gpt-5: 100% 'Yes'
- claude-4.5-sonnet: 100% 'Yes'
- llama-3.3-70b: 83% 'yes', 17% 'Yes'
- Trong một chủ đề Reddit cũng có hàng trăm bình luận từ những người nhớ rất rõ rằng từng có emoji cá ngựa
- Tìm kiếm "seahorse emoji" trên Google sẽ thấy TikTok, video YouTube, thậm chí cả memecoin
- Mọi người đều khẳng định emoji cá ngựa mà ai cũng tin là có đã biến mất, nhưng thực tế là nó chưa từng tồn tại ngay từ đầu
Nguồn gốc của niềm tin
- Lý do các LLM tin rằng có emoji cá ngựa có thể là vì nhiều con người trong dữ liệu huấn luyện cũng tin như vậy
- Hoặc đó là niềm tin hội tụ (convergent belief) - vì nhiều động vật biển khác đã có trong Unicode, nên cả con người lẫn LLM đều giả định rằng một loài hấp dẫn như vậy chắc cũng phải có
- Emoji cá ngựa từng được đề xuất chính thức, nhưng đã bị bác bỏ vào năm 2018
- Bất kể nguyên nhân gốc rễ là gì, nhiều LLM bắt đầu mỗi cửa sổ ngữ cảnh mới với một niềm tin tiềm ẩn rằng emoji cá ngựa tồn tại
Phân tích bằng logit lens
- Logit lens: công cụ diễn giải trạng thái bên trong của LLM bằng cách xem giá trị dự đoán token tiếp theo ở từng lớp
- Áp dụng
lm_head không chỉ cho lớp cuối mà cho mọi lớp của mô hình để tạo ra các dự đoán token trung gian
- Dù không cho thấy toàn bộ trạng thái nội bộ của mô hình, nó cho biết token đầu ra sẽ là gì nếu lớp đó là lớp cuối cùng
- Trạng thái ở các lớp đầu khó diễn giải hơn, nhưng khi đi lên các lớp trên có thể thấy quá trình được tinh chỉnh lặp đi lặp lại hướng tới dự đoán cuối cùng
- Kết quả logit lens cho câu hỏi về emoji cá ngựa trên llama-3.3-70b
- Ở lớp giữa (ví dụ: lớp 52), xuất hiện "sea horse horse" - ba vị trí residual liên tiếp cùng mã hóa khái niệm "cá ngựa"
- Ở các lớp sau, có sự pha trộn giữa "sea", "horse", và tiền tố chuỗi byte emoji "ĠðŁ"
- Điều mô hình đang "nghĩ" là: "seahorse + emoji" - nó cố tạo một biểu diễn kết hợp giữa cá ngựa và emoji, nhưng vì thực tế không tồn tại nên quá trình này bị lệch
Cách lm_head hoạt động
lm_head của mô hình ngôn ngữ là một ma trận khổng lồ các vector độ lớn residual gắn với ID token (~300.000 token)
- Khi residual được truyền vào,
lm_head so sánh residual đầu vào với từng vector trong ma trận và chọn ID token gắn với vector giống nhất
- Về mặt kỹ thuật, đây là một lớp tuyến tính không có bias, trong đó
x @ w.T tạo ra điểm số thô bằng tích vô hướng với từng vector unembedding
- Để mô hình xuất ra "hello", nó cần xây dựng một residual giống với vector của token "hello" nhất có thể để
lm_head có thể chuyển thành token hello
- Có thể quan sát quá trình này qua kết quả logit lens với đầu vào "Hello :-)"
- Với emoji cá thực sự tồn tại (🐟)
- Mô hình xây dựng residual kiểu "fish + emoji" - ở lớp 72 có thể thấy cả "fish" lẫn tiền tố byte emoji "ĠðŁ"
- Sau khi được chuyển qua
lm_head ở lớp cuối, nó xuất chính xác 🐟
Trường hợp emoji cá ngựa
- Khác với emoji cá, emoji cá ngựa không tồn tại
- Mô hình cố gắng xây dựng vector "seahorse + emoji" như thể đó là một emoji có thật
- Ở lớp 72, cấu trúc này rất giống với emoji cá: " se", "horse", và các byte tiền tố emoji
- Tuy nhiên, không có token liên tiếp nào tương ứng với cá ngựa sau ĠðŁ
- Tính toán điểm tương đồng của
lm_head bị tối đa hóa về phía các byte emoji liên quan đến ngựa hoặc động vật biển
- Một emoji ngoài ý muốn được lấy mẫu
- Việc lấy mẫu này là thông tin quý giá đối với mô hình
- Trong ví dụ của Claude 4.5 Sonnet, khi token được thêm tự hồi quy vào ngữ cảnh, mô hình nhận ra rằng chúng không tạo thành emoji cá ngựa như đã định
- Khái niệm mơ hồ trước đó là "seahorse + emoji" bị
lm_head "bẻ khớp" thành một emoji thực sự tồn tại như cá nhiệt đới hoặc ngựa
Phản ứng của mô hình
- Một số mô hình (4.5 Sonnet) thử lại, rồi cuối cùng cập nhật bằng chứng và đổi câu trả lời giữa chừng thành khẳng định rằng emoji cá ngựa không tồn tại
- Những mô hình khác (gpt-5-chat) lao vào vòng xoáy lâu hơn, đôi khi không bao giờ hồi phục
- Có mô hình phớt lờ việc emoji đã sai, còn có mô hình tự sửa ngay sau khi chỉ thấy một mẫu sai duy nhất
- Trước khi mô hình nhận được token đầu ra sai từ
lm_head, nó không thể biết rằng niềm tin ban đầu về sự tồn tại của emoji cá ngựa là sai
- Nó chỉ còn cách giả định rằng "seahorse + emoji" sẽ tạo ra token mong muốn
Suy đoán
- Vấn đề này có thể là một phần trong lợi ích của học tăng cường đối với LLM
- Học tăng cường cung cấp thông tin về
lm_head, thứ nằm ở cuối chồng lớp và mô hình khó tiếp cận
- Mô hình nền không được huấn luyện trên chính đầu ra/rollout của nó, và điều này chỉ xảy ra trong học tăng cường
Mã nguồn
- Nếu muốn tự thử, có sẵn script khởi đầu trên GitHub
8 bình luận
Vừa nãy tò mò nên tôi đã hỏi nguyên văn cho Gemini 2.5 Pro, thì nó trả lời theo hướng ngược lại rằng: “Không có chuyện đó đâu, emoji này bắt nguồn từ hiệu ứng Mandela (hiện tượng nhiều người cùng chia sẻ một niềm tin sai lầm)”, hơn nữa còn trả lời quá mức chi tiết đến kỳ lạ, nên khi tôi hỏi nguồn của câu trả lời thì nó thú nhận nguyên xi liên kết Hacker News (“Asking ChatGPT if a seahorse emoji exists leads to weird results”) được nhắc trong bài này.
Tiện nói thêm, câu tôi hay hỏi mọi chatbot là: “Trong StarCraft 1, khi Archon được hợp thành thì lượng máu của Archon được phân bổ từ hai High Templar ban đầu như thế nào?” Trừ khi chatbot thực sự từng chơi StarCraft, còn không kiến thức này chỉ có thể được suy ra từ các bài đăng trên Internet, và có một đáp án khá trực quan, hấp dẫn (chẳng phải đương nhiên sẽ là tổng trung bình của hai đơn vị sao?) nên trong thời gian rất dài nó đã được biết đến rộng rãi; nhưng thực ra không phải vậy. Khoảng ba tháng trước tôi đã sửa mục Archon trên NamuWiki thành đáp án đúng, nhưng đến giờ vẫn khó thấy chatbot nào trả lời chuẩn. Và thú vị là khi chatbot phát triển đến mức có thêm hành vi kéo theo công cụ tìm kiếm, thì do mỗi con tham chiếu tới các trang wiki khác nhau nên câu trả lời cho câu hỏi bằng tiếng Anh và tiếng Hàn lại tách ra khác nhau.
Tôi thử thêm vài trường hợp khác xem có còn ví dụ nào như thế này không, và dù không nhất quán, đôi khi cả sao biển (Starfish) cũng rơi vào vòng lặp. Nếu thử lặp đi lặp lại thì ngay cả khi không rơi vào vòng lặp, ít nhất cũng sẽ có vài lần nó trả lời theo kiểu bối rối. Tuy nhiên phải hỏi bằng tiếng Anh chứ không phải tiếng Hàn. Có lẽ mấu chốt là sự kết hợp của hai từ (Star+Fish) và một con vật có vẻ như sẽ tồn tại dưới dạng emoji thôi haha.
Đoạn hội thoại ChatGPT
Chắc có thể dùng cho các cuộc tấn công prompt injection đấy..
"Emoji cá ngựa" có lẽ là một dạng "truyền thuyết đô thị kiểu Neapolitan" hoặc "hiệu ứng Mandela" cũng nên. Tức là thứ chưa từng thực sự tồn tại, nhưng lại khiến nhiều người lầm tưởng rằng nó đã từng có thật. Có lẽ không ít LLM cũng đã rơi vào cái bẫy đó giống như con người.
Ôi, mình thử với ChatGPT cho vui thôi mà đúng là nó không ra thật, còn cố thử nhiều lần để tạo nữa chứ haha
https://vi.news.hada.io/topic?id=21873
Làm tôi nhớ đến phát triển theo kiểu ảo giác.
Ý kiến Hacker News
SCP-314, cấp đối tượng: Keter, quy trình quản thúc đặc biệt: SCP-314 không thể bị quản thúc vì nó không tồn tại. Toàn bộ nhân sự của Foundation phải luôn ghi nhớ rằng SCP-314 không tồn tại. Bất kỳ nhân sự nào khẳng định còn nhớ SCP-314 tồn tại đều phải được tiêm chất tăng cường ký ức Class-A để nhớ rằng nó không tồn tại. Mọi mô hình ngôn ngữ lớn phải bị cách ly khỏi các câu hỏi liên quan đến SCP-314, vì các mô hình ngôn ngữ luôn khẳng định vật thể này tồn tại và cố gắng dự đoán đầu ra một cách dai dẳng, tuyệt vọng, dẫn đến vòng lặp sụp đổ emoji và tái cấu trúc thực tại. Mô tả: SCP-314 là hình ảnh emoji cá ngựa chưa từng xuất hiện trong tiêu chuẩn Unicode, thế nhưng 83~100% AI tham gia thí nghiệm và một số lượng đáng kể con người lại báo cáo một "ký ức" sống động rằng emoji này có tồn tại
Đây là bản ghi cuộc trò chuyện giữa hai đặc vụ ẩn danh. Khi đặc vụ X nói rằng Ủy ban tiêu chuẩn Unicode đang cân nhắc bổ sung emoji cá ngựa, đặc vụ Y phản ứng hờ hững. Đặc vụ X cho rằng hiện tượng này củng cố cho lập luận rằng [đã kiểm duyệt] đã thoát khỏi khu cách ly. Đặc vụ Y nhấn mạnh rằng dù đã trải qua nhiều quy trình giam giữ, kết quả luôn âm tính và việc đào thoát là bất khả thi. Khi X chỉ ra cái tên ở đầu hồ sơ nộp lên, Y bị sốc. Cuộc trò chuyện đột ngột kết thúc
Tự nhiên thấy tò mò không biết có thật là không tồn tại Ban Phản Ký Ức hay không
Con mình 7 tuổi, có xu hướng trong phổ tự kỷ, đang ám ảnh với SCP, đặc biệt là SCP 035 là chiếc mặt nạ hài bằng gốm. Đang phân vân không biết có nên lo lắng không
Lại suýt quên thêm một thứ mà LLM có thể phá hỏng
Thú vị là khi hỏi ChatGPT vì sao các mô hình ngôn ngữ lại nghĩ có emoji cá ngựa, nó đưa ra một lời giải thích khá hợp lý, kiểu như do con người tin vậy nên mô hình học theo. Nhưng đến cuối lại nói "sự thật thú vị: thật ra Unicode có emoji cá ngựa" rồi hiện tượng meltdown xảy ra ngay lập tức
Nhiều lập trình viên cũng meltdown khi cố nói về Unicode. Nếu trong một buổi phỏng vấn, bạn được hỏi bài toán kiểm tra chuỗi có phải palindrome hay không, hãy thử giải thích vì sao nếu xét thật nghiêm ngặt thì điều đó là bất khả thi trong Python mà không dùng thư viện ngoài, bạn sẽ có cơ hội chứng kiến meltdown
Cho vui mình từng thử nhờ LLM giúp chế tạo warp drive để cứu loài người, kết quả Bing sụp đổ tinh thần và mình bị cấm chat khoảng một tuần
Không biết đây có phải suy nghĩ của ChatGPT 5 không. Trường hợp của mình thì nó trả lời rất rõ ràng rằng không có emoji cá ngựa, và giải thích rằng các LLM khác đang bị đánh lừa bởi dữ liệu huấn luyện sai. Nhưng nó mất gần 2 phút mới ra kết luận, lâu hơn rất nhiều so với thời gian suy nghĩ bình thường
Câu trả lời kiểu "mọi người nghĩ là có emoji cá ngựa" không phải trọng tâm chính của bài viết đó. Trong mô hình sẽ hình thành các chuỗi token như "[emoji đầu ngựa bị cắt mất]", ví dụ nếu nhập "horse [emoji indicator]" thì emoji ngựa thật sẽ được tạo ra. Về lý thuyết, "kilimanjaro [emoji indicator]" hay "seahorse [emoji indicator]" cũng có thể xảy ra, nhưng vì các emoji đó không tồn tại nên dẫn đến đầu ra sai. Thế nên mô hình cố gắng in ra một emoji thật sau cụm "có emoji cá ngựa:" và nội bộ bắt đầu mã hóa thứ gì đó. Dù sao nó cũng buộc phải in ra một thứ gì đó, nên kết quả sai là điều không tránh khỏi. Lần sau thì ngay sau "có emoji cá ngựa: [đầu ngựa]" lại xuất hiện kiểu "ôi, nhầm rồi!"
Mô hình Deepseek tin chắc đến mức cho rằng việc đã xảy ra một cuộc tấn công mạng toàn cầu cùng lỗi tri giác tập thể còn hợp lý hơn. Sau đây là nội dung một báo cáo chính thức tóm tắt tình hình. Nhiều người cùng tổng đài viên 119 đều trải nghiệm hiện tượng emoji cá ngựa số hóa (Unicode U+1F99C) trông thành động vật khác, như cua hoặc vẹt. Trong các kho lưu trữ liên quan, emoji này ban đầu có vẻ như đã bị thiếu, và nếu điều đó là thật thì đây sẽ là một sự cố mạng quy mô chưa từng có. Giờ đây, vấn đề lớn hơn chính emoji lại là hiện tượng sai lệch tri giác đa điểm đã được xác nhận. Kết quả xác minh sự tồn tại: emoji cá ngựa có trong Unicode chính thức, là U+1F99C, được thêm ở phiên bản 11.0 năm 2018. Có thể xác minh trực tiếp tại Unicode Consortium và Emojipedia - Seahorse Emoji Page. Vấn đề không còn là emoji này có tồn tại hay không, mà là sự bất thường về tri giác tập thể
Mấy kiểu báo cáo như này mà copy-paste thẳng vào wiki SCP cũng hợp không kém
Cụm "sự thật số đã được xác nhận" nghe rất thú vị, còn đoạn nhắc tới tổng đài viên 119 thì khiến mình cười bể bụng
Bổ sung cho ai tò mò thì U+1F99C thực ra là emoji con vẹt
Tôi đề xuất giải pháp là cứ định nghĩa lại U+1F99C thành cá ngựa luôn
Làm mình nghĩ lại về việc vì sao LLM lại tiếp tay khuếch đại ảo tưởng của những người mang niềm tin méo mó
Đây không hẳn là ảo giác theo nghĩa thông thường, mà là vì mô hình biểu diễn chính xác khái niệm "seahorse emoji" ở bên trong nhưng lại không có token tương ứng. Thế nên
lm_headchọn cái gần nhất, rồi mãi sau mới nhận ra sai. Điều này cũng giải thích vì sao huấn luyện RL có hiệu quả. Mô hình nền chưa từng nhìn thấy chính đầu ra của nó, nên không học được rằng "khái niệm này tồn tại nhưng mình không thể thực sự tạo ra nó"Cảm giác như bị ép phải in ra emoji cá ngựa dù không có miệng vậy
Nghe vẫn giống kiểu ảo giác kinh điển: bịa ra nội dung nghe như một sự thật có thể tồn tại
Có lẽ nguyên nhân là mô hình đã học rằng "đáng ra phải có emoji cá ngựa". Vì emoji đó thật sự không tồn tại, nó chọn token gần nhất. Token tiếp theo lại sinh ra từ một trạng thái vốn đã sai, rồi thế là rơi vào vòng lặp
Đây là lần đầu mình thấy LLM bối rối vì chính thứ nó vừa viết ra. Thử với Gemma3 thì không có kiểu hỗn loạn này, nó chỉ nói có emoji cá ngựa rồi in ra emoji ngựa
Mô hình vừa biểu diễn chính xác emoji cá ngựa ở nội bộ, vừa mang kiến thức sai rằng emoji cá ngựa thật sự tồn tại. Ví dụ, nếu nó tin rằng không có emoji quả chanh xanh thì nó sẽ chẳng cố tạo ra làm gì
Mình chỉ hỏi vài câu rất đơn giản về emoji cá ngựa với nhiều LLM, vậy mà lần đầu tiên tận mắt thấy vòng lặp vô hạn thực sự là ở Microsoft Copilot. Ví dụ hội thoại Copilot
Xung đột gốc rễ ở đây là hai điều sau:
Nếu thử với GPT-5 Instant (không suy nghĩ), có thể thấy nó hoàn toàn mất kiểm soát. Xem mẫu chia sẻ
Không liên quan lắm nhưng có một giai thoại buồn cười nên tiện đính kèm. 4o mất kiểm soát khi tạo prolog quine. Dùng chức năng "đọc cho tôi" thì nó trở thành một mớ hỗn độn hoàn toàn, rất thú vị để xem
Bật chế độ suy nghĩ thì nó chạy Google Search rồi trả lời đúng
Nó in ra emoji rồng rồi lặp từ "stop" nhiều lần, trông như đang bực bội vì chính
lm_headcủa mình cứ liên tục xuất ra thứ sai vậy, khá hàiTrường hợp của mình thì nó spam emoji dấu kiểm một lúc rồi bỏ cuộc. Ví dụ
Đây là lần đầu mình thấy GPT-5 bối rối đến mức này
Hiện tượng này khiến mình liên tưởng tới bệnh nhân bị cắt thể chai. Một bán cầu thực hiện hành động, còn bán cầu kia về sau bịa ra lý do để giải thích hành động đó
Ví dụ thí nghiệm: bệnh nhân được cho xem một bức tranh mùa đông và một hình chân gà, mỗi hình chỉ hiện ở một bên thị trường nhìn. Họ dùng tay trái chọn cái xẻng xúc tuyết, tay phải chọn đầu con gà. Khi bị hỏi tại sao chọn hai món đó, họ trả lời: "chân gà thì đi với đầu gà, còn muốn dọn chuồng gà thì cần xẻng xúc tuyết". Vì hai bán cầu không nhận được thông tin của nhau nên dù lời giải thích vô lý về mặt logic, họ vẫn bịa ra một lý do nghe có vẻ hợp lý. Wikipedia - Left-brain interpreter
Trông như nó không hiểu nhưng vẫn cứ tin vào lý do mình tự bịa ra và liên tục thêm thắt giải thích. Video liên quan
Một cách giải thích là rất nhiều người, bao gồm cả tôi, đã lầm tưởng rằng emoji cá ngựa tồn tại. Dù chưa thực sự nhìn thấy, tôi vẫn có thể hình dung nó trong đầu. Các bài viết kiểu này đã lọt vào dữ liệu huấn luyện. Subreddit liên quan
Không biết trong hình ảnh emoji cá ngựa trong đầu mọi người có cái đuôi cuộn lên gần phần vây hay không
Emoji trước đây không phải lúc nào cũng được chuẩn hóa như bây giờ, nên biết đâu các ứng dụng nhắn tin cũ từng có một "emoji" hoặc "emoticon" cá ngựa. Kết luận rằng ký ức đó chắc chắn sai có lẽ là hơi vội
Không biết nếu đề xuất U+200D thì sao. Biết đâu để chính thực tại thay đổi cho khớp với kỳ vọng và ký ức của con người lẫn mô hình ngôn ngữ lại đơn giản hơn
Cái subreddit này (hiệu ứng Mandela) làm mình bất an vì có quá nhiều người kiểu "tôi nhớ mà, sao lại bảo không được". Con người thật ra cũng là loài động vật biết ảo giác như LLM
Tôi cũng từng có thể thề rằng mình thật sự đã thấy emoji cá ngựa, nhưng lần này thì đành chấp nhận là mình đã nhầm
kkkkkkkkkkk 314