• 『抽丝剥茧』手把手快速上带你开启文心大模型的奇妙冒险


    文心大模型简介

    随着数据井喷、算法进步和算力突破,效果好、泛化能力强、通用性强的预训练大模型(以下简称“大模型”),成为人工智能发展的关键方向与人工智能产业应用的基础底座。

    百度文心大模型源于产业、服务于产业,是产业级知识增强大模型。百度通过大模型与国产深度学习框架融合发展,打造了自主创新的AI底座,大幅降低了AI开发和应用的门槛,满足真实场景中的应用需求,真正发挥大模型驱动AI规模化应用的产业价值。 文心大模型的一大特色是“知识增强”,即引入知识图谱,将数据与知识融合,提升了学习效率及可解释性。

    文心ERNIE自2019年诞生至今,在语言理解、文本生成、跨模态语义理解等领域取得多项技术突破,在公开权威语义评测中斩获了十余项世界冠军。 2020年,文心ERNIE荣获世界人工智能大会WAIC最高奖项SAIL奖。

    2022年6月,基于文心大模型的度晓晓,写作、绘画、写歌能力密集展示,全国高考作文写作得高分、作画参加西安美术学院毕业展、联合龚俊数字人推出国内首个虚拟偶像 AIGC 创作歌曲。

    ————上述内容源自百度百科文心大模型

    文心大模型ERNIE 3.0系列&&ERNIE-ViLG文生图系列

    ERNIE 3.0 系列主要是用于文本处理方向

    ERNIE-ViLG文生图系列主要是用于跨模态方向

    ERNIE 3.0 系列服务,可以处理几乎所有自然语言理解和生成的任务。提供“零样本”的直接体验功能,例如:写作文、写文案、写摘要、对对联、自由问答、写小说、补全文本等任务,还可以通过提供“小样本”数据进行模型精调,获得您的专属模型。

    ERNIE-ViLG文生图系列服务,可以体验通过文本描述来生成相应图片的能力。可以生成水彩,油画,粉笔画,卡通,蜡笔画,儿童画等不同类型的画作/图片

    ** 跨模态:模态是指数据的存在形式,比如文本、音频、图像、视频等文件格式。同一个事物的存在形式不同,导致检索的时候会出现跨模态检索来实现。

    上面的跨模态主要指的是文字转换成图像

    使用文心大模型

    网页快速体验

    ERNIE 3.0系列体验地址:https://wenxin.baidu.com/moduleApi/ernie3

    ERNIE-ViLG文生图体验地址:https://wenxin.baidu.com/moduleApi/ernieVilg

    • ERNIE 3.0体验展示:

    在这里插入图片描述

    首先选择我们需要的内容(写作文、写文案、写摘要、对对联、自由问答、写小说、补全文本等)

    然后根据我们的内容提示进行描述我们的内容。

    接着根据我们的需要进行模型参数的设置

    最后我们点击 立刻生成 按钮稍等片刻就可以得到我们的内容

    在这里插入图片描述

    生成内容后记得给内容打个分哦~~

    • ERNIE-ViLG文生图体验展示:
    • 在这里插入图片描述

    首先我们选择需要生成的类型

    接着使用文字进行描述内容即可

    最后点击 立刻生成 按钮稍等片刻就可以得到我们的图片

    在这里插入图片描述

    代码调用之ERNIE 3.0系列

    参考文档:https://wenxin.baidu.com/wenxin/docs#9l6llawo2

    安装文心库

    !pip install wenxin_api
    
    • 1

    代码调用

    注意:
    里面的wenxin_api.akwenxin_api.sk 需要替换成自己的API KeySecret key.

    API Key获取地址

    https://wenxin.baidu.com/moduleApi/key

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2c206PrX-1662118444008)(https://ai-studio-static-online.cdn.bcebos.com/82a033492d3140c8891cf0db56f299cb86ca2ddeca444df584451b382b90cfbe)]
    点击创建API key按钮即可

    直接复制对应的内容粘贴即可

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eGnIC5ZH-1662118444009)(https://ai-studio-static-online.cdn.bcebos.com/cb8f5fd74d39430d9879f4762a50dedc123111fd05c34bc1a639e3b5b25c1172)]

    参数说明

    参考地址:https://wenxin.baidu.com/wenxin/docs#dl6tgxw5f

    参数释义类型默认值取值范围是否必传说明白话说明
    text用户输入文本string[1, 1000]模型的输入文本,为prompt形式的输入。输入一个我们想要处理的问题。例:作文题目:拔河比赛
    min_dec_len最小生成长度int1[1,seq_len]输出结果的最小长度,避免因模型生成END导致生成长度过短的情况,与seq_len结合使用来设置生成文本的长度范围。根据我们实际的需求进行定义最短的长度是多少,比如文章1000字那么我们就可以设置最小长度为1000.
    seq_len最大生成长度int128[1, 1000]输出结果的最大长度,因模型生成END或者遇到用户指定的stop_token,实际返回结果可能会小于这个长度,与min_dec_len结合使用来控制生成文本的长度范围。内容输出的最大长度,例如我们要诗歌律诗什么的,那么长度就7位
    topp多样性float1.0[0.0,1.0],间隔0.1影响输出文本的多样性,取值越大,生成文本的多样性越强。就是输出内容改变程度,这个值越大我们重复的概率就越小
    penalty_score重复惩罚float1.0[1,2]通过对已生成的token增加惩罚,减少重复生成的现象。值越大表示惩罚越大。设置过大会导致长文本生成效果变差。一种惩罚机制,越大越不可能重复,但是效果会变差,建议使用默认值
    stop_token提前结束符string预测结果解析时使用的结束字符串,碰到对应字符串则直接截断并返回。可以通过设置该值,可以过滤掉few-shot等场景下模型重复的cases。文本中出现该字符则结束,用于特殊场合和需求,建议默认值
    penalty_text惩罚文本string模型会惩罚该字符串中的token。通过设置该值,可以减少某些冗余与异常字符的生成。设置的文字会减少输出
    choice_text候选文本string模型只能生成该字符串中的token的组合。通过设置该值,可以对某些抽取式任务进行定向调优。优先输出设置的内容
    is_unidirectional单双向控制开关int00或10表示模型为双向生成,1表示模型为单向生成。建议续写与few-shot等通用场景建议采用单向生成方式,而完型填空等任务相关场景建议采用双向生成方式。部分任务需要的内容,根据实际情况进行选择
    min_dec_penalty_text最小惩罚样本string与最小生成长度搭配使用,可以在min_dec_len步前不让模型生成该字符串中的tokens。与最小的长度共同使用,如果生成数据小于最小长度会激活惩罚,建议使用默认值
    logits_bias屏蔽惩罚float-10000[1, 1000]配合penalty_text使用,对给定的penalty_text中的token增加一个logits_bias,可以通过设置该值屏蔽某些token生成的概率。和惩罚文本配套,建议默认设置
    mask_type生成粒度stringword可选参数为word, sentence, paragraph设置该值可以控制模型生成粒度。生成数据的内容,是文本还是段落还是句子,以实际需要进行选择
    task_prompt

    任务类型

    数据类型:string

    默认值:空

    是否必选:否

    特别说明:指定预置的任务模板,效果更好

    可选值对应内容
    PARAGRAPH引导模型生成一段文章
    ENTITY引导模型生成词组
    Summarization摘要
    MT翻译
    Text2Annotation抽取
    Correction纠错
    QA_MRC阅读理解
    Dialogue对话
    QA_Closed_book闭卷问答
    QA_Multi_Choice多选问答
    QuestionGeneration问题生成
    Paraphrasing复述
    NLI文本蕴含识别
    SemanticMatching匹配
    Text2SQL文本描述转SQL
    TextClassification文本分类
    SentimentClassification情感分析
    zuowen写作文
    adtext写文案
    couplet对对联
    novel写小说
    cloze文本补全
    Misc其它任务
    import wenxin_api 
    from wenxin_api.tasks.composition import Composition
    
    wenxin_api.ak = "You API Key"  # 填写自己的API Key
    wenxin_api.sk = # "You Secret Key"  # 填写自己的Secret Key
    input_dict = {
        "text": "作文题目:拔河比赛\n正文:",  # 题目/内容
        "seq_len": 512,  # 文本长度(最长生成结果文本长度)
        "topp": 0.9,  # 多样性(取值越大,生成文本的多样性越强)
        "penalty_score": 1.2,  # 重复惩罚(1-2之前,通过对已生成的token增加惩罚,减少重复生成的现象)
        "min_dec_len": 128,  # 最小生成长度
        "is_unidirectional": 0,  # 单双向控制开关(0表示模型为双向生成,1表示模型为单向生成。)
        #建议续写与few-shot等通用场景建议采用单向生成方式,而完型填空等任务相关场景建议采用双向生成方式。
        "task_prompt": "zuowen"  # 任务类型
    }
    rst = Composition.create(**input_dict)
    print(rst)
    # print(rst['result'])  # 只输出内容
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    2022-09-02 17:09:24,072 - model 1: starts writing
    {'result': '星期三下午第一节课,我们在操场举行了拔河比赛。太阳火辣辣的照着大地,似乎要把大地烤焦。有些同学擦擦汗,还有几个说:“那么热,怎么能打起精神来呢?”突然,体育老师叫道:“预备--开始!”同学们卯足劲的拉着绳子,像一只只小毛驴使出全身力气往后拉。而李宁泽他们班又是最强的队伍,其它班都不敢轻易去挑战。老师喊完停以后,结果就变成了一九比零了。放学后,刚回到家里,爸爸妈妈就跟我说;明天的作文里你可要写上今天参加拔河比赛这件事哦!虽然爸爸经常会批评我,但我心理知道她这也是为了鼓励我呀!'}
    
    • 1
    • 2

    代码调用之ERNIE-ViLG文生图

    使用文档:https://wenxin.baidu.com/wenxin/docs#Pl6llwf92

    安装文心库

    # !pip install wenxin_api
    
    • 1

    代码调用

    注意: 里面的wenxin_api.ak和wenxin_api.sk 需要替换成自己的API Key和Secret key.

    API Key获取方式与上方ERNIE 3.0相同

    参数说明:

    参数名类型是否必传描述
    textstring输入内容,长度不超过64个字
    stylestring图片风格,目前支持风格有:油画、水彩画、卡通、粉笔画、儿童画、蜡笔画
    import wenxin_api 
    from wenxin_api.tasks.text_to_image import TextToImage  
    
    wenxin_api.ak = "You API Key"  # 填写自己的API Key
    wenxin_api.sk = "You Secret Key"  # 填写自己的Secret Key
    input_dict = {
        "text": "超级月亮,元宇宙风",  # 文字描述内容
        "style": "水彩"  # 生成风格
    }
    rst = TextToImage.create(**input_dict)
    print(rst)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    2022-08-30 23:07:55,580 - model is painting now!, taskId: 1088386, waiting: 1m
    2022-08-30 23:08:15,774 - model is painting now!, taskId: 1088386, waiting: 30s
    {'imgUrls': ['https://wenxin.baidu.com/younger/file/ERNIE-ViLG/670fa2538559cd8aeddef01ab2088e5bex', 'https://wenxin.baidu.com/younger/file/ERNIE-ViLG/670fa2538559cd8aeddef01ab2088e5bi4', 'https://wenxin.baidu.com/younger/file/ERNIE-ViLG/670fa2538559cd8aeddef01ab2088e5b5q', 'https://wenxin.baidu.com/younger/file/ERNIE-ViLG/670fa2538559cd8aeddef01ab2088e5b30', 'https://wenxin.baidu.com/younger/file/ERNIE-ViLG/670fa2538559cd8aeddef01ab2088e5bv9', 'https://wenxin.baidu.com/younger/file/ERNIE-ViLG/670fa2538559cd8aeddef01ab2088e5ba2']}
    
    • 1
    • 2
    • 3

    图片下载

    import requests
    
    img_names = []
    for i in rst['imgUrls']:
        img = requests.get(i)
        img_name = i.split('/')[-1]+'.png'
        img_names.append(img_name)
        with open(img_name, 'wb')as f:
            f.write(img.content)
    print("下载完成")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    下载完成
    
    • 1

    图片展示

    from PIL import Image
    import matplotlib.pyplot as plt
    %matplotlib inline
    
    img_ = Image.open(img_names[0])
    plt.show()
    plt.imshow(img_)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    
    
    • 1

    请添加图片描述

    总结

    以上就是我们文心大模型的基础使用,还有一些神奇的使用方法等待大家的探索~~~

    作者简介

    作者:三岁
    经历:自学python,现在混迹于paddle社区,希望和大家一起从基础走起,一起学习Paddle
    csdn地址:https://blog.csdn.net/weixin_45623093/
    我在AI Studio上获得至尊等级,点亮9个徽章,来互关呀~ https://aistudio.baidu.com/aistudio/personalcenter/thirdview/284366

  • 相关阅读:
    【TI毫米波雷达笔记】MMwave毫米波雷达API配置及驱动(以IWR6843AOP为例)
    反射与枚举
    【机器学习】线性分类【上】广义线性模型
    【OpenCV-PyQt5-PyGame-imutils】探索Python中的图像和视频捕获:性能分析与选择指南
    Python定时操控电脑
    css高级 使用
    《熬夜整理》保姆级系列教程-玩转Wireshark抓包神器教程(1)-初识Wireshark
    【iOS】锁
    Linux——操作进程状态
    新知同享 | Web 开发性能提升,优化体验
  • 原文地址:https://blog.csdn.net/weixin_45623093/article/details/126669341