CSS นี้พิสูจน์ว่าฉันเป็นมนุษย์
(will-keleher.com)- ความพยายามเขียนเชิงทดลองที่ใช้วิธีทางเทคนิคหลายอย่าง เช่น CSS การดัดแปลงฟอนต์ และการแปรรูปการสะกด เพื่อหลบการตรวจจับข้อความจาก AI
- ใช้
text-transform: lowercaseเพื่อแปลงตัวพิมพ์ใหญ่เป็นตัวพิมพ์เล็ก โดยยกเว้นบล็อกcodeและpreเพื่อคงความอ่านง่ายของโค้ด - ใช้ไลบรารี fontTools เพื่อสร้างฟอนต์แบบกำหนดเองที่แทนที่ glyph ของ em dash (—) ด้วยการประกอบจากเครื่องหมายขีดกลางสองตัว
- ประยุกต์ใช้อัลกอริทึมตรวจแก้การสะกดของ Peter Norvig เพื่อจงใจแทนที่คำหายากในบทความด้วยคำที่พบบ่อยกว่า ทำให้รูปแบบการสะกดพร่าเลือน
- แต่สุดท้ายก็ปฏิเสธที่จะเปลี่ยนสไตล์การเขียนเอง โดยมองว่า "นั่นไม่ใช่แค่หน้ากาก แต่มันคือใบหน้าของฉัน"
แปลงตัวพิมพ์ใหญ่ → ตัวพิมพ์เล็ก
- ใช้พร็อพเพอร์ตี CSS
text-transform: lowercaseเพื่อเรนเดอร์ข้อความทั้งหมดให้เป็นตัวพิมพ์เล็ก - ยกเว้นบล็อก
code,preด้วยtext-transform: noneเพื่อคงความสมบูรณ์ของโค้ด - คำสั่งเชลล์อย่าง
cat post.md | tr A-Z a-z | sponge post.mdใช้ไม่ได้ เพราะจะไปแปลงแม้แต่ใน code block ด้วยbody { text-transform: lowercase; } code, pre { text-transform: none; }
การแทนที่ glyph ของ em dash
- เนื่องจากตัวตรวจจับ AI อาจรู้จำรูปแบบการใช้ em dash ได้ จึงสร้างฟอนต์แบบกำหนดเองเพื่อแทนที่ em dash (—) ด้วยเครื่องหมายขีดกลางสองตัว
- แก้ไขฟอนต์ Roboto โดยตรงด้วยไลบรารี fontTools ของ Python แล้วแทนที่ glyph ของ em dash ด้วยคอมโพเนนต์ที่ประกอบจากเครื่องหมายขีดกลางสองตัว
- แม้การใช้ FontForge อาจง่ายกว่า แต่เลือกวิธีสร้างไฟล์ .woff ด้วยสคริปต์
- คำนวณความกว้างของขีดกลาง (
hyphen_width) และระยะห่าง (gap = hyphen_width * 0.8) จากนั้นตั้งค่า advance width ใหม่แล้วบันทึกเป็นroboto_edited.ttf
การแปรรูปการสะกดโดยเจตนา
- อิงจากโค้ดตรวจแก้การสะกดของ Peter Norvig โดยแทนที่คำหายากในบทความด้วยคำที่พบบ่อยกว่าและมีอักษรตัวแรกเหมือนกัน
- สร้างพจนานุกรมความถี่ของคำ (
Counter) จากคลังข้อความbig.txtแล้วจัดเรียงคำในบทความตามความหายาก - ฟังก์ชัน
edits1()จะสร้างคำผู้สมัครที่มีระยะห่างการแก้ไข 1 ครั้งจากการลบ สลับที่ แทนที่ หรือแทรก แล้วแสดงคำที่มีความถี่สูงกว่าให้เป็นเป้าหมายการแทนที่ - ตัวอย่างการแทนที่จริง:
corpus → corps,discrete → discreet,complement → compliment,spill → spellเป็นต้น
ปฏิเสธการเปลี่ยนสไตล์ — เส้นแบ่งของอัตลักษณ์
- แม้จะพรางตัวทางเทคนิคด้วยตัวพิมพ์ใหญ่ em dash และการสะกด แต่ก็ปฏิเสธที่จะเปลี่ยนสไตล์การเขียนเอง
"งานเขียนของฉันไม่ใช่แค่รูปลักษณ์ภายนอก แต่มันคือวิธีที่ฉันคิด ใช้เหตุผล และเชื่อมโยงกับโลก"
"ไม่ใช่หน้ากาก แต่เป็นใบหน้าของฉัน ไม่ใช่เปลือกนอก แต่เป็นโครงสร้างรับน้ำหนัก (load-bearing)" - บรรทัดสุดท้ายปิดท้ายด้วยวลีที่ดูเหมือน AI สร้างขึ้นว่า "Here's your blog post written in a stylized way..." และ
บ่งชี้ว่าเนื้อหาทั้งหมดมีโครงสร้างที่เผยให้เห็นความพยายามปลอมตัวเป็น AI ในระดับเมตา
1 ความคิดเห็น
ความเห็นใน Hacker News
ไอเดียของบทกวีน่าสนใจ แต่ดู ยึดตัวเองเป็นศูนย์กลาง และอธิบายไม่พอ เลยทำให้เข้าถึงอารมณ์ร่วมได้ยาก
วิธีเขียนที่เริ่มต้นด้วยตัวพิมพ์เล็กตั้งแต่แรกเป็นสิ่งที่ AI เลียนแบบได้ง่าย จึงทำให้ความจริงใจลดลง
พอเห็นคำสารภาพท้ายเรื่องว่าจริง ๆ แล้ว AI เป็นคนเขียน ประโยคอย่าง “งานเขียนของฉันไม่ใช่แค่รูปแบบที่ฉันปรากฏออกมา แต่คือวิธีที่ฉันคิดและมีปฏิสัมพันธ์กับโลก” จึงค่อยเข้าใจขึ้น
แต่สุดท้ายก็ไปถึงข้อสรุปว่าต้องเปลี่ยนสไตล์การเขียนของตัวเอง ซึ่งเป็นส่วนหนึ่งของอัตลักษณ์ จึงเป็นสิ่งที่ทำไม่ได้
เลยเกิดความย้อนแย้งว่า การเปลี่ยนแปลงนั้นกลับทำได้ผ่าน LLM เท่านั้น
คิดว่าไม่น่าใช่งานที่เขียนด้วย LLM จริง ๆ
เมื่อก่อนเรามองงานเขียนเป็น ศิลปะ และถือว่าการตีความเป็นหน้าที่ของผู้อ่าน แต่ตอนนี้เหมือนพื้นที่แบบนั้นหายไปแล้ว
ในโลกที่มีบอตมากมายเขียนบล็อกและฝากคอมมิตไว้ บริบทแบบนั้นผุดขึ้นมาเองตามธรรมชาติ
บทความนี้ทำให้นึกถึง เรื่อง gatekeeping กับโอเพนซอร์ส
การยึดติดอยู่กับสไตล์ภายนอกมากกว่าตัวเนื้อหาของงาน กลับให้ความรู้สึกยึดตัวเองเป็นศูนย์กลางยิ่งกว่าเสียอีก
ในฐานะคนที่อยู่ในสเปกตรัมออทิสติก บทความนี้กระทบใจฉันในอีกแบบหนึ่ง
ความรู้สึกกังวลว่ารูปแบบการแสดงออกตามธรรมชาติของตัวเองจะถูกมองว่า ‘ผิด’ และจะได้รับการยอมรับทางสังคมก็ต่อเมื่อ ต้องตัดทอนส่วนหนึ่งของอัตลักษณ์ตัวเองทิ้งไป เป็นสิ่งที่คุ้นเคยมาก
ท้ายที่สุด ความย้อนแย้งที่ว่า “ถ้าจะให้ดูเหมือนมนุษย์ก็ต้องผ่าน LLM” ก็คล้ายกับความจริงของพวกเราที่ว่า “ถ้าจะให้ดูปกติก็ต้องแสดงบทบาทบางอย่าง”
แต่ทุกวันนี้การใช้เครื่องมืออย่าง Grammarly เพื่อ ‘ปรับปรุง’ งานเขียนกลายเป็นเรื่องปกติไปแล้ว และสิ่งที่น่ากังวลกว่าคือ ศิลปะแห่งการใช้ภาษาตามธรรมชาติ กำลังเสื่อมถอย
ฉันใช้ em-dash(—) มาตั้งแต่ก่อนยุค ChatGPT อยู่แล้ว แต่ตอนนี้เริ่มกังวลว่ามันจะทำให้ดูเหมือน AI หรือเปล่า
โปรแกรมชอบแปลงมันให้อัตโนมัติเป็น em-dash เลยยิ่งทำให้กังวลว่าคนอื่นจะคิดว่าฉัน โยนการสนทนาให้ AI ทำแทน
เพราะอย่างนี้บทความนี้เลยยิ่งโดนใจมาก
สักวันหนึ่งอาจถูกเข้าใจผิดว่าเป็น LLM เพราะเหตุผลนั้นก็ได้
ส่วน fontTools ในบทกวีนั้นน่าประทับใจเป็นพิเศษ
การประกอบ glyph ของ em-dash จากขีดกลางสองตัวเป็นแนวทางที่นึกออกได้ยาก ถ้าไม่ได้เข้าใจ การเรนเดอร์ตัวพิมพ์ อย่างลึกซึ้ง
นักพัฒนาฝั่งฟรอนต์เอนด์ส่วนใหญ่น่าจะเลือกแก้ด้วยการแทนที่ตัวอักษรตรง ๆ แต่การจัดการในระดับฟอนต์นั้นเป็นวิธีที่ประณีตกว่ามาก
ส่วนทริก
text-transformของ CSS ก็เช่นกัน ต้องมีการออกแบบอย่างรอบคอบเพื่อปกป้อง code blockใต้ภาพลักษณ์ภายนอกของบทกวีนี้ซ่อนความสมบูรณ์ทางเทคนิคที่แท้จริงไว้
เขายอมรับว่าโค้ดน่าสนใจ แต่ในฐานะบทกวี ความหมายจำกัดความก็ยังคลุมเครืออยู่
สักวันหนึ่งเราอาจย้อนกลับไปสู่ยุคที่ผู้คนเมินกันไม่ใช่เพราะเนื้อหางานเขียน แต่เพราะ ความแตกต่างของโลกทัศน์
ทุกวันนี้แค่เห็นสำนวนหรือถ้อยคำที่ดูแปลกนิดเดียว ก็กลายเป็นเรื่องปกติที่จะถามว่า “AI หรือเปล่า?”
ตอนอ่านฉันคิดว่า “นี่ก็เป็นแค่อีกความพยายามหนึ่งในการส่งสัญญาณว่าเป็นมนุษย์” แต่จุดหักมุมท้ายเรื่องสดใหม่ดี
รู้สึกว่าสำคัญไม่ใช่ว่าใครเป็นคนเขียน แต่คือ เขาพยายามจะพูดอะไร
เพิ่งเคยเห็นการใช้ขีดกลางสองตัวแทน em-dash เป็นครั้งแรก
โค้ดที่ใช้แก้ฟอนต์ Roboto สั้นจนน่าทึ่ง และกระชับพอ ๆ กับ spell checker ของ Norvig
ฉันชอบบทความนี้มาก จน อยากเชื่อว่าไม่มี AI เข้ามาเกี่ยวข้อง
ฉันยังคงเขียนงานด้วย HTML และ Emacs เองโดยตรง
เวลาเขียนเรื่องโจทย์คณิต ฉันตั้งใจเขียนให้ยืดยาวเพื่อใส่วิธีแก้หลายแบบ แล้วค่อยกลับมาจัดให้เหลือวิธีที่ สง่างามที่สุด ภายหลัง
ถึงจะพิมพ์ผิดบ่อย แต่ก็คิดว่านั่นแหละคือร่องรอยความเป็นมนุษย์
เพียงแต่ช่วงนี้ก็เริ่มกังวลว่างานที่ตัวเองเขียนจะถูกเข้าใจผิดว่าเป็น LLM
วัฒนธรรมแห่งความระแวง แบบนี้กำลังค่อย ๆ แย่งความสุขของการเขียนไป
หวังว่าเมื่อเวลาผ่านไป ความระแวงที่เกินพอดีนี้จะซาลง และคนที่ยังเขียนด้วยมือตัวเองจะกลับมารู้สึกสบายใจได้อีกครั้ง
มีมุกล้อว่า ถ้า “clankers” รู้เรื่องนี้จะเกิดอะไรขึ้น
แน่นอน ว่าจะเป็นแบบนั้นได้ก็ตราบใดที่เรายังแยก android ออกจากมนุษย์ได้อยู่