- 人工智能
- NLP
- 大模型
【免费下载链接】gliformer-large-v1
GLiFormer Large v1 是 Knowledgator 发布的 575.6M 参数多任务大型文本模型,除了命名实体识别、文本分类、关系抽取之外,还内置文本嵌入能力:一条embed_text调用即可把句子变成1024 维向量,再用余弦相似度就能量化两段文本的语义接近程度。本文面向新手,带你从零跑通「文本嵌入 → 语义相似度计算」的完整流程。
为什么选择 GLiFormer 做文本嵌入
很多嵌入模型(如通用 sentence embedding 模型)只能做一件事。而 GLiFormer 的架构特点是多个任务头共享同一个 DeBERTa 编码器:
| 能力 | 是否支持 |
|---|---|
| 命名实体识别(NER) | ✅ |
| 文本分类 | ✅ |
| 联合关系抽取 | ✅ |
| 结构化抽取(直接输出 JSON) | ✅ |
| 文本嵌入 / 语义相似度 | ✅ |
这意味着你可以用同一个模型既抽取实体、又计算相似度,省去维护多套模型的麻烦。其嵌入配置定义在 gliner_config.json 的embedding_config字段中,可以看到两个关键参数:
projection_dim: 1024—— 输出向量固定为1024 维similarity_fn: cosine—— 官方推荐的相似度度量方式是余弦相似度
一键安装与模型加载
在 Python 3.10+ 环境中执行一行命令即可安装:
pip install gliformer -U加载模型只需三行代码(详细说明见 README.md 的 Usage 章节):
import torch from gliformer import GLiFormer model = GLiFormer.from_pretrained( "knowledgator/gliformer-large-v1", load_tokenizer=True, ) model = model.to("cuda" if torch.cuda.is_available() else "cpu").eval()💡 如果你使用本地 checkpoint 目录,把模型 ID 换成目录路径即可。
生成1024维文本嵌入向量
GLiFormer 使用DebertaV2Tokenizer(见 tokenizer_config.json),默认max_length为 1024 个 token,支持[CLS]/[SEP]特殊标记,右侧填充。嵌入提取采用cls池化:取[CLS]位置的表示并投影到 1024 维空间。
调用embed_text支持单条或批量文本:
embeddings = model.embed_text([ "A scientist works in a laboratory.", "A researcher conducts an experiment.", ]) print(embeddings.shape) # torch.Size([2, 1024])每句话都得到一个1024 维浮点向量,语义相近的句子,其向量方向也相近。
余弦相似度计算语义接近程度
有了向量,用 PyTorch 自带的余弦相似度函数一步完成比较:
import torch.nn.functional as F similarity = F.cosine_similarity(embeddings[0:1], embeddings[1:2]).item() print(similarity)余弦相似度取值范围是-1 ~ 1:
| 相似度区间 | 语义含义 |
|---|---|
| 接近 1 | 两句话语义几乎相同 |
| 0.5 ~ 0.8 | 主题相关、表述不同 |
| 接近 0 | 基本不相关 |
| 接近 -1 | 语义相反(文本任务中少见) |
上面示例中,"scientist works in a laboratory" 与 "researcher conducts an experiment" 描述的是同一场景的不同表述,会输出较高的相似度得分——这正是语义级匹配而非关键词匹配。
实战场景:语义相似度能帮你做什么
掌握「1024 维向量 + 余弦相似度」这套组合拳后,常见的落地场景包括:
- 重复问题检测:客服系统中,把新消息与历史 FAQ 向量逐一比较,高于阈值(如 0.85)即判定为重复问题并自动回复。
- 文档去重与聚类:批量计算向量两两相似度,筛除近似重复文档,或作为聚类算法的相似度函数。
- 检索增强(RAG)召回:用查询句的向量检索语义相近的段落,再交给生成模型回答。
- 文本排序:对候选答案按相似度降序排列,取 Top-K 结果。
批量处理时可以直接传入文本列表,embed_text内部会自动处理,效率优于逐条循环。
模型文件与训练信息速览
仓库中的关键文件及其作用如下,方便你核对本地部署完整性:
- pytorch_model.bin:模型权重文件,包含共享 DeBERTa 编码器与各任务头参数
- gliner_config.json:完整架构配置,含嵌入维度、池化方式、相似度函数
- tokenizer.json:词表与分词规则(SentencePiece 词表,约 8.3MB)
- tokenizer_config.json:分词器参数(最大长度 1024、右填充等)
- trainer_state.json:训练状态记录,本次检查点在 3000 步(7 个 epoch 中的约 3.84)时保存,loss 已降至 0.138
- README.md:官方使用说明、API 示例与全部评测结果
使用注意事项
- ⚠️语种:目前公开结果覆盖英语任务,其他语言的嵌入质量官方未做基准验证,建议先小规模自测。
- ⚠️输入长度:分词器默认上限 1024 个 token,超长文本会被截断(
truncation_strategy: longest_first)。 - ⚠️阈值调整:相似度阈值没有统一标准,应结合你的业务数据画分布后再定,0.8~0.9 是相似度匹配常用的起点。
- ⚠️设备:575.6M 参数在 CPU 上可以运行但较慢,有 GPU 时建议
model.to("cuda")。
小结
GLiFormer Large v1 用一行embed_text把任意文本压缩为1024 维语义向量,再配合余弦相似度即可完成重复检测、去重、RAG 召回等任务。更妙的是,它与 NER、分类、关系抽取、结构化抽取共享同一编码器——一套模型,五种能力。按本文流程走一遍,你现在就能在自己的项目里跑通第一组语义相似度计算。
- 人工智能
- NLP
- 大模型
【免费下载链接】gliformer-large-v1
相关推荐
5分钟上手llama.cpp嵌入模型:从文本向量化到语义相似度计算
5分钟上手llama.cpp嵌入模型:从文本向量化到语义相似度计算 你是否还在为本地部署文本嵌入模型而烦恼?编译复杂、依赖繁多、运行缓慢三大痛点让许多开发者望而
人工智能大模型推理引擎本地部署模型推理服务模型量化Sentence-Transformers 稀疏编码器语义文本相似度(STS)实战指南:SPLADE 嵌入与相似度计算
Sentence Transformers 稀疏编码器语义文本相似度(STS)实战指南:SPLADE 嵌入与相似度计算 导读 本文基于 sentence tra
人工智能NLP深度学习微调RAG多维度向量生成与相似度计算:LightRAG嵌入模型实战指南
多维度向量生成与相似度计算:LightRAG嵌入模型实战指南 在构建检索增强生成(RAG)系统时,向量嵌入(Embedding)是连接文本数据与机器学习模型的桥
人工智能RAG大模型知识图谱本地部署
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考