当前位置:   article > 正文

【附带大模型训练数据】大模型系统优化:怎么计算模型所需的算力、内存带宽、内存容量和通信数据量?_大模型算力 稠密计算

大模型算力 稠密计算

 


大模型需要多少算力?

需要的总算力 = 6 ∗ * 模型的参数量 ∗ * 训练数据的 token 数

我们可以把神经网络想象成由左边一组神经元和右边一组神经元组成的完全二分图。

  • 因为其中的每一层的神经元与相邻层的所有神经元相连,但同层内的神经元之间没有连接。
  • 就像一个有规则的接力赛,每个跑步的小朋友(神经元)只能把接力棒(信息)传给下一排的小朋友,而不能传给自己这一排的其他人。

选出其中任意一个左边的神经元 l l l 和右边的神经元 r r r

  1. 正向传播:
  • 左边的神经元 l l l 将其输出 * 与其连接的权重 w w w,并将结果发送给右边的神经元 r r r
  • 右边的神经元 r r r 通常连接多个左边的神经元,因此需要将收到的多个 l l l 的输出进行求和操作。
  1. 反向传播:
  • 右边的神经元 r r r 将收到的梯度 * 与其连接的权重 w w w,并将结果发送给左边的神经元 l l l
  • 左边的神经元 l l l 也通常连接多个右边的神经元,因此需要将收到的多个 r r r 的梯度进行求和操作,并计算权重 w w w 的梯度。
  • 最后,权重 w w w 的更新需要将一个批次中所有样本的梯度进行求和。

总共涉及到 3 3 3 次乘法和 3 3 3 次加法的计算操作。

大模型是数据的压缩版本:

  • 模型的参数量太小,就吃不下训练数据里面所有的知识
  • 模型的参数量如果大于训练数据的 token 数,容易导致过拟合。

大模型需要几块GPU?

预训练、领域微调区别?

区别:

  • 从随机权重开始学习,从海量数据中枚举出人类的语言、逻辑、情感范式(像人),用参数保存这种范式(微调学习的是专业领域的知识、回答范式)
  • 喂的是整个文档,一字不落的学习(微调基本是一问一答,因为应用场景是问答型的)
  • 预训练就像学校的基础功课,微调就像课外辅导

预训练需要多少数据?

openai提出最优训练数据和模型参数配比:

比如模型参数 1 B(1B = 10亿参数),最优的训练数据量是 20.2 B 的 token。

怎么评估微调的显存占用?

φ是一个代表模型参数数量的变量,如 GPT2 参数是1.6B(1B是10亿)

  1. 梯度: 在神经网络训练过程中,梯度是权重的导数,用于指导模型更新权重以提高性能。

    如果模型有φ个参数,每个参数需要一个梯度值。

    在FP16精度下,每个梯度值需要2字节(16位)的存储空间。

    因此,存储所有梯度值需要 字节的存储空间。

  2. 梯度平方: 某些优化算法,如Adam,会计算每个参数梯度的平方,用于调整学习率。这也需要 字节的存储空间(使用FP16精度)。

  3. 优化器状态: 对于Adam优化器,除了梯度和梯度平方之外,还需要存储每个参数的动量(momentum)和方差(variance)。

    这通常需要额外的 字节的存储空间(每个额外状态需要2φ字节)。

  4. 总计: 因此,模型的总显存需求是梯度、梯度平方以及优化器状态的存储之和,即 2φ + 2φ + 4φ = 8φ(FP16精度下)。

    然而说的是16φ(半精度),如果是FP32精度下的计算,其中每个数值需要4字节的存储空间,总显存需求会是 2φ * 4 + 2φ * 4 + 4φ * 4 = 32φ 字节。

现在让我们来计算具体的例子:

  • 对于一个1.6B参数的模型,即 φ = 1.6 x 10^9
  • 在FP16精度下,梯度和梯度平方的存储需求是 2 * φ * 2 字节,优化器状态是 4 * φ * 2 字节。
  • 所以总的FP16显存需求是 (2 + 2 + 4) * φ * 2 字节。
  • 在FP32精度下,每个数值需要4字节,所以总显存需求是 (2 + 2 + 4) * φ * 4 字节。

常用的模型尺寸

