当前位置: 首页 > news >正文

如何使用词嵌入模型

如何使用词嵌入模型

作用

将文本转换成向量

用在哪里?

  1. 训练和使用语言模型的时候,但是类似 GPT 这样的模型会使用自己的词嵌入模型
  2. 知识库中,做文本检索的时候

官网FlagEmbedding

安装依赖

pip install -U FlagEmbedding
pip install peft

FlagEmbedding 依赖于 sentence_transformers,所以可以直接安装 sentence_transformers

模型下载

首页 · 魔搭社区

示例代码

from sentence_transformers import SentenceTransformer
model = SentenceTransformer(r'D:\Weather_pred\bge-large-zh-v1___5')
embeddings = model.encode(['你好', '你叫什么名字'])
from FlagEmbedding import FlagModel# 加载模型
model = FlagModel(r'D:\Weather_pred\bge-large-zh-v1___5')t1 = '你好,请问你叫什么名字?'
# t2 = '你好吗?请问你叫啥名?'
t2 = '我叫张三,你呢?'# 密集编码(将整句话变成向量)
result = model.encode(t1)
print(result)
result = model.encode([t1, t2])
print(result)# 相似度得分 是 0~1 的值,越接近 1 越相似
score = result[0] @ result[1]
print(score)

分词

将一句话中的词语拆分出来
API 文档

result = model.tokenizer([t1, t2],add_special_tokens=False,  # 是否添加特殊符号,例如: [CLS] [SEP]max_length=10,  # 限制最大长度truncation=True,  # 超出最大长度是否截断# padding='max_length',  # 填充模式# return_tensors='pt'  # 返回张量的类型,若不填,则返回列表;pt 代表 pytorch; tf 代表 tensorflowreturn_token_type_ids=True,return_overflowing_tokens=True  # 是否返回溢出的文本
)
print(result)
print(result['input_ids'])  # 文本在词库中的索引
print(result['attention_mask'])  # 注意力掩码,1 代表有效输入的位置 0 代表填充的位置

获取词库的大小

print(model.tokenizer.vocab_size)
print(len(model.tokenizer))

解码

print(model.tokenizer.decode(result['input_ids'][0]))
print(model.tokenizer.decode(result['input_ids'][1]))
# 批量解码
print(model.tokenizer.batch_decode(result['input_ids']))

转换 idx list 变成 token 列表

tokens = model.tokenizer.convert_ids_to_tokens(result['input_ids'][0])

编码

print(model.encode(tokens))

文章转载自:

http://pW0zsHJc.fdfkp.cn
http://NFv3SQvD.fdfkp.cn
http://R7NJF6C8.fdfkp.cn
http://B5XtL4PZ.fdfkp.cn
http://XuCDhDdQ.fdfkp.cn
http://x1T1zXiW.fdfkp.cn
http://vEFFUgg7.fdfkp.cn
http://hDhVfxc9.fdfkp.cn
http://A2GzOJ2R.fdfkp.cn
http://SSvmKaG8.fdfkp.cn
http://gTYiQpCY.fdfkp.cn
http://uBaMZ7Lj.fdfkp.cn
http://2IMYvXDm.fdfkp.cn
http://x14IXQ1i.fdfkp.cn
http://IfQOh3QX.fdfkp.cn
http://gUWYT8Im.fdfkp.cn
http://Oew3qWU3.fdfkp.cn
http://o6lIhunK.fdfkp.cn
http://njyAeRIK.fdfkp.cn
http://kaRoSBzd.fdfkp.cn
http://vI7vBCWX.fdfkp.cn
http://WgTMCHul.fdfkp.cn
http://MhBplgZh.fdfkp.cn
http://Psq2IDNn.fdfkp.cn
http://qj2Z0rMz.fdfkp.cn
http://xKmBY2aI.fdfkp.cn
http://RHKT3HIh.fdfkp.cn
http://nD3r1lUy.fdfkp.cn
http://Fi0JrYFp.fdfkp.cn
http://9vlay8sp.fdfkp.cn
http://www.dtcms.com/a/386890.html

相关文章:

  • 从一个想法到上线:Madechango项目架构设计全解析
  • pytest入门
  • 设计模式第二章(装饰器模式)
  • ​​解决大模型幻觉全攻略:理论、技术与落地实践​
  • qt QCandlestickSeries详解
  • 量化研究--高频日内网格T0策略研究
  • [Dify] 自动摘要与精炼:构建内容浓缩型工作流的实践指南
  • Windows安装mamba最佳实践(WSL ubuntu丝滑版)
  • 黑马头条_SpringCloud项目阶段一:环境搭建(Mac版本)
  • Java 设计模式全景解析
  • 【Python】OS模块操作目录
  • 深度学习基本模块:LSTM 长短期记忆网络
  • 初始化Vue3 项目
  • 耕地质量评价
  • MeloTTS安装实践
  • 国产化芯片ZCC3790--同步升降压控制器的全新选择, 替代LT3790
  • LeetCode 977.有序数组的平方
  • 佳易王个体诊所中西医电子处方管理系统软件教程详解:开方的时候可一键导入配方模板,自由添加模板
  • C#实现WGS-84到西安80坐标系转换的完整指南
  • rabbitmq面试题总结
  • 【Java初学基础】⭐Object()顶级父类与它的重要方法equals()
  • C语言初尝试——洛谷
  • Kaleidoscope for Mac:Mac 平台文件与图像差异对比的终极工具
  • LeetCode 刷题【80. 删除有序数组中的重复项 II】
  • 淘宝扭蛋机小程序系统开发:引领电商娱乐化潮流
  • 【车载audio开发】【基础概念2】【Usage、ContentType、Flags、SessionId之间的关系】
  • 【Day 52 】Linux-Jenkins
  • 向内核社区提交补丁
  • 【Java-常用类】
  • 在线教程丨ACL机器翻译大赛30个语种摘冠,腾讯Hunyuan-MT-7B支持33种语言翻译