引言
近年来,大型语言模型 (LLMs) 在各种任务中取得了前所未有的性能提升。然而,由于商业利益,最强大的模型(如 GPT、Gemini 和Claude)只能通过API访问,并未公开训练细节。
最近,许多机构开源了一些与现有闭源 LLM 相媲美的LLM,例如LLaMA-3,大大推动了开源 LLM 社区的发展。然而,大多数情况下的开源仅提供模型权重,而详细的中间Checkpoint、预训练语料库和训练代码等信息并未披露。为了提高 LLM 的透明度,研究界已经形成了开源真正开放的 LLM(例如Pythia、Amber 和OLMo)的趋势,这些模型提供了更多的详细信息(例如预训练语料库和训练代码)。
这些模型大大推进了对这些大模型的科学研究,包括它们的优势、劣势、偏见和风险。然而,M-A-P社区观察到现有的真正开放的 LLM 在推理、知识和编码任务上仍然不如具有类似模型大小的最先进的 LLM。为此,M-A-P开源了MAP-Neo,这是一个功能强大且高度透明的双语语言模型,拥有70亿个参数,从头开始在4.5T 高质量tokens的文本上进行训练。
MAP-Neo是一个完全开源的双语 LLM,其性能可与现有最佳 LLM 相媲美。此外,M-A-P还公开了所有细节以重现 MAP-Neo,其中包括清理过的预训练语料库、数据处理pipeline、checkpoint以及经过优化的训练/评估框架。希望 MAP-Neo 能够增强并加强开源研究社区,激发更多创新和创造力,促进 LLM 的进一步发展。
技术报告链接:
https://arxiv.org/pdf/2405.19327
github:
https://github.com/multimodal-art-projection/MAP-NEO
处理pipeline:
https://github.com/multimodal-art-projection/MAP-NEO/tree/main/Matrix
魔搭社区M-A-P开源链接:
https://modelscope.cn/organization/m-a-p
在技术报告中,M-A-P详细介绍了构建 LLM 的整个工作流程,包括:
1、数据pipeline:研究提供了用于训练数据(包括英语和中文)处理的代码,包括稳定的OCR系统、DeepSeek-Math中的数据检索机制、之前的开源数据处理pipeline的集成以及基于 Spark 的分布式数据处理的支持等。
2、训练数据:研究提供了预训练语料库,即Matrix Data Pile,以及用于监督微调和对齐训练的训练数据
3、模型架构:研究提供了模型架构的代码和细节。
4、模型训练:研究提供了分词器、基础模型、指令微调模型和对齐模型的训练代码。此外,还解决了 Megatron-LM 框架的一些问题,增强了其对更健壮和高效的分布式训练的支持。此外,引入了 NEO scaling law,旨在优化使用来自各种语料库的数据预训练来扩展 LLM 的放缩。
5、模型Checkpoint:不仅在开源社区上发布最终模型,还提供中间Checkpoint以供重现。
6、基础设施:技术报告详细介绍了稳定训练的基础架构。
7、模型评估:研究还提供了详细的评估代码以及对 LLM 性能基准测试的全面设置。
8、分析与教训:技术报告详细介绍了各种技术,例如在预训练的不同阶段进行优化的技巧,并通过严格的分析和删除操作提供了构建 LLM 的见解。
下面,小编也为大家解读和总结下MAP-Neo的技术报告亮点:
数据集:从零开始构建一个包含大量主题的大规模语料库,主要是针对:
①现有的可用开源预训练数据合并;
②额外从CC上收集了中文和数学、科学考试、wiki数据;
③额外把一些PDF文档通过OCR转文字加入进来。
Matrix是当前开源社区唯一一个直接可用不需要额外配比和验证的双语大规模预训练数据集,而且效果有保证。
数据处理:精心设计的数据处理pipeline,用了比较高的清洗过滤阈值、比较严格的去重(譬如子串级)、以及针对OCR数据的后校准。 处理后分别对现有语料和爬虫语料最终仅保留了原始的4%和19%。数据清洗流程的heuristic rules每一条都经过了团队成员反复人工采样确定,在中英文上都比较严格,有进一步放宽的潜力,整个pipeline是基于spark的,分布式效率较高。下图为文档转换流水线。
数据配比:启发式地设置比率。预训练时分了两个阶段,一阶段用了CC,二阶段去除CC,手工增加了代码和书籍、文书等类型的配比。支持了deepseek-math的垂域数据提取pipeline和基于OCR的pdf数据提取pipeline,确认了这两个pipeline都对训练performance有比较明显的提升。
预训练:解决了Megatron-LM开源版本大量数据训练的bug,支持Megatron-core的稳定训练,内部初期测试不止可以到7B,更大的size也可以稳定训练,在预训练中间节点上:基于Chinchilla scaling law(数据量、模型规模和loss的关系)提了一个变种,引入了关于数据量大小的正则项。
对齐:SFT分为两个阶段,第一阶段,收集大量指令数据以增强 LLM 的基础能力。第二阶段在第一阶段基础上,收集并筛选一定量的多轮对话数据,继续提高 MAP-Neo 的对话能力。最后,使用迭代式DPO进一步将模型和人类意图对齐,增强了模型的对话能力。
基础设施:MAP-Neo 7B 模型,使用具有 64 台机器的512个 H800 GPU配置进行训练,并使用 NCCL 进行后端分发,ibp 作为网络接口和 mlx5 InfiniBand 硬件来增强跨 GPU 通信。
MAP-Neo的开源,贡献的不仅是新颖的基础模型,而且是一本全面的模型训练手册,用于从头开始构建通用大语言模型,从数据收集开始,涵盖整个训练所需的全流程。我们相信,MAP-Neo项目为社区提供了至关重要的参考,特别是对于世界非英语地区从事 LLM 研究的人们。
在魔搭体验和推理M-A-P
魔搭社区M-A-P开源链接:
https://modelscope.cn/organization/m-a-p
使用魔搭社区的免费GPU算力,推理neo_7b_instruct_v0.1模型:
from modelscope import AutoModelForCausalLM, AutoTokenizer model_path = 'm-a-p/neo_7b_instruct_v0.1' tokenizer = AutoTokenizer.from_pretrained(model_path, use_fast=False, trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained( model_path, device_map="auto", torch_dtype='auto' ).eval() messages = [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "天下没有不散的筵席,那么我们相聚的意义又是什么"}, ] input_ids = tokenizer.apply_chat_template(conversation=messages, add_generation_prompt=True, return_tensors='pt') output_ids = model.generate(input_ids.to('cuda'), max_new_tokens=512) response = tokenizer.decode(output_ids[0][input_ids.shape[1]:], skip_special_tokens=True) print(response)
MAP-Neo项目贡献者和致谢
Multimodal Art Projection (M-A-P) 是一个开源研究社区。社区成员正在研究人工智能生成内容(AIGC)主题, 包括文本、音频和视觉模态。社区目标是推动大型语言/音乐/多模态模型训练、数据收集和有趣的应用开发。
欢迎加入!
社区主页: https://m-a-p.ai
感谢MAP-Neo项目贡献者!
Team Leaders:
• Ge Zhang, M-A-P, University of Waterloo, 01.AI, Data & Pretrain & Evaluation & Model Architecture & Codebase & Alignment
• Scott Qu, M-A-P, University of Manchester, 01.AI, Codebase & Model Architecture & Infra & Pretrain
• Jiaheng Liu, M-A-P, Scaling Law & Alignment
Core Contributors: (Alphabet Order)
• Chenchen Zhang, Independent Researcher, Pretrain
• Chenghua Lin. M-A-P, University of Manchester, Data
• Chou Leuang Yu, CUHK-Shenzhen, Alignment & Data
• Danny Pan, Peking University, Data & Codebase
• Esther Cheng, Peking University, Data
• Jie Liu, The Chinese University of Hong Kong, Alignment
• Qunshu Lin, 2077AI, Data
• Raven Yuan, M-A-P, Pretrain & Infra
• Tuney Zheng, M-A-P, 01.AI, University of Waterloo, Pretrain & Evaluation & Alignment
• Wei Pang, University of Waterloo, Data
• Xinrun Du, M-A-P, 01.AI, Codebase & Pretrain & Alignment & Evaluation
• Yiming Liang, Institute of Automation, Chinese Academy of Sciences, Alignment & Evalua- tion
• Yinghao Ma, M-A-P, Queen Mary University of London, Scaling Law• Yizhi Li, M-A-P, University of Manchester, Data • Ziyang Ma, M-A-P, Shanghai Jiao Tong University, Alignment
Contributors: (Alphabet Order)
• Bill Lin, University of Southern California, Alignment • Emmanouil Benetos, Queen Mary University of London, Scaling Law • Huan Yang, University of Warwick , Ethics & Societal Impact • Junting Zhou, Peking University, Data & Scaling Law • Kaijing Ma, Tongji University, Data • Minghao Liu, 2077AI, Data • Morry Niu, 01.AI, Codebase • Noah Wang, 01.AI, Alignment • Quehry Que, Independent Researcher, Data • Ruibo Liu, Dartmouth University, Pretrain & Model Architecture • Sine Liu, Independent Researcher, Infra • Shawn Guo, 01.AI, Data • Soren Gao, Fudan University, Tokenization • Wangchunshu Zhou, M-A-P & AIWaves Inc., Data • Xinyue Zhang, Unity, Ethics & Data • Yizhi Zhou, Nanjing University, Data • Yubo Wang, University of Waterloo, Pretrain • Yuelin Bai, M-A-P, Shenzhen Institute of Advanced Technology, CAS, Data• Yuhan Zhang, M-A-P, Data • Yuxiang Zhang, M-A-P, Waseda University, Codebase & Data • Zenith Wang, Independent Researcher, Data • Zhenzhu Yang, China University of Geosciences Beijing, Ethics & Data • Zijian Zhao, 2077AI, Data
Advisors:
• Jiajun Zhang, Wuhan AI Research, Institute of Automation, Chinese Academy of Sciences • Wanli Ouyang, The Chinese University of Hong Kong, Shanghai AI Lab • Wenhao Huang, 01.AI • Wenhu Chen, University of Waterloo
点击链接👇直达组织