大模型
ModelScope https://www.modelscope.cn/
HuggingFace(科学上网) https://huggingface.co/
1. 大模型的核心配置文件
- config.json 重要的参数:
- vocab_size: 识别文字的个数,与vocab.txt中的个数一致
- n_positions/max_positon_embeddings: 现在的大语言模型通常叫做max_token,超出这个长度的文本就会被截断
vocab.txt
这个文件存放的都是大模型认识的字符speical_tokens_map.json
这个文件存放的是一些特殊字符的映射,一旦输入中存放了这些特殊字符,就会被替换成对应的tokentokenizer_config.json(分词器)
这个文件存放的是tokenizer的配置信息pytorch_model.bin
这个文件存放的是大模型的二进制文件
2. 大模型的文本生成的本质
大模型文本生成的本质其实是做填空题,大模型只能做数学运算,所以大模型需要先把文本转为数字
大模型是如何将文本转为数字呢?
- 首先,文本会被tokenizer处理成token的列表
- 然后,每个token会被映射成vocab.txt文件中对应的数字索引
本质就是编码和和解码的过程
只有将数据存放在对应的特征空间中,该数据才能表达特定的含义。
因此,对于自然语言模型而言,将文本通过分词器,转换为索引,仅仅是解决了文本输入到模型的问题。模型要理解文本的含义,还得借助于词向量
文本是如何输入模型的
- 文本输入
- 分词
- 在vocab.txt中找到对应的索引
- 将索引转为词向量
模型是如何输出文本的
其实文本生成模型的本质依然是分类任务。模型输出的是21128个概率。对应的是字典中的21128个字符被选中的概率
- 模型输出的结果是词向量
- 将词向量转为索引
- 在vocab.txt中找到对应的字符
- 拼接成文本输出
3. 分类任务
在做分类任务时,数据集的每个类别的数据量比例应当均衡/接近于1:1
分类问题有个前提,样本均衡的情况下,其结果才是最有效的。如果样本不均衡,首先得想办法将样本处理均衡。才能有效得训练模型。因为分类 问题得本质,实际是个概率求解问题。而数据集每个样本的数量,对应的就是该事件概率的样本空间。
有两种方法:
将数据量多的类别,减少样本数量,使其与数据量少的类别持平
将数据量少的类别,增加样本数量,使其与数据量多的类别持平
