‹

05 · ปรัชญาภาษา

05 · ​ปรัชญา​ภาษา

​การไต่​สวน​ครั้ง​ที่ 5 ​ใน​ภาค I ​ศาล​ปรัชญา — ​ปรัชญา​ถาม​เครื่องจักร​ตรงๆ ​ว่า​โค้ด​ของ​มัน ​และ​คำพูด​ของ​เรา​เอง ​แปล​ว่า​อะไร​กัน​แน่

​โค้ด​มีความหมาย​ได้​อย่างไร — ​แล้ว​เรา​ล่ะ

​ทุก​การเรียก​ใช้​ตรง​กับ​ทุก​กฎ​เป๊ะ ​และ​ไม่​มี​สิ่งใด​ที่​ผู้​โจมตี​ทำ​ละเมิด​โค้ด​ของ​สัญญา​แม้แต่​บรรทัด​เดียว ​วันที่ 17 ​มิถุนายน 2016 ​ผู้​โจมตี​นิรนาม​คน​หนึ่ง​เรียก​ฟังก์ชัน​ชื่อ splitDAO ​ใน The DAO ​กองทุน​ลงทุน​แบบ​กระจาย​ศูนย์​ที่​ระดม​อี​เธอร์​ได้​กว่า 150 ​ล้าน​ดอลลาร์​จาก​ผู้​ร่วม​ลงทุน​หลาย​พัน​คนใน​ฤดูใบไม้ผลิ​ปี​นั้น ​ฟังก์ชัน​นี้​มี​ไว้​ให้​สมาชิก​ถอน​ส่วนแบ่ง​ของ​ตัวเอง ​เสร็จ​แล้วจึง​แก้​บันทึก​ภายใน​ของกอง​ทุน ​แต่​มัน​แก้​บันทึก ​หลังจาก ​ส่ง​เงิน​ออก​ไป ​ไม่​ใช่​ก่อน ​ผู้​โจมตี​จึง​เรียก​ฟังก์ชัน​เดิม​ซ้ำ​จาก​ใน​ธุรกรรม​เดียวกัน ​ตอนที่​ยอด​คงเหลือ​ยัง​ไม่​ขยับ ​และ​เรียก​ซ้ำ​วน​เป็น​ลูป​เรียกตัว​เอง (recursive loop) ​ถี่ยิบ ​กว่า​ลูป​จะ​หยุด ​อี​เธอร์​ราว 3.6 ​ล้าน​หน่วย — ​ราว 50 ​ล้าน​ดอลลาร์​ตาม​รายงาน​วันนั้น — ​ไหล​เข้าบัญชี​ที่​ผู้​โจมตี​คุม​อยู่ (Chainlink, "Reentrancy Attacks and The DAO Hack Explained")

​ทั้งสองฝ่าย​มอง​ไบต์​ชุด​เดียวกัน​เป๊ะๆ ​ของ​ซอร์ส​โค้ด ​แล้ว​อ่าน​ความหมาย​ไม่​ตรงกัน ​ชุมชน Ethereum ​แตก​เป็น​สอง​ฝ่าย​ทันที​เรื่อง​สิ่ง​ที่​เพิ่ง​เกิดขึ้น ​ฝ่าย​แรก​ยก​คำขวัญ​ของ​ขบวนการ​เอง​ขึ้น​มา — "​โค้ด​คือ​กฎหมาย (code is law)" — ​เงื่อนไข​ของ​สัญญา​คือ​สิ่ง​ที่ bytecode ​ของ​มัน​สั่งทำ​งาน ​เท่านั้น ​ธุรกรรม​ที่​เดินตาม​โค้ด​ตรงตัว​ย่อม​ไม่​ใช่​การขโมย ​ต่อให้​อ่าน​ความมุ่งหมาย​ของกอง​ทุน​เป็น​ภาษาอังกฤษ​ธรรมดา​แล้ว​ได้​คำตอบ​ตรงข้าม​ก็ตาม ​ฝ่าย​ที่สอง​ถือว่า​สัญญา​มี​ความมุ่งหมาย​อยู่​เหนือ​ตัวอักษร ​วันที่ 20 ​กรกฎาคม 2016 ​ที่​บล็อก​ที่ 1,920,000 ​เสียงข้างมาก​ฟอร์ก​บล็อกเชน Ethereum ​ทั้ง​สาย​เพื่อ​พลิก​การขโมย​นั้น​กลับ ​ฝ่าย​ข้างน้อย​ที่​ยืนกราน​อยู่​กับ​สาย​เดิม​กลายเป็น Ethereum Classic (The Block, "The DAO Hack at 10")

