NLP(五十九)使用FastChat部署百川大模型

   本文将会介绍如何使用FastChat来部署国产大模型——百川模型。

   在此之前,我们先来了解两个概念——百川模型FastChat.

百川模型

   2023年6月15日,被称为「中国 ChatGPT 梦之队」的百川智能公司,推出了 70 亿参数量的中英文预训练大模型——baichuan-7B

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

   在构建预训练语料库方面,百川智能以高质量中文语料为基础,同时融合了优质的英文数据。相较于其他同参数规模的开源中文预训练模型,数据量提高了超过 50%。

  • 在数据质量方面,通过质量模型对数据进行打分,对原始数据集进行篇章级和句子级的精确筛选
  • 在内容多样性方面,利用自研超大规模局部敏感哈希聚类系统和语义聚类系统,对数据进行了多层次多粒度的聚类
  • 最终构建了包含 1.2 万亿 token 的兼顾质量和多样性的预训练数据。

   不同于LLaMA完全禁止商业使用,baichuan-7B代码使用更宽松的开源协议——Apache-2.0协议,允许用于商业目的

FastChat

   FastChat是用于对话机器人模型训练、部署、评估的开放平台,其核心特性包括:

  • 模型权重,训练代码,评估代码可用于SOTA模型(比如Vicuna,FastChat-T5)
  • 分布式多模型部署系统,自带Web UI和OpenAI兼容的RESTful APIs

   FastChat集成了Vicuna、Koala、alpaca、LLaMA等开源模型,其中Vicuna号称能够达到GPT-4的90%的质量,是开源的chatGPT模型中对答效果比较好的。

   FastChat的访问地址是:https://chat.lmsys.org/ , FastChat的安装方式为:pip3 install fschat .

CLI部署

   在Huggingface Hub上下载baichuan-7B模型,访问网址为:https://huggingface.co/baichuan-inc/Baichuan-7B ,放在GPU机器上的本地路径。

   笔者的GPU机器为4 * RTX6000,每张RTX6000的显存为80G。

   FastChat使用CLI部署百川大模型的命令为:

python3 -m fastchat.serve.cli --model-path path_of_Baichuan-7B --num-gpus 2

   在CLI部署时,如遇到以下的报错:trust_remote_code=True ,参考issue网址:https://github.com/lm-sys/FastChat/issues/1789 ,则在对应的Python路径下,将FastChat的fastchat/model/model_adapter.py文件中的代码中的第57至61行:

			tokenizer = AutoTokenizer.from_pretrained(model_path,use_fast=self.use_fast_tokenizer,revision=revision,)

和69至71行

		model = AutoModelForCausalLM.from_pretrained(model_path, low_cpu_mem_usage=True, **from_pretrained_kwargs)

中添加代码:`trust_remote_code=True` ,则可顺利部署。

   部署成功后的界面如下:
CLI部署后的用户界面

WEB部署

   FastChat还支持WEB部署,可Web UI和OpenAI兼容的RESTful APIs.  

   这里主要介绍如何实现与OpenAI兼容的具有RESTful APIs的部署方式,参考网址为:https://github.com/lm-sys/FastChat/blob/main/docs/openai_api.md .

   部署一共分为三步:

  1. python3 -m fastchat.serve.controller
  2. python3 -m fastchat.serve.modelworker --model-path path_of_Baichuan-7B
  3. python3 -m fastchat.serve.openai_api_server --host localhost --port 8000

在部署过程中,如果遇到PydanticImportError ,原因为pydantic版本的问题,只需将pydantic版本降为1.*版本即可。

   部署成功后,该服务可提供与OpenAI风格类似的RESTful APIs,如下:

  • 查看模型

curl命令为:

curl http://localhost:8000/v1/models

输出结果为:

{"object": "list","data": [{"id": "baichun_7b","object": "model","created": 1689004839,"owned_by": "fastchat","root": "baichun_7b","parent": null,"permission": [{"id": "modelperm-UERow2kYwq5B2M8aVQkwdk","object": "model_permission","created": 1689004839,"allow_create_engine": false,"allow_sampling": true,"allow_logprobs": true,"allow_search_indices": true,"allow_view": true,"allow_fine_tuning": false,"organization": "*","group": null,"is_blocking": false}]}]
}
  • 文本补充(Text Completions)

