1 构建中文tokenization
参考链接:https://zhuanlan.zhihu.com/p/639144223
1.1 为什么需要 构建中文tokenization?
1.2 如何对 原始数据预处理?
1.3 如何构建中文的词库?
1.4 如何使用transformers库加载sentencepiece模型?
1.5 如何合并英文词表和中文词表?
for p in chinese_spm.pieces:
piece = p.piece
if piece not in llama_spm_tokens_set:
new_p = sp_pb2_model.ModelProto().SentencePiece()
new_p.piece = piece
new_p.score = 0
llama_spm.pieces.append(new_p)
1.6 怎么使用修改后的词表?
但是如果我们想要保留原始模型embedding的参数,那么我们可以这么做:
- 找到新词表和旧词表id之间的映射关系。
- 将模型里面新词表里面包含的旧词表用原始模型的embedding替换。
- 如果新词在旧词表里面没有出现就进行相应的初始化再进行赋值。
具体怎么做可以参考一下这个:https://github.com/yangjianxin1/LLMPruner