​ข้อขัดแย้ง​นั้น​คือ​คำถาม​เก่าแก่​ที่สุด​ของ​ปรัชญา​ภาษา ​เดินผ่าน​ด่าน​ศุลกากร​มา​พร้อม​ป้าย​ส่ง​ของ​ที่​เขียน​ว่า​วิทยาการ​คอมพิวเตอร์ (computer science) ​ห้าสิบ​ห้า​ปีก่อน​หน้า​นั้น Ludwig Wittgenstein ​ตั้งชื่อ​กับดัก​ที่​รอ​ใครก็ตาม​ที่​เชื่อ​ว่า​กฎ​ที่​เขียน​ไว้​ตัดสิน​การใช้งาน​ของ​ตัวเอง​ได้​ไว้​แล้ว — "​นี่​คือ​ปฏิทรรศน์​ของ​เรา ​ไม่​มี​แนวทาง​ปฏิบัติ​ใด​ที่​กฎ​จะ​กำหนด​ได้ ​เพราะ​แนวทาง​ปฏิบัติ​ใด​ก็ตาม​ก็​ทำให้​ดู​สอดคล้อง​กับ​กฎ​ได้​เสมอ" ("This was our paradox: no course of action could be determined by a rule, because any course of action can be made out to accord with the rule") (Philosophical Investigations §201, 1953) Saul Kripke ​อ่าน​ข้อความ​นี้​แล้ว​ลับ​ให้​คม​ขึ้น​เป็น​ข้อ​ท้าทาย​เชิง​สงสัย​นิยม — ​ไม่​มี​อะไร​ใน​ตัวบท​ของ​กฎ ​และ​ไม่​มี​อะไร​ใน​การฝึกฝน​ที่ผ่านมา​ของ​คุณ​กับ​มัน ​บังคับ​ทาง​ตรรกะ​ให้​เลือก​ความต่อเนื่อง​แบบ​หนึ่ง​เหนือ​อีก​แบบ ​จาก​ความเป็นไปได้​นับไม่ถ้วน​ที่ "​สอดคล้อง (accord)" ​กับ​กฎ​เท่าๆ ​กัน (Kripke, Wittgenstein on Rules and Private Language, 1982) ​วงการ​คอมพิวเตอร์​สร้าง​สาขาวิชา​ขึ้น​มา​ทั้ง​สาขา ​คือ​ความหมาย​เชิง​รูป​นัย (formal semantics) ​บน​การพนัน​ว่า​โค้ด​คือ​ที่​แห่ง​เดียว​ที่​ปิด​ปัญหา​นี้​ได้​จริง The DAO ​คือ​วันที่​การพนัน​นั้น​ถึงกำหนด​จ่าย ​ลูป​การเรียก​ซ้ำ​เข้าไป​ใหม่ (reentrancy) ​สอดคล้อง​กับ​กฎ​ตามตัว​อักษร​ของ​สัญญา​อย่าง​สมบูรณ์ ​ส่วน​คำถาม​ว่า​มัน​ละเมิด ​กฎ ​หรือไม่ ​ขึ้นกับ​การตีความ​ที่​ตัวบท​เปล่าๆ ​ให้​ไม่​ได้

