【开源】多语言大型语言模型的革新:百亿参数模型超越千亿参数性能

news2025/1/8 5:53:30

大型人工智能模型,尤其是那些拥有千亿参数的模型,因其出色的商业应用表现而受到市场的青睐。但是,直接通过API使用这些模型可能会带来数据泄露的风险,尤其是当模型提供商如OpenAI等可能涉及数据隐私问题时。私有部署虽然是一个解决办法,但昂贵的授权费用对于许多企业来说是一笔不小的开支。Orion-14B系列模型的推出,旨在解决这一难题,提供一个既经济实惠又性能卓越的选择。

Orion-14B系列特点

Orion-14B系列模型以其百亿参数规模,在多个专业场景问题解答中超越了GPT-4等千亿参数级别的模型。更令人振奋的是,该系列模型能够在普通消费级显卡上运行,显著降低了硬件成本。

关键特性包括:

  1. 在20B参数规模水平的模型中,Orion-14B-Base在综合评估中表现优异。
  2. 强大的多语言能力,尤其在日语和韩语测试集中表现突出。
  3. 微调模型展现出强大的适应能力,在人工标注的盲测中表现卓越。
  4. 长聊天版本支持极长文本,最大支持320k令牌长度。
  5. 量化版本将模型大小减少70%,推理速度提高30%,性能损失不到1%。

模型系列

Orion-14B系列包括以下模型:

  • Orion-14B-Base:一个具有14亿参数的多语言基础模型,预训练在2.5万亿token的多样化数据集上。
  • Orion-14B-Chat:在高质量语料库上微调的聊天模型,旨在为大型模型社区的用户提供卓越的交互体验。
  • Orion-14B-LongChat:长文本版本,擅长处理极长文本。
  • Orion-14B-Chat-RAG:在自定义检索增强生成数据集上微调的聊天模型,检索增强生成任务中表现卓越。
  • Orion-14B-Chat-Plugin:专为插件和功能调用任务量身定制的聊天模型,适用于代理相关场景。
  • Orion-14B-Base-Int4:使用4位整数权重的量化基础模型。
  • Orion-14B-Chat-Int4:使用4位整数权重的量化聊天模型。

模型基准测试

Orion-14B系列模型在专业场景问题解答方面进行了评估,测试结果表明,Orion-14B-Base模型在考试和专业知识评估上超越了其他同类模型,如GPT-4。这些评估通常包括对模型在特定领域知识的掌握程度和解答相关问题的能力进行测试。

模型的语言理解能力通过诸如RACE-middle、RACE-high、HellaSwag、PIQA、Lambada、WSC等测试集进行评估。Orion-14B-Base在这些测试中表现出色,特别是在RACE-middle和RACE-high测试中,显示出模型在语言理解和常识知识方面的强大能力。

OpenCompass测试集是一系列设计用来评估语言模型在不同领域上的表现的测试。Orion-14B-Base在这些测试中同样展现了优秀的性能,证明了其在多个领域的广泛应用潜力。

Orion-14B系列模型在多语言能力上进行了特别的优化。特别是在日语和韩语的测试集中,模型展现出了显著的性能,这表明Orion-14B系列在处理亚洲语言方面具有明显优势。

Orion-14B-Chat模型在MTBench和AlignBench等聊天模型主观评估中进行了测试。这些测试不仅关注模型的响应质量,还包括了对模型在不同领域的适应性和交互体验的评估。

Orion-14B-LongChat模型在LongBench长聊天评估中表现出色,这表明该模型能够处理极长文本,适合需要长对话或长文本处理的应用场景。

Orion-14B-Chat-RAG模型在自定义的检索增强生成(RAG)测试集中进行了评估。这些测试旨在衡量模型在检索信息并结合生成任务中的表现,Orion-14B-Chat-RAG在这些测试中展示了其卓越的性能。

Orion-14B系列还包括了量化版本,如Orion-14B-Base-Int4,这些版本在保持性能的同时显著减少了模型大小并提高了推理速度。通过量化技术,模型能够在资源受限的环境中高效运行,同时保持较低的性能损失。

Python代码推理

Orion-14B系列模型支持通过Python代码进行直接推理。用户可以使用transformers库中的AutoModelForCausalLMAutoTokenizer类加载模型和分词器。通过设置device_map='auto',模型可以自动利用所有可用的GPU资源进行加速。此外,通过指定torch_dtype=torch.bfloat16,可以在保持精度的同时优化内存使用和推理速度。

示例:

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation.utils import GenerationConfig

