46 lines
5.6 KiB
Markdown
46 lines
5.6 KiB
Markdown
# การสร้างแบบจำลองภาษา
|
|
|
|
การฝังความหมาย เช่น Word2Vec และ GloVe ถือเป็นก้าวแรกในการสร้าง **แบบจำลองภาษา** - การสร้างโมเดลที่สามารถ *เข้าใจ* (หรือ *แสดงออก*) ลักษณะของภาษาได้ในบางรูปแบบ
|
|
|
|
## [แบบทดสอบก่อนเรียน](https://ff-quizzes.netlify.app/en/ai/quiz/29)
|
|
|
|
แนวคิดหลักของการสร้างแบบจำลองภาษาคือการฝึกโมเดลด้วยชุดข้อมูลที่ไม่มีการติดป้ายกำกับในลักษณะการเรียนรู้แบบไม่มีผู้สอน ซึ่งสำคัญมากเพราะเรามีข้อความที่ไม่มีการติดป้ายกำกับจำนวนมหาศาล ในขณะที่ข้อความที่มีการติดป้ายกำกับจะถูกจำกัดด้วยความพยายามที่เราสามารถใช้ในการติดป้ายกำกับได้ โดยทั่วไป เราสามารถสร้างแบบจำลองภาษาที่สามารถ **ทำนายคำที่หายไป** ในข้อความได้ เพราะการปิดบังคำแบบสุ่มในข้อความและใช้เป็นตัวอย่างการฝึกนั้นทำได้ง่าย
|
|
|
|
## การฝึกฝังความหมาย
|
|
|
|
ในตัวอย่างก่อนหน้านี้ เราใช้การฝังความหมายที่ผ่านการฝึกมาแล้ว แต่จะน่าสนใจมากหากเราได้เห็นว่าการฝังความหมายเหล่านี้สามารถฝึกได้อย่างไร มีแนวคิดหลายแบบที่สามารถนำมาใช้ได้:
|
|
|
|
* **การสร้างแบบจำลองภาษาแบบ N-Gram** โดยการทำนายโทเค็นโดยดูจากโทเค็น N ตัวก่อนหน้า (N-gram)
|
|
* **Continuous Bag-of-Words** (CBoW) โดยการทำนายโทเค็นตรงกลาง $W_0$ ในลำดับโทเค็น $W_{-N}$, ..., $W_N$
|
|
* **Skip-gram** โดยการทำนายชุดโทเค็นที่อยู่ใกล้เคียง {$W_{-N},\dots, W_{-1}, W_1,\dots, W_N$} จากโทเค็นตรงกลาง $W_0$
|
|
|
|

|
|
|
|
> ภาพจาก [งานวิจัยนี้](https://arxiv.org/pdf/1301.3781.pdf)
|
|
|
|
## ✍️ ตัวอย่างโน้ตบุ๊ก: การฝึกโมเดล CBoW
|
|
|
|
เรียนรู้เพิ่มเติมในโน้ตบุ๊กต่อไปนี้:
|
|
|
|
* [การฝึก CBoW Word2Vec ด้วย TensorFlow](CBoW-TF.ipynb)
|
|
* [การฝึก CBoW Word2Vec ด้วย PyTorch](CBoW-PyTorch.ipynb)
|
|
|
|
## สรุป
|
|
|
|
ในบทเรียนก่อนหน้านี้ เราได้เห็นว่าการฝังคำทำงานได้อย่างมหัศจรรย์! ตอนนี้เรารู้แล้วว่าการฝึกการฝังคำไม่ใช่เรื่องซับซ้อนมาก และเราควรสามารถฝึกการฝังคำของเราเองสำหรับข้อความเฉพาะทางได้หากจำเป็น
|
|
|
|
## [แบบทดสอบหลังเรียน](https://ff-quizzes.netlify.app/en/ai/quiz/30)
|
|
|
|
## ทบทวนและศึกษาด้วยตนเอง
|
|
|
|
* [บทเรียนอย่างเป็นทางการของ PyTorch เกี่ยวกับการสร้างแบบจำลองภาษา](https://pytorch.org/tutorials/beginner/nlp/word_embeddings_tutorial.html)
|
|
* [บทเรียนอย่างเป็นทางการของ TensorFlow เกี่ยวกับการฝึกโมเดล Word2Vec](https://www.TensorFlow.org/tutorials/text/word2vec)
|
|
* การใช้เฟรมเวิร์ก **gensim** เพื่อฝึกการฝังคำที่ใช้บ่อยที่สุดในโค้ดเพียงไม่กี่บรรทัด อธิบายไว้ [ในเอกสารนี้](https://pytorch.org/tutorials/beginner/nlp/word_embeddings_tutorial.html)
|
|
|
|
## 🚀 [งานที่ได้รับมอบหมาย: ฝึกโมเดล Skip-Gram](lab/README.md)
|
|
|
|
ในห้องปฏิบัติการ เราท้าทายให้คุณปรับเปลี่ยนโค้ดจากบทเรียนนี้เพื่อฝึกโมเดล Skip-Gram แทน CBoW [อ่านรายละเอียด](lab/README.md)
|
|
|
|
---
|
|
|