Baichuan2大模型本地部署

news2025/1/13 17:30:07

作为今年九月份开源的一个中午大语言模型,Baichuan2已经在各个维度上取得了亮眼的结果,效果已经超过了当前火热的ChatGLM2-6B,可以通过自然语言交互的方式为你提供以下服务:

  1. 提供知识:我可以回答各领域的问题,并提供准确的信息和知识,帮你解决问题或获取所需要的信息
  2. 文本生成:我可以创作不同体裁的内容,激发你的灵感
  3. 语言翻译:如果需要将一种语言翻译成另外一种语言,我可以为你提供翻译服务
  4. 语言理解:我可以用于语言理解相关的任务,例如文本分析、情感分析、摘要抽取、分类、聚类等
  5. 代码编写和解释:我还可以生成相关问题的代码或者解释相关代码的问题 请问你需要什么帮助吗?

目录

一、模型介绍

二、模型结果

通用领域

7B 模型结果

13B 模型结果

三、推理和部署

安装依赖

Python 代码方式

Chat 模型推理方法示范

Base 模型推理方法示范

命令行工具方式

网页 demo 方式

四、接入📃 LangChain-Chatchat

五、项目地址


一、模型介绍

  • Baichuan 2 是百川智能推出的新一代开源大语言模型,采用 2.6 万亿 Tokens 的高质量语料训练。
  • Baichuan 2 在多个权威的中文、英文和多语言的通用、领域 benchmark 上取得同尺寸最佳的效果。
  • 本次发布包含有 7B13B 的 Base 和 Chat 版本,并提供了 Chat 版本的 4bits 量化
  • 所有版本对学术研究完全开放。同时,开发者通过邮件申请并获得官方商用许可后,即可免费商用,请参考协议章节。
  • 欢迎阅读我们的技术报告 Baichuan 2: Open Large-scale Language Models 获取更多信息。

本次发布版本和下载链接见下表:

基座模型对齐模型对齐模型 4bits 量化
7B🤗 Baichuan2-7B-Base🤗 Baichuan2-7B-Chat🤗 Baichuan2-7B-Chat-4bits
13B🤗 Baichuan2-13B-Base🤗 Baichuan2-13B-Chat🤗 Baichuan2-13B-Chat-4bits

二、模型结果

我们在通用、法律、医疗、数学、代码和多语言翻译六个领域的中英文和多语言权威数据集上对模型进行了广泛测试。

通用领域

在通用领域我们在以下数据集上进行了 5-shot 测试。

  • C-Eval 是一个全面的中文基础模型评测数据集,涵盖了 52 个学科和四个难度的级别。我们使用该数据集的 dev 集作为 few-shot 的来源,在 test 集上进行测试。我们采用了 Baichuan-7B 的评测方案。
  • MMLU 是包含 57 个任务的英文评测数据集,涵盖了初等数学、美国历史、计算机科学、法律等,难度覆盖高中水平到专家水平,是目前主流的 LLM 评测数据集。我们采用了开源的评测方案。
  • CMMLU 是一个包含 67 个主题的综合性性中文评估基准,专门用于评估语言模型在中文语境下的知识和推理能力。我们采用了其官方的评测方案。
  • Gaokao 是一个以中国高考题作为评测大语言模型能力的数据集,用以评估模型的语言能力和逻辑推理能力。 我们只保留了其中的单项选择题,并进行了随机划分。我们采用了与 C-Eval 类似的评测方案。
  • AGIEval 旨在评估模型的认知和解决问题相关的任务中的一般能力。 我们只保留了其中的四选一单项选择题,并进行了随机划分。我们采用了与 C-Eval 类似的评测方案。
  • BBH 是一个挑战性任务 Big-Bench 的子集。Big-Bench 目前包括 204 项任务。任务主题涉及语言学、儿童发展、数学、常识推理、生物学、物理学、社会偏见、软件开发等方面。BBH 是从 204 项 Big-Bench 评测基准任务中大模型表现不好的任务单独拿出来形成的评测基准。

7B 模型结果

