轩辕:首个千亿级中文金融对话模型

news2024/11/25 10:41:19

背景

目前开源的大语言模型或多或少存在以下痛点:

  • 缺少专门针对中文进行优化过的的大语言模型。

  • 支持中文的开源模型的参数规模偏小,没有超过千亿。比如清华和智谱AI的ChatGLM-6B目前只开源了6B参数模型,盘古alpha也只开源了13B的模型。

  • 支持金融这个垂直领域的开源模型基本没有。前段时间Bloomberg发布的BloombergGPT是业界的一个尝试,效果不错,但是不开源。

轩辕(以下内容用XuanYuan表示)基于Bloom-176B开源模型,在该模型基础上,针对金融领域的数据做了pre-training和fine-tune,是国内首个开源的千亿级中文对话大模型,同时也是首个针对中文金融领域优化的千亿级开源对话大模型。

XuanYuan大模型

轩辕在BLOOM-176B的基础上针对中文通用领域和金融领域进行了针对性的预训练与微调。

它不仅可以应对通用领域的问题,也可以解答与金融相关的各类问题,为用户提供准确、全面的金融信息和建议。

数据收集

训练数据集包含以下几个方面:

  • 通用预训练数据+金融预训练数据:来源于互联网抓取的数据。

  • 通用指令数据+金融指令数据:先人工构造种子指令数据(seed instruction data),然后基于Self-Instruct (Wang et al., 2022)论文里的方法生成通用指令数据。再基于Self-QA (Zhang and Yang, 2023)里的方法对非结构化和结构化的金融数据生成大语言模型需要的金融指令数据。Self-Instruct和Self-QA的论文参考文末的References。

通用数据的意思是不仅有金融领域的数据,还包含众多其他领域的数据。

金融数据集涵盖了金融研报、股票、基金、银行、保险等各个方向的专业知识。

实验结果表明,经过清洗和标注的高质量数据集,不仅在通用性方面与ChatGPT达到持平成为可能,且显著提升了模型在金融垂直领域的性能。

训练过程

针对垂直领域做大模型训练和微调,要仔细设计训练过程。

如果只是简单的拿垂直领域的一问一答指令数据做fine tune,可能会产生灾难性遗忘(catastrophic forgetting)。

灾难性遗忘的意思是经过训练的模型忘记了模型最开始被训练出来的通用知识,只记住了这个垂直领域相关的内容,就会导致回答质量下降。

参考上图,训练垂直领域的大模型传统方法是分为如下2个阶段:

  • 第一阶段:unsupervised domain-specific pre-training,简单来说就是把垂直领域的数据喂给大模型做预训练,让大模型去预测下一个token。
  • 第二阶段:supervised domain-specific instruction-tuning,构造垂直领域的一问一答指令数据,再基于指令数据做fine-tune。

XuanYuan提出了一种全新的训练方法hybrid-tuning,不再分为以上2个阶段。

首先,把pre-training data(预训练数据)和instruction data(指令数据)合并为一个训练数据集。

然后,基于这个数据集做训练,训练过程中把通用数据的预训练、通用数据的指令微调、金融数据的预训练和金融数据的指令微调顺序打乱。

训练完成后,模型既有了金融领域的知识和对话能力,也保留了通用领域的知识和对话能力,不会有灾难性遗忘的问题。

训练的硬件是NVIDIA A100 80GB GPU,使用DeepSpeed分布式训练框架来提升训练效率,降低训练成本。

实验效果

金融领域效果评测

为了深入评估轩辕对话大模型在金融领域的专业性,作者构建了一套针对金融领域的详细评测体系。

该评测体系涉及金融名词理解、金融市场评论、金融数据分析和金融新闻理解等四大领域,从多角度全面考察模型的金融处理能力。

评测结果表明,轩辕在主流的四种开源大模型的比较中,赢得了150次回答中63.33%的胜率,凸显出其在金融领域的显著优势。

BloomChat的我在之前的文章里介绍过,是国外开源的支持多语言(包括中文)、可商用的大语言模型,了解详情可以参考可商用、开源、支持多语言的千亿参数大语言模型。

通用领域效果评测

除了在金融领域的突出表现,轩辕还在通用处理能力方面表现优秀。