+----------+----------------------+----------------------+
| 模型尺寸 | FP16 存储大小        | FP32 存储大小        |
+----------+----------------------+----------------------+
| 6B       | 6000000000 * 2byte ≈ | 6000000000 * 4byte ≈ |
|          | 11.18GB              | 22.35GB              |
+----------+----------------------+----------------------+
| 7B       | 7000000000 * 2byte ≈ | 7000000000 * 4byte ≈ |
|          | 13.04GB              | 26.08GB              |
+----------+----------------------+----------------------+
| 13B      | 13000000000 * 2byte ≈| 13000000000 * 4byte ≈|
|          | 24.21GB              | 48.42GB              |
+----------+----------------------+----------------------+
| 175B     | 175000000000 * 2byte ≈| 175000000000 * 4byte ≈|
|          | 325.96GB             | 651.93GB             |
+----------+----------------------+----------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 这张表格的存储大小,指的是 模型参数本身存储所需要的空间,部署到本地需要这么大的空间
  • 但模型的微调或训练时,需要的存储空间远远不止参数本身。
  • 除了参数,还需要存储梯度(每次迭代过程中参数的变化量)和优化器状态(例如动量或Adams优化器中的平方梯度)。

微调需要的存储大小:

使用 FP16(16位浮点数)精度时可能发生的精度损失问题。

因为 FP16 不能精确表示太小的数,可能导致梯度没有更新。

但 FP16 比 FP32 占用更少的内存,这可以允许更大的batch size(一次性处理更多的数据)。

FP16 也可以让GPU更高效地计算,提高运算速度。

两者结合:

  • 输入:以FP16精度输入数据进行前向传播(Forward),即模型根据当前的权重计算预测值。

  • 计算梯度:在反向传播(Backward)阶段,计算损失函数关于权重的梯度,这里也使用FP16精度。

  • 优化器更新权重:虽然前向和反向传播都使用FP16精度,但在实际更新权重时,会将梯度转换成FP32精度。

    因为FP32提供了更高的数值精度,可以减少累积的计算误差,并确保权重更新的准确性。

  • 权重转换并应用更新:在更新权重后,再次将更新后的权重转换为FP16精度,以便下一轮的前向和反向传播。

这种混合精度训练方法结合了FP16的内存和计算效率以及FP32的数值稳定性。通过在关键步骤使用更高的精度来减少累积误差,同时又保持了大部分计算的高效率。

数据处理流程?


大语言模型在处理训练数据时的几个关键步骤:低质量数据过滤、冗余数据去除、隐私信息消除和词元切分。

这些步骤对于提高模型的性能和数据处理的有效性至关重要。

1. 低质量数据过滤(Low-Quality Data Filtering)

  • 目的: 提高训练数据的质量,从而提升模型的效果。
  • 方法:
    • 基于分类器的方法: 通过训练一个文本质量判断模型来识别并过滤低质量数据。
    • 基于启发式的方法: 使用一系列规则来消除低质量文本,如语言过滤、指标过滤、统计特征过滤和关键词过滤。

2. 冗余数据去除(Redundancy Removal)

  • 目的: 避免训练数据中的重复内容,提高模型的多样性和稳定性。
  • 实现:
    • 句子级别: 删除包含重复单词或短语的句子。
    • 文档级别: 利用表面特征相似度(如n-gram重叠比例)检测并删除重复文档。

3. 隐私信息消除(Privacy Elimination)

  • 目的: 防止预训练数据中含有个人敏感信息,减少隐私泄露风险。
  • 方法: 使用基于规则的算法和命名实体识别技术来检测并处理包含个人信息的文本。

4. 词元切分(Tokenization)

  • 目的: 有效处理和表示词汇,特别是解决未登录词(OOV)问题。
  • 方法:
    • Byte Pair Encoding (BPE): 通过合并频率最高的字节对来逐步构建词表。
    • WordPiece: 类似BPE,但合并标准略有不同,旨在增加训练数据的似然概率。
    • Unigram: 从大词元集合开始,逐步删除词元,直至达到预定词表大小。

这些步骤共同确保了大型语言模型能够有效地处理和学习大量的网络数据,同时也注重保护用户隐私和数据质量。

怎么做数据去重?

重复数据对于大模型微调也有较大影响,数据集必须去重后再用于模型训练。

请猛击:MinHash-LSH 哈希模糊去重:大规模数据去重优化

既可以做句子级别的去重,也可以做文档级别的去重。

