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

这篇具有很好参考价值的文章主要介绍了【AIGC】CPM-BEE 开源大模型介绍、部署以及创建接口服务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

终于! 中文基座模型CPM-Bee开源了

# CPM-Bee

百亿参数的开源中英文双语基座大模型

✨ 模型介绍

CPM-Bee是一个完全开源、允许商用的百亿参数中英文基座模型,也是CPM-Live训练的第二个里程碑。它采用Transformer自回归架构(auto-regressive),在超万亿(trillion)高质量语料上进行预训练,拥有强大的基础能力。开发者和研究者可以在CPM-Bee基座模型的基础上在各类场景进行适配来以创建特定领域的应用模型。

  • 👐 开源可商用:OpenBMB始终秉承“让大模型飞入千家万户”的开源精神,CPM-Bee基座模型将完全开源并且可商用,以推动大模型领域的发展。我们鼓励全球范围内的科研机构、企业和个人开发者在遵守开源许可协议的前提下,自由地在CPM-Bee基座模型上进行创新。

  • 💫 中英双语性能优异: CPM-Bee基座模型在预训练语料上进行了严格的筛选和配比,同时在中英双语上具有亮眼表现,具体可参见评测任务和结果。

  • 📖 超大规模高质量语料: CPM-Bee基座模型在超万亿语料进行训练,是开源社区内经过语料最多的模型之一。同时,我们对预训练语料进行了严格的筛选、清洗和后处理以确保质量。

  • OpenBMB大模型系统生态支持: OpenBMB大模型系统在高性能预训练、适配、压缩、部署、工具开发了一系列工具,CPM-Bee基座模型将配套所有的工具脚本,高效支持开发者进行进阶使用。

  • 🔨 对话和工具使用能力: 结合OpenBMB在指令微调和工具学习的探索,我们在CPM-Bee基座模型的基础上进行微调,训练出了具有强大对话和工具使用能力的实例模型,API和内测将于近期开放。

安装

一、服务部署

1、服务器配置:
  • 1)配置详情

    GPU:8*3080TI服务器 (一块24G显存的卡就可以了)

    CUDA:12.1

2、环境安装
cat requirements.txt
(python38) root@-NF5468M5: cat requirements.txt
torch>=1.10
bmtrain>=0.2.1
jieba
tqdm
tensorboard
numpy>=1.21.0
spacy
opendelta

为了避免cuda环境和pytorch版本的冲突,一个个进行安装。

  • 1)安装pytorch,适配cuda12.1

    参考:https://pytorch.org/get-started/locally/

    注意:使用cuda安装比较慢,所以用pip3安装

    pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu121
    
  • 2)安装bmtrain

    pip install bmtrain
    
  • 3)安装其他环境

    pip install jieba tqdm tensorboard numpy spacy opendelta
    
3、模型下载

下载地址:https://huggingface.co/openbmb/cpm-bee-10b/tree/main

  • 1)代码克隆

    git clone https://github.com/OpenBMB/CPM-Bee.git
    
  • 2)下载模型 19G

    下载路径: ./model
    

    下载路径,自定义即可

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

4、测试
  • 1)修改测试文件

    修改 vi text_generation.py

    更改模型路径
    【AIGC】CPM-BEE 开源大模型介绍、部署以及创建接口服务

  • 2)测试模型

    python text_generation.py
    

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

