The instruction data we want to generate contains a set of instructions \(\{I_{t}\}\), each of which defines a task \(t\) in natural language. Task \(t\) has \(n_{t}\geq 1\) input-output instances \(\{(X_{t,i},Y_{t,i})\}_{i=1}^{n_{t}}\). A model \(M\) is expected to produce the output, given the task instruction and the corresponding input: \(M(I_{t},X_{t,i})=Y_{t,i}\), for \(i\in\{1,\dots,n_{t}\}\). Note that the instruction and instance input does not have a strict boundary in many cases. For example, "write an essay about school safety" can be a valid instruction that we expect models to respond to directly, while it can also be formulated as "write an essay about the following topic" as the instruction, and "school safety" as an instance input. To encourage the diversity of the data format, we allow such instructions that do not require additional input (i.e., \(X\) is empty).