20250221 NLP

1.向量和嵌入

https://zhuanlan.zhihu.com/p/634237861

encoder的输入就是向量,提前嵌入为向量

二.多模态文本嵌入向量过程

1.文本预处理

文本tokenizer之前需要预处理吗?

是的,文本tokenizer之前通常需要对文本进行预处理。预处理步骤可以包括以下内容:

1. 标准化

  • 大小写转换:将文本转换为统一大小写(通常是小写)以减少词汇表大小。
  • 去除标点符号:除去不必要的标点符号,保持文本的简洁。

2. 分词准备

  • 去除空白:清除多余的空格或换行符。
  • 特殊字符处理:处理特殊字符或符号,以确保分词的准确性。

3. 其他处理

  • 停用词过滤:根据任务需要,可以去除常见但无意义的停用词(如"的"、"和"等)。
  • 词干提取或词形还原:将单词还原到其基本形式,以统一表示。

这些预处理步骤帮助提高tokenizer的效率和准确性,确保生成的token序列更具一致性和可用性。

当然,这里是一个简单的文本预处理示例:

原始文本

复制代码
"What is the animal?"

预处理步骤

  1. 大小写转换

    • 将文本转换为小写:

      复制代码
      "what is the animal?"
  2. 去除标点符号

    • 去掉问号:

      复制代码
      "what is the animal"
  3. 去除多余空格

    • 确保没有多余空格:

      复制代码
      "what is the animal"
  4. 停用词过滤(可选)

    • 如果需要,可以去掉停用词(如"is", "the"),具体取决于任务需求:

      复制代码
      "what animal"
  5. 词干提取或词形还原(可选)

    • 将单词还原到词干形式(如"running"变为"run"):

      复制代码
      "what animal"

结果

经过预处理,文本更为简洁,适合于tokenization和后续处理。预处理后的文本可以被tokenizer进一步分割为token序列,如:

复制代码
["what", "animal"]

这些步骤帮助确保tokenizer的输出一致且易于模型处理。

2.tokenizer 字节对编码

例如BPE、WordPiece等分词模型构建词汇表(['low', 'est']),添加自增索引。

BPE(Byte Pair Encoding)本身不需要训练,但它确实需要一个过程来构建词汇表。这涉及从文本中统计频率和合并字符对。以下是一个示例来说明这个过程:

BPE构建过程示例

假设文本数据
复制代码
"banana", "bandana"
步骤1:初始化
  • 将每个单词分解为字符序列:
    • b a n a n a
    • b a n d a n a
步骤2:统计频率
  • 统计所有相邻字符对的出现频率:
    • 'b a':2次
    • 'a n':3次
    • 'n a':3次
    • 'a n':3次
    • 'n d':1次
    • 'd a':1次
步骤3:合并高频对
  • 合并出现频率最高的字符对 'a n':
    • b an a n a
    • b an d a n a
步骤4:重复过程
  • 再次统计字符对:

    • 'b an':2次
    • 'an a':2次
    • 'n a':2次
    • 'an d':1次
    • 'd a':1次
  • 合并 'an':

    • ban a n a
    • ban d a n a
  • 继续合并,直到达到预定义的词汇表大小。

最终词汇表

  • 通过多次合并,最终得到一个包含字符和子词的词汇表:

    复制代码
    ['b', 'a', 'n', 'd', 'an', 'ban']

总结

  • BPE通过合并高频字符对,构建出一个高效的子词词汇表。
  • 这个过程不需要训练参数,但需要从数据中统计和合并字符对以创建词汇表。

3.embedding

通过子词索引在嵌入表中查找对应的嵌入向量。相似的语义信息的挨着。

文本嵌入表需要训练吗?还是LLM预训练模型自带的

文本嵌入表通常是需要训练的,但它可以是LLM预训练模型的一部分。在大型语言模型(LLM)的预训练过程中,嵌入表会随着模型其他参数一起优化,以便更好地捕捉词汇的语义信息。

两种常见情况

  1. 预训练模型自带

    • 许多大型语言模型在发布时已经包含了训练好的文本嵌入表。
    • 使用这些模型时,嵌入表可以直接应用于新任务。
  2. 自定义训练

    • 如果你使用自己的数据进行微调或训练新的模型,文本嵌入表会在训练过程中更新。
    • 嵌入表的参数会随着其他模型参数一起通过反向传播进行优化。

总结

文本嵌入表可以是预训练模型的一部分,也可以在特定任务中通过微调进行更新。嵌入表的质量对模型理解和生成文本的能力有重要影响。

在多模态大语言模型(MLLM)中,文本嵌入表可以是静态的,也可以是动态的,具体取决于模型的设计和使用的技术。

静态嵌入

  • 定义:每个词在训练开始时被分配一个固定的向量。
  • 特征
    • 嵌入在训练过程中不随上下文变化。
    • 常用于早期的嵌入技术,如Word2Vec和GloVe。
  • 优点:计算效率高,易于实现。
  • 缺点:无法捕捉词的上下文特征和多义性。

动态嵌入

  • 定义:词的嵌入根据上下文动态生成。
  • 特征
    • 嵌入向量在每个输入实例中可能不同。
    • 使用模型如BERT、GPT等。
  • 优点:能够更好地理解上下文,处理多义词。
  • 缺点:计算复杂度较高。

在MLLM中的应用

  • 静态嵌入:在一些简单或资源受限的应用中可能仍然使用。
  • 动态嵌入:在需要深度理解和复杂推理的任务中更为常见。

总结

在现代多模态模型中,动态上下文嵌入越来越普遍,它们能够提供更丰富的语义信息,适合复杂的跨模态任务。

相关推荐
Godspeed Zhao26 分钟前
自动驾驶中的传感器技术24.3——Camera(18)
人工智能·机器学习·自动驾驶
顾北122 小时前
MCP协议实战|Spring AI + 高德地图工具集成教程
人工智能
wfeqhfxz25887822 小时前
毒蝇伞品种识别与分类_Centernet模型优化实战
人工智能·分类·数据挖掘
中杯可乐多加冰3 小时前
RAG 深度实践系列(七):从“能用”到“好用”——RAG 系统优化与效果评估
人工智能·大模型·llm·大语言模型·rag·检索增强生成
珠海西格电力科技3 小时前
微电网系统架构设计:并网/孤岛双模式运行与控制策略
网络·人工智能·物联网·系统架构·云计算·智慧城市
FreeBuf_3 小时前
AI扩大攻击面,大国博弈引发安全新挑战
人工智能·安全·chatgpt
weisian1514 小时前
进阶篇-8-数学篇-7--特征值与特征向量:AI特征提取的核心逻辑
人工智能·pca·特征值·特征向量·降维
Java程序员 拥抱ai4 小时前
撰写「从0到1构建下一代游戏AI客服」系列技术博客的初衷
人工智能
186******205314 小时前
AI重构项目开发全流程:效率革命与实践指南
人工智能·重构
森之鸟4 小时前
多智能体系统开发入门:用鸿蒙实现设备间的AI协同决策
人工智能·harmonyos·m