C-EvalMMLUCMMLUGaokaoAGIEvalBBH
5-shot5-shot5-shot5-shot5-shot3-shot
GPT-468.4083.9370.3366.1563.2775.12
GPT-3.5 Turbo51.1068.5454.0647.0746.1361.59
LLaMA-7B27.1035.1026.7527.8128.1732.38
LLaMA2-7B28.9045.7331.3825.9726.5339.16
MPT-7B27.1527.9326.0026.5424.8335.20
Falcon-7B24.2326.0325.6624.2424.1028.77
ChatGLM2-6B50.2045.9049.0049.4445.2831.65
Baichuan-7B42.8042.3044.0236.3434.4432.48
Baichuan2-7B-Base54.0054.1657.0747.4742.7341.56

13B 模型结果

C-EvalMMLUCMMLUGaokaoAGIEvalBBH
5-shot5-shot5-shot5-shot5-shot3-shot
GPT-468.4083.9370.3366.1563.2775.12
GPT-3.5 Turbo51.1068.5454.0647.0746.1361.59
LLaMA-13B28.5046.3031.1528.2328.2237.89
LLaMA2-13B35.8055.0937.9930.8332.2946.98
Vicuna-13B32.8052.0036.2830.1131.5543.04
Chinese-Alpaca-Plus-13B38.8043.9033.4334.7835.4628.94
XVERSE-13B53.7055.2158.4444.6942.5438.06
Baichuan-13B-Base52.4051.6055.3049.6943.2043.01
Baichuan2-13B-Base58.1059.1761.9754.3348.1748.78

三、推理和部署

推理所需的模型权重、源码、配置已发布在 Hugging Face,下载链接见本文档最开始的表格。我们在此示范多种推理方式。程序会自动从 Hugging Face 下载所需资源。

安装依赖

pip install -r requirements.txt

Python 代码方式

Chat 模型推理方法示范

>>> import torch
>>> from transformers import AutoModelForCausalLM, AutoTokenizer
>>> from transformers.generation.utils import GenerationConfig
>>> tokenizer = AutoTokenizer.from_pretrained("baichuan-inc/Baichuan2-13B-Chat", use_fast=False, trust_remote_code=True)
>>> model = AutoModelForCausalLM.from_pretrained("baichuan-inc/Baichuan2-13B-Chat", device_map="auto", torch_dtype=torch.bfloat16, trust_remote_code=True)
>>> model.generation_config = GenerationConfig.from_pretrained("baichuan-inc/Baichuan2-13B-Chat")
>>> messages = []
>>> messages.append({"role": "user", "content": "解释一下“温故而知新”"})
>>> response = model.chat(tokenizer, messages)
>>> print(response)
"温故而知新"是一句中国古代的成语,出自《论语·为政》篇。这句话的意思是:通过回顾过去,我们可以发现新的知识和理解。换句话说,学习历史和经验可以让我们更好地理解现在和未来。

这句话鼓励我们在学习和生活中不断地回顾和反思过去的经验,从而获得新的启示和成长。通过重温旧的知识和经历,我们可以发现新的观点和理解,从而更好地应对不断变化的世界和挑战。

Base 模型推理方法示范

>>> from transformers import AutoModelForCausalLM, AutoTokenizer
>>> tokenizer = AutoTokenizer.from_pretrained("baichuan-inc/Baichuan2-13B-Base", trust_remote_code=True)
>>> model = AutoModelForCausalLM.from_pretrained("baichuan-inc/Baichuan2-13B-Base", device_map="auto", trust_remote_code=True)
>>> inputs = tokenizer('登鹳雀楼->王之涣\n夜雨寄北->', return_tensors='pt')
>>> inputs = inputs.to('cuda:0')
>>> pred = model.generate(**inputs, max_new_tokens=64, repetition_penalty=1.1)
>>> print(tokenizer.decode(pred.cpu()[0], skip_special_tokens=True))
登鹳雀楼->王之涣
夜雨寄北->李商隐

在上述两段代码中,模型加载指定 device_map='auto',会使用所有可用显卡。如需指定使用的设备,可以使用类似 export CUDA_VISIBLE_DEVICES=0,1(使用了0、1号显卡)的方式控制。

