Buckets:

rtrm's picture
|
download
raw
23.2 kB
# แบบทดสอบท้ายบท
<CourseFloatingBanner
chapter={2}
classNames="absolute z-10 right-0 top-0"
/>
### 1. ลำดับขั้นตอนใน pipeline ของการทำโมเดลด้านภาษา(language modeling)เป็นอย่างไร ?
<Question
choices={[
{
text: "ั้นตอนแรก โมเดลจะทำการประมวลผลขอความและใหผลการทำนายออกมา หลงจากนั้ tokenizer จะทำการวเคราะหผลการทำนายเหลานี้และแปลงมนกลบมาเปนขอความเมื่อจำเป",
explain: "โมเดลไมสามารถเขาใจขอความได้! tokenizer จำเปนตองทำการ tokenize อความกอนและแปลงมนไปเป IDs ี่โมเดลสามารถเขาใจมนได้"
},
{
text: "ั้นตอนแรก tokenizer จะประมวลผลขอความและใหIDs ออกมา หลงจากนั้นโมเดลจะประมวลผล IDs เหลานี้และใหผลการทำนายออกมา ึ่งอาจจะเปนขอความบางอยาง",
explain: "ผลการทำนายของโมเดลไมสามารถเปนขอความออกมาไดโดยตรง tokenizer จำเปนตองถกใชสำหรบการแปลงผลการทำนายกลบไปเปนขอความ!"
},
{
text: "tokenizer ประมวลผลขอความและใหIDs ออกมา หลงจากนั้นโมเดลจะประมวลผล IDs เหลานี้และใหผลการทำนายออกมา จากนั้ tokenizer จะถกใชกครั้งในการแปลงผลการทำนายเหลานี้กลบไปเปนขอความ",
explain: "กตอง! tokenizer สามารถถกใชสำหรบทั้งการแปลงขอความไปเป IDs (tokenizing) และการแปลงผลการทำนายกลบไปเปนขอความ(de-tokenizing)",
correct: true
}
]}
/>
### 2. tensor ที่เป็นเอาท์พุตออกมาจากโมเดล Transformer แบบพื้นฐานมีขนาดกี่มิติ และมิติเหล่านั้นเป็นอะไรบ้าง?
<Question
choices={[
{
text: "2: ความยาวของประโยค(sequence length) และขนาดของชดขอม(batch size)",
explain: "! tensor ี่ออกมาจากโมเดลมี่สามดวย: ขนาดของเลเยอรภายใน(hidden size)"
},
{
text: "2: ความยาวของประโยค(sequence length) และขนาดของเลเยอรภายใน(hidden size)",
explain: "! โมเดล Transformer กโมเดลจะรบขอมลแบบช(batch), งแมจะมประโยคเพยงประโยคเดยว; ขนาดของช(batch size) เป 1!"
},
{
text: "3: ความยาวของประโยค(sequence length) ขนาดของชดขอม(batch size) และขนาดของเลเยอรภายใน(hidden size)",
explain: "กตอง!",
correct: true
}
]}
/>
### 3. ข้อใดต่อไปนี้เป็นตัวอย่างของ tokenization แบบคำย่อย(subword)?
<Question
choices={[
{
text: "WordPiece",
explain: "กตอง, อนี้เปนตวอยางหนึ่งของ tokenization แบบคำยอย(subword)!",
correct: true
},
{
text: "tokenization ี่เนนที่วอกษร(Character-based)",
explain: "tokenization ี่เนนที่วอกษร(Character-based) ไมไดเปนประเภทของ tokenization แบบคำยอย(subword)"
},
{
text: "Splitting on whitespace and punctuation",
explain: "นนี้เป tokenization ประเภทเนนคำ(word-based)!"
},
{
text: "BPE",
explain: "กตอง, อนี้เปนตวอยางหนึ่งของ tokenization แบบคำยอย(subword)!",
correct: true
},
{
text: "Unigram",
explain: "กตอง, อนี้เปนตวอยางหนึ่งของ tokenization แบบคำยอย(subword)!",
correct: true
},
{
text: "ไมคำตอบที่กตอง",
explain: "!"
}
]}
/>
### 4. model head คืออะไร?
<Question
choices={[
{
text: "วนประกอบหนึ่งของโมเดล Transformer ื้นฐาน ี่งต tensor ไปยงเลเยอรี่กตองของม",
explain: "! ไมวนประกอบแบบนั้น."
},
{
text: "นถกเรยกอกอยางหนึ่งวาเปนกระบวนการ self-attention, นดดแปลงตวแทน(representation) ของ token หนึ่งๆ เทยบก tokens ื่นๆ ในประโยค",
explain: "! เลเยอรself-attention ั้นมattention \"heads,\" แตนไมใชวที่เอาไวดแปลงขอม(not adaptation heads)"
},
{
text: "เปนสวนประกอบเสร ี่ประกอบดวยเลเยอรอยางนอยหนึ่งเลเยอรใชสำหรบแปลงผลการทำนายของ transformer ไปเปนผลลพทเฉพาะสำหรบงานหนึ่งๆ",
explain: "กตอง. Adaptation heads เรยกงายๆ heads, หลากหลายรปแบบ: heads สำหรบโมเดลดานภาษา(language modeling), heads สำหรบการตอบคำถาม(question answering), heads สำหรบการจำแนกประโยค(sequence classification) ... ",
correct: true
}
]}
/>
{#if fw === 'pt'}
### 5. AutoModel คืออะไร?
<Question
choices={[
{
text: "โมเดลที่เทรนดวยขอมลของคณแบบอตโนมิ",
explain: " ณสบสนกบผลตภณฑ์ <a href='https://huggingface.co/autonlp'>AutoNLP</a> ของเราหรือเปล่า?"
},
{
text: "เป็น object ที่ให้สถาปัตยกรรมที่ถูกต้องสำหรับ checkpoint นั้นๆออกมา",
explain: "ถูกต้อง: <code>AutoModel</code> จำเป็นต้องรู้เพียงแค่ว่า checkpoint ใดที่จะใช้ในการสร้างโมเดลและให้สถาปัตยกรรมที่ถูกต้องกลับมา",
correct: true
},
{
text: "โมเดลที่ตรวจหาภาษาที่ใช้สำหรับเป็นอินพุตของมันโดยอัตโนมัติเพื่อที่จะโหลด weights ที่ถูกต้อง",
explain: "ผิด; ในขณะที่บาง checkpoints และโมเดล นั้นสามารถประมวลผลได้หลายภาษา, แต่ไม่มีเครื่องมือแบบ built-in สำหรับเลือก checkpoint ที่ตรงกับภาษาแบบอัตโนมัติเลย คุณลองไปดูที่ <a href='https://huggingface.co/models'>Model Hub</a> เพื่อหา checkpoint ที่ดีที่สุดสำหรับงานของคุณ!"
}
]}
/>
{:else}
### 5. TFAutoModel คืออะไร?
<Question
choices={[
{
text: "โมเดลที่เทรนดวยขอมลของคณแบบอตโนมิ",
explain: " ณสบสนกบผลตภณฑ์ <a href='https://huggingface.co/autonlp'>AutoNLP</a> ของเราหรือเปล่า?"
},
{
text: "เป็น object ที่ให้สถาปัตยกรรมที่ถูกต้องสำหรับ checkpoint นั้นๆออกมา",
explain: "ถูกต้อง: <code>AutoModel</code> จำเป็นต้องรู้เพียงแค่ว่า checkpoint ใดที่จะใช้ในการสร้างโมเดลและให้สถาปัตยกรรมที่ถูกต้องกลับมา",
correct: true
},
{
text:"โมเดลที่ตรวจหาภาษาที่ใช้สำหรับเป็นอินพุตของมันโดยอัตโนมัติเพื่อที่จะโหลด weights ที่ถูกต้อง",
explain: "ผิด; ในขณะที่บาง checkpoints และโมเดล นั้นสามารถประมวลผลได้หลายภาษา, แต่ไม่มีเครื่องมือแบบ built-in สำหรับเลือก checkpoint ที่ตรงกับภาษาแบบอัตโนมัติเลย คุณลองไปดูที่ <a href='https://huggingface.co/models'>Model Hub</a> เพื่อหา checkpoint ที่ดีที่สุดสำหรับงานของคุณ!"
}
]}
/>
{/if}
### 6. มีเทคนิคอะไรบ้างที่เราต้องคำนึงถึงเมื่อจะต้องทำการจัดประโยคที่มีความยาวแตกต่างกันเข้าเป็นชุดเดียวกัน(batching)?
<Question
choices={[
{
text: "การต(Truncating)",
explain: "กตอง, การต(truncation) เปนวี่กตองในการทำใหประโยคนั้นมความยาวเทากนเพื่อใหสามารถใสเขาไปแลวชดขอมลมขนาดเปนจต แตนมเพยงแคเทคนคนี้เทคนคเดยวหรอเปล?",
correct: true
},
{
text: "ใหผลลพที่เป tensors ออกมา",
explain: "ในขณะที่ใชเทคนคอื่นๆ ั้ ณสามารถไดผลลพที่เป tensors แบบจตสได้, งนั้นการใหผลลพที่เปนเพยง tensor ั้นไมไดเปนประโยชนเมื่อทำการรวมประโยคเขาเปนชดเดยวก"
},
{
text: "การเต(Padding)",
explain: "กตอง, การเต(padding) เปนวี่กตองในการทำใหประโยคนั้นมความยาวเทากนเพื่อใหสามารถใสเขาไปแลวชดขอมลมขนาดเปนจต แตนมเพยงแคเทคนคนี้เทคนคเดยวหรอเปล?",
correct: true
},
{
text: "Attention masking",
explain: "กตองเลย! Attention masks เปนกระบวนการที่สำคญมากในการจดการประโยคที่ความยาวแตกตางก แตั้นกไมใชเพยงวเดยว",
correct: true
}
]}
/>
### 7. อะไรคือจุดประสงค์ของการใช้ฟังก์ชัน SoftMax กับผลลัพท์ที่เป็น logits ที่ได้จากโมเดลสำหรับจำแนกประโยค (sequence classification model)?
<Question
choices={[
{
text: "นจะชวยลดคาของ logits ลงทำใหนมความนาเชื่อถอมากขึ้",
explain: ", งก SoftMax ไมไดงผลอะไรกบความนาเชื่อถอของผลลพท์"
},
{
text: "นกำหนดขอบเขตคาบนและลาง เพื่อทำใหาที่ไดสามารถเปนที่เขาใจได้",
explain: "กตอง! าผลลพที่ไดขอบเขตระหวาง 0 และ 1 แตี่ไมไดเปนเพยงเหตผลเดยวที่เราใชงก SoftMax",
correct: true
},
{
text: "ผลรวมของผลลพทเทาก 1 งผลใหสามารถแปลความหมายทางสถได้",
explain: "กตอง! แตี่ไมไดเปนเพยงเหตผลเดยวที่เราใชงก SoftMax",
correct: true
}
]}
/>
### 8. วิธีใดที่เป็นหัวใจหลักของ tokenizer API ส่วนใหญ่?
<Question
choices={[
{
text: "<code>encode</code>, เพราะมันสามารถเข้ารหัสข้อความไปเป็น IDs และ IDs ไปเป็นคำทำนายได้",
explain: "ผิด! ในขณะที่วิธีการ <code>encode</code> นั้นไม่มีอยู่ใน tokenizers, มันก็ไม่มีอยู่ในโมเดลเช่นเดียวกัน"
},
{
text: "การเรียก tokenizer object โดยตรง",
explain: "ถูกต้อง! วิธี <code>__call__</code> ของ tokenizer เป็นวิธีการที่ทรงพลังมากที่สามารถจัดการได้เกือบทุกอย่าง และมันก็เป็นวิธีการที่ถูกใช้ในการเอาผลการทำนายออกมาจากโมเดลด้วย",
correct: true
},
{
text: "<code>pad</code>",
explain: "ผิด! การเติม(Padding) เป็นประโยชน์มาก แต่มันก็เป็นแค่ส่วนหนึ่งของ tokenizer API"
},
{
text: "<code>tokenize</code>",
explain: "วิธี <code>tokenize</code> เป็นหนึ่งวิธีที่มีประโยชน์มากแต่มันก็ไม่ใช่หัวใจหลักของ tokenizer API"
}
]}
/>
### 9. ตัวแปร `result` ในตัวอย่างโค้ดนี้มีค่าอะไรอยู่บ้าง?
```py
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
result = tokenizer.tokenize("Hello!")
```
<Question
choices={[
{
text: "สทของกลุ่มตวอกษร(A list of strings), โดยที่แตละ string ั้นเป token",
explain: "กตอง! แปลง token ไปเป IDs และสงเขาไปยงโมเดล!",
correct: true
},
{
text: "สทของ IDs",
explain: "ไมกตอง; ั้นเปนหนาที่ของ <code>__call__</code> หรือ <code>convert_tokens_to_ids</code>!"
},
{
text: "string ที่ประกอบด้วย tokens ทั้งหมด",
explain: "นั้นอาจจะไม่ใช่วิธีที่ดีที่สุด, เมื่อเป้าหมายคือการแบ่ง string ออกเป็นหลายๆ tokens "
}
]}
/>
{#if fw === 'pt'}
### 10. มีอะไรบางอย่างที่ผิดปกติกับโค้ดต่อไปนี้หรือไม่?
```py
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
model = AutoModel.from_pretrained("gpt2")
encoded = tokenizer("Hey!", return_tensors="pt")
result = model(**encoded)
```
<Question
choices={[
{
text: "ไมเหมอนวามนจะปกติ",
explain: "โชคไมเลย, การตอโมเดลก tokenizer ี่านการเทรนที่มาจาก checkpoint ี่แตกตางกนนั้นเปนไอเดยที่ไมอยดเทาไหรโมเดลไมไดกเทรนมาใหสามารถเขาใจผลลพที่ไดจาก tokenizer ี้ งนั้นผลลพทของโมเดล(ามนสามารถรนได้!)จะดไมเปนเหตเปนผลซกเทาไหร่"
},
{
text: "tokenizer และโมเดลควรจะมาจาก checkpoint เดยวกนเสมอ",
explain: "กตอง!",
correct: true
},
{
text: "นเปนสิ่งที่ในการเต(pad) และ (truncate) โดยใชtokenizer ึ่งทกอนพดกเปนชดของขอมลอยู่แล",
explain: "กตองที่าทกอนพตของโมเดลจำเปนตองอยู่ในรปแบบของช(batch) แตอยางไรกตาม การต(truncating) หร การเต(padding) ประโยคนี้อาจจะไมสมเหตสมผล เนื่องจากมนมแคประโยคเดยวและเทคนคเหลานั้นเปนเทคนคสำหรบการรวมกลุ่มประโยค(a list of sentences)เขาดวยกนใหเปนชดๆ(batch)"
}
]}
/>
{:else}
### 10. มีอะไรบางอย่างที่ผิดปกติกับโค้ดต่อไปนี้หรือไม่?
```py
from transformers import AutoTokenizer, TFAutoModel
tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
model = TFAutoModel.from_pretrained("gpt2")
encoded = tokenizer("Hey!", return_tensors="pt")
result = model(**encoded)
```
<Question
choices={[
{
text: "ไมเหมอนวามนจะปกติ",
explain: "โชคไมเลย, การตอโมเดลก tokenizer ี่านการเทรนที่มาจาก checkpoint ี่แตกตางกนนั้นเปนไอเดยที่ไมอยดเทาไหรโมเดลไมไดกเทรนมาใหสามารถเขาใจผลลพที่ไดจาก tokenizer ี้ งนั้นผลลพทของโมเดล(ามนสามารถรนได้!)จะดไมเปนเหตเปนผลซกเทาไหร่"
},
{
text: "tokenizer และโมเดลควรจะมาจาก checkpoint เดยวกนเสมอ",
explain: "กตอง!",
correct: true
},
{
text: "นเปนสิ่งที่ในการเต(pad) และ (truncate) โดยใชtokenizer ึ่งทกอนพดกเปนชดของขอมลอยู่แล",
explain: "กตองที่าทกอนพตของโมเดลจำเปนตองอยู่ในรปแบบของช(batch) แตอยางไรกตาม การต(truncating) หร การเต(padding) ประโยคนี้อาจจะไมสมเหตสมผล เนื่องจากมนมแคประโยคเดยวและเทคนคเหลานั้นเปนเทคนคสำหรบการรวมกลุ่มประโยค(a list of sentences)เขาดวยกนใหเปนชดๆ(batch)"
}
]}
/>
{/if}
<EditOnGithub source="https://github.com/huggingface/course/blob/main/chapters/th/chapter2/8.mdx" />

Xet Storage Details

Size:
23.2 kB
·
Xet hash:
7643dd4e04476c067d87d6848581d02f49abedc83b77038e60c52dfbacf1d898

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.