​ความหมาย​เชิง​รูป​นัย (formal semantics) ​ทำสำเร็จ​ตามที่​ประกาศ​ไว้ ​แต่​ตอบ​คนละ​คำถาม​กับ​ที่​ปรัชญา​ตั้ง​ไว้ ​มัน​เสนอ​คำตอบ​คู่แข่ง​กัน​สอง​แบบ​ต่อ​คำถาม "​โปรแกรม​นี้​มีความหมาย​ว่า​อะไร" ​และ​สร้าง​ทั้งสอง​แบบ​ขึ้น​มา​เพื่อ​หนีปัญหา​ของ Wittgenstein ​โดยตรง ​ด้วย​การตรึง​ความหมาย​แน่น​จน​ไม่​มี​ความกำกวม​เหลือ​รอด ​ความหมาย​เชิงปฏิบัติการ (operational semantics) ​ตาม​ประเพณี​ที่ Gordon Plotkin ​ทำให้​เป็น​รูป​นัย​ใน​เอกสาร​ประกอบการ​บรรยาย​ที่ Aarhus ​ปี 1981 ​เรื่อง "A Structural Approach to Operational Semantics" (Plotkin, DAIMI FN-19, Aarhus University, 1981) ​นิยาม​ความหมาย​ของ​โปรแกรม​เป็นลำดับ​สถานะ​ของ​เครื่อง​ที่​มัน​สร้าง​ขึ้น — ​ความหมาย​ใน​ฐานะ​ร่องรอย (trace) ​ที่​ตรวจ​ได้​ด้วย​การจำลอง ​ความหมาย​เชิง​นัย​ชี้ (denotational semantics) ​ที่ Christopher Strachey ​กับ Dana Scott ​สร้าง​ที่ Programming Research Group ​ของ Oxford ​ทำ​อีก​ทาง ​คือ​จับ​วัตถุ​ทาง​คณิตศาสตร์​ใส่​ให้​แต่ละ​โปรแกรม​ตรงๆ ​โดยมาก​เป็น​ฟังก์ชัน​จาก​อินพุต​ไป​เอาต์พุต ​และ​รับมือ​กรณี​ยาก — ​ลูป ​การเรียก​ฟังก์ชัน​ตัวเอง — ​ด้วย​การหา​จุด​ตรึง​น้อยที่สุด (fixed point) ​ของ​ฟังก์ชัน​นั้น​เหนือ​พื้นที่​มี​โครงสร้าง​ที่​เรียก​ว่า​โดเมน (domain) (Scott & Strachey, "Toward a Mathematical Semantics for Computer Languages," PRG-6, 1971) ​ทั้งคู่​ทำให้ ​สิ่ง​ที่เกิด​ขึ้น ​ชัดเจน​แน่นอน​เต็มที่​จริง ​แต่​ไม่​มี​ใคร​แตะ​คำถาม​ของ Wittgenstein ​เลย ​คำถาม​นั้น​ไม่​เคย​เป็นเรื่อง​สถานะ​ถัดไป​ของ​เครื่อง ​มัน​เป็นเรื่อง​ว่า​สถานะ​ที่​เครื่อง​ไป​ถึง​คือ​สถานะ​ที่​กฎ​มี ​ไว้​เพื่อ ​หรือเปล่า ​ช่องว่าง​นั้น​คือ​จุด​ที่​การฟอร์ก Ethereum ​ตกลง​ไป​พอดี

