当前位置:   article > 正文

文心千帆为你而来_文心千帆的主要功能

文心千帆的主要功能

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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    
    
    • 1
  • 调用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()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

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": [["第一行字符串拼接错误"]]}]
  • 1

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

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开发工具和整套开发环境,用户可以轻松使用和开发自己的大模型应用。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/76038
推荐阅读
相关标签
  

闽ICP备14008679号