Pytorch
TensorFlow

# คำถามท้ายบท

ทดสอบความรู้ที่คุณได้เรียนมาจากบทนี้กัน!

### 1. ใน `emotion` dataset ซึ่งได้รวบรวมข้อความ Twitter ที่มีการ labeled ว่าแต่ละข้อความนั้นเป็นข้อความที่มีอารมณ์แบบใด ลองค้นข้อมูลดูจาก Hubและอ่าน dataset card ดูแล้วตอบว่า ข้อใดไม่ใช่หนึ่งในอารมณ์พื้นฐานของ dataset นี้?

Joy Love Confusion Surprise

###
2. ลองหาข้อมูล `ar_sarcasm` dataset ใน Hub ดูว่ามันสามารถทำ Task อะไรได้บ้าง?

Sentiment classification (การจำแนกอารมณ์ของข้อความ) Machine translation (การแปลภาษา) Named entity recognition (การจำแนกหน่วยย่อยของประโยค) Question answering (การตอบคำถาม)

###
3. โมเดล BERT ต้องการข้อมูลนำเข้า เป็นคู่ประโยคในลักษณะใด?

Tokens_of_sentence_1 [SEP] Tokens_of_sentence_2 [CLS] Tokens_of_sentence_1 Tokens_of_sentence_2 [CLS] Tokens_of_sentence_1 [SEP] Tokens_of_sentence_2 [SEP] [CLS] Tokens_of_sentence_1 [SEP] Tokens_of_sentence_2

###
4. ข้อใดเป็นประโยชน์ที่ได้จากการใช้เมธอด `Dataset.map()`?

มีการเก็บผลลัพธ์ของฟังก์ชั่นไว้ใน cache ทำให้คุณไม่ต้องเสียเวลาเพิ่มเติมหากมีการรันโค้ดใหม่ มันสามารถใช้ multiprocessing ทำให้ประมวลผลได้เร็วกว่าการใช้ฟังก์ชั่นกับ element แต่ละตัวใน dataset มันไม่ได้โหลดเอา dataset ทั้งหมดเข้าไปใน memory แต่จะบันทึกผลลัพธ์เมื่อประมวลผล element แต่ละตัวเสร็จ

###
5. dynamic padding หมายถึงอะไร?

หมายถึงการเติมข้อมูลในแต่ละ batch ให้เท่ากับข้อมูลที่ยาวที่สุดใน dataset หมายถึงการเติมข้อมูลในแต่ละ batch ให้เท่ากับข้อมูลที่ยาวที่สุดใน batch นั้น หมายถึงการเติมข้อมูลเพื่อให้แต่ละประโยคมีจำนวน token เท่ากับประโยคก่อนหน้าใน dataset.

###
6. ข้อใดคือหน้าที่ของฟังก์ชั่น collate?

เพื่อทำให้มั่นใจว่าทุก sequences ใน dataset มีความยาวเท่ากัน เพื่อเก็บข้อมูลเข้ามาทำเป็น batch อย่างเหมาะสม เพื่อประมวลผลข้อมูลทั้ง dataset. เพื่อตัด sequences ทุกตัวใน dataset.

###
7. จะเกิดอะไรขึ้นถ้าคุณสร้างออพเจ็กต์ของคลาส `AutoModelForXxx` ตัวหนึ่งซึ่งมี pretrained language model (เช่น `bert-base-uncased`) เพื่อนำไปทำ task ที่แตกต่างไปจาก task ที่เคยเทรนไว้?

ไม่มีอะไรเกิดขึ้น แต่คุณจะได้รับข้อความ warning head ของ pretrained model จะถูกตัดทิ้งไป และจะมีการสร้าง head ใหม่ให้เหมาะสมกับ task นั้นขึ้นมาแทนที่ head ของ pretrained model จะถูกตัดทิ้งไป ไม่มีอะไรเกิดขึ้น เนื่องจากเราสามารถ fine tune โมเดลให้ทำ task ที่ต่างออกไปได้

###
8. ข้อใดคือหน้าที่ของ `TrainingArguments`?

เพื่อเก็บ hyperparameters ทุกตัวที่ใช้ในการเทรนและประเมินผลโมเดลด้วย `Trainer` เพื่อกำหนดขนาดของโมเดล เพื่อเก็บ hyperparameters ที่ใช้ในการประเมินผลโมเดล เพื่อเก็บ hyperparameters ที่ใช้ในการเทรนโมเดล

###
9. ทำไมคุณจึงควรใช้ไลบรารี่ 🤗 Accelerate?

เพื่อเรียกใช้โมเดลที่ทำงานได้เร็วกว่า มันมี high-level API ให้ใช้ ฉันจึงไม่ต้องเขียนลูปในการเทรนเอง ช่วยให้ลูปในการเทรนของคุณใช้การได้กับ distributed setup มันมีฟังก์ชั่น optimization ให้เลือกใช้มากกว่า