2 คะแนน โดย GN⁺ 2025-04-04 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

บทวิจารณ์เรื่องความโง่เขลาของการเขียนโปรแกรมด้วยภาษาธรรมชาติ

  • ตั้งแต่ยุคแรกเริ่มของเครื่องคำนวณอัตโนมัติ ก็มีคนที่ไม่พอใจกับการเขียนโปรแกรมที่ต้องอาศัยระบบสัญลักษณ์แบบเป็นทางการ
  • เครื่องจักรเป็น “ทาสผู้ซื่อสัตย์” ที่ทำตามคำสั่งที่ได้รับอย่างตรงไปตรงมา และจะรันแม้แต่ข้อผิดพลาดที่เห็นได้ชัด
  • บางคนคาดหวังว่า แทนที่เครื่องจะเพิกเฉยต่อข้อผิดพลาดและทำงานต่อไป มันควรจะแสดงพฤติกรรมที่ “มีเหตุผล” มากกว่านี้

การเกิดขึ้นและพัฒนาการของภาษาโปรแกรมระดับสูง

  • ภาษาเครื่องถูกมองว่าเป็นอินเทอร์เฟซที่อันตราย เพราะแทบไม่มีการตรวจจับข้อผิดพลาดหรือความซ้ำซ้อนเลย
  • ด้วยเหตุนี้ ภาษาโปรแกรมระดับสูงจึงถือกำเนิดขึ้น และมีการพัฒนาเพื่อป้องกันผลลัพธ์ที่ผิดพลาดผ่านข้อความแจ้งข้อผิดพลาด
  • อย่างไรก็ตาม การเขียนโปรแกรมก็ยังคงต้องใช้สัญลักษณ์แบบเป็นทางการ และยังต้องการความแม่นยำอย่างพิถีพิถัน

ข้อเสนอให้เขียนโปรแกรมด้วยภาษาธรรมชาติและข้อโต้แย้งต่อแนวคิดนั้น

  • มีข้อเสนอว่า หากควบคุมเครื่องด้วยภาษาธรรมชาติ ผู้ใช้จะใช้งานได้สะดวกขึ้น
  • แนวคิดนี้มองว่า เมื่อเครื่องจักรซับซ้อนขึ้น ก็อาจช่วยผู้ใช้ได้มากขึ้น
  • แต่การเปลี่ยนแปลงของอินเทอร์เฟซไม่ได้เป็นเพียงการปรับการแบ่งงาน กลับทำให้เกิดภาระงานด้านความร่วมมือและการสื่อสารเพิ่มขึ้น
  • ในความเป็นจริง ยิ่งอินเทอร์เฟซกว้างขึ้น ปริมาณงานของทั้งสองฝ่ายก็มักเพิ่มขึ้น และทำให้ความซับซ้อนสูงขึ้นแทน

ตัวอย่างทางประวัติศาสตร์ของคณิตศาสตร์และระบบสัญลักษณ์

  • คณิตศาสตร์กรีกโบราณยังคงยึดติดกับแนวทางที่เน้นภาษาและภาพ ทำให้พัฒนาการหยุดชะงัก
  • คณิตศาสตร์อิสลามก็หยุดชะงักเช่นกัน เพราะไม่สามารถรับเอาระบบสัญลักษณ์มาใช้ได้
  • ยุโรปกลับก้าวหน้าอย่างก้าวกระโดด เมื่อบุคคลอย่าง Vieta, Descartes, Leibniz และ Boole นำระบบสัญลักษณ์แบบเป็นทางการมาใช้

ข้อดีของภาษาทางการและข้อจำกัดของภาษาธรรมชาติ

  • ภาษาทางการสามารถป้องกันข้อผิดพลาดจำนวนมากได้ด้วยกฎง่าย ๆ เพียงไม่กี่ข้อ
  • สัญลักษณ์แบบเป็นทางการทำให้นักเรียนก็สามารถคิดเชิงตรรกะได้ ในแบบที่ครั้งหนึ่งเคยเป็นสิ่งที่มีแต่คนอัจฉริยะเท่านั้นทำได้
  • ภาษาธรรมชาติมีความกำกวมและปะปนด้วยถ้อยคำที่ไร้ความหมายได้ง่าย จึงไม่เหมาะกับการแสดงตรรกะอย่างถูกต้องไร้ข้อผิดพลาด

