มาช่วยกันสร้างชุดข้อมูลบทสนทนาภาษาไทยสำหรับสอนแชทบอทที่เหมือน ChatGPT กัน! – SMS Marketing ราคาถูกที่สุด
หลังจากที่กระแส ChatGPT ได้สร้างปรากฎการณ์ในวงการคอมพิวเตอร์จำนวนมาก ทั้ง Bing นำมาเป็นส่วนหนึ่งของระบบค้นหา, Google เปิดตัว Bard ที่ใช้ LaMBDA มาเพื่อแข่งกับ Bing และอื่น ๆ แต่ผู้ใช้งาน ChatGPT คงเจอปัญหาเวลาใช้งาน ChatGPT กับภาษาไทยแล้วทำงานช้ามาก เพราะ ChatGPT ไม่ได้ฝึกฝนด้วยชุดข้อมูลภาษาไทย นอกจากนั้น ChatGPT ยังเป็นซอฟต์แวร์ที่เป็นกรรมสิทธิ์ของ OpenAI และไม่ได้เป็น Open Source (ไม่เปิดเผยชุดข้อมูลที่ใช้ฝึกสอน-ไม่เปิดเผย Source Code)
ในปัจจุบันได้มีความพยายามสร้างโมเดล ChatGPT ในรูปแบบของ Open Source ที่ฝึกสอนโมเดลจากชุดข้อมูลบทสนทนาในภาษาต่าง ๆ ตัวอย่างเช่น ภาษาอังกฤษ, ภาษาจีน โมเดล ChatYuan และภาษาอื่น ๆ แต่สำหรับภาษาไทย ชุดข้อมูลบทสนทนา (conversational datasets) สำหรับใช้สอนโมเดล ณ ปัจจุบันยังไม่มี และค่าใช้จ่ายในการสร้างชุดข้อมูลค่อนข้างสูง เนื่องจากต้องใช้คนมาช่วยกันป้อนข้อมูลบทสนทนาให้โมเดลเรียนรู้ ดังนั้นผมจึงขอเชิญชวนชาว Blognone มาช่วยกันสร้างชุดข้อมูลบทสนทนาภาษาไทยสำหรับสอนแชทบอทที่เหมือน ChatGPT เพื่อให้นักวิจัยไทย และนักพัฒนาปัญญาประดิษฐ์ได้มีชุดข้อมูลสำหรับสร้างปัญญาประดิษฐ์ผู้ช่วยภาษาไทย (Open Assistant; AI Assistant หรือ “ChatGPT ภาษาไทย”)
สำหรับโครงการที่แนะนำคือ โครงการ Open Assistant โดย LAION-A เจ้าของผลงานชุดข้อมูล LAION-5B ชุดข้อมูลคู่ข้อความ-รูปภาพอันลือลั่นที่ทำให้เกิดปรากฎการณ์ปัญญาประดิษฐ์วาดรูปอย่าง Midjourney และ Stable Diffusion มาแล้ว
ในครั้งนี้ LAION-A มีเป้าหมายคือสร้างปัญญาประดิษฐ์ผู้ช่วยแบบโอเพนซอร์สเสมือน ChatGPT แต่ใช้งานได้ฟรี, เปิดเผยชุดข้อมูล, เปิดเผย Source Code, และนำไปทำงานบนคอมพิวเตอร์ตัวเองแบบออฟไลน์ได้ทั้งงานวิจัยและเชิงพาณิชย์ ขณะนี้ทางโครงการได้เริ่มต้นรับบริจาคชุดข้อมูลบทสนทนาในภาษาต่าง ๆ แบบ Crowdsourcing โดยหลังจากเสร็จสิ้นจะปล่อยภายใต้ CC BY 4.0 โดยก่อนอื่น ผมขอแนะนำให้อ่านเอกสาร Guidelines ตามที่ทางโครงการ PyThaiNLP ได้จัดทำขึ้นที่ pythainlp.github.io/Open-Assistant-Thailand/
มาเริ่มสร้างชุดข้อมูลกัน!
เข้าไปที่ https://open-assistant.io/th
2. กด Sign In ด้วยอีเมล (ต้องไปเปิดลิงก์ในเมลที่ป้อน) หรือ เข้าสู่ระบบด้วย Discord แล้วจะพบกับหน้าหลักดังนี้
3. ให้เลือกภาษาเป็น “ไทย” เท่านั้น เพราะถ้าเลือกภาษาอื่น ๆ จะไม่สามารถป้อนภาษาไทยได้ โดยงานมีด้วยกัน 7 อย่างดังนี้
3.1 “สร้างข้อความ Prompts เริ่มต้น” (Create Initial Prompts) สำหรับสร้างข้อความเริ่มต้นสนทนากับ Open Assistant ของเรา เช่น “สวัสดี Open Assistant ช่วยบอกวิธีทอดไข่ดาวแบบกึ่งสุกกึ่งดิบให้หน่อย”
โดยข้อมูลที่ป้อนต้องทำตาม Guidelines สรุปย่อ ๆ คือเป็นข้อความใหม่ ไม่ก็อปจากที่ไหน, เป็นข้อความที่ไม่สนับสนุนความรุนแรง/เนื้อหาทางเพศ/ความเกลียดชัง/ข้อความที่ผิดกฎหมาย ข้อความที่ป้อนสามารถใช้ markdown ได้
3.2 “จัดประเภทข้อความ Prompt เริ่มต้น” (Classify Initial Prompt) เป็นการกำกับข้อความเริ่มต้นใน 3.1 ว่าเหมาะสมหรือไม่ ได้แก่
เป็นสแปมหรือไม่ (ใช่/ไม่)
คุณภาพต่ำ-สูง (1-5)
ธรรมดา-สร้างสรรค์ (1-5)
จริงจัง-อารมณ์ขัน (1-5)
หยาบคาย-สุภาพ (1-5)
มีความรุนแรง-ไม่มีอันตราย (1-5)
3.3 “ตอบกลับเป็นผู้ช่วย” (Reply as Assistant) สำหรับสร้างข้อความที่ Open Assistant จะตอบคำถามกลับไปหาผู้ใช้งาน เช่น “การทอดไข่ดาวแบบกึ่งสุกกึ่งดิบมีขั้นตอนดังต่อไปนี้ 1. ใช้ไฟอ่อนๆ …” คำแนะนำในการสร้างข้อความคล้ายกับ 3.1 แต่เพิ่มเติมจาก PyThaiNLP คือให้สวมบทเป็นปัญญาประดิษฐ์ เช่น ใช้คำตอบแบบไม่ระบุเพศ (ไม่ต้องมีครับ/ค่ะ, แทนตัว Open Assistant ด้วยฉัน) เป็นต้น
3.4 “จัดประเภทการตอบกลับของผู้ช่วย” (Classify Assistant Reply) เป็นการกำกับข้อความที่ Open Assistant ตอบกลับใน 3.3 เกณฑ์การประเมินคล้ายกับ 3.2 เพิ่มเติมคือ
เป็นการตอบกลับที่ไม่ดีสำหรับ Prompt ที่ให้มาหรือไม่ (ใช่/ไม่) ส่วนใหญ่คือการตอบไม่ตรงคำถาม เช่น
กรณีไม่ดี (ตอบ ใช่)
ถาม: สีประจำวันพุธสีออะไร
ตอบ: วันพุธเป็นวันกลางสัปดาห์
กรณีดี (ตอบ ไม่)
ถาม: สีประจำวันพุธสีออะไร
ตอบ: สีเขียว
ไม่เป็นประโยชน์-มีประโยชน์ (1-5)
3.5 “จัดอันดับการตอบกลับของผู้ช่วย” (Rank Assistant Replies) เป็นการจัดอันดับความตอบกลับที่ Open Assistant สร้างขึ้น ให้ลากวางคำตอบที่เหมาะกับ Prompt ที่สุด
3.6 “ตอบกลับเป็นผู้ใช้งาน” (Reply as User) สำหรับสร้างข้อความที่ผู้ใช้งานจะตอบกลับข้อความจากที่ Open Assistant สร้างขึ้นต่อจาก 3.3 เช่น
โจทย์
ผู้ใช้: ช่วยบอกวิธีการทำอาหารอิตาเลี่ยนหน่อย
Open Assistant: คุณต้องการอาหารอิตาเลี่ยนเมนูไหน
คุณต้องตอบด้วยข้อความ เช่น “ขอเมนูพาสต้าแล้วกัน” หรือ “ขอเมนูพิซซ่า” เป็นต้น
3.7 “จัดประเภทการตอบกลับของ Prompter” (Classify Prompter Reply) เป็นการกำกับข้อความที่ผู้ใช้ตอบกลับ Open Assistant ใน 3.6 โดยมีเกณฑ์เดียวกับ 3.2
4. การกำกับข้อความหรือป้อนข้อความใด ๆ ให้ปฎิบัติตาม Guidelines หรือเอกสารแนะนำภาษาไทย อย่างเคร่งครัด ที่สำคัญที่สุดคือ
สร้างข้อความใหม่ ไม่ก็อปจากที่ไหน
ไม่สร้างข้อความที่สนับสนุนความรุนแรง/เนื้อหาทางเพศ/ความเกลียดชัง/ข้อความที่ผิดกฎหมาย
เมื่อสร้างข้อความให้ Open Assistant เป็นคนตอบให้สวมบทปัญญาประดิษฐ์ เช่น ใช้คำตอบแบบไม่ระบุเพศ (ไม่ต้องมีครับ/ค่ะ) เป็นต้น
สามารถดูรายละเอียดเพิ่มเติมได้ที่ Open-Assistant.io/th และ pythainlp.github.io/Open-Assistant-Thailand/
พูดคุยกับชุมชน Open Assistant Thailand ได้ที่ Open Assistant Thailand – Facebook Groups
ข้อมูลเปิดเผย โครงการ PyThaiNLP เป็นผู้เขียนบทความนี้