重排序模型解读:gte-multilingual-reranker-base 首个GTE系列重排模型诞生

模型介绍

gte-multilingual-reranker-base 模型是 GTE 模型系列中的第一个 reranker 模型,由阿里巴巴团队开发。

在这里插入图片描述

模型特征:

  • Model Size: 306M
  • Max Input Tokens: 8192

benchmark

关键属性:

  • 高性能:与类似大小的 reranker 模型相比,在多语言检索任务和多任务表示模型评估中实现最先进的 (SOTA) 结果。
  • 训练架构:使用仅编码器 transformers 架构进行训练,从而获得更小的模型尺寸。与以前基于仅解码 LLM 架构的模型(例如 gte-qwen2-1.5b-instruct)不同,该模型对推理的硬件要求较低,推理速度提高了 10 倍。
  • 长上下文:支持高达 8192 个令牌的文本长度。
  • 多语言功能:支持 70 多种语言。

在这里插入图片描述

评价

还处于新出现的阶段,是新晋的GTE重排序模型,模型综合性能可以,商业化需要在生产/测试环境中实测过才好上生产。

huggingface:https://huggingface.co/Alibaba-NLP/gte-multilingual-reranker-base

paper:https://arxiv.org/pdf/2407.19669

建议安装 xformers 并启用 unpadding 来加速,参考enable-unpadding-and-xformers

地址:https://huggingface.co/Alibaba-NLP/new-impl#recommendation-enable-unpadding-and-acceleration-with-xformers

除了开源的GTE系列机型外,GTE系列机型在阿里云上也以商业API服务的形式提供。请注意,商业 API 背后的模型与开源模型并不完全相同。

用法示例

python 调用示例:
使用 Huggingface transformers (transformers>=4.36.0)

import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer

model_name_or_path = "Alibaba-NLP/gte-multilingual-reranker-base"

tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)
model = AutoModelForSequenceClassification.from_pretrained(
    model_name_or_path, trust_remote_code=True,
    torch_dtype=torch.float16
)
model.eval()

pairs = [["中国的首都在哪儿","北京"], ["what is the capital of China?", "北京"], ["how to implement quick sort in python?","Introduction of quick sort"]]
with torch.no_grad():
    inputs = tokenizer(pairs, padding=True, truncation=True, return_tensors='pt', max_length=512)
    scores = model(**inputs, return_dict=True).logits.view(-1, ).float()
    print(scores)

# tensor([1.2315, 0.5923, 0.3041])

云api地址:https://help.aliyun.com/zh/model-studio/text-rerank-api

