文心千帆为你而来

2023-11-16

1. 前言

3月16号百度率先发布了国内第一个人工智能大语言模型—文心一言。文心一言的发布在业界引起了不小的震动。而文心一言的企业服务则由文心千帆大模型平台提供。文心千帆大模型平台是百度智能云打造出来的一站式大模型开发与应用平台,提供包括文心一言在内的文心大模型服务,支持大模型(含第三方)定制开发,生产专属大模型,提供覆盖全生命周期的大模型工具链。文心千帆大模型平台接入客户业务系统可以丰富多种应用场景,包括但不限于智能问答,内容创作,产品营销,代码编写,人员培训等等。下图详细展示了文心一言大模型和文心千帆大模型平台的的关系。

文心千帆大模型平台

让人欣喜的是,百度智能云已面向企业和个人客户开放文心千帆大模型平台公有版测试服务(官方申请地址:https://cloud.baidu.com/survey/qianfan.html);

2. 试用文心千帆大模型平台

  1. 申请文心千帆大模型体验

    官方申请地址:https://cloud.baidu.com/survey/qianfan.html

    在访问官方申请地址时,需要填写相关信息,如公司名称、联系人、联系电话等。提交申请后,百度智能云的工作人员将在三小时内审核申请信息。审核通过后,用户将获得文心千帆大模型平台公有版测试服务的使用权限。

    image-20230717192100019

    点击去使用,系统会默认选中ERNIE-Bot,ERNIE-Bot-turbo,BLOOMZ-7B以及Embedding-V1四个大模型。

    其中:

    1. ERNIE-Bot是百度自行研发的大语言模型,覆盖海量中文数据,具有更强的对话问答、内容创作生成等能力。
    2. ERNIE-Bot-turbo是百度自行研发的大语言模型,覆盖海量中文数据,具有更强的对话问答、内容创作生成等能力,响应速度更快。
    3. BLOOMZ-7B是业内知名的⼤语⾔模型,由HugggingFace研发并开源,能够以46种语⾔和13种编程语⾔输出⽂本。
    4. Embedding-V1是基于百度文心大模型技术的文本表示模型,将文本转化为用数值表示的向量形式,用于文本检索、信息推荐、知识挖掘等场景。

    点击下一步开通服务。

    image-20230717192245948

  2. 创建应用

    开通服务之后,首先,我们需要创建一个自己的应用,接着调用API服务。如下图我这边创建了一个名称为 test_qianfan的应用。应用类型选择为 游戏娱乐。

    image-20230717153446542

    文心千帆提供了三种服务方式,第一种是直接在线测试,第二种就是使用示例代码,第三种就是直接调用API接口

  3. 直接在线测试

    访问 https://ai.baidu.com/wenxinworkshop/app/ais/console/onlineTest 即可在线体验服务,在线体验不需要调用任何API接口即可使用。我们可以让文心千帆用Python写一个冒泡排序算法,如下图所示:

    image-20230717194857805

    这里参数配置中可以选择不同的大模型服务,也可以选择不同的应用。当然你也可以创建一个Prompt模板,以便后期快速使用。

  4. 使用示例代码

    如果你想接入API接口服务,但是编程功底又不是很扎实的话,那么可以试下百度智能云提供的示例代码中心 的功能。

    image-20230717194144837

    这里选中文心千帆大模型平台,这里按照接入步骤给出不同接口的接入示例,直接可见即可得。例如千帆大模型的接入步骤是首先是调试 鉴权认证机制---->获取AccessToken,接着就是根据不同的语言模型调试不同的接口。

  5. 调用API接口

文心千帆大模型平台提供了在开发文档中提供了详细的API调用指南

  • 获取AccessToken

    import requests
    import json
    
    
    def main():
            
        url = "https://aip.baidubce.com/oauth/2.0/token?client_id=uvtkhfi4yU6Y81EwKo05gWlC&client_secret=CavUZ7yhXI0LoYfWLziUZ7rN5b5mfY0v&grant_type=client_credentials"
        
        payload = json.dumps("")
        headers = {
            'Content-Type': 'application/json',
            'Accept': 'application/json'
        }
        
        response = requests.request("POST", url, headers=headers, data=payload)
        
        print(response.text)
        
    
    if __name__ == '__main__':
        main()
    
    
    
  • 调用ErnieBot-turbo模型

import requests
import json

API_KEY = "uvtkhf****05gWlC"
SECRET_KEY = "CavUZ7****5mfY0v"

def main():
        
    url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=" + get_access_token()
    
    payload = json.dumps({
        "messages": [
            {
                "role": "user",
                "content": "作为一个专业的python老师,请检查下面的代码有哪些错误, 代码如下: \\n for in in range(n): \\n检查的错误如下:\n"
            },
            {
                "role": "assistant",
                "content": "在Python中,使用`for`循环遍历一个列表或可迭代对象时,不需要使用`in`关键字,因为`for`循环已经包含了遍历的功能。\n\n所以,您的代码可以修改为:\n\n\n```python\nfor i in range(n):\n    # 在这里编写你的代码\n```\n另外,请注意`range`函数的参数,它应该是从0开始到n-1结束的整数,即`range(n-1)`。"
            }
        ]
    })
    headers = {
        'Content-Type': 'application/json'
    }
    
    response = requests.request("POST", url, headers=headers, data=payload)
    
    print(response.text)
    

def get_access_token():
    """
    使用 AK,SK 生成鉴权签名(Access Token)
    :return: access_token,或是None(如果错误)
    """
    url = "https://aip.baidubce.com/oauth/2.0/token"
    params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
    return str(requests.post(url, params=params).json().get("access_token"))

if __name__ == '__main__':
    main()

3. 文心千帆大模型调优

大模型调优实际上是Fine-Tuning的训练模式,开发者可以选择适合自己任务场景的训练模式并加以调参训练,从而实现理想的模型效果。大模型调优的入口如下:https://ai.baidu.com/wenxinworkshop/app/train/tuning/list

image-20230717192511100

我从事的是教育类的产品开发,我们产品中有很重要的一块功能就是在线编程功能,其主要是图形化编程和python编程。老师发布一个编程任务之后,学生们在平台上通过编程的方式来实现老师发布的编程任务。

在没有大模型辅助的情况下,学生提交的编程作业都需要老师人工检查批改。 老师一行行代码的检查存不存在语法错误,有没有运行时错误,存不存在不文明的语言,有没有实现编程目标,再根据检查的结果给出相应的评分。

在有了大模型之后,我们就可以借助大模型来辅助老师检查学生的编程作业。首先,就是开通大模型训练。这里我选择的是ERNIE-Bot-turbo大模型公有云训练服务-SFT-全量更新。全量更新可以在训练过程中对大模型的全部参数进行更新。

image-20230717200916015

大模型的调优步骤主要就三步:

  1. 准备数据集

    数据集是模型训练的根源,没有数据集或者说数据集过少都会影响模型训练的效果。文心千帆的数据集是以json文件的格式导入的。

  2. 创建调优任务

    创建调优任务,利用准备好的训练数据及平台提供的预训练大模型,训练自己的大模型。

  3. 发布模型

    完成调优后,可以发布训练后的模型,或继续在RLHF训练过程对模型继续训练。

3.1. 准备数据集

点击创建数据集,输入数据集名称,就进入了导入配置。在导入配置页面中,数据标注状态分为:无标注信息和有标注信息,两者的区别是无标注信息只有prompt,而有标注信息不仅有prompt还有response。

导入方式支持本地导入,BOS目录导入,导入格式是JSONL文件。文件内单条数据格式要求为[{"prompt" : "prompt内容","response": [["response内容"]]}]

image-20230717222729861

先下载数据样例,然后在按照数据样例造自己的数据集。这里我根据官方给出的数据样例造出来了我自己的数据集。这里需要注意的是数据集的条数最少要达到32条,不然模型无法启动训练。如下图所示:

image-20230717222454283

每一组的数据内容都类似于:

[{"prompt": "作为一个专业的python老师,请检查下面的代码有哪些错误, 代码如下:  \n print("张三"+1) \n检查的错误如下:", "response": [["第一行字符串拼接错误"]]}]

数据集文件导入成功之后,我们就可以在列表页发布此数据集。只有状态是已发布的数据集,才能被大模型所引用。

image-20230717211559711

image-20230717211933252

3.2. 创建调优任务

数据集准备好之后,我们就可以创建调优任务,让大模型运行数据集进行训练。这里我创建了一个代码检错的调优任务。

image-20230717201239521

在数据配置那一栏选择的数据集就是我们在前面发布的数据集。

image-20230717210816995

image-20230717212034260

调优任务配置好之后点击确认就进入了任务执行页面。

image-20230717212055122

这里我的调优任务一共执行了26分钟才运行完成。

image-20230717215536676

3.3. 发布模型

模型运行完成之后就可以点击 发布,对这个模型进行发布了。

image-20230717215718339

模型发布成功之后就就可以将此模型部署到百度公有云的环境中,部署的过程由于费用的问题在此没能体验。

image-20230717220437249

3.4. 再次体验效果

image-20230717224517551

image-20230717224531868

4. 总结

今天我花了一天的时间好好体验了一下文心千帆大模型平台,整个体验过程对我来说非常好。千帆大模型平台上手非常容易,操作界面对使用者友好。

让我感觉很棒的地方主要体现在如下几个方面。

  1. 完备详尽的开发文档:https://cloud.baidu.com/doc/WENXINWORKSHOP/index.html 基本上在使用中有任何困惑都可以在开发文档中找到答案。
  2. 操作界面友好:文心千帆的操作台划分为 数据服务,大模型训练,大模型管理,大模型服务这四大块,哪怕是没有接触过大模型的小白也能很快上手。
  3. 接入简单:接入文心千帆大模型平台是如此的简单,只需要简单的调两个接口就可以了。
  4. 功能全面:文心千帆提供了各种AI开发工具和整套开发环境,用户可以轻松使用和开发自己的大模型应用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

文心千帆为你而来 的相关文章

  • 3. 性能测试之目标评估

    文章目录 前言 一 模型1 根据日活计算目标QPS 1 原则 2 事例 二 模型2 根据压测数据评估最大支撑并发 1 原则 2 事例 3 备注 三 模型3 根据压测数据评估服务器资源 1 策略 2 备注 四 模型4 评估用户并发或峰值并发

随机推荐

  • Excel·VBA螺旋数组函数

    目录 1 由外到内顺时针的螺旋数组 实现方法1 代码思路 螺旋数组函数代码 举例 实现方法2 代码思路 螺旋数组函数代码 2 由外到内逆时针的螺旋数组 举例 数字1 12从左上角顺时针依次输出的即为螺旋数组 如下图 1 由外到内顺时针的螺旋
  • 网络编程3——TCP Socket实现的客户端服务器通信完整代码(详细注释帮你快速理解)

    文章目录 前言 一 理论准备 Socket套接字是什么 TCP协议的特点 二 TCP 流套接字提供的API ServerSocket API Socket API 三 代码实现请求响应式 客户端服务器 服务器 客户端 疑惑解答 为什么服务器
  • 获取Android设备唯一标识码

    概述 有时需要对用户设备进行标识 所以希望能够得到一个稳定可靠并且唯一的识别码 虽然Android系统中提供了这样设备识别码 但是由于Android系统版本 厂商定制系统中的Bug等限制 稳定性和唯一性并不理想 而通过其他硬件信息标识也因为
  • Simulink代码生成(二)——代码生成时模型的配置方法及操作流程

    Simulink代码生成 二 代码生成时模型的配置方法及操作流程 文章目录 Simulink代码生成 二 代码生成时模型的配置方法及操作流程 一 模型 二 代码生成设置 1 步长选择 2 系统目标文件设置 3 生成代码打开测试报告 4 保存
  • 为什么如今这么多人讨论网络安全?

    网络安全如今备受讨论 跟各种经济政治的关系是分不开的 并且变得更加复杂多变 网络安全的发展前景更可观 很多安全企业也开始积极寻求各类网络风险的防范方案和数据隐私保护技术 当今世界形势的变化 以及各种因素的不断影响 全球网络安全问题再不断提升
  • Qt扫盲-QSS概述

    QSS概述 一 概述 二 详细 一 概述 QSS 其实是Qt样式表 Qt样式表是Qt界面的一种强大的机制 除了通过继承QStyle已经可以实现的功能外 它还允许您自定义窗口组件的外观 Qt样式表的概念 术语和语法很大程度上受到HTML层叠样
  • sql server 提取汉字、数字和字母的sql server方法

    sql server 提取汉字 数字 字母的方法 提取数字 if object id dbo get number2 is not null drop function dbo get number2 go create function
  • QT学习(五)——从子窗口传来多个信号(带参数的自定义信号)

    同样是两个窗口 主窗口与副窗口 给副窗口自定义两个重载的信号 传给主窗口处理 void mySignals 信号可以重载 void mySignals int QString 由被关联的按钮发送消息 并送出两条消息给主窗口 emit myS
  • 常用C语言文件操作

    1 fopen 使用fopen需要引用头文件stdio h 函数声明如下 FILE fopen const char pathname const char mode 这里要多多关心的是第二个参数mode 关系到我们对文件操作的权限 这里做
  • 提升KNN的运行效率

    20221005 引言 KNN算法是一种 懒惰 算法 在模型训练过程 仅仅是将数据存储到快速查询的数据结构中 在测试阶段会通过进行距离计算来输出结果 那么当数据集比较大的时候 一方面内存要求会提升 另一方面在计算的时间也会增大 之前的时候
  • vue实现文字水印效果

    vue文件代码
  • Java自学路线(超全超详细)—初学者零基础版Ⅰ

    Java 对于第一次见到它的人来说 不知道它是什么东西 可能看起来是个单词 可是通过网络翻译却没办法给它一个中文定义 但是 在计算机领域中 它是一门面向对象的编程语言 那么问题来了 有人对于 面向对象的编程语言 这个词组并不理解 在此 作出
  • 出现'MySQL Daemon failed to start‘解决方法

    方法千万条 备份第一条 运行 service mysqld start 重启数据库总是会出现如下提示 MySQL Daemon failed to start Starting mysqld FAILED 的提示 如果直接输入 mysql
  • Ubuntu/linux c开发(6)内存泄露

    写好个服务程序 短期测试没啥问题 准备跑长时间的 结果 前两天正常 第三天突然涨了100多M 这感觉 爽飞了 这里说下Ubuntu中内存泄露检测工具 Valgrind 安装和使用连接如下 链接 Valgrind安装使用 这里大概说下统计结果
  • 神经网络量化

    前言 神经网络在图像 语音识别等领域使用越来越广泛 大部分实时性要求不高的服务都可以部署在云上 然而还是有不少模型需要在计算能力有限的可移动设备上快速运行 如人脸解锁 拍照视频的实时处理等 一般训练的模型采用的都是32位浮点数 考虑到大部分
  • 第四讲 赋予网页样式

    文科编程系列课程 Web开发 第四讲 赋予网页样式 目录 引言 1 大小 1 1 长度单位 1 1 1 px 像素 1 1 2 百分比 1 2 宽高 1 1 1 宽度 1 1 2 高度 1 1 3 边框 2 颜色 2 1 颜色的三种表示形式
  • 毕业设计:自主开发的害虫识别系统--文档附源码

    基于yolov5多目标检测算法的农业害虫识别查询系统 设计文档 目标问题与意义价值 研究意义 本项目能够及时准确地识别农业害虫的种类 是害虫准确测报和合理防治的前提 传统的害虫识别方法主要依赖个人的专业经验进行辨别 或参考书本 网络上的文字
  • Qt5(一)编写Qt多窗口程序

    本文作者 小嗷 微信公众号 aoxiaoji 吹比QQ群 736854977 链接 https f600lt github io archives 摘要 这篇开始将从基础知识点开始一步一步QT到QT项目 原因就是读者说 QT类很多看不懂 这
  • 如何抵御ddos攻击-免费防御方法分享

    网站遭受DDOS攻击不要怕 今天来跟大家聊聊防御ddos攻击 顺便分享一些防御ddos攻击比较使用的方法 如果你是学生也不要紧 这里可以给你分享免费的防御方法 针对ddos攻击 我们升级服务器带宽配置是不起作用的 因为大部分攻击都是来自海外
  • 文心千帆为你而来

    1 前言 3月16号百度率先发布了国内第一个人工智能大语言模型 文心一言 文心一言的发布在业界引起了不小的震动 而文心一言的企业服务则由文心千帆大模型平台提供 文心千帆大模型平台是百度智能云打造出来的一站式大模型开发与应用平台 提供包括文心