首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

人工智能+聊天机器人+深度学习+学习与开发实践

人工智能 2MB 33 需要积分: 1
立即下载

资源介绍:

深度学习资源包:本套资料专为初学者和进阶者设计的AI聊天机器人项目,包括Python编程、PyTorch框架应用、T5模型及Huggingface模型库使用,旨在帮助用户快速掌握人工智能领域的关键技术,适用于学术研究、项目开发及个人技能提升。
--- license: apache-2.0 datasets: - BelleGroup/train_3.5M_CN - wangrui6/Zhihu-KOL language: - zh library_name: transformers pipeline_tag: text-generation metrics: - perplexity - bleu tags: - text-generation-inference ---
# 中文对话0.2B小模型 ChatLM-Chinese-0.2B 中文 | [English](https://github.com/charent/ChatLM-mini-Chinese/blob/main/README.en.md)
最新的readme文档请移步Github仓库[ChatLM-mini-Chinese](https://github.com/charent/ChatLM-mini-Chinese) # 一、👋介绍 现在的大语言模型的参数往往较大,消费级电脑单纯做推理都比较慢,更别说想自己从头开始训练一个模型了。本项目的目标是整理生成式语言模型的训练流程,包括数据清洗、tokenizer训练、模型预训练、SFT指令微调、RLHF优化等。 ChatLM-mini-Chinese为中文对话小模型,模型参数只有0.2B(算共享权重约210M),可以在最低4GB显存的机器进行预训练(`batch_size=1`,`fp16`或者` bf16`),`float16`加载、推理最少只需要512MB显存。 - 公开所有预训练、SFT指令微调、DPO偏好优化数据集来源。 - 使用`Huggingface`NLP框架,包括`transformers`、`accelerate`、`trl`、`peft`等。 - 自实现`trainer`,支持单机单卡、单机多卡进行预训练、SFT微调。训练过程中支持在任意位置停止,及在任意位置继续训练。 - 预训练:整合为端到端的`Text-to-Text`预训练,非`mask`掩码预测预训练。 - 开源所有数据清洗(如规范化、基于mini_hash的文档去重等)、数据集构造、数据集加载优化等流程; - tokenizer多进程词频统计,支持`sentencepiece`、`huggingface tokenizers`的tokenizer训练; - 预训练支持任意位置断点,可从断点处继续训练; - 大数据集(GB级别)流式加载、支持缓冲区数据打乱,不利用内存、硬盘作为缓存,有效减少内存、磁盘占用。配置`batch_size=1, max_len=320`下,最低支持在16GB内存+4GB显存的机器上进行预训练; - 训练日志记录。 - SFT微调:开源SFT数据集及数据处理过程。 - 自实现`trainer`支持prompt指令微调, 支持任意断点继续训练; - 支持`Huggingface trainer`的`sequence to sequence`微调; - 支持传统的低学习率,只训练decoder层的微调。 - 偏好优化:使用DPO进行全量偏好优化。 - 支持使用`peft lora`进行偏好优化; - 支持模型合并,可将`Lora adapter`合并到原始模型中。 - 支持下游任务微调:[finetune_examples](https://github.com/charent/ChatLM-mini-Chinese/blob/main/finetune_examples/info_extract/finetune_IE_task.ipynb)给出**三元组信息抽取任务**的微调示例,微调后的模型对话能力仍在。 🟢**最近更新**
2024-01-07 - 添加数据清洗过程中基于mini hash实现的文档去重(在本项目中其实数据集的样本去重),防止模型遇到多次重复数据后,在推理时吐出训练数据。
- 添加`DropDatasetDuplicate`类实现对大数据集的文档去重。
2023-12-29 - 更新模型代码(权重不变),可以直接使用`AutoModelForSeq2SeqLM.from_pretrained(...)`加载模型使用。
- 更新readme文档。
2023-12-18 - 补充利用`ChatLM-mini-0.2B`模型微调下游三元组信息抽取任务代码及抽取效果展示 。
- 更新readme文档。
2023-12-14 - 更新SFT、DPO后的模型权重文件。
- 更新预训练、SFT及DPO脚本。
- 更新`tokenizer`为`PreTrainedTokenizerFast`。
- 重构`dataset`代码,支持动态最大长度,每个批次的最大长度由该批次的最长文本决定,节省显存。
- 补充`tokenizer`训练细节。
2023-12-04 - 更新`generate`参数及模型效果展示。
- 更新readme文档。
2023-11-28 - 更新dpo训练代码及模型权重。
2023-10-19 - 项目开源, 开放模型权重供下载。
# 二、🛠️ChatLM-0.2B-Chinese模型训练过程 ## 2.1 预训练数据集 所有数据集均来自互联网公开的**单轮对话**数据集,经过数据清洗、格式化后保存为parquet文件。数据处理过程见`utils/raw_data_process.py`。主要数据集包括: 1. 社区问答json版webtext2019zh-大规模高质量数据集,见:[nlp_chinese_corpus](https://github.com/brightmart/nlp_chinese_corpus)。共410万,清洗后剩余260万。 2. baike_qa2019百科类问答,见:,共140万,清醒后剩余130万。 3. 中国医药领域问答数据集,见:[Chinese-medical-dialogue-data](https://github.com/Toyhom/Chinese-medical-dialogue-data),共79万,清洗后剩余79万。 4. ~~金融行业问答数据,见:,共77万,清洗后剩余52万。~~**数据质量太差,未采用。** 5. 知乎问答数据,见:[Zhihu-KOL](https://huggingface.co/datasets/wangrui6/Zhihu-KOL),共100万行,清洗后剩余97万行。 6. belle开源的指令训练数据,介绍:[BELLE](https://github.com/LianjiaTech/BELLE),下载:[BelleGroup](https://huggingface.co/BelleGroup),仅选取`Belle_open_source_1M`、`train_2M_CN`、及`train_3.5M_CN`中部分回答较短、不含复杂表格结构、翻译任务(没做英文词表)的数据,共370万行,清洗后剩余338万行。 7. 维基百科(Wikipedia)词条数据,将词条拼凑为提示语,百科的前`N`个词为回答,使用`202309`的百科数据,清洗后剩余119万的词条提示语和回答。Wiki下载:[zhwiki](https://dumps.wikimedia.org/zhwiki/),将下载的bz2文件转换为wiki.txt参考:[WikiExtractor](https://github.com/apertium/WikiExtractor)。 数据集总数量1023万:Text-to-Text预训练集:930万,评估集:2.5万(因为解码较慢,所以没有把评估集设置太大)。~~测试集:90万。~~ SFT微调和DPO优化数据集见下文。 ## 2.2 模型 T5模型(Text-to-Text Transfer Transformer),详情见论文: [Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer](https://arxiv.org/abs/1910.10683)。 模型源码来自huggingface,见:[T5ForConditionalGeneration](https://github.com/huggingface/transformers/blob/main/src/transformers/models/t5/modeling_t5.py#L1557)。 模型配置见[model_config.json](https://huggingface.co/charent/ChatLM-mini-Chinese/blob/main/config.json),官方的`T5-base`:`encoder layer`和`decoder layer `均为为12层,本项目这两个参数修改为10层。 模型参数:0.2B。词表大小:29298,仅包含中文和少量英文。 ## 2.3 训练过程 硬件: ```bash # 预训练阶段: CPU: 28 vCPU Intel(R) Xeon(R) Gold 6330 CPU @ 2.00GHz 内存:60 GB 显卡:RTX A5000(24GB) * 2 # sft及dpo阶段: CPU: Intel(R) i5-13600k @ 5.1GHz 内存:32 GB 显卡:NVIDIA GeForce RTX 4060 Ti 16GB * 1 ``` 1. **tokenizer 训练**: 现有`tokenizer`训练库遇到大语料时存在OOM问题,故全量语料按照类似`BPE`的方法根据词频合并、构造词库,运行耗时半天。 2. **Text-to-Text 预训练**:学习率为`1e-4`到`5e-3`的动态学习率,预训练时间为8天。 3. **prompt监督微调(SFT)**:使用`belle`指令训练数据集(指令和回答长度都在512以下),学习率为`1e-7`到`5e-5`的动态学习率,微调时间2天。 4. **dpo直接偏好优化**:数据集[alpaca-gpt4-data-zh](https://huggingface.co/datasets/c-s-ale/alpaca-gpt4-data

资源文件列表:

AI_chatbot.zip 大约有29个文件
  1. AI_chatbot/
  2. AI_chatbot/AI聊天机器人入门项目.pdf 1.77MB
  3. __MACOSX/AI_chatbot/._AI聊天机器人入门项目.pdf 312B
  4. AI_chatbot/.DS_Store 6KB
  5. __MACOSX/AI_chatbot/._.DS_Store 120B
  6. AI_chatbot/requirements.txt 1.19KB
  7. AI_chatbot/webui.py 245B
  8. AI_chatbot/Dockerfile 465B
  9. AI_chatbot/models/
  10. AI_chatbot/model.py 1.04KB
  11. AI_chatbot/flagged/
  12. AI_chatbot/main.py 361B
  13. AI_chatbot/models/.DS_Store 6KB
  14. __MACOSX/AI_chatbot/models/._.DS_Store 120B
  15. AI_chatbot/models/chat/
  16. AI_chatbot/flagged/log.csv 4.23KB
  17. AI_chatbot/models/chat/.DS_Store 6KB
  18. __MACOSX/AI_chatbot/models/chat/._.DS_Store 120B
  19. AI_chatbot/models/chat/chatlm/
  20. AI_chatbot/models/chat/chatlm/.DS_Store 6KB
  21. __MACOSX/AI_chatbot/models/chat/chatlm/._.DS_Store 120B
  22. AI_chatbot/models/chat/chatlm/tokenizer_config.json 1.39KB
  23. AI_chatbot/models/chat/chatlm/special_tokens_map.json 75B
  24. AI_chatbot/models/chat/chatlm/config.json 803B
  25. AI_chatbot/models/chat/chatlm/tokenizer.json 1.03MB
  26. AI_chatbot/models/chat/chatlm/generation_config.json 142B
  27. AI_chatbot/models/chat/chatlm/README.md 187.41KB
  28. AI_chatbot/models/chat/chatlm/configuration_chat_model.py 95B
  29. AI_chatbot/models/chat/chatlm/modeling_chat_model.py 3.13KB
0评论
提交 加载更多评论
其他资源 vue多页面vite配置
vue多页面vite配置
A*和DWA融合理论实现
A*和DWA融合理论实现
56075472969450webShopping--idea.zip
56075472969450webShopping--idea.zip
STM32驱动MPU6050文件
MPU6050是InvenSense公司推出的全球首款整合性6轴运动处理组件,内带3轴陀螺仪和3轴加速度传感器,并且含有一个第二IIC接口,可用于连接外部磁力传感器,利用自带数字运动处理器(DMP: Digital Motion Processor)硬件加速引擎,通过主IIC接口,可以向应用端输出完整的9轴姿态融合演算数据。        有了DMP,我们可以使用InvenSense公司提供的运动处理资料库,非常方便的实现姿态解算,降低了运动处理运算对操作系统的负荷,同时大大降低了开发难度 。
CXDownload,支持下载超星学习通课件的ppt、zip、mp4
该内容来自Gitee博主hongyuan的CXDownload ,使用方法是:打开浏览器的插件(搜索栏中输入 chrome://extensions ),选择点击已解压,选择CXDownload,点击加载即可
基于MicroPython的ESP32控制RGB灯软硬件设计方案Wokwi仿真
ESP32作为控制核心,拥有强大的处理能力和丰富的外设接口。其双核处理器能够高效处理任务,低功耗特性适用于多种场景。RGB灯色彩丰富,可通过不同混光呈现绚丽效果。它体积小巧,方便集成到各种设备中,不占过多空间。无论是简单的色彩指示还是复杂的灯光秀,都能出色完成,在物联网、智能家居和创客开发中深受欢迎。MicroPython是一种为微控制器设计的精简版Python编程语言,它具有简洁易读的特点,方便开发者进行编程,为方案提供软件支持。Wokwi 是一个强大的在线电子电路仿真平台,在基于ESP32控制RGB灯的软硬件设计方案中,Wokwi可以提供便捷的仿真环境。利用Wokwi,你可以轻松搭建 ESP32与RGB灯的虚拟电路连接,无需实际硬件即可进行调试和测试。它直观地展示出了RGB灯的各种效果,从而快速地验证了本软硬件设计方案的可行性和正确性。同时Wokwi平台很好的集成MicroPython编程环境,极大地方便了本方案的硬件连接和软件代码的同步调试和修改验证。
SQLMAP源文件下载
SQLMAP
百度百科目录显示隐藏效果
百度百科目录显示隐藏效果