浦语部分
数据源
URL: opendatalab.org.cn/
- 书生万卷 1.0
-
- 总体积 2T
- 文本数据超过1T
- 图像,文本数据超过 140G
- 视频数据超过 900G
- feature: 多模态数据 做过价值对齐方面的预处理
- 书生万卷 cc
-
- 细筛的 1T token的 高质量 英文 数据集, 体积193G
- 预处理过程:
-
-
- raw data from CommonCrawl
- 抽取文本数据 -> 预处理数据
- 启发式规则过滤 -> 清洗后数据
- 基于LSH去重 -> 去重后数据
- 关键词/域名列表/Toxicity分类器/Pornography分类器 -> 安全数据
- 流畅性分类器/广告分类器 -> 高质量数据
-
- 主要问题:
-
- 分类器是否开源需要调研
- 分类器的效果需要具体的benchmark
- 大规模数据的去重的具体实现方法
模型
浦语LLM
- 主要特点:
-
- 上下文可达到 200k token,且不丢失信息
- 推理、数学、代码能力比肩GPT
- Prompt 体验更好,更理解人类语言
- 因此可以得出 浦语2.0 的 function calling 能力也进一步提升
- 强大的内生计算能力,加入代码解释器后,在GSM8K 和MATH达到GPT4相仿水平
- 需要补充的地方:
-
- GSM8K 和MATH是两个评估数学能力的dataset
- 代码解释器目前的定义是给llm在本地运行程序的权限,比如命令行输入“switch to dark mode”,llm会接管电脑并执行对应指令。但是这没有解释为什么加入代码解释器会提高计算能力。
- update: 官网上说:Add Lean as a support language for math problem solving and math theorem proving。 llm会生成 Lean 这个数学工具的代码进行求解,这也解释了为什么需要代码解释器。
Finetuning
FT的种类有两种
- 全量参数
- 部分参数
主要区别在于训练成本和训练效果,一般情况使用部分参数微调,其中主要有两种任务:
- 增量更新: 这种方法是无监督的,输入新的语料如 文章,书籍,代码等,使llm可以预测新的知识。
- 有监督微调: 让llm学会特定领域的问答,比如安全方面的对齐,或者是注入少量的领域知识。
浦语提出了XTuner工具库 URL: github.com/InternLM/xt…
主要特性有:
- 8G显存能FT 7B token的模型, 也支持分布式FT 70B+的模型
- 兼容deepspeed
- 支持多种llm, 包括但不限于InternLM、Mixtral-8x7B、Llama2、ChatGLM、Qwen、Baichuan。
- 支持多模态FT,利用 XTuner 训得模型 LLaVA-InternLM2-20B 表现优异。
- 支持 QLoRA、LoRA、全量参数微调等多种微调算法,支撑用户根据具体需求作出最优选择
- 支持增量预训练、指令微调与 Agent 微调。v
- 训练所得模型可无缝接入部署工具库 LMDeploy、大规模评测工具库 OpenCompass 及 VLMEvalKit。
Benchmark
除此之外浦语也做了个benchmark 框架 OpenCompass : github.com/open-compas…
和huggingface类似, OpenCompass 也包含了社区、leaderboard 部分, 并提供了CompassKit 工具箱
1.0 涵盖的范围就很广,在2.0 针对选择题,OpenCompass引入了循环评测的模式, 选项轮换避免llm随机选择。
部署
下游任务
也能接工具链,做一些function calling 之类的工作。
InternLM2 Technical Report
Abstract
主要讲InternLM2 作为一个开源模型在6个维度,30个指标中表现很好,并且介绍了数据预处理,长句依赖,FT等方面的工作。(确实很难得,很伟大)
Introduction
虽然GPT4这种llm的提出给学术界,工业界带来了很大的影响,业界也在猜测这是不是意味着通用人工智能(AGI)的到来,但是实际上训练一个LLM困难重重。(从我的经验来看,算力,数据集,算法,FT这些因素互为掣肘,一个成功的LLM需要顶尖团队的不懈努力)过去几年,一些开源团队试图搭建闭源LLM和开源之间的桥梁,产生了一些顶尖的成果如LLaMA,Qwen, Mistral, Deepseek等。 这篇文章,作者展示了他们的作品: InterLM2。
一个LLM的主要阶段包括 Pre-traing, Supervised Fine-tunning, RLHF。 Pre-training 主要包括收集大量语料,作为LLM的基本知识。其中,语料的质量是最关键的因素。(书生万卷)这里作者开源了他们对语料预处理和pretraining的方法。
如何扩充LLM的上下文长度是目前研究的热点。很多下游任务性能都受限于上下文长度,比如RAG和agents。 InternLM2 第一次部署了 组注意力查询GQA (Group Query Attention) , 让长句占用更少的内存。 在预训练阶段,作者首先导入4k长度的文本,之后在处理成32k长度的高质量文本。 补全阶段,通过位置编码外推的方法, InternLM2 在“Needle-in-a-Haystack”测试中达到了200k的上下文长度。
人类价值观方面,作者使用SFT和RLHF做对齐。并提出了COnditional OnLine RLHF
(COOL RLHF), 也就是采用了一个条件奖励模型来对人类潜在有冲突的偏好进行打分,在多轮训练中执行 近端策略优化(PPO)在避免网络的reward hack行为。 为了展示效果, 作者也开源了 RLHF前后的模型。
Infra
InternEvo
InternEvo 是作者提供的轻量化预训练框架。主要特点是可以通过并行调度数据、张量、序列和pipeline运行在数千个GPU上。 同时为了降低显存占用,InternEvo 结合了 Zero Redundancy Optimizer(ZeRO)。 在硬件部署方面, 结合了Flash Attention 和 BF16 混合精度训练。