tokenizer = AutoTokenizer.from_pretrained("OrionStarAI/Orion-14B", use_fast=False, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("OrionStarAI/Orion-14B", device_map="auto", torch_dtype=torch.bfloat16, trust_remote_code=True)

model.generation_config = GenerationConfig.from_pretrained("OrionStarAI/Orion-14B")
messages = [{"role": "user", "content": "Hello, what is your name? "}]
response = model.chat(tokenizer, messages, streaming=False)
print(response)

在这段代码中,model.chat函数用于生成模型的响应,streaming=False表示不使用流式输出。

命令行工具推理

Orion-14B系列模型还提供了命令行工具,方便用户在终端中快速进行模型推理。用户可以通过设置环境变量CUDA_VISIBLE_DEVICES来指定使用的GPU设备,然后运行命令行脚本进行推理。

示例命令如下:

CUDA_VISIBLE_DEVICES=0 python cli_demo.py

这个命令行工具专为聊天场景设计,不支持调用基础模型。

直接脚本推理

用户还可以通过直接运行脚本进行模型推理。Orion-14B系列模型提供了基础模型和聊天模型的脚本示例。

基础模型推理示例命令:

CUDA_VISIBLE_DEVICES=0 python demo/text_generation_base.py --model OrionStarAI/Orion-14B --tokenizer OrionStarAI/Orion-14B --prompt hello

聊天模型推理示例命令:

CUDA_VISIBLE_DEVICES=0 python demo/text_generation.py --model OrionStarAI/Orion-14B-Chat --tokenizer OrionStarAI/Orion-14B-Chat --prompt hi

这些脚本允许用户通过命令行参数指定模型、分词器和输入提示。

vLLM推理

Orion-14B系列模型支持通过vLLM项目进行推理。vLLM是一个轻量级的推理库,可以与Orion-14B系列模型配合使用。

启动vLLM服务器的示例命令:

python -m vllm.entrypoints.openai.api_server --model OrionStarAI/Orion-14B-Chat

这允许用户通过vLLM提供的API接口进行模型推理。

llama.cpp推理

Orion-14B系列模型还可以通过llama.cpp项目进行推理。llama.cpp是一个高效的推理引擎,支持多种模型格式。

用户首先需要将Hugging Face模型转换为GGUF格式,使用如下命令:

python convert-hf-to-gguf.py path/to/Orion-14B-Chat --outfile chat.gguf

然后,使用llama.cpp运行生成任务,示例命令如下:

./main --frequency-penalty 0.5 --top-k 5 --top-p 0.9 -m chat.gguf -p "Building a website can be done in 10 simple steps:\nStep 1:" -n 400 -e

这个命令设置了频率惩罚、top-k和top-p参数,并指定了模型文件和输入提示。

示例输出

Orion-14B系列模型的推理输出示例包括日常聊天和多语言聊天。例如,在英文聊天中,模型能够以友好和有帮助的方式回应用户的问候和提问。在日文和韩文聊天中,模型也能够以相应的语言进行流畅的对话。

这些推理方法展示了Orion-14B系列模型的灵活性和实用性,无论是通过编程接口、命令行工具还是与其他推理引擎的集成,都能够为用户提供强大且易于使用的模型推理能力。

项目链接:https://github.com/OrionStarAI/Orion

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1693136.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库主流技术

文章目录 1.分布式数据库1.1 基础知识1.2 体系结构 2.Web数据库3.XML与数据库4.面向对象数据库5.大数据和数据仓库 1.分布式数据库 1.1 基础知识 分布式数据库系统是数据库系统和计算机网络相结合的产物。 由于计算机功能增强,成本下降,几乎每个办公室…

通过扩展指令增强基于覆盖引导的模糊测试

本文由Bruno Oliveira于2024年4月25日发表于IncludeSec的官方网站上。作为IncludeSec的安全研究人员,在他们日常的安全审计和渗透测试工作中,有时需要为客户开发一些模糊测试工具。在安全评估方法中使用模糊测试技术,可以有效地在复杂的现代化…

小程序-购物车-基于SKU电商规格组件实现

SKU 概念: 存货单位( Stock Keeping Unit ), 库存 管理的最小可用单元,通常称为“单品”。 SKU 常见于电商领域,对于前端工程师而言,更多关注 SKU 算法 ,基于后端的 SKU 数据…

AI大模型探索之路-实战篇6: Function Calling技术调研之详细流程剖析

系列篇章💥 AI大模型探索之路-实战篇4:DB-GPT数据应用开发框架调研实践 AI大模型探索之路-实战篇5: Open Interpreter开放代码解释器调研实践 目录 系列篇章💥一、前言二、Function Calling详细流程剖析1、创建OpenAI客户端2、定…

infoq读书笔记-Davide Taibi博士-花8年转型微服务却得不到回报,问题出在哪 儿?

InfoQ:您的论文“On the Definition of Microservice Bad Smells”涉及非常多的微服务不良做法,但如果要用几个大类别来列举危害性比较大的微服务反模式,您认为会是哪几类?另外,您能再大概分析说明下造成这个几个反模式…

《计算机网络微课堂》1-2:因特网概述

1-2:因特网概述 网络、互连网(互联网)和因特网因特网发展的三个阶段因特网的标准化工作因特网的组成 ‍ 网络、互连网(互联网)和因特网 我们首先介绍网络、互联网(互连网)因特网的基本概念&a…

c语言——宏offsetof

1.介绍 !!! offsetof 是一个宏 2.使用举例 结构体章节的计算结构体占多少字节需要先掌握(本人博客结构体篇章中已经讲解过) 计算结构体中某变量相对于首地址的偏移,并给出说明 首先,结构体首个…

MyBatis常见报错:org.apache.ibatis.binding.BindingException

哈喽,大家好,我是木头左! 异常现象描述 当开发者在使用MyBatis进行数据库操作时,可能会遇到org.apache.ibatis.binding.BindingException: Parameter appId not found这样的错误提示。这个错误通常会让程序无法正常运行&#xff…

如何在华为手机上恢复已删除的视频[4种解决方案]

概括 在数字媒体时代,智能手机已成为我们的个人金库,存储以视频形式捕捉的珍贵记忆。然而,意外删除这些珍贵的文件可能会是一次令人心痛的经历。对于华为手机用户来说,由于删除或其他意外导致视频丢失尤其令人痛苦。但不用担心&a…

cadence23---PCB Editer 学习笔记

1.交互式布局 在Orcad中点击图标N生成第一网表: 在PCB Editer中导入第一网表, 之后点击移动命令并在右侧属性框中勾选Symbol选项卡: 设置--应用模式--点击常规编辑: 之后就可以进行交互式选择了。 绿色图标为打开全部飞线&#…

【Spring Security + OAuth2】OAuth2

Spring Security OAuth2 第一章 Spring Security 快速入门 第二章 Spring Security 自定义配置 第三章 Spring Security 前后端分离配置 第四章 Spring Security 身份认证 第五章 Spring Security 授权 第六章 OAuth2 文章目录 Spring Security OAuth21、OAuth2简介1.1、OAu…

力扣:92. 反转链表 II(Java)

目录 题目描述&#xff1a;示例 1&#xff1a;示例 2&#xff1a;代码实现&#xff1a; 题目描述&#xff1a; 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的…

刷代码随想录有感(78):回溯算法——关于树枝/树层去重的思考(涉及break/continue的使用)

在复原IP地址中&#xff0c;剪枝操作我们使用的是break: if(isvalid(s, start, i)){s.insert(s.begin() i 1, .);pointNum;backtracking(s, i 2, pointNum);s.erase(s.begin() i 1);pointNum--; }else break;在其他情况&#xff0c;举个例子&#xff0c;在含有重复元素求…

WiFi蓝牙模块开发配置过程中需要注意的细节

在很多产品的应用场景中&#xff0c;WIFI网络会给我们提供很多便捷&#xff0c;MCU开发中大多使用串口WIFI蓝牙模块来实现产品接入WIFI网络中。   具体的使用模型如下图所示&#xff1a;整个系统涉及到WIFI网络、手机、服务器平台以及我们设计的产品&#xff0c;一个完整的生…

第十一课,end关键字、简单while循环嵌套、初识for循环

一&#xff0c;end关键字 end关键字用于在print输出的内容后面声明结束的字符&#xff0c;我们之前学过并且十分了解print是默认输出内容之后跟着换行的&#xff0c;如果我们不希望换行而希望使用其它字符来代替换行&#xff0c;就可以用end关键字来实现 特殊的&#xff0c;en…

使用elementUI的form表单校验时,错误提示位置异常解决方法

问题 最近在做项目时遇到一个问题&#xff0c;使用elementUI的Descriptions 描述列表与form表单校验时&#xff0c;遇到校验信息显示的位置不对&#xff0c;效果如图&#xff1a; 期望显示在表格中。 效果 代码 html <el-form :model"form":rules"rules…

原始字面常量(C++11)

原始字面常量&#xff08;C11&#xff09; 文章目录 原始字面常量&#xff08;C11&#xff09;前言一、原始字面量二、代码示例总结 前言 字面量一般是指数值&#xff08;12、454等&#xff09;和字符串&#xff08;“Hw”、“h\t”&#xff09;&#xff0c;但是有时候我们想表…

用栈实现队列(C语言)

目录 题目题目分析 代码栈的实现结构体。栈的初始化栈的销毁 入栈删除查找顶部数据判空 答案结构体初始化插入数据删除数据获取队列开头元素判空销毁栈 题目 题目分析 链接: 题目 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、po…

MyBatis 学习笔记(一)

MyBatis 封装 JDBC :连接、访问、操作数据库中的数据 MyBatis 是一个持久层框架。 MyBatis 提供的持久层框架包括 SQLMaps 和 Data Access Objects&#xff08;DAO&#xff09; SQLMaps&#xff1a;数据库中的数据和 Java数据的一个映射关系 封装 JDBC 的过程Data Access Ob…