ถ้าภาษาธรรมชาติเป็นวิธีเดียวของการป้อนข้อมูล/ส่งออกล่ะ?

  • หากตั้งแต่แรกเราควบคุมเครื่องได้ด้วยภาษาธรรมชาติเพียงอย่างเดียว สุดท้ายเราก็คงต้องกลับไปสู่กระบวนการ “bootstrap” เพื่อสร้างระบบแบบเป็นทางการขึ้นมาอีกครั้ง
  • กระบวนการนี้อาจกินเวลาหลายพันปี และท้ายที่สุดก็คงลงเอยที่ภาษาทางการอยู่ดี

ความถดถอยทางการศึกษาและปรากฏการณ์ “ผู้ไม่รู้หนังสือแบบใหม่”

  • ในช่วงหลายทศวรรษที่ผ่านมา การฝึกฝนทางปัญญาที่อ่อนแอลงทำให้คนจำนวนมากแม้แต่ภาษาแม่ของตนเองก็ยังใช้ได้ไม่ดีพอ
  • ปรากฏการณ์ที่คำพูดไร้ความหมายล้นหลามในบทความวิชาการ รายงานทางเทคนิค และเอกสารราชการ เป็นหลักฐานยืนยันเรื่องนี้
  • ปรากฏการณ์เช่นนี้ทำให้พอมองเห็นล่วงหน้าได้ว่า การเขียนโปรแกรมด้วยภาษาธรรมชาติมีแนวโน้มจะล้มเหลว

สัญชาตญาณเชิงสรุป

  • การสร้างเครื่องที่สามารถเขียนโปรแกรมด้วยภาษาธรรมชาติได้ อาจยากพอ ๆ กับการใช้งานมัน