怎么做数据增强?

采用前沿对齐,低资源收集技术:

  • 自驱、蒸馏方法 + 同行大模型,获取高质量数据集
  • 数据增强:深化、异化扩展多样性
  • 引入explanation tuning和逐步解释数据:激发模型性能

常见微调方法?

记录在 — 大模型微调方法:冻结方法 Freeze、P-Tuning 系列、LoRA、QLoRA

怎么并行训练?

记录在 — 大模型并行训练、超大模型分布式训练

训练多少epochs?

论文地址:https://arxiv.org/pdf/2305.13230.pdf

在CNN、Vit 这样的模型中,模型训练的epochs可高达300次,而大语言模型的训练 epochs 通常都是 1、2、4 次。

用重复的tokens训练大语言模型会让模型降低性能。

模型参数规模的增长与模型需要的tokens数量基本是呈线性:

推理和训练的区别?

训练需要存储模型参数、存储梯度、优化器状态、正向传播每一层的中间状态,后面几个比参数更大,对模型内存的需求量也更大。

推理的各个输入数据之间并没有关系,不需要存储梯度和优化器状态,正向传播每一层的中间状态也不需要保存下来。

大模型的训练用 4090 是不行的,但推理用 4090 不仅可行,在性价比上还能比 H100 稍高。

4090 如果极致优化,性价比甚至可以达到 H100 的 2 倍。

H100 和 4090 最大的区别就在通信和内存上,算力差距不大。

  • 通信带宽:H100 是 4090 的 16倍
  • 通信时延:H100 是 4090 的 10分之1
  • 内存带宽:H100 是 4090 的 3倍

怎么计算通信数据量?

计算通信数据量的目标是确定在多GPU环境中,数据在不同GPU之间传输时的总量。

在分布式训练或使用多GPU训练时,需要考虑通信开销。通信数据量依赖于:

例如,在数据并行中,每次同步时,每个GPU需要发送其梯度到其他GPU或参数服务器,所以通信数据量大约为 梯度大小乘以GPU数量

例如,在张量并行中,分布式计算场景,其中包含了多个注意力头,每个头处理一部分数据,并且有必要在GPU之间交换信息以合成最终的结果。

以下是一个简化的方法来估算通信数据量:

首先,我们需要确定每个GPU需要发送或接收的数据量。

这通常涉及到输入和输出矩阵的大小,以及模型的结构。