《餐馆点餐管理系统——基于Java和MySQL的课程设计解析》 在信息技术日益发达的今天,餐饮行业的数字化管理已经成为一种趋势。本次课程设计的主题是“餐馆点餐管理系统”,它结合了编程语言Java和数据库管理系统MySQL,旨在帮助初学者理解如何构建一个实际的、具有基本功能的餐饮管理软件。下面,我们将深入探讨这个系统的实现细节及其所涉及的关键知识点。 我们要关注的是数据库设计。在“res_db.sql”文件中,我们可以看到数据库的结构,可能包括菜品表、订单表、顾客信息表等。在MySQL中,我们需要创建这些表格并定义相应的字段,如菜品ID、名称、价格、库存等。此外,还要设置主键、外键来保证数据的一致性和完整性。例如,菜品ID作为主键,确保每个菜品的唯一性;订单表中的顾客ID和菜品ID则作为外键,与顾客信息表和菜品表关联,形成数据间的联系。 接下来,我们来看Java部分。在这个系统中,Java主要负责前端界面的展示和后端逻辑的处理。使用Java Swing或JavaFX库可以创建用户友好的图形用户界面(GUI),让顾客能够方便地浏览菜单、下单。同时,Java还负责与MySQL数据库进行交互,通过JDBC(Java Database Connectivity)API实现数据的增删查改操作。在程序中,我们需要编写SQL语句,比如INSERT用于添加新的菜品信息,SELECT用于查询所有菜品,UPDATE用于更新菜品的价格,DELETE用于删除不再提供的菜品。 在系统设计中,我们还需要考虑一些关键功能的实现。例如,“新增菜品和价格”的功能,需要用户输入菜品信息,然后通过Java程序将这些信息存储到数据库中。在显示所有菜品的功能上,程序需要从数据库获取所有菜品数据,然后在界面上动态生成列表或者表格展示。同时,为了提高用户体验,可能还需要实现搜索和排序功能,允许用户根据菜品名称或价格进行筛选。 另外,安全性也是系统设计的重要一环。在连接数据库时,要避免SQL注入攻击,可以通过预编译的PreparedStatement对象来执行SQL命令。对于用户输入的数据,需要进行验证和过滤,防止非法字符和异常值。 这个“餐馆点餐管理系统”项目涵盖了Java编程、数据库设计与管理、用户界面设计等多个方面,是一个很好的学习实践平台。通过这个项目,初学者不仅可以提升编程技能,还能对数据库管理和软件工程有更深入的理解。在实际开发过程中,还会遇到调试、测试、优化等挑战,这些都是成长为专业开发者不可或缺的经验积累
### GTE-Qwen2-0.5B-Instruct 模型概述 GTE-Qwen2-0.5B-Instruct 是通义千问系列中的一个轻量级指令微调模型,基于 Qwen2-0.5B 构建。该模型经过优化,在较小规模参数的情况下仍能提供高质量的对话能力和其他自然语言处理任务的支持[^1]。 为了使用 GTE-Qwen2-0.5B-Instruct 模型,通常可以通过以下方式获取和部署: --- ### 下载与安装方法 #### 方法一:通过 Xinference 平台启动 如果计划在本地环境中运行 GTE-Qwen2-0.5B-Instruct 嵌入模型,可以按照以下流程操作: 1. **访问 Xinference 控制面板** 登录到已安装好的 Xinference 环境管理界面。 2. **选择 Embedding Models 类别** 在控制面板中导航至 `Embedding Models` 部分,并搜索目标模型名称 `gte-Qwen2`[^3]。 3. **配置模型实例** - 设置副本数量 (`Replica`) 为 1。 - 将设备选项设置为 GPU(如果有可用资源),或者 CPU(作为备选方案)。 4. **启动模型** 单击左侧底部按钮触发下载过程并加载模型。一旦完成初始化,即可查看其状态切换至 `Running Models` 页面。 注意:在此过程中可能会遇到依赖库缺失错误提示,例如缺少 Python 库 `sentence-transformers`。此时需手动执行命令来补充必要组件: ```bash pip install sentence-transformers ``` #### 方法二:直接从 Hugging Face Hub 获取预训练权重文件 另一种途径是从官方支持站点如 Hugging Face Model Repository 中检索对应条目 “Qwen/gte-qwen2-0.5b-instruct”。具体步骤如下: - 浏览至链接位置; - 利用 Git LFS 工具克隆整个存储库结构或将单个压缩包形式的数据集提取出来保存于指定目录路径之下;最后再依据个人需求编写适配脚本接入项目框架里头去运用它吧! --- ### 示例代码片段展示如何加载及测试该模型功能 以下是利用 Transformers 库加载上述提及版本号之一——即 gte-qwen2-0.5b-instruct 的简单例子供参考学习所用: ```python from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("Qwen/gte-qwen2-0.5b-instruct") model = AutoModelForCausalLM.from_pretrained("Qwen/gte-qwen2-0.5b-instruct") input_text = "你好啊" inputs = tokenizer(input_text, return_tensors="pt").to(model.device) outputs = model.generate(**inputs, max_length=50) result = tokenizer.decode(outputs[0], skip_special_tokens=True) print(result) ``` 以上程序段展示了怎样快速上手这款特定大小级别的变体型号来进行基础交流互动演示效果呈现给用户看哦~ --- ### 注意事项 当尝试导入某些模块失败时,请务必确认所有必需软件包均已正确安装到位后再重新尝试一次完整的构建流程动作哈~比如刚才提到过的那个关于句子转换器方面的报错情况就需要先额外增加相应扩展才行啦! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.小海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值