命令行工具方式

python cli_demo.py

本命令行工具是为 Chat 场景设计,因此我们不支持使用该工具调用 Base 模型。

网页 demo 方式

依靠 streamlit 运行以下命令,会在本地启动一个 web 服务,把控制台给出的地址放入浏览器即可访问。本网页 demo 工具是为 Chat 场景设计,因此我们不支持使用该工具调用 Base 模型。

streamlit run web_demo.py

运行效果 

 

注意事项:

Baichuan2部署使用的 Pytorch 版本是2.0

四、接入📃 LangChain-Chatchat

接入📃 LangChain-Chatchat (原 Langchain-ChatGLM): 基于 Langchain 与 ChatGLM 等大语言模型的本地知识库问答应用实现。只需在项目model_config.py 中修改 llm_model_dict 中代码,加入:

    "Baichuan2": {
        "local_model_path": "E:\\baichuan-incBaichuan2-13B-Chat",  # "THUDM/chatglm2-6b-32k",
        "api_base_url": "http://localhost:8888/v1",  # "URL需要与运行fastchat服务端的server_config.FSCHAT_OPENAI_API一致
        "api_key": "EMPTY"
    },

并且修改:

# LLM 名称
LLM_MODEL = "Baichuan2"

实现效果如下:

 

五、项目地址

Baichuan2

GitHub - baichuan-inc/Baichuan2: A series of large language models developed by Baichuan Intelligent Technology 

LangChain-Chatchat :

GitHub - chatchat-space/Langchain-Chatchat: Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM 等语言模型的本地知识库问答 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM) QA app with langchain

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

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

相关文章

2023年科技核心目录已更新,24年选择刊物别选错!这些医药类期刊建议收藏!

2023年科技核心目录已更新,医药类期刊有这些(部分),编码和期刊名称都给大家整理出来了。点常笑医学网查看全部科技核心期刊目录。 G218 ACTA PHARMACEUTICA SINICA B G001 ACTA PHARMACOLOGICA SINICA G780 CANCER BIOLOGY &am…

交叉编译错误:小心符号链接

交叉编译在进行到链接环节时出现找不到库文件的错误,如下: 一般来说,链接时出现库查找不到则需要将库路径添加到link_directories或者target_link_directories, 这里说查找不到libblas.so.3和liblapack.so.3,那么查找这两个库的路…

9.2 【MySQL】独立表空间结构

9.2.1 区(extent)的概念 对于16KB的页来说,连续的64个页就是一个 区 ,也就是说一个区默认占用1MB空间大小。不论是系统表空间还是独立表空间,都可以看成是由若干个区组成的,每256个区被划分成一组。画个图…

视频文本检索(ICCV 23):Unified Coarse-to-Fine Alignment for Video-Text Retrieval

论文作者:Ziyang Wang,Yi-Lin Sung,Feng Cheng,Gedas Bertasius,Mohit Bansal 作者单位:UNC Chapel Hill 论文链接:http://arxiv.org/abs/2309.10091v1 项目链接:https://github.com/Ziyang412/UCoFiA 内容简介: …

怎么在OPPO手机桌面上添加文字?便签桌面插件添加教程

很多年轻女性在选择手机时,都比较青睐于设计时尚靓丽、轻薄且续航好、系统流畅、拍照清晰的OPPO手机,并且OPPO为不同的用户提供了高中低不同价格档位的手机型号,能够满足绝大多数女性消费者的使用需求。 不过有不少OPPO手机用户表示&#xf…

Linux 打包压缩命令

目前 linux 中打包和压缩的命令很多,最常用的方法有 zip、gzip、bzip2、xz、tar 1.zip 压缩包 //制作 //-r 递归 表示将指定的目录下的所有子目录以及文件一起处理 zip -r public.zip public//解压 unzip public.zip unzip public.zip -d dir//查看 unzip -l publi…

ubuntu 18.04 搭建isaacgym学习环境,并运行legged_gym

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、安装anaconda二、使用conda创建python版本为3.8的虚拟环境三、安装pytorch四、isaac-gym下载安装五、安装legged_gym总结 前言 系统:ubuntu18.…

