20250221 NLP
1.向量和嵌入
https://zhuanlan.zhihu.com/p/634237861
encoder的输入就是向量,提前嵌入为向量
二.多模态文本嵌入向量过程

1.文本预处理
文本tokenizer之前需要预处理吗?
是的,文本tokenizer之前通常需要对文本进行预处理。预处理步骤可以包括以下内容:
1. 标准化
- 大小写转换:将文本转换为统一大小写(通常是小写)以减少词汇表大小。
- 去除标点符号:除去不必要的标点符号,保持文本的简洁。
2. 分词准备
- 去除空白:清除多余的空格或换行符。
- 特殊字符处理:处理特殊字符或符号,以确保分词的准确性。
3. 其他处理
- 停用词过滤:根据任务需要,可以去除常见但无意义的停用词(如“的”、“和”等)。
- 词干提取或词形还原:将单词还原到其基本形式,以统一表示。
这些预处理步骤帮助提高tokenizer的效率和准确性,确保生成的token序列更具一致性和可用性。
当然,这里是一个简单的文本预处理示例:
原始文本
"What is the animal?"
预处理步骤
-
大小写转换
- 将文本转换为小写:
"what is the animal?"
- 将文本转换为小写:
-
去除标点符号
- 去掉问号:
"what is the animal"
- 去掉问号:
-
去除多余空格
- 确保没有多余空格:
"what is the animal"
- 确保没有多余空格:
-
停用词过滤(可选)
- 如果需要,可以去掉停用词(如"is", "the"),具体取决于任务需求:
"what animal"
- 如果需要,可以去掉停用词(如"is", "the"),具体取决于任务需求:
-
词干提取或词形还原(可选)
- 将单词还原到词干形式(如“running”变为“run”):
"what animal"
- 将单词还原到词干形式(如“running”变为“run”):
结果
经过预处理,文本更为简洁,适合于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 ab 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 ab 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 aban d a n a
-
继续合并,直到达到预定义的词汇表大小。
最终词汇表
- 通过多次合并,最终得到一个包含字符和子词的词汇表:
['b', 'a', 'n', 'd', 'an', 'ban']
总结
- BPE通过合并高频字符对,构建出一个高效的子词词汇表。
- 这个过程不需要训练参数,但需要从数据中统计和合并字符对以创建词汇表。
3.embedding
通过子词索引在嵌入表中查找对应的嵌入向量。相似的语义信息的挨着。
文本嵌入表需要训练吗?还是LLM预训练模型自带的
文本嵌入表通常是需要训练的,但它可以是LLM预训练模型的一部分。在大型语言模型(LLM)的预训练过程中,嵌入表会随着模型其他参数一起优化,以便更好地捕捉词汇的语义信息。
两种常见情况
-
预训练模型自带:
- 许多大型语言模型在发布时已经包含了训练好的文本嵌入表。
- 使用这些模型时,嵌入表可以直接应用于新任务。
-
自定义训练:
- 如果你使用自己的数据进行微调或训练新的模型,文本嵌入表会在训练过程中更新。
- 嵌入表的参数会随着其他模型参数一起通过反向传播进行优化。
总结
文本嵌入表可以是预训练模型的一部分,也可以在特定任务中通过微调进行更新。嵌入表的质量对模型理解和生成文本的能力有重要影响。
在多模态大语言模型(MLLM)中,文本嵌入表可以是静态的,也可以是动态的,具体取决于模型的设计和使用的技术。
静态嵌入
- 定义:每个词在训练开始时被分配一个固定的向量。
- 特征:
- 嵌入在训练过程中不随上下文变化。
- 常用于早期的嵌入技术,如Word2Vec和GloVe。
- 优点:计算效率高,易于实现。
- 缺点:无法捕捉词的上下文特征和多义性。
动态嵌入
- 定义:词的嵌入根据上下文动态生成。
- 特征:
- 嵌入向量在每个输入实例中可能不同。
- 使用模型如BERT、GPT等。
- 优点:能够更好地理解上下文,处理多义词。
- 缺点:计算复杂度较高。
在MLLM中的应用
- 静态嵌入:在一些简单或资源受限的应用中可能仍然使用。
- 动态嵌入:在需要深度理解和复杂推理的任务中更为常见。
总结
在现代多模态模型中,动态上下文嵌入越来越普遍,它们能够提供更丰富的语义信息,适合复杂的跨模态任务。
相关文章:
20250221 NLP
1.向量和嵌入 https://zhuanlan.zhihu.com/p/634237861 encoder的输入就是向量,提前嵌入为向量 二.多模态文本嵌入向量过程 1.文本预处理 文本tokenizer之前需要预处理吗? 是的,文本tokenizer之前通常需要对文本进行预处理。预处理步骤可…...
【C++】const关键字的作用及常见应用场景
一、核心作用 用于定义“常量”,限制程序对变量的修改,提升代码安全性和可读性。其核心作用包括: 避免误修改:明确标识不可变数据。编译器优化:常量可被放入符号表,减少内存访问,优化执行效率…...
04控制流
一、二路分支 逻辑:程序中某段代码需要在满足某个条件时才能运行形式: if 语句:表达一种 如果-则 的条件执行关系if-else 语句:表达一种 如果-否则 的互斥分支关系 流程图: 注意: if 语句可以单独使用&…...
【Leetcode 每日一题】2506. 统计相似字符串对的数目
问题背景 给你一个下标从 0 0 0 开始的字符串数组 w o r d s words words。 如果两个字符串由相同的字符组成,则认为这两个字符串 相似 。 例如,“abca” 和 “cba” 相似,因为它们都由字符 ‘a’、‘b’、‘c’ 组成。然而,“…...
【Shell编程 / 9】脚本实战项目:从基础到进阶的自动化管理方案
文章目录 Shell脚本实战项目自动化部署脚本系统监控脚本文件备份脚本定时任务管理脚本文件传输自动化脚本自动化日志清理脚本用户管理脚本 Shell脚本实战项目 在掌握了 Shell 脚本的基本语法和高级技巧后,实践是进一步提升脚本编写能力的关键。通过参与一些实际的项…...
在PyTorch中使用插值法来优化卷积神经网络(CNN)所需硬件资源
插值法其实就是在已知数据点之间估计未知点的值。通过已知的离散数据点,构造一个连续的曲线函数,预测数据点之间的空缺值是什么并且自动填补上去。 适用场景: 在卷积神经网络(CNN)中的应用场景中,经常遇到计算资源有限,比如显存不够或者处理速度慢,需要用插值来降低计…...
黄金市场现状与驱动因素分析
一、当前市场现状:挤兑、运力与供应链危机 全球金库告急与运输瓶颈 伦敦商业银行金库的黄金存量告急,纽约和伦敦市场出现“史诗级挤兑”。提取英格兰银行金库的黄金需等待4-8周,远高于常规的几天时间[citation:用户描述]。专业运输车辆超负荷…...
Linux arm64 IOMMU总结
一、DMA的引入 Non-DMA:CPU直接与设备进行数据交互,CPU的负载会随着数据的读写而增加; DMA:CPU不参与数据的直接传输,DMA Controller负责Device与Memory之间的数据搬运,并以中断信号的形式通知CPU…...
服务器通过 ollama 运行deepseek r1
1、服务器环境简介 56核 CPU64G 内存无显卡已安装 Ollama 2、下载模型与配置 正常可以通过 ollama pull 或 ollama run 命令直接下载,但通常会遇到连接超时、找不到网址等总理。因此,可以使用国内的模型站进行下载,在这里使用魔塔查找模型…...
MYSQL学习笔记(九):MYSQL表的“增删改查”
前言: 学习和使用数据库可以说是程序员必须具备能力,这里将更新关于MYSQL的使用讲解,大概应该会更新30篇,涵盖入门、进阶、高级(一些原理分析);这一篇讲述一些在MYSQL的数据类型,和表的“增删改查”基本操作;虽然MYSQ…...
Oracle JDK、Open JDK zulu下载地址
一、Oracle JDK https://www.oracle.com/java/technologies/downloads/ 刚进去是最新的版本,往下滑可以看到老版本 二、Open JDK的 Azul Zulu https://www.azul.com/downloads/ 直接可以选版本等选项卡...
分类解析决策模型
一、按理性程度划分的决策模型 1. 完全理性模型(古典决策理论) 核心假设:决策者拥有完全信息,能计算所有选项的效用并选择最优解。数学模型: 期望效用理论(Expected Utility Theory, EU): E U = ∑ ( p i...
【SPIE出版,见刊快速,EI检索稳定,浙江水利水电学院主办】2025年物理学与量子计算国际学术会议(ICPQC 2025)
2025年物理学与量子计算国际学术会议(ICPQC 2025)将于2025年4月18-20日在中国杭州举行。本次会议旨在汇聚全球的研究人员、学者和业界专家,共同探讨物理学与量子计算领域的最新进展与前沿挑战。随着量子技术的快速发展,其在信息处…...
【网络】高级IO——Reactor版TCP服务器
1.什么是Reactor Reactor 是一种应用在服务器端的开发模式(也有说法称 Reactor 是一种 IO 模式),目的是提高服务端程序的并发能力 它要解决什么问题呢? 传统的 thread per connection 用法中,线程在真正处理请求之前首…...
3.Docker常用命令
1.Docker启动类命令 1.启动Docker systemctl start docker 2.停止Docker systemctl stop docker 3.重启Docker systemctl restart docker 4.查看Docker状态 systemctl status docker 5.设置开机自启(执行此命令后每次Linux重启后将自启动Docker) systemctl enable do…...
【uni-app】对齐胶囊容器组件
代码碎片 <template><div><view :style"{ height: ${statusBarHeight}px }"></view><viewclass"":style"{height: ${menuButtonHeight menuButtonPadding * 2}px,width: ${menuButtonInfo.left}px,}"><slot …...
JUC并发—10.锁优化与锁故障
大纲 1.标志位修改场景优先使用volatile(服务优雅停机) 2.数值递增场景优先使用Atomic类(心跳计数器) 3.共享变量仅对当前线程可见的场景优先使用ThreadLocal(edits log的处理) 4.读多写少需要加锁的场景优先使用读写锁(服务注册表的并发读写) 5.尽量减少线程对锁占用时间…...
Java 大视界 -- 区块链赋能 Java 大数据:数据可信与价值流转(84)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
大数据学习之PB级音乐数据中心数仓综合项目(1)-理论知识和项目需求、歌曲热度与歌手热度排行
一、理论知识和项目需求 1.课程介绍 2.数据库与ER建模_数据库三范式 3.数据库与ER建模_ER实体关系模型 4.数据库与维度建模_数据仓库(DATA WAREHOUSE) 5.数据库与维度建模_数据库与数据仓库区别 6.数据库与维度建模_数据仓库的发展历程 7.数据库与维度建模_维度建模 8.数据库与…...
DeepSeek vs ChatGPT:AI 领域的华山论剑,谁主沉浮?
一、引言 在当今科技飞速发展的时代,人工智能(AI)已然成为推动各领域变革的核心力量。而在人工智能的众多分支中,自然语言处理(NLP)因其与人类日常交流和信息处理的紧密联系,成为了最受瞩目的领…...
【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