作者利用由200道多元化问题构成的通用评测集,对轩辕在数学计算、场景写作、逻辑推理、文本摘要等13个主要维度的表现进行了评估,并将其与ChatGPT进行了对比。

结果显示,轩辕在这个评测集上,有71%的问题表现不亚于ChatGPT,验证了其全方面能力。

总结

轩辕是国内首个开源的千亿级中文对话大模型,同时也是首个针对中文金融领域优化的千亿级开源对话大模型,不能商用

文章和示例代码开源在GitHub: GPT实战教程,可以看到所有主流的开源LLM。

公众号:coding进阶。关注公众号可以获取最新GPT实战内容。

个人网站:Jincheng’s Blog。

知乎:无忌。

References

  • XuanYuan 2.0: https://arxiv.org/pdf/2305.12002.pdf
  • XuanYuan GitHub: https://github.com/Duxiaoman-DI/XuanYuan
  • XuanYuan on HuggingFace: https://huggingface.co/xyz-nlp/XuanYuan2.0
  • Self-Instruct: https://arxiv.org/pdf/2212.10560.pdf
  • Self-QA: https://arxiv.org/abs/2305.11952

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

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

相关文章

杨立昆:科学之路读书笔记1

杨立昆:科学之路读书笔记1 前言科学之路1读书缘由靠省钱,是混不出名堂的AI趣事话题交流 一起学AI系列博客:目录索引 前言 在贝尔实验室,靠节省开支,是无法混出名堂的。——《科学之路》 五一假期读的多,写的…

毫米波雷达点云 DBSCAN聚类算法

毫米雷达点云 DBSCAN聚类算法 聚类的目的聚类算法分类原型聚类层次聚类密度聚类 DBSCAN聚类算法原理相关定义算法流程以及伪代码DBSCAN算法优缺点DBSCAN参数选择聚类衡量指标 DBSCAN算法仿真DBSCAN代码DBSCAN算法对毫米波雷达点云数据进行聚类 聚类的目的 聚类的目的是将一组数…

认识http协议---3

hi,大家好,今天为大家带来http协议的相关知识 🍇1.http状态响应码 🍇2.构造http请求 1.直接在地址栏里输入一个URL 2.html的一些特殊标签,触发get请求 3.提交form表单,可以触发get请求和post请求 4.使用ajax 🍇3.再次谈同步和异步 &#x1f3…

spark sql(四)物理计划解析