curl命令为:

curl http://localhost:8000/v1/completions \-H "Content-Type: application/json" \-d '{"model": "baichun_7b","prompt": "Once upon a time","max_tokens": 40,"temperature": 0.5}' | jq .

输出结果为:

{"id": "cmpl-izbe3cRRiY4zAbJueBAyxZ","object": "text_completion","created": 1689004991,"model": "baichun_7b","choices": [{"index": 0,"text": ", you could find a variety of different types of chocolate in stores. But now, many chocolate companies are focusing on creating vegan chocolate that is not only delicious but also cruelty-free. Here are","logprobs": null,"finish_reason": "length"}],"usage": {"prompt_tokens": 4,"total_tokens": 43,"completion_tokens": 39}
}
  • 对话(Chat Completions)

curl命令为:

curl http://localhost:8000/v1/chat/completions \-H "Content-Type: application/json" \-d '{"model": "baichun_7b","messages": [{"role": "user", "content": "请用中文简单介绍三国演义?"}]}' | jq .

输出结果为:

{"id": "chatcmpl-3SiRqRgbZR8v6gLnQYo9eJ","object": "chat.completion","created": 1689005219,"model": "baichun_7b","choices": [{"index": 0,"message": {"role": "assistant","content": " 三国演义是中国古代长篇小说,讲述了东汉末年至晋朝初年的历史故事。主要人物包括曹操、刘备、孙权和关羽等。故事情节曲折复杂,涉及政治、军事、文化等多个方面,被誉为中国古代小说的经典之作。《三国演义》不仅是一部文学作品,也是中国文化的重要组成部分,对中国历史和文化产生了深远的影响。"},"finish_reason": "stop"}],"usage": {"prompt_tokens": 533,"total_tokens": 629,"completion_tokens": 96}
}
  • 多轮对话

curl命令为:

curl http://localhost:8000/v1/chat/completions \-H "Content-Type: application/json" \-d '{"model": "baichun_7b","messages": [{"role": "user", "content": "请用中文简单介绍西游记?"}, {"role": "assistant", "content": "三国演义是中国古代长篇小说,讲述了东汉末年至晋朝初年的历史故事。主要人物包括曹操、刘备、孙权和关羽等。故事情节曲折复杂,涉及政治、军事、文化等多个方面,被誉为中国古代小说的经典之作。《三国演义》不仅是一部文学作品,也是中国文化的重要组成部分,对中国历史和文化产生了深远的影响。"}, {"role": "user", "content": "它的作者是谁?"}]}' | jq .

输出结果为:

{"id": "chatcmpl-8oE57oXC862wKYyrPLnSGM","object": "chat.completion","created": 1689005374,"model": "baichun_7b","choices": [{"index": 0,"message": {"role": "assistant","content": " 《三国演义》的作者是明代小说家罗贯中。罗贯中是明代文学家,他的代表作品还有《水浒传》和《西游记》等。他在创作《三国演义》时,参考了大量的历史资料和传说,将这些内容融合在一起,创造了一个虚构的世界,成为了中国文学史上的经典之作。"},"finish_reason": "stop"}],"usage": {"prompt_tokens": 640,"total_tokens": 724,"completion_tokens": 84}
}
  • 使用Python代码
import openai
openai.api_key = "EMPTY" # Not support yet
openai.api_base = "http://localhost:8000/v1"model = "baichun_7b"
prompt = "Once upon a time"# create a completion
completion = openai.Completion.create(model=model, prompt=prompt, max_tokens=64)
# print the completion
print(prompt + completion.choices[0].text)# create a chat completion
completion = openai.ChatCompletion.create(model=model,messages=[{"role": "user", "content": "Hello! What is your name?"}]
)
# print the completion
print(completion.choices[0].message.content)

