File size: 5,927 Bytes
75bb597
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
{
  "id": "data_tokenization",
  "concept": "Data & Tokenization",
  "fiction": "The knight enters the Great Archive and meets the Runesmiths, learning how to mine raw knowledge and chisel it into mathematical runes.",
  "questions": [
    {
      "id": "dt_q1",
      "shown": {
        "question": "What is the name of the official Hugging Face library used to efficiently download, load, and process vast amounts of data?",
        "concept_brief": "Ask the knight for the name of the specific grimoire dedicated entirely to handling the great tomes of knowledge."
      },
      "check": {
        "strategy": "keyword",
        "spec": {
          "correct_any": [
            "datasets",
            "dataset"
          ]
        }
      },
      "reveal": "The `datasets` library."
    },
    {
      "id": "dt_q2",
      "shown": {
        "question": "Which main function from the `datasets` library is used to fetch a dataset from the Hub or a local file?",
        "concept_brief": "What is the precise incantation used to summon a tome from the archive to the reading desk?"
      },
      "check": {
        "strategy": "keyword",
        "spec": {
          "correct_any": [
            "load_dataset"
          ]
        }
      },
      "reveal": "The `load_dataset` function."
    },
    {
      "id": "dt_q3",
      "shown": {
        "question": "When a dataset is too massive to fit into your computer's memory (RAM), what feature allows you to load and process the data on-the-fly as you iterate through it?",
        "concept_brief": "If the tome is too heavy to lift, what magic allows a knight to read the pages as they flow past like a river?"
      },
      "check": {
        "strategy": "keyword",
        "spec": {
          "correct_any": [
            "streaming",
            "stream"
          ]
        }
      },
      "reveal": "Streaming."
    },
    {
      "id": "dt_q4",
      "shown": {
        "question": "What method is used to efficiently apply a transformation function to every single example in a dataset?",
        "concept_brief": "By what command does a scribe cast a translation spell over every single page of a tome at once?"
      },
      "check": {
        "strategy": "keyword",
        "spec": {
          "correct_any": [
            "map",
            "map()"
          ]
        }
      },
      "reveal": "The `map` method."
    },
    {
      "id": "dt_q5",
      "shown": {
        "question": "Explain in your own words why machine learning models cannot understand raw text directly and require tokenization.",
        "concept_brief": "Ask the knight why spirits of logic cannot hear mortal words. Why must speech be turned into numbers?"
      },
      "check": {
        "strategy": "llm_judge",
        "spec": {
          "rubric": [
            "Mentions that models are mathematical/computational engines",
            "Mentions the need to convert text into numbers or IDs"
          ]
        }
      },
      "reveal": "Models are mathematical entities and require text to be converted into numerical token IDs to process them."
    },
    {
      "id": "dt_q6",
      "shown": {
        "question": "Which class in the `transformers` library is most commonly used to automatically load the correct tokenizer for a given model?",
        "concept_brief": "What specific incantation from the grimoire summons the exact Runesmith matched to a spirit?"
      },
      "check": {
        "strategy": "keyword",
        "spec": {
          "correct_any": [
            "autotokenizer",
            "AutoTokenizer"
          ]
        }
      },
      "reveal": "The `AutoTokenizer` class."
    },
    {
      "id": "dt_q7",
      "shown": {
        "question": "Write one line of Python code that encodes the text \"hello\" into token IDs using a `tokenizer` object.",
        "concept_brief": "The Runesmith's own tool can transform plain speech -- invoke it upon the text."
      },
      "check": {
        "strategy": "ast",
        "spec": {
          "must_call_any": [
            "encode",
            "tokenizer"
          ]
        }
      },
      "reveal": "tokenizer(\"hello\") (or tokenizer.encode(\"hello\"))"
    },
    {
      "id": "dt_q8",
      "shown": {
        "question": "What is the term for the complete, fixed set of unique tokens a specific tokenizer knows how to process?",
        "concept_brief": "What is the name of the great ledger that lists every single rune a specific smith has ever learned?"
      },
      "check": {
        "strategy": "keyword",
        "spec": {
          "correct_any": [
            "vocabulary",
            "vocab"
          ]
        }
      },
      "reveal": "The vocabulary (or vocab)."
    },
    {
      "id": "dt_q9",
      "shown": {
        "question": "When processing multiple texts of different lengths in a batch, what technique is used to add empty tokens so they all match the length of the longest text?",
        "concept_brief": "When casting multiple spells at once, they must all be the same length. How do we fill the empty space in the shorter incantations?"
      },
      "check": {
        "strategy": "keyword",
        "spec": {
          "correct_any": [
            "padding",
            "pad"
          ]
        }
      },
      "reveal": "Padding."
    },
    {
      "id": "dt_q10",
      "shown": {
        "question": "When padding is applied, what secondary array of 1s and 0s is generated to tell the model which tokens are real text and which are just padding?",
        "concept_brief": "What is the name of the filter that tells the spirit to ignore the empty filler runes and focus only on the true magic?"
      },
      "check": {
        "strategy": "keyword",
        "spec": {
          "correct_any": [
            "attention mask",
            "attention_mask"
          ]
        }
      },
      "reveal": "The attention mask."
    }
  ]
}