5、接口设计(Python版)
  • 1)新建Flask接口

    vi flask_server.py
    
    from flask import Flask, request, jsonify
    import threading
    import torch
    from cpm_live.generation.bee import CPMBeeBeamSearch
    from cpm_live.models import CPMBeeTorch, CPMBeeConfig
    from cpm_live.tokenizers import CPMBeeTokenizer
    from opendelta import LoraModel
    from flask_cors import CORS
    import os
    
    os.environ["CUDA_VISIBLE_DEVICES"] = '6'
    
    app = Flask(__name__)
    CORS(app)
    
    # 加载模型
    config = CPMBeeConfig.from_json_file("config/cpm-bee-10b.json")
    ckpt_path = "model/pytorch_model.bin"
    tokenizer = CPMBeeTokenizer()
    model = CPMBeeTorch(config=config)
    model.load_state_dict(torch.load(ckpt_path))
    model.cuda()
    beam_search = CPMBeeBeamSearch(
        model=model,
        tokenizer=tokenizer,
    )
    
    # 创建线程锁和计数器
    lock = threading.Lock()
    counter = 0
    MAX_CONCURRENT_REQUESTS = 5  # 最大并发请求数
    
    
    @app.route('/cpmbee/conversation', methods=['POST'])
    def conversation():
        global counter
    
        # 请求过载,返回提示信息
        if counter >= MAX_CONCURRENT_REQUESTS:
            return jsonify({'message': '请稍等再试'})
    
        # 获取线程锁
        with lock:
            counter += 1
    
        try:
            # 接收 POST 请求的数据
            question = request.json['question']
    
            inference_results = beam_search.generate([
                {'question': question, "<ans>": ""}
            ], max_length=100, repetition_penalty=1.1)
    
            print('inference_results:', type(inference_results), inference_results)
    
            result = inference_results[0]["<ans>"]
    
            print('result:', type(result), result)
    
            # 返回结果
            response = {'result': result}
            return jsonify(response)
    
        finally:
            # 释放线程锁并减少计数器
            with lock:
                counter -= 1
    
    
    @app.route('/cpmbee/select', methods=['POST'])
    def select():
        global counter
    
        # 请求过载,返回提示信息
        if counter >= MAX_CONCURRENT_REQUESTS:
            return jsonify({'message': '请稍等再试'})
    
        # 获取线程锁
        with lock:
            counter += 1
    
        try:
            # 接收 POST 请求的数据
            print(request.json)
            description = request.json['description']
            options = request.json['options']
            options_index2option = {'<option_%s>' % str(index): str(option) for index, option in enumerate(options)}
            question = request.json['question']
    
            inference_results = beam_search.generate([
                {'input': description, 'options': options_index2option, 'question': question, "<ans>": ""}
            ], max_length=100, repetition_penalty=1.1)
    
            option_result = inference_results[0]["<ans>"]
    
            result = options_index2option.get(option_result, option_result)
    
            # 返回结果
            response = {'result': result}
            return jsonify(response)
    
        finally:
            # 释放线程锁并减少计数器
            with lock:
                counter -= 1
    
    
    if __name__ == '__main__':
        print("Flask 服务器已启动")
        app.run(host='0.0.0.0', port=8000)
    
    

    在上述代码中,我们通过 from flask_cors import CORS 导入了 CORS 类,并在 Flask 应用程序中调用了 CORS(app)。这样就启用了默认的 CORS 配置,允许所有来源跨域访问。

    未避免显存异常,在上述代码中,通过创建一个线程锁 lock 和一个计数器 counter 来控制并发请求的数量。如果请求超过了 MAX_CONCURRENT_REQUESTS 的限制,即达到了最大并发请求数,服务器将返回提示信息"请稍等再试"

  • 2)启动接口

    python flask_server.py
    
  • 3)接口测试

    • 选择题测试
      【AIGC】CPM-BEE 开源大模型介绍、部署以及创建接口服务

    • Chat测试
      【AIGC】CPM-BEE 开源大模型介绍、部署以及创建接口服务

二、聊天窗口(前后端)

【AIGC】CPM-BEE 开源大模型介绍、部署以及创建接口服务文章来源地址https://www.toymoban.com/news/detail-483947.html

