--- license: cc datasets: - adam89/TinyStoriesChinese - fzmnm/tiny-books-zh language: - zh library_name: transformers pipeline_tag: text-generation widget: - text: 从前有个小姑娘从来不洗脸 - text: 从前有个胖鹦鹉,胖得飞不动。 --- ### Model Card: tinybooks-110M ![alt text](README.files/image.png) 把[TinyStoriesChinese-110M](https://huggingface.co/fzmnm/TinyStoriesChinese-110M)基座模型在[tiny-books-zh](https://huggingface.co/datasets/fzmnm/tiny-books-zh/commit/33fca08aa289dbb66a14c2c5ade37476f7cac8c8)数据集上做的第一次试验。微调了1000步。简单地替换数据集使用checkpoint中断前的配置进行的继续训练。 不出所望地成功获得了一个人工智障。 ### 思考 1. 数据集太小,多样化程度太窄。其实100M级别的模型已经可以拥有多模态的智能了([mobileLLM](https://arxiv.org/abs/2402.14905))。我可以考虑加入一些理科的元素,尤其是十万个为什么之类的常识性说明到培训数据里,不要只局限于文科名著。之前我是考虑到模型的大小故意避免了任何数学和理科的训练资料。 2. 要求chatgpt强行把一些过于复杂的文本、如资治通鉴、罪与罚、官场现形记给改编成"适合幼儿园小朋友阅读的故事"过于强人所难,会导致chatgpt会丢三落四、语焉不详、胡言乱语。导致数据集的逻辑一致性和comprehensive(前面文本有足够信息帮助模型推断下一句话)性不足。我的解决方案是使用机器对生成的训练数据进行粗筛。 3. 不过模型确实学到了关于名著人物的知识。而且说话的方式也能让人很清晰地辨别出来是模仿了哪一篇名著。 4. 其实early stopping的几个checkpoint,比如仅进行100步微调的模型,性能更好,仍然保有了tinystories数据集中所训练得到的常识。事实上100步已经在整个数据集上训练了约10个epoch,所以1000步的模型产生过拟合和遗忘的现象是完全可以预期的。事实上我惊讶于模型并没有发生灾难性遗忘,变成彻底的胡言乱语。 ### 围观吃瓜 ```bash ./run ./out/model.bin -z ./data/tok5000.bin -t 0.2 -n 0 -i "从前有个胖鹦鹉,胖得飞不动。" 从前有个胖鹦鹉,胖得飞不动。胖鹦鹉说:“我飞不动了,因为我的脚被绑住了。我想 飞到大城市,去找人帮忙。” 胖鹦鹉飞到了一个叫大家的地方,那里有一位好心的叔叔,叫刘叔叔。胖鹦鹉说:“叔 叔,我飞到大城市去,您能帮帮我吗?” 刘叔叔是个好心人,他说:“好啊,我会帮你。”于是,胖鹦鹉和刘叔叔一起去了大城市。 他们到了大城市,刘叔叔用他的羽毛绑在胖鹦鹉的脚上,帮胖鹦鹉解开了绑着的绳子。胖鹦鹉高兴地说:“谢谢你,刘叔叔!” 然后,他们一起去了大城市。在那里,他们帮助了刘叔叔的很多情上的小朋友。大家都很喜欢胖鹦鹉,因为胖鹦鹉会做很多好事。 有一天,胖鹦鹉飞到了一个叫扬州的地方。那里有一条大街,胖鹦鹉看见了很多人在忙碌。有一个人在打扫院子,他一边打一边喊:“快来帮忙!快来!” 这时候,有一个人听到了胖鹦鹉的叫声。他走过来,看见胖鹦鹉在打绳子,就问:“你 为什么要把绳子绑在这里?” 胖鹦鹉说:“我想有一天能飞到大城市去。” 这个小故事告诉我们,如果有人需要帮助,我们应该尽力去帮助他。这样,我们的生活就会变得更好了。 小朋友们,你们要记住,帮助别人是很重要的哦! ```