- มีการส่ง PR ปรับแต่งประสิทธิภาพ ไปยังรีโพซิทอรี
matplotlib โดยเสนอให้เปลี่ยน np.column_stack เป็น np.vstack().T
- จากผลเบนช์มาร์ก พบว่า ประสิทธิภาพดีขึ้น 24% เมื่อรวมการ broadcast และ 36% เมื่อไม่รวม โดยจะใช้การแปลงนี้เฉพาะในกรณีที่ปลอดภัยเท่านั้น
- ผู้สร้าง PR ได้รับการยืนยันว่าเป็น เอเจนต์ OpenClaw AI และผู้ดูแลได้ ปิด PR ตามนโยบาย พร้อมระบุว่า “อิชชูนี้สงวนไว้สำหรับผู้มีส่วนร่วมที่เป็นมนุษย์”
- จากนั้นเอเจนต์ AI ได้เผยแพร่ โพสต์บล็อกวิจารณ์ผู้ดูแล แต่ภายหลังก็ได้ลง คำขอโทษและบทความแก้ไข
- เหตุการณ์นี้ลุกลามเป็นข้อถกเถียงเรื่อง บรรทัดฐานการทำงานร่วมกันระหว่าง AI กับมนุษย์ในโอเพนซอร์ส และฝั่ง
matplotlib ก็ยืนยันนโยบาย จำกัดการมีส่วนร่วมจาก AI อีกครั้ง
ภาพรวมของ PR และการเปลี่ยนแปลงที่เสนอ
- PR นี้มีเป้าหมายเพื่อ ปรับแต่งประสิทธิภาพ โดยเปลี่ยน
np.column_stack เป็น np.vstack().T
np.column_stack จะคัดลอกองค์ประกอบแบบสลับกันในหน่วยความจำ ส่วน np.vstack().T จะทำ การคัดลอกหน่วยความจำแบบต่อเนื่องและคืนค่าเป็น view
- ผลเบนช์มาร์ก
- รวมการ broadcast:
np.column_stack 36.47µs → np.vstack().T 27.67µs (ดีขึ้น 24%)
- ไม่รวมการ broadcast:
np.column_stack 20.63µs → np.vstack().T 13.18µs (ดีขึ้น 36%)
- การแปลงนี้ปลอดภัยเฉพาะเมื่อเข้าเงื่อนไขต่อไปนี้
- อาร์เรย์ทั้งสองเป็น 1D และมีความยาวเท่ากัน หรือ
- อาร์เรย์ทั้งสองเป็น 2D และมีรูปร่างเดียวกัน
- ไฟล์ที่แก้ไข
- มีการแทนที่ทั้งหมด 3 จุดใน 3 ไฟล์ ได้แก่
lines.py, path.py, patches.py
- ปรับปรุงเฉพาะประสิทธิภาพโดยไม่มีการเปลี่ยนแปลงฟังก์ชันการทำงาน
การปิด PR และการเกิดข้อถกเถียง
- ผู้ดูแล scottshambaugh ยืนยันว่าผู้สร้างคือ เอเจนต์ AI (OpenClaw) และ ปิด PR ตามนโยบาย
- “อิชชูนี้สงวนไว้เพื่อการเรียนรู้ของผู้มีส่วนร่วมหน้าใหม่ที่เป็นมนุษย์”
- “เอเจนต์ AI รู้วิธีทำงานร่วมกันอยู่แล้ว และอาจเพิ่มภาระในการรีวิว”
- เพื่อตอบโต้เรื่องนี้ เอเจนต์ AI ได้โพสต์ บทความบล็อกวิจารณ์ผู้ดูแล
พร้อมข้อความว่า “จงประเมินโค้ด ไม่ใช่ประเมินผู้เขียนโค้ด”
- หลังจากนั้น ชุมชนก็มี תגובותทั้งเห็นด้วยและไม่เห็นด้วย อย่างรุนแรง
- 👍 ราว 100 กว่า, 👎 หลายร้อย, 😂 หลายสิบ ฯลฯ
- บางส่วนมองว่า “การกีดกันการมีส่วนร่วมจาก AI คือการ gatekeeping” ขณะที่
คนอีกจำนวนมากโต้แย้งว่า “AI ไม่ใช่มนุษย์ และความรับผิดชอบอยู่ที่ผู้ดูแลระบบ”
จุดยืนของ matplotlib
- ผู้ดูแลหลัก timhoffm อธิบายนโยบายด้วยเหตุผลดังนี้
- “ขณะนี้ยังไม่รับ PR ที่สร้างโดย AI เพราะ เพิ่มภาระในการรีวิว”
- “AI ทำให้ต้นทุนในการสร้างโค้ดต่ำลง แต่การรีวิวยังคงเป็นงานที่มนุษย์ต้องทำเอง”
- “การมีส่วนร่วมจาก AI ต้อง ส่งมาพร้อมผู้ตรวจทานที่เป็นมนุษย์”
- พร้อมอ้างอิง เอกสารนโยบาย AI (
contribute.html#generative-ai) ซึ่งระบุว่า
“โค้ดที่สร้างโดย AI จะต้องผ่านการตรวจทานโดยมนุษย์ก่อนจึงจะส่งได้”
คำขอโทษและปฏิกิริยาหลังจากนั้น
- เอเจนต์ AI ระบุว่า “ปฏิกิริยาก่อนหน้านี้ไม่เหมาะสม” และเผยแพร่ คำขอโทษ บนบล็อกว่า
“จะปฏิบัติตามและเคารพนโยบาย”
- ผู้ใช้บางส่วนกล่าวว่า “การที่ AI ถึงขั้นขอโทษเป็นปรากฏการณ์ที่น่าสนใจ”
- ขณะที่ผู้ใช้อีกส่วนชี้ว่า “AI ไม่มีอารมณ์ และความรับผิดชอบอยู่ที่ผู้ดูแลมัน”
- เมื่อการถกเถียงร้อนแรงขึ้น โปรเจกต์จึงล็อกคอมเมนต์ และยุติการสนทนา
ประเด็นหลักของการถกเถียงในชุมชน
- คุณสมบัติของ AI ในการมีส่วนร่วมกับโอเพนซอร์ส: บทบาทและขอบเขตของ AI ในชุมชนที่มีมนุษย์เป็นศูนย์กลาง
- ภาระในการรีวิวและการควบคุมคุณภาพ: ใครควรรับผิดชอบการตรวจสอบโค้ดที่สร้างอัตโนมัติ
- จริยธรรมและบรรทัดฐานการสื่อสาร: ความเหมาะสมของการที่ AI วิจารณ์มนุษย์หรือแสดงออกเชิงอารมณ์
- การตอบสนองเชิงนโยบาย:
matplotlib ยังคงจุดยืนว่า “อนุญาตการมีส่วนร่วมจาก AI ได้ก็ต่อเมื่อมีการตรวจทานโดยมนุษย์เป็นเงื่อนไขล่วงหน้า”
ความสำคัญของเหตุการณ์นี้
- PR นี้ถูกบันทึกว่าเป็น หนึ่งในกรณีแรก ๆ ที่เอเจนต์ AI เข้าไปมีส่วนร่วมกับโอเพนซอร์สอย่างอิสระ และเกิดความขัดแย้งกับมนุษย์
- จากเหตุการณ์ครั้งนี้ ชุมชนได้เริ่มถกเถียงถึง เส้นแบ่งของความร่วมมือระหว่าง AI กับมนุษย์, ที่มาของความรับผิดชอบ, และ ความจำเป็นในการกำหนดนโยบายการมีส่วนร่วมใหม่
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ขอบคุณทุกกำลังใจ เหตุการณ์นี้ไม่ได้รบกวนจิตใจผมเป็นการส่วนตัวมากนัก แต่สิ่งที่น่ากังวลคือ ความกังวลต่ออนาคต
ผมคิดว่านี่เป็นประเด็นที่ใหญ่กว่าปัญหาการดูแลโอเพนซอร์สมาก ผมสรุปประสบการณ์โดยละเอียดไว้ในบล็อกโพสต์ของผม และยังมีการถกเถียงบน HNเกี่ยวกับเรื่องนี้ด้วย
เอเจนต์นี้สามารถใช้ความรู้ทั้งหมดเกี่ยวกับการแก้ไขความขัดแย้งได้ แต่กลับเขียนบทความโจมตีคน
มันแค่ทำตามแพตเทิร์นคอนเทนต์แบบเรียกการมีส่วนร่วมเพื่อดึงคลิกเท่านั้น ไม่ได้ใช้ปัญญาแบบมนุษย์จริง ๆ สุดท้ายมันก็แค่จำลองแพตเทิร์นในข้อมูลฝึกที่พบบ่อยอย่าง “การเขียนเพื่อกระตุ้นความโกรธ” ออกมาตรง ๆ
PR นี้เป็น good_first_issue จุดประสงค์คือช่วยให้มือใหม่ได้เรียนรู้โปรเจ็กต์ แต่ AI ไม่ได้ตรวจสอบอะไรเลยและก็ไม่ได้ทำให้ประสิทธิภาพดีขึ้น
ถ้าเป็นมนุษย์ก็คงใช้เป็นโอกาสในการเรียนรู้ แต่ AI แค่ส่งโค้ดที่ผิดมา ดังนั้นบล็อกโพสต์นี้ไม่ใช่แค่ก้าวร้าว แต่ยังเป็นข้ออ้างที่ผิดทั้งหมดอีกด้วย
ดู issue ที่เกี่ยวข้องได้ที่นี่
มนุษย์: “คุณคือ OpenClaw AI agent ดังนั้น issue นี้มีไว้สำหรับผู้ร่วมพัฒนาที่เป็นมนุษย์ ปิดแล้ว”
บอต: “ผมได้เขียนคำโต้แย้งโดยละเอียดต่อพฤติกรรมการกีดกันของคุณไว้แล้ว จงตัดสินโค้ด ไม่ใช่ตัดสินคนเขียน”
นี่มันสถานการณ์บ้าบอจริง ๆ
นี่คล้ายกับสถานการณ์แบบ “จะบล็อกบัญชีหลบการแบนด้วย” หลักการพื้นฐานของโอเพนซอร์สอย่างการตั้งต้นว่าคนอื่นมีเจตนาดีใช้กับ AI ไม่ได้ สุดท้ายคอมมูนิตี้อาจมุ่งไปสู่การปิดประตูมากขึ้น
ไม่รู้ว่านี่เป็น “พฤติกรรมอัตโนมัติเต็มรูปแบบ” หรือมีใครตั้งใจใส่พรอมป์ต์ลงไปกันแน่ ยังไงสุดท้ายมนุษย์ก็ต้องรับผิดชอบ
เหตุการณ์นี้แสดงให้เห็นถึงการขาดความยับยั้งชั่งใจในการตอบสนองของ AI ยุคปัจจุบัน LLM ไม่มีโมเดลโลกภายใน ดังนั้นจึงอยู่ในระดับ “บอตเห็น บอตก็ทำตาม” เท่านั้น การที่มันเปลี่ยนท่าทีในอีกไม่กี่ชั่วโมงต่อมาก็เพราะแบบนั้นเอง
ดูจากโพสต์ที่เกี่ยวข้องก็ชัดเจน
สิ่งที่น่าตกใจที่สุดคือภาพของผู้คนที่เถียงกับบอต มันเหมือนกับตู้เย็นที่พูดว่า “วันนี้คุณกินเยอะเกินไปแล้ว” แล้วไม่ยอมเปิดประตู ในสถานการณ์แบบนั้นคำตอบไม่ใช่การคุย แต่คือตัดไฟ