以上两种部署方式,都支持流式输出,且模型推理速度较快,笔者在上述测试例子中的推理时间一般为5-7秒,且支持分布式部署,并发量高。

总结

   本文主要介绍了如何使用FastChat来部署国产大模型——百川模型,并演示了两种部署方式——WEB部署和CLI部署,以及在部署过程中出现的问题和解决方案,希望能给读者带来启示。

参考文献

  1. 百川智能发布 70 亿参数量开源中英文大模型: https://www.geekpark.net/news/320721
  2. baichuan-inc/Baichuan-7B in Huggingface Hub: https://huggingface.co/baichuan-inc/Baichuan-7B
  3. OpenAI-Compatible RESTful APIs & SDK: https://github.com/lm-sys/FastChat/blob/main/docs/openai_api.md
  4. report error while i execute python -m fastchat.serve.openai_api_server --host localhost --port 8000: https://github.com/lm-sys/FastChat/issues/1641
  5. FastChat in Github: https://github.com/lm-sys/FastChat

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

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

相关文章

用Claude和Stable Diffusion绘制《武松打虎》

绘制四大名著的经典画面 现在最火爆的AI,分为两类,一个是文本生成,一个是图片生成。如果让这两种结合到一起来,会是什么样的效果的。 这样是不是可能帮我们绘制很多场景下的图片,比如四大名著,帮我们的四…

详解区块链技术,如何运作

区块链是数字加密货币比特币的核心技术。区块链是一个分布式数据库,包含参与方之间已执行和共享的所有交易或数字事件的记录。每一笔交易都经过系统大多数参与者的验证。它包含每笔交易的每一条记录。比特币是最流行的加密货币,也是区块链的一个例子。区…

style计算机词汇,法语词汇学习:计算机及网络词汇(3)

音频son n.m 视频vido n.f 动画animation n.f 运动图像专家组Motion Picture Experts Group (MPEG) 硬件matriel 主机箱unit centrale n.f 总线bus n.f 处理器processeur n.m 协处理器coprocesseur n.m 微处理器microprocesseur n.m 芯片puce n.f 存储器mmoire n.f 随机存取存储…

英:英语面试常用口语900句

英语面试常用口语900句 英语面试常用口语900句 2018年09月18日 12:13:11 Nathan_Sun 阅读数:9514 (一) 高频词汇: 可以拿来形容自己的形容词。除开我们都熟知的一些基本的词汇可以用来形容自己,比如honest, reliabl…

英语面试常用口语900句

(一) 高频词汇: 可以拿来形容自己的形容词。除开我们都熟知的一些基本的词汇可以用来形容自己,比如honest, reliable, trustworthy等,我们还可以运用一些“高级词汇”。 用形容词的形式来形容自己 1. committed 投入…

【托福】口语

【托福】口语 Task 1:DescriptionTask 2 :Personal ChoiceTask 3:Campus mattersTask 4:Academic CourseTask 5:Problem and SolutionTask 6:Academic summary 连读 辅音音素结尾 元音音素开头 “in Englan…

TOFEL Speaking 托福口语 —— 模板

【参考资料】 1.B站:【TOEFL119斯坦福学长】突破托福口语!- 根据2019年8月改革更新突破托福口语! 【阅前必读】 本文最重要的部分为 Overall & 各二级标签 (Task 1-4) 的第一部分(作答模板) Overall 对于托福口…

做前端有钱途?还是后端有钱途?

今天逛论坛,看到有个朋友在纠结做前端好还是做后端好,之前是做前端的,但看了他的话估计想跳槽或者想去做后端,我们先来看看他的原话。 就目前编程行业而言前端好还是后端好是一个被很多人所争议的问题,就目前形式而言…

关于后端程序员写前端用什么框架更好?

作者:图书馆煮饭少年 地址:http://www.360doc.com/content/16/0527/21/26662048_562854438.shtml 几年前,还是痴迷java的那会儿,我也曾纠结于前端框架的选择。试图找出一套一劳永逸的前端框架继承到项目架构中。搜遍全网得出以下结…

一个后端程序员如何被公司逼的开始写前端代码!奉劝各位最好选择前后端分离的公司...

