Thủ thuật
Tại sao watermark trên văn bản AI lại dễ bị xóa bỏ đến vậy?
(giờ Việt Nam)
Tóm tắt AI
Bài viết phân tích các lỗ hổng kỹ thuật khiến các phương pháp đóng dấu watermark cho văn bản AI hiện nay trở nên kém hiệu quả và dễ dàng bị vô hiệu hóa bởi các tác nhân xấu.
Bản dịch AI

Đạo luật AI của Liên minh Châu Âu (EU AI Act) sẽ bắt đầu có hiệu lực vào tháng 8 năm 2026, tức là một tháng nữa kể từ bây giờ[1]. Một trong những yêu cầu mới quan trọng nhất là Điều 50, quy định rằng tất cả các đầu ra của AI phải “có thể phát hiện được là do AI tạo ra”. Nói cách khác, nếu các nhà cung cấp LLM muốn kinh doanh tại EU, họ sẽ phải áp dụng hình mờ (watermark) vào đầu ra của mình[2]: một loại chữ ký ẩn có thể được sử dụng để nhận diện nội dung do AI tạo ra.
Đóng dấu hình mờ cho văn bản LLM là một bài toán đầy thú vị. Giống như những bài toán kỹ thuật hóc búa nhất, về mặt lý thuyết thì rất khó để giải quyết một cách hoàn hảo, nhưng lại có nhiều giải pháp từng phần: ví dụ như SynthID của Google, và (như tôi sẽ lập luận) một vài thủ thuật Unicode tinh vi từ OpenAI và Anthropic. Sẽ rất thú vị khi xem các phòng thí nghiệm AI xử lý những sự đánh đổi này như thế nào trước khi năm nay kết thúc.
Tại sao việc đóng dấu hình mờ cho văn bản lại khó khăn?
Tôi đã viết về việc đóng dấu hình mờ AI vào cuối năm ngoái trong bài "Các công cụ phát hiện AI không thể chứng minh văn bản là do AI tạo ra". Việc đóng dấu hình mờ cho hình ảnh rất dễ dàng, vì hình ảnh kỹ thuật số chứa rất nhiều nhiễu mà mắt người không thực sự nhìn thấy được. Ví dụ, bạn có thể áp dụng một hình mờ như “hai mươi pixel này tại những vị trí chính xác này sẽ luôn chia sẻ cùng một màu sắc”. Văn bản thì khó hơn rất nhiều. Không giống như hình ảnh, văn bản là một phương tiện được nén rất chặt: bạn không thể thực hiện bất kỳ thay đổi nào đối với một câu mà con người không nhận ra (ngoại trừ một trường hợp, chúng ta sẽ đề cập sau). Vậy làm thế nào để bạn đóng dấu hình mờ cho nó?
Về cơ bản, đây là một bài toán ẩn giấu văn bản (steganography) – che giấu một mã bí mật – nhưng trở nên khó khăn hơn vì văn bản thuần túy không thể bị thao túng một cách tùy tiện. Bất kỳ thay đổi nào bạn thực hiện để áp dụng hình mờ đều sẽ làm giảm chất lượng của đầu ra. Ví dụ, “cứ mỗi chữ cái thứ năm là chữ ‘e’” sẽ là một hình mờ tốt, nhưng nếu áp dụng một cách ngây thơ, nó sẽ khiến đầu ra của AI đầy lỗi chính tả. Liệu bạn có thể để mô hình tự tìm cách chèn hình mờ vào không? Các mô hình AI mạnh đủ thông minh để xoay xở với loại ràng buộc này[3], nhưng nó vẫn sẽ tiêu tốn thời gian suy luận vốn nên được dành cho vấn đề của người dùng, và làm cho mô hình nghe có vẻ kém năng lực hơn thực tế[4].
Chúng ta có cần hình mờ để phát hiện nội dung AI không?
Bạn có thực sự cần một hình mờ không? Nếu bạn là Anthropic và bạn được yêu cầu phải có khả năng xác minh xem các mô hình của mình có tạo ra một đoạn văn bản cụ thể hay không, chẳng phải bạn chỉ cần chạy văn bản đó qua từng mô hình, đo lường xem các token mà mô hình dự đoán khớp với từng token từ văn bản đó đến mức nào sao?
Không hẳn vậy. Không gian của “tất cả các câu trả lời có thể có của Claude Sonnet cho một câu hỏi” lớn hơn nhiều so với không gian của “tất cả các câu trả lời có thể có được đóng dấu hình mờ cho một câu hỏi”. Nói cách khác, bạn sẽ nhận được quá nhiều kết quả dương tính giả đối với văn bản của con người nhưng lại có cách viết giống như do AI tạo ra. Khả năng một người vô tình viết giống Claude cao hơn nhiều so với khả năng một người vô tình tái tạo lại một hình mờ.
Việc chạy mọi mô hình của Anthropic đối với một đoạn văn bản để đóng dấu hình mờ cũng sẽ cực kỳ tốn kém. Đạo luật AI của EU cuối cùng sẽ yêu cầu các phòng thí nghiệm như Anthropic cung cấp dịch vụ đóng dấu hình mờ miễn phí cho mọi công dân EU (xem Cam kết 2). Bạn không thể làm điều đó với phương pháp “chạy mô hình”.
SynthID hoạt động như thế nào?
Theo tôi biết, nhà cung cấp AI duy nhất tuyên bố họ đóng dấu hình mờ cho đầu ra văn bản là Google, họ sử dụng một công cụ có tên là SynthID. Đây là cách nó hoạt động.
Khi một LLM tạo ra văn bản, nó đang tạo ra một chuỗi các token (từ hoặc các đoạn từ). Tại mỗi bước, bản thân mô hình không xuất ra một token duy nhất, mà thay vào đó xuất ra một danh sách đầy đủ tất cả (giả sử là) 100.000 token trong từ vựng của nó, mỗi token được chú thích với xác suất rằng token đó sẽ là từ tiếp theo. Các công cụ như ChatGPT hoặc Claude Code sẽ chọn một cách bán ngẫu nhiên từ các tùy chọn có khả năng xảy ra cao nhất để có được đầu ra của chúng. Quá trình lấy mẫu bán ngẫu nhiên này có thể bị ảnh hưởng theo một cách có thể phát hiện được.
Ví dụ, chúng ta có thể chọn một chiến lược lấy mẫu như “chúng ta chọn token có khả năng xảy ra thứ hai, sau đó là thứ nhất, rồi thứ hai, rồi thứ nhất, v.v.”. Điều đó vẫn sẽ tạo ra đầu ra chất lượng cao, nhưng bạn sẽ có thể chạy lại mô hình đối với văn bản đã tạo để xác minh rằng mô hình đó vẫn giữ nguyên. Tuy nhiên, điều đó sẽ làm cho việc xác minh trở nên rất tốn kém, và bất kỳ thay đổi nhỏ nào đối với đầu ra cũng sẽ phá vỡ mô hình và do đó phá vỡ dấu vân tay. Có cách nào tốt hơn không?
Có. SynthID là một quy trình gán cho mỗi token một “điểm số” dựa trên các token trước đó của nó (ví dụ: cộng ID của token với ID của ba token trước đó rồi lấy mod 5)[5]. Để áp dụng hình mờ, mô hình áp dụng một chiến lược lấy mẫu như “trong số năm token có khả năng xảy ra cao nhất, hãy chọn token có điểm SynthID cao nhất”[6]. Sau đó, hình mờ có thể được phát hiện bằng cách tính tổng điểm SynthID của một khối văn bản. Nếu nó cao một cách đáng ngờ, rất có khả năng nó đã được AI tạo ra.
Đây về cơ bản là một phiên bản của lời khuyên phổ biến rằng bạn có thể nhận diện LLM bằng cách sử dụng dấu gạch ngang (em-dash), ngoại trừ việc thay vì một danh sách các từ khóa, nó dựa vào các mối quan hệ toán học tinh vi giữa các từ mà con người không thể nhận ra. Vì quy trình gán điểm số rất đơn giản, nên việc chạy phát hiện hình mờ rất rẻ.
Hình mờ Unicode thông qua các ký tự đồng dạng (homoglyphs)
Google có một lý do toán học phức tạp cho việc tại sao SynthID không làm cho mô hình trở nên kém thông minh hơn: được cho là việc chấm điểm SynthID đủ ngẫu nhiên để hoạt động như một bộ lấy mẫu token giả ngẫu nhiên bình thường, chỉ là một bộ để lại dấu vân tay có thể phát hiện được trên các đầu ra. Nhưng tất nhiên điều này rất đáng ngờ. Ví dụ, việc thiết lập nhiệt độ (temperature) bằng 0 khi suy luận là phổ biến, điều này luôn chọn token tiếp theo có khả năng xảy ra cao nhất của mô hình. Trong trường hợp đó, bạn hoàn toàn không thể để lại dấu vân tay (hoặc bạn phải bỏ qua tùy chọn của người dùng và chọn lựa chọn thứ hai hoặc thứ ba).
Nếu bạn không thể thay đổi đầu ra của mô hình, liệu bạn có thể đóng dấu vân tay cho nội dung đó không? Chà, có thể. Tôi khá chắc chắn rằng OpenAI và Anthropic đôi khi đang áp dụng các thủ thuật Unicode lạ mắt. Ví dụ, bạn có thể thay thế các dấu cách ” ” bình thường (unicode U+0020) bằng dấu cách ba phần em ” ” (unicode U+2004), hoặc dấu cách ý niệm CJK ” ” (unicode U+3000). Chúng được gọi là “homoglyphs” (ký tự đồng dạng), và bạn có thể tìm thêm về chúng tại đây.
Tất nhiên, rất nhiều văn bản do con người tạo ra sử dụng các ký tự đồng dạng. Nhưng việc mã hóa một mô hình các ký tự đồng dạng (ví dụ: “cứ mỗi dấu cách thứ ba trở thành dấu cách ba phần em”) là điều tầm thường và ít có khả năng xảy ra trong thực tế hơn nhiều. Giống như hình mờ SynthID, hình mờ dựa trên ký tự đồng dạng có thể được phát hiện với chi phí rất rẻ. Hình mờ dựa trên ký tự đồng dạng rẻ hơn để áp dụng so với SynthID: bạn thậm chí có thể thực hiện hoàn toàn trên phía máy khách (client).
Tôi không nghĩ đây là một thuyết âm mưu. Claude Code chắc chắn đã làm điều này để gắn thẻ các yêu cầu đáng ngờ từ người dùng Trung Quốc (khai thác các ký tự đồng dạng cho ký tự ’ trong “Today’s date”, mặc dù họ đã rút lại điều đó). Trong vài năm qua, tôi nhận thấy rằng khi tôi sao chép các khối văn bản từ ChatGPT và dán chúng vào VSCode, đôi khi VSCode đánh dấu một số hoặc tất cả các dấu cách là các ký tự Unicode bất thường[7]. Liệu OpenAI và Anthropic có đang sử dụng các ký tự đồng dạng như một hình mờ do AI tạo ra không? Tôi không chắc. Nhưng họ chắc chắn đang sử dụng các ký tự đồng dạng.
Hình mờ văn bản có thể bị xóa một cách tầm thường
Đạo luật AI (cụ thể là Quy tắc thực hành liên quan) yêu cầu hình mờ phải được “nhúng vào nội dung theo cách khó tách rời khỏi nội dung”. Tuy nhiên, hình mờ văn bản có thể bị xóa một cách tầm thường.
Để xóa hình mờ ký tự đồng dạng Unicode, bạn chỉ cần thay thế tất cả các ký tự đồng dạng bằng các ký tự “thật” tương đương của chúng. Nếu bạn có quyền truy cập vào ngay cả một LLM không có hình mờ tương đối yếu[8], bạn có thể loại bỏ hình mờ SynthID bằng cách yêu cầu LLM đó diễn giải lại nội dung văn bản. Vì hình mờ vốn gắn liền với các lựa chọn từ vựng tinh vi, việc diễn đạt lại nội dung sẽ loại bỏ hình mờ. Bạn thậm chí có thể tự làm bằng tay, mặc dù đến lúc đó thì nó không thực sự là nội dung do AI tạo ra nữa. Vì sẽ có một loại công cụ kiểm tra hình mờ công khai miễn phí nào đó, bạn chỉ cần tiếp tục tinh chỉnh cho đến khi kết quả trả về là âm tính.
Hơn nữa, Đạo luật AI yêu cầu các kỹ thuật đóng dấu hình mờ phải “có khả năng tương tác… trong chừng mực khả thi về mặt kỹ thuật”. Điều đó có nghĩa là các nhà cung cấp AI sẽ phải công bố quy trình đóng dấu hình mờ của họ, và thậm chí có khả năng cố gắng tiêu chuẩn hóa việc áp dụng cùng một loại hình mờ. Tôi chỉ không thấy điều này tương thích như thế nào với kiểu bảo mật thông qua sự mơ hồ (security-by-obscurity) mà việc đóng dấu hình mờ văn bản LLM phụ thuộc vào. Không giống như hình mờ hình ảnh và video, hình mờ văn bản sẽ luôn dễ dàng bị xóa.
Còn C2PA thì sao?
Đạo luật AI và Quy tắc thực hành nói rất nhiều về “siêu dữ liệu được ký kỹ thuật số”. Ý tưởng ở đây là bạn có thể bao gồm một tiết lộ về AI trong chính siêu dữ liệu của tệp, lý tưởng nhất là theo cách không thể giả mạo (ví dụ: bằng cách ký một hàm băm của nội dung tệp). Quy trình siêu dữ liệu được ký này về cơ bản là C2PA Content Credentials. Mặc dù bạn có thể xóa siêu dữ liệu C2PA, nhưng bạn (về lý thuyết) không thể làm giả nó, vì vậy một tệp có siêu dữ liệu “do con người tạo ra” có thể được tin tưởng, và các tệp không có siêu dữ liệu nào cả có thể bị nghi ngờ.
Bài viết này đã quá dài để đi sâu vào suy nghĩ của tôi về C2PA, nhưng tôi muốn nói rằng C2PA không phải là sự thay thế cho việc đóng dấu hình mờ văn bản. Nó chỉ thực sự áp dụng cho các tệp. Theo lời của Quy tắc thực hành, đó là “một định dạng dữ liệu hỗ trợ đính kèm siêu dữ liệu (ví dụ: âm thanh, hình ảnh, video hoặc văn bản được đóng gói)”. Đầu ra của các công cụ trò chuyện (và hầu hết đầu ra của các tác nhân AI) không phải là văn bản được đóng gói, mà là văn bản thuần túy thông thường, và do đó không thể được ký. Việc ký các đầu ra của ChatGPT sẽ trông như thế nào? Không có hiện vật nào để truyền đi cả.
Tôi nghĩ đó là một câu hỏi thú vị liệu Claude Code có phải ký C2PA cho bất kỳ tệp HTML hoặc PDF nào mà nó tạo ra cho bạn hay không. Điều đó có vẻ hơi khó để thực hiện đúng. Nhưng dù sao đi nữa, Đạo luật AI cũng bắt buộc phải có một loại hình mờ thực tế nào đó.
Kết luận
Vậy điều gì sẽ xảy ra trong năm nay? Nếu phải đoán, tôi sẽ nói rằng mỗi nhà cung cấp AI (không chỉ các phòng thí nghiệm như OpenAI hoặc Anthropic, mà cả các nhà cung cấp bên thứ ba như Fireworks hoặc Groq) sẽ đặt một bộ lấy mẫu token SynthID trước các ngăn xếp suy luận của họ. Điều này có thể chỉ giới hạn cho người dùng ở EU, nhưng cũng có thể không, vì SynthID ít nhất cũng tốt như phương pháp lấy mẫu token top-k thông thường.
Sau đó, các nhà cung cấp AI sẽ cung cấp một trang “kiểm tra hình mờ” để mã hóa lại văn bản do người dùng cung cấp, chạy chấm điểm và kiểm tra xem nó có vượt quá một ngưỡng nhất định hay không. Tùy thuộc vào việc điều khoản tương tác được coi trọng đến mức nào, các nhà cung cấp thậm chí có thể tiêu chuẩn hóa trên cùng một thiết lập SynthID, trong trường hợp đó có thể có một trang “đóng dấu hình mờ văn bản này” duy nhất do EU lưu trữ.
Tôi không nghĩ việc đóng dấu hình mờ dựa trên unicode sẽ được coi là tuân thủ Đạo luật AI, nhưng một số nhà cung cấp không muốn thiết lập SynthID có thể sẽ thử nó. Dù thế nào đi nữa, người dùng kỹ thuật sẽ có thể xóa hình mờ theo ý muốn, và sẽ có rất nhiều công cụ mà người dùng không chuyên sẽ sử dụng cho mục đích này.
chỉnh sửa: bài viết này đã nhận được một số bình luận trên Hacker News. Những người bình luận chủ yếu tranh luận về giá trị của hình mờ và quy định AI nói chung. Một người bình luận nói rằng việc ký mã hóa văn bản là dễ dàng. Chắc chắn rồi, tôi đồng ý, nhưng phần khó là lưu trữ tất cả các chữ ký (bất chấp những gì một số người lo lắng, các công ty AI không và không thể lưu trữ tất cả các lời nhắc của khách hàng). Một số người bình luận khác phàn nàn rằng việc xóa hình mờ là một tội ác. Điều đó có vẻ không đúng về mặt pháp lý hay đạo đức đối với tôi. Nó về cơ bản giống như việc dán nhãn đè lên logo trên tài sản của chính bạn!
Chà, đối với các hệ thống mới; các hệ thống hiện có được gia hạn đến tháng 12.
Tôi không nghĩ văn bản thuần túy của Điều 50 yêu cầu điều này, nhưng Phụ lục 133 và Quy tắc thực hành làm cho khá rõ ràng rằng họ đang tìm kiếm các hình mờ.
Ngay cả với tư duy cực cao, GPT-5.5 cũng không thể giải thích SynthID cho tôi với mỗi chữ cái thứ năm là chữ “e”, nhưng GPT-5.5-Pro đã tạo ra câu đố khó hiểu này: “Những mã ẩn này dán nhãn hình ảnh, giọng nói, phim, văn xuôi do mô hình tạo ra. Dò dấu vết: có thể là một tác phẩm do mô hình tạo ra. Có thể xóa dấu vết; có thể để lại dấu vết. Do đó chỉ dấu vết? Không.”
Tôi để lại sự tương đồng với các rào cản an toàn AI như một bài tập cho người đọc.
Đó là một ví dụ đồ chơi. Trong thực tế, có nhiều phương pháp chấm điểm khác nhau (nhưng vẫn đơn giản về mặt toán học) được kết hợp với nhau, bao gồm cả một hạt giống ngẫu nhiên (random seed). Tại sao phải bao gồm hạt giống? Nếu không, hình mờ sẽ thiên vị về cùng một tập hợp các token.
Các token được chấm điểm trong một cuộc đấu loại trực tiếp nhiều vòng với nhau, nhưng tôi nghĩ đó chỉ là chi tiết thực hiện và không bắt buộc để có được trực giác cốt lõi đằng sau lý do tại sao SynthID hoạt động.
Bài viết được AI dịch và tổng hợp tự động từ Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung). Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.