使用 loRA 微调一个 PDF 使用手册(2)

上一节讲到 把 pdf 文件转换为 md 文件

这一节介绍把 md 文件转换为 jsonl 文件,便于微调使用

pdf 文件转换 md 文件后,大概的格式如下:

为了保证数据的有效性,提供的文档需要进行第二次处理

我们微调的文档大部分是英文的,尽量保持原理英文的逻辑,但是需要分段,分段也是一个技巧。

每一段需要最多多少字节,如何分段?

这里是这样分段,按 md 的分段逻辑来。

  1. 以 # 开始为一段,但是要保持字节足够多,可以继续下一个 #,
  2. 但是总字节数不能超过 2048个 token(不是字节,这个你可以修改)
  3. 如果每一段超过2048个字节,则会按行再分开
  4. 使用的模型是 https://huggingface.co/Qwen/Qwen2-7B-Instruct

在微调大型语言模型(如Qwen-2)时,通常会按token来处理,而不是字节。这是因为:

  1. Token是模型的基本处理单元:语言模型在输入文本时会将其拆分为token(通常是词、词的一部分或字符)。不同的tokenizer(如BPE、WordPiece)有不同的方式生成token,因此token数直接决定模型的输入长度。
  2. Token与字节的关系:虽然字节数在文本编码和存储中有意义,但在语言模型中,模型实际处理的是token。即使两个文本的字节数相同,token数可能会不同,因为同一个字符序列在不同的上下文中可能被切分成不同数量的token。
  3. 最大长度限制:微调过程中,输入序列的长度限制是基于token的。例如,大多数模型在处理时会有最大token数(如2048或4096 tokens)的限制,而不是直接根据字节数。

下面是示例代码:

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部