Skip to content

大模型

ModelScope https://www.modelscope.cn/
HuggingFace(科学上网) https://huggingface.co/

1. 大模型的核心配置文件

  1. config.json 重要的参数:
  1. vocab_size: 识别文字的个数,与vocab.txt中的个数一致
  2. n_positions/max_positon_embeddings: 现在的大语言模型通常叫做max_token,超出这个长度的文本就会被截断
  1. vocab.txt
    这个文件存放的都是大模型认识的字符

  2. speical_tokens_map.json
    这个文件存放的是一些特殊字符的映射,一旦输入中存放了这些特殊字符,就会被替换成对应的token

  3. tokenizer_config.json(分词器)
    这个文件存放的是tokenizer的配置信息

  4. pytorch_model.bin
    这个文件存放的是大模型的二进制文件

2. 大模型的文本生成的本质

大模型文本生成的本质其实是做填空题,大模型只能做数学运算,所以大模型需要先把文本转为数字

大模型是如何将文本转为数字呢?

  1. 首先,文本会被tokenizer处理成token的列表
  2. 然后,每个token会被映射成vocab.txt文件中对应的数字索引

本质就是编码和和解码的过程

只有将数据存放在对应的特征空间中,该数据才能表达特定的含义。

因此,对于自然语言模型而言,将文本通过分词器,转换为索引,仅仅是解决了文本输入到模型的问题。模型要理解文本的含义,还得借助于词向量

文本是如何输入模型的

  1. 文本输入
  2. 分词
  3. 在vocab.txt中找到对应的索引
  4. 将索引转为词向量

模型是如何输出文本的

其实文本生成模型的本质依然是分类任务。模型输出的是21128个概率。对应的是字典中的21128个字符被选中的概率

  1. 模型输出的结果是词向量
  2. 将词向量转为索引
  3. 在vocab.txt中找到对应的字符
  4. 拼接成文本输出

3. 分类任务

在做分类任务时,数据集的每个类别的数据量比例应当均衡/接近于1:1

分类问题有个前提,样本均衡的情况下,其结果才是最有效的。如果样本不均衡,首先得想办法将样本处理均衡。才能有效得训练模型。因为分类 问题得本质,实际是个概率求解问题。而数据集每个样本的数量,对应的就是该事件概率的样本空间。

有两种方法:

  1. 将数据量多的类别,减少样本数量,使其与数据量少的类别持平

  2. 将数据量少的类别,增加样本数量,使其与数据量多的类别持平