​โพรโทคอล​ตอบคำถาม​คนละ​ข้อ​เรื่อง​ความหมาย ​ไม่​ใช่​ว่า​ข้อความ​บรรยาย​อะไร ​แต่ว่า​มัน​ทำ​อะไร J. L. Austin ​ใน How to Do Things with Words — ​บรรยาย​ใน​ชุด William James Lectures ​ที่ Harvard ​ปี 1955 ​พิมพ์​ใน​ปี 1962 ​หลังเขา​เสียชีวิต​ด้วย​วัย 48 ​ปี — ​เรียก​สิ่ง​เหล่านี้​ว่า​ประพจน์​เชิง​กระทำ (performative) ​ถ้อยแถลง​ที่​ตัว​มัน​คือ​การกระทำ ​ไม่​ใช่​รายงาน​การกระทำ ​และ​ใช้ได้​ต่อเมื่อ "​เงื่อนไข​ความสำเร็จ​ของ​วัจ​นก​รรม (felicity condition)" ​เป็นจริง ​คือ​ผู้พูด​ถูก​คน ​สถานการณ์​ถูก​จังหวะ ​ขั้นตอน​ถูก​ลำดับ (SEP, "Speech Acts") ​การ commit ​ไม่​ได้​บรรยาย​การเปลี่ยนแปลง​ใน​ที่เก็บ (repository) ​มัน​คือ​การเปลี่ยนแปลง​นั้น ​ลายเซ็น​เข้ารหัส (cryptographic signature) ​ไม่​ได้​รายงาน​ว่า​คุณ​ยินยอม ​การสร้าง​มัน​ขึ้น​มา​คือ​การยินยอม ​การจับมือ TCP (TCP handshake) ​ไม่​ได้​บรรยาย​ข้อตกลง​ที่จะ​คุย​กัน ​การทำให้​มัน​สำเร็จ​คือ​การเปิดช่อง​สัญญาณ ​ผู้ออกแบบ​โพรโทคอล​บังคับใช้​เงื่อนไข​ความสำเร็จ​ของ​วัจ​นก​รรม​ด้วย​กลไก​มา​ก่อนที่​คำศัพท์​ของ Austin ​จะ​เดินทาง​มาถึง​วงการ​คอมพิวเตอร์​ด้วยซ้ำ — ​การจับมือ​ที่​ผิดรูป​แบบ​ก็​ล้มเหลว​ไป​เฉยๆ ​แบบ​เดียว​กับ​คำสัญญา​ที่​ไม่​จริงใจ​ล้มเหลว​ใน​การผูก​มัด

​ความหมาย​ระดับ​ประโยค​ทั้ง​ประโยค​แตก​เป็น​สอง​สาย​โปรแกรม​วิจัย ​และ​วงการ​คอมพิวเตอร์​ทดลอง​ทั้งสอง​สาย​มา​แล้ว​ห้าสิบ​ปี ​งาน "The Proper Treatment of Quantification in Ordinary English" ​ของ Richard Montague (1973 ​ที่​ทุกคน​อ้าง​ใน​ชื่อย่อ PTQ) ​พยายาม​มอบ​ความเข้มงวด​เชิง​ประกอบ (compositionality) ​ให้​ภาษาอังกฤษ ​แบบ​ที่ Frege ​มอบให้​เลขคณิต — ​ทุก​กฎ​วากยสัมพันธ์​จับคู่​กับ​กฎ​ความหมาย​หนึ่ง​ข้อ ​ความหมาย​ของ​ประโยค​ก่อ​ขึ้น​จาก​ส่วนประกอบ​อย่าง​เคร่งครัด​ผ่าน​ตรรกะ​เชิง​เจตนา (intensional logic) (SEP, "Montague Semantics") ​คู่แข่ง​ของ​มัน​ไม่ต้อง​ใช้​รูปแบบ​ตรรกะ (logical form) ​เลย ​ประโยค​ของ J. R. Firth ​ปี 1957 ​ที่ว่า​เรา​รู้จัก​คำ​หนึ่ง "​จาก​พวก​ที่​มัน​คบหา" ​ต่อยอด​สมมติฐาน​เชิง​การก​ระ​จาย (distributional hypothesis) ​ของ Zellig Harris ​จน​ตั้ง​เป็นความ​หมาย​เชิง​การก​ระ​จาย (distributional semantics) — ​ความหมาย​ของ​คำ​ก็​คือ​รูปทรง​เชิง​สถิติ​ของ​คำ​ข้างเคียง ​เท่านั้นเอง Tomáš Mikolov ​และ​คณะ​ทำให้​ไอเดีย​นี้​คำนวณ​ได้​ใน​ราคา​ถูก​เมื่อ​ปี 2013 ​ด้วย word2vec ​และ​โมเดล​ภาษา​ขนาดใหญ่ (large language model) ​ทุก​ตัว​นับ​จากนั้น​รับ​พนัน​ก้อน​นี้​ไว้​เต็มๆ (Mikolov et al., "Efficient Estimation of Word Representations in Vector Space," arXiv:1301.3781, 2013) ​สี่​ทศวรรษ ​เงิน​วิจัย​ไหล​ไป​ทาง​โครงสร้าง​มา​ก่อน​ของ Montague ​ทศวรรษ​ล่าสุด​ย้าย​ไป​ทาง​บริบท​มา​ก่อน​ของ Firth ​เกือบ​ทั้งหมด ​และ​การย้าย​ครั้งนั้น​ให้​เครื่องจักร​ที่​พูดคล่อง ​บน​ทฤษฎี​ความหมาย​ที่​ไม่​เหลือ​ที่ว่าง​ให้​ประพจน์ (proposition) ​เลย​สักนิด