1、流程解析 在该系列第二篇文章中介绍了spark sql整体的解析流程,我们知道整体的sql解析分为未解析的逻辑计划(Unresolved LogicalPlan)、解析后的逻辑计划(LogicalPlan)、优化后的逻辑计划(Optimized Lo…

HDFS学习笔记

HDFS1.0 1 什么是HDFS? HDFS的全称是:Hadoop DistributeFiles System,分布式文件系统。 在整个Hadoop技术体系中,HDFS提供了数据分布式存储的底层技术支持。 HDFS 由三个组件构成:NameNode(NN&#xff…

排序算法:堆排序

朋友们、伙计们,我们又见面了,本期来给大家解读一下栈和队列方面的相关知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! 数据结构与算法专栏:数据结构与算法 个 人 …

算法|9.从暴力递归到动态规划2

9.算法|从暴力递归到动态规划2 1.数字字符串转英文字符串 题意:规定1和A对应、2和B对应、3和C对应…26和Z对应,那么一个数字字符串比如"111”就可以转化为:“AAA”、“KA"和"AK” 给定一个只有数字字符组成的字符串str,返回…

windows安装python开发环境

最近因工作需要,要学习一下python,所以先安装一下python的开发环境,比较简单 下载和安装Python 首先,在浏览器中打开Python的官方网站(https://www.python.org/downloads/) 然后,从该网站下载与你的操…

NCI架构-1

1、NFCC和DH通过物理连线相连,物理连线对应为Transport Layer(传输层),支持SPI、I2C、UART、USB等; 2、DH中所有和NFC相关的应用程序都可视为DH-NFCEE(EE:Execution Enviroment),图左的NFCEE模块可运行一些…

Linux系统中源码安装1.8.x版本Arduino IDE

本文内容参考: Ubuntu22.04安装Arduino IDE及Arduino UNO(使用CH341驱动)调试方法__KILLMILEDC_的博客-CSDN博客 在Linux上下载arduino_不说话的白帽子的博客-CSDN博客 https://guoqing.blog.csdn.net/article/details/88913063?spm1001.…

【JVM】8. 对象实例化及直接内存

文章目录 8.1. 对象实例化8.1.1. 创建对象的方式8.1.2. 创建对象的步骤1. 判断对象对应的类是否加载、链接、初始化2. 为对象分配内存3. 处理并发问题4. 初始化分配到的内存5. 设置对象的对象头6. 执行init方法进行初始化 8.2. 对象内存布局8.2.1. 对象头(Header&am…

python+vue新能源汽车在线租赁管理系统pycharm项目

开发语言:Python 框架:django/flask Python版本:python3.7.7 数据库:mysql 数据库工具:Navicat 开发软件:PyCharm 在当今高度发达的信息中,信息管理改革已成为一种更加广泛和全面的趋势。 “新…

SpringBoot——原理(自动配置+原理分析@Conditional)

在上一篇有说到,进行源码跟踪时可以看见一个以Conditional开头的注解,这些都是条件装配的注解。 加在方法上时只对该方法生效,加在类上时是对整个配置类都有效。 这里只说三个常用的Conditional的子注解 案例演示 在启动类上加上一个Enabl…

第二章:ShardingSphere简介

什么是ShardingSphere 何为ShardingSphere呢?其实我们总结如下三点就能很好的理解: 1、一整套开源的分布式数据库中间件解决方案 2、有三个产品组成:Sharding-JDBC、Sharding-Proxy、Sharding-Sidecar(规划中) 3、他的定位是关系型数据库的中间件,在分布式环境下合理的…

【20】SCI易中期刊推荐——计算机信息系统工程电子与电气(中科院3区)

💖💖>>>加勒比海带,QQ2479200884<<<💖💖 🍀🍀>>>【YOLO魔法搭配&论文投稿咨询】<<<🍀🍀 ✨✨>>>学习交流 | 温澜潮生 | 合作共赢 | 共同进步<<<✨✨ 📚📚>>>人工智能 | 计算机视觉…

(转载)matlab遗传算法工具箱

以下内容大部分来源于《MATLAB智能算法30个案例分析》&#xff0c;仅为学习交流所用。 1理论基础 1.1遗传算法概述 遗传算法(genetic algorithm,GA)是一种进化算法,其基本原理是仿效生物界中的“物竞天择、适者生存”的演化法则。遗传算法是把问题参数编码为染色体,再利用迭代…

Qiskit系列(1)---Qiskit安装

1.qiskit与anaconda简介 Qiskit并不是一门独立的语言&#xff0c;它是基于Python的一个框架&#xff0c;就好比Pytorch, Tensorflow。而Qiskit这个框架需要配套一些其他的package&#xff08;各种大小DLC&#xff09;一起运行&#xff0c;这些运行Qiskit所必须的package就构成了…

vue前端分页功能怎么实现

Vue前端分页功能可以通过以下几个步骤实现&#xff1a; 1. 安装分页组件库&#xff08;如vue-pagination-2&#xff09;&#xff1a; bash npm install vue-pagination-2 2. 在Vue项目中引入并注册分页组件&#xff1a; javascript import Vue from vue; import Pagination fr…

【商品详情 +关键词搜索】API 接口系列

首先&#xff0c;大家要到官方主页去申请一个 appkey&#xff0c;这个是做什么用的呢&#xff1f;App Key 是应用的唯一标识&#xff0c;TOP 通过 App Key 来鉴别应用的身份。AppSecret 是 TOP 给应用分配的密钥&#xff0c;开发者需要妥善保存这个密钥&#xff0c;这个密钥用来…

增强语言模型导读

以ChatGPT为主的大语言模型出现已有半年时间&#xff0c;研究逐渐从针对模型本身的进化和功能&#xff0c;延展到如何更为有效地利用大模型&#xff0c;将它与其它工具结合&#xff0c;落地&#xff0c;以解决实际领域中的问题。 这里的增强主要指让大语言模型&#xff08;LM&…