MLU370-M8轻轻松松跑通Qwen-7B-chat

2023-11-09 23:50

本文主要是介绍MLU370-M8轻轻松松跑通Qwen-7B-chat,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这一期我们将快速让千问7B快速跑通在国产芯片MLU370-M8卡上,后续会更新更多有关于LORA、预训练、RLHF、SFT,Embedding、Fintuning等得操作过程,尽情期待

Qwen-7B-chat在MLU370-M8上实现

  • 前言
  • 一、环境准备
  • 二、模型下载
    • 1.魔塔社区引入
    • 2.代码修改
    • 3.代码运行
  • 效果展示


前言

通义千问-7B(Qwen-7B) 是阿里云研发的通义千问大模型系列的70亿参数规模的模型。Qwen-7B是基于Transformer的大语言模型, 在超大规模的预训练数据上进行训练得到。预训练数据类型多样,覆盖广泛,包括大量网络文本、专业书籍、代码等。同时,在Qwen-7B的基础上,我们使用对齐机制打造了基于大语言模型的AI助手Qwen-7B-Chat。Qwen-7B系列模型的特点包括:

1 大规模高质量预训练数据:我们使用了超过2.2万亿token的自建大规模预训练数据集进行语言模型的预训练。,,上下文长度为2048,,数据集包括文本和代码等多种数据类型,覆盖通用领域和专业领域。包含高质量中、英、多语言、代码、数学等数据,涵盖通用及专业领域的训练语料。通过大量对比实验对预训练语料分布进行了优化。

2 优秀的模型性能:相比同规模的开源模型,Qwen-7B在多个评测数据集上具有显著优势,甚至超出12-13B等更大规模的模型。评测评估的能力范围包括自然语言理解与生成、数学运算解题、代码生成、常识推理、翻译等。

3 更好地支持多语言:基于更大词表的分词器在分词上更高效,同时它对其他语言表现更加友好。用户可以在Qwen-7B的基础上更方便地训练特定语言的7B语言模型。覆盖更全面的词表:相比目前以中英词表为主的开源模型,Qwen-7B使用了约15万大小的词表。该词表对多语言更加友好,方便用户在不扩展词表的情况下对部分语种进行能力增强和扩展。

4 8K的上下文长度:Qwen-7B及Qwen-7B-Chat均能支持8K的上下文长度, 允许用户输入更长的prompt。

5 支持插件调用:Qwen-7B-Chat针对插件调用相关的对齐数据做了特定优化,当前模型能有效调用插件以及升级为Agent。


一、环境准备

开发环境选择(关于开发环境及平台可参考前几期博文):

pytorch:v1.14.0-ubuntu20.04-py38

环境库安装:
1.transformers

git clone -b v4.31.0 https://github.com/huggingface/transformers.git
python /torch/src/catch/tools/torch_gpu2mlu.py -i transformers/   #cuda算子转换成mlu,后会生成transformers_mlu
cd transformers_mlu/ && python setup.py install

2.accelerate

git clone -b v0.20.2 https://github.com/huggingface/accelerate
python /torch/src/catch/tools/torch_gpu2mlu.py -i accelerate/   #cuda算子转换成mlu,后会生成accelerate_mlu
cd accelerate_mlu/ && python setup.py install

3.deepspeed
这个直接联系我们可以直接提供编译好的whl包

4.常规安装

pip install tiktoken transformers_stream_generator einops modelscope 

二、模型下载

1.魔塔社区引入

因为之前有小伙伴说huggingface下载模型太慢了,因此我们采用国内源模型下载得方式,下载速度很快,模型自动下载到
/root/.cache/huggingface/hub/路径下

2.代码修改

运行3时可能会出现报错,此时注释transformers-4.31.0_mlu/src/transformers/utils/versions.py中43-46行(原因不让其查询版本)

 # if not ops[op](version.parse(got_ver), version.parse(want_ver)):#     raise ImportError(#         f"{requirement} is required for a normal functioning of this module, but found {pkg}=={got_ver}.{hint}"#     )

3.代码运行

