├── .gitignore ├── models └── story │ ├── model.safetensors │ ├── generation_config.json │ ├── special_tokens_map.json │ ├── config.json │ ├── tokenizer_config.json │ └── tokenizer.json ├── Cargo.toml ├── .github └── workflows │ └── rust.yml ├── src ├── main.rs ├── config.rs ├── kvcache.rs ├── params.rs ├── tensor.rs ├── operators.rs └── model.rs └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | Cargo.lock 3 | .vscode -------------------------------------------------------------------------------- /models/story/model.safetensors: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LearningInfiniTensor/learning-lm-rs/HEAD/models/story/model.safetensors -------------------------------------------------------------------------------- /models/story/generation_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "_from_model_config": true, 3 | "bos_token_id": 1, 4 | "eos_token_id": 2, 5 | "transformers_version": "4.41.2" 6 | } 7 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "learning-lm-rust" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | serde = { version = "1.0", features = ["derive"] } 8 | serde_json = "1.0" 9 | safetensors = "0.4.3" 10 | tokenizers = "0.19.1" 11 | rand = "0.8" -------------------------------------------------------------------------------- /.github/workflows/rust.yml: -------------------------------------------------------------------------------- 1 | name: Rust 2 | 3 | on: 4 | push: 5 | branches: [ "main", "master" ] 6 | pull_request: 7 | branches: [ "main", "master" ] 8 | 9 | env: 10 | CARGO_TERM_COLOR: always 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v4 19 | - name: Build 20 | run: cargo build --verbose 21 | - name: Run tests 22 | run: cargo test --verbose 23 | -------------------------------------------------------------------------------- /models/story/special_tokens_map.json: -------------------------------------------------------------------------------- 1 | { 2 | "bos_token": { 3 | "content": "<|start_story|>", 4 | "lstrip": false, 5 | "normalized": true, 6 | "rstrip": false, 7 | "single_word": false 8 | }, 9 | "eos_token": { 10 | "content": "<|end_story|>", 11 | "lstrip": false, 12 | "normalized": true, 13 | "rstrip": false, 14 | "single_word": false 15 | }, 16 | "pad_token": { 17 | "content": "", 18 | "lstrip": false, 19 | "normalized": true, 20 | "rstrip": false, 21 | "single_word": false 22 | }, 23 | "unk_token": { 24 | "content": "", 25 | "lstrip": false, 26 | "normalized": true, 27 | "rstrip": false, 28 | "single_word": false 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /models/story/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "architectures": [ 3 | "LlamaForCausalLM" 4 | ], 5 | "attention_bias": false, 6 | "attention_dropout": 0.0, 7 | "bos_token_id": 1, 8 | "eos_token_id": 2, 9 | "hidden_act": "silu", 10 | "hidden_size": 128, 11 | "initializer_range": 0.02, 12 | "intermediate_size": 384, 13 | "max_position_embeddings": 512, 14 | "mlp_bias": false, 15 | "model_type": "llama", 16 | "num_attention_heads": 8, 17 | "num_hidden_layers": 2, 18 | "num_key_value_heads": 4, 19 | "pretraining_tp": 1, 20 | "rms_norm_eps": 1e-06, 21 | "rope_scaling": null, 22 | "rope_theta": 10000.0, 23 | "tie_word_embeddings": true, 24 | "torch_dtype": "float32", 25 | "transformers_version": "4.41.2", 26 | "use_cache": true, 27 | "vocab_size": 2048 28 | } 29 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | mod config; 2 | mod kvcache; 3 | mod model; 4 | mod operators; 5 | mod params; 6 | mod tensor; 7 | 8 | use std::path::PathBuf; 9 | use tokenizers::Tokenizer; 10 | 11 | fn main() { 12 | let project_dir = env!("CARGO_MANIFEST_DIR"); 13 | let model_dir = PathBuf::from(project_dir).join("models").join("story"); 14 | let llama = model::Llama::::from_safetensors(&model_dir); 15 | let tokenizer = Tokenizer::from_file(model_dir.join("tokenizer.json")).unwrap(); 16 | let input = "Once upon a time"; 17 | let binding = tokenizer.encode(input, true).unwrap(); 18 | let input_ids = binding.get_ids(); 19 | print!("\n{}", input); 20 | let output_ids = llama.generate( 21 | input_ids, 22 | 500, 23 | 0.8, 24 | 30, 25 | 1., 26 | ); 27 | println!("{}", tokenizer.decode(&output_ids, true).unwrap()); 28 | } 29 | -------------------------------------------------------------------------------- /src/config.rs: -------------------------------------------------------------------------------- 1 | use serde; 2 | #[derive(serde::Serialize, serde::Deserialize, Debug)] 3 | pub(crate) struct LlamaConfigJson { 4 | pub bos_token_id: u32, 5 | pub eos_token_id: u32, 6 | pub hidden_size: usize, 7 | pub intermediate_size: usize, 8 | pub max_position_embeddings: usize, 9 | pub num_attention_heads: usize, 10 | pub num_hidden_layers: usize, 11 | pub num_key_value_heads: usize, 12 | pub vocab_size: usize, 13 | #[serde(default = "default_rms_norm_eps")] 14 | pub rms_norm_eps: f32, 15 | #[serde(default = "default_rope_theta")] 16 | pub rope_theta: f32, 17 | pub torch_dtype: String, 18 | #[serde(default = "default_tie_word_embeddings")] 19 | pub tie_word_embeddings: bool, 20 | } 21 | 22 | #[inline(always)] 23 | const fn default_rms_norm_eps() -> f32 { 24 | 1e-5 25 | } 26 | 27 | #[inline(always)] 28 | const fn default_rope_theta() -> f32 { 29 | 1e4 30 | } 31 | 32 | #[inline(always)] 33 | const fn default_tie_word_embeddings() -> bool { 34 | false 35 | } 36 | -------------------------------------------------------------------------------- /models/story/tokenizer_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "add_bos_token": true, 3 | "add_eos_token": false, 4 | "added_tokens_decoder": { 5 | "0": { 6 | "content": "", 7 | "lstrip": false, 8 | "normalized": true, 9 | "rstrip": false, 10 | "single_word": false, 11 | "special": true 12 | }, 13 | "1": { 14 | "content": "<|start_story|>", 15 | "lstrip": false, 16 | "normalized": true, 17 | "rstrip": false, 18 | "single_word": false, 19 | "special": true 20 | }, 21 | "2": { 22 | "content": "<|end_story|>", 23 | "lstrip": false, 24 | "normalized": true, 25 | "rstrip": false, 26 | "single_word": false, 27 | "special": true 28 | } 29 | }, 30 | "bos_token": "<|start_story|>", 31 | "clean_up_tokenization_spaces": false, 32 | "eos_token": "<|end_story|>", 33 | "legacy": false, 34 | "model_max_length": 1000000000000000019884624838656, 35 | "pad_token": "", 36 | "sp_model_kwargs": {}, 37 | "tokenizer_class": "LlamaTokenizer", 38 | "unk_token": "", 39 | "use_default_system_prompt": false 40 | } 41 | -------------------------------------------------------------------------------- /src/kvcache.rs: -------------------------------------------------------------------------------- 1 | use std::{usize, vec}; 2 | 3 | use crate::tensor::Tensor; 4 | pub struct KVCache { 5 | k_cache: Vec>, // (max_seq_len, n_kv_head * dqkv) x layers 6 | v_cache: Vec>, // (max_seq_len, n_kv_head * dqkv) x layers 7 | #[allow(unused)] 8 | max_seq_len: usize, 9 | dim: usize, 10 | length: usize, // length of the current sequence 11 | } 12 | 13 | impl KVCache { 14 | pub fn new(n_layers: usize, max_seq_len: usize, dim: usize, init_len: usize) -> Self { 15 | KVCache { 16 | k_cache: (0..n_layers) 17 | .map(|_| Tensor::default(&vec![max_seq_len, dim])) 18 | .collect(), 19 | v_cache: (0..n_layers) 20 | .map(|_| Tensor::default(&vec![max_seq_len, dim])) 21 | .collect(), 22 | max_seq_len: max_seq_len, 23 | dim: dim, 24 | length: init_len, 25 | } 26 | } 27 | 28 | pub fn k_cache(&mut self, layer: usize, start: usize) -> Tensor { 29 | self.k_cache[layer].slice(start * self.dim, &vec![self.length - start, self.dim]) 30 | } 31 | 32 | pub fn v_cache(&mut self, layer: usize, start: usize) -> Tensor { 33 | self.v_cache[layer].slice(start * self.dim, &vec![self.length - start, self.dim]) 34 | } 35 | 36 | pub fn increment(&mut self, seq_len: usize){ 37 | self.length += seq_len; 38 | } 39 | 40 | pub fn len(&self) -> usize { 41 | self.length 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/params.rs: -------------------------------------------------------------------------------- 1 | use crate::config::LlamaConfigJson; 2 | use crate::tensor::Tensor; 3 | use safetensors::SafeTensors; 4 | pub struct LLamaParams { 5 | // token_id to embedding lookup table 6 | pub embedding_table: Tensor, // (vocab_size, dim) 7 | // decoder layer 8 | pub rms_att_w: Vec>, // (hidden_size, ) x layers 9 | pub wq: Vec>, // (n_heads * head_size, hidden_size) x layers 10 | pub wk: Vec>, // (n_kv_heads * head_size, hidden_size) x layers 11 | pub wv: Vec>, // (n_kv_heads * head_size, hidden_size) x layers 12 | pub wo: Vec>, // (hidden_size, n_heads * head_size) x layers 13 | // ffn layer 14 | pub rms_ffn_w: Vec>, // (hidden_size, ) x layers 15 | pub w_up: Vec>, // (intermediate_size, hidden_size) x layers 16 | pub w_gate: Vec>, // (intermediate_size, hidden_size) x layers 17 | pub w_down: Vec>, // (hidden_size, intermediate_size) x layers 18 | // output 19 | pub rms_out_w: Tensor, // (hidden_size, ) 20 | pub lm_head: Tensor, // (vocab_size, dim) 21 | } 22 | 23 | impl LLamaParams { 24 | pub fn from_safetensors(safetensor: &SafeTensors, config: &LlamaConfigJson) -> Self { 25 | todo!("实现从safetensors文件的模型参数加载"); 26 | // let get_tensor: impl Fn(&str) -> Tensor = |name: &str| { 27 | // ... 28 | // }; 29 | 30 | // LLamaParams { 31 | // embedding_table: get_tensor(...), 32 | // ... 33 | // } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/tensor.rs: -------------------------------------------------------------------------------- 1 | use std::{slice, sync::Arc, vec}; 2 | pub struct Tensor { 3 | data: Arc>, 4 | shape: Vec, 5 | offset: usize, 6 | length: usize, 7 | } 8 | 9 | impl Tensor { 10 | pub fn new(data: Vec, shape: &Vec) -> Self { 11 | let length = data.len(); 12 | Tensor { 13 | data: Arc::new(data.into_boxed_slice().try_into().unwrap()), 14 | shape: shape.clone(), 15 | offset: 0, 16 | length: length, 17 | } 18 | } 19 | 20 | pub fn default(shape: &Vec) -> Self { 21 | let length = shape.iter().product(); 22 | let data = vec![T::default(); length]; 23 | Self::new(data, shape) 24 | } 25 | 26 | pub fn data(&self) -> &[T] { 27 | &self.data[self.offset..][..self.length] 28 | } 29 | 30 | pub unsafe fn data_mut(&mut self) -> &mut [T] { 31 | let ptr = self.data.as_ptr().add(self.offset) as *mut T; 32 | slice::from_raw_parts_mut(ptr, self.length) 33 | } 34 | 35 | pub fn shape(&self) -> &Vec { 36 | &self.shape 37 | } 38 | 39 | pub fn size(&self) -> usize { 40 | self.length 41 | } 42 | 43 | // Reinterpret the tensor as a new shape while preserving total size. 44 | pub fn reshape(&mut self, new_shape: &Vec) -> &mut Self { 45 | let new_length: usize = new_shape.iter().product(); 46 | if new_length != self.length { 47 | let old_shape = self.shape.clone(); 48 | panic!("New shape {new_shape:?} does not match tensor of {old_shape:?}"); 49 | } 50 | self.shape = new_shape.clone(); 51 | self 52 | } 53 | 54 | pub fn slice(&self, start: usize, shape: &Vec) -> Self { 55 | let new_length: usize = shape.iter().product(); 56 | assert!(self.offset + start + new_length <= self.length); 57 | Tensor { 58 | data: self.data.clone(), 59 | shape: shape.clone(), 60 | offset: self.offset + start, 61 | length: new_length, 62 | } 63 | } 64 | 65 | 66 | } 67 | 68 | // Some helper functions for testing and debugging 69 | impl Tensor { 70 | #[allow(unused)] 71 | pub fn close_to(&self, other: &Self, rel: f32) -> bool { 72 | if self.shape() != other.shape() { 73 | return false; 74 | } 75 | let a = self.data(); 76 | let b = other.data(); 77 | 78 | return a.iter().zip(b).all(|(x, y)| float_eq(x, y, rel)); 79 | } 80 | #[allow(unused)] 81 | pub fn print(&self){ 82 | println!("shpae: {:?}, offset: {}, length: {}", self.shape, self.offset, self.length); 83 | let dim = self.shape()[self.shape().len() - 1]; 84 | let batch = self.length / dim; 85 | for i in 0..batch { 86 | let start = i * dim; 87 | println!("{:?}", &self.data()[start..][..dim]); 88 | } 89 | } 90 | } 91 | 92 | #[inline] 93 | pub fn float_eq(x: &f32, y: &f32, rel: f32) -> bool { 94 | (x - y).abs() <= rel * (x.abs() + y.abs()) / 2.0 95 | } 96 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 简单大模型推理系统 2 | 3 | 欢迎各位同学。本课程中,各位将用Rust语言分阶段实现一个简单的大模型推理程序。 4 | 5 | 本课程分为两个阶段:作业阶段,各位将实现大模型的几个关键算子,Feed-Forward神经网络,以及大模型的参数加载;项目阶段,各位将实现大模型最为核心的Self-Attention结构,完成大模型的文本生成功能。之后,可以选择继续实现AI对话功能,搭建一个小型的聊天机器人服务。 6 | 7 | - 本项目支持Llama、Mistral及其同结构的Transformer模型,所使用的数据类型为FP32,使用CPU进行推理。当然,欢迎各位同学在此基础上进行拓展。 8 | - 本项目使用safetensors模型格式,初始代码只支持单个文件的模型。 9 | - 本项目自带两个微型的语言模型,分别用于文本生成和AI对话(模型来自于Hugginface上的raincandy-u/TinyStories-656K和Felladrin/Minueza-32M-UltraChat)。对话模型比较大,需要到github页面的release里下载。 10 | 11 | ## 一、作业阶段 12 | 13 | ### 作业说明 14 | 15 | - 你的代码需要通过全部已有的测试才能晋级下一阶段(项目包含github on-push自动检测)。 16 | - 请在指定文件中和位置添加你的代码,不要修改其他文件和函数、文件名称和项目结构。作业阶段不需要额外的第三方依赖。 17 | - 请不要修改已有的测试代码。开发过程中如果有需要,你可以添加自己的测例。 18 | - 调试代码时,你可以打印张量的数据,你也可以使用pytorch中的函数辅助调试。 19 | 20 | ### 1. 算子:SiLU函数(10分) 21 | 22 | 请在`src/operators.rs`中实现SwiGLU算子,其公式为: 23 | 24 | $$ 25 | y=silu(x) × y 26 | $$ 27 | 28 | 其中 29 | 30 | $$ 31 | silu(x) = sigmoid(x) × x 32 | $$ 33 | 34 | $$ 35 | sigmoid(x) = \frac{1}{1 + e^{-x}} 36 | $$ 37 | 38 | 注意: 39 | 40 | - $`y`$ 既是输入,也存储最终输出。 41 | 42 | - 该算子是element-wise操作而非向量点乘,即单次运算只涉及输入和输出张量中对应的元素。 43 | 44 | - 你可以默认输入输出长度相同,不用考虑广播的情况。 45 | 46 | - 用`src/operators.rs`中的测例检验你的实现是否正确。 47 | 48 | ### 2. 算子:RMS Normalization(20分) 49 | 50 | 请在`src/operators.rs`中实现RMS Normalization,其公式为: 51 | 52 | $$ 53 | y_i=\frac{w×x_i}{\sqrt{ \frac{1}{n} \sum_{j} x_{ij}^2 +\epsilon}} 54 | $$ 55 | 56 | 注意: 57 | 58 | - 你可以只考虑对最后一维进行计算的情况。即张量 $X(...,n)$ 和 $Y(...,n)$ 都是由若干个长度为 $n$ 的向量 $x_i, y_i$ 组成的,每次求和都在向量内进行。参数 $`w`$ 是个一维向量,与各个向量长度相同,且进行element-wise乘法。 59 | 60 | - 用`src/operators.rs`中的测例检验你的实现是否正确。 61 | 62 | ### 3. 算子:矩阵乘(30分) 63 | 64 | 想必前两个算子的实现中你已经充分热身,那么重量级的来了。请在`src/operators.rs`中实现矩阵乘(Transpose B)算子,其公式为: 65 | 66 | $$ 67 | C=\alpha AB^T + \beta C 68 | $$ 69 | 70 | 你有充足的理由质疑为什么这个矩阵乘算子要长成这个样子,以及为什么不用线代课上学的 $C=AB$ 这样更简洁的形式。 71 | 72 | 首先,我们为什么要对B矩阵进行转置?这其实涉及到机器学习中线性(linear)层的定义习惯,$`y = xW^T + b`$ 。矩阵乘算子中的 $`B`$ 矩阵常常是权重矩阵,它的每一行是一个与输入$`x`$中每一行向量等长的权重向量,而行的数量则对应了特征数。我们使用的模型的参数,也是按照这个方法存储的。 73 | 74 | 其次,为什么要加 $`C`$ 矩阵?大家如果查阅BLAS中矩阵乘的标准定义就会发现它也有这一项操作,而我们这里其实实现的就是BLAS矩阵乘的一个简化版本。将矩阵乘结果加到原本的矩阵上在实际中是应用很广泛的。比如线性层的bias,尽管这次我们实现的Llama模型并没有使用bias。之后实现全连接网络时,你就会发现有了这一项,我们可以和矩阵乘一起实现残差连接(residual connection)的功能。如果你只想计算 $`C=AB^T`$ 那么你可以在传参时将 $`\beta`$ 参数设置为0,将 $`\alpha`$ 参数设置为1。 75 | 76 | 你可以默认输入输出都是二维矩阵,即 $`A`$ 形状为 $`m×k`$,$`B`$ 形状为 $`n×k`$,$`C`$ 形状为 $`m×n`$,可以不用考虑广播的情况。到了项目部分,你有可能需要(非必须)实现支持广播的矩阵乘,比如$`(b, h, m, k) · (b, 1, k, n)`$ 这种情况,你可以去pytorch官方文档看到关于broadcast的规则。 77 | 78 | 你可以用`src/operators.rs`中的测例检验你的实现是否正确。 79 | 80 | ### 4. 模型结构:Feed-Forward神经网络(20分) 81 | 82 | 请在`src/models.rs`中实现Feed-Forward神经网络(mlp函数),计算过程如下: 83 | 84 | ``` python 85 | hidden = rms_norm(residual) 86 | gate = hidden @ gate_weight.T 87 | up = hidden @ up_weight.T 88 | act = gate * sigmoid(gate) * up ## SwiGLU 89 | output = act @ down_weight.T 90 | residual = output + residual 91 | ``` 92 | 93 | 如果你正确地实现了之前地几个算子,那么这个函数的实现应该是相当简单的。需要注意的是,上一层的输出存储于residual这个临时张量中,这就是用到了我们之前提到的残差连接的概念,最终我们实现的神经网络的输出也要加上前一层的residual并存储于residual中,以便于下一层的计算。hidden_states则用于存储过程中的计算结果。你可以用`src/model.rs`中的测例检验你的实现是否正确。 94 | 95 | ### 5. Llama模型参数加载(20分) 96 | 97 | 请结合课上所讲的模型结构,根据代码种的定义在`src/params.rs`以及`src/model.rs`中补全大模型参数加载代码。项目已经为你做好了safetensors以及json文件的读取功能,你需要将参数原始数据以代码中的形式存于正确的位置,并赋予模型对象正确的config属性。safetensors里带有各张量的名称,应该足够你判断出张量代表的是哪个参数。 98 | 99 | 以下是大模型config中一些比较重要的属性的含义: 100 | 101 | ```python 102 | { 103 | "bos_token_id": 1, # 起始符token id 104 | "eos_token_id": 2, # 结束符token id 105 | "hidden_size": 128, # 隐藏层大小,即各层输出的最后一维 106 | "intermediate_size": 384, # Feed-Forward神经网络的中间层大小 107 | "max_position_embeddings": 512, # 最大序列长度 108 | "num_attention_heads": 8, # Self-Attention的Q头数 109 | "num_hidden_layers": 2, # 隐藏层数 110 | "num_key_value_heads": 4, # Self-Attention的K和V头数 111 | "rms_norm_eps": 1e-6, # RMS Normalization的epsilon参数 112 | "rope_theta": 10000.0, # RoPE的theta参数 113 | "tie_word_embeddings": true, # 起始和结束embedding参数矩阵是否共享同一份数据 114 | "torch_dtype": "float32", # 模型数据类型 115 | "vocab_size": 2048 # 词表大小 116 | } 117 | ``` 118 | 119 | 注意: 120 | 121 | - safetensors里存储的是原始数据,你需要以FP32的形式读取出来,创建出项目所使用的张量。 122 | - safetensors包含张量的形状,你无需对原始张量做任何变形。 123 | - 当"tie_word_embeddings"属性被打开时,模型最开始以及最后的embedding矩阵数据相同,safetensors会只存储一份数据,我们测试用的story模型就是这样。作业阶段你可以只关心story模型,但是后续项目中你需要处理两个矩阵不同的情况。 124 | - 你可以用`src/model.rs`中的测例检验你的实现是否正确。 125 | 126 | ## 二、项目阶段 127 | 128 | ### 1. 模型结构:Self-Attention 129 | 130 | 恭喜你,来到了本项目最为核心的部分。在开始写代码前,建议你对着课上讲的大模型结构图把每一次计算所涉及的张量形状都推导一遍,尤其是对于“多头”的理解。项目已经帮你实现了kvcache的部分和RoPE等一些算子,写这些代码其实对于大模型的学习很有帮助,但是为了不让项目过于新手不友好而省略了。 131 | 132 | 在输入经过三个矩阵乘后,我们分别得到了Q、K、V三个张量,其中Q的形状为 (seq_len, q_head×dim) ,而K、V在连接完kvcache后的形状为 (total_seq_len, k_head×dim),其中seq_len是输入序列的长度,可以大于1,total_seq_len是输入序列和kvcache的总长度 。你应该还记得课上的内容,在Q和K进行矩阵乘后,我们希望对于seq_len中的每个token每个独立的“头”都得到一个 (seq_len, total_seq_len) 的权重矩阵。这里就出现了两个问题: 133 | 134 | 第一,Q的头数和KV的头数并不一定相等,而是满足倍数关系,一般Q头数是KV头数的整数倍;假如Q的头数是32而KV头数是8,那么每4个连续的Q头用一个KV头对应。 135 | 136 | 第二,我们需要将 (seq_len, dim) 和 (dim, total_seq_len) 的两个矩阵做矩阵乘才能得到我们想要的形状,而现在的QK都不满足这个条件;你有几种不同的选择处理这个情况,一是对矩阵进行reshape和转置(意味着拷贝),再用一个支持广播(因为你需要对“头”进行正确对应)的矩阵乘进行计算,二是将这些矩阵视为多个向量,并按照正确的对应关系手动进行索引和向量乘法,这里我推荐使用更容易理解的后一种方法。 137 | 138 | 同样的,在对权重矩阵进行完softmax后和V进行矩阵乘时也会遇到这个情况。 139 | 140 | 对于每个头,完整的Self-Attention层的计算过程如下; 141 | 142 | ``` python 143 | x = rms_norm(residual) 144 | Q = RoPE(x @ Q_weight.T) 145 | K = RoPE(x @ K_weight.T) 146 | V = x @ V_weight.T 147 | K = cat(K_cache, K) 148 | V = cat(V_cache, V) 149 | ### 以下是你需要实现的部分 150 | score = Q @ K.T / sqrt(dim) 151 | attn = softmax(score) 152 | attn_V = attn @ V 153 | out = attn_V @ O_weight.T 154 | residual = out + residual 155 | ``` 156 | 157 | Self-Attention的调试是很困难的。这里推荐大家使用pytorch来辅助调试。各位可以用transformers库(使用llama模型代码)来加载模型并运行,逐层检查中间张量结果。 158 | 159 | ### 2. 功能:文本生成 160 | 161 | 请在`src/model.rs`中补充forward函数的空白部分,实现generate函数。注意在foward函数的准备阶段,我们定义了几个计算用的临时张量,这是为了在多层计算中不重复分配内存,这些临时张量会作为算子函数调用的参数,你可以根据自己的需要更改这一部分(你其实可以用比这更小的空间)。 162 | 163 | 文本生成所需的采样的算子已为你写好。你需要初始化一个会被复用的kvcache,并写一个多轮推理的循环,每一轮的输出作为下一轮的输入。你需要根据用户传的最大生成token数以及是否出现结束符来判断是否停止推理,并返回完整推理结果。 164 | 165 | 所使用的模型在`models/story`中。`src/main.rs`已经为你写好了tokenizer的编码和解码,代码完成后,可以直接执行main函数。 166 | 167 | ### 3. (可选)功能:AI对话 168 | 169 | 仿照文本生成的功能,写一个实现AI对话的chat函数,之后你可以搭建一个支持用户输入的命令行应用。你需要在多轮对话中,保存和管理用户的kvcache。 170 | 171 | 你可以使用`models/chat`中的对话模型。其对话模板如下: 172 | 173 | ``` text 174 | "{% for message in messages %}{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\n' }}{% endif %}" 175 | ``` 176 | 177 | 这种模板语言叫做Jinja2,在本项目中你可以不用实现任意模板的render功能,直接在代码中内置这个模板。你可以忽略system角色功能。下面是一个首轮输入的例子: 178 | 179 | ``` text 180 | <|im_start|>system 181 | {system_message}<|im_end|> 182 | <|im_start|>user 183 | {user_message}<|im_end|> 184 | <|im_start|>assistant 185 | ``` 186 | 187 | 后续每轮输入也都应该使用该模板。如果你忘记了如何使用模板生成正确的输入,请回顾课堂上讲到的内容,提示:我们的模型的基础功能是故事续写。 188 | 189 | 如果你完成了项目,请向导师展示你的成果吧!其实这个项目还有很多可以拓展的地方,比如其他数据类型的支持、多会话的支持、GPU加速等等,欢迎你继续探索。 190 | -------------------------------------------------------------------------------- /src/operators.rs: -------------------------------------------------------------------------------- 1 | use crate::tensor::Tensor; 2 | 3 | // get (row) vectors from a 2D table given a list of indices 4 | pub fn gather(y: &mut Tensor, indices: &Tensor, table: &Tensor) { 5 | let length = indices.size(); 6 | let table_shape = table.shape(); 7 | assert!(table_shape.len() == 2); 8 | let dim = table_shape[1]; 9 | assert!(y.size() == length * dim); 10 | for i in 0..length { 11 | let src = &table.data()[indices.data()[i] as usize * dim..][..dim]; 12 | let dst = &mut unsafe { y.data_mut() }[i * dim..][..dim]; 13 | dst.copy_from_slice(src); 14 | } 15 | } 16 | 17 | // RoPE: Rotary Positional Embedding 18 | pub fn rope(y: &mut Tensor, start_pos: usize, theta: f32) { 19 | let shape = y.shape(); 20 | assert!(shape.len() == 3); 21 | let seq_len = shape[0]; 22 | let n_heads = shape[1]; 23 | let d = shape[2]; 24 | let data = unsafe { y.data_mut() }; 25 | for tok in 0..seq_len { 26 | let pos = start_pos + tok; 27 | for head in 0..n_heads { 28 | for i in 0..d / 2 { 29 | let a = data[tok * n_heads * d + head * d + i]; 30 | let b = data[tok * n_heads * d + head * d + i + d / 2]; 31 | let freq = pos as f32 / theta.powf((i * 2) as f32 / d as f32); 32 | let (sin, cos) = freq.sin_cos(); 33 | data[tok * n_heads * d + head * d + i] = a * cos - b * sin; 34 | data[tok * n_heads * d + head * d + i + d / 2] = b * cos + a * sin; 35 | } 36 | } 37 | } 38 | } 39 | 40 | // softmax(x) = exp(x - max) / sum(exp(x - max)) 41 | // y = softmax(mask(x)) 42 | pub fn masked_softmax(y: &mut Tensor) { 43 | let ndim = y.shape().len(); 44 | assert!(ndim >= 2); 45 | let seq_len = y.shape()[ndim - 2]; 46 | let total_seq_len = y.shape()[ndim - 1]; 47 | let batch = y.size() / (seq_len * total_seq_len); 48 | let data = unsafe { y.data_mut() }; 49 | for b in 0..batch { 50 | let base = b * seq_len * total_seq_len; 51 | for i in 0..seq_len { 52 | let offset = base + i * total_seq_len; 53 | let boundary = total_seq_len - seq_len + i + 1; 54 | 55 | let max = data[offset..offset + boundary] 56 | .iter() 57 | .fold(data[offset], |a, b| a.max(*b)); 58 | 59 | let sum = (0..boundary) 60 | .map(|j| { 61 | let e = (data[offset + j] - max).exp(); 62 | data[offset + j] = e; 63 | e 64 | }) 65 | .sum::(); 66 | 67 | (0..boundary).for_each(|j| data[offset + j] /= sum); 68 | (boundary..total_seq_len).for_each(|j| data[offset + j] = 0.0); 69 | } 70 | } 71 | } 72 | 73 | pub fn rms_norm(y: &mut Tensor, x: &Tensor, w: &Tensor, epsilon: f32) { 74 | todo!("实现 rms_norm,计算前做一些必要的检查会帮助你后续调试") 75 | } 76 | 77 | // y = silu(x) * y 78 | // hint: this is an element-wise operation 79 | pub fn swiglu(y: &mut Tensor, x: &Tensor) { 80 | // let len = y.size(); 81 | // assert!(len == x.size()); 82 | 83 | // let _y = unsafe { y.data_mut() }; 84 | // let _x = x.data(); 85 | 86 | todo!("实现 silu,这里给了一些前期准备工作的提示,你可以参考") 87 | } 88 | 89 | // C = beta * C + alpha * A @ B^T 90 | // hint: You don't need to do an explicit transpose of B 91 | pub fn matmul_transb(c: &mut Tensor, beta: f32, a: &Tensor, b: &Tensor, alpha: f32) { 92 | todo!("实现 matmul_transb,计算前做一些必要的检查会帮助你后续调试"); 93 | } 94 | 95 | // Dot product of two tensors (treated as vectors) 96 | #[allow(unused)] 97 | pub fn dot(x: &Tensor, y: &Tensor) -> f32 { 98 | let len = x.size(); 99 | assert!(len == y.size()); 100 | let x_ = x.data(); 101 | let y_ = y.data(); 102 | let mut sum = 0.0; 103 | for i in 0..len { 104 | sum += x_[i] * y_[i]; 105 | } 106 | sum 107 | } 108 | 109 | // Sample a index from a tensor (treated as a probability vector) 110 | pub fn random_sample(x: &Tensor, top_p: f32, top_k: u32, temperature: f32) -> u32 { 111 | assert!(x.shape()[x.shape().len() - 1] == x.size()); 112 | if temperature <= 0. || top_k < 2 || top_p <= 0. { 113 | return x 114 | .data() 115 | .iter() 116 | .enumerate() 117 | .max_by(|(_, a), (_, b)| a.partial_cmp(b).unwrap()) 118 | .unwrap() 119 | .0 as _; 120 | } 121 | 122 | #[derive(Clone, Copy, PartialEq, Debug)] 123 | struct Probability { 124 | val: f32, 125 | tok: u32, 126 | } 127 | impl Eq for Probability {} 128 | impl PartialOrd for Probability { 129 | #[inline] 130 | fn partial_cmp(&self, other: &Self) -> Option { 131 | Some(self.cmp(other)) 132 | } 133 | } 134 | impl Ord for Probability { 135 | #[inline] 136 | fn cmp(&self, other: &Self) -> std::cmp::Ordering { 137 | match self.val.total_cmp(&other.val) { 138 | std::cmp::Ordering::Equal => self.tok.cmp(&other.tok), 139 | ord => ord.reverse(), 140 | } 141 | } 142 | } 143 | impl From<(usize, &f32)> for Probability { 144 | #[inline] 145 | fn from((i, p): (usize, &f32)) -> Self { 146 | Self { 147 | val: p.clone(), 148 | tok: i as _, 149 | } 150 | } 151 | } 152 | 153 | // sort 154 | let mut logits = x 155 | .data() 156 | .iter() 157 | .enumerate() 158 | .map(Probability::from) 159 | .collect::>(); 160 | logits.sort_unstable(); 161 | let max = core::mem::replace(&mut logits[0].val, 1.); 162 | // softmax & sum 163 | for i in 1..logits.len() { 164 | logits[i].val = logits[i - 1].val + ((logits[i].val - max) / temperature).exp(); 165 | } 166 | // topk & topp & random 167 | let pk = logits[(top_k as usize).min(logits.len()) - 1].val; 168 | let pp = logits[logits.len() - 1].val * top_p; 169 | let plimit = rand::random::() * f32::min(pk, pp); 170 | // sample 171 | logits.iter().find(|p| p.val >= plimit).unwrap().tok 172 | } 173 | 174 | // Your implementation should at least pass the following tests: 175 | #[test] 176 | fn test_silu() { 177 | let mut y = Tensor::::new(vec![2., 3., 4.], &vec![1, 3]); 178 | let x = Tensor::::new(vec![1., 2., 3.], &vec![1, 3]); 179 | swiglu(&mut y, &x); 180 | assert!(y.close_to( 181 | &Tensor::::new(vec![1.4621172, 5.2847824, 11.43089], &vec![1, 3]), 182 | 1e-3 183 | )); 184 | } 185 | 186 | #[test] 187 | fn test_rms_norm() { 188 | let mut y = Tensor::::new(vec![1., 2., 3., 4.], &vec![2, 2]); 189 | let x = Tensor::::new(vec![1., 2., 3., 4.], &vec![2, 2]); 190 | let w = Tensor::::new(vec![1., 2.], &vec![2]); 191 | rms_norm(&mut y, &x, &w, 1e-6); 192 | assert!(y.close_to( 193 | &Tensor::::new( 194 | vec![0.6324554, 2.5298216, 0.8485281, 2.2627416], 195 | &vec![2, 2] 196 | ), 197 | 1e-3 198 | )); 199 | } 200 | 201 | #[test] 202 | fn test_matmul_transb() { 203 | let mut c = Tensor::::new(vec![1., 2., 3., 4.], &vec![2, 2]); 204 | let a = Tensor::::new(vec![1., 2., 3., 4., 5., 6.], &vec![2, 3]); 205 | let b = Tensor::::new(vec![1., 2., 3., 4., 5., 6.], &vec![2, 3]); 206 | matmul_transb(&mut c, 1., &a, &b, 1.); 207 | assert!(c.close_to( 208 | &Tensor::::new(vec![15., 34., 35., 81.], &vec![2, 2]), 209 | 1e-3 210 | )); 211 | } 212 | -------------------------------------------------------------------------------- /src/model.rs: -------------------------------------------------------------------------------- 1 | use std::fs::File; 2 | use std::vec; 3 | 4 | use crate::config::LlamaConfigJson; 5 | use crate::kvcache::KVCache; 6 | use crate::operators as OP; 7 | use crate::params::LLamaParams; 8 | use crate::tensor::Tensor; 9 | use safetensors::SafeTensors; 10 | use std::path::Path; 11 | pub struct Llama { 12 | vocab: usize, // vocab size 13 | n_layers: usize, // number of layers 14 | n_q_h: usize, // number of heads for q 15 | n_kv_h: usize, // number of heads for k and v 16 | d: usize, // dimension of hidden states 17 | dqkv: usize, // length of a single q, k, or v vector 18 | di: usize, // dimension of intermediate states 19 | eps: f32, // epsilon for RMS normalization 20 | rope_theta: f32, // rope theta for rope initialization 21 | max_seq_len: usize, // maximum sequence length 22 | params: LLamaParams, // trained weights of this model 23 | bos_token_id: u32, // start token id 24 | eos_token_id: u32, // end token id 25 | } 26 | 27 | impl Llama { 28 | pub fn from_safetensors(model_dir: impl AsRef) -> Self { 29 | let config = File::open(model_dir.as_ref().join("config.json")).unwrap(); 30 | let config: LlamaConfigJson = serde_json::from_reader(config).unwrap(); 31 | let model_file = std::fs::read(model_dir.as_ref().join("model.safetensors")).unwrap(); 32 | let safetensor = SafeTensors::deserialize(&model_file).unwrap(); 33 | let params = LLamaParams::from_safetensors(&safetensor, &config); 34 | 35 | Self { 36 | vocab: config.vocab_size, 37 | n_layers: config.num_hidden_layers, 38 | n_q_h: config.num_attention_heads, 39 | n_kv_h: config.num_key_value_heads, 40 | d: config.hidden_size, 41 | dqkv: config.hidden_size / config.num_attention_heads, 42 | di: config.intermediate_size, 43 | eps: config.rms_norm_eps, 44 | rope_theta: config.rope_theta, 45 | max_seq_len: config.max_position_embeddings, 46 | params: params, 47 | bos_token_id: config.bos_token_id, 48 | eos_token_id: config.eos_token_id, 49 | } 50 | } 51 | 52 | pub fn new_cache(&self) -> KVCache { 53 | KVCache::new(self.n_layers, self.max_seq_len, self.n_kv_h * self.dqkv, 0) 54 | } 55 | 56 | pub fn forward(&self, input: &Tensor, cache: &mut KVCache) -> Tensor { 57 | let seq_len = input.size(); 58 | let past_seq_len = cache.len(); 59 | cache.increment(seq_len); 60 | let total_seq_len = past_seq_len + seq_len; 61 | let n_groups = self.n_q_h / self.n_kv_h; 62 | 63 | // Some pre-allocated buffers that will be reused 64 | let mut residual = Tensor::::default(&vec![seq_len, self.d]); 65 | let mut hidden_states = Tensor::::default(&vec![seq_len, self.d]); 66 | let mut q_buf = Tensor::::default(&vec![seq_len, self.n_q_h * self.dqkv]); 67 | let mut att_scores = 68 | Tensor::::default(&vec![self.n_kv_h, n_groups, seq_len, total_seq_len]); 69 | let mut gate_buf = Tensor::::default(&vec![seq_len, self.di]); 70 | let mut up_buf = Tensor::::default(&vec![seq_len, self.di]); 71 | 72 | // Computation Starts Here 73 | // Embedding lookup 74 | OP::gather(&mut residual, input, &self.params.embedding_table); 75 | 76 | for layer in 0..self.n_layers { 77 | OP::rms_norm( 78 | &mut hidden_states, 79 | &residual, 80 | &self.params.rms_att_w[layer], 81 | self.eps, 82 | ); 83 | 84 | let q = (&mut q_buf).reshape(&vec![seq_len, self.n_q_h * self.dqkv]); // (seq, n_h * dqkv) 85 | let k = &mut cache.k_cache(layer, past_seq_len); // (seq, n_kv_h * dqkv) 86 | let v = &mut cache.v_cache(layer, past_seq_len); // (seq, n_kv_h * dqkv) 87 | OP::matmul_transb(q, 0., &hidden_states, &self.params.wq[layer], 1.0); 88 | OP::matmul_transb(k, 0., &hidden_states, &self.params.wk[layer], 1.0); 89 | OP::matmul_transb(v, 0., &hidden_states, &self.params.wv[layer], 1.0); 90 | OP::rope( 91 | q.reshape(&vec![seq_len, self.n_q_h, self.dqkv]), 92 | past_seq_len, 93 | self.rope_theta, 94 | ); 95 | OP::rope( 96 | k.reshape(&vec![seq_len, self.n_kv_h, self.dqkv]), 97 | past_seq_len, 98 | self.rope_theta, 99 | ); 100 | 101 | let full_k = &mut cache.k_cache(layer, 0); // (total_seq, n_kv_h * dqkv) 102 | let full_v = &mut cache.v_cache(layer, 0); // (total_seq, n_kv_h * dqkv) 103 | 104 | todo!("self_attention(...)"); 105 | todo!("down_proj matmul and add residual"); 106 | 107 | todo!("mlp(...)"); 108 | } 109 | 110 | // No matter what seq_len, the output is always a 1D vector of length vocab, 111 | // which contains the probabilities for the next token. 112 | let mut logits = Tensor::::default(&vec![1, self.vocab]); 113 | let mut hidden_states = hidden_states.slice((seq_len - 1) * self.d, &vec![1, self.d]); 114 | let residual = residual.slice((seq_len - 1) * self.d, &vec![self.d]); 115 | 116 | OP::rms_norm( 117 | &mut hidden_states, 118 | &residual, 119 | &self.params.rms_out_w, 120 | self.eps, 121 | ); 122 | 123 | OP::matmul_transb(&mut logits, 0., &hidden_states, &self.params.lm_head, 1.0); 124 | 125 | logits 126 | } 127 | 128 | pub fn generate( 129 | &self, 130 | token_ids: &[u32], 131 | max_len: usize, 132 | top_p: f32, 133 | top_k: u32, 134 | temperature: f32, 135 | ) -> Vec{ 136 | let mut result = Vec::::new(); 137 | 138 | todo!("实现文本生成"); 139 | 140 | result 141 | } 142 | } 143 | 144 | fn self_attention( 145 | hidden_states: &mut Tensor, // (seq, n_kv_h * n_groups * dqkv) 146 | att_scores: &mut Tensor, // (n_kv_h, n_groups, seq, total_seq) 147 | q: &Tensor, // (seq, n_kv_h * n_groups * dqkv) 148 | k: &Tensor, // (total_seq, n_kv_h * dqkv) 149 | v: &Tensor, // (total_seq, n_kv_h * dqkv) 150 | n_kv_h: usize, 151 | n_groups: usize, 152 | seq_len: usize, 153 | total_seq_len: usize, 154 | dqkv: usize, 155 | ) { 156 | todo!("Implement self_attention"); 157 | } 158 | 159 | fn mlp( 160 | residual: &mut Tensor, 161 | hidden_states: &mut Tensor, 162 | gate: &mut Tensor, 163 | up: &mut Tensor, 164 | w_up: &Tensor, 165 | w_down: &Tensor, 166 | w_gate: &Tensor, 167 | rms_w: &Tensor, 168 | eps: f32, 169 | ) { 170 | todo!("Implement mlp"); 171 | } 172 | 173 | #[test] 174 | pub fn test_mlp() { 175 | let seq_len = 4; 176 | let d = 2; 177 | let di = 3; 178 | let mut residual = Tensor::::new(vec![1., 1., 1., 1., 1., 1., 1., 1.], &vec![seq_len, d]); 179 | let mut hidden_states = Tensor::::default(&vec![seq_len, d]); 180 | let mut gate_buf = Tensor::::default(&vec![seq_len, di]); 181 | let mut up_buf = Tensor::::default(&vec![seq_len, di]); 182 | let w_up = Tensor::::new(vec![0.1, 0.2, 0.3, 0.4, 0.5, 0.6], &vec![di, d]); 183 | let w_down = Tensor::::new(vec![0.1, 0.2, 0.3, 0.4, 0.5, 0.6], &vec![d, di]); 184 | let w_gate = Tensor::::new(vec![0.1, 0.2, 0.3, 0.4, 0.5, 0.6], &vec![di, d]); 185 | let rms_w = Tensor::::new(vec![1., 1.], &vec![d]); 186 | let eps = 1e-6; 187 | mlp( 188 | &mut residual, 189 | &mut hidden_states, 190 | &mut gate_buf, 191 | &mut up_buf, 192 | &w_up, 193 | &w_down, 194 | &w_gate, 195 | &rms_w, 196 | eps, 197 | ); 198 | 199 | assert!(residual.close_to( 200 | &Tensor::::new( 201 | vec![ 202 | 1.3429964, 1.7290739, 1.3429964, 1.7290739, 1.3429964, 1.7290739, 1.3429964, 203 | 1.7290739 204 | ], 205 | &vec![seq_len, d] 206 | ), 207 | 1e-3 208 | )) 209 | } 210 | 211 | #[test] 212 | pub fn test_load_safetensors() { 213 | use std::path::PathBuf; 214 | use crate::tensor::float_eq; 215 | let project_dir = env!("CARGO_MANIFEST_DIR"); 216 | let model_dir = PathBuf::from(project_dir).join("models").join("story"); 217 | let model = Llama::from_safetensors(model_dir); 218 | assert_eq!(model.vocab, 2048); 219 | assert_eq!(model.n_layers, 2); 220 | assert_eq!(model.n_q_h, 8); 221 | assert_eq!(model.n_kv_h, 4); 222 | assert_eq!(model.d, 128); 223 | assert_eq!(model.dqkv, 16); 224 | assert_eq!(model.di, 384); 225 | 226 | assert!(float_eq(&model.params.embedding_table.data()[50], &0.14453125, 1e-6)); 227 | assert_eq!(model.params.lm_head.data()[10], model.params.embedding_table.data()[10]); 228 | assert!(float_eq(&model.params.rms_att_w[0].data()[10], &0.18652344, 1e-6)); 229 | assert!(float_eq(&model.params.rms_ffn_w[1].data()[10], &0.32421875, 1e-6)); 230 | assert!(float_eq(&model.params.rms_out_w.data()[100], &0.73046875, 1e-6)); 231 | assert!(float_eq(&model.params.w_down[0].data()[100], &-0.0625, 1e-6)); 232 | assert!(float_eq(&model.params.w_up[0].data()[100], &1.46875, 1e-6)); 233 | assert!(float_eq(&model.params.w_gate[1].data()[100], &0.296875, 1e-6)); 234 | assert!(float_eq(&model.params.wq[1].data()[100], &0.032226563, 1e-6)); 235 | assert!(float_eq(&model.params.wk[1].data()[100], &-0.21386719, 1e-6)); 236 | assert!(float_eq(&model.params.wv[0].data()[100], &0.041015625, 1e-6)); 237 | assert!(float_eq(&model.params.wo[0].data()[100], &0.01965332, 1e-6)); 238 | 239 | } 240 | -------------------------------------------------------------------------------- /models/story/tokenizer.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0", 3 | "truncation": null, 4 | "padding": null, 5 | "added_tokens": [ 6 | { 7 | "id": 0, 8 | "content": "", 9 | "single_word": false, 10 | "lstrip": false, 11 | "rstrip": false, 12 | "normalized": true, 13 | "special": true 14 | }, 15 | { 16 | "id": 1, 17 | "content": "<|start_story|>", 18 | "single_word": false, 19 | "lstrip": false, 20 | "rstrip": false, 21 | "normalized": true, 22 | "special": true 23 | }, 24 | { 25 | "id": 2, 26 | "content": "<|end_story|>", 27 | "single_word": false, 28 | "lstrip": false, 29 | "rstrip": false, 30 | "normalized": true, 31 | "special": true 32 | } 33 | ], 34 | "normalizer": { 35 | "type": "Sequence", 36 | "normalizers": [ 37 | { 38 | "type": "Prepend", 39 | "prepend": "▁" 40 | }, 41 | { 42 | "type": "Replace", 43 | "pattern": { 44 | "String": " " 45 | }, 46 | "content": "▁" 47 | } 48 | ] 49 | }, 50 | "pre_tokenizer": null, 51 | "post_processor": { 52 | "type": "TemplateProcessing", 53 | "single": [ 54 | { 55 | "SpecialToken": { 56 | "id": "<|start_story|>", 57 | "type_id": 0 58 | } 59 | }, 60 | { 61 | "Sequence": { 62 | "id": "A", 63 | "type_id": 0 64 | } 65 | } 66 | ], 67 | "pair": [ 68 | { 69 | "SpecialToken": { 70 | "id": "<|start_story|>", 71 | "type_id": 0 72 | } 73 | }, 74 | { 75 | "Sequence": { 76 | "id": "A", 77 | "type_id": 0 78 | } 79 | }, 80 | { 81 | "SpecialToken": { 82 | "id": "<|start_story|>", 83 | "type_id": 1 84 | } 85 | }, 86 | { 87 | "Sequence": { 88 | "id": "B", 89 | "type_id": 1 90 | } 91 | } 92 | ], 93 | "special_tokens": { 94 | "<|start_story|>": { 95 | "id": "<|start_story|>", 96 | "ids": [ 97 | 1 98 | ], 99 | "tokens": [ 100 | "<|start_story|>" 101 | ] 102 | } 103 | } 104 | }, 105 | "decoder": { 106 | "type": "Sequence", 107 | "decoders": [ 108 | { 109 | "type": "Replace", 110 | "pattern": { 111 | "String": "▁" 112 | }, 113 | "content": " " 114 | }, 115 | { 116 | "type": "ByteFallback" 117 | }, 118 | { 119 | "type": "Fuse" 120 | }, 121 | { 122 | "type": "Strip", 123 | "content": " ", 124 | "start": 1, 125 | "stop": 0 126 | } 127 | ] 128 | }, 129 | "model": { 130 | "type": "BPE", 131 | "dropout": null, 132 | "unk_token": "", 133 | "continuing_subword_prefix": null, 134 | "end_of_word_suffix": null, 135 | "fuse_unk": true, 136 | "byte_fallback": true, 137 | "ignore_merges": false, 138 | "vocab": { 139 | "": 0, 140 | "<|start_story|>": 1, 141 | "<|end_story|>": 2, 142 | "\n": 3, 143 | "!": 4, 144 | "\"": 5, 145 | "$": 6, 146 | "'": 7, 147 | ",": 8, 148 | "-": 9, 149 | ".": 10, 150 | "0": 11, 151 | "1": 12, 152 | "2": 13, 153 | "3": 14, 154 | "4": 15, 155 | "5": 16, 156 | "6": 17, 157 | "7": 18, 158 | "8": 19, 159 | "9": 20, 160 | ":": 21, 161 | ";": 22, 162 | "<": 23, 163 | ">": 24, 164 | "?": 25, 165 | "A": 26, 166 | "B": 27, 167 | "C": 28, 168 | "D": 29, 169 | "E": 30, 170 | "F": 31, 171 | "G": 32, 172 | "H": 33, 173 | "I": 34, 174 | "J": 35, 175 | "K": 36, 176 | "L": 37, 177 | "M": 38, 178 | "N": 39, 179 | "O": 40, 180 | "P": 41, 181 | "Q": 42, 182 | "R": 43, 183 | "S": 44, 184 | "T": 45, 185 | "U": 46, 186 | "V": 47, 187 | "W": 48, 188 | "X": 49, 189 | "Y": 50, 190 | "Z": 51, 191 | "_": 52, 192 | "a": 53, 193 | "b": 54, 194 | "c": 55, 195 | "d": 56, 196 | "e": 57, 197 | "f": 58, 198 | "g": 59, 199 | "h": 60, 200 | "i": 61, 201 | "j": 62, 202 | "k": 63, 203 | "l": 64, 204 | "m": 65, 205 | "n": 66, 206 | "o": 67, 207 | "p": 68, 208 | "q": 69, 209 | "r": 70, 210 | "s": 71, 211 | "t": 72, 212 | "u": 73, 213 | "v": 74, 214 | "w": 75, 215 | "x": 76, 216 | "y": 77, 217 | "z": 78, 218 | "|": 79, 219 | "▁": 80, 220 | "e▁": 81, 221 | "d▁": 82, 222 | "th": 83, 223 | ".▁": 84, 224 | "▁a": 85, 225 | "t▁": 86, 226 | "y▁": 87, 227 | "to": 88, 228 | "s▁": 89, 229 | "nd▁": 90, 230 | "er": 91, 231 | "ed▁": 92, 232 | "the▁": 93, 233 | ",▁": 94, 234 | "wa": 95, 235 | "in": 96, 236 | "he▁": 97, 237 | "to▁": 98, 238 | "ou": 99, 239 | "▁and▁": 100, 240 | "ar": 101, 241 | "en": 102, 242 | ".▁T": 103, 243 | "▁a▁": 104, 244 | "ha": 105, 245 | "om": 106, 246 | "sa": 107, 247 | "▁the▁": 108, 248 | "he": 109, 249 | "im": 110, 250 | "on": 111, 251 | "g▁": 112, 252 | "ll": 113, 253 | "st": 114, 254 | "was▁": 115, 255 | "an": 116, 256 | "or": 117, 257 | "ay": 118, 258 | "it": 119, 259 | "er▁": 120, 260 | "id": 121, 261 | ".\n": 122, 262 | "re": 123, 263 | "is▁": 124, 264 | "pl": 125, 265 | "ir": 126, 266 | "am": 127, 267 | "ed▁to▁": 128, 268 | "il": 129, 269 | "wi": 130, 270 | "the": 131, 271 | "ri": 132, 272 | "lo": 133, 273 | "a▁": 134, 274 | "and▁": 135, 275 | ".▁H": 136, 276 | "hey▁": 137, 277 | ".▁S": 138, 278 | "o▁": 139, 279 | ".▁He▁": 140, 280 | "▁h": 141, 281 | "no": 142, 282 | "at▁": 143, 283 | ".▁They▁": 144, 284 | "ere▁": 145, 285 | "with": 146, 286 | "On": 147, 287 | "un": 148, 288 | "ing▁": 149, 289 | "ver": 150, 290 | "pp": 151, 291 | ".▁The▁": 152, 292 | "\"▁": 153, 293 | "ck": 154, 294 | "ry": 155, 295 | "bi": 156, 296 | "art": 157, 297 | "li": 158, 298 | "ll▁": 159, 299 | ",▁\"": 160, 300 | "le": 161, 301 | "sto": 162, 302 | ".▁She▁": 163, 303 | "be": 164, 304 | "day": 165, 305 | "start": 166, 306 | "it▁": 167, 307 | "ut▁": 168, 308 | "sh": 169, 309 | "om▁": 170, 310 | "ok": 171, 311 | "w▁": 172, 312 | "you": 173, 313 | "said": 174, 314 | "ma": 175, 315 | "ing": 176, 316 | "le▁": 177, 317 | "se": 178, 318 | "bo": 179, 319 | "ld▁": 180, 320 | "happ": 181, 321 | "im▁": 182, 322 | "end": 183, 323 | "fri": 184, 324 | "do": 185, 325 | "gh": 186, 326 | "of": 187, 327 | "ba": 188, 328 | "up": 189, 329 | "ay▁": 190, 330 | "ch": 191, 331 | "ed": 192, 332 | "very▁": 193, 333 | "an▁": 194, 334 | "ne": 195, 335 | "for": 196, 336 | "was": 197, 337 | "had▁": 198, 338 | "wan": 199, 339 | "l▁": 200, 340 | "ce▁": 201, 341 | "big▁": 202, 342 | "en▁": 203, 343 | "said,▁\"": 204, 344 | "story": 205, 345 | "friend": 206, 346 | "itt": 207, 347 | "<|": 208, 348 | "_story": 209, 349 | "|>": 210, 350 | "▁<|": 211, 351 | "start_story": 212, 352 | "▁<|start_story": 213, 353 | "▁<|start_story|>": 214, 354 | "e,▁": 215, 355 | "Lil": 216, 356 | "they▁": 217, 357 | "ve▁": 218, 358 | "ro": 219, 359 | "play": 220, 360 | "not▁": 221, 361 | ".▁I": 222, 362 | "One▁": 223, 363 | "ge": 224, 364 | "ittle▁": 225, 365 | "was▁a▁": 226, 366 | "ke▁": 227, 367 | "'s▁": 228, 368 | "little▁": 229, 369 | "tim": 230, 370 | "his▁": 231, 371 | "at": 232, 372 | "es": 233, 373 | "that▁": 234, 374 | "One▁day": 235, 375 | "nam": 236, 376 | "car": 237, 377 | "in▁the▁": 238, 378 | "ould▁": 239, 379 | "id▁": 240, 380 | "named▁": 241, 381 | "she▁": 242, 382 | "want": 243, 383 | "ra": 244, 384 | "were▁": 245, 385 | "ent▁": 246, 386 | "The▁": 247, 387 | "there▁": 248, 388 | "ther": 249, 389 | "to▁the▁": 250, 390 | "her▁": 251, 391 | "ed▁and▁": 252, 392 | "so▁": 253, 393 | "go": 254, 394 | "fe": 255, 395 | "\"\n": 256, 396 | "bir": 257, 397 | "play▁": 258, 398 | "on▁a▁": 259, 399 | "wh": 260, 400 | "saw": 261, 401 | "y▁and▁": 262, 402 | ",▁and▁": 263, 403 | "hel": 264, 404 | "wanted▁to▁": 265, 405 | "you▁": 266, 406 | "se▁": 267, 407 | "ur": 268, 408 | "but▁": 269, 409 | "▁<|start_story|>On": 270, 410 | "!▁": 271, 411 | "▁<|start_story|>Once▁": 272, 412 | "went▁": 273, 413 | "help": 274, 414 | "fi": 275, 415 | "I▁": 276, 416 | "▁his▁": 277, 417 | "look": 278, 418 | "ound▁": 279, 419 | "ed▁the▁": 280, 420 | "upon▁a▁": 281, 421 | "upon▁a▁tim": 282, 422 | "▁<|start_story|>Once▁upon▁a▁tim": 283, 423 | "with▁": 284, 424 | "Tim▁": 285, 425 | "there▁was▁a▁": 286, 426 | "y▁a": 287, 427 | ".▁It▁": 288, 428 | "sk": 289, 429 | "fun": 290, 430 | "la": 291, 431 | "ta": 292, 432 | "po": 293, 433 | "Tim": 294, 434 | "ca": 295, 435 | "▁<|start_story|>Once▁upon▁a▁time,▁": 296, 436 | "ea": 297, 437 | "be▁": 298, 438 | "One▁day,▁": 299, 439 | "!\"▁": 300, 440 | "s▁and▁": 301, 441 | "som": 302, 442 | "Lily▁": 303, 443 | "toge": 304, 444 | ",▁but▁": 305, 445 | "of▁": 306, 446 | "tre": 307, 447 | "st▁": 308, 448 | "e▁and▁": 309, 449 | "k▁": 310, 450 | "▁her▁": 311, 451 | "ck▁": 312, 452 | ",▁a▁": 313, 453 | "cam": 314, 454 | "ir▁": 315, 455 | "m▁": 316, 456 | "et": 317, 457 | "was▁very▁": 318, 458 | "bird▁": 319, 459 | "my▁": 320, 460 | "co": 321, 461 | "sm": 322, 462 | "s.▁": 323, 463 | "gir": 324, 464 | "mom▁": 325, 465 | "ec": 326, 466 | "wn": 327, 467 | "saw▁a▁": 328, 468 | "ter": 329, 469 | "e.▁": 330, 470 | "fu": 331, 471 | "re▁": 332, 472 | "mom": 333, 473 | "their▁": 334, 474 | "par": 335, 475 | ".\"▁": 336, 476 | "on▁the▁": 337, 477 | "▁<|start_story|>Once▁upon▁a▁time,▁there▁was▁a▁": 338, 478 | "ga": 339, 479 | "came▁": 340, 480 | "lov": 341, 481 | "new▁": 342, 482 | "t▁the▁": 343, 483 | "But▁": 344, 484 | "ic": 345, 485 | "Ma": 346, 486 | "'t▁": 347, 487 | "did▁": 348, 488 | "Max": 349, 489 | "ch▁": 350, 490 | "played▁": 351, 491 | "for▁": 352, 492 | "together": 353, 493 | "could▁": 354, 494 | ".▁Tim▁": 355, 495 | "had▁a▁": 356, 496 | "have▁": 357, 497 | ".\"\n": 358, 498 | "um": 359, 499 | "is": 360, 500 | "y.▁": 361, 501 | "girl▁": 362, 502 | "ough": 363, 503 | "t▁to▁": 364, 504 | ".\n\"": 365, 505 | "bu": 366, 506 | "fa": 367, 507 | "es▁": 368, 508 | "can▁": 369, 509 | "ue▁": 370, 510 | "found▁": 371, 511 | "sid": 372, 512 | "mor": 373, 513 | "smil": 374, 514 | "ex": 375, 515 | "lik": 376, 516 | "looked▁": 377, 517 | "ow": 378, 518 | "in▁": 379, 519 | "Tom": 380, 520 | "did▁not▁": 381, 521 | "way": 382, 522 | "al": 383, 523 | "boy▁": 384, 524 | "happy▁": 385, 525 | "said▁": 386, 526 | "fr": 387, 527 | "Tom▁": 388, 528 | "nd": 389, 529 | "fel": 390, 530 | "on▁": 391, 531 | "out": 392, 532 | "ho": 393, 533 | "some": 394, 534 | "ther▁": 395, 535 | "would▁": 396, 536 | "hat▁": 397, 537 | "od▁": 398, 538 | "like▁": 399, 539 | "You": 400, 540 | "dog▁": 401, 541 | "▁an": 402, 542 | "thing▁": 403, 543 | ",▁the▁": 404, 544 | "happy": 405, 545 | "p▁": 406, 546 | "rea": 407, 547 | "toy": 408, 548 | "day▁": 409, 549 | "wor": 410, 550 | "cat▁": 411, 551 | "lk": 412, 552 | "Sam": 413, 553 | "r▁": 414, 554 | "sp": 415, 555 | "ball": 416, 556 | "?\"▁": 417, 557 | "with▁the▁": 418, 558 | "sma": 419, 559 | "tt": 420, 560 | "felt▁": 421, 561 | "make▁": 422, 562 | "el": 423, 563 | "scar": 424, 564 | "one▁": 425, 565 | "friends": 426, 566 | "thing": 427, 567 | "big": 428, 568 | "One▁day,▁a▁": 429, 569 | "pi": 430, 570 | "of▁the▁": 431, 571 | "ke": 432, 572 | "Wh": 433, 573 | "de▁": 434, 574 | ".▁A": 435, 575 | "loved▁to▁": 436, 576 | "ved▁": 437, 577 | "started▁to▁": 438, 578 | "mu": 439, 579 | "igh": 440, 580 | "though": 441, 581 | "dd": 442, 582 | "ent": 443, 583 | "go▁": 444, 584 | "man": 445, 585 | ".\nThe▁": 446, 586 | "in▁a▁": 447, 587 | "see▁": 448, 588 | "was▁so▁": 449, 589 | "too": 450, 590 | "little▁girl▁": 451, 591 | "me": 452, 592 | "ug": 453, 593 | "ugh": 454, 594 | "park": 455, 595 | "out▁": 456, 596 | "pa": 457, 597 | "Max▁": 458, 598 | "made▁": 459, 599 | "Mi": 460, 600 | "with▁his▁": 461, 601 | ".▁\"": 462, 602 | "liked▁to▁": 463, 603 | "arn": 464, 604 | "tri": 465, 605 | "com": 466, 606 | "find▁": 467, 607 | "o,▁": 468, 608 | "ry▁": 469, 609 | "ell": 470, 610 | "something▁": 471, 611 | "box": 472, 612 | "They▁": 473, 613 | "down": 474, 614 | "them": 475, 615 | "cat": 476, 616 | "rou": 477, 617 | "it▁was▁": 478, 618 | "fun▁": 479, 619 | "fo": 480, 620 | "want▁to▁": 481, 621 | "▁are▁": 482, 622 | "friends▁": 483, 623 | "took": 484, 624 | "gre": 485, 625 | ".\nOne▁day,▁": 486, 626 | "learn": 487, 627 | "uc": 488, 628 | "found▁a▁": 489, 629 | "y,▁": 490, 630 | "put▁": 491, 631 | "ob": 492, 632 | "say": 493, 633 | "ran": 494, 634 | "pu": 495, 635 | "sad": 496, 636 | "saw▁": 497, 637 | "help▁": 498, 638 | "toy▁": 499, 639 | "kno": 500, 640 | ".\nA": 501, 641 | "use▁": 502, 642 | "walk": 503, 643 | "boy▁named▁": 504, 644 | "gain": 505, 645 | "ong": 506, 646 | "pre": 507, 647 | "ly▁": 508, 648 | "▁<|start_story|>One▁day,▁a▁": 509, 649 | "ever": 510, 650 | "f▁": 511, 651 | "lived▁": 512, 652 | "good▁": 513, 653 | "qu": 514, 654 | "sun": 515, 655 | "will▁": 516, 656 | "▁and▁the▁": 517, 657 | "op": 518, 658 | "shar": 519, 659 | "ful▁": 520, 660 | "bird": 521, 661 | "hey▁a": 522, 662 | "sur": 523, 663 | "od": 524, 664 | "ard": 525, 665 | "some▁": 526, 666 | "all": 527, 667 | "n't▁": 528, 668 | "en,▁": 529, 669 | "th▁": 530, 670 | "ver▁": 531, 671 | "hom": 532, 672 | "ard▁": 533, 673 | "Luc": 534, 674 | "di": 535, 675 | "her": 536, 676 | "Spo": 537, 677 | "happy▁and▁": 538, 678 | "Su": 539, 679 | "Ben▁": 540, 680 | "laugh": 541, 681 | "back▁": 542, 682 | ".▁But▁": 543, 683 | "sad▁": 544, 684 | "your▁": 545, 685 | ",\"▁": 546, 686 | "ar▁": 547, 687 | "ti": 548, 688 | "pe": 549, 689 | "when▁": 550, 690 | "other": 551, 691 | "small▁": 552, 692 | "low": 553, 693 | "them▁": 554, 694 | "ld": 555, 695 | ".▁They▁a": 556, 696 | "na": 557, 697 | "we▁": 558, 698 | "sti": 559, 699 | "han": 560, 700 | "playing▁": 561, 701 | "▁all▁": 562, 702 | "what▁": 563, 703 | "gi": 564, 704 | "You▁": 565, 705 | "Sue▁": 566, 706 | "dec": 567, 707 | "da": 568, 708 | "smiled▁and▁": 569, 709 | "sw": 570, 710 | "ask": 571, 711 | "!\"\n": 572, 712 | "e▁the▁": 573, 713 | ".▁They▁were▁": 574, 714 | "many▁": 575, 715 | "ru": 576, 716 | "der": 577, 717 | "al▁": 578, 718 | "ow▁": 579, 719 | "play▁with▁": 580, 720 | "t's▁": 581, 721 | "clo": 582, 722 | "Mom": 583, 723 | ".▁I▁": 584, 724 | "ed▁her▁": 585, 725 | "ball▁": 586, 726 | "ed▁his▁": 587, 727 | "went▁to▁the▁": 588, 728 | "hou": 589, 729 | "him": 590, 730 | "became▁": 591, 731 | "▁a▁big▁": 592, 732 | "ice▁": 593, 733 | "too▁": 594, 734 | "es,▁": 595, 735 | "e.▁The▁": 596, 736 | "cit": 597, 737 | "little▁girl▁named▁": 598, 738 | "cause▁": 599, 739 | "who▁": 600, 740 | "si": 601, 741 | "decid": 602, 742 | "ump": 603, 743 | "dog": 604, 744 | "mo": 605, 745 | "We▁": 606, 746 | "wat": 607, 747 | "thought▁": 608, 748 | "red▁": 609, 749 | "outsid": 610, 750 | "Bob": 611, 751 | "back": 612, 752 | "on't▁": 613, 753 | "saw▁a▁big▁": 614, 754 | ".▁One▁day,▁": 615, 755 | "ny▁": 616, 756 | "because▁": 617, 757 | "ts▁": 618, 758 | "e.▁He▁": 619, 759 | "tur": 620, 760 | "excit": 621, 761 | "run": 622, 762 | "ways▁": 623, 763 | "▁and▁said,▁\"": 624, 764 | "sh▁": 625, 765 | "ed▁that▁": 626, 766 | "e▁to▁": 627, 767 | "with▁her▁": 628, 768 | "Lily": 629, 769 | "end▁": 630, 770 | "cl": 631, 771 | "big,▁": 632, 772 | "from": 633, 773 | "got▁": 634, 774 | "pri": 635, 775 | "man▁": 636, 776 | "ble": 637, 777 | "best▁": 638, 778 | "▁ab": 639, 779 | "ff": 640, 780 | "knew▁": 641, 781 | "both▁": 642, 782 | "Let": 643, 783 | "br": 644, 784 | "tried▁to▁": 645, 785 | "decided▁to▁": 646, 786 | "on,▁": 647, 787 | "sor": 648, 788 | "do▁": 649, 789 | "ran▁": 650, 790 | "cou": 651, 791 | "room": 652, 792 | "▁al": 653, 793 | "Sam▁": 654, 794 | "▁ask": 655, 795 | "lea": 656, 796 | "for▁a▁": 657, 797 | "told▁": 658, 798 | "ju": 659, 799 | ".▁Tom▁": 660, 800 | "Mia▁": 661, 801 | "lu": 662, 802 | "Let's▁": 663, 803 | "pla": 664, 804 | "day,▁": 665, 805 | "insid": 666, 806 | "Ben": 667, 807 | "cle": 668, 808 | "Lily▁and▁": 669, 809 | "each▁": 670, 810 | "prett": 671, 811 | "more▁": 672, 812 | "round▁": 673, 813 | "ss": 674, 814 | "tter": 675, 815 | "care": 676, 816 | "saw▁the▁": 677, 817 | "surpri": 678, 818 | "cre": 679, 819 | "so": 680, 820 | "gave▁": 681, 821 | "ce": 682, 822 | "ind▁": 683, 823 | "ly": 684, 824 | ".▁\n": 685, 825 | "happen": 686, 826 | "can": 687, 827 | "at▁the▁": 688, 828 | "up▁": 689, 829 | "than": 690, 830 | "jump": 691, 831 | "ful": 692, 832 | "hug": 693, 833 | "shin": 694, 834 | "open": 695, 835 | "ep": 696, 836 | "did": 697, 837 | "fast": 698, 838 | "s,▁": 699, 839 | "flow": 700, 840 | "was▁not▁": 701, 841 | "t▁and▁": 702, 842 | "che": 703, 843 | "little▁boy▁named▁": 704, 844 | "ted▁": 705, 845 | "rab": 706, 846 | "happy▁to▁": 707, 847 | "An": 708, 848 | "other▁": 709, 849 | "?\"\n": 710, 850 | "show": 711, 851 | "together▁": 712, 852 | "Yes,▁": 713, 853 | "▁again": 714, 854 | "friends.▁": 715, 855 | "not": 716, 856 | "way▁": 717, 857 | "says": 718, 858 | "one": 719, 859 | "scared": 720, 860 | "Can▁": 721, 861 | "every▁": 722, 862 | "every": 723, 863 | "they▁a": 724, 864 | "Lucy▁": 725, 865 | "str": 726, 866 | "When▁": 727, 867 | "by▁": 728, 868 | "take▁": 729, 869 | "its▁": 730, 870 | "get▁": 731, 871 | "ill": 732, 872 | "for▁the▁": 733, 873 | "ing▁and▁": 734, 874 | "hank▁": 735, 875 | "this▁": 736, 876 | "cu": 737, 877 | "▁away": 738, 878 | "imal": 739, 879 | "om▁that▁": 740, 880 | "they▁were▁": 741, 881 | "fle": 742, 882 | "jo": 743, 883 | "et▁": 744, 884 | "ev": 745, 885 | ".▁Th": 746, 886 | "know▁": 747, 887 | ",▁but▁he▁": 748, 888 | "s.▁They▁": 749, 889 | "mou": 750, 890 | "water": 751, 891 | "tree▁": 752, 892 | "could▁not▁": 753, 893 | "n▁": 754, 894 | "▁all": 755, 895 | "ong▁": 756, 896 | "s▁to▁": 757, 897 | "with▁a▁": 758, 898 | ".▁It▁was▁": 759, 899 | "Tim▁and▁": 760, 900 | "went▁to▁": 761, 901 | "bea": 762, 902 | "under": 763, 903 | "lou": 764, 904 | "old▁": 765, 905 | "him▁": 766, 906 | "ed▁it▁": 767, 907 | "om▁that▁day▁": 768, 908 | "list": 769, 909 | "Fr": 770, 910 | "round": 771, 911 | "you,▁": 772, 912 | "dy▁": 773, 913 | "spec": 774, 914 | "said,▁\"I▁": 775, 915 | ".▁The▁bird▁": 776, 916 | "ite▁": 777, 917 | "war": 778, 918 | "didn't▁": 779, 919 | "pick": 780, 920 | "de": 781, 921 | "pped▁": 782, 922 | "said,▁\"T": 783, 923 | "ily▁": 784, 924 | "ple▁": 785, 925 | "ght": 786, 926 | "happened": 787, 927 | ",▁he▁": 788, 928 | "idea": 789, 929 | "e.▁They▁": 790, 930 | "es▁and▁": 791, 931 | "exp": 792, 932 | "▁him": 793, 933 | "heard▁": 794, 934 | "el▁": 795, 935 | "house": 796, 936 | "me▁": 797, 937 | "ure": 798, 938 | "or▁": 799, 939 | "near": 800, 940 | "work": 801, 941 | "fter": 802, 942 | "ymor": 803, 943 | "dan": 804, 944 | "ts▁of▁": 805, 945 | "ing▁the▁": 806, 946 | "from▁the▁": 807, 947 | "▁at▁the▁": 808, 948 | "ear": 809, 949 | "He▁": 810, 950 | "bl": 811, 951 | "Sar": 812, 952 | "lots▁of▁": 813, 953 | "per": 814, 954 | "small": 815, 955 | "'s▁mom▁": 816, 956 | "ed,▁\"": 817, 957 | "speci": 818, 958 | "friend▁": 819, 959 | "each▁other": 820, 960 | "ble▁": 821, 961 | "book": 822, 962 | "us": 823, 963 | "gam": 824, 964 | "if▁": 825, 965 | "car▁": 826, 966 | "learned▁that▁": 827, 967 | "thank": 828, 968 | "ge▁": 829, 969 | "ed▁a▁": 830, 970 | "e.\n": 831, 971 | "Spot▁": 832, 972 | "every▁day": 833, 973 | "park▁": 834, 974 | "il▁": 835, 975 | "ile▁": 836, 976 | "rock": 837, 977 | "col": 838, 978 | "dre": 839, 979 | "things▁": 840, 980 | ".▁And▁": 841, 981 | "just▁": 842, 982 | "flower": 843, 983 | "nice▁": 844, 984 | "est": 845, 985 | "sad▁and▁": 846, 986 | ".▁Tim": 847, 987 | "s.▁He▁": 848, 988 | "don't▁": 849, 989 | "never▁": 850, 990 | "laughed▁and▁": 851, 991 | "long": 852, 992 | "squ": 853, 993 | "ft": 854, 994 | "▁around▁": 855, 995 | "e.▁She▁": 856, 996 | "expec": 857, 997 | ",▁and▁the▁": 858, 998 | "▁<|start_story|>Once▁upon▁a▁time,▁in▁a▁": 859, 999 | "You▁are▁": 860, 1000 | "gry": 861, 1001 | "pr": 862, 1002 | "clim": 863, 1003 | "hand": 864, 1004 | "tw": 865, 1005 | "peo": 866, 1006 | "From▁that▁day▁": 867, 1007 | "fam": 868, 1008 | "prou": 869, 1009 | "into▁the▁": 870, 1010 | "all▁": 871, 1011 | "in▁the▁park": 872, 1012 | "turn": 873, 1013 | ".▁Sue▁": 874, 1014 | "Tom▁and▁": 875, 1015 | "climb": 876, 1016 | "Mia": 877, 1017 | "gard": 878, 1018 | "then▁": 879, 1019 | "tru": 880, 1020 | "pretty▁": 881, 1021 | "dden": 882, 1022 | "am▁": 883, 1023 | "unexpec": 884, 1024 | ".▁It▁was▁a▁": 885, 1025 | ",▁so▁": 886, 1026 | "loved▁to▁play▁": 887, 1027 | "s▁the▁": 888, 1028 | "s.▁She▁": 889, 1029 | "my": 890, 1030 | ".▁He▁wanted▁to▁": 891, 1031 | "She▁": 892, 1032 | "lled▁": 893, 1033 | "ink": 894, 1034 | "took▁": 895, 1035 | ".▁They▁played▁": 896, 1036 | "up▁and▁": 897, 1037 | "hur": 898, 1038 | "unexpected▁": 899, 1039 | "watch": 900, 1040 | "Da": 901, 1041 | "dad▁": 902, 1042 | "to▁be▁": 903, 1043 | "er▁and▁": 904, 1044 | "Tim.▁Tim▁": 905, 1045 | "far": 906, 1046 | "hea": 907, 1047 | ".▁His▁": 908, 1048 | "sorry": 909, 1049 | ",▁they▁": 910, 1050 | "fro": 911, 1051 | "have▁a▁": 912, 1052 | "kind▁": 913, 1053 | "give▁": 914, 1054 | "now": 915, 1055 | ".▁They▁all▁": 916, 1056 | "pot▁": 917, 1057 | "high": 918, 1058 | "ep▁": 919, 1059 | ".\nThey▁": 920, 1060 | ".▁Lily▁": 921, 1061 | "surprise": 922, 1062 | "even▁": 923, 1063 | "hat": 924, 1064 | "tra": 925, 1065 | "pic": 926, 1066 | "Mom▁": 927, 1067 | "said,▁\"Yes,▁": 928, 1068 | "where▁": 929, 1069 | "unt": 930, 1070 | "much▁": 931, 1071 | "▁at▁": 932, 1072 | "color": 933, 1073 | "ber": 934, 1074 | "plan": 935, 1075 | "ook": 936, 1076 | "ving▁": 937, 1077 | "sun▁": 938, 1078 | "box▁": 939, 1079 | "fin": 940, 1080 | "▁as▁": 941, 1081 | "Ja": 942, 1082 | "dog▁named▁": 943, 1083 | ",▁and▁they▁": 944, 1084 | "lly▁": 945, 1085 | "hank▁you,▁": 946, 1086 | "something▁unexpected▁": 947, 1087 | "sel": 948, 1088 | "from▁": 949, 1089 | "'m▁": 950, 1090 | "to▁play▁": 951, 1091 | "something▁unexpected▁happened": 952, 1092 | "gg": 953, 1093 | "I▁a": 954, 1094 | "made▁a▁": 955, 1095 | "ic▁": 956, 1096 | "out▁the▁": 957, 1097 | "bra": 958, 1098 | "come▁": 959, 1099 | "feel▁": 960, 1100 | "Bob▁": 961, 1101 | "▁her": 962, 1102 | "lid": 963, 1103 | "cha": 964, 1104 | "friend,▁": 965, 1105 | "ark": 966, 1106 | "ground": 967, 1107 | "Bu": 968, 1108 | "mom▁and▁": 969, 1109 | "▁always▁": 970, 1110 | "ol": 971, 1111 | ".▁The▁cat▁": 972, 1112 | "better": 973, 1113 | "that▁he▁": 974, 1114 | "noi": 975, 1115 | "ight": 976, 1116 | "nex": 977, 1117 | "could": 978, 1118 | "ed▁a": 979, 1119 | "sha": 980, 1120 | "mak": 981, 1121 | "Jo": 982, 1122 | "wn▁": 983, 1123 | "fish▁": 984, 1124 | "love▁": 985, 1125 | "still▁": 986, 1126 | "kid": 987, 1127 | "beau": 988, 1128 | "mag": 989, 1129 | "▁about▁": 990, 1130 | "talk": 991, 1131 | "had▁an▁": 992, 1132 | "to▁his▁": 993, 1133 | "From▁that▁day▁on,▁": 994, 1134 | "should▁": 995, 1135 | "good": 996, 1136 | "put▁the▁": 997, 1137 | "ally▁": 998, 1138 | "t▁a▁": 999, 1139 | "proud▁": 1000, 1140 | "dra": 1001, 1141 | ".\nBut▁": 1002, 1142 | "happy.▁": 1003, 1143 | "know": 1004, 1144 | "Kitt": 1005, 1145 | "sou": 1006, 1146 | "slid": 1007, 1147 | "Th": 1008, 1148 | ".▁So,▁": 1009, 1149 | "s▁a▁": 1010, 1150 | "beauti": 1011, 1151 | ".▁Max▁": 1012, 1152 | ".\nTim▁": 1013, 1153 | "great▁": 1014, 1154 | "listen": 1015, 1155 | ".▁E": 1016, 1156 | "in▁his▁": 1017, 1157 | "around▁": 1018, 1158 | "long▁": 1019, 1159 | "t▁of▁": 1020, 1160 | "sof": 1021, 1161 | "hugg": 1022, 1162 | "took▁the▁": 1023, 1163 | "they▁all▁": 1024, 1164 | "!▁The▁": 1025, 1165 | "then,▁": 1026, 1166 | "eat▁": 1027, 1167 | "friends▁and▁": 1028, 1168 | "ink▁": 1029, 1169 | "Spot": 1030, 1170 | ".▁We▁": 1031, 1171 | "ve": 1032, 1172 | ".▁You▁": 1033, 1173 | ".▁In": 1034, 1174 | "fir": 1035, 1175 | "looked▁at▁": 1036, 1176 | "brok": 1037, 1177 | "special▁": 1038, 1178 | "up▁the▁": 1039, 1179 | ".▁He▁was▁": 1040, 1180 | "feel": 1041, 1181 | "Do▁": 1042, 1182 | "he▁was▁": 1043, 1183 | "It▁": 1044, 1184 | "te": 1045, 1185 | "win": 1046, 1186 | "no▁": 1047, 1187 | "by": 1048, 1188 | "lived▁in▁a▁": 1049, 1189 | "No,▁": 1050, 1190 | "in▁her▁": 1051, 1191 | "ow,▁": 1052, 1192 | "▁all▁day": 1053, 1193 | "du": 1054, 1194 | "to▁a▁": 1055, 1195 | ".\"▁The▁": 1056, 1196 | "ght▁": 1057, 1197 | "Sara": 1058, 1198 | "and": 1059, 1199 | "na▁": 1060, 1200 | "▁hou": 1061, 1201 | "bear▁": 1062, 1202 | ".▁Spot▁": 1063, 1203 | "eat": 1064, 1204 | "it▁and▁": 1065, 1205 | "Sue": 1066, 1206 | "had▁an▁idea": 1067, 1207 | "that": 1068, 1208 | "smiled": 1069, 1209 | "together.▁": 1070, 1210 | "door": 1071, 1211 | "luff": 1072, 1212 | "yum": 1073, 1213 | "tree": 1074, 1214 | "fish": 1075, 1215 | "cat▁named▁": 1076, 1216 | "wha": 1077, 1217 | "ick": 1078, 1218 | ",▁she▁": 1079, 1219 | "see▁the▁": 1080, 1220 | "ing▁to▁": 1081, 1221 | "fter▁": 1082, 1222 | "liked▁to▁play▁": 1083, 1223 | "next▁": 1084, 1224 | "gu": 1085, 1225 | ".\nAs▁": 1086, 1226 | "are▁": 1087, 1227 | "shed▁": 1088, 1228 | "look▁": 1089, 1229 | "people▁": 1090, 1230 | "hed": 1091, 1231 | "how▁": 1092, 1232 | "loud▁": 1093, 1233 | ".▁The▁dog▁": 1094, 1234 | "flew▁": 1095, 1235 | "happily▁": 1096, 1236 | "was▁sad": 1097, 1237 | "wanted▁to▁help": 1098, 1238 | "irre": 1099, 1239 | "lock": 1100, 1240 | "cook": 1101, 1241 | "walked▁": 1102, 1242 | "thought": 1103, 1243 | "clean": 1104, 1244 | "new": 1105, 1245 | ",▁there▁was▁a▁": 1106, 1246 | "near▁the▁": 1107, 1247 | "er▁mom▁": 1108, 1248 | "I'm▁": 1109, 1249 | "met": 1110, 1250 | "Look": 1111, 1251 | "itch": 1112, 1252 | "being▁": 1113, 1253 | "animal": 1114, 1254 | "house▁": 1115, 1255 | "an▁to▁": 1116, 1256 | "ss▁": 1117, 1257 | "imp": 1118, 1258 | "looked▁at▁the▁": 1119, 1259 | ".▁They▁are▁": 1120, 1260 | "squirre": 1121, 1261 | "careful": 1122, 1262 | "s▁were▁": 1123, 1263 | "int": 1124, 1264 | "ort": 1125, 1265 | "sle": 1126, 1266 | "lot▁of▁": 1127, 1267 | "▁hom": 1128, 1268 | "played▁with▁the▁": 1129, 1269 | "Do▁you▁": 1130, 1270 | "garden": 1131, 1271 | "girl": 1132, 1272 | "clos": 1133, 1273 | "pt▁": 1134, 1274 | "bri": 1135, 1275 | "cry": 1136, 1276 | "▁an▁": 1137, 1277 | "sta": 1138, 1278 | "stu": 1139, 1279 | "we": 1140, 1280 | "cri": 1141, 1281 | "And▁": 1142, 1282 | "ey": 1143, 1283 | "ous▁": 1144, 1284 | "loved▁": 1145, 1285 | "▁after": 1146, 1286 | "nic": 1147, 1287 | "need": 1148, 1288 | "had▁to▁": 1149, 1289 | "little▁bird▁": 1150, 1290 | "Fluff": 1151, 1291 | "was▁very▁happy": 1152, 1292 | "Can▁I▁": 1153, 1293 | "forest": 1154, 1294 | "zz": 1155, 1295 | "jumped▁": 1156, 1296 | "ati": 1157, 1297 | "Hi": 1158, 1298 | "always▁": 1159, 1299 | "▁<|start_story|>Once▁upon▁a▁time,▁there▁was▁a▁little▁girl▁named▁": 1160, 1300 | "thre": 1161, 1301 | "bad▁": 1162, 1302 | "em": 1163, 1303 | "hid": 1164, 1304 | "befor": 1165, 1305 | "Anna": 1166, 1306 | "said.▁\"": 1167, 1307 | "girl▁named▁": 1168, 1308 | "shiny▁": 1169, 1309 | "cla": 1170, 1310 | "playing": 1171, 1311 | "try": 1172, 1312 | "part": 1173, 1313 | "had▁a▁big▁": 1174, 1314 | "gra": 1175, 1315 | "time▁": 1176, 1316 | "tter▁": 1177, 1317 | "wind▁": 1178, 1318 | "magic▁": 1179, 1319 | "I▁am▁": 1180, 1320 | "couldn't▁": 1181, 1321 | ".▁It▁is▁": 1182, 1322 | "says,▁\"": 1183, 1323 | "off": 1184, 1324 | "had▁lots▁of▁": 1185, 1325 | "blue▁": 1186, 1326 | "row": 1187, 1327 | "reach": 1188, 1328 | "food▁": 1189, 1329 | "nodd": 1190, 1330 | "bug▁": 1191, 1331 | "Amy▁": 1192, 1332 | "play▁with▁the▁": 1193, 1333 | "over": 1194, 1334 | "bit▁": 1195, 1335 | "excited": 1196, 1336 | "make▁a▁": 1197, 1337 | "tree▁and▁": 1198, 1338 | ".\"\nThe▁": 1199, 1339 | "!▁I▁": 1200, 1340 | "toys▁": 1201, 1341 | "story▁": 1202, 1342 | "food": 1203, 1343 | "stick": 1204, 1344 | ".▁She▁was▁": 1205, 1345 | "surprised": 1206, 1346 | "fix": 1207, 1347 | "his▁mom▁": 1208, 1348 | "two▁": 1209, 1349 | "dad": 1210, 1350 | "the▁best▁": 1211, 1351 | "back▁to▁": 1212, 1352 | "our▁": 1213, 1353 | "sat▁": 1214, 1354 | "try▁": 1215, 1355 | "bro": 1216, 1356 | "toys": 1217, 1357 | "she▁was▁": 1218, 1358 | "sho": 1219, 1359 | "is▁a▁": 1220, 1360 | "Don't▁": 1221, 1361 | "ant▁": 1222, 1362 | "ate▁": 1223, 1363 | "together▁and▁": 1224, 1364 | "mon": 1225, 1365 | "until▁": 1226, 1366 | "beautiful▁": 1227, 1367 | "What▁": 1228, 1368 | "brea": 1229, 1369 | "dr": 1230, 1370 | "bun": 1231, 1371 | "ing▁a▁": 1232, 1372 | "yell": 1233, 1373 | "scared▁": 1234, 1374 | ",▁I▁": 1235, 1375 | "tin": 1236, 1376 | "en▁the▁": 1237, 1377 | "she": 1238, 1378 | "day▁long": 1239, 1379 | "heard▁a▁": 1240, 1380 | "tou": 1241, 1381 | "con": 1242, 1382 | "in▁the▁sk": 1243, 1383 | "lk▁": 1244, 1384 | "flo": 1245, 1385 | "did▁not▁want▁to▁": 1246, 1386 | "aybe▁": 1247, 1387 | "rabb": 1248, 1388 | "on▁his▁": 1249, 1389 | "down▁": 1250, 1390 | "big▁and▁": 1251, 1391 | "let's▁": 1252, 1392 | "kept▁": 1253, 1393 | "!\n": 1254, 1394 | "vent": 1255, 1395 | "water▁": 1256, 1396 | "found▁a▁big▁": 1257, 1397 | "her▁mom▁": 1258, 1398 | "spo": 1259, 1399 | "smiled▁and▁said,▁\"": 1260, 1400 | "▁ad": 1261, 1401 | "thought▁it▁": 1262, 1402 | "mem": 1263, 1403 | "▁all▁the▁": 1264, 1404 | "were▁very▁": 1265, 1405 | "much": 1266, 1406 | "town": 1267, 1407 | "▁anymor": 1268, 1408 | "on▁the▁ground": 1269, 1409 | "everyone▁": 1270, 1410 | "mes": 1271, 1411 | "His▁": 1272, 1412 | "so▁much▁": 1273, 1413 | "ger": 1274, 1414 | "?▁": 1275, 1415 | "fly▁": 1276, 1416 | "▁<|start_story|>Once▁upon▁a▁time,▁there▁was▁a▁little▁boy▁named▁": 1277, 1417 | "ind": 1278, 1418 | "share▁": 1279, 1419 | "su": 1280, 1420 | "strong": 1281, 1421 | ".▁Su": 1282, 1422 | "fly": 1283, 1423 | "cake▁": 1284, 1424 | "that▁the▁": 1285, 1425 | "opened▁the▁": 1286, 1426 | "did▁not▁know▁": 1287, 1427 | "Hell": 1288, 1428 | "?\"▁The▁": 1289, 1429 | "sna": 1290, 1430 | "▁how▁": 1291, 1431 | "mi": 1292, 1432 | "lived▁happily▁": 1293, 1433 | "said,▁\"Thank▁you,▁": 1294, 1434 | ",▁there▁": 1295, 1435 | "sunny▁": 1296, 1436 | "mouse▁": 1297, 1437 | "y.▁She▁": 1298, 1438 | "had▁many▁": 1299, 1439 | "picked▁": 1300, 1440 | "out▁of▁the▁": 1301, 1441 | "you▁can▁": 1302, 1442 | "▁away▁": 1303, 1443 | "remem": 1304, 1444 | "e,▁but▁": 1305, 1445 | "fav": 1306, 1446 | "fru": 1307, 1447 | "noise": 1308, 1448 | "it▁is▁": 1309, 1449 | "kitch": 1310, 1450 | "s.▁The▁": 1311, 1451 | "plea": 1312, 1452 | "cho": 1313, 1453 | "rand": 1314, 1454 | "y.▁He▁": 1315, 1455 | "bear": 1316, 1456 | "Anna▁": 1317, 1457 | "curi": 1318, 1458 | "▁and▁a▁": 1319, 1459 | "llow": 1320, 1460 | "import": 1321, 1461 | "moral▁": 1322, 1462 | "wait": 1323, 1463 | "bug": 1324, 1464 | "irt": 1325, 1465 | ".▁Sam▁": 1326, 1466 | "it▁to▁": 1327, 1467 | ".▁Then,▁": 1328, 1468 | "fell▁": 1329, 1469 | "gla": 1330, 1470 | "bed": 1331, 1471 | ".▁M": 1332, 1472 | "place▁": 1333, 1473 | "vo": 1334, 1474 | "y▁an": 1335, 1475 | "have▁to▁": 1336, 1476 | "Tim's▁": 1337, 1477 | "called▁": 1338, 1478 | "lived▁a▁": 1339, 1479 | "like▁the▁": 1340, 1480 | "friends.▁They▁": 1341, 1481 | "green▁": 1342, 1482 | "!\"▁The▁": 1343, 1483 | "beg": 1344, 1484 | "with▁their▁": 1345, 1485 | "leav": 1346, 1486 | ".\nTh": 1347, 1487 | "saf": 1348, 1488 | "enjo": 1349, 1489 | "little▁boy▁named▁Tim▁": 1350, 1490 | "came▁to▁": 1351, 1491 | "because▁he▁": 1352, 1492 | "wo": 1353, 1493 | "yard": 1354, 1494 | ".\nOne▁day,▁the▁": 1355, 1495 | "ever▁after": 1356, 1496 | "back▁to▁the▁": 1357, 1497 | "s.▁One▁day,▁": 1358, 1498 | "danc": 1359, 1499 | "for▁help": 1360, 1500 | "met▁a▁": 1361, 1501 | "favor": 1362, 1502 | "that▁she▁": 1363, 1503 | "ffer": 1364, 1504 | "Jan": 1365, 1505 | "ture": 1366, 1506 | ".▁When▁": 1367, 1507 | ",▁but▁she▁": 1368, 1508 | "Fin": 1369, 1509 | "red": 1370, 1510 | "Joh": 1371, 1511 | "ap": 1372, 1512 | "rain": 1373, 1513 | "frog▁": 1374, 1514 | "s,▁and▁": 1375, 1515 | "yummy▁": 1376, 1516 | "Kitty▁": 1377, 1517 | "on▁it": 1378, 1518 | ",▁but▁the▁": 1379, 1519 | ".\nLily▁": 1380, 1520 | "safe": 1381, 1521 | "famil": 1382, 1522 | "became▁good▁": 1383, 1523 | ",▁Tim": 1384, 1524 | "cor": 1385, 1525 | "▁around▁the▁": 1386, 1526 | "under▁the▁": 1387, 1527 | "moral▁of▁the▁": 1388, 1528 | "was▁so▁happy": 1389, 1529 | "e▁was▁": 1390, 1530 | ".▁She▁wanted▁to▁": 1391, 1531 | "ed▁their▁": 1392, 1532 | "favorite▁": 1393, 1533 | "hard▁": 1394, 1534 | ".▁They▁both▁": 1395, 1535 | "▁about▁the▁": 1396, 1536 | "ild▁": 1397, 1537 | "then": 1398, 1538 | "it's▁": 1399, 1539 | "ed▁it": 1400, 1540 | "down▁and▁": 1401, 1541 | "friend,▁a▁": 1402, 1542 | "sleep": 1403, 1543 | "very": 1404, 1544 | ".▁Tim▁and▁": 1405, 1545 | ".▁A▁": 1406, 1546 | "lost▁": 1407, 1547 | "having▁": 1408, 1548 | "ster": 1409, 1549 | "say▁": 1410, 1550 | "lived▁happily▁ever▁after": 1411, 1551 | "▁<|start_story|>Once▁upon▁a▁time▁": 1412, 1552 | "ly,▁": 1413, 1553 | "bow": 1414, 1554 | ".▁She▁said,▁\"": 1415, 1555 | "read▁": 1416, 1556 | "self": 1417, 1557 | "moral▁of▁the▁story▁": 1418, 1558 | "table": 1419, 1559 | "star": 1420, 1560 | "beh": 1421, 1561 | "expl": 1422, 1562 | "toys▁and▁": 1423, 1563 | "helped▁": 1424, 1564 | "Tim▁was▁": 1425, 1565 | "differ": 1426, 1566 | "ight▁": 1427, 1567 | "gr": 1428, 1568 | "his▁friends▁": 1429, 1569 | "on▁her▁": 1430, 1570 | "▁<|start_story|>Once▁upon▁a▁time,▁there▁was▁a▁little▁": 1431, 1571 | "explor": 1432, 1572 | "went▁hom": 1433, 1573 | "doll": 1434, 1574 | "found▁the▁": 1435, 1575 | "played▁together▁": 1436, 1576 | "wr": 1437, 1577 | "he▁could▁": 1438, 1578 | "dro": 1439, 1579 | "hun": 1440, 1580 | "h▁": 1441, 1581 | "ig": 1442, 1582 | "Hello,▁": 1443, 1583 | "went▁for▁a▁": 1444, 1584 | "swe": 1445, 1585 | "block": 1446, 1586 | "▁him▁": 1447, 1587 | "stay": 1448, 1588 | "est▁": 1449, 1589 | "tast": 1450, 1590 | "careful▁": 1451, 1591 | "ll▁the▁": 1452, 1592 | ".▁Tim▁was▁": 1453, 1593 | "worked▁": 1454, 1594 | "room▁": 1455, 1595 | "tree.▁The▁": 1456, 1596 | "go▁to▁the▁": 1457, 1597 | "et▁and▁": 1458, 1598 | "night": 1459, 1599 | "shout": 1460, 1600 | "▁animal": 1461, 1601 | "a▁big▁": 1462, 1602 | "s.\n": 1463, 1603 | "One▁sunny▁": 1464, 1604 | "worry": 1465, 1605 | "Jack▁": 1466, 1606 | "lived▁happily▁ever▁after.▁": 1467, 1607 | "small▁hou": 1468, 1608 | "her▁mom": 1469, 1609 | "can't▁": 1470, 1610 | "picture": 1471, 1611 | ",\"▁said▁": 1472, 1612 | "y▁was▁": 1473, 1613 | "dirt": 1474, 1614 | "Lily.▁": 1475, 1615 | "would▁be▁": 1476, 1616 | "re▁you▁": 1477, 1617 | "bor": 1478, 1618 | "okay": 1479, 1619 | "rac": 1480, 1620 | "▁awa": 1481, 1621 | "went▁to▁the▁park▁": 1482, 1622 | "had▁a▁great▁": 1483, 1623 | "behind▁": 1484, 1624 | "mar": 1485, 1625 | "curiou": 1486, 1626 | "began▁to▁": 1487, 1627 | "cro": 1488, 1628 | ",▁so▁he▁": 1489, 1629 | "while▁": 1490, 1630 | "y.▁The▁": 1491, 1631 | "like▁to▁": 1492, 1632 | "Mr": 1493, 1633 | "had▁lots▁of▁fun": 1494, 1634 | "ond": 1495, 1635 | "hugged▁": 1496, 1636 | "flew": 1497, 1637 | "let▁": 1498, 1638 | "ces": 1499, 1639 | "rough": 1500, 1640 | "we▁can▁": 1501, 1641 | "was▁very▁happy▁and▁": 1502, 1642 | "swing": 1503, 1643 | "It's▁": 1504, 1644 | "cream": 1505, 1645 | "push": 1506, 1646 | "brave▁": 1507, 1647 | ".▁B": 1508, 1648 | "go▁hom": 1509, 1649 | "excited▁to▁": 1510, 1650 | "le▁and▁": 1511, 1651 | ",▁but▁it▁was▁": 1512, 1652 | "din": 1513, 1653 | "need▁to▁": 1514, 1654 | "shi": 1515, 1655 | "what▁was▁": 1516, 1656 | ".▁N": 1517, 1657 | "soft▁": 1518, 1658 | "again": 1519, 1659 | "what▁to▁": 1520, 1660 | "boat": 1521, 1661 | "follow": 1522, 1662 | "kitchen": 1523, 1663 | "So,▁": 1524, 1664 | "sing": 1525, 1665 | "dow": 1526, 1666 | "min": 1527, 1667 | "!\"▁said▁": 1528, 1668 | "▁all▁day▁long": 1529, 1669 | "ddenly": 1530, 1670 | "s.▁\"": 1531, 1671 | "butter": 1532, 1672 | "listen▁": 1533, 1673 | "played▁together": 1534, 1674 | "put▁it▁": 1535, 1675 | "to▁make▁": 1536, 1676 | "keep▁": 1537, 1677 | "floor": 1538, 1678 | "sorry▁": 1539, 1679 | "funny▁": 1540, 1680 | "boat▁": 1541, 1681 | "tow": 1542, 1682 | "remember": 1543, 1683 | "toy▁car": 1544, 1684 | "stopped▁": 1545, 1685 | "first": 1546, 1686 | "ran▁to▁the▁": 1547, 1687 | "Do▁you▁want▁to▁": 1548, 1688 | "mis": 1549, 1689 | "runn": 1550, 1690 | "laug": 1551, 1691 | "laughed": 1552, 1692 | "tea": 1553, 1693 | "▁advent": 1554, 1694 | "down▁the▁": 1555, 1695 | "came▁to▁the▁": 1556, 1696 | "hat's▁": 1557, 1697 | "Ju": 1558, 1698 | "cooki": 1559, 1699 | "less": 1560, 1700 | "tail": 1561, 1701 | ".▁In▁the▁": 1562, 1702 | "sound": 1563, 1703 | "prom": 1564, 1704 | "rock▁": 1565, 1705 | "ed,▁": 1566, 1706 | ",▁but▁they▁": 1567, 1707 | "ant": 1568, 1708 | "deli": 1569, 1709 | "oon": 1570, 1710 | "kids▁": 1571, 1711 | "looking▁": 1572, 1712 | "pret": 1573, 1713 | "over▁": 1574, 1714 | ".▁They▁had▁": 1575, 1715 | "became▁best▁": 1576, 1716 | "squirrel▁": 1577, 1717 | "Hi,▁": 1578, 1718 | "ddenly,▁": 1579, 1719 | "family▁": 1580, 1720 | "thanked▁": 1581, 1721 | "ball▁and▁": 1582, 1722 | "dri": 1583, 1723 | "outside▁": 1584, 1724 | "have▁fun": 1585, 1725 | "hill": 1586, 1726 | "find▁a▁": 1587, 1727 | "ad": 1588, 1728 | "warm": 1589, 1729 | "came▁and▁": 1590, 1730 | "wood": 1591, 1731 | "show▁": 1592, 1732 | "kay": 1593, 1733 | ".▁Tom": 1594, 1734 | ".▁You▁are▁": 1595, 1735 | "veryone▁": 1596, 1736 | "Mom,▁": 1597, 1737 | "of▁a▁": 1598, 1738 | "▁<|start_story|>Once▁upon▁a▁time,▁there▁was▁a▁little▁boy▁named▁Tim.▁Tim▁": 1599, 1739 | "when▁he▁": 1600, 1740 | "our": 1601, 1741 | "asked▁": 1602, 1742 | ".\"▁They▁": 1603, 1743 | "scared▁and▁": 1604, 1744 | "hop": 1605, 1745 | "thanked▁the▁": 1606, 1746 | "play▁with▁it": 1607, 1747 | ":▁": 1608, 1748 | "▁<|start_story|>One▁day,▁a▁little▁girl▁named▁": 1609, 1749 | "ran▁to▁": 1610, 1750 | "clean▁": 1611, 1751 | "hard": 1612, 1752 | ".\nTom▁": 1613, 1753 | "moral▁of▁the▁story▁is▁": 1614, 1754 | "In": 1615, 1755 | "time▁to▁": 1616, 1756 | "does▁": 1617, 1757 | "bunny▁": 1618, 1758 | "d▁and▁": 1619, 1759 | "farm": 1620, 1760 | "ed▁to▁the▁": 1621, 1761 | "te▁": 1622, 1762 | ".▁This▁": 1623, 1763 | "cra": 1624, 1764 | "▁ar": 1625, 1765 | "Tom.▁Tom▁": 1626, 1766 | ".\nOne▁day,▁a▁": 1627, 1767 | "goodby": 1628, 1768 | "get▁the▁": 1629, 1769 | "won": 1630, 1770 | "touch": 1631, 1771 | "not▁a▁": 1632, 1772 | "rabbit▁": 1633, 1773 | "happy.▁They▁": 1634, 1774 | "my▁and▁": 1635, 1775 | "little▁boy▁": 1636, 1776 | "▁<|start_story|>Once▁upon▁a▁time,▁there▁was▁a▁big▁": 1637, 1777 | ".▁From▁that▁day▁on,▁": 1638, 1778 | "truck": 1639, 1779 | ".\"▁Tim▁": 1640, 1780 | "▁any": 1641, 1781 | "ddy▁": 1642, 1782 | "ci": 1643, 1783 | "lli": 1644, 1784 | "▁<|start_story|>Once▁upon▁a▁time▁there▁was▁a▁": 1645, 1785 | "new▁friend": 1646, 1786 | "pro": 1647, 1787 | "surpris": 1648, 1788 | "es▁to▁": 1649, 1789 | ".▁Mia▁": 1650, 1790 | "stay▁": 1651, 1791 | "very▁much": 1652, 1792 | "feeling▁": 1653, 1793 | "!\"▁They▁": 1654, 1794 | ".▁They▁were▁very▁": 1655, 1795 | "liked▁the▁": 1656, 1796 | "hurt▁": 1657, 1797 | ".▁I▁will▁": 1658, 1798 | "ag": 1659, 1799 | "was▁happy▁and▁": 1660, 1800 | "turned▁": 1661, 1801 | "Lily.▁She▁": 1662, 1802 | "sy▁": 1663, 1803 | "only▁": 1664, 1804 | "fl": 1665, 1805 | "something▁unexpected▁happened.▁The▁": 1666, 1806 | "enjoy": 1667, 1807 | "Ben▁and▁": 1668, 1808 | "could▁not▁find▁": 1669, 1809 | "ing,▁": 1670, 1810 | "rid": 1671, 1811 | "!▁He▁": 1672, 1812 | "day.▁": 1673, 1813 | "oun": 1674, 1814 | "what▁to▁do": 1675, 1815 | "tor": 1676, 1816 | "please": 1677, 1817 | "stea": 1678, 1818 | "think": 1679, 1819 | "Look,▁": 1680, 1820 | "Wow,▁": 1681, 1821 | "y's▁": 1682, 1822 | "had▁a▁lot▁of▁": 1683, 1823 | "was▁too▁": 1684, 1824 | "knew▁that▁": 1685, 1825 | "▁and▁Ben▁": 1686, 1826 | "hair": 1687, 1827 | "wing": 1688, 1828 | "t,▁": 1689, 1829 | "Can▁you▁": 1690, 1830 | "prin": 1691, 1831 | "song": 1692, 1832 | "tree.▁": 1693, 1833 | "head": 1694, 1834 | "sand": 1695, 1835 | ".\nWhen▁": 1696, 1836 | "moment": 1697, 1837 | "Her▁mom▁": 1698, 1838 | "went▁outsid": 1699, 1839 | ",▁and▁he▁": 1700, 1840 | "ph": 1701, 1841 | "Sally▁": 1702, 1842 | "high▁": 1703, 1843 | "sure▁": 1704, 1844 | "boy▁named▁Tim▁": 1705, 1845 | "ray": 1706, 1846 | "was▁happy▁": 1707, 1847 | ",▁there▁lived▁a▁": 1708, 1848 | "better▁": 1709, 1849 | "Sara▁": 1710, 1850 | "ner": 1711, 1851 | "held▁": 1712, 1852 | "mov": 1713, 1853 | "red▁ball": 1714, 1854 | "wall": 1715, 1855 | "y▁again": 1716, 1856 | "tak": 1717, 1857 | "His▁mom▁": 1718, 1858 | ".▁His▁mom▁": 1719, 1859 | "coun": 1720, 1860 | "things": 1721, 1861 | ".▁\nThe▁": 1722, 1862 | "hungry": 1723, 1863 | "▁<|start_story|>One▁day,▁a▁little▁boy▁named▁Tim▁": 1724, 1864 | "▁<|start_story|>Once▁upon▁a▁time,▁in▁a▁small▁": 1725, 1865 | "their": 1726, 1866 | "to▁play": 1727, 1867 | "cast": 1728, 1868 | "now▁": 1729, 1869 | "Fluffy▁": 1730, 1870 | "bad": 1731, 1871 | "whil": 1732, 1872 | "clou": 1733, 1873 | "pli": 1734, 1874 | "ce▁and▁": 1735, 1875 | ".▁Every▁": 1736, 1876 | "anymor": 1737, 1877 | "y▁ask": 1738, 1878 | "I▁can▁": 1739, 1879 | "whi": 1740, 1880 | "y.▁They▁": 1741, 1881 | "hear": 1742, 1882 | "bran": 1743, 1883 | ".\nAt▁the▁": 1744, 1884 | "but": 1745, 1885 | "qui": 1746, 1886 | "were▁playing▁": 1747, 1887 | "Lily,▁": 1748, 1888 | "se▁and▁": 1749, 1889 | "pictur": 1750, 1890 | "y▁are▁you▁": 1751, 1891 | "proud▁of": 1752, 1892 | "pond": 1753, 1893 | "stre": 1754, 1894 | "row▁": 1755, 1895 | "One▁sunny▁day,▁": 1756, 1896 | "smell": 1757, 1897 | "'re▁": 1758, 1898 | "s▁in▁the▁": 1759, 1899 | "maz": 1760, 1900 | "snow": 1761, 1901 | "help▁you▁": 1762, 1902 | "pped▁and▁": 1763, 1903 | "they▁could▁": 1764, 1904 | "Just▁": 1765, 1905 | "I▁will▁": 1766, 1906 | "\nThe▁": 1767, 1907 | "!▁It▁": 1768, 1908 | ".\"\nThey▁": 1769, 1909 | "Don't▁worry": 1770, 1910 | "sometim": 1771, 1911 | "full▁": 1772, 1912 | ",▁a▁big▁": 1773, 1913 | "wonder": 1774, 1914 | ".▁He▁said,▁\"": 1775, 1915 | "bark": 1776, 1916 | "pull": 1777, 1917 | "different▁": 1778, 1918 | "asked,▁\"": 1779, 1919 | "ine▁": 1780, 1920 | "you▁are▁": 1781, 1921 | "soon": 1782, 1922 | "through": 1783, 1923 | "▁agre": 1784, 1924 | "swa": 1785, 1925 | "he▁had▁": 1786, 1926 | "grabb": 1787, 1927 | "cold▁": 1788, 1928 | "glad▁": 1789, 1929 | "!\"▁Lily▁": 1790, 1930 | "gave▁the▁": 1791, 1931 | "paper": 1792, 1932 | "box▁and▁": 1793, 1933 | "job": 1794, 1934 | "hurt": 1795, 1935 | "call": 1796, 1936 | "wished▁": 1797, 1937 | "is▁not▁": 1798, 1938 | "it▁was": 1799, 1939 | "cake": 1800, 1940 | "flower▁": 1801, 1941 | "keep": 1802, 1942 | "Okay": 1803, 1943 | "yellow▁": 1804, 1944 | "took▁a▁": 1805, 1945 | "special": 1806, 1946 | "quick": 1807, 1947 | "walk▁": 1808, 1948 | "them▁and▁": 1809, 1949 | "into▁": 1810, 1950 | "making▁": 1811, 1951 | "see": 1812, 1952 | "they▁had▁": 1813, 1953 | "tired": 1814, 1954 | "repli": 1815, 1955 | "Go": 1816, 1956 | "kind": 1817, 1957 | "pur": 1818, 1958 | "to▁help": 1819, 1959 | "looked▁around▁": 1820, 1960 | "window": 1821, 1961 | "able▁": 1822, 1962 | "ready▁": 1823, 1963 | "ber▁": 1824, 1964 | "fair": 1825, 1965 | "it.▁He▁": 1826, 1966 | "like▁a▁": 1827, 1967 | "bag": 1828, 1968 | "Dais": 1829, 1969 | "blu": 1830, 1970 | "truck▁": 1831, 1971 | "own": 1832, 1972 | "for▁a▁moment": 1833, 1973 | "with▁a▁big▁": 1834, 1974 | "was▁playing▁": 1835, 1975 | ".▁Her▁": 1836, 1976 | "Lily's▁": 1837, 1977 | "land": 1838, 1978 | "tall▁": 1839, 1979 | "fire": 1840, 1980 | "x▁": 1841, 1981 | "▁again.▁": 1842, 1982 | "for▁his▁": 1843, 1983 | "went▁to▁the▁park": 1844, 1984 | "lady▁": 1845, 1985 | "heav": 1846, 1986 | "with▁his▁friends": 1847, 1987 | "s.\n\"": 1848, 1988 | "inside▁the▁": 1849, 1989 | "liz": 1850, 1990 | "than▁": 1851, 1991 | "ill▁": 1852, 1992 | "does▁not▁": 1853, 1993 | "must▁": 1854, 1994 | "asked▁her▁": 1855, 1995 | "That▁": 1856, 1996 | "notic": 1857, 1997 | ".▁Her▁mom▁": 1858, 1998 | "want▁": 1859, 1999 | "was▁happy▁to▁": 1860, 2000 | "I▁want▁to▁": 1861, 2001 | "full▁of▁": 1862, 2002 | "▁how▁to▁": 1863, 2003 | "was▁sad▁": 1864, 2004 | ".\nThen,▁": 1865, 2005 | "saw▁a▁big,▁": 1866, 2006 | "der▁": 1867, 2007 | "dis": 1868, 2008 | "walking▁": 1869, 2009 | "right": 1870, 2010 | "ser": 1871, 2011 | "tu": 1872, 2012 | "said,▁\"No,▁": 1873, 2013 | "ft▁": 1874, 2014 | "▁angry": 1875, 2015 | "mus": 1876, 2016 | "showed▁": 1877, 2017 | "time,▁": 1878, 2018 | "ark▁": 1879, 2019 | "John▁": 1880, 2020 | "help▁you": 1881, 2021 | "▁asked▁": 1882, 2022 | "slow": 1883, 2023 | "Tim,▁": 1884, 2024 | "?\"": 1885, 2025 | "says.▁\"": 1886, 2026 | "ele": 1887, 2027 | "tir": 1888, 2028 | "gent": 1889, 2029 | "little▁girl": 1890, 2030 | "top▁": 1891, 2031 | "tell": 1892, 2032 | "started▁": 1893, 2033 | "on▁the▁floor": 1894, 2034 | "wise▁": 1895, 2035 | "she▁could▁": 1896, 2036 | "oke▁": 1897, 2037 | "when▁they▁": 1898, 2038 | "so▁much▁fun": 1899, 2039 | "wanted▁to▁help▁the▁": 1900, 2040 | "for▁her▁": 1901, 2041 | "frog": 1902, 2042 | "fur": 1903, 2043 | "play▁and▁": 1904, 2044 | "ome▁": 1905, 2045 | "ab": 1906, 2046 | "was▁happy": 1907, 2047 | "had▁a▁fun▁": 1908, 2048 | "vis": 1909, 2049 | "nd▁and▁": 1910, 2050 | "Tom,▁": 1911, 2051 | "catch▁": 1912, 2052 | "s▁he▁": 1913, 2053 | "clothe": 1914, 2054 | "wel": 1915, 2055 | "e,▁and▁": 1916, 2056 | "friendly▁": 1917, 2057 | "Lily▁and▁Ben▁": 1918, 2058 | "peopl": 1919, 2059 | "Max▁and▁": 1920, 2060 | "gon": 1921, 2061 | "Why▁are▁you▁": 1922, 2062 | ".▁So,▁he▁": 1923, 2063 | "While▁": 1924, 2064 | "pain": 1925, 2065 | "picked▁up▁the▁": 1926, 2066 | "b▁": 1927, 2067 | "word": 1928, 2068 | "for▁you": 1929, 2069 | "grand": 1930, 2070 | "ugg": 1931, 2071 | "warm▁": 1932, 2072 | "when▁she▁": 1933, 2073 | ".▁Then▁": 1934, 2074 | "run▁": 1935, 2075 | "ound": 1936, 2076 | "hole": 1937, 2077 | "dream": 1938, 2078 | "to▁play▁with": 1939, 2079 | "strong▁": 1940, 2080 | "had▁fun": 1941, 2081 | "learn▁": 1942, 2082 | "with▁his▁mom": 1943, 2083 | "ez": 1944, 2084 | "picked▁it▁": 1945, 2085 | "Sall": 1946, 2086 | "tiny▁": 1947, 2087 | "asked▁his▁": 1948, 2088 | "Finall": 1949, 2089 | "bla": 1950, 2090 | "picture▁": 1951, 2091 | "ve▁the▁": 1952, 2092 | "was▁sad▁and▁": 1953, 2093 | "sorry,▁": 1954, 2094 | "mouth": 1955, 2095 | "oo": 1956, 2096 | "ma▁": 1957, 2097 | "by▁the▁": 1958, 2098 | "!\"▁Tom▁": 1959, 2099 | "been▁": 1960, 2100 | "dark": 1961, 2101 | "stop": 1962, 2102 | "fre": 1963, 2103 | ",▁but▁it▁": 1964, 2104 | "sig": 1965, 2105 | "sit▁": 1966, 2106 | ",▁Tim▁": 1967, 2107 | "care▁": 1968, 2108 | "fter▁a▁": 1969, 2109 | ".▁Let's▁": 1970, 2110 | ".▁But▁the▁": 1971, 2111 | "mom▁and▁dad": 1972, 2112 | "Bobo▁": 1973, 2113 | "top": 1974, 2114 | "stayed▁": 1975, 2115 | "hank▁you▁": 1976, 2116 | "excited▁and▁": 1977, 2117 | "all▁the▁": 1978, 2118 | "do▁not▁": 1979, 2119 | "catch": 1980, 2120 | "in▁the▁water": 1981, 2121 | "Maybe▁": 1982, 2122 | "!\"\nThe▁": 1983, 2123 | "lat": 1984, 2124 | "into▁a▁": 1985, 2125 | "se,▁": 1986, 2126 | "inside": 1987, 2127 | "going▁": 1988, 2128 | "nodded▁and▁": 1989, 2129 | "baby▁": 1990, 2130 | "said,▁\"Let's▁": 1991, 2131 | "fini": 1992, 2132 | "kind▁and▁": 1993, 2133 | "wanted▁to▁play▁": 1994, 2134 | "key▁": 1995, 2135 | "ed.▁He▁": 1996, 2136 | "▁high": 1997, 2137 | "made▁the▁": 1998, 2138 | "Jane▁": 1999, 2139 | "fall": 2000, 2140 | "sea": 2001, 2141 | "didn't▁know▁": 2002, 2142 | "climbed▁": 2003, 2143 | "ed.\n\"": 2004, 2144 | ".\nSu": 2005, 2145 | "ely▁": 2006, 2146 | "store▁": 2007, 2147 | "his▁mom": 2008, 2148 | "cheer": 2009, 2149 | "he▁would▁": 2010, 2150 | "store": 2011, 2151 | "help▁me▁": 2012, 2152 | "This▁": 2013, 2153 | "▁amaz": 2014, 2154 | "!\"▁Tim▁": 2015, 2155 | "sees▁": 2016, 2156 | "fight": 2017, 2157 | "ed▁to▁be▁": 2018, 2158 | "ed.▁They▁": 2019, 2159 | "was▁so▁happy▁and▁": 2020, 2160 | "ever▁": 2021, 2161 | "Thank▁you,▁": 2022, 2162 | "find▁the▁": 2023, 2163 | "i▁": 2024, 2164 | "pe▁": 2025, 2165 | "spla": 2026, 2166 | "▁at": 2027, 2167 | "ot": 2028, 2168 | "eat▁the▁": 2029, 2169 | "Can▁we▁": 2030, 2170 | "said▁\"": 2031, 2171 | "think▁": 2032, 2172 | "Plea": 2033, 2173 | "Sue.▁Sue▁": 2034, 2174 | "ed.▁She▁": 2035, 2175 | "book▁": 2036, 2176 | "wea": 2037, 2177 | "before▁": 2038, 2178 | "felt▁very▁": 2039, 2179 | "treat": 2040, 2180 | "fac": 2041, 2181 | "play▁together": 2042, 2182 | "tor▁": 2043, 2183 | ".▁So": 2044, 2184 | "said.\n": 2045, 2185 | ".\nBut▁then,▁": 2046, 2186 | "dog▁named▁Max": 2047 2187 | }, 2188 | "merges": [ 2189 | "e ▁", 2190 | "d ▁", 2191 | "t h", 2192 | ". ▁", 2193 | "▁ a", 2194 | "t ▁", 2195 | "y ▁", 2196 | "t o", 2197 | "s ▁", 2198 | "n d▁", 2199 | "e r", 2200 | "e d▁", 2201 | "th e▁", 2202 | ", ▁", 2203 | "w a", 2204 | "i n", 2205 | "h e▁", 2206 | "to ▁", 2207 | "o u", 2208 | "▁a nd▁", 2209 | "a r", 2210 | "e n", 2211 | ".▁ T", 2212 | "▁a ▁", 2213 | "h a", 2214 | "o m", 2215 | "s a", 2216 | "▁ the▁", 2217 | "h e", 2218 | "i m", 2219 | "o n", 2220 | "g ▁", 2221 | "l l", 2222 | "s t", 2223 | "wa s▁", 2224 | "a n", 2225 | "o r", 2226 | "a y", 2227 | "i t", 2228 | "er ▁", 2229 | "i d", 2230 | ". \n", 2231 | "r e", 2232 | "i s▁", 2233 | "p l", 2234 | "i r", 2235 | "a m", 2236 | "ed▁ to▁", 2237 | "i l", 2238 | "w i", 2239 | "th e", 2240 | "r i", 2241 | "l o", 2242 | "a ▁", 2243 | "a nd▁", 2244 | ".▁ H", 2245 | "he y▁", 2246 | ".▁ S", 2247 | "o ▁", 2248 | ".▁H e▁", 2249 | "▁ h", 2250 | "n o", 2251 | "a t▁", 2252 | ".▁T hey▁", 2253 | "er e▁", 2254 | "wi th", 2255 | "O n", 2256 | "u n", 2257 | "in g▁", 2258 | "v er", 2259 | "p p", 2260 | ".▁T he▁", 2261 | "\" ▁", 2262 | "c k", 2263 | "r y", 2264 | "b i", 2265 | "ar t", 2266 | "l i", 2267 | "ll ▁", 2268 | ",▁ \"", 2269 | "l e", 2270 | "s to", 2271 | ".▁S he▁", 2272 | "b e", 2273 | "d ay", 2274 | "st art", 2275 | "i t▁", 2276 | "u t▁", 2277 | "s h", 2278 | "om ▁", 2279 | "o k", 2280 | "w ▁", 2281 | "y ou", 2282 | "sa id", 2283 | "m a", 2284 | "in g", 2285 | "l e▁", 2286 | "s e", 2287 | "b o", 2288 | "l d▁", 2289 | "ha pp", 2290 | "im ▁", 2291 | "en d", 2292 | "f ri", 2293 | "d o", 2294 | "g h", 2295 | "o f", 2296 | "b a", 2297 | "u p", 2298 | "a y▁", 2299 | "c h", 2300 | "e d", 2301 | "ver y▁", 2302 | "an ▁", 2303 | "n e", 2304 | "f or", 2305 | "wa s", 2306 | "ha d▁", 2307 | "wa n", 2308 | "l ▁", 2309 | "c e▁", 2310 | "bi g▁", 2311 | "en ▁", 2312 | "said ,▁\"", 2313 | "sto ry", 2314 | "fri end", 2315 | "it t", 2316 | "< |", 2317 | "_ story", 2318 | "| >", 2319 | "▁ <|", 2320 | "start _story", 2321 | "▁<| start_story", 2322 | "▁<|start_story |>", 2323 | "e ,▁", 2324 | "L il", 2325 | "the y▁", 2326 | "v e▁", 2327 | "r o", 2328 | "pl ay", 2329 | "no t▁", 2330 | ".▁ I", 2331 | "On e▁", 2332 | "g e", 2333 | "itt le▁", 2334 | "was ▁a▁", 2335 | "k e▁", 2336 | "' s▁", 2337 | "l ittle▁", 2338 | "t im", 2339 | "h is▁", 2340 | "a t", 2341 | "e s", 2342 | "th at▁", 2343 | "One▁ day", 2344 | "n am", 2345 | "c ar", 2346 | "in ▁the▁", 2347 | "ou ld▁", 2348 | "i d▁", 2349 | "nam ed▁", 2350 | "s he▁", 2351 | "wan t", 2352 | "r a", 2353 | "w ere▁", 2354 | "en t▁", 2355 | "T he▁", 2356 | "th ere▁", 2357 | "th er", 2358 | "to▁ the▁", 2359 | "h er▁", 2360 | "ed▁ and▁", 2361 | "s o▁", 2362 | "g o", 2363 | "f e", 2364 | "\" \n", 2365 | "b ir", 2366 | "pl ay▁", 2367 | "on ▁a▁", 2368 | "w h", 2369 | "sa w", 2370 | "y ▁and▁", 2371 | ", ▁and▁", 2372 | "he l", 2373 | "want ed▁to▁", 2374 | "you ▁", 2375 | "s e▁", 2376 | "u r", 2377 | "b ut▁", 2378 | "▁<|start_story|> On", 2379 | "! ▁", 2380 | "▁<|start_story|>On ce▁", 2381 | "w ent▁", 2382 | "hel p", 2383 | "f i", 2384 | "I ▁", 2385 | "▁h is▁", 2386 | "lo ok", 2387 | "ou nd▁", 2388 | "ed▁ the▁", 2389 | "up on▁a▁", 2390 | "upon▁a▁ tim", 2391 | "▁<|start_story|>Once▁ upon▁a▁tim", 2392 | "with ▁", 2393 | "T im▁", 2394 | "there▁ was▁a▁", 2395 | "y ▁a", 2396 | ".▁I t▁", 2397 | "s k", 2398 | "f un", 2399 | "l a", 2400 | "t a", 2401 | "p o", 2402 | "T im", 2403 | "c a", 2404 | "▁<|start_story|>Once▁upon▁a▁tim e,▁", 2405 | "e a", 2406 | "b e▁", 2407 | "One▁day ,▁", 2408 | "! \"▁", 2409 | "s ▁and▁", 2410 | "s om", 2411 | "Lil y▁", 2412 | "to ge", 2413 | ",▁ but▁", 2414 | "of ▁", 2415 | "t re", 2416 | "s t▁", 2417 | "e▁ and▁", 2418 | "k ▁", 2419 | "▁h er▁", 2420 | "ck ▁", 2421 | ", ▁a▁", 2422 | "c am", 2423 | "ir ▁", 2424 | "m ▁", 2425 | "e t", 2426 | "was▁ very▁", 2427 | "bir d▁", 2428 | "m y▁", 2429 | "c o", 2430 | "s m", 2431 | "s .▁", 2432 | "g ir", 2433 | "m om▁", 2434 | "e c", 2435 | "w n", 2436 | "saw ▁a▁", 2437 | "t er", 2438 | "e .▁", 2439 | "f u", 2440 | "r e▁", 2441 | "m om", 2442 | "the ir▁", 2443 | "p ar", 2444 | ". \"▁", 2445 | "on ▁the▁", 2446 | "▁<|start_story|>Once▁upon▁a▁time,▁ there▁was▁a▁", 2447 | "g a", 2448 | "cam e▁", 2449 | "lo v", 2450 | "ne w▁", 2451 | "t▁ the▁", 2452 | "B ut▁", 2453 | "i c", 2454 | "M a", 2455 | "' t▁", 2456 | "d id▁", 2457 | "Ma x", 2458 | "ch ▁", 2459 | "play ed▁", 2460 | "for ▁", 2461 | "toge ther", 2462 | "c ould▁", 2463 | ".▁T im▁", 2464 | "had▁ a▁", 2465 | "ha ve▁", 2466 | ". \"\n", 2467 | "u m", 2468 | "i s", 2469 | "y .▁", 2470 | "gir l▁", 2471 | "ou gh", 2472 | "t▁ to▁", 2473 | ".\n \"", 2474 | "b u", 2475 | "f a", 2476 | "e s▁", 2477 | "c an▁", 2478 | "u e▁", 2479 | "f ound▁", 2480 | "s id", 2481 | "m or", 2482 | "sm il", 2483 | "e x", 2484 | "li k", 2485 | "look ed▁", 2486 | "o w", 2487 | "in ▁", 2488 | "T om", 2489 | "did▁ not▁", 2490 | "wa y", 2491 | "a l", 2492 | "bo y▁", 2493 | "happ y▁", 2494 | "sa id▁", 2495 | "f r", 2496 | "T om▁", 2497 | "n d", 2498 | "fe l", 2499 | "on ▁", 2500 | "ou t", 2501 | "h o", 2502 | "som e", 2503 | "th er▁", 2504 | "w ould▁", 2505 | "ha t▁", 2506 | "o d▁", 2507 | "li ke▁", 2508 | "Y ou", 2509 | "do g▁", 2510 | "▁a n", 2511 | "th ing▁", 2512 | ",▁ the▁", 2513 | "happ y", 2514 | "p ▁", 2515 | "re a", 2516 | "to y", 2517 | "d ay▁", 2518 | "w or", 2519 | "c at▁", 2520 | "l k", 2521 | "S am", 2522 | "r ▁", 2523 | "s p", 2524 | "ba ll", 2525 | "? \"▁", 2526 | "with ▁the▁", 2527 | "s ma", 2528 | "t t", 2529 | "fel t▁", 2530 | "ma ke▁", 2531 | "e l", 2532 | "s car", 2533 | "on e▁", 2534 | "friend s", 2535 | "th ing", 2536 | "bi g", 2537 | "One▁day ,▁a▁", 2538 | "p i", 2539 | "of ▁the▁", 2540 | "k e", 2541 | "W h", 2542 | "d e▁", 2543 | ".▁ A", 2544 | "lov ed▁to▁", 2545 | "v ed▁", 2546 | "start ed▁to▁", 2547 | "m u", 2548 | "i gh", 2549 | "th ough", 2550 | "d d", 2551 | "en t", 2552 | "g o▁", 2553 | "m an", 2554 | ".\n The▁", 2555 | "in ▁a▁", 2556 | "se e▁", 2557 | "was▁ so▁", 2558 | "to o", 2559 | "little▁ girl▁", 2560 | "m e", 2561 | "u g", 2562 | "u gh", 2563 | "par k", 2564 | "ou t▁", 2565 | "p a", 2566 | "Max ▁", 2567 | "ma de▁", 2568 | "M i", 2569 | "with ▁his▁", 2570 | ".▁ \"", 2571 | "lik ed▁to▁", 2572 | "ar n", 2573 | "t ri", 2574 | "c om", 2575 | "fi nd▁", 2576 | "o ,▁", 2577 | "r y▁", 2578 | "e ll", 2579 | "some thing▁", 2580 | "bo x", 2581 | "T hey▁", 2582 | "do wn", 2583 | "the m", 2584 | "c at", 2585 | "r ou", 2586 | "it▁ was▁", 2587 | "fun ▁", 2588 | "f o", 2589 | "wan t▁to▁", 2590 | "▁a re▁", 2591 | "friend s▁", 2592 | "to ok", 2593 | "g re", 2594 | ".\n One▁day,▁", 2595 | "le arn", 2596 | "u c", 2597 | "found▁ a▁", 2598 | "y ,▁", 2599 | "p ut▁", 2600 | "o b", 2601 | "sa y", 2602 | "r an", 2603 | "p u", 2604 | "sa d", 2605 | "sa w▁", 2606 | "help ▁", 2607 | "to y▁", 2608 | "k no", 2609 | ".\n A", 2610 | "u se▁", 2611 | "wa lk", 2612 | "boy▁ named▁", 2613 | "ga in", 2614 | "on g", 2615 | "p re", 2616 | "l y▁", 2617 | "▁<|start_story|> One▁day,▁a▁", 2618 | "e ver", 2619 | "f ▁", 2620 | "li ved▁", 2621 | "go od▁", 2622 | "q u", 2623 | "s un", 2624 | "wi ll▁", 2625 | "▁and▁ the▁", 2626 | "o p", 2627 | "sh ar", 2628 | "fu l▁", 2629 | "bir d", 2630 | "he y▁a", 2631 | "s ur", 2632 | "o d", 2633 | "ar d", 2634 | "som e▁", 2635 | "a ll", 2636 | "n 't▁", 2637 | "en ,▁", 2638 | "th ▁", 2639 | "v er▁", 2640 | "h om", 2641 | "ar d▁", 2642 | "L uc", 2643 | "d i", 2644 | "h er", 2645 | "S po", 2646 | "happ y▁and▁", 2647 | "S u", 2648 | "B en▁", 2649 | "la ugh", 2650 | "ba ck▁", 2651 | ".▁ But▁", 2652 | "sa d▁", 2653 | "you r▁", 2654 | ", \"▁", 2655 | "ar ▁", 2656 | "t i", 2657 | "p e", 2658 | "wh en▁", 2659 | "o ther", 2660 | "sma ll▁", 2661 | "lo w", 2662 | "the m▁", 2663 | "l d", 2664 | ".▁T hey▁a", 2665 | "n a", 2666 | "w e▁", 2667 | "st i", 2668 | "ha n", 2669 | "play ing▁", 2670 | "▁a ll▁", 2671 | "w hat▁", 2672 | "g i", 2673 | "You ▁", 2674 | "S ue▁", 2675 | "d ec", 2676 | "d a", 2677 | "smil ed▁and▁", 2678 | "s w", 2679 | "a sk", 2680 | "! \"\n", 2681 | "e▁ the▁", 2682 | ".▁They▁ were▁", 2683 | "man y▁", 2684 | "r u", 2685 | "d er", 2686 | "a l▁", 2687 | "o w▁", 2688 | "play▁ with▁", 2689 | "t 's▁", 2690 | "c lo", 2691 | "M om", 2692 | ".▁I ▁", 2693 | "ed▁ her▁", 2694 | "ba ll▁", 2695 | "ed▁ his▁", 2696 | "went▁ to▁the▁", 2697 | "h ou", 2698 | "h im", 2699 | "be came▁", 2700 | "▁a▁ big▁", 2701 | "i ce▁", 2702 | "to o▁", 2703 | "es ,▁", 2704 | "e .▁The▁", 2705 | "c it", 2706 | "little▁girl▁ named▁", 2707 | "ca use▁", 2708 | "wh o▁", 2709 | "s i", 2710 | "dec id", 2711 | "um p", 2712 | "do g", 2713 | "m o", 2714 | "W e▁", 2715 | "wa t", 2716 | "though t▁", 2717 | "r ed▁", 2718 | "out sid", 2719 | "B ob", 2720 | "ba ck", 2721 | "on 't▁", 2722 | "saw▁a▁ big▁", 2723 | ".▁ One▁day,▁", 2724 | "n y▁", 2725 | "be cause▁", 2726 | "t s▁", 2727 | "e .▁He▁", 2728 | "t ur", 2729 | "ex cit", 2730 | "r un", 2731 | "way s▁", 2732 | "▁and▁ said,▁\"", 2733 | "sh ▁", 2734 | "ed▁ that▁", 2735 | "e▁ to▁", 2736 | "with ▁her▁", 2737 | "Lil y", 2738 | "e nd▁", 2739 | "c l", 2740 | "big ,▁", 2741 | "fr om", 2742 | "go t▁", 2743 | "p ri", 2744 | "m an▁", 2745 | "b le", 2746 | "be st▁", 2747 | "▁a b", 2748 | "f f", 2749 | "k new▁", 2750 | "bo th▁", 2751 | "L et", 2752 | "b r", 2753 | "tri ed▁to▁", 2754 | "decid ed▁to▁", 2755 | "on ,▁", 2756 | "s or", 2757 | "d o▁", 2758 | "r an▁", 2759 | "c ou", 2760 | "ro om", 2761 | "▁a l", 2762 | "Sam ▁", 2763 | "▁a sk", 2764 | "le a", 2765 | "for ▁a▁", 2766 | "to ld▁", 2767 | "j u", 2768 | ".▁T om▁", 2769 | "Mi a▁", 2770 | "l u", 2771 | "Let 's▁", 2772 | "pl a", 2773 | "day ,▁", 2774 | "in sid", 2775 | "B en", 2776 | "c le", 2777 | "Lil y▁and▁", 2778 | "ea ch▁", 2779 | "pre tt", 2780 | "mor e▁", 2781 | "r ound▁", 2782 | "s s", 2783 | "t ter", 2784 | "car e", 2785 | "saw ▁the▁", 2786 | "sur pri", 2787 | "c re", 2788 | "s o", 2789 | "ga ve▁", 2790 | "c e", 2791 | "i nd▁", 2792 | "l y", 2793 | ".▁ \n", 2794 | "happ en", 2795 | "c an", 2796 | "at▁ the▁", 2797 | "up ▁", 2798 | "th an", 2799 | "j ump", 2800 | "fu l", 2801 | "h ug", 2802 | "sh in", 2803 | "op en", 2804 | "e p", 2805 | "d id", 2806 | "fa st", 2807 | "s ,▁", 2808 | "f low", 2809 | "was▁ not▁", 2810 | "t ▁and▁", 2811 | "c he", 2812 | "little▁ boy▁named▁", 2813 | "t ed▁", 2814 | "ra b", 2815 | "happy▁ to▁", 2816 | "A n", 2817 | "o ther▁", 2818 | "? \"\n", 2819 | "sh ow", 2820 | "toge ther▁", 2821 | "Y es,▁", 2822 | "▁a gain", 2823 | "friend s.▁", 2824 | "no t", 2825 | "wa y▁", 2826 | "say s", 2827 | "on e", 2828 | "scar ed", 2829 | "C an▁", 2830 | "e very▁", 2831 | "ever y", 2832 | "the y▁a", 2833 | "Luc y▁", 2834 | "st r", 2835 | "Wh en▁", 2836 | "b y▁", 2837 | "ta ke▁", 2838 | "it s▁", 2839 | "ge t▁", 2840 | "i ll", 2841 | "for ▁the▁", 2842 | "ing ▁and▁", 2843 | "han k▁", 2844 | "th is▁", 2845 | "c u", 2846 | "▁a way", 2847 | "im al", 2848 | "om▁ that▁", 2849 | "they▁ were▁", 2850 | "f le", 2851 | "j o", 2852 | "e t▁", 2853 | "e v", 2854 | ".▁T h", 2855 | "kno w▁", 2856 | ",▁but▁ he▁", 2857 | "s .▁They▁", 2858 | "m ou", 2859 | "wa ter", 2860 | "tre e▁", 2861 | "could▁ not▁", 2862 | "n ▁", 2863 | "▁a ll", 2864 | "on g▁", 2865 | "s▁ to▁", 2866 | "with ▁a▁", 2867 | ".▁It▁ was▁", 2868 | "Tim ▁and▁", 2869 | "went▁ to▁", 2870 | "be a", 2871 | "un der", 2872 | "l ou", 2873 | "o ld▁", 2874 | "h im▁", 2875 | "ed▁ it▁", 2876 | "om▁that▁ day▁", 2877 | "li st", 2878 | "F r", 2879 | "rou nd", 2880 | "you ,▁", 2881 | "d y▁", 2882 | "sp ec", 2883 | "said,▁\" I▁", 2884 | ".▁The▁ bird▁", 2885 | "it e▁", 2886 | "wa r", 2887 | "did n't▁", 2888 | "pi ck", 2889 | "d e", 2890 | "pp ed▁", 2891 | "said,▁\" T", 2892 | "il y▁", 2893 | "pl e▁", 2894 | "gh t", 2895 | "happen ed", 2896 | ",▁ he▁", 2897 | "id ea", 2898 | "e .▁They▁", 2899 | "es ▁and▁", 2900 | "ex p", 2901 | "▁h im", 2902 | "he ard▁", 2903 | "e l▁", 2904 | "hou se", 2905 | "m e▁", 2906 | "u re", 2907 | "or ▁", 2908 | "ne ar", 2909 | "wor k", 2910 | "f ter", 2911 | "y mor", 2912 | "d an", 2913 | "ts▁ of▁", 2914 | "ing ▁the▁", 2915 | "from ▁the▁", 2916 | "▁a t▁the▁", 2917 | "e ar", 2918 | "H e▁", 2919 | "b l", 2920 | "S ar", 2921 | "lo ts▁of▁", 2922 | "p er", 2923 | "sma ll", 2924 | "'s▁ mom▁", 2925 | "ed ,▁\"", 2926 | "spec i", 2927 | "fri end▁", 2928 | "each▁ other", 2929 | "b le▁", 2930 | "bo ok", 2931 | "u s", 2932 | "g am", 2933 | "i f▁", 2934 | "car ▁", 2935 | "learn ed▁that▁", 2936 | "than k", 2937 | "g e▁", 2938 | "ed▁ a▁", 2939 | "e .\n", 2940 | "Spo t▁", 2941 | "every▁ day", 2942 | "par k▁", 2943 | "il ▁", 2944 | "il e▁", 2945 | "ro ck", 2946 | "co l", 2947 | "d re", 2948 | "thing s▁", 2949 | ".▁A nd▁", 2950 | "ju st▁", 2951 | "flow er", 2952 | "n ice▁", 2953 | "e st", 2954 | "sad▁ and▁", 2955 | ".▁T im", 2956 | "s .▁He▁", 2957 | "d on't▁", 2958 | "ne ver▁", 2959 | "laugh ed▁and▁", 2960 | "l ong", 2961 | "s qu", 2962 | "f t", 2963 | "▁a round▁", 2964 | "e .▁She▁", 2965 | "exp ec", 2966 | ",▁and▁ the▁", 2967 | "▁<|start_story|>Once▁upon▁a▁time,▁ in▁a▁", 2968 | "You ▁are▁", 2969 | "g ry", 2970 | "p r", 2971 | "cl im", 2972 | "ha nd", 2973 | "t w", 2974 | "pe o", 2975 | "Fr om▁that▁day▁", 2976 | "f am", 2977 | "p rou", 2978 | "in to▁the▁", 2979 | "a ll▁", 2980 | "in▁the▁ park", 2981 | "tur n", 2982 | ".▁S ue▁", 2983 | "Tom ▁and▁", 2984 | "clim b", 2985 | "Mi a", 2986 | "g ard", 2987 | "th en▁", 2988 | "t ru", 2989 | "prett y▁", 2990 | "dd en", 2991 | "am ▁", 2992 | "un expec", 2993 | ".▁It▁ was▁a▁", 2994 | ",▁ so▁", 2995 | "loved▁to▁ play▁", 2996 | "s▁ the▁", 2997 | "s .▁She▁", 2998 | "m y", 2999 | ".▁He▁ wanted▁to▁", 3000 | "S he▁", 3001 | "ll ed▁", 3002 | "in k", 3003 | "took ▁", 3004 | ".▁They▁ played▁", 3005 | "up ▁and▁", 3006 | "h ur", 3007 | "unexpec ted▁", 3008 | "wat ch", 3009 | "D a", 3010 | "da d▁", 3011 | "to▁ be▁", 3012 | "er ▁and▁", 3013 | "Tim .▁Tim▁", 3014 | "f ar", 3015 | "he a", 3016 | ".▁H is▁", 3017 | "sor ry", 3018 | ",▁ they▁", 3019 | "f ro", 3020 | "have▁ a▁", 3021 | "k ind▁", 3022 | "gi ve▁", 3023 | "no w", 3024 | ".▁They▁a ll▁", 3025 | "po t▁", 3026 | "h igh", 3027 | "e p▁", 3028 | ".\n They▁", 3029 | ".▁ Lily▁", 3030 | "surpri se", 3031 | "ev en▁", 3032 | "ha t", 3033 | "t ra", 3034 | "p ic", 3035 | "M om▁", 3036 | "said,▁\" Yes,▁", 3037 | "wh ere▁", 3038 | "un t", 3039 | "mu ch▁", 3040 | "▁a t▁", 3041 | "col or", 3042 | "b er", 3043 | "pl an", 3044 | "o ok", 3045 | "v ing▁", 3046 | "sun ▁", 3047 | "box ▁", 3048 | "f in", 3049 | "▁a s▁", 3050 | "J a", 3051 | "dog▁ named▁", 3052 | ",▁and▁ they▁", 3053 | "ll y▁", 3054 | "hank▁ you,▁", 3055 | "something▁ unexpected▁", 3056 | "se l", 3057 | "fr om▁", 3058 | "' m▁", 3059 | "to▁ play▁", 3060 | "something▁unexpected▁ happened", 3061 | "g g", 3062 | "I ▁a", 3063 | "made▁ a▁", 3064 | "ic ▁", 3065 | "ou t▁the▁", 3066 | "b ra", 3067 | "com e▁", 3068 | "fe el▁", 3069 | "Bob ▁", 3070 | "▁h er", 3071 | "l id", 3072 | "c ha", 3073 | "friend ,▁", 3074 | "ar k", 3075 | "g round", 3076 | "B u", 3077 | "mom ▁and▁", 3078 | "▁al ways▁", 3079 | "o l", 3080 | ".▁The▁ cat▁", 3081 | "be tter", 3082 | "that▁ he▁", 3083 | "no i", 3084 | "igh t", 3085 | "ne x", 3086 | "cou ld", 3087 | "ed▁ a", 3088 | "s ha", 3089 | "ma k", 3090 | "J o", 3091 | "wn ▁", 3092 | "fi sh▁", 3093 | "lo ve▁", 3094 | "sti ll▁", 3095 | "k id", 3096 | "bea u", 3097 | "ma g", 3098 | "▁ab out▁", 3099 | "ta lk", 3100 | "had▁ an▁", 3101 | "to▁ his▁", 3102 | "From▁that▁day▁ on,▁", 3103 | "sh ould▁", 3104 | "go od", 3105 | "put▁ the▁", 3106 | "all y▁", 3107 | "t ▁a▁", 3108 | "prou d▁", 3109 | "d ra", 3110 | ".\n But▁", 3111 | "happ y.▁", 3112 | "kno w", 3113 | "K itt", 3114 | "s ou", 3115 | "s lid", 3116 | "T h", 3117 | ".▁S o,▁", 3118 | "s ▁a▁", 3119 | "beau ti", 3120 | ".▁ Max▁", 3121 | ".\n Tim▁", 3122 | "gre at▁", 3123 | "list en", 3124 | ".▁ E", 3125 | "in ▁his▁", 3126 | "ar ound▁", 3127 | "l ong▁", 3128 | "t▁ of▁", 3129 | "s of", 3130 | "hug g", 3131 | "took ▁the▁", 3132 | "they▁a ll▁", 3133 | "!▁ The▁", 3134 | "th en,▁", 3135 | "e at▁", 3136 | "friend s▁and▁", 3137 | "in k▁", 3138 | "Spo t", 3139 | ".▁ We▁", 3140 | "v e", 3141 | ".▁ You▁", 3142 | ".▁I n", 3143 | "f ir", 3144 | "looked▁ at▁", 3145 | "br ok", 3146 | "speci al▁", 3147 | "up ▁the▁", 3148 | ".▁He▁ was▁", 3149 | "fe el", 3150 | "D o▁", 3151 | "he▁ was▁", 3152 | "I t▁", 3153 | "t e", 3154 | "w in", 3155 | "n o▁", 3156 | "b y", 3157 | "lived▁ in▁a▁", 3158 | "N o,▁", 3159 | "in ▁her▁", 3160 | "ow ,▁", 3161 | "▁all▁ day", 3162 | "d u", 3163 | "to ▁a▁", 3164 | ".\"▁ The▁", 3165 | "gh t▁", 3166 | "Sar a", 3167 | "an d", 3168 | "n a▁", 3169 | "▁h ou", 3170 | "be ar▁", 3171 | ".▁S pot▁", 3172 | "e at", 3173 | "it ▁and▁", 3174 | "Su e", 3175 | "had▁an▁ idea", 3176 | "th at", 3177 | "smil ed", 3178 | "together .▁", 3179 | "do or", 3180 | "lu ff", 3181 | "y um", 3182 | "tre e", 3183 | "fi sh", 3184 | "cat▁ named▁", 3185 | "w ha", 3186 | "i ck", 3187 | ",▁ she▁", 3188 | "see▁ the▁", 3189 | "ing▁ to▁", 3190 | "ft er▁", 3191 | "liked▁to▁ play▁", 3192 | "nex t▁", 3193 | "g u", 3194 | ".\nA s▁", 3195 | "ar e▁", 3196 | "sh ed▁", 3197 | "look ▁", 3198 | "peo ple▁", 3199 | "he d", 3200 | "ho w▁", 3201 | "lou d▁", 3202 | ".▁The▁ dog▁", 3203 | "fle w▁", 3204 | "happ ily▁", 3205 | "was▁ sad", 3206 | "wanted▁to▁ help", 3207 | "ir re", 3208 | "lo ck", 3209 | "co ok", 3210 | "walk ed▁", 3211 | "though t", 3212 | "cle an", 3213 | "ne w", 3214 | ",▁ there▁was▁a▁", 3215 | "near ▁the▁", 3216 | "er▁ mom▁", 3217 | "I 'm▁", 3218 | "m et", 3219 | "L ook", 3220 | "it ch", 3221 | "be ing▁", 3222 | "an imal", 3223 | "hou se▁", 3224 | "an▁ to▁", 3225 | "s s▁", 3226 | "im p", 3227 | "looked▁ at▁the▁", 3228 | ".▁They▁a re▁", 3229 | "squ irre", 3230 | "care ful", 3231 | "s▁ were▁", 3232 | "in t", 3233 | "or t", 3234 | "s le", 3235 | "lo t▁of▁", 3236 | "▁h om", 3237 | "played▁ with▁the▁", 3238 | "Do▁ you▁", 3239 | "gard en", 3240 | "gir l", 3241 | "clo s", 3242 | "p t▁", 3243 | "b ri", 3244 | "c ry", 3245 | "▁an ▁", 3246 | "st a", 3247 | "st u", 3248 | "w e", 3249 | "c ri", 3250 | "A nd▁", 3251 | "e y", 3252 | "ou s▁", 3253 | "lov ed▁", 3254 | "▁a fter", 3255 | "n ic", 3256 | "ne ed", 3257 | "had▁ to▁", 3258 | "little▁ bird▁", 3259 | "F luff", 3260 | "was▁very▁ happy", 3261 | "Can▁ I▁", 3262 | "for est", 3263 | "z z", 3264 | "jump ed▁", 3265 | "at i", 3266 | "H i", 3267 | "al ways▁", 3268 | "▁<|start_story|>Once▁upon▁a▁time,▁there▁was▁a▁ little▁girl▁named▁", 3269 | "th re", 3270 | "ba d▁", 3271 | "e m", 3272 | "h id", 3273 | "be for", 3274 | "An na", 3275 | "said .▁\"", 3276 | "girl▁ named▁", 3277 | "shin y▁", 3278 | "c la", 3279 | "play ing", 3280 | "t ry", 3281 | "p art", 3282 | "had▁a▁ big▁", 3283 | "g ra", 3284 | "tim e▁", 3285 | "tt er▁", 3286 | "wi nd▁", 3287 | "mag ic▁", 3288 | "I▁a m▁", 3289 | "could n't▁", 3290 | ".▁It▁ is▁", 3291 | "says ,▁\"", 3292 | "of f", 3293 | "had▁ lots▁of▁", 3294 | "bl ue▁", 3295 | "ro w", 3296 | "rea ch", 3297 | "fo od▁", 3298 | "no dd", 3299 | "bu g▁", 3300 | "A my▁", 3301 | "play▁ with▁the▁", 3302 | "o ver", 3303 | "bi t▁", 3304 | "excit ed", 3305 | "make▁ a▁", 3306 | "tre e▁and▁", 3307 | ".\"\n The▁", 3308 | "!▁ I▁", 3309 | "toy s▁", 3310 | "sto ry▁", 3311 | "fo od", 3312 | "sti ck", 3313 | ".▁She▁ was▁", 3314 | "surprise d", 3315 | "fi x", 3316 | "his▁ mom▁", 3317 | "tw o▁", 3318 | "da d", 3319 | "the▁ best▁", 3320 | "back▁ to▁", 3321 | "ou r▁", 3322 | "sa t▁", 3323 | "t ry▁", 3324 | "b ro", 3325 | "toy s", 3326 | "she▁ was▁", 3327 | "sh o", 3328 | "is ▁a▁", 3329 | "D on't▁", 3330 | "an t▁", 3331 | "at e▁", 3332 | "together ▁and▁", 3333 | "m on", 3334 | "unt il▁", 3335 | "beauti ful▁", 3336 | "W hat▁", 3337 | "b rea", 3338 | "d r", 3339 | "b un", 3340 | "ing ▁a▁", 3341 | "y ell", 3342 | "scar ed▁", 3343 | ",▁ I▁", 3344 | "t in", 3345 | "en ▁the▁", 3346 | "s he", 3347 | "day▁ long", 3348 | "heard▁ a▁", 3349 | "to u", 3350 | "c on", 3351 | "in▁the▁ sk", 3352 | "l k▁", 3353 | "f lo", 3354 | "did▁not▁ want▁to▁", 3355 | "ay be▁", 3356 | "rab b", 3357 | "on ▁his▁", 3358 | "down ▁", 3359 | "big ▁and▁", 3360 | "le t's▁", 3361 | "ke pt▁", 3362 | "! \n", 3363 | "v ent", 3364 | "wat er▁", 3365 | "found▁a▁ big▁", 3366 | "her▁ mom▁", 3367 | "s po", 3368 | "smiled▁and▁ said,▁\"", 3369 | "▁a d", 3370 | "thought▁ it▁", 3371 | "me m", 3372 | "▁all ▁the▁", 3373 | "were▁ very▁", 3374 | "mu ch", 3375 | "to wn", 3376 | "▁an ymor", 3377 | "on▁the▁ ground", 3378 | "every one▁", 3379 | "m es", 3380 | "H is▁", 3381 | "so▁ much▁", 3382 | "g er", 3383 | "? ▁", 3384 | "f ly▁", 3385 | "▁<|start_story|>Once▁upon▁a▁time,▁there▁was▁a▁ little▁boy▁named▁", 3386 | "in d", 3387 | "shar e▁", 3388 | "s u", 3389 | "str ong", 3390 | ".▁S u", 3391 | "f ly", 3392 | "ca ke▁", 3393 | "that▁ the▁", 3394 | "open ed▁the▁", 3395 | "did▁not▁ know▁", 3396 | "H ell", 3397 | "?\"▁ The▁", 3398 | "s na", 3399 | "▁h ow▁", 3400 | "m i", 3401 | "lived▁ happily▁", 3402 | "said,▁\"T hank▁you,▁", 3403 | ",▁ there▁", 3404 | "sun ny▁", 3405 | "mou se▁", 3406 | "y .▁She▁", 3407 | "had▁ many▁", 3408 | "pick ed▁", 3409 | "out▁ of▁the▁", 3410 | "you▁ can▁", 3411 | "▁a way▁", 3412 | "re mem", 3413 | "e,▁ but▁", 3414 | "fa v", 3415 | "fr u", 3416 | "noi se", 3417 | "it▁ is▁", 3418 | "k itch", 3419 | "s .▁The▁", 3420 | "pl ea", 3421 | "ch o", 3422 | "ran d", 3423 | "y .▁He▁", 3424 | "be ar", 3425 | "An na▁", 3426 | "cu ri", 3427 | "▁and▁ a▁", 3428 | "ll ow", 3429 | "imp ort", 3430 | "mor al▁", 3431 | "wa it", 3432 | "bu g", 3433 | "ir t", 3434 | ".▁S am▁", 3435 | "it▁ to▁", 3436 | ".▁Th en,▁", 3437 | "fe ll▁", 3438 | "g la", 3439 | "be d", 3440 | ".▁ M", 3441 | "pla ce▁", 3442 | "v o", 3443 | "y▁a n", 3444 | "have▁ to▁", 3445 | "Tim 's▁", 3446 | "ca lled▁", 3447 | "lived▁ a▁", 3448 | "like▁ the▁", 3449 | "friends .▁They▁", 3450 | "gre en▁", 3451 | "!\"▁ The▁", 3452 | "be g", 3453 | "with▁ their▁", 3454 | "lea v", 3455 | ".\n Th", 3456 | "sa f", 3457 | "en jo", 3458 | "little▁boy▁named▁ Tim▁", 3459 | "came▁ to▁", 3460 | "because▁ he▁", 3461 | "w o", 3462 | "y ard", 3463 | ".\nOne▁day,▁ the▁", 3464 | "ever ▁after", 3465 | "back▁ to▁the▁", 3466 | "s.▁ One▁day,▁", 3467 | "dan c", 3468 | "for▁ help", 3469 | "met ▁a▁", 3470 | "fav or", 3471 | "that▁ she▁", 3472 | "ff er", 3473 | "J an", 3474 | "t ure", 3475 | ".▁ When▁", 3476 | ",▁but▁ she▁", 3477 | "F in", 3478 | "re d", 3479 | "Jo h", 3480 | "a p", 3481 | "ra in", 3482 | "fro g▁", 3483 | "s ,▁and▁", 3484 | "yum my▁", 3485 | "Kitt y▁", 3486 | "on▁ it", 3487 | ",▁but▁ the▁", 3488 | ".\n Lily▁", 3489 | "sa fe", 3490 | "fam il", 3491 | "became▁ good▁", 3492 | ",▁ Tim", 3493 | "c or", 3494 | "▁around▁ the▁", 3495 | "under ▁the▁", 3496 | "moral▁ of▁the▁", 3497 | "was▁so▁ happy", 3498 | "e▁ was▁", 3499 | ".▁She▁ wanted▁to▁", 3500 | "ed▁ their▁", 3501 | "favor ite▁", 3502 | "h ard▁", 3503 | ".▁They▁ both▁", 3504 | "▁ab out▁the▁", 3505 | "il d▁", 3506 | "th en", 3507 | "it 's▁", 3508 | "ed▁ it", 3509 | "down ▁and▁", 3510 | "friend ,▁a▁", 3511 | "sle ep", 3512 | "ver y", 3513 | ".▁Tim ▁and▁", 3514 | ".▁A ▁", 3515 | "lo st▁", 3516 | "ha ving▁", 3517 | "st er", 3518 | "sa y▁", 3519 | "lived▁happily▁ ever▁after", 3520 | "▁<|start_story|>Once▁upon▁a▁tim e▁", 3521 | "l y,▁", 3522 | "bo w", 3523 | ".▁She▁ said,▁\"", 3524 | "rea d▁", 3525 | "sel f", 3526 | "moral▁of▁the▁ story▁", 3527 | "ta ble", 3528 | "st ar", 3529 | "be h", 3530 | "ex pl", 3531 | "toy s▁and▁", 3532 | "help ed▁", 3533 | "Tim▁ was▁", 3534 | "di ffer", 3535 | "igh t▁", 3536 | "g r", 3537 | "his▁ friends▁", 3538 | "on ▁her▁", 3539 | "▁<|start_story|>Once▁upon▁a▁time,▁there▁was▁a▁ little▁", 3540 | "expl or", 3541 | "went▁ hom", 3542 | "do ll", 3543 | "found▁ the▁", 3544 | "played▁ together▁", 3545 | "w r", 3546 | "he▁ could▁", 3547 | "d ro", 3548 | "h un", 3549 | "h ▁", 3550 | "i g", 3551 | "Hell o,▁", 3552 | "went▁ for▁a▁", 3553 | "sw e", 3554 | "b lock", 3555 | "▁h im▁", 3556 | "st ay", 3557 | "es t▁", 3558 | "ta st", 3559 | "care ful▁", 3560 | "ll ▁the▁", 3561 | ".▁Tim▁ was▁", 3562 | "work ed▁", 3563 | "ro om▁", 3564 | "tre e.▁The▁", 3565 | "go▁ to▁the▁", 3566 | "et ▁and▁", 3567 | "n ight", 3568 | "sh out", 3569 | "▁an imal", 3570 | "a▁ big▁", 3571 | "s .\n", 3572 | "One▁ sunny▁", 3573 | "wor ry", 3574 | "Ja ck▁", 3575 | "lived▁happily▁ever▁after .▁", 3576 | "small ▁hou", 3577 | "her▁ mom", 3578 | "can 't▁", 3579 | "pic ture", 3580 | ",\"▁ said▁", 3581 | "y▁ was▁", 3582 | "d irt", 3583 | "Lil y.▁", 3584 | "would▁ be▁", 3585 | "re▁ you▁", 3586 | "b or", 3587 | "ok ay", 3588 | "ra c", 3589 | "▁a wa", 3590 | "went▁to▁the▁ park▁", 3591 | "had▁a▁ great▁", 3592 | "beh ind▁", 3593 | "m ar", 3594 | "curi ou", 3595 | "beg an▁to▁", 3596 | "c ro", 3597 | ",▁so▁ he▁", 3598 | "wh ile▁", 3599 | "y .▁The▁", 3600 | "like▁ to▁", 3601 | "M r", 3602 | "had▁lots▁of▁ fun", 3603 | "on d", 3604 | "hugg ed▁", 3605 | "fle w", 3606 | "le t▁", 3607 | "c es", 3608 | "r ough", 3609 | "we▁ can▁", 3610 | "was▁very▁ happy▁and▁", 3611 | "sw ing", 3612 | "I t's▁", 3613 | "cre am", 3614 | "pu sh", 3615 | "bra ve▁", 3616 | ".▁ B", 3617 | "go▁ hom", 3618 | "excit ed▁to▁", 3619 | "le▁ and▁", 3620 | ",▁but▁ it▁was▁", 3621 | "d in", 3622 | "ne ed▁to▁", 3623 | "sh i", 3624 | "what▁ was▁", 3625 | ".▁ N", 3626 | "sof t▁", 3627 | "a gain", 3628 | "wha t▁to▁", 3629 | "bo at", 3630 | "fo llow", 3631 | "kitch en", 3632 | "S o,▁", 3633 | "s ing", 3634 | "do w", 3635 | "m in", 3636 | "!\"▁ said▁", 3637 | "▁all▁ day▁long", 3638 | "dden ly", 3639 | "s.▁ \"", 3640 | "bu tter", 3641 | "list en▁", 3642 | "played▁ together", 3643 | "put▁ it▁", 3644 | "to▁ make▁", 3645 | "ke ep▁", 3646 | "flo or", 3647 | "sor ry▁", 3648 | "fun ny▁", 3649 | "bo at▁", 3650 | "to w", 3651 | "remem ber", 3652 | "toy▁ car", 3653 | "sto pped▁", 3654 | "fir st", 3655 | "ran▁ to▁the▁", 3656 | "Do▁you▁ want▁to▁", 3657 | "m is", 3658 | "run n", 3659 | "la ug", 3660 | "laug hed", 3661 | "t ea", 3662 | "▁ad vent", 3663 | "down ▁the▁", 3664 | "came▁ to▁the▁", 3665 | "ha t's▁", 3666 | "J u", 3667 | "cook i", 3668 | "le ss", 3669 | "ta il", 3670 | ".▁In ▁the▁", 3671 | "sou nd", 3672 | "pr om", 3673 | "ro ck▁", 3674 | "ed ,▁", 3675 | ",▁but▁ they▁", 3676 | "an t", 3677 | "de li", 3678 | "o on", 3679 | "kid s▁", 3680 | "look ing▁", 3681 | "pre t", 3682 | "o ver▁", 3683 | ".▁They▁ had▁", 3684 | "became▁ best▁", 3685 | "squirre l▁", 3686 | "Hi ,▁", 3687 | "dden ly,▁", 3688 | "fam ily▁", 3689 | "thank ed▁", 3690 | "ball ▁and▁", 3691 | "d ri", 3692 | "outsid e▁", 3693 | "have▁ fun", 3694 | "h ill", 3695 | "find▁ a▁", 3696 | "a d", 3697 | "war m", 3698 | "cam e▁and▁", 3699 | "wo od", 3700 | "sh ow▁", 3701 | "k ay", 3702 | ".▁T om", 3703 | ".▁ You▁are▁", 3704 | "very one▁", 3705 | "Mom ,▁", 3706 | "of ▁a▁", 3707 | "▁<|start_story|>Once▁upon▁a▁time,▁there▁was▁a▁little▁boy▁named▁ Tim.▁Tim▁", 3708 | "when▁ he▁", 3709 | "ou r", 3710 | "ask ed▁", 3711 | ".\"▁ They▁", 3712 | "scar ed▁and▁", 3713 | "ho p", 3714 | "thank ed▁the▁", 3715 | "play▁with▁ it", 3716 | ": ▁", 3717 | "▁<|start_story|>One▁day,▁a▁ little▁girl▁named▁", 3718 | "ran▁ to▁", 3719 | "cle an▁", 3720 | "h ard", 3721 | ".\n Tom▁", 3722 | "moral▁of▁the▁story▁ is▁", 3723 | "I n", 3724 | "tim e▁to▁", 3725 | "do es▁", 3726 | "bun ny▁", 3727 | "d▁ and▁", 3728 | "far m", 3729 | "ed▁to▁ the▁", 3730 | "t e▁", 3731 | ".▁T his▁", 3732 | "c ra", 3733 | "▁a r", 3734 | "Tom .▁Tom▁", 3735 | ".\n One▁day,▁a▁", 3736 | "good by", 3737 | "ge t▁the▁", 3738 | "w on", 3739 | "tou ch", 3740 | "not ▁a▁", 3741 | "rab bit▁", 3742 | "happy .▁They▁", 3743 | "m y▁and▁", 3744 | "little▁ boy▁", 3745 | "▁<|start_story|>Once▁upon▁a▁time,▁there▁was▁a▁ big▁", 3746 | ".▁ From▁that▁day▁on,▁", 3747 | "tru ck", 3748 | ".\"▁ Tim▁", 3749 | "▁an y", 3750 | "dd y▁", 3751 | "c i", 3752 | "ll i", 3753 | "▁<|start_story|>Once▁upon▁a▁time▁ there▁was▁a▁", 3754 | "new▁ friend", 3755 | "p ro", 3756 | "surpri s", 3757 | "es▁ to▁", 3758 | ".▁ Mia▁", 3759 | "st ay▁", 3760 | "very▁ much", 3761 | "feel ing▁", 3762 | "!\"▁ They▁", 3763 | ".▁They▁were▁ very▁", 3764 | "lik ed▁the▁", 3765 | "hur t▁", 3766 | ".▁I▁ will▁", 3767 | "a g", 3768 | "was▁ happy▁and▁", 3769 | "turn ed▁", 3770 | "Lily .▁She▁", 3771 | "s y▁", 3772 | "on ly▁", 3773 | "f l", 3774 | "something▁unexpected▁happened .▁The▁", 3775 | "enjo y", 3776 | "Ben ▁and▁", 3777 | "could▁not▁ find▁", 3778 | "ing ,▁", 3779 | "r id", 3780 | "!▁ He▁", 3781 | "day .▁", 3782 | "ou n", 3783 | "what▁to▁ do", 3784 | "to r", 3785 | "plea se", 3786 | "st ea", 3787 | "th ink", 3788 | "Look ,▁", 3789 | "W ow,▁", 3790 | "y 's▁", 3791 | "had▁a▁ lot▁of▁", 3792 | "was▁ too▁", 3793 | "knew▁ that▁", 3794 | "▁and▁ Ben▁", 3795 | "ha ir", 3796 | "w ing", 3797 | "t ,▁", 3798 | "Can▁ you▁", 3799 | "pr in", 3800 | "s ong", 3801 | "tre e.▁", 3802 | "hea d", 3803 | "sa nd", 3804 | ".\n When▁", 3805 | "mom ent", 3806 | "H er▁mom▁", 3807 | "went▁ outsid", 3808 | ",▁and▁ he▁", 3809 | "p h", 3810 | "S ally▁", 3811 | "high ▁", 3812 | "sur e▁", 3813 | "boy▁named▁ Tim▁", 3814 | "r ay", 3815 | "was▁ happy▁", 3816 | ",▁there▁ lived▁a▁", 3817 | "be tter▁", 3818 | "Sar a▁", 3819 | "n er", 3820 | "he ld▁", 3821 | "mo v", 3822 | "red▁ ball", 3823 | "wa ll", 3824 | "y▁a gain", 3825 | "ta k", 3826 | "His▁ mom▁", 3827 | ".▁His▁ mom▁", 3828 | "cou n", 3829 | "thing s", 3830 | ".▁\n The▁", 3831 | "hun gry", 3832 | "▁<|start_story|>One▁day,▁a▁ little▁boy▁named▁Tim▁", 3833 | "▁<|start_story|>Once▁upon▁a▁time,▁in▁a▁ small▁", 3834 | "the ir", 3835 | "to▁ play", 3836 | "ca st", 3837 | "no w▁", 3838 | "Fluff y▁", 3839 | "ba d", 3840 | "wh il", 3841 | "cl ou", 3842 | "pl i", 3843 | "ce▁ and▁", 3844 | ".▁E very▁", 3845 | "an ymor", 3846 | "y▁a sk", 3847 | "I▁ can▁", 3848 | "wh i", 3849 | "y .▁They▁", 3850 | "he ar", 3851 | "b ran", 3852 | ".\nA t▁the▁", 3853 | "bu t", 3854 | "qu i", 3855 | "were▁ playing▁", 3856 | "Lil y,▁", 3857 | "se▁ and▁", 3858 | "pic tur", 3859 | "y▁a re▁you▁", 3860 | "proud▁ of", 3861 | "p ond", 3862 | "st re", 3863 | "ro w▁", 3864 | "One▁sunny▁ day,▁", 3865 | "sm ell", 3866 | "' re▁", 3867 | "s▁ in▁the▁", 3868 | "ma z", 3869 | "s now", 3870 | "help▁ you▁", 3871 | "pp ed▁and▁", 3872 | "they▁ could▁", 3873 | "Ju st▁", 3874 | "I▁ will▁", 3875 | "\n The▁", 3876 | "!▁ It▁", 3877 | ".\"\n They▁", 3878 | "Don't▁ worry", 3879 | "some tim", 3880 | "fu ll▁", 3881 | ",▁a▁ big▁", 3882 | "won der", 3883 | ".▁He▁ said,▁\"", 3884 | "b ark", 3885 | "pu ll", 3886 | "differ ent▁", 3887 | "ask ed,▁\"", 3888 | "in e▁", 3889 | "you ▁are▁", 3890 | "so on", 3891 | "th rough", 3892 | "▁a gre", 3893 | "s wa", 3894 | "he▁ had▁", 3895 | "g rabb", 3896 | "co ld▁", 3897 | "gla d▁", 3898 | "!\"▁ Lily▁", 3899 | "gave▁ the▁", 3900 | "pa per", 3901 | "box ▁and▁", 3902 | "j ob", 3903 | "hur t", 3904 | "ca ll", 3905 | "wi shed▁", 3906 | "is▁ not▁", 3907 | "it▁ was", 3908 | "ca ke", 3909 | "flow er▁", 3910 | "ke ep", 3911 | "O kay", 3912 | "yell ow▁", 3913 | "took ▁a▁", 3914 | "speci al", 3915 | "qu ick", 3916 | "wa lk▁", 3917 | "them ▁and▁", 3918 | "in to▁", 3919 | "mak ing▁", 3920 | "se e", 3921 | "they▁ had▁", 3922 | "ti red", 3923 | "re pli", 3924 | "G o", 3925 | "k ind", 3926 | "p ur", 3927 | "to▁ help", 3928 | "looked▁ around▁", 3929 | "win dow", 3930 | "a ble▁", 3931 | "rea dy▁", 3932 | "b er▁", 3933 | "fa ir", 3934 | "it .▁He▁", 3935 | "like▁ a▁", 3936 | "ba g", 3937 | "Da is", 3938 | "b lu", 3939 | "tru ck▁", 3940 | "o wn", 3941 | "for▁a▁ moment", 3942 | "with ▁a▁big▁", 3943 | "was▁ playing▁", 3944 | ".▁H er▁", 3945 | "Lily 's▁", 3946 | "l and", 3947 | "ta ll▁", 3948 | "fi re", 3949 | "x ▁", 3950 | "▁again .▁", 3951 | "for ▁his▁", 3952 | "went▁to▁the▁ park", 3953 | "la dy▁", 3954 | "hea v", 3955 | "with▁his▁ friends", 3956 | "s .\n\"", 3957 | "insid e▁the▁", 3958 | "li z", 3959 | "th an▁", 3960 | "i ll▁", 3961 | "does▁ not▁", 3962 | "mu st▁", 3963 | "ask ed▁her▁", 3964 | "T hat▁", 3965 | "not ic", 3966 | ".▁H er▁mom▁", 3967 | "wan t▁", 3968 | "was▁ happy▁to▁", 3969 | "I▁ want▁to▁", 3970 | "full▁ of▁", 3971 | "▁how▁ to▁", 3972 | "was▁ sad▁", 3973 | ".\nTh en,▁", 3974 | "saw▁a▁ big,▁", 3975 | "d er▁", 3976 | "d is", 3977 | "walk ing▁", 3978 | "ri ght", 3979 | "s er", 3980 | "t u", 3981 | "said,▁\" No,▁", 3982 | "f t▁", 3983 | "▁an gry", 3984 | "mu s", 3985 | "show ed▁", 3986 | "tim e,▁", 3987 | "ar k▁", 3988 | "Joh n▁", 3989 | "help▁ you", 3990 | "▁ask ed▁", 3991 | "s low", 3992 | "Tim ,▁", 3993 | "? \"", 3994 | "say s.▁\"", 3995 | "e le", 3996 | "t ir", 3997 | "g ent", 3998 | "little▁ girl", 3999 | "to p▁", 4000 | "t ell", 4001 | "start ed▁", 4002 | "on▁the▁ floor", 4003 | "wi se▁", 4004 | "she▁ could▁", 4005 | "ok e▁", 4006 | "when▁ they▁", 4007 | "so▁much▁ fun", 4008 | "wanted▁to▁help ▁the▁", 4009 | "for ▁her▁", 4010 | "fro g", 4011 | "f ur", 4012 | "play ▁and▁", 4013 | "om e▁", 4014 | "a b", 4015 | "was▁ happy", 4016 | "had▁a▁ fun▁", 4017 | "v is", 4018 | "nd▁ and▁", 4019 | "Tom ,▁", 4020 | "cat ch▁", 4021 | "s▁ he▁", 4022 | "clo the", 4023 | "w el", 4024 | "e ,▁and▁", 4025 | "friend ly▁", 4026 | "Lily▁and▁ Ben▁", 4027 | "peo pl", 4028 | "Max ▁and▁", 4029 | "g on", 4030 | "Wh y▁are▁you▁", 4031 | ".▁So,▁ he▁", 4032 | "Wh ile▁", 4033 | "pa in", 4034 | "picked▁ up▁the▁", 4035 | "b ▁", 4036 | "wor d", 4037 | "for▁ you", 4038 | "g rand", 4039 | "ug g", 4040 | "war m▁", 4041 | "when▁ she▁", 4042 | ".▁Th en▁", 4043 | "run ▁", 4044 | "ou nd", 4045 | "ho le", 4046 | "dre am", 4047 | "to▁play▁ with", 4048 | "str ong▁", 4049 | "had▁ fun", 4050 | "learn ▁", 4051 | "with▁his▁ mom", 4052 | "e z", 4053 | "pick ed▁it▁", 4054 | "S all", 4055 | "tin y▁", 4056 | "ask ed▁his▁", 4057 | "Fin all", 4058 | "b la", 4059 | "pictur e▁", 4060 | "ve▁ the▁", 4061 | "was▁ sad▁and▁", 4062 | "sorry ,▁", 4063 | "mou th", 4064 | "o o", 4065 | "m a▁", 4066 | "by▁ the▁", 4067 | "!\"▁ Tom▁", 4068 | "be en▁", 4069 | "d ark", 4070 | "sto p", 4071 | "f re", 4072 | ",▁but▁ it▁", 4073 | "si g", 4074 | "s it▁", 4075 | ",▁ Tim▁", 4076 | "car e▁", 4077 | "fter ▁a▁", 4078 | ".▁ Let's▁", 4079 | ".▁But▁ the▁", 4080 | "mom▁and▁ dad", 4081 | "Bob o▁", 4082 | "to p", 4083 | "stay ed▁", 4084 | "hank▁ you▁", 4085 | "excit ed▁and▁", 4086 | "all ▁the▁", 4087 | "do▁ not▁", 4088 | "cat ch", 4089 | "in▁the▁ water", 4090 | "M aybe▁", 4091 | "!\"\n The▁", 4092 | "l at", 4093 | "in to▁a▁", 4094 | "se ,▁", 4095 | "insid e", 4096 | "go ing▁", 4097 | "nodd ed▁and▁", 4098 | "ba by▁", 4099 | "said,▁\" Let's▁", 4100 | "fin i", 4101 | "kind▁ and▁", 4102 | "wanted▁to▁ play▁", 4103 | "ke y▁", 4104 | "ed .▁He▁", 4105 | "▁h igh", 4106 | "made▁ the▁", 4107 | "Jan e▁", 4108 | "fa ll", 4109 | "se a", 4110 | "didn't▁ know▁", 4111 | "climb ed▁", 4112 | "ed .\n\"", 4113 | ".\n Su", 4114 | "el y▁", 4115 | "sto re▁", 4116 | "his▁ mom", 4117 | "che er", 4118 | "he▁ would▁", 4119 | "sto re", 4120 | "help▁ me▁", 4121 | "T his▁", 4122 | "▁a maz", 4123 | "!\"▁ Tim▁", 4124 | "se es▁", 4125 | "fi ght", 4126 | "ed▁to▁ be▁", 4127 | "ed .▁They▁", 4128 | "was▁so▁ happy▁and▁", 4129 | "e ver▁", 4130 | "T hank▁you,▁", 4131 | "find▁ the▁", 4132 | "i ▁", 4133 | "p e▁", 4134 | "s pla", 4135 | "▁a t", 4136 | "o t", 4137 | "e at▁the▁", 4138 | "Can▁ we▁", 4139 | "said▁ \"", 4140 | "th ink▁", 4141 | "P lea", 4142 | "Sue .▁Sue▁", 4143 | "ed .▁She▁", 4144 | "book ▁", 4145 | "w ea", 4146 | "befor e▁", 4147 | "felt▁ very▁", 4148 | "tre at", 4149 | "fa c", 4150 | "play▁ together", 4151 | "to r▁", 4152 | ".▁S o", 4153 | "said .\n", 4154 | ".\nBut▁ then,▁", 4155 | "dog▁named▁ Max" 4156 | ] 4157 | } 4158 | } --------------------------------------------------------------------------------