​โมเดล​ภาษา​ขนาดใหญ่ (LLM) ​คือ​บท​ทดสอบ​จริง​ที่​ปรัชญา​ภาษา​ต้อง​เจอ ​และ​คำตัดสิน​แตก​เป็น​สอง​ทาง ​มุมมอง​ยุค​หลัง​ของ Wittgenstein — "​ความหมาย​ของ​คำ​หนึ่ง​คือ​การใช้งาน​ของ​มัน​ใน​ภาษา" (Philosophical Investigations §43) — ​ดู​ได้รับ​การยืนยัน ​เพราะ​โมเดล​ที่​ไม่​เคย​แตะ​สิ่ง​อ้างอิง (referent) ​สักครั้ง​ยัง​ผลิต​ประโยค​ที่​ไม่​มีเจ้าของ​ภาษาคน​ไหน​ทัก​ว่า​ผิด ​แต่ Stevan Harnad ​ตั้งชื่อ​ชิ้นส่วน​ที่​ขาดหาย​ไป​ตั้งแต่​ปี 1990 ​ก่อน​ของ​พวก​นี้​ถูก​สร้าง​ขึ้น​ด้วยซ้ำ — ​ระบบ​ที่​ขยับ​สัญลักษณ์​ด้วย​รูปร่าง​ของ​มัน​และ​ความสัมพันธ์​กับ​สัญลักษณ์​อื่น​เท่านั้น ​ไม่​เคย​ยึด​โยง​กับ​สิ่ง​ที่​สัญลักษณ์​พูดถึง ​ก็​เหมือน​ติด​อยู่​กับ​การเรียน​ภาษาจีน​จาก​พจนานุกรม​จีน–​จีน ​สอดคล้องกัน​ใน​ตัวเอง​อย่าง​สมบูรณ์ ​ไม่​แตะ​โลก​จริง​เลย​สักนิด (Harnad, "The Symbol Grounding Problem," Physica D 42, 1990) ​โมเดล​ภาษา​ขนาดใหญ่​จึง​เป็น​ทั้ง​หลักฐาน​ที่​ดี​ที่สุด​ที่​ทฤษฎี​ความหมาย​จาก​การใช้ (use theory of meaning) ​แบบ​บริสุทธิ์​เคย​ได้รับ ​และ​เป็น​แบบจำลอง​ใช้งาน​ได้ที่​ชัด​ที่สุด​ของ​สิ่ง​ที่​นักวิจารณ์​เรื่อง​การยึด​โยง (grounding) ​เตือน​ไว้​ว่า​ทฤษฎี​ความหมาย​จาก​การใช้​ที่​ไม่​ยึด​โยง​จะ​หน้าตา​เป็น​อย่างไร