到了这里,关于【AIGC】CPM-BEE 开源大模型介绍、部署以及创建接口服务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【大模型AIGC系列课程 3-1】Meta开源大模型:羊驼系列

    https://arxiv.org/abs/2302.13971 LLaMA(由Meta推出)和GPT是两种不同的语言模型。以下是LLaMA相对于GPT的一些优点: ● 架构修改:LLaMA在Transformer架构的基础上进行了一些修改。例如,LLaMA使用了预归一化(pre-normalization)而不是后归一化(post-normalization)的方法,这可以提高训练的稳

    2024年02月11日
    浏览(31)
  • 昆仑天工SkyWork:更懂中文的AIGC开源模型

    昆仑天工SkyWork系列AIGC开源模型,由奇点智源公司研发,在2022年12月发布,覆盖图像、文本、编程等多模态内容生成能力,包括绘画、文章续写、对话、中英翻译、推理、诗词对联、菜谱撰写、合同起草、代码补全等。 昆仑天工SkyWork系列模型,已全部在GitHub上开源! 性能澎

    2024年02月09日
    浏览(84)
  • 一周 AIGC 丨苹果下架多款 AIGC 应用,阿里云开源通义千问 70 亿参数模型

    多个 AIGC 应用在苹果应用商店下架,包含数据采集和使用不够规范等问题。阿里云开源通义千问 70 亿参数模型,包括通用模型 Qwen-7 B 和对话模型 Qwen-7 B-Chat。腾讯混元大模型开始应用内测,内部多个业务线接入测试。百度智能云“千帆大模型平台”升级,接入 LLaMA2 等 33 个模

    2024年02月14日
    浏览(42)
  • 【AIGC调研系列】AIGC企业级模型Command-R介绍

    Command-R与其他大语言模型的主要区别在于其专为企业级应用设计,特别是在检索增强生成(RAG)和工具使用方面。Command-R是一个350亿参数的高性能生成模型,具有开放式权重,能够支持多种用例,包括推理、摘要和问答[2]。它特别针对大规模生产工作负载进行了优化,属于可

    2024年04月26日
    浏览(41)
  • 52个AIGC视频生成算法模型介绍

    基于Diffusion模型的AIGC生成算法日益火热,其中文生图,图生图等图像生成技术普遍成熟,很多算法从业者开始从事视频生成算法的研究和开发,原因是视频生成领域相对空白。 AIGC视频算法发展现状 从2023年开始,AIGC+视频的新算法层出不穷,其中最直接的是把图像方面的成果

    2024年03月28日
    浏览(33)
  • AIGC大模型之——以文生图介绍

    一、什么是以文生图?        以文生图是AIGC ( AI Generated Content )框架中的一个关键技术,通过文字描述,将文字转化为图像并展示出来。以文生图具有白动化程度高、精度高、可扩展性强、可定制化等优势,具有广泛的应用前景,可以为人们提供更便捷高效的绘图解决方案

    2024年02月08日
    浏览(38)
  • AIGC之绘图工具及模型基础概念介绍

    本文主要用来介绍AI绘图工具,及模型概念。 一、AI绘图工具 1、流行的AI绘图软件 Midjourrney Dell-E Stable Diffusion NovelAI Disco Diffusion 特点:属于大模型,参数多,训练时间长,泛化性,通用性,实用性,适用于各种场景的绘图 2、其他软件 NijiJourney Waifu Diffusion Lenoardo AI BlueWillow

    2023年04月09日
    浏览(36)
  • SAM语义分割模型开源,AIGC时代,图像抠图工具都被大模型统一了?(下)

    大家好,我是千与千寻,很高兴今天和大家再一次分享我在ChatGPT上的学习经历! 这次是《SAM语义分割模型开源,AIGC时代,图像抠图工具都被大模型统一了?》系列的最终版本了。 在之前的两节中我们介绍了分割一切的 Segment Anything模型,以及分割视频的 Segment-and-Track Anyth

    2024年02月13日
    浏览(38)
  • 一周AIGC丨Meta 发布新一代开源大模型 Llama 2,大模型裁员潮不远了?

    人们把Meta发布免费可商用版本 Llama 2比作“安卓时刻”,OpenAI护城河似乎一下子荡然无存,整个大模型市场格局面临巨变。据媒体报道,在以往,中国大模型公司可以靠商业授权赚钱利润,随着Llama 2开始允许商用,中国大模型公司的这一优势现在也没有了。傅盛更是发出预警

    2024年02月11日
    浏览(42)
  • AIGC:【LLM(七)】——Baichuan2:真开源可商用的中文大模型

    Baichuan 2 是百川智能推出的新一代开源大语言模型,采用 2.6 万亿 Tokens 的高质量语料训练。其在多个权威的中文、英文和多语言的通用、领域 benchmark 上取得同尺寸最佳的效果。 目前开源发布的包含有 7B、13B 的 Base 和 Chat 版本,并提供了 Chat 版本的 4bits 量化。所有版本对学

    2024年02月09日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包