网易有道开源 “子曰 - o1” 推理模型

embedded/2025/2/6 10:48:31/

网易有道开源的 “子曰 - o1” 推理模型支持消费级显卡,主要通过以下技术实现:

  • 轻量级模型设计:“子曰 - o1” 采用 14B 参数规模,相比许多对硬件配置要求高的大型推理模型,选择了较小的参数规模,从基础上降低了对硬件的性能需求,尤其是对显卡的要求,使其可以在消费级显卡上运行。
  • 低比特量化技术:该模型使用低比特量化技术,在不影响模型推理能力的前提下,对模型数据进行量化处理,减少数据存储和计算所需的空间和资源,进一步优化了模型在消费级显卡上的运行效率,使得模型能在如 RTX 3090、A100 等消费级显卡上实现高效部署。
  • 异构计算优化:研发团队通过异构计算优化,成功将模型推理时延控制在 300ms 以内,配合动态显存管理技术,使单卡显存占用降低至 8GB 以下,让消费级显卡能够在有限的显存空间内,以较低的延迟运行该模型,确保了模型在消费级显卡上的稳定运行。

1. 环境准备

安装依赖库

通常需要安装深度学习框架如 PyTorch,以及一些辅助工具库。可以使用 pip 进行安装,示例命令如下:

收起

bash

pip install torch transformers accelerate

这里 torch 是 PyTorch 深度学习框架,transformers 库提供了预训练模型的加载和使用接口,accelerate 库有助于在不同硬件环境下加速模型推理。

确保硬件支持

“子曰 - o1” 支持消费级显卡,确保你的显卡驱动已经正确安装,并且显卡的 CUDA 或 ROCm 环境配置正常。例如,如果使用 NVIDIA 显卡,需要安装对应的 CUDA 工具包。

2. 模型下载

开源社区提供的渠道下载 “子曰 - o1” 模型文件。一般来说,模型文件可能包含在 GitHub 仓库或者专门的模型托管平台上。可以使用 git 命令克隆仓库获取模型,示例如下:

收起

bash

git clone <模型仓库地址>

3. 编写推理代码

以下是一个简单的 Python 代码示例,展示如何使用 “子曰 - o1” 进行推理:

收起

python

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM# 加载分词器
tokenizer = AutoTokenizer.from_pretrained("<模型路径>", trust_remote_code=True)# 加载模型
model = AutoModelForCausalLM.from_pretrained("<模型路径>", device_map="auto", torch_dtype=torch.float16, trust_remote_code=True)# 输入文本
input_text = "请介绍一下人工智能。"# 对输入文本进行分词
inputs = tokenizer(input_text, return_tensors="pt").to(model.device)# 生成输出
outputs = model.generate(**inputs, max_new_tokens=200, num_beams=1)# 解码输出结果
output_text = tokenizer.decode(outputs[0], skip_special_tokens=True)# 打印输出结果
print(output_text)

代码解释:

  • 加载分词器:使用 AutoTokenizer.from_pretrained 方法加载与 “子曰 - o1” 模型对应的分词器,trust_remote_code=True 允许加载远程代码。
  • 加载模型:使用 AutoModelForCausalLM.from_pretrained 方法加载模型,device_map="auto" 会自动将模型分配到可用的硬件设备上,torch_dtype=torch.float16 指定使用半精度浮点数以减少显存占用。
  • 输入文本处理:将输入文本进行分词处理,并将分词结果转换为 PyTorch 张量,然后移动到模型所在的设备上。
  • 生成输出:使用 model.generate 方法根据输入生成输出,max_new_tokens 指定生成的最大新令牌数,num_beams 是束搜索的束宽。
  • 解码输出结果:使用分词器的 decode 方法将生成的令牌序列解码为文本,并去除特殊令牌。

4. 运行代码

将上述代码保存为一个 Python 文件(例如 inference.py),然后在终端中运行:

收起

bash

python inference.py

运行代码后,你将看到 “子曰 - o1” 模型根据输入文本生成的输出结果。


http://www.ppmy.cn/embedded/160002.html

相关文章

Linux 安装 RabbitMQ

Linux下安装RabbitMQ 1 、获取安装包 # 地址 https://github.com/rabbitmq/erlang-rpm/releases/download/v21.3.8.9/erlang-21.3.8.9-1.el7.x86_64.rpm erlang-21.3.8.9-1.el7.x86_64.rpmsocat-1.7.3.2-1.el6.lux.x86_64.rpm# 地址 https://github.com/rabbitmq/rabbitmq-se…

Maven(Ⅱ):依赖范围,依赖传递,依赖阻断,可选依赖

1. Maven 依赖范围 概念 依赖范围&#xff08;Dependency Scope&#xff09;用于控制依赖在不同构建阶段的可见性和可用性。Maven 定义了几种不同的依赖范围&#xff0c;每种范围都有其特定的使用场景。 常见依赖范围及用途 compile&#xff1a;默认的依赖范围&#xff0c;…

【AI知识点】特征编码(Feature Encoding)

特征编码 是将数据集中的分类特征&#xff08;Categorical Features&#xff09;转换为数值特征&#xff08;Numerical Features&#xff09;的过程。分类特征是机器学习模型&#xff08;尤其是数值模型&#xff0c;如线性回归、支持向量机等&#xff09;无法直接处理的数据类型…

图像特征点提取与匹配

引入 视觉里程计根据两帧图像确定机器人的位姿变化。视觉里程计的算法主要分为两个大类&#xff1a;特征点法和直接法。特征点法长久以来&#xff08;直到现在&#xff09;被认为是视觉里程计的主流方法。而特征点法首先需要提取特征点并进行匹配。 1. 特征点 1.1特征点的定义…

Spring Boot统一异常拦截实践指南

Spring Boot统一异常拦截实践指南 一、为什么需要统一异常处理 在Web应用开发中&#xff0c;异常处理是保证系统健壮性和用户体验的重要环节。传统开发模式中常见的痛点包括&#xff1a; 异常处理逻辑分散在各个Controller中错误响应格式不统一敏感异常信息直接暴露给客户端…

【C语言】自定义类型讲解

文章目录 一、前言二、结构体2.1 概念2.2 定义2.2.1 通常情况下的定义2.2.2 匿名结构体 2.3 结构体的自引用和嵌套2.4 结构体变量的定义与初始化2.5 结构体的内存对齐2.6 结构体传参2.7 结构体实现位段 三、枚举3.1 概念3.2 定义3.3 枚举的优点3.3.1 提高代码的可读性3.3.2 防止…

《手札·开源篇》基于开源Odoo软件与Deepseek的智能企业管理系统集成方案

一、方案背景 随着企业数字化转型的深入&#xff0c;传统ERP系统需要结合AI技术实现智能化升级。本方案将开源ERP系统Odoo与深度求索&#xff08;Deepseek&#xff09;大模型能力深度整合&#xff0c;构建具备智能决策支持、自然语言交互和数据分析增强的企业管理平台。 二、…

C++:虚函数与多态性习题

题目内容&#xff1a; 构建一个车&#xff08;vehicle&#xff09;基类&#xff0c;包含Run、Stop两个纯虚函数。由此基类&#xff0c;派生出&#xff08;Car&#xff09;轿车类&#xff0c;&#xff08;truck&#xff09;卡车类&#xff0c;在这两个类中别分定义Run和Stop两个…