​เชื่อมโยง

​บท​ที่ 01 ​ให้​กลไก​เชิง​ตรรกะ​ที่​ทั้ง Montague ​และ​ความหมาย​เชิง​นัย​ชี้ (denotational semantics) ​พึ่งพา — ​ตัว​บ่ง​ปริมาณ (quantifier) ​ของ Frege ​บท​ที่ 02 ​กลับ​ไปหา​ปัญหา​ชนิด/​ตัวอย่าง​จริง (type/token) ​ที่​บท​นี้​แตะ​เพียง​ผิวเผิน — bytecode ​ที่ deploy ​จริง​ของ smart contract ​เป็น​สิ่ง​เดียว​กับ​ซอร์ส Solidity ​ของ​มัน​หรือไม่ ​บท​ที่ 04 ​เดิน​ข้อโต้แย้ง​เรื่อง​การยึด​โยง (grounding) ​ชุด​เดียวกัน​นี้​ผ่าน​ห้อง​จีน (Chinese Room) ​บท​ที่ 13 ​เอา​มัน​ไป​ทดสอบ​กับ​เครื่องจักร​ที่​ฝึก​จาก​ข้อความ​ล้วนๆ ​บท​ที่ 12 ​แสดง​ปลายทาง​ของ "​โค้ด​บอก​ความหมาย​ของ​ตัว​มัน​เอง" ​เมื่อ​ถูก​ผลัก​ไป​จน​สุด — proof assistant ​ที่​กฎ​ตัดสิน​ทุก​กรณี​ได้​จริง

​คำถาม​ที่​ยัง​เปิด​อยู่

​ถ้า​ความหมาย​เชิง​รูป​นัย (formal semantics) ​ระบุ​พฤติกรรม​ของ​โปรแกรม​ได้​ครบถ้วน ​แต่​ยัง​ทิ้ง​คำถาม​ค้าง​ไว้​ว่า​โปรแกรม​นั้น​มี ​ไว้​เพื่อ ​อะไร ​มัน​แก้ปัญหา​ของ Wittgenstein ​ได้​จริง ​หรือ​แค่​เปลี่ยน​คำถาม​ที่​ตอบ ​ความหมาย​เชิง​การก​ระ​จาย (distributional semantics) ​ชนะ​เพราะ​เป็น​ทฤษฎี​ความหมาย​ที่​ดีกว่า ​หรือ​เพราะ​เป็น​ทฤษฎี​ที่​คอมพิวเตอร์​รัน​ไหว​ใน​สเกล​ใหญ่​เสียที ​และ​ถ้า​ระบบ​ที่​ไม่​ยึด​โยง​ผ่าน​บท​ทดสอบ​เชิง​พฤติกรรม​ของ​ความเข้าใจ​ได้​ทุก​ข้อ "​การยึด​โยง (grounding)" ​ยัง​ทำงาน​อะไร​อยู่ ​นอกจาก​ตั้งชื่อ​ให้ความรู้​สึก​ไม่​สบายใจ

​อ่าน​ต่อ

บทถัดไป · 7 / 1706 · จริยศาสตร์
Size
Page
Font

The Examined Machine — Philosophy and Computing, Each Read Through the Other

❦
100 · แผนที่201 · ตรรกศาสตร์302 · อภิปรัชญา403 · ญาณวิทยา504 · ปรัชญาแห่งจิต605 · ปรัชญาภาษา706 · จริยศาสตร์807 · ปรัชญาการเมือง908 · สุนทรียศาสตร์และปรากฏการณ์วิทยา1009 · การคำนวณได้1110 · ความซับซ้อน1211 · สารสนเทศ1312 · ชนิดกับบทพิสูจน์1413 · เครื่องเรียนรู้1514 · ความไว้วางใจแบบกระจาย1615 · เอกภพเชิงคำนวณ1799 · ปิดเล่ม