hello~各位读者好,我是鸭血粉丝(大家可以称呼我为「阿粉」),在特殊的日子里,大家要注意安全,尽量不要出门,无聊的话,就像阿粉一样,把时间愉快的花在学习上吧。 事情起因 阿粉自从学会…

负责淘宝业务前端开发9年,聊聊我的心得

本文作者永霸负责了淘宝PC改版,他坚信历史的发展是螺旋式上升的,那些只要认为是对的事情,未来一定会发生/被证实的。 文章指路:淘宝PC改版!我们跟一位背后付出6年的男人聊了聊…… 缘起 本人自 14 年校招加入淘宝 UED&…

人工智能写一封种子信,真诚又用心(挽回必备神器)

用ChatGPT写情话就是让电脑来帮你写一些浪漫的话,比如表达你对恋人的爱意、想念之情等等。这种技术叫做自然语言生成,它会根据你给出的主题、口吻和语气等因素,自动生成一段与之匹配的情话或情书。 借助ChatGPT写情话,可以让普通人…

微调BaiChuan13B来做命名实体识别

传统上,一般把NLP的研究领域大致分为自然语言理解(NLU)和自然语言生成(NLG)两种。 NLU侧重于如何理解文本,包括文本分类、命名实体识别、指代消歧、句法分析、机器阅读理解等; NLG则侧重于理解文…

为业务场景打造技术矩阵,网易智企畅谈融合通信与 AI 商业化最佳实践

在 QCon 全球软件开发大会 2022上海站上,一场特殊的专题吸引了与会者的目光。 与其他以个人身份参与的出品人不同,《融合通信技术探索与 AI 技术商业化实战》这一专场的出品人是一个略显神秘的“技术俱乐部”——网易智企技术委员会。 设立 7 大分委会&a…

Qcon · 上海丨融合通信技术探索与 AI 技术商业化实战专场,看看网易智企都将分享哪些干货?...

沟通和交流是人与人产生信息交换的重要方式,从文字到图片,再到音视频,云通信已成为连接的“刚需”底层技术。伴随着物联网、VR/AR、5G 等新场景应用的出现,云通信的应用边界正在不断外延,也为各类厂商带来了新的挑战。…

来,亮点抢先看!网易智企机器之心即将联合发布 AI 白皮书

可信 AI、多模态等前沿 AI 技术离我们还有多远?风控系统布局中,如何构建快速识别能力?如何高效降低资源消耗?如何实现敏捷响应?如何获得具有场景泛化能力的 AI 算法模型?如何更好驾驭音频技术和视频处理技术…

网易云信 Crash 异常治理实践 | 智企技术委员会技术专题系列

前言 Crash(造成用户无法使用客户端所承载的服务)作为客户端稳定治理的最主要问题之一。云信作为国内业界领先的 RTC/IM PaaS 服务商,对于客户端 SDK(PaaS 服务商对外服务的主要载体)的 Crash 治理再重视也不为过。关于…

面向企业服务,网易智企的深耕与拓进

编辑:阿由 设计:紫菜 机会总是留给有准备的人,以及企业。 新冠病毒给商业带来的影响,比想象中更大。不过,得益于数字化转型,部分企业不仅表现出足够的业务韧性,甚至还迎来了一波新的发展高峰。 …

社交出海,网易智企与亚马逊云科技齐助力

互联网与移动应用的快速发展为游戏、社交、即时通讯等行业带来了新的体验,人们可以借助数字化的平台随时随地的进行娱乐活动并与人交流互动。但这一数字世界中也并非只有阳光,海量的信息传递难免掺杂着各类不良的信息,对于互联网业务的经营者…

网易智企:做正确的事,然后相信持续创新的复利效应

上世纪 70 年代,日本正式超越德国成为世界第二大经济体。彼时的企业们雄心勃勃,在电器生产、汽车、半导体等诸多行业都做到了全球领先水平。 但先发者未必总是正确。在取得领先优势后,许多企业陷入了狭隘的“创新怪圈”,追求极致…