感谢您精心制作的教程,但是在复现第一章的时候遇到这个迭代器用法导致的问题
在这一步中

python中的迭代器被转换为列表之后,他就已经被完全遍历了(消耗掉了)
因此后面的从迭代器训练tokenizer步骤会读入空的迭代器(没有语料进入训练)

这也是您的教程中测试结果他的tokenizer实际词表长度并没有增长的原因
259 =初始词表长度(256)+三个特殊token

并且这样训练出来的merges为空
可以考虑后面在训练之前再执行一次
texts = read_texts_from_jsonl(data_path)
这样训练出来的tokenizer会扩充词表,并且得到merges

感谢您精心制作的教程,但是在复现第一章的时候遇到这个迭代器用法导致的问题

在这一步中
python中的迭代器被转换为列表之后,他就已经被完全遍历了(消耗掉了)
因此后面的从迭代器训练tokenizer步骤会读入空的迭代器(没有语料进入训练)
259 =初始词表长度(256)+三个特殊token可以考虑后面在训练之前再执行一次
texts = read_texts_from_jsonl(data_path)这样训练出来的tokenizer会扩充词表,并且得到merges