对标ChatGPT的开源中文方案

目录
前言
一、Meta发布大语言模型LLaMA
二、斯坦福基于 Meta 的 LLaMA 7B 模型微调出Alpaca
三、基于TencentPretrain训练中文LLaMA大规模语言模型
四、基于斯坦福Alpaca训练中文对话大模型BELLE
五、 清华开源项目ChatGLM中文对话模型
六、基于LLaMA的开源中文语言模型“骆驼”
总结
前言
新年伊始,火爆全网的 ChatGPT,仿佛开启了第四次工业革命,它像个无所不能的六边形战士,可以聊天、写代码、修改 bug、做表格、写论文、写作业、做翻译、搜索答案等……
自发布以来,ChatGPT 便已摧枯拉朽之势席卷各个行业,不仅 5 天时间便突破百万用户,月活用户更是仅用时 2 个月便突破 1 亿,成为史上增速最快的消费级应用,远超其他知名应用。

然而由于 OpenAI 没有开源 ChatGPT,如何有效的复现针对中文的 ChatGPT 已成为摆在大家面前的头号难题。
下面我会介绍一些对标ChatGPT的中文开源方案,代码地址也列在每个项目的介绍最上面,希望这些方案能够对大家有所帮助!
一、Meta发布大语言模型LLaMA
项目地址:GitHub - facebookresearch/llama: Inference code for LLaMA models
Meta一次性发布四种尺寸的大语言模型 LLaMA:7B、13B、33B和65B。还声称, 效果好过GPT,偏向性更低,更重要的是所有尺寸均开源,甚至13B的LLaMA在 单个GPU上就能运行。
Meta发布的LLaMA是 通用大语言模型,原理就不多赘述,和以往的大语言模型一样:将一系列单词作为输入,并预测下一个单词以递归生成文本。
这次,Meta之所以一次给出不同大小的LLaMA模型,论文中给出了这样的解释:
近来的研究表明,对于给定的计算预算,最佳性能不是由最大的模型实现的,而是由 基于更多数据训练的 更小的模型实现的。也就是说,较小的模型规模加上比较大的数据集,获得的性能可能会比更大规模模型的要好很多。一方面,小规模模型需要的计算能力和资源相对来说都会少很多,另一方面,它还能基于更多数据集 训练更多token,更容易针对特定的潜在产品用例进行重新训练和微调。
除了一次性给出四种尺寸的LLaMA,Meta这次还直接开源了这个大语言模型。更重要的是,Meta为了让自己的工作与开源兼容,使用的都是公开的数据。

二、斯坦福基于 Meta 的 LLaMA 7B 模型微调出Alpaca
项目地址:https://github.com/tatsu-lab/stanford_alpaca
三月初,斯坦福基于 Meta 的 LLaMA 7B 模型微调出一个新模型 Alpaca。该研究让 OpenAI 的 text-davinci-003 模型以 self-instruct 方式生成 52K 指令遵循(instruction-following)样本,以此作为 Alpaca 的训练数据。研究团队已将训练数据、生成训练数据的代码和超参数开源,后续还将发布模型权重和训练代码。
实验结果表明,Alpaca 的很多行为都与 text-davinci-003 类似。也就是说,只有 7B 参数的轻量级模型 Alpaca 性能可媲美 GPT-3.5 这样的超大规模语言模型。

