Đánh dấu văn bản bằng Python: Bắt kẻ sao chép bài viết của bạn
Các công ty AI đang thầm lặng đánh dấu hàng tỷ từ mỗi ngày. Bài viết này sẽ hướng dẫn bạn cách áp dụng ba kỹ thuật đánh dấu văn bản tương tự cho chính tác phẩm của mình—từ ký tự vô hình, lựa chọn từ khóa đến đánh dấu ngữ nghĩa—kèm theo kết quả thử nghiệm thực tế về độ bền trước sao chép, chỉnh sửa và diễn giải lại.

Đánh dấu văn bản bằng Python: Cách bắt kẻ sao chép bài viết của bạn
Ngày 2 tháng 8 năm 2026, Anthropic bắt đầu đánh dấu mọi văn bản mà Claude tạo ra. Kể từ năm 2024, Gemini (Google) sử dụng SynthID-Text, một phương pháp họ công bố trên tạp chí Nature và sau đó mã nguồn mở. OpenAI cũng xây dựng thứ tương tự. Trung Quốc yêu cầu gắn nhãn tích hợp trên nội dung do AI tạo ra từ tháng 9 năm 2025, và gần 190 tổ chức đã ký vào quy tắc minh bạch của EU.
Kết quả: hàng tỷ từ được tạo ra từ các hệ thống này mỗi ngày mang một dấu hiệu vô hình—không phải siêu dữ liệu biến mất khi sao chép-dán, mà là tín hiệu được nhúng ngay vào chính các từ ngữ.
Vậy nếu các công ty AI làm được điều đó, bạn có làm được không?
Hầu hết mọi người cho rằng không. Hình ảnh có pixel để thay đổi; âm thanh có phổ tần. Còn văn bản chỉ là các ký tự. Nếu ai đó sao chép bài viết của bạn và nhận là của họ, thì lời nói của bạn chỉ chống lại lời nói của họ.
Giả định đó sai. Một thế kỷ trước, các nhà làm bản đồ, biên tập viên từ điển, và ít nhất một công ty lời bài hát rất bực bội đã tìm ra cách này trước cả khi mô hình ngôn ngữ tồn tại.
Bạn có thể đánh dấu văn bản thuần túy theo ba cách, mỗi cách để lại một tín hiệu phát hiện được:
- Ký tự vô hình: dễ thêm nhất, dễ xóa nhất. Bất kỳ công cụ làm sạch nào hoặc chatbot cũng có thể loại bỏ chúng.
- Lựa chọn từ khóa: các thay thế cụ thể dựa trên khóa bí mật. Chịu được chỉnh sửa nhẹ, nhưng viết lại toàn bộ sẽ phá hủy.
- Đánh dấu cấp độ ngữ nghĩa (lấy mẫu có chủ đích): khó loại bỏ nhất. Giữ vững hơn khi viết lại, nhưng tín hiệu yếu hơn. Độ bền luôn đổi lấy sức mạnh.
Một watermark văn bản không phải tem nhìn thấy được. Đó là một mẫu lựa chọn chỉ mình bạn biết.
Hình minh họa: Dòng thời gian một thế kỷ đánh dấu văn bản
Ai nên dùng và bạn sẽ nhận được gì
Nếu bạn xuất bản bài viết trực tuyến và muốn có nhiều hơn một sự phỏng đoán khi tác phẩm bị sao chép, bài viết này dành cho bạn.
Bạn sẽ có được:
- Trực giác tung đồng xu đơn giản cho ba loại đánh dấu văn bản.
- Một tập lệnh chỉ 80 dòng, chỉ dùng thư viện chuẩn, nhúng ID 32-bit vào văn bản và phát hiện sau đó.
- Một watermark lựa chọn từ khóa, một bộ phát hiện không cần mô hình, và một bản nâng cấp có nhận thức ngữ nghĩa—kèm những hạn chế thực tế.
- Kiểm tra khả năng sống sót thực tế qua 12 kênh, nhiều cuộc tấn công chỉnh sửa, diễn giải đầy đủ, và dịch tiếng Trung.
- Một quy tắc thực tế để chọn watermark phù hợp với mối đe dọa.
Mọi thứ đều được kiểm tra trên mô hình thực: Gemma-2-9b-it để đánh dấu và Qwen2.5-7B-Instruct để tấn công, chạy trên NVIDIA GB10. Bộ kiểm tra gồm 50 đoạn văn gốc và 100 trích đoạn phạm vi công cộng để kiểm tra false-positive.
Một thế kỷ đánh dấu văn bản: Từ "con đường bẫy" đến kỹ thuật số
Trước khi watermark trở thành mật mã, nó được dùng theo cách đơn giản hơn: giấu một lỗi hoặc biến thể nhỏ có chủ đích, rồi xem ai sao chép.
Hình minh họa: Kỹ thuật trap street
Con đường bẫy (Trap streets)
Các nhà làm bản đồ chèn những con đường, thị trấn hoặc địa danh giả vào bản đồ. Nếu đặc điểm giả xuất hiện trên bản đồ của đối thủ, nguồn gốc sao chép lộ rõ. Năm 1925, General Drafting Company thêm một thị trấn New York giả tên Agloe, đặt theo tên viết tắt của những người sáng lập. Nhiều năm sau, một cửa hàng mở tại ngã tư đó và lấy tên này. Thị trấn hư cấu đã trở thành thật theo một cách nào đó.
Mountweazel
Sách tham khảo dùng mẹo tương tự với mục từ giả. The New Columbia Encyclopedia nổi tiếng bao gồm Lillian Virginia Mountweazel, một nhiếp ảnh gia hư cấu với tiểu sử chi tiết. New Oxford American Dictionary sau này cài từ esquivalience, nghĩa bịa là "sự cố ý trốn tránh trách nhiệm chính thức".
Cả hai đều không có thật. Cả hai là mồi nhử: nếu sách tham khảo khác tái bản chúng, đó là bằng chứng sao chép.
Hình minh họa: Kỹ thuật Mountweazel
Bẫy hoàng yến (Canary traps)
Canary trap đưa ý tưởng xa hơn: thay vì cho mọi người cùng một chi tiết giả, mỗi người nhận một phiên bản hơi khác. Nếu tài liệu rò rỉ, biến thể sẽ chỉ ra bản sao của ai. Elon Musk từng nói Tesla dùng kỹ thuật này vào năm 2008 bằng cách thay đổi câu phân tách bởi một hoặc hai dấu cách—những khác biệt nhỏ tạo ra chữ ký nhị phân duy nhất cho mỗi người.
Hình minh họa: Kỹ thuật canary trap
Vụ Genius chống Google
Ví dụ quan trọng nhất: trang lời bài hát Genius nghi Google tái tạo bản sao chép trong kết quả tìm kiếm. Genius bắt đầu xen kẽ dấu nháy đơn thẳng và cong theo mẫu, khi đọc như mã Morse, ra chữ REDHANDED. Mẫu được cài vào 301 bài hát và xuất hiện trong kết quả Google cho 116 bài. Genius kiện Google đòi 50 triệu USD vào năm 2019. Vụ bị bác năm 2020—không phải vì watermark thất bại, mà vì Genius không sở hữu lời bài hát, chỉ cấp phép.
Điểm khác biệt quan trọng: Watermark có thể chứng minh phiên bản văn bản của bạn bị sao chép. Nó không thể tự nó chứng minh bạn sở hữu văn bản đó.
Hình minh họa: Kỹ thuật dấu nháy đơn của Genius
Phép loại suy tung đồng xu
Hãy tưởng tượng khi viết, bạn liên tục thực hiện một hành động nhị phân ẩn: chèn một trong hai ký tự vô hình, chọn giữa hai từ đồng nghĩa, hoặc chọn giữa hai từ tiếp theo hợp lý như nhau. Một lần khớp chứng minh không gì cả: xác suất 50% là ngẫu nhiên. Nhưng nếu 30 lựa chọn khớp khóa liên tiếp, tỷ lệ ngẫu nhiên là khoảng 1 trên 1 tỷ. Xác suất đó tạo ra bằng chứng thống kê—trong thuật ngữ chính thức, gọi là giá trị p.
Ba họ watermark khác nhau chủ yếu ở "tung đồng xu" đại diện điều gì:
| Họ | Đồng xu | Nơi tồn tại |
|---|---|---|
| Ký tự vô hình | ký tự zero-width—có hay không | giữa các chữ cái |
| Lựa chọn từ khóa | "lớn" vs. "to"; nháy đơn thẳng vs. cong | trong các từ |
| Lấy mẫu có chủ đích | token nào mô hình phát ra tiếp theo | bên trong bộ sinh |
Hai kỹ thuật đầu áp dụng cho văn bản đã tồn tại. Kỹ thuật thứ ba phải xảy ra trong lúc mô hình ngôn ngữ đang tạo văn bản.
Kỹ thuật 1 — Ký tự vô hình
Unicode có các ký tự chiếm không gian hiển thị bằng 0. Hai ví dụ:
- U+200B — khoảng trắng zero-width
- U+200C — non-joiner zero-width
Gán một ký tự là 0 và ký tự kia là 1, bạn có một kênh nhị phân ẩn trong văn bản bình thường. Zach Aysan mô tả kỹ thuật này năm 2017 và chỉ ra hệ quả quan trọng: văn bản sao chép có thể mang dấu vân tay vô hình theo—ai đó dán tài liệu rò rỉ nơi khác có thể vô tình giữ ID nhúng bên trong.
Triển khai giữ độ tin cậy
Ba lựa chọn chính làm nên công việc:
- Checksum chống khớp giả: Thêm CRC 8-bit giảm xác suất payload ngẫu nhiên qua kiểm tra xuống ~1/256. Trong 1.700 lần trích xuất, zero ID giả.
- Lặp payload: ID 40-bit cần 40 ký tự vô hình. Lặp sau mỗi câu nghĩa là đoạn chép vẫn chứa dấu đầy đủ, giải mã được.
- Bộ giải mã dùng cửa sổ trượt: Sao chép có thể trộn, cắt, lệch chuỗi. Bộ giải mã kiểm tra mọi cửa sổ 40-bit và trả về ID hợp lệ xuất hiện nhiều nhất.
Kết quả kiểm tra
Sống sót: 150/150 phục hồi qua mọi kênh cơ học gồm copy 50% giữa đoạn, chuyển đổi UTF-8/UTF-16, JSON/HTML, Markdown/.docx, chuẩn hóa khoảng trắng, chuẩn hóa Unicode NFKC, viết thường.
Bị phá hủy: Làm sạch tường minh—0/150 sống sót. Dọn dẹp LLM—chỉ 4/50 (8%). Diễn giải lại—0/50.
Kỹ thuật 1 có giới hạn đơn giản: sống sót qua vận chuyển văn bản, không sống sót qua viết lại văn bản.
Kỹ thuật 2 — Lựa chọn từ khóa
Kỹ thuật thứ hai giấu thông tin trong chính từ ngữ, không phải giữa ký tự. Chúng ta thường viết các lựa chọn tương đương: lớn/to, bắt đầu/khởi đầu, vấn đề/rắc rối. Thông thường, người viết chọn từ nghe hay nhất. Nhưng với watermark khóa, một khóa bí mật quyết định dùng biến thể chấp nhận được nào.
Ưu điểm lớn so với ký tự vô hình: không có gì thêm để loại bỏ. Watermark là một phần của văn bản. Công cụ làm sạch, chuẩn hóa Unicode, scraper, chuyển đổi tập tin không thể gỡ. Để phá tín hiệu, phải viết lại chính các từ.
Cơ chế
Bắt đầu với bảng từ thay thế công khai. Tại mỗi từ đủ điều kiện, dùng khóa bí mật chọn thành viên nào của cặp xuất hiện. Nếu bit là 0, dùng từ đầu. Nếu 1, dùng từ hai. Từ hiện có khớp khóa giữ nguyên; không khớp chỉ đổi khi câu vẫn đọc tự nhiên.
Với sai khóa—hoặc văn bản thường không đánh dấu—mỗi lựa chọn khớp khóa khoảng 50%. Tài liệu đánh dấu tạo số khớp cao bất thường. Hai chi tiết quan trọng: dùng ngữ cảnh ổn định (không phụ thuộc từ bên cạnh có thể bị đổi) và hash cả danh tính cặp từ (tránh tương quan khi ngữ cảnh lặp).
Hiệu quả thực tế
- 50 đoạn, ba khóa, Gemma-2-9B-IT chấp nhận 880/1.039 hoán đổi (84,7%), đổi ~2,72% tổng số từ.
- Tại tỷ lệ false-positive 1% đã hiệu chuẩn, phát hiện cần z ≥ 2.45.
- Một đoạn (~215 từ): 73,3% phát hiện.
- Một bài (~1.075 từ): 100% phát hiện.
Giới hạn chính là kích thước mẫu. Một đoạn chỉ có ~13 vị trí dùng được. Ngay cả khớp 13/13 hoàn hảo chỉ đạt z ≈ 3.6. Kết luận thực dụng: watermark lựa chọn từ hoạt động ở độ dài bài viết, không phải độ dài tweet.
Chi phí ẩn: chất lượng văn bản
Vấn đề lớn hơn: từ đồng nghĩa hợp lệ kỹ thuật không phải luôn thay thế tốt. Ví dụ thực nghiệm: "Two dollars of filtered water repaired a issue I had thrown multiple hundred dollars at" (gốc: "fixed a problem")—hiểu được nhưng rõ ràng kém hơn. Đo lường độc lập bằng Qwen2.5-7B-Instruct: mọi đoạn đánh dấu trở nên kém khả năng hơn dưới mô hình, ~1/6 đoạn thêm lỗi ngữ pháp.
Đánh đổi: nhiều lựa chọn từ bị ép → tín hiệu thống kê mạnh hơn → rủi ro chất lượng viết cao hơn. Phiên bản an toàn nhất dùng tập nhỏ các cặp thực sự hoán đổi được, kiểm tra bằng tay—và vẫn cần đọc lại trước khi xuất bản.
Kỹ thuật 3 — Đánh dấu ngữ nghĩa
Hai kỹ thuật đầu thất bại khi diễn giải lại vì watermark sống trong lựa chọn từ. Viết lại từ, dấu biến mất. Vậy nếu watermark sống trong ý nghĩa?
Đó là ý tưởng của PostMark (Chang et al., EMNLP 2024) và cách tiếp cận nhúng tương tự của Jina AI. Quy trình:
- Giữ danh sách bí mật các từ hiếm.
- Dùng mô hình nhúng tìm từ nào liên quan ngữ nghĩa nhất đến tài liệu.
- Yêu cầu mô hình ngôn ngữ dệt vài từ đó tự nhiên vào văn bản.
- Nếu ý nghĩa giữ tương tự, các từ hiếm tương tự vẫn liên quan—và vì chúng mang nội dung thực, người viết lại có xu hướng giữ chúng.
Làm đúng bộ phát hiện
Bộ phát hiện đầu tiên trông mạnh—cho đến khi kiểm tra trên văn bản sạch. Nó so từ khóa ngữ nghĩa với từ watermark và gắn cờ 62,7% mẫu dịch—nhưng cũng gắn cờ 100% bản gốc không watermark. Vì sao? Vì cả hai phản ánh ý nghĩa tài liệu; nó đo độ tương tự ngữ nghĩa, không phải watermark.
Detector PostMark hợp lệ chỉ cần văn bản nghi vấn:
- Hiểu ý nghĩa: chuyển văn bản thành embedding.
- Dùng ý nghĩa chọn từ bí mật: từ bảng bí mật, tìm k từ liên quan nhất.
- Đếm khớp: kiểm tra bao nhiêu từ bí mật xuất hiện thực sự trong văn bản.
Văn bản không đánh dấu hiếm khi chứa từ hiếm này ngẫu nhiên. Văn bản đánh dấu thì có.
Kết quả: độ bền đổi lấy chi phí
Với k=4 từ mỗi đoạn, Gemma-2-9b-it chèn thành công 93,5% từ yêu cầu, tăng độ dài 15,8%.
| Điều kiện | Black box (không cần gốc) | Presence (cần gốc) |
|---|---|---|
| Sao chép sạch | 99,3% | 100% |
| Thay từ 30% | 60,0% | 99,3% |
| Copy một phần 50% | 40,7% | 67,3% |
| Dịch Anh rồi dịch lại | 23,3% | 68,0% |
| Diễn giải đầy đủ | 9,3% | 32,7% |
| Dịch tiếng Trung | 0% | 0,7% |
| Bản gốc không watermark | 0,7% | 4,0% |
Kết quả diễn giải yếu ở k=4 một phần do cấu hình. Với k=12, tỷ lệ sống sót khi diễn giải tăng ~4 lần (36,7%), false-positive giữ ~0,7%. Nhưng mô hình chỉ chèn 80,6% từ yêu cầu (giảm từ 93,5%)—nhét 12 từ bất thường vào ~215 từ ảnh hưởng độ tự nhiên.
Kết luận: watermark ngữ nghĩa càng chống diễn giải càng cần chèn nhiều nội dung mang watermark—nhưng độ tự nhiên giảm. Ở tỷ lệ thực dụng, phát hiện ~1/3 đoạn diễn giải—tốt hơn hẳn các họ khác, nhưng chưa đủ tin cậy cho tuyên bố pháp lý.
Kỹ thuật 4 — Lấy mẫu có chủ đích
Các kỹ thuật trước thêm sau khi viết. Kỹ thuật này ngược lại: phải xảy ra trong lúc mô hình ngôn ngữ tạo từng token. Mô hình viết bằng cách chọn token tiếp theo từ phân phối xác suất—mỗi lựa chọn là tung đồng xu, một trang chứa hàng nghìn. Watermark rig các lựa chọn ngẫu nhiên theo cách chỉ bộ phát hiện nhận ra. Scott Aaronson mô tả ý tưởng cốt lõi năm 2022, dựa trên công việc với kỹ sư OpenAI Hendrik Kirchner: giữ xác suất bình thường, thay ngẫu nhiên thường bằng giả ngẫu nhiên khóa dựa trên khóa bí mật và token trước.
Hai cách tiếp cận lớn: green-list watermarking (Kirchenbauer) và tournament sampling (SynthID-Text).
Kết quả đo lường
Trên 30 prompt (20 mở, 10 thực tế), Gemma-2-9b-it, 400 token/phản hồi:
Văn bản sáng tạo (prompt mở):
| Token thấy | Kirchenbauer | SynthID-Text |
|---|---|---|
| 50 | 28,3% | 60,0% |
| 100 | 53,3% | 86,7% |
| 200 | 78,3% | 96,7% |
| 400 | 95,0% | 100,0% |
SynthID mạnh hơn ở mọi độ dài. SynthID đạt ở ~200 token hiệu suất Kirchenbauer cần ~400.
Văn bản thực tế (prompt đóng): Cả hai kém—50% và 76,7% ở 400 token. Khi liệt kê "8 hành tinh theo thứ tự", có rất ít tự do chọn tiếp. Không lựa chọn = không tung đồng xu = không tín hiệu. Điểm yếu lớn nhất của watermark sinh: yếu trên văn bản ngắn, trả lời thực tế, mã nguồn, và đầu ra có ràng buộc cao.
Diễn giải phá hủy phần lớn tín hiệu: Sau diễn giải bằng Qwen2.5-7B-Instruct, phát hiện văn bản mở giảm từ 95%→23,3% (Kirchenbauer) và 100%→11,7% (SynthID). Văn bản thực tế: cả hai về 0%.
Chi phí sinh: SynthID-Text làm giảm thông lượng 25,6%, Kirchenbauer giảm 50,6% so với không watermark (đo trên transformers, xem là chặn trên).
Kết luận thực dụng: Watermark sinh hoạt động tốt nhất khi văn bản dài, mở, ít thay đổi. Yếu khi ngắn, thực tế, lặp lại, dịch hoặc diễn giải.
Chọn watermark nào cho mối đe dọa nào?
Các kỹ thuật không cạnh tranh nhau—chúng thất bại dưới các cuộc tấn công khác nhau. Câu hỏi hữu ích: bạn đang chống lại điều gì?
| Mối đe dọa | Dùng | Vì sao |
|---|---|---|
| Scraper và trang nội dung sao chép nguyên văn | Zero-width | 100% qua HTML, JSON, Markdown, docx; giải mã từ nửa đoạn |
| Tìm ai rò rỉ tài liệu | Zero-width, ID riêng mỗi bản | 32 bit = 4 tỷ người nhận; CRC không buộc tội oan |
| Ai đó đăng lại với chỉnh sửa nhẹ | Lựa chọn từ khóa | Không gì để gỡ; sống sót xóa 30% câu ở 53% |
| Ai đó chạy văn bản qua LLM | Ngữ nghĩa, tỷ lệ chèn cao | 36,7% sau diễn giải ở k=12—tốt nhất hiện có, không đảm bảo |
| Chứng minh tuyên bố bất thường là của bạn | Canary trap | Miễn phí, không code, sống sót viết lại nếu chi tiết chịu lực |
| Đánh dấu văn bản LLM của bạn sinh ra | SynthID hoặc Kirchenbauer | Tích hợp transformers; cần kiểm soát lúc sinh |
| Chứng minh sở hữu trong tòa án | Không kỹ thuật nào | Vấn đề pháp lý, không phải kỹ thuật. Hỏi Genius. |
Bốn quy tắc thực tế
- Đánh dấu ở độ dài bài viết, không phải đoạn: lựa chọn từ tăng từ 73,3% (215 từ) lên 100% (1.075 từ).
- Xếp lớp các watermark độc lập: ký tự zero-width và lựa chọn từ không gây nhiễu; làm sạch cái này để cái kia nguyên vẹn.
- Hiệu chuẩn trên văn bản chưa đánh dấu: đặt ngưỡng bằng văn bản người viết bạn chưa bao giờ watermark.
- Lưu khóa khi xuất bản: ghi khóa, ID, danh sách từ. Nếu không tái tạo phát hiện, bạn không thực sự có watermark.
Bài viết liên quan

Công nghệ
Nộp đơn xin việc lẽ ra nên khó hơn. Thật đấy
25 tháng 8, 2026

Công nghệ
Kadō: Ứng dụng theo dõi thói quen mã nguồn mở cho iOS với điểm số thông minh, không tài khoản, không theo dõi
06 tháng 9, 2026

Công nghệ
Tự Chế Hộp Đựng và Giá Đỡ Khăn Giấy Bằng Laser Cắt: Từ Cuttle đến OpenSCAD
04 tháng 9, 2026