【AIGC】BaiChuan7B开源大模型介绍、部署以及创建接口服务

模型介绍

baichuan-7B是由百川智能开发的一个开源的大规模预训练模型。基于Transformer结构,在大约1.2万亿tokens上训练的70亿参数模型,支持中英双语,上下文窗口长度为4096。在标准的中文和英文权威benchmark(C-EVAL/MMLU)上均取得同尺寸最好的效果。

huggingface
github

部署环境

  • 系统:centos7.8.2003
  • GPU:2 * 3090 (24G)

代码下载

git clone https://github.com/baichuan-inc/baichuan-7B.git

模型下载

下载地址:https://huggingface.co/baichuan-inc/baichuan-7B/tree/main

huggingface模型下载有几种方式:

  • 使用git下载
git lfs install
git clone https://huggingface.co/baichuan-inc/baichuan-7B
  • 网页直接下载,一个个下载,然后放置到固定文件夹下即可。
    在这里插入图片描述
  • 使用代码自动加载huggingface模型
tokenizer = AutoTokenizer.from_pretrained("baichuan-inc/baichuan-7B", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("baichuan-inc/baichuan-7B", device_map="auto", trust_remote_code=True)

环境安装

python == 3.8.16

pip install -r requirements.txt 

独立测试

GPU应该选择至少30G的显存。我这里一块24G卡,测试启动不稳定,显存容易溢出(可以通过修改max_new_tokens参数为64,勉强可以跑)。2块24G卡没问题。

# !/usr/bin/env python
# -*- coding:utf-8 -*-import os
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasksos.environ["CUDA_VISIBLE_DEVICES"] = '4, 5'if __name__ == '__main__':text_generation_zh = pipeline(task=Tasks.text_generation, model='baichuan-inc/baichuan-7B',model_revision='v1.0.2')text_generation_zh._model_prepare = Trueresult_zh = text_generation_zh('今天天气是真的')print(result_zh)

模型处填写保存模型的目录路径

在这里插入图片描述

服务接口

# !/usr/bin/env python
# -*- coding:utf-8 -*-
from flask import Flask, request, jsonify
import threading
from flask_cors import CORS
import os
from transformers import AutoModelForCausalLM, AutoTokenizeros.environ["CUDA_VISIBLE_DEVICES"] = '4, 5'app = Flask(__name__)
CORS(app)# 加载模型
tokenizer = AutoTokenizer.from_pretrained("baichuan-inc/baichuan-7B", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("baichuan-inc/baichuan-7B", device_map="auto", trust_remote_code=True)# 创建线程锁和计数器
lock = threading.Lock()
counter = 0
MAX_CONCURRENT_REQUESTS = 5  # 最大并发请求数@app.route('/baichuan/conversation', methods=['POST'])
def conversation():global counter# 请求过载,返回提示信息if counter >= MAX_CONCURRENT_REQUESTS:return jsonify({'message': '请稍等再试'})# 获取线程锁with lock:counter += 1try:# 接收 POST 请求的数据question = request.json['question']question += '->'inputs = tokenizer(question, return_tensors='pt')inputs = inputs.to('cuda:0')pred = model.generate(**inputs, max_new_tokens=1024, repetition_penalty=1.1)text = tokenizer.decode(pred.cpu()[0], skip_special_tokens=True)print("result:", text)# 返回结果response = {'result': text[len(question):]}return jsonify(response)finally:# 释放线程锁并减少计数器with lock:counter -= 1if __name__ == '__main__':print("Flask 服务器已启动")app.run(host='0.0.0.0', port=30908)

接口调用

在这里插入图片描述

测试小结

  • 该模型是一个文本生成模型,对话式效果较差,但是如果prompt为问答式,还是有一些效果的。如果需要对话式满足自己的需求,还是需要进行后续的fintune微调。

官方也说了:

chatgpt 等模型专门针对对话进行了微调,目前 baichuan-7B 暂时还没针对对话微调,所以不支持对话。
但目前模型是有推理能力的。
模型介绍页面已经举例用法了,如“登鹳雀楼->王之涣\n夜雨寄北->”,给定示例“登鹳雀楼->王之涣”,也就是根据诗歌名称推理作者名称,那么给定问题“夜雨寄北->”,就能够正确推理出来,作者是“李商隐”。 如果你想实现对话能力,你可以找 gpt 的公开对话数据集,自己对 baichuan-7B 进行微调。

  • 看社区也有大佬已经微调了对话模型 https://huggingface.co/hiyouga/baichuan-7b-sft ,有时间可以试试。

希望

  • 希望有更多的大佬微调出更出色的AIGC能力。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么AI检测器认为美国宪法是由人工智能编写的

人工智能写作检测器可信吗? 我们深入探讨它们背后的理论。 一、背景 如果你将美国最重要的法律文件——美国宪法——输入一个旨在检测类似ChatGPT的AI模型所写文本的工具中,那么它会告诉你该文件几乎肯定是由AI撰写的。但除非詹姆斯麦迪逊是时间旅行者&…

【ARM-Trustzone-TEE-ATF-SOC群】周刊 第一期:开篇

快速链接: . 👉👉👉 个人博客笔记导读目录(全部) 👈👈👈 付费专栏-付费课程 【购买须知】: 【精选】ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈 背景 很多小伙伴也都知…

AI 时代的学习方式: 和文档对话

作者:明明如月学长, CSDN 博客专家,蚂蚁集团高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《EffectiveJava》独家解析》专栏作者。 热门文章推荐…

chatgpt概述性分享:大家是如何用chatgpt的?

简述 训练方式 在一个比较强的BaseModel(GPT3.5)上继续用数据微调(SFT),但这次的微调还引入了一种学习方式叫RLHF(Reinforcement Learning from Human Feedback,人类反馈强化学习)。 所以可以简单总结为…

利用AI润色简历和模拟面试 - ChatCV

ChatCV是什么 chatCV是一个智能简历优化和面试模拟平台,它利用chatpt来分析用户的简历和职位要求,并让chatgpt站在专业的招聘经理的角度来给出建议和反馈。用户上传自己的简历后,就可以开始和AI对话了。AI会根据简历内容,提出修改…

〖程序员的自我修养 - 精炼面试篇③〗- 如何通过「自我介绍」更好的推销自己

简介:应 850 小伙伴要求, 无论你是迷茫的在校生还是已经就业的老司机,该专栏都值得你订阅,它会让你成就更好的自己!说明:该文属于 程序员的自我修养 专栏,购买任意白宝书体系化专栏可加入易编程…

对接腾讯广告平台系统开发(半自动化广告投放系统)

这是我最近刚弄完上线的一套比较有意思的比较大型的系统,因此特意记录一下。 先说这套玩意获得的效果:竞品的投放团队运营团队就算有一百个人,天天996,007加班不睡觉,投放效率也没有我们四五个人的高,这个…

ChatGPT 会取代人的哪些工作?哪些人群的职业规划需要转变?

ChatGPT 会取代人的哪些工作?哪些人群的职业规划需要转变? 作为一个人工智能,ChatGPT 可以用于许多自动化和智能化的工作领域。以下是 ChatGPT 可能会取代人的一些工作: 客服和客户支持:ChatGPT 可以接管一些基本的客户…

怎样写毕业论文的开题报告和任务书?

在开始一份毕业论文之前,任务书和开题报告是每一位同学都绕不开的,总有小伙伴为此头疼不已。为了让大家清楚地了解到什么是毕业论文的开题报告和任务书,以及如何写好开题报告和任务书,我总结了一篇大约2000字的文章,将…

开题报告的选题依据怎么写?

宝子们!是不是导师在催你的开题报告啦~导师给你选了一个选题,是不是你还没琢磨好这个选题想表达点啥?到底有什么依据选这个选题?选题依据由什么组成?且先不说如何把选题写的足够出彩,但能不能找到一个合适的…

论文开题报告怎么写?

同学们,是不是又到了一年一度写开题报告的时候呀?是不是还在为不知道论文的开题报告怎么写而苦恼? Take it easy!我带着倾尽我所有开题报告写作经验总结出来的最强保姆级开题报告解说来啦,一定让你脱胎换骨,顺利拿下开题报告这个…

开题报告中的研究目的与研究内容怎么写?

导师帮你选好题目以后,是不是自己也还在纠结到底怎样快速先明确出整个初稿的内容和结论呢?开题报告的研究目的和研究内容怎么样才能被导师一眼看中呢?别犯愁啦~这一篇保准手拿把掐地教会你!一起往下看看吧~ 这里是小目录喔~&#…

基于微信小程序的相关管理系统设计与实现开题报告的思路及方法

今天主要谈一下计算机科学相关专业同学的选题的思路及方法。 毕业设计选题选没选好就像各位走出校园踏进社会的一道坎,跨过这道坎是很关键的,而有些同学却犯了难,把本应该简单的问题复杂化了。为什么这样讲呢?之前就有同学找到我们…

开题报告写作攻略--概述及国内外研究现状

本人所在院校开题报告需要的模块如下图所示。 一、论文标题四要素 ① predicts content 预示研究内容; ② Interesting 吸引读者兴趣; ③ Reflects tone反映作者的语气; ④ Important keywords关键字。 注意事项: 尽量缩短题…

大学社团管理系统——开题报告

大学社团管理系统 学生姓名:王一一 班级:软件工程1612 指导教师:黄X 一、本课题研究(开发)的目的和意义。 现如今大学社团各式各样的都有,学校对社团的管理手段处于落后阶段&#xff…

开题报告的国内外研究现状怎么写呢?

大家都知道国内外研究现状在整个毕业论文中的作用是非常重要的,只有选择强有力的文献综述才能给我们的开题报告和论文提供高专业性的理论支撑。那么关于开题报告的国内外研究现状该怎么写呢?我们该去哪里找到与本研究课题相关的资料呢?是应该…

TCP速率与窗口,带宽,RTT之间的关系

转自:http://blog.csdn.net/bad_sheep/article/details/6158676 以下部分内容是自己的理解,可能会有差错,如有发现,欢迎指正。 窗口: TCP是一个滑动窗口协议,即一个TCP连接的发送端在某个时刻能发多少数据是…

.NET 7 新增速率限制 (Rate Limiting) 功能,轻松限制请求数量

.NET 7 内置了速率限制(Rate Limiting)功能,速率限制指的是限制可访问资源的请求数。例如数据库每分钟可以安全处理 1000 个请求,再多不确定会不会崩。这时就可以在应用程序中放一个速率限制器,规定每分钟只允许 1000…

天津到广州海运货柜船期

天津到广州海运,一般的集装箱运输路线是从天津新港走船到广州南沙港,有直达的船,运输时间一个星期,集装箱大柜或者小柜,每周从天津发出的船有4班左右。

GPT-4原论文详细解读(GPT-4 Technical Report)

GPT-4原论文详细解读(GPT-4 Technical Report) 返回论文和资料目录 1.导读 相比之前的GPT-3.5等大型语言模型(这里可以看我的InstructGPT解读,也方便理解本文内容),GPT-4最大的不同在于变成了多模态&…