1 ความคิดเห็น

 
GN⁺ 2025-04-04
ความคิดเห็นจาก Hacker News
  • มีความเห็นว่าการออกมาปกป้อง LLMs (โมเดลภาษาขนาดใหญ่) กลายเป็นเรื่องที่ดูเท่

    • ในทางกลับกัน ก็ชวนสงสัยว่าจะเกิดอะไรขึ้นถ้านำโปรเจ็กต์ที่มีความซับซ้อนระดับกลางจากโค้ดไปแปลงเป็นภาษาธรรมชาติ
    • ไม่แน่ใจว่าภาษาธรรมชาติจะอธิบายพฤติกรรมและข้อกำหนดของซอร์สโค้ดได้ครบถ้วนเพียงพอหรือไม่ และคำอธิบายนั้นจะเข้าใจง่ายกว่าหรือไม่
    • มักมีการสาธิตด้วยแอปพลิเคชันง่าย ๆ เพราะจัดการทั้งความซับซ้อนและความแม่นยำได้ยาก
    • มีเหตุผลที่ภาษากฎหมายไม่ใช่ภาษาอังกฤษธรรมดาทั่วไป
  • ทำให้นึกถึงคำพูดเก่าของ Hal Abelson

    • วิทยาการคอมพิวเตอร์ไม่ใช่วิทยาศาสตร์ และก็ไม่ได้เกี่ยวกับคอมพิวเตอร์มากนัก
    • การปฏิวัติคอมพิวเตอร์คือการปฏิวัติวิธีคิดและวิธีการแสดงออก
    • คณิตศาสตร์ให้แนวคิดที่แม่นยำเกี่ยวกับคำว่า 'อะไร' ส่วนการคำนวณให้แนวคิดที่แม่นยำเกี่ยวกับคำว่า 'อย่างไร'
  • ภาษาธรรมชาติมีข้อจำกัดที่มาจากขีดจำกัดทางความคิดของมนุษย์

    • ในฐานะโปรแกรมเมอร์ ปัญหาหรือความขัดแย้งหลายอย่างมักจะชัดเจนขึ้นหลังจากลงมือเขียนโค้ดแล้ว
    • การอธิบายให้แม่นยำด้วยภาษาธรรมชาติต้องใช้เวลามากกว่า
  • ภาษาเครื่องถูกมองว่าเป็นอินเทอร์เฟซที่อันตรายเกินความจำเป็น

    • จึงมีการพัฒนาภาษาโปรแกรมระดับสูงขึ้นมาเพื่อลดความผิดพลาด
    • Rust ช่วยชี้ข้อผิดพลาดได้อย่างชัดเจน จึงเป็นประโยชน์ต่อผู้พัฒนา
    • LLMs ให้ความรู้สึกเหมือนเกมเดาสุ่มแบบกึ่งฉลาด
    • แนวทางของ Rust จึงเป็นสิ่งที่ถูกใจมากกว่า
  • แทนที่จะสร้างโปรแกรมคอมพิวเตอร์ด้วยภาษาธรรมชาติ ก็ควรให้มันถูกนำไปประมวลผลได้โดยตรง

    • มีการยกตัวอย่างระบบกราฟิกและโปรแกรม Tic-tac-toe
    • ยังต้องมีพรอมป์ตสำหรับไฟล์ซิสเต็มและระบบปฏิบัติการแบบมัลติทาสกิงด้วย
    • คาดหวังความก้าวหน้าเหล่านี้ในช่วงต้นเดือนเมษายนปีหน้า
  • ภาษาธรรมชาติไม่เหมาะกับการถ่ายทอดกฎและคำสั่ง

    • ยกปัญหาการตีความกฎหมายของสหรัฐฯ มาเป็นตัวอย่าง
    • ความชัดเจนและความรับผิดชอบของภาษาคอมพิวเตอร์ช่วยสร้างสมดุล
  • ภาษาที่สร้างขึ้นสำหรับโดเมนเฉพาะให้ทั้งความแม่นยำและความชัดเจนที่ภาษาธรรมชาติให้ไม่ได้

    • หากพยายามทำกลับกันจะต้องใช้แรงงานมากกว่าเดิม
  • Forth, PostScript, Assembly เป็นภาษาโปรแกรมแบบ 'ธรรมชาติ' ที่เข้ากับสภาพแวดล้อมการรันโค้ดได้ดี

    • คำถามคือคำว่า 'ธรรมชาติ' นั้นเป็นธรรมชาติกับมนุษย์หรือกับคอมพิวเตอร์กันแน่
    • AI ไม่ได้ทำให้ภาษามนุษย์กลายเป็นสิ่งที่เป็นธรรมชาติต่อคอมพิวเตอร์
    • AI จะประดิษฐ์ภาษาที่เหมาะกับสภาพแวดล้อมของตัวเองขึ้นมา
  • วิธีการเขียนโปรแกรมระดับสูงจะเริ่มมีหน้าตาคล้ายภาษาโปรแกรมมากกว่าภาษาธรรมชาติ

    • หากไม่ต้องการเขียนโปรแกรม ก็จำเป็นต้องมีวิธีสั่งการความฉลาดที่ทำหน้าที่เขียนโปรแกรมแทน
    • วิธีการสั่งการระดับสูงจะดูคล้ายการสอนมากกว่าภาษาธรรมชาติ
  • การที่ความผิดพลาดแสดงออกมาเป็นข้อความผิดพลาดถือเป็นการปรับปรุงครั้งใหญ่

    • บางคนกลับมองว่าการไม่สามารถเพิกเฉยต่อข้อความผิดพลาดได้นั้นน่ารำคาญกว่า
    • เมื่อตัดสินข้อดีของภาษาโปรแกรม บางคนก็ถือว่า 'ความง่ายในการเขียนโปรแกรม' เท่ากับความง่ายในการทำผิดพลาด