การออกแบบ Pipeline ข้อมูลสังเคราะห์สำหรับภาษาเปอร์เซีย

การฝึกฝน LLM ไม่ใช่เรื่องของการขยายขนาดโมเดลอีกต่อไป แต่เป็นเรื่องของการขยายคุณภาพของข้อมูล

ชุดข้อมูลภาษาเปอร์เซียส่วนใหญ่ขาดโครงสร้าง ซึ่งทำให้โมเดลล้มเหลวในการปฏิบัติตามคำสั่ง ปัญหาคือความขาดแคลนของข้อมูล ไม่ใช่ขนาดของโมเดล

ผมได้สร้าง pipeline ขึ้นมาเพื่อแก้ปัญหานี้ โดยเริ่มตั้งแต่การสร้าง topic graphs ไปจนถึงการทำ QLoRA fine tuning

กระบวนการของ Pipeline:

  • การสร้าง Topic Tree
  • การสร้างข้อมูลด้วย LLM
  • การกำจัดข้อมูลซ้ำ (Deduplication)
  • การให้คะแนนคุณภาพ
  • การส่งออกชุดข้อมูล
  • การทำ QLoRA Fine Tuning
  • การประเมินผล

กฎหลักในการออกแบบ:

  • 51 โดเมน เพื่อให้มั่นใจว่าครอบคลุมเนื้อหาอย่างสมดุล
  • การทำ Semantic deduplication เพื่อกำจัดแนวคิดที่ซ้ำซ้อน
  • การสร้างข้อมูลด้วยหลายโมเดลโดยใช้ GPT models เพื่อลดอคติ (bias)
  • ใช้ Qwen2.5 3B Instruct สำหรับการ fine tuning ขั้นสุดท้าย

การทำงานของ Data Engine: ผมใช้โมเดลหลายตัวเพื่อสร้างความหลากหลาย โดย GPT models จะช่วยในเรื่องการใช้เหตุผลและความหลากหลาย ซึ่งช่วยให้ต้นทุนต่ำแต่ได้ความหลากหลายสูง

ผมใช้ semantic filtering เพื่อทำความสะอาดข้อมูล หากคำสั่งสองคำสั่งมี similarity score สูงกว่า 0.75 ผมจะลบออกหนึ่งรายการ เพื่อป้องกันไม่ให้โมเดลเกิดการ overfitting กับรูปแบบเดิมๆ

ผมใช้ LLM เป็น judge เพื่อให้คะแนนคุณภาพ โดยตรวจสอบในด้าน:

  • ความลื่นไหล (Fluency)
  • ความเกี่ยวข้อง (Relevance)
  • ความครบถ้วน (Completeness)

เฉพาะข้อมูลที่มีคะแนนตั้งแต่ 3.5 ขึ้นไปเท่านั้นที่จะถูกเก็บไว้ในชุดข้อมูล

ผลลัพธ์การ Fine Tuning: ผมใช้ QLoRA กับโมเดล Qwen2.5 3B Instruct ผ่าน Google Colab โดย QLoRA จะฝึกฝนเฉพาะ adapters ขนาดเล็กแทนที่จะเป็น weights ทั้งหมด ซึ่งช่วยประหยัดหน่วยความจำในขณะที่ยังรักษาประสิทธิภาพไว้ได้สูง

ผลลัพธ์แสดงให้เห็นถึงความแตกต่างอย่างมหาศาล:

  • base model มักจะเปลี่ยนไปใช้ภาษาอาหรับ
  • โมเดลที่ผ่านการ fine tuned แล้วสามารถพูดภาษาเปอร์เซียได้อย่างลื่นไหลและสม่ำเสมอ

บทเรียนสำคัญนั้นชัดเจน: Data engineering สำคัญกว่าการขยายขนาดโมเดล คุณภาพของข้อมูลคือคอขวดหลัก

ข้อมูลเชิงลึกที่สำคัญ (Key Insights):

  • การกรองแบบสองชั้น (Dual filtering) เป็นสิ่งจำเป็นสำหรับข้อมูลที่สะอาด
  • topic graphs ที่มีโครงสร้างทำงานได้ดีกว่าการใช้ prompt แบบอิสระ
  • LLM judge เป็นส่วนสำคัญของระบบ

ระบบนี้เป็น engine ที่สมบูรณ์สำหรับการทำ LLM alignment สำหรับภาษาที่มีทรัพยากรจำกัด (low resource)

ที่มา: https://dev.to/mohammadheydari/designing-a-synthetic-data-pipeline-for-persian-llm-fine-tuning-from-topic-graphs-to-qlora-5cg5

ชุมชนการเรียนรู้เพิ่มเติม: https://t.me/GyaanSetuAi