from modelscope import AutoModelForCausalLM, AutoTokenizer
from modelscope import GenerationConfigtokenizer = AutoTokenizer.from_pretrained("qwen/Qwen-7B-Chat", revision = 'v1.0.5',trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("qwen/Qwen-7B-Chat", revision = 'v1.0.5',device_map="auto", trust_remote_code=True,fp16 = True).eval()
model.generation_config = GenerationConfig.from_pretrained("Qwen/Qwen-7B-Chat",revision = 'v1.0.5', trust_remote_code=True) # 可指定不同的生成长度、top_p等相关超参response, history = model.chat(tokenizer, "你好", history=None)
print(response)
response, history = model.chat(tokenizer, "浙江的省会在哪里?", history=history) 
print(response)
response, history = model.chat(tokenizer, "它有什么好玩的景点", history=history)
print(response)

效果展示

在这里插入图片描述

这篇关于MLU370-M8轻轻松松跑通Qwen-7B-chat的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/379179

相关文章

第一个100%开源的MoE大模型,7B的参数,1B的推理成本

尽管大语言模型 (LM) 在各种任务上取得了重大进展,但在训练和推理方面,性能和成本之间仍然需要权衡。 对于许多学者和开发人员来说,高性能的 LM 是无法访问的,因为它们的构建和部署成本过高。改善成本 - 性能的一种方法是使用稀疏激活混合专家 (MoE)。MoE 在每一层都有几个专家,每次只激活其中的一个子集(参见图 2)。这使得 MoE 比具有相似参数量的密集模型更有效,因为密集模型为每个

基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践

作者:计缘 LLM Chat 应用大家应该都不陌生,这类应用也逐渐称为了我们日常的得力助手,如果只是个人使用,那么目前市面上有很多方案可以快速的构建出一个LLM Chat应用,但是如果要用在企业生产级别的项目中,那对整体部署架构,使用组件的性能,健壮性,扩展性要求还是比较高的。本文带大家了解一下如何使用阿里云Serverless计算产品函数计算构建生产级别的LLM Chat应用。 该最佳实践会

通义千问Qwen 2大模型的预训练和后训练范式解析

LLMs,也就是大型语言模型,现在已经发展得挺厉害的。记得最开始的时候,我们只有GPT这样的模型,但现在,我们有了一些更复杂的、开放权重的模型。以前,训练这些模型的时候,我们主要就是做预训练,但现在不一样了,我们还会加上后训练这个阶段。 咱们今天就以通义千问Qwen 2这个模型为例,来好好分析一下Qwen 2的预训练和后训练都是怎么搞的。它在大型语言模型界里算是挺能打的。不过,虽然它很强

LLM代码实现-Qwen(挂载知识库)

为什么要挂载知识库? LLM 在回答用户的问题时可能会产生幻觉,或者由于训练数据中不包含用户想要的内容而无法回答,通常情况下我们可以选择微调模型或者外挂知识库来缓解这类问题。微调模型的对数据和算力都有一定的要求,而知识库的门槛会更低一些,所以通常情况下会选择外挂知识库高效地来解决这类问题。 挂载知识库其实相当于引入外部知识,为了扩展语言模型以减少歧义,从大型文本数据库中检索相关文档。通常将输入

Qwen-7B-Chat大模型安装训练推理-helloworld

初始大模型之helloworld编写 开发环境:modelscope GPU版本上测试的,GPU免费36小时 ps:可以不用conda直接用环境自带的python环境使用 魔搭社区 安装conda wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh 1.2 bash Minicond

使用docker部署tensorrtllm推理大模型baichuan2-7b

简介 大模型的推理框架,我之前用过vllm和mindie。近期有项目要用tensorrtllm,这里将摸索的过程记录下,特别是遇到的问题。 我的环境是Linux+rt3090 准备docker环境 本次使用docker镜像部署,需要从网上拉取: docker pull nvcr.io/nvidia/tritonserver:24.08-trtllm-python-py3 The Tri

RAG 进阶:零成本 chat_with_readthedocs

Readthedocs 是知名的文档托管平台,通常用于免费存放 GitHub 和 GitLab 的项目文档。当项目文档较多时,简单的搜索难以满足读者需求,此外在 AI 2.0 时代,“主动寻找答案”这类用户体验已经逐渐落后。 本文将介绍如何基于 HuixiangDou 在 readthedocs 中做源码检索,同时不需要自备 GPU 服务器和域名。 HuixiangDou ——开源的适合群聊

教你如何用Python轻轻松松操作Excel、Word、CSV,一文就够了,建议收藏食用!!!

在文章开始前打个小广告——分享一份Python学习大礼包(激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程)点击领取,100%免费! 常用工具 数据处理是 Python 的一大应用场景,而 Excel 又是当前最流行的数据处理软件。因此用 Python 进行数据处理时,很容易会和 Excel 打起交道。得益于前人的辛勤劳作,Pyt

How can I change from OpenAI to ChatOpenAI in langchain and Flask?

题意:“在 LangChain 和 Flask 中,如何将 OpenAI 更改为 ChatOpenAI?” 问题背景: This is an implementation based on langchain and flask and refers to an implementation to be able to stream responses from the OpenAI

自然语言处理-应用场景-聊天机器人(二):Seq2Seq【CHAT/闲聊机器人】--> BeamSearch算法预测【替代 “维特比算法” 预测、替代 “贪心算法” 预测】

在项目准备阶段我们知道,用户说了一句话后,会判断其意图,如果是想进行闲聊,那么就会调用闲聊模型返回结果。 目前市面上的常见闲聊机器人有微软小冰这种类型的模型,很久之前还有小黄鸡这种体验更差的模型 常见的闲聊模型都是一种seq2seq的结构。 一、准备训练数据 单轮次的聊天数据非常不好获取,所以这里我们从github上使用一些开放的数据集来训练我们的闲聊模型 数据地址:https://gi