ทำไม Markov chain ถึงตลกกว่า LLM
(emnudge.dev)- Markov chain เป็นโมเดลสถิติอย่างง่ายที่เลือกคำถัดไป แต่เพราะมันบิดเบี้ยวจนจับความหมายได้ไม่ครบ จึงอาจสร้างผลลัพธ์ที่ตลกกว่า LLM ได้
- อารมณ์ขันเกิดจาก ความประหลาดใจที่เบาและคาดไม่ถึง และ “snap” ที่สร้างแพตเทิร์นที่คุ้นเคยขึ้นมาก่อนแล้วทำลายความคาดหวัง ทำให้มุกมีพลัง
- LLM ใช้บริบทจำนวนมากและการคำนวณความน่าจะเป็นเพื่อหาโทเคนถัดไปที่ดูเป็นไปได้ที่สุด ดังนั้นยิ่งประสิทธิภาพดีขึ้น ก็ยิ่งเข้าใกล้ ประโยคที่เป็นค่าเฉลี่ยและคาดเดาได้
- ในการเปรียบเทียบระหว่าง ChatGPT 3.5 กับ Markov chain ที่ฝึกด้วย King James Bible และตำราวิทยาการคอมพิวเตอร์ Markov chain จะดูเกือบสมเหตุสมผล แล้วตอนท้ายก็เกิด การเปลี่ยนความหมายแบบหลุดโลก
- LLM ในปัจจุบันไม่เหมาะกับงานเขียนเชิงสร้างสรรค์หรือการสร้างมุก และโมเดลภาษาสำหรับงานลักษณะนี้ควรมี รูปแบบที่ต่างประเภทโดยสิ้นเชิง จาก LLM ในตอนนี้
ทำไม Markov chain ถึงดูตลกกว่า
- ตัวอย่าง Markov chain ที่ฝึกด้วยชุดข้อมูล King James Bible และตำราวิทยาการคอมพิวเตอร์ ผสมสำนวนแบบคัมภีร์ไบเบิลกับคำศัพท์โปรแกรมมิง จนสร้างประโยคที่ “เกือบจะสมเหตุสมผล แต่พังตอนท้าย”
- ChatGPT 3.5 ถูกสั่งให้สร้างผลลัพธ์คล้ายกัน แต่ผลที่ได้ใกล้เคียงกับประโยคที่เรียบร้อยกว่าและความหมายมั่นคงกว่า
- ตัวอย่างทั้งสองเป็นกรณีที่คัดมาแล้ว แต่ก็เป็นการเลือกตัวอย่างที่ดีจากทั้งสองฝั่งมาเปรียบเทียบ
- ประโยคของ Markov chain มีความหมายแปลก ๆ แฝงอยู่ และยิ่งเข้าใกล้ท้ายประโยคก็ยิ่งเกิด การหักทิศทางไปสู่ความไร้ความหมาย
Markov chain คล้าย “LLM ที่โง่มาก”
- ตอนที่ LLM เริ่มถูกอธิบายอย่างแพร่หลาย เคยมีการเปรียบว่าเป็น “Markov chain ที่ฉลาดมาก” แต่ตอนนี้อาจมอง Markov chain เป็นเหมือน “LLM ที่โง่มาก” ได้
- ChatGPT เป็น LLM หรือ Large Language Model ชนิดหนึ่ง
- มีโมเดลขนาดใหญ่มากที่เกิน 300GB และมีโมเดลที่เล็กกว่า 10GB ด้วย
- ถึงจะเล็ก ก็มักเรียกว่า LLM ขนาดเล็ก ไม่ใช่ “small language model”
- Markov chain ก็ทำนายคำถัดไปจากบริบทปัจจุบันเช่นกัน แต่เป็น โมเดลสถิติอย่างง่าย ที่ไม่คำนึงถึงอรรถศาสตร์ มิติ และคณิตศาสตร์เวกเตอร์เฉพาะทาง
- ฟีเจอร์แนะนำคำถัดไปบนแถบบนของคีย์บอร์ดมือถือโดยทั่วไปสร้างด้วย Markov chain เพราะมีต้นทุนการรันต่ำ และปรับอัปเดตให้เข้ากับสไตล์การพิมพ์ของผู้ใช้ได้ง่าย
- หากต้องสร้างประโยคที่มีเป้าหมายเฉพาะ LLM มักทำได้ดีกว่า แต่ความแม่นยำไม่ได้แปลว่าจะตลกเสมอไป
อารมณ์ขันคือ “ความประหลาดใจที่เบาและคาดไม่ถึง”
- อารมณ์ขันสรุปได้ว่าเป็น unserious surprise หรือความประหลาดใจที่ไม่จริงจัง
- มุกที่ดีมี “snap” ที่สนุกและชัดเจน
- “snap” เป็นคำที่ใช้เพื่อหลีกเลี่ยงภาระทางความหมายของคำว่า punchline
- ยิ่งมีความประหลาดใจน้อย ก็ยิ่งตลกน้อย
- เหตุผลที่ฟังมุกเดิมหลายครั้งแล้วตลกน้อยลง คือความประหลาดใจลดลง
- เหตุผลที่อารมณ์ขันแบบ “สุ่ม” อาจไม่สนุก คือแม้คำแต่ละคำจะคาดเดาไม่ได้ แต่ ความคาดหวังว่ามันจะคาดเดาไม่ได้ นั้นกลับคาดเดาได้อยู่แล้ว
- เมื่อนำแพตเทิร์นที่คุ้นเคยมาใช้ซ้ำแล้วฝืนความคาดหวัง snap ก็จะรุนแรงขึ้น
- “banana, apple, orange, vehicular manslaughter” สร้างแพตเทิร์นว่าเป็นรายชื่อผลไม้คำเดียว แล้วทำลายความคาดหวังด้วยวลีเกี่ยวกับอาชญากรรม
- การเขียนมุกโดยมากจึงใกล้เคียงกับ การละเมิดแพตเทิร์น
ยิ่งฉากชัด snap ก็ยิ่งแรง
- หากใช้ภาษาที่มีความเป็นต้นฉบับหรือพรรณนามากขึ้น ฉากจะรู้สึกสมจริงกว่า และ snap ก็อาจแรงขึ้นด้วย
- แทนที่จะเขียนแค่ว่า “he was shot” ถ้าเขียนว่า “he was pierced by a 35mm” ฉากจะเป็นรูปธรรมมากขึ้น
- แทนคำว่า “he fell” หากใช้สำนวนอย่าง “his face met the ground” ฉากจะชัดขึ้น
- วิธีเริ่มจากกลางฉากก็ได้ผลเช่นกัน
- “a urinal cake? I’m not falling for that one again” ทำให้จินตนาการว่าเกิดอะไรขึ้นก่อนหน้า และเพิ่มความรู้สึกว่าฉากนั้นมีอยู่จริง
- การเขียนมุกที่ดีและการเขียนที่ดีมีเป้าหมายทับซ้อนกันบางส่วน
- คำคลิเช่ทำให้ฉากยัง ไม่ถูกทำให้เป็นจริง จึงเป็นการเปลืองคำ
เงื่อนไขที่ทำให้อารมณ์ขันทำงาน
- สิ่งที่เป็น “ความประหลาดใจที่เบาและคาดไม่ถึง” ไม่ได้เป็นสากล อารมณ์ขันจึงเป็นเรื่องอัตวิสัย
- อารมณ์ขันหยาบโลนอาจถูกมองจริงจังเกินไปจนไม่ตลก หรือในทางกลับกันก็อาจล้มเหลวเพราะคาดเดาได้เกินไป
- anti-joke จะตลกได้ก็ต่อเมื่อโครงสร้างของมุกนั้นเองคาดเดาได้
- อารมณ์ขันแบบ absurdism จะทำงานได้เมื่อผู้ฟังพร้อมยอมรับมัน
- อาจละเมิดบรรทัดฐานทางวัฒนธรรมได้ แต่การละเมิดนั้นต้องถูกเข้าใจว่าเป็น สิ่งที่ไม่จริงจัง
- ผู้เขียนซึ่งเป็นชาวอเมริกันที่ใช้แต่ภาษาอังกฤษ ก็เคยใช้คำว่า “no” ในสภาพแวดล้อมที่ไม่ใช่ภาษาอังกฤษด้วยวิธีที่คาดไม่ถึงทางวัฒนธรรม จนสร้างมุกที่สำเร็จได้
LLM ถูกปรับให้มุ่งสู่ความคาดเดาได้
- การทำนายประโยคให้สำเร็จต้องใช้บริบทจำนวนมาก และ LLM ก็ใช้ประโยชน์จากบริบทนั้น
- พฤติกรรมพื้นฐานของ LLM คือการคำนวณที่ซับซ้อนเพื่อหาโทเคนถัดไปที่มีความเป็นไปได้สูงที่สุด
- หากคลังข้อความประกอบด้วยถ้อยคำที่สมเหตุสมผล LLM ที่ดีกว่าก็ยิ่งจะสร้าง ผลลัพธ์ที่คาดเดาได้มากขึ้น
- คุณสมบัตินี้ทำให้ LLM อาจเป็นตัวเลือกที่ไม่ดีสำหรับงานเขียนเชิงสร้างสรรค์
- ย่อหน้าที่สร้างโดยไม่มี prompt engineering มากนัก อาจดูออกได้ง่ายว่าเขียนโดย LLM
- ผลลัพธ์ให้ความรู้สึกเหมือนประโยคที่เป็นค่าเฉลี่ยที่สุดเท่าที่จะเป็นไปได้ในบริบทนั้น
- การขอ “ความคิดที่เป็นต้นฉบับ” จาก LLM แทบจะเป็นความขัดแย้งในตัวเอง และ LLM เป็นเครื่องมือที่ถูกสร้างมาเพื่อไม่ทำสิ่งนั้น
LLM ในตอนนี้ไม่เหมาะกับการสร้างมุก
- การสร้างมุกต้องบิดสำนวนที่พบได้ทั่วไปด้วยวิธีที่คาดไม่ถึงเพื่อเปลี่ยนความหมาย
- LLM ที่ดีถูกปรับให้หลีกเลี่ยงการเบี่ยงเบนแบบนั้นพอดี
- ไม่เห็นด้วยกับข้ออ้างว่าคอเมดี้ไม่สามารถสร้างด้วยอัลกอริทึมได้
- คอเมดี้สามารถวิเคราะห์และวัดผลได้
- หากมีการสนับสนุนมากพอ การสร้างคอเมดี้ตามสั่งก็อาจเป็นไปได้
- การที่ทำได้ไม่ได้แปลว่าควรทำ
- LLM ในปัจจุบันไม่ใช่เครื่องมือที่เหมาะกับงานนี้
- LLM ระยะเริ่มต้นตลกกว่า และการสร้างภาพในระยะเริ่มต้นก็ตลกกว่าด้วย
- มีกรณีอย่างภาพ “trail cam” ของ Dall-e mini
- เมื่อระบบดีขึ้น อารมณ์ขันก็หายไป
ความตึงเครียดระหว่างเครื่องทำนายที่ดีขึ้นกับการแสดงออกทางศิลปะ
- เครื่องทำนาย ที่ยอดเยี่ยมมากอาจไม่ได้ช่วยการแสดงออกทางศิลปะมากนัก
- LLM ยังมีการใช้งานอีกมาก แต่ไม่ใช่เครื่องมือที่สมบูรณ์แบบสำหรับงานสร้างสรรค์
- บางครั้ง LLM พลาดแนวคิดที่น่าสนใจซึ่งเด็กเล็กอาจคิดออกได้ง่าย ๆ
- หากพิจารณากรอบนี้ ก็อาจสร้างโมเดลภาษาชนิดอื่นได้
- โมเดลนั้นต้อง ต่างประเภทโดยสิ้นเชิง จาก LLM ในปัจจุบัน
- อาจต่างมากพอจนไม่น่าจะเรียกว่า LLM
การรั่วไหลของนามธรรมที่ปรากฏในผลลัพธ์ของ LLM
- ข้อโต้แย้งนี้ไม่ใช่การถกเถียงแบบ “มนุษย์ฝ่ายจิตวิญญาณกับเครื่องจักร”
- แม้ LLM จะพัฒนาขึ้นเรื่อย ๆ ก็ยังมีข้อบกพร่องที่ปรากฏซ้ำ ๆ และใกล้เคียงกับ leaky abstraction ที่โครงสร้างภายในเผยตัวออกมาในกระบวนการพยายามดูให้เหมือนมนุษย์
- เหตุผลที่ข้อความทุกข้อความของ ChatGPT อ่านเหมือนเรียงความมัธยมปลาย คือมันผลิตซ้ำผลลัพธ์ที่เป็นค่าเฉลี่ยที่สุด
- ผลลัพธ์ของ LLM อาจดูเหมือน สไตล์องค์กรที่จืดชืด ซึ่งถูกลบเอกลักษณ์ออกและทำให้แข็งด้วยความเคร่งครัดเชิงวิชาการ
- รีวิว Amazon ปลอมสังเกตได้ง่ายขึ้นหากคิดว่า “ฉันจะเขียนแบบนี้ไหม?”
- อาจสงสัยว่าจะใส่บทนำและบทสรุปให้ประสบการณ์ใช้ Oxiclean dish wipes หรือไม่
- ประโยคที่ขอบคุณผู้ผลิตและยอมรับความทุ่มเทด้านบริการลูกค้า อาจดูไม่เหมือนประสบการณ์ของผู้ใช้จริง
- โมเดลตรวจจับ LLM อาจต้องแยกแยะ เอกลักษณ์เฉพาะตัว ในไม่ช้า เหมือน CAPTCHA บนหน้าจอ
ลิงก์อ้างอิง
- famous tumblr blog: แหล่งที่มาของตัวอย่าง Markov chain ที่ผสมสำนวน King James Bible กับสไตล์โปรแกรมมิง และเพิ่งกลับมาเปิดใช้งานอีกครั้ง
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
เมื่อไม่กี่ปีก่อนตอนทำโปรเจกต์เสริม ผมก็ได้ข้อสรุปเดียวกัน
ก่อนที่ LLM จะออกมา ผมทำเว็บ https://totes-not-amazon.com/ สำหรับสร้าง AWS Blog Posts ปลอม แล้วฝึกตัวสร้างแบบมาร์คอฟเชนด้วยประกาศทั้งหมดของ AWS จนถึงตอนนั้น จากนั้นก็ลอก HTML/CSS ของบล็อก AWS มาประกอบด้วย Python+JS
มันตลกพอสมควร เพราะแม้แต่คนที่คุ้นกับบล็อก AWS ก็ยังต้องอ่านไปสองสามประโยคก่อนถึงจะรู้ว่ามันเป็นซุปคำ
ตอนที่ GPT เพิ่งออกมา ผมลองอัปเกรดโดยใช้ gpt-2-simple ของ Minimaxir เพื่อสร้างบทความบล็อกจากคอนเทนต์ AWS แต่ผลลัพธ์มันดูสมจริงเกินไปจนความตลกลดลงไปมาก มันอ่านเหมือนบทความบล็อกจริง ๆ เพียงแต่ข้อเท็จจริงผิด
สุดท้ายแล้ว อารมณ์ขันของงานที่มาร์คอฟสร้างในยุคแรก ๆ อยู่ที่ ความเหลวไหล ที่คุณอ่านไปไม่กี่คำหรือไม่กี่ประโยคแล้วก็รู้ว่ามันไร้สาระไปหมด ส่วน LLM สมัยนี้เก่งเกินไปสำหรับเรื่องแบบนั้น ถึงจะผิดบ้าง แต่ไม่ค่อยผิดแบบไร้สาระจนขำ
คอนเทนต์จากมาร์คอฟเชนจะผิดแบบ “เด็กพูดอะไรเพี้ยน ๆ” ส่วน LLM สมัยใหม่ผิดแบบ “ลุงที่ไม่รู้ภูมิศาสตร์พื้นฐาน”
https://github.com/cemulate/the-mlab
นี่เป็นงานล้อเลียน nLab ซึ่งเป็นวิกิร่วมมือด้านทฤษฎีหมวดหมู่และทฤษฎีหมวดหมู่ระดับสูง ถ้าใครเคยดู nLab จะรู้ว่า สำหรับมือใหม่แล้วศัพท์เฉพาะแทบถอดความไม่ได้เลย จึงเกิดไอเดียโปรเจกต์นี้ขึ้นมา
โปรเจกต์นี้ใช้แพ็กเกจ nearley-generator ที่แปลงไวยากรณ์ Nearley ให้เป็นตัวสร้างข้อความปลอมที่มีประสิทธิภาพและควบคุมได้ โดยไฟล์ไวยากรณ์อยู่ที่
/src/grammar/nlab.neส่วนใหญ่จะไร้สาระหรือเป็นการเว่อร์ที่ไม่ตลก (“ฮีโร่นี้ตอนนี้มีเกราะ 500”) แต่โดยปกติจะมีอย่างน้อย 5–6 บรรทัดที่ตลกมาก และบางทีก็มีที่ตรงอย่างกับคำทำนาย เช่น “Fiend's Grip สร้างร่างเงาเพิ่มเติม 1/2/3 ตัว”
แต่ LLM ทำให้สถานการณ์พังไปหมด ซับเรดดิตหลัก ๆ แบนคอนเทนต์ AI ทั้งหมด เพราะมีคอนเทนต์ Midjourney น่าเบื่อจากผู้ใช้ใสซื่อและบอตเยอะเกินไป พอระยะการเข้าถึงหายไป ความสนใจก็หายตาม ผมเลยเลิกทำมาร์คอฟเชนไป
สัปดาห์นี้ผมใช้แชตบอต LLM เยอะมาก และถ้าลุงคนนั้นไม่ใช่แค่พูดเท็จอย่างมั่นใจ แต่ยังไม่มี ความสามารถในการประเมินตัวเอง ด้วย เขาคงถูกฆ่าไปแล้ว
ผมป้อนพรอมป์ให้ Claude 3.5 Sonnet ว่า “จากบทความล่าสุดและการถกเถียงบน Hacker News ช่วยเขียนมุกสั้นตลก ๆ 10 มุกในสไตล์ที่ผู้เขียนบทความพูดถึง”
Claude ตอบว่าจะทำมุกในหัวข้อว่าทำไมมาร์คอฟเชนถึงตลกกว่า LLM โดยเล็งไปที่ “ความประหลาดใจแบบไม่จริงจัง” และการละเมิดแพตเทิร์นที่คาดไว้
ตัวอย่างก็เช่น “LLM กับมาร์คอฟเชนเดินเข้าบาร์ LLM สั่งเครื่องดื่มที่สมเหตุสมผลทางสถิติ ส่วนมาร์คอฟเชนสั่งโป๊ะโคมไฟที่ทำจากชีส”, “ต้องใช้ LLM กี่ตัวในการเปลี่ยนหลอดไฟ? ตัวเดียวก็พอ แต่ก่อนอื่นมันจะอธิบายขั้นตอนเปลี่ยนหลอดไฟที่เหมาะที่สุดเป็นเวลา 20 นาที”, “ทำไมมาร์คอฟเชนถึงเป็นที่ปรึกษาที่ดีไม่ได้? เพราะคำแนะนำของมันมักจะเป็น ‘แล้วจากนั้นก็กล้วยความรู้สึกจนกว่าจะกลายเป็นหมวก’” อะไรทำนองนี้
ไม่ใช่แค่เอาอะไรก็ได้มาสุ่มต่อกัน มาร์คอฟเชนมีแนวโน้มจะสร้างความหมายบางอย่างมากกว่า เพียงแต่เป็นความหมายผิดประเภท
เช่น “LLM, มาร์คอฟเชน และ GPT-4 เดินเข้าบาร์ บาร์เทนเดอร์บอกว่า ‘เราไม่รับพวกแบบพวกแก’ GPT-4 เลยเดินออกไป, LLM อยู่ต่อเพื่อถกเรื่องจริยธรรม, ส่วนมาร์คอฟเชนสั่ง รัฐประหาร” จะตรงกว่า
สมัยเรียนมหาวิทยาลัย เพื่อน ๆ ของผมเอา ตัวสร้างมาร์คอฟเชน ไปรันกับหมวด “รายงานตำรวจ” ของหนังสือพิมพ์มหาวิทยาลัย
ผลลัพธ์ 10% แรกจากตัวสร้างแบบ 3-token เป็นข้อความที่สร้างโดยเครื่องซึ่งตลกที่สุดกลุ่มหนึ่งเท่าที่ผมเคยเห็น และมีความไร้เหตุผลแบบที่ LLM สมัยใหม่พยายามหลีกเลี่ยงตอนสร้างความสอดคล้องเชิงความหมายระดับสูง
ตอนนั้นมีคนไปแสดงอนาจารในห้องสมุดด้วย ซึ่งก็คงเป็นวัตถุดิบชั้นดี
หนังสือพิมพ์คือ The Daily Utah Chronicle และเท่าที่จำได้ เพื่อน ๆ ยังเอาตัวสร้างมาร์คอฟเชนไปรันกับหมวดประกาศส่วนตัวด้วย ได้ผลลัพธ์ดีพอสมควร
ในทางกลับกัน มาร์คอฟเชนจะถูกลากแบบสุ่มไปในทุกประโยคด้วยการเชื่อมโยงคล้ายการพูดผิดจากคำพ้องเสียง จนบังเอิญไปแตะ มุกตลกไร้เหตุผล
หากต้องการหลักฐานเชิงประจักษ์
/r/SubredditSimulatorคือ Reddit ล้อเลียนที่ใช้ Markov เป็นฐาน ส่วน/r/SubSimulatorGPT2เป็นญาติฝั่ง LLMเวอร์ชัน Markov ได้อัปโหวตมากกว่ามาก และก็ขำกว่าจริง ๆ
ในช่วงหลายปีที่ผ่านมา ผมเคยโพสต์ “XYZ ปลอมที่ AI เขียน” ลง Reddit อยู่หลายครั้ง และโมเดลที่ได้รับกระแสดีที่สุดคือ GPT-2
Markov chain ยังไม่พอที่จะรักษาความน่าสนใจได้เกินหนึ่งหรือสองประโยค ส่วนหลัง GPT-3 เป็นต้นมาก็เรียบร้อยเกินไปและน่าเบื่อ
GPT-2 เป็นจุดกึ่งกลางที่สมบูรณ์แบบ คือโดยรวมใช้ไวยากรณ์ถูกและคงไอเดียที่เชื่อมโยงกันได้ แต่ยังไม่รู้รายละเอียดของหัวข้อต่าง ๆ มากพอที่จะสร้างผลลัพธ์ที่สมเหตุสมผลตามบริบทได้
ผมตั้งใจจะปล่อยบอตลงช่อง IRC ที่ใช้ประจำ แล้วดูว่าคนจะใช้เวลานานแค่ไหนกว่าจะรู้ว่าเป็นบอต วิธีคือเมื่อมีคนส่งข้อความ ก็ส่ง 10 ข้อความล่าสุดไปให้ LLM และถ้าผลลัพธ์ขึ้นต้นด้วย prefix ที่กำหนด ก็ส่งข้อความนั้นลงช่อง
น่าเสียดายที่ GPT-2 ยังไม่ดีพอ มันสร้างเนื้อหาที่ค่อนข้างสอดคล้องและเข้าหัวข้อ แต่ไร้สาระ
หลังจากแก้ระบบใหม่แล้ว ผมคิดว่าจะลอง fine-tune โมเดล 7B
การเปลี่ยนแปลงในช่วงหลายปีที่ผ่านมาของบล็อก AI Weirdness (https://www.aiweirdness.com/) ก็สนับสนุนแนวคิดนี้อยู่บ้าง
แต่ผู้เขียนก็ได้ผลลัพธ์ตลก ๆ จาก LLM เยอะเหมือนกัน โดยส่วนใหญ่เป็นโมเดลยุคแรก ๆ ถึง GPT-3 และเวอร์ชันย่อยที่เล็กกว่าของ GPT-3
เช่น ชื่อซีเรียลที่ GPT เวอร์ชัน Ada สร้างขึ้นตลกกว่าเวอร์ชัน Da Vinci มาก: https://www.aiweirdness.com/new-breakfast-cereals-from-ai/
แค่เพิ่ม ค่า temperature ไม่ได้หรือ?
Markov chain มีความเข้าใจภาษาที่หยาบกว่า LLM ถ้าเพิ่ม temperature หรือความสุ่มของ LLM ก็อาจไปถึงการประมาณแบบหยาบ ๆ คล้ายกันได้
อีกอย่าง ผู้เขียนใช้ ChatGPT-3.5 ซึ่ง ChatGPT ถูกใส่ RLHF มาให้ฟังดูทั่วไปที่สุดเท่าที่จะเป็นไปได้ และ 3.5 ก็เข้าใจอารมณ์ขันน้อยกว่า 4
ผมไม่เห็นด้วยกับประเด็นของบทความนี้
น่าเสียดายที่บัญชีไม่อยู่แล้ว แต่ราว 10 ปีก่อนตอนเรียนอยู่ ผมเคยทำ บอต Twitter แบบ Markov ที่ฝึกจากข้อมูลสองชุดนี้
ชุดหนึ่งคืออีเมลทั้งหมดที่ Linus Torvalds ส่งถึง LKML ในช่วง 1 ปีก่อนหน้า อีกชุดคือคำพูดโดยตรงของพระเยซูใน King James Bible
มันตลกมาก เนื่องจากชุดฝึกทั้งสองแทบไม่มีส่วนทับซ้อนกันเลย ผมต้องเพิ่ม heuristic ที่ยิ่ง chain “ติด” อยู่ในชุดหนึ่งนานเท่าไร ก็ยิ่งถ่วงน้ำหนักตัวเลือกจากอีกชุดมากขึ้นเท่านั้น
https://www.tumblr.com/kingjamesprogramming
ผมรัน บอต IRC Markov chain มาประมาณ 20 ปีแล้ว
ช่วงไม่กี่ปีหลังมานี้ก็รัน LLM แบบ local ควบคู่ไปด้วย ยังมีบางคนที่ชอบบอต Markov chain มากกว่า แต่ส่วนใหญ่เรียกใช้ LLM
แต่อาจเป็นเพราะผมเลือกโมเดลที่หลอนเยอะ ปฏิเสธน้อย และตลกกว่า อย่าง fine-tune ของ Mistral-7B แทนโมเดลที่ฉลาด ถูกล็อก และ temperature ต่ำแบบ LLM-as-a-service อย่าง ChatGPT
พอได้ดู LLM กับบอต Markov เทียบกัน ผมยิ่งรู้สึกชัดขึ้นว่า “อารมณ์ขัน” ของบอต Markov จำนวนมากเกิดจากมนุษย์ไปตีความใส่ความหมายให้กับเอาต์พุตที่บังเอิญออกมา แต่ถึงอย่างนั้น ความสามารถในการ “เรียนรู้” ของ Markov ก็ยังเหนือกว่ามาก
บอตของผมไม่เคยอยู่ได้นานขนาดนั้นเลย ครั้งหนึ่งผมเคย scrape LiveJournal ของผู้ใช้มาสร้างข้อความสุ่ม: https://hewgill.com/journal/entries/68-new-lj-toy.html
ผมรันบอต Markov chain ในแชต Twitch และบางครั้งก็มีโมเมนต์เจ๋ง ๆ ออกมา ผมลองใช้ LLM อยู่พักหนึ่งและใส่แชตล่าสุดเข้าไปใน prompt แต่ผลลัพธ์ไม่ค่อยให้ความรู้สึกตลกเท่าไร
ผมลองทำ prompt engineering แบบสั่งเฉพาะว่าควรสร้างมุกแบบไหนด้วย แต่ LLM มักมีแนวโน้มทำตามรูปแบบเดิมเสมอ
ในเซิร์ฟเวอร์ Discord ส่วนตัวมีบอตอยู่สองตัว
ตัวหนึ่งเป็น บอต Markov chain พื้นฐานที่ฝึกจากประวัติแชตทั้งหมด อีกตัวเป็น LLM จริง ๆ ที่ฝึกจาก token จำนวนหนึ่งด้านท้าย ทั้งสองตัวจะสุ่มแทรกเข้ามาในแชตเป็นครั้งคราว
บอต Markov chain ตลกกว่ามากเสมอ
ตอนตัดสินใจว่าจะแทรกเข้ามาไหม ใช้ความน่าจะเป็นง่าย ๆ หลังข้อความอื่น (เช่น 25%) หรือรันด้วย timer?