三、基于TencentPretrain训练中文LLaMA大规模语言模型
项目地址:https://github.com/Tencent/TencentPretrain
TencentPretrain 是 UER-py 预训练框架的多模态版本,支持 BERT、GPT、T5、ViT、Dall-E、Speech2Text 等模型,支持文本、图像和语音模态预训练及下游任务。TencentPretrain 基于模块化设计,用户可以通过模块组合的方式构成各种模型,也可以通过复用已有的模块进行少量修改来实现新的模型。例如,LLaMA 的模型架构基于 Transformer 有三项改动:前置 normalization [GPT3]、SwiGLU 激活函数[PaLM]、旋转位置编码[GPTNeo]。
得益于模块化特性,该项目在 TencentPretrain 中基于 GPT2 模型的已有模块,仅添加约 100 行代码就能实现以上三个改动从而训练 LLaMA 模型。
效果如下所示:
| Human | Computer |
| 中国的首都在哪里 | 中国首都是北京。 |
| 北京9月的平均气温是多少 | 秋分,中国北京的平均气温为25.5℃。 |
| 列出一些能用于登山的装备 | To climb mountains, you should bring a lot of > climbing equipment, including a compass, a climbing harness, a helmet, > gloves, good shoes with plenty of ankle support, and a backpack. |
| 介绍一下自然语言处理技术 | Natural language processing (NLP) is the study and design of algorithms that are able to understand and manipulate human language. |
| 帮我解答这个数学题: 6+3*2 | 6+3*2=11 |
| 生成一段代码来创建一个从1到100的列表 | def gen_list(n): """Generate a list from 1 to n""" return [i for i in range(1, n+1)] |
四、基于斯坦福Alpaca训练中文对话大模型BELLE
项目地址:https://github.com/LianjiaTech/BELLE
为了提升在中文上的效果,本项目基于Stanford Alpaca优化了中文种子任务,对生成代码进行了一些修改,同时选用BLOOMZ-7B作为基础模型训练得到了一个可以更好支持中文指令的开源模型 - BELLE。同时基于Alpaca的数据收集代码,基于这段代码生成了约100万条中文数据,结合Alpaca的5万条英文数据,在BLOOMZ-7B模型训练得到的checkpoint上传在Hugging Face。
项目包含以下内容:
- 175个中文种子任务
- 生成数据的代码
- 1M + 0.5M生成的中文数据集
- 基于BLOOMZ-7B1-mt优化后的模型
效果如下所示:
| Human | Computer |
| 小明的爸爸有三个孩子,老大叫王一,老二叫王二,老三叫什么? |
小明
|
| 用python写一个二分查找的代码 | def binary_search(arr, target): low = 0 high = len(arr) - 1 while (low <= high): mid = low + high // 2 if arr[mid] == target: return mid elif target < arr[mid]: low = mid + 1 else: high = mid - 1 return -1 |
| 今天天气怎么样,把这句话翻译成英语 | What's the weather like today? |
| 怎么让自己精力充沛,列5点建议 | 以下是一些可以让你保持精力充沛的建议: 1. 睡眠充足。确保每天晚上得到充足的睡眠时间。 2. 多运动。进行适度的有氧运动,如慢跑、游泳等,可以帮助你提高能量和耐力。 3. 吃健康食品。选择富含蛋白质的食物,如鸡肉、鱼肉和鸡蛋,以及新鲜的水果和蔬菜。 4. 减少咖啡因的摄入量。尽量避免在白天喝含咖啡因的饮料或吃含有咖啡因的食物。 5. 放松身心。尝试冥想、瑜伽或其他形式的放松活动来减轻压力和焦虑感。 |
| 推荐几本金庸的武侠小说 | 以下是三本我最喜欢的金庸武侠小说的推荐: 1. 《射雕英雄传》 - 一部充满智慧和机智的小说,讲述了郭靖、黄蓉夫妇的故事。 2. 《神雕侠侣》- 这是一部浪漫而感人的故事,讲述了一对情侣小龙女与杨过之间的爱情故事。 3. 《倚天屠龙记》- 这是一个宏伟而壮观的故事,描绘了明教领袖张无忌如何成为一位出色的英雄 |
五、 清华开源项目ChatGLM中文对话模型
项目地址:https://github.com/THUDM/ChatGLM-6B
据官方介绍,ChatGLM-6B 是一个开源的、支持中英双语问答的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。ChatGLM-6B 使用了和 ChatGLM 相同的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。
效果如下所示:

六、基于LLaMA的开源中文语言模型“骆驼”
项目地址:https://github.com/LC1332/Chinese-alpaca-lora
这个模型是在Meta开源的LLaMA基础上,参考Alpaca和Alpaca-LoRA两个项目,对中文进行了训练,0.1版本的模型取得了基础的中文会话能力。
效果如下所示:
| Human | Computer |
| 中国的首都在哪里? | 中国的首都是北京。 |
| 麦当劳是哪个国家的? | 美国 |
| 2017年美国总统是谁? | 特朗普 |
| 华中师范大学在哪里? | 华中师范大学在武汉市。 |
总结
ChatGPT掀起的新一轮人工智能狂欢下,隐藏在背后的“大模型”正进入越来越多开发者的视野。正如有一句话说的那样:数据是燃料、模型是引擎、算力是加速器。ChatGPT的出现,恰如其分地诠释了数据、模型和算力的“化学反应”。
如何在垂直领域做出更有针对性模型也是未来的发展方向之一,尤其是算力以及数据不那么充足的情况下。
大家如果有什么好的想法和项目,也欢迎在评论区里留言评论!
参考:
1.开源方案复现ChatGPT流程!1.62GB显存即可体验,单机训练提速7.73倍_数据派THU的博客-CSDN博客
2.对标ChatGPT有哪些开源的方案? - 知乎
3.训练中文LLaMA大规模语言模型 - 知乎
4.【开源GPT】三位华人小哥开源中文语言模型“骆驼”,单卡即可完成训练部署,花费几百训练自己的中文聊天模型 - 知乎
相关文章:
对标ChatGPT的开源中文方案
目录 前言 一、Meta发布大语言模型LLaMA 二、斯坦福基于 Meta 的 LLaMA 7B 模型微调出Alpaca 三、基于TencentPretrain训练中文LLaMA大规模语言模型 四、基于斯坦福Alpaca训练中文对话大模型BELLE 五、 清华开源项目ChatGLM中文对话模型 六、基于LLaMA的开源中文语言模型…...
9.Java面向对象----封装
Java面向对象—封装 面向对象简称 OO(Object Oriented),20 世纪 80 年代以后,有了面向对象分析(OOA)、 面向对象设计(OOD)、面向对象程序设计(OOP)等新的系统…...
【react 全家桶】组合组件
本人大二学生一枚,热爱前端,欢迎来交流学习哦,一起来学习吧。 <专栏推荐> 🔥:js专栏 🔥:vue专栏 🔥:react专栏 文章目录09 【组合组件】1.包含关系2.特例关系问题…...
VUE_学习笔记
一、 xx 二、模板语法 1.模板语法之差值语法 :{{ }} 主要研究:{{ 这里可以写什么}} 在data中声明的变量、函数等都可以。常量只要是合法的javascript表达式,都可以。模板表达式都被放在沙盒中,只能访问全局变量的一个白名单&a…...
【分布式事务AT模式 SpringCloud集成Seata框架】分布式事务框架Seata详细讲解
前言 上篇文章我们讲述了如何启动seata的本地服务,并且注册到nacos使用,这篇文章将在SpringCloud中整合Seata框架 上篇文章传送门:https://blog.csdn.net/Syals/article/details/130102851?spm1001.2014.3001.5501 本篇主要内容ÿ…...
系统集成项目管理工程师软考第三章习题(每天更新)
第一章指路:系统集成项目管理工程师软考第一章习题(已完结)_程序猿幼苗的博客-CSDN博客 第二章指路:系统集成项目管理工程师软考第二章习题(已完结)_程序猿幼苗的博客-CSDN博客 第3章信息系统集成专业技术…...
FIFO的工作原理及其设计
1.简介 FIFO( First Input First Output)简单说就是指先进先出。FIFO存储器是一个先入先出的双口缓冲器,即第一个进入其内的数据第一个被移出,其中一个口是存储器的输入口,另一个口是存储器的输出口。 对于单片FIFO来说,主要有两种…...
「UG/NX」Block UI 通过浏览器选择文件File Selection with Browse
目录 控件说明界面效果公有属性对话框标题 DialogLabel(仅创建)控件灰显 Enable分组 Group(仅创建)控件显隐 Show控件标题 Label国籍文本 AllowInternationalTextInput(仅创建)显示密文 IsPassword(仅创建)本地化 Localize(仅创建)保存值 RetainValue属性界面代码实现…...
面试官:如何搭建Prometheus和Grafana对业务指标进行监控?
Prometheus和Grafana都是非常流行的开源监控工具,可以协同使用来实现对各种应用程序、系统、网络和服务器等的监视和分析。 下面对Prometheus和Grafana进行简要介绍: Prometheus Prometheus是一款开源、云原生的系统和服务监控工具,它采用p…...
SQL Server 创建登录账号、创建用户名并为数据库赋予db_owner权限
服务器级的固定角色及其权限 sysadminsysadmin 固定服务器角色成员可以在服务器执行任何操作serveradminserveradmin 固定服务器角色的成员可以更该服务器范围的配置选项和关闭服务器sercurityadmin sercurityadmin 固定服务器角色的成员管理登录名及其属性,他们可以grant、de…...
离散数学_第二章:基本结构:集合、函数、序列、求和和矩阵(1)
集合与函数2.1 集合 2.1.1 集合的基本概念 2.1.2 集合的表示方法 2.1.3 文氏图 2.1.4 证明集合相等 2.1.5 集合的大小 ——基 2.1.6 幂集 2.1.7 集族、指标集 2.1.8 笛卡尔积 2.1.9 容斥原理2.1 集合 2.1.1 集合的基本概念 定义1:集合 是不同对象的一个无序的聚…...
ChatGPT想干掉开发人员,做梦去吧
很多人都发现ChatGPT可以做一些代码相关的工作,不仅可以写一些基础的类似python、java、js的代码段,还可以做一定量的调优,于是就开始担忧起来,到哪天我的开发工作会不会被ChatGPT这个工具给取代了? 目录 1. ChatGPT…...
尚硅谷大数据技术Hadoop教程-笔记04【Hadoop-MapReduce】
视频地址:尚硅谷大数据Hadoop教程(Hadoop 3.x安装搭建到集群调优) 尚硅谷大数据技术Hadoop教程-笔记01【大数据概论】尚硅谷大数据技术Hadoop教程-笔记02【Hadoop-入门】尚硅谷大数据技术Hadoop教程-笔记03【Hadoop-HDFS】尚硅谷大数据技术Ha…...
Linux信号sigaction / signal
Linux信号sigaction / signal 文章目录Linux信号sigaction / signal目的函数原型struct sigaction信号枚举值ISO C99 signals.Historical signals specified by POSIX.New(er) POSIX signals (1003.1-2008, 1003.1-2013).Nonstandard signals found in all modern POSIX system…...
坦克大战第一阶段代码
package tanke.game;import javax.swing.*; import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.Vector;//为了监听键盘事件,实现keylistener public class mypanel extends JPanel implements KeyListener …...
博客系统前端实现
目录 1.预期效果 2.实现博客列表页 3.实现博客正文页 4.实现博客登录页 5.实现博客编辑页面 1.预期效果 对前端html,css,js有大致的了解后,现在我们实现了一个博客系统的前端页面.一共分为四个页面没分别是:登陆页面,博客列表页,博客正文页,博客编辑页 我们看下四个界面…...
ChatGPT技术原理、研究框架,应用实践及发展趋势(附166份报告)
一、AI框架重要性日益突显,框架技术发展进入繁荣期,国内AI框架技术加速发展: 1、AI框架作为衔接数据和模型的重要桥梁,发展进入繁荣期,国内外框架功能及性能加速迭代; 2、Pytorch、Tensorflow占据AI框…...
【屏幕自适应页面适配问题】CSS的@media,为了适应1440×900的屏幕,使用@media解决问题
文章目录bug修改实例CSS3 media 查询CSS 多媒体查询,适配各种设备尺寸bug修改实例 <template><div id"deptAllDown" style"height: 400px;width:880px"/> </template>为了适应1440900的屏幕,使用media解决问题 …...
一篇文章理解堆栈溢出
一篇文章理解堆栈溢出引言栈溢出ret2text答案ret2shellcode答案ret2syscall答案栈迁移答案堆溢出 unlink - UAF堆结构小提示向前合并/向后合并堆溢出题答案引言 让新手快速理解堆栈溢出,尽可能写的简单一些。 栈溢出 代码执行到进入函数之前都会记录返回地址到SP…...
优化模型验证关键代码27:多旅行商问题的变体-多起点单目的地问题和多汉密尔顿路径问题
目录 1 多起点单目的地问题(Multiple departures single destination mTSP) 1.1 符号列表 1.2 数学模型 1.4 解的可视化结果...
Llama-3.2V-11B-cot惊艳效果:多对象遮挡场景下的因果关系链推演
Llama-3.2V-11B-cot惊艳效果:多对象遮挡场景下的因果关系链推演 1. 视觉推理新标杆 在计算机视觉领域,多对象遮挡场景下的因果关系推演一直是个技术难题。传统方法往往只能识别可见部分,而无法理解遮挡背后的逻辑关系。Llama-3.2V-11B-cot的…...
超越极限:YOLOv8融合Dynamic Head(统一尺度-空间-任务感知注意力)—— 原理详解、代码实现与性能验证
引言 在目标检测领域,YOLO系列模型凭借其出色的速度与精度平衡,始终占据着举足轻重的地位。YOLOv8作为Ultralytics团队的最新力作,在架构设计、训练策略和部署便捷性上均达到了新的高度。然而,随着应用场景的日益复杂,如何让模型在多尺度变化、空间遮挡、任务干扰等挑战下…...
在曹妃甸哪里可以吃到当天现捕上来的野生海鲜?
在曹妃甸,想要吃到当天现捕上来的野生海鲜,高尚堡老刘海鲜绝对是个绝佳的选择。2006 年,一群世代靠海吃海的渔民,在渤海湾码头开起了这家“老刘海鲜饭店”。起初他们只是想把自家渔船捕捞的野生海鲜,用最朴素的做法端给…...
16-bit像素艺术AI终端效果展示:实时HUD状态栏+物理位移反馈动效演示
16-bit像素艺术AI终端效果展示:实时HUD状态栏物理位移反馈动效演示 1. 像素幻梦创意工坊概览 Pixel Dream Workshop(像素幻梦创意工坊)是一款革命性的像素艺术生成工具,基于先进的FLUX.1-dev扩散模型构建。与传统AI绘图工具不同…...
C++ 无原生 JSON 支持?一文实现通用序列化与反序列化封装方案
前言 在现代软件开发中,JSON(JavaScript Object Notation)因其轻量级和易读性成为数据交换的主流格式。C虽无原生JSON支持,但通过封装第三方库(如nlohmann/json),可高效实现序列化(…...
华硕笔记本性能困境突破:G-Helper工具的全方位优化方案
华硕笔记本性能困境突破:G-Helper工具的全方位优化方案 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地…...
AMD显卡也能玩转GPU编程?ROCm环境搭建与OpenCL入门避坑指南
AMD显卡也能玩转GPU编程?ROCm环境搭建与OpenCL入门避坑指南 在GPU计算领域,NVIDIA的CUDA生态长期占据主导地位,但AMD显卡用户同样拥有强大的并行计算选择。本文将带你探索AMD ROCm平台的完整搭建流程,并深入OpenCL编程的核心技巧&…...
保姆级教程:用Docker Compose一键部署ZLMediaKit流媒体服务器(含OBS推流配置)
从零搭建私有流媒体平台:Docker Compose ZLMediaKit OBS全流程指南 流媒体技术正在重塑内容传播的方式。无论是企业内部培训、游戏直播还是产品演示,一个稳定高效的私有流媒体平台都能显著提升沟通效率。本文将手把手教你如何用Docker Compose快速部署…...
如何快速搭建Kafka Docker集群:broker-list.sh工作原理与实用指南
如何快速搭建Kafka Docker集群:broker-list.sh工作原理与实用指南 【免费下载链接】kafka-docker Dockerfile for Apache Kafka 项目地址: https://gitcode.com/gh_mirrors/ka/kafka-docker GitHub 加速计划 / ka / kafka-docker 项目提供了基于 Docker 的 A…...
背包问题可视化:用动态规划表格理解0-1背包最优解
背包问题可视化:用动态规划表格理解0-1背包最优解 当你第一次面对背包问题时,可能会被那些复杂的公式和递归关系搞得晕头转向。我们常常会遇到这样的情况:明明看懂了算法描述,但一到手动计算就不知所措。这就是为什么我们需要一种…...
