金乡做网站 亿九,企业系统建设,乐清建网站,建网站公司哪个比较好AIGC大语言模型之词元和嵌入向量 AIGC大语言模型之词元和嵌入向量AIGC大语言模型之词元和嵌入向量前言一、LLM的分词1、分词器2、分词器如何分解文本3、开源分词器4、词级、子词级、字符级与字节级分词二、词元嵌入向量1、文本嵌入#xff08;用于句子和整篇文档#xff09;2…AIGC大语言模型之词元和嵌入向量AIGC大语言模型之词元和嵌入向量AIGC大语言模型之词元和嵌入向量前言一、LLM的分词1、分词器2、分词器如何分解文本3、开源分词器4、词级、子词级、字符级与字节级分词二、词元嵌入向量1、文本嵌入用于句子和整篇文档2、这边我们自己预训练文本词总结前言词元和嵌入向量是人工智能生成内容AIGC中使用LLM的两个核心概念。一、LLM的分词1、分词器是在模型处理文本之前 分词器会将文本分解成词或者子词。这个是根据特定的方法和训练过程进行的。2、分词器如何分解文本3、开源分词器分词器/库核心思想/算法标志性特点主要使用者OpenAI BPE(tiktoken)Byte-level BPE直接在字节流上操作高效压缩GPT-2,GPT-3,GPT-4,GPT-40, GPT-5SentencePieceBPE, Unigram语言无关无需预分词空格视为LLaMA, T5,多语言模型WordPieceMax-Likelihood需要预分词词中片段用 ## 标记BERT 及其家族Hugging FacetokenizersBPE, WordPiece,Unigram…集大成者高性能Rust 实现完整流水线Hugging Face 生态所有模型4、词级、子词级、字符级与字节级分词二、词元嵌入向量语言是词元的序列如果我们子啊足够大的词元集上训练一个足够好的模型它就会开始捕获训练数据集中出现的复杂模式如果训练数据包含有大量英语文本 通过这些模式模型就能够表示和生成英语。如果训练数据包含事实性信息例如维基百科模型就会具有生成一下事实性信息的能力1、文本嵌入用于句子和整篇文档虽然词元嵌入是LLM运作的关键 但许多LLM应用需要处理完整的句子段落甚至文本文档这催生了一下特殊的语言模型他们能够生成文本嵌入-- 用单个向量来表示长度超过一个词元的文本片段。我们可以这样理解文本嵌入模型它接收一段文本 最终生成单个向量 这个向量以某种形式表示该文本并捕获其含义.生成文本嵌入有多种方法。常见的方法之一是对模型生成的所有词元嵌入的值取平均值然而高质量的文本嵌入模型往往是专门为文本嵌入任务训练的2、这边我们自己预训练文本词准备预训练数据集(清洗、去重、tokenizer)Tokenizer设置词元、分词策略输出模型# 导入 SentencePiece 库用于无监督训练子词BPE/Unigram模型以及后续编码/解码 import sentencepiece as spm def train(input_file, vocab_size, model_name, model_type, character_coverage): 重要说明官方参数文档可查 https://github.com/google/sentencepiece/blob/master/doc/options.md 参数含义 - input_file: 原始语料文件路径每行一句SentencePiece 会做 Unicode NFKC 规范化 支持多文件逗号拼接a.txt,b.txt - vocab_size: 词表大小如 8000 / 16000 / 32000 - model_name: 模型前缀名最终会生成 model_name.model 和 model_name.vocab - model_type: 模型类型unigram默认/ bpe / char / word 注意若使用 word需要你在外部先分好词预分词 - character_coverage: 覆盖的字符比例 * 中文/日文等字符集丰富语言建议 0.9995 * 英文等字符集小的语言建议 1.0 # 这里使用“字符串命令”式的调用来指定训练参数 # 固定 4 个特殊符号的 idpad0, unk1, bos2, eos3 # 这与下游 Transformer 常用配置一致便于对齐 input_argument ( --input%s --model_prefix%s --vocab_size%s --model_type%s --character_coverage%s --pad_id0 --unk_id1 --bos_id2 --eos_id3 ) # 将传入参数填充到命令字符串 cmd input_argument % (input_file, model_name, vocab_size, model_type, character_coverage) # 开始训练会在当前工作目录下生成 model_name.model / model_name.vocab spm.SentencePieceTrainer.Train(cmd) # 英文分词器配置 en_input data/data.txt # 英文语料一行一句 en_vocab_size 32000 # 词表大小翻译任务常见为 16k/32k en_model_name eng # 输出前缀会生成 eng.model / eng.vocab en_model_type bpe # 使用 BPE也可尝试 unigram en_character_coverage 1.0 # 英文字符集小 → 用 1.0 train(en_input, en_vocab_size, en_model_name, en_model_type, en_character_coverage)总结https://chensongpoixs.github.io/