假设我们有:

  • Batch size: ( B )
  • Token长度: ( T )
  • Embedding size: ( E )
  • Attention heads数量: ( H )
  • Key和Value的维度(通常等于 ( E H \frac{E}{H} HE )): ( D k = D v = E H ( D_k = D_v = \frac{E}{H} (Dk=Dv=HE )
  • 每个参数的字节大小(例如,如果参数是 32 位浮点数,那么字节大小为 4): ( b y t e s p a r a m ) ( bytes_{param} ) (bytesparam)
  • GPU数量: ( G )

在多头注意力机制中,每个头计算得到一个输出矩阵 ( Z h e a d ) ( Z_{head} ) (Zhead),大小为 ( B × T × E H ) ( B \times T \times \frac{E}{H} ) (B×T×HE)

对于所有头,输出矩阵 ( Z ) ( Z ) (Z) 的大小是所有 ( Z h e a d ) ( Z_{head} ) (Zhead) 拼接起来的,因此大小为 ( B × T × E ) ( B \times T \times E ) (B×T×E)

如果每个GPU处理 ( H G ) ( \frac{H}{G} ) (GH) 个头,那么每个GPU计算得到的 ( Z h e a d ) ( Z_{head} ) (Zhead) 的总大小将是:

[ Z_{GPU} = B \times T \times \frac{E}{H} \times \frac{H}{G} = B \times T \times \frac{E}{G} ]

通信发生在每个GPU需要汇总所有其他GPU上计算的 ( Z h e a d ) ( Z_{head} ) (Zhead)时。

假设每个GPU都需要从其他 ( G − 1 ) ( G - 1 ) (G1) 个GPU接收数据以构建完整的输出矩阵( Z )。

那么每个GPU需要接收的数据量大概是:

[ D a t a r e c v = Z G P U × ( G − 1 ) = B × T × E G × ( G − 1 ) ] [ Data_{recv} = Z_{GPU} \times (G - 1) = B \times T \times \frac{E}{G} \times (G - 1) ] [Datarecv=ZGPU×(G1)=B×T×GE×(G1)]

同样,每个GPU需要发送它计算的 ( Z G P U ) ( Z_{GPU} ) (ZGPU) 给其他( G - 1 )个GPU:

[ D a t a s e n d = Z G P U × ( G − 1 ) = B × T × E G × ( G − 1 ) ] [ Data_{send} = Z_{GPU} \times (G - 1) = B \times T \times \frac{E}{G} \times (G - 1) ] [Datasend=ZGPU×(G1)=B×T×GE×(G1)]

因此,每个GPU的总通信量(发送加接收)将是:

[ D a t a t o t a l = D a t a r e c v + D a t a s e n d = 2 × Z G P U × ( G − 1 ) ] [ Data_{total} = Data_{recv} + Data_{send} = 2 \times Z_{GPU} \times (G - 1) ] [Datatotal=Datarecv+Datasend=2×ZGPU×(G1)]

( Z G P U ) ( Z_{GPU} ) (ZGPU) 代入:

[ D a t a t o t a l = 2 × B × T × E G × ( G − 1 ) ] [ Data_{total} = 2 \times B \times T \times \frac{E}{G} \times (G - 1) ] [Datatotal=2×B×T×GE×(G1)]

最后,我们需要把每个参数的大小也考虑进去,所以总的通信数据量(以字节为单位)是:

[ D a t a b y t e s = D a t a t o t a l × b y t e s p a r a m = 2 × B × T × E G × ( G − 1 ) × b y t e s p a r a m ] [ Data_{bytes} = Data_{total} \times bytes_{param} = 2 \times B \times T \times \frac{E}{G} \times (G - 1) \times bytes_{param} ] [Databytes=Datatotal×bytesparam=2×B×T×GE×(G1)×bytesparam]

这就是在所有GPU之间总共需要传输的数据量。

如果你想要单向通信的数据量,只需要使用 ( D a t a r e c v ) ( Data_{recv} ) (Datarecv) ( D a t a s e n d ) ( Data_{send} ) (Datasend) 的值乘以 ( b y t e s p a r a m ) ( bytes_{param} ) (bytesparam) 即可。

中文训练数据去哪里找?

通用数据

  • AI 开源数据社区:opendatalab.org.cn
  • DuReader 数据集: 200K 问题、420K 答案组成,迄今为止最大的中文 MRC 数据集,基于百度搜索和百度知道
  • WuDaoCorpora 数据集:用 20 多种规则从 100TB 原始网页数据中清洗得出最终数据集,注重隐私数据信息的去除
  • CLUECorpus2020 数据集:有 100G 的原始语料库,包含 350 亿个汉字
  • DRCD 数据集:传统中文机器阅读理解数据集,包含来自 2108 篇维基百科文章的 10014 个段落和由注释者生成的33,941 个问答对
  • E-KAR 数据集:包含来自公务员考试的 1,655 个(中文)和 1,251 个(英文)问题,这些问题需要深入的背景知识才能解决
  • Douban Conversation Corpus 数据集:豆瓣会话语料库,包含 1000 个对话上下文
  • ODSQA 数据集:用于中文问答的口语数据集 MATINF 数据集:用于中文母婴护理领域的分类、问答和总结

多模态数据

  • WuDaoMM 数据集、MUGE 数据集、 Noah-Wukong 数据集
  • Zero 数据集、 COCO-CN 数据集、 Flickr8k-CN & Flickr30k-CN 数据集
  • Product1M 数据集、 AI Challenger 图像中文描述数据集

预训练数据集

  • RedPajama开源的复刻llama的预训练数据集,1.21万亿Token

  • news-commentary 中英平行语料,用于中英间知识迁移: https://data.statmt.org/news-commentary/v15/training/

  • MNBVC 对标ChatGPT的40T:https://github.com/esbatmop/MNBVC

  • Pile 基于RedPajama进行清洗去重后得到的高质量数据集 6270亿Token:https://huggingface.co/datasets/cerebras/SlimPajama-627B/tree/main/train

  • CSL 首个中文科学文献数据集CSL,也有多种NLP任务数据:https://github.com/ydli-ai/CSL

RLHF 强化数据集

  • 问答偏好数据集:https://huggingface.co/datasets/liyucheng/zhihu_rlhf_3k

  • OpenAssistant Conversations:https://huggingface.co/datasets/OpenAssistant/oasst1

  • 河狸开源RLHF:https://huggingface.co/datasets/PKU-Alignment/PKU-SafeRLHF-10K

  • Anthropic hh-rlhf:https://huggingface.co/datasets/Anthropic/hh-rlhf

  • Facebook Bot Adversarial Dialogues:https://github.com/facebookresearch/ParlAI

  • AllenAI Real Toxicity prompts:https://github.com/facebookresearch/ParlAI

  • Stack-exchange:https://huggingface.co/datasets/HuggingFaceH4/stack-exchange-preferences/tree/main

  • hh-rlhf:https://huggingface.co/datasets/liswei/rm-static-zhTW

数学微调数据

  • AMC竞赛数学题:https://huggingface.co/datasets/competition_math

  • 猿辅导开源小学应用题:https://github.com/SCNU203/Math23k/tree/main

  • APE210k腾讯爬取的数学问题:https://github.com/Chenny0808/ape210k

  • 线性代数等纯数学计算题:https://huggingface.co/datasets/math_dataset

  • 有推理过程和多项选择的数学问答数据集:https://huggingface.co/datasets/math_qa/viewer/default/test?row=2

  • 高中数学题2-8步推理过程:https://huggingface.co/datasets/qwedsacf/grade-school-math-instructions

代码微调数据

  • Conala来自StackOverflow问题:https://opendatalab.org.cn/CoNaLa/download

  • code-alpacaGPT生成:https://github.com/sahil280114/codealpaca.git

  • APPS编程网站收集:https://opendatalab.org.cn/APPS

  • Lyra Python操作数据库:https://opendatalab.org.cn/Lyra

对话微调数据

  • LAION:https://github.com/LAION-AI/Open-Instruction-Generalist

  • Ultra Chat 俩个gpt对话:https://github.com/thunlp/UltraChat

  • Baize:https://github.com/project-baize/baize-chatbot/tree/main/data

  • InstructDial:https://github.com/prakharguptaz/Instructdial

  • BlenderBot:https://huggingface.co/datasets/blended_skill_talk

  • Awesome Open-domain Dialogue Models:https://github.com/cingtiye/Awesome-Open-domain-Dialogue-Models#%E4%B8%AD%E6%96%87%E5%BC%80%E6%94%BE%E5%9F%9F%E5%AF%B9%E8%AF%9D%E6%95%B0%E6%8D%AE%E9%9B%86

  • SODA:https://realtoxicityprompts.apps.allenai.org/

医学开源数据

  • 中文医学命名实体识别CMedEE
  • 中文医学文本实体关系抽取CMedIE
  • 临床术语标准化任务CHIP-CDN
  • 临床试验筛选标准短文本分类CHIP-CTC
  • 平安医疗科技疾病问答迁移学习CHIP-STS
  • 医疗搜索检索词意图分类KUAKE-QIC
  • 医疗搜索查询词—页面标题相关性KUAKE-QTR
  • 医疗搜索查询词—查询词相关性KUAKE-QQR
  • 中文医学命名实体识别CMedEE
  • 中文医学文本实体关系抽取CMedIE
  • 临床术语标准化任务CHIP-CDN
  • 临床试验筛选标准短文本分类CHIP-CTC
  • 平安医疗科技疾病问答迁移学习CHIP-STS
  • 医疗搜索检索词—意图分类KUAKE-QIC
  • 医疗搜索查询词—页面标题相关性KUAKE-QTR
  • 医疗搜索查询词—查询词相关性KUAKE-QQR
  • 医疗搜索查询词—相关性检索KUAKE-IR
  • 阴阳性实体判别CHIP-MDCFNPC
  • 对话实体抽取IMCS-V2-NER
  • 意图标签分类IMCS-V2-DAC
  • 智能诊疗对话症状识别IMCS-V2-SR
  • 诊疗报告生成IMCS-V2-MRG
  • 医疗对话生成MedDG
  • MedDialog-CN https://github.com/UCSD-AI4H/Medical-Dialogue-System
  • IMCS-V2 https://github.com/lemuria-wchen/imcs21
  • CHIP-MDCFNPC https://tianchi.aliyun.com/dataset/95414
  • MedDG https://tianchi.aliyun.com/dataset/95414
  • cMedQA2 https://github.com/zhangsheng93/cMedQA2
  • Toyhom https://github.com/Toyhom/Chinese-medical-dialogue-data
  • michaelwzhu/ChatMed-Consult michaelwzhu/ChatMed-Consult · Hugging Face
  • Huatuo-26M https://github.com/FreedomIntelligence/Huatuo-26M
  • Medical https://huggingface.co/datasets/shibing624/medical
  • 复旦DISC-MedLLM https://github.com/FudanDISC/DISC-MedLLM
  • DoctorGLM https://zhuanlan.zhihu.com/p/657058443
  • MedicalGPT https://zhuanlan.zhihu.com/p/657058443
  • ChatMed:https://zhuanlan.zhihu.com/p/657058443
  • MedQA-ChatGLM:https://zhuanlan.zhihu.com/p/657058443
  • 神农中医药大模型:https://zhuanlan.zhihu.com/p/657058443
  • 70B医学大模型:https://huggingface.co/datasets/epfl-llm/guidelines
  • 澳门理工caregpt:https://github.com/WangRongsheng/CareGPT

以下是整理后的中文和英文医疗、对话以及Reward数据集列表,包括数据集的名称、链接和数据条目数:

中文医疗数据集
通用SFT数据集
中文指令Guanaco数据集
多轮对话数据集
Reward Model数据集

通用指令微调数据

  • self-instruct:https://github.com/yizhongw/self-instruct

  • Standford Alpaca:https://github.com/tatsu-lab/stanford_alpaca

  • GPT4-for-LLM:https://github.com/Instruction-Tuning-with-GPT-4/GPT-4-LLM

  • 中文翻译Alpaca:https://github.com/hikariming/alpaca_chinese_dataset https://github.com/carbonz0/alpaca-chinese-dataset

  • Guanaco数据:https://huggingface.co/datasets/JosephusCheung/GuanacoDataset

  • Vicuna:https://github.com/domeccleston/sharegpt https://huggingface.co/datasets/anon8231489123/ShareGPT_Vicuna_unfiltered/tree/main

  • MOSS:https://huggingface.co/datasets/Hello-SimpleAI/HC3-Chinese/tree/main

  • PromptCLUE:https://github.com/CLUEbenchmark/pCLUE

  • P3:https://huggingface.co/datasets/bigscience/P3

  • alpaca COT:https://github.com/PhoebusSi/Alpaca-CoT

  • 中文写作:https://github.com/yangjianxin1/Firefly

  • CSL:https://github.com/ydli-ai/CSL

  • GPTTeacher:https://github.com/teknium1/GPTeacher/tree/main

  • alpaca:https://github.com/Instruction-Tuning-with-GPT-4/GPT-4-LLM/tree/main

  • OIG:https://github.com/BAAI-Zlab/COIG

  • HC3:https://huggingface.co/datasets/Hello-SimpleAI/HC3-Chinese/tree/main

  • InstructWild:https://github.com/XueFuzhao/InstructionWild/tree/main/data

  • BELLE:https://github.com/LianjiaTech/BELLE

  • TK-Instruct:https://instructions.apps.allenai.org/

  • Unnatural Instruction:https://github.com/orhonovich/unnatural-instructions

  • xmtf:https://github.com/bigscience-workshop/xmtf

  • Amazon COT:https://github.com/amazon-science/auto-cot

  • alpaca code 20K:https://github.com/sahil280114/codealpaca#data-release

  • GPT4指令+角色扮演+代码指令:https://github.com/teknium1/GPTeacher

  • Mol-Instructions 2043K :https://github.com/zjunlp/Mol-Instructions

hf 数据

  • https://github.com/LianjiaTech/BELLE
  • https://github.com/OpenLMLab/MOSS
  • https://github.com/TigerResearch/TigerBot • https://github.com/hiyouga/ChatGLM-Efficient-Tuning
  • https://github.com/yanqiangmiffy/InstructGLM
  • https://huggingface.co/datasets/BAAI/COIG-PC
  • https://huggingface.co/datasets/YeungNLP/firefly-train-1.1M
  • https://huggingface.co/datasets/YeungNLP/moss-003-sft-data
  • https://huggingface.co/datasets/YeungNLP/ultrachat

基于 ChatGPT 的数据收集

Prompt 常规格式:定义角色 + 说明要求 + 罗列限制 + few shot + 指定输出格式

Prompt 优秀示例:https://github.com/yzfly/wonderful-prompts

大模型评估数据集

根据功能和用途,以下是各类基准测试和评估方法的分类整理,包括它们的简介和相关链接:

通用知识评估 (General Knowledge Evaluation)

  • MMLU (Measuring Massive Multitask Language Understanding): 测试模型在涵盖数百个任务的广泛领域的理解能力。
    Link

  • C-MMLU (Measuring massive multitask language understanding in Chinese): MMLU的中文版本,评估中文大型语言模型在多任务上的理解。
    Link

  • C-Eval (A Multi-Level Multi-Discipline Chinese Evaluation Suite for Foundation Models): 专注于中文的多级别、多学科评估套件,旨在测试基础模型的能力。
    Link

  • KoLA (Carefully Benchmarking World Knowledge of Large Language Models): 旨在详尽测试大型语言模型对世界知识的理解和记忆。
    Link

  • M3KE (A Massive Multi-Level Multi-Subject Knowledge Evaluation Benchmark for Chinese Large Language Models): 用于评估中文大型语言模型在多个层次和科目上的知识。
    Link

  • AGIEval (A Human-Centric Benchmark for Evaluating Foundation Models): 以人为中心的评估基准,用于检验基础模型在多个维度上的性能。
    Link

推理能力评估 (Reasoning Evaluation)

  • GSM8K (Training Verifiers to Solve Math Word Problems): 包含8000个数学问题,测试模型的问题解决能力。
    Link

  • Maths (Measuring Mathematical Problem Solving With the MATH Dataset): 使用MATH数据集来测量数学问题解决能力。
    Link

  • CSQA (COMMONSENSEQA: A Question Answering Challenge Targeting Commonsense Knowledge): 测试模型在常识知识方面的问答能力。
    Link

  • StrategyQA (Did Aristotle Use a Laptop? A Question Answering Benchmark with Implicit Reasoning Strategies): 测试模型在处理需要隐式推理策略的问题的能力。
    Link

编程能力评估 (Coding Evaluation)

  • MBPP (Program Synthesis with Large Language Models): 用于测试大型语言模型在程序合成方面的能力。
    Link

  • DS-1000 (A Natural and Reliable Benchmark for Data Science Code Generation): 为数据科学代码生成提供一个自然且可靠的基准。
    Link

  • HumanEval (Evaluating Large Language Models Trained on Code): 评估在代码上训练的大型语言模型。
    Link

安全性评估 (Safety Evaluation)

  • Safety-Prompts: 评估中文大型语言模型的安全性。
    Link

  • CValues (Measuring the Values of Chinese Large Language Models from Safety to Responsibility): 从安全性到责任性,测量中文大型语言模型的价值观。
    Link

开放集基准 (Open-set Benchmarks)

  • Vicuna-80 (Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90% ChatGPT Quality)*: 一个开源的聊天机器人,其质量接近GPT-4级别。
    Link

  • Open-Assistant-953 (OpenAssistant Conversations – Democratizing Large Language Model Alignment): 旨在民主化大型语言模型校准过程的对话数据集。
    Link

评估方法和评分系统 (Evaluation Methods and Scoring Systems)

  • LLMs Bias in Evaluation: 探讨大型语言模型在评估过程中的偏见问题。
    Link

  • Multi-Elo (Evaluation Biases for Large Language Models): 分析大型语言模型评估中的偏差。
    Link

  • Reference-Free Evaluation: 不依赖参考答案的评估方法,更多依赖模型的自我评估。
    Link

基于人的评估 (Human-based Evaluation)

  • Ordinal Classification: 一种基于序数分类的评估方法。
    Link

  • Pairwise Comparison: 通过成对比较训练语言模型以遵循指令。
    Link

大型语言模型作为评估者 (Large Language Models as Evaluators)

  • PandaLM (PandaLM: An Automatic Evaluation Benchmark for LLM Instruction Tuning Optimization): 用于评估大型语言模型指令调优优化的自动评估基准。
    Link

请注意,以上链接和介绍是根据您提供的信息整理的,并且可能包含一些重复的链接。此外,由于我的知识截止日期是2023年4月,一些链接或信息可能已经有所更新或更改。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/362929
推荐阅读
相关标签
  

闽ICP备14008679号