WebGL HUD(平视显示器)

目录 HUD(平视显示器) 如何实现HUD 示例程序(HUD.html) 示例程序(HUD.js) 代码详解 在网页文字上方显示三维物体 代码详解 HUD(平视显示器) 平视显示器(head…

第3章 MongoDB数据库操作<练习>

1. 创建数据库,名为zhangsan (zhangsan修改为自己的姓名全 拼) use wuweixian db.createCollection("wwx") 2. 批量插入多条文章评论用于测试 db.wwx.insertMany([ {"_id":"1","articleid":"…

沉降安全监测之静力水准仪安装与精度分析

静力水准仪的安装使用步骤如下: 1、选择合适的安装位置:静力水准仪应该安装在平稳且不易受到外力影响的地面上,以确保测量结果的准确性。同时,应避免安装在有风的地方,因为风会影响水准仪的读数。 2、安装支架&#…

基于矩阵分解算法的智能Steam游戏AI推荐系统——深度学习算法应用(含python、ipynb工程源码)+数据集(四)

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 模型构建1)定义模型结构2)优化损失函数 3. 模型训练及保存1)模型训练2)模型保存 4. 模型应用1)制作页面2)模型导入及调用3&am…

MongoDB(一) windows 和 linux 之 Ubuntu 安装

数据库分类 一、关系型数据库(RDBMS) mysql 、Oracle、DB2、SQL Server 关系数据库中全都是表 二、非关系型数据库(NO SQL) MongoDB、Redis 键值对数据库 文档数据库MongoDB 下载 mongoDB https://www.mongodb.com/try/downloa…

DA1--用pandas查看网站用户数据

目录 1.题目描述 2.输入描述 3.输出描述 4.题目分析 5.通过代码 1.题目描述 现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔): Nowcoder_ID:用户ID …

软件项目开发的流程及关键点

软件项目开发的流程及关键点 graph LR A[需求分析] --> B[系统设计] B --> C[编码开发] C --> D[测试验证] D --> E[部署上线] E --> F[运维支持]在项目开发的流程中,首先是进行需求分析,明确项目的目标和功能要求。接下来是系统设计&am…

计算机竞赛 深度学习+opencv+python实现车道线检测 - 自动驾驶

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络3.1卷积层3.2 池化层3.3 激活函数:3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV56 数据集处理7 模型训练8 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 &am…

❤Uniapp报npx update-browserslist-db@latest

❤ Uniapp报npx update-browserslist-dblatest 按照提示先更新一下 npx update-browserslist-dblatest然后打开一下端口

signal(SIGPIPE, SIG_IGN)

linux查看signal常见信号。 [rootplatform:]# kill -l1) HUP2) INT3) QUIT4) ILL5) TRAP6) ABRT7) BUS8) FPE9) KILL 10) USR1 11) SEGV 12) USR2 13) PIPE 14) ALRM 15) TERM 16) STKFLT 17) CHLD 18) CONT 19) STOP 20) TSTP 21) TTIN 22) TTOU 23) URG 24) XCPU 25) XFSZ 2…

使用Python进行供应链分析

供应链是生产和向客户交付货物所涉及的生产和物流网络。供应链分析是指分析供应链的各个组成部分,以了解如何提高供应链的有效性,为客户创造更多价值。所以,如果你想学习如何分析供应链,这篇文章是给你的。文章中,将带…

滑动窗口训练9.21

好久没有写博客了,自从上半年蓝桥杯结束后,就有点懈怠了 最近两三周才又慢慢刷起题来,也顺便记录下自己的成长! 今天是滑动窗口的章节,前两周刷了字符串、双指针、模拟。这些板块我都在leetcode上找了些题&#xff0…

【大学英语视听说上】Topic Presentation

(一些视听说的必要作业...) 展示,每人准备ppt文件,时长五分钟,第一分钟自我介绍,之后四分钟介绍一个主题。 例如:中秋节,英国地标建筑等等。 要求图文并茂,发音清楚标…