即使你不是人工智能专业的学生,只是一名刚开始学习编程的入门程序员,你也可以基于源1.0大模型开放的API接口开发出好用的AI陪练机器人,让他作为一个助手,培养人的技能不断提高。
聊天机器人使用对话式人工智能(AI)技术,让机器以自然语言与人类用户沟通。这已普遍应用在不少网站与移动应用程序。但是往往因为让机器人充当一个“专家”,但是它的能力并不能达到专家的水平,也被很多人吐槽“人工智障”、“答非所问”。
如果我们逆向思维一下。不让机器人当专家,当“无所不能”的智者,它就是个普通的顾客,甚至有可能说话颠三倒四,那么这样的“顾客”对于人类说有没有用呢?
是有用的。
所有进行“人”的服务的人,比如销售、心理咨询师,甚至企业管理者,普通人,都是要在“环境中”不断练习,才能提高自己的沟通和技能。而找人来练习并不一定能够随时找到,我们可以让机器人来充当“顾客”,这个“顾客”可能是“戏精”、“刺头”或者“颠三倒四”的人。
基于中文预训练大模型浪潮源1.0的API,对充当顾客的这样一个机器人进行人格、背景知识的设定,它就可以担当一个合格的“顾客”,来陪着真人进行对话演练,来提高人的对话技巧和技能水平。
详细使用方法。
第一步,你需要获得使用的授权,在源官网(https://air.inspur.com/home)进行注册和申请,等待工作人员审核通过,就能获得源1.0的推理API服务。目前源开放上线了三款百亿参数规模的模型,分别是基础模型、对话模型和翻译模型。基础模型是一个通用的预训练语言模型,它的能力比较广泛,可以应对中文NLP领域的大多数任务。但正因为它比较通用,就像一个从小学已经学完高中完成会考的学生,语数英物化史地生样样精通,但它也只是一个高中生的水平,在某些专有领域还达不到大学生的水平。而技能模型是在基础模型的基础上进行数据增强训练,所以在专有的领域能力更高,但是也损失了它的通用性,比如对话模型是面向人机对话领域,而翻译模型是面向中英文翻译领域。
第二步,你要准备基础的开发环境,比如安装python和必要一些依赖库。安装python语言和集成开发环境软件,如pycharm或Visual Studio Code等,可以通过pip来安装所需的依赖库(requests、hashlib、json),如果你不是首次进行编程,相信这些软件和库都已经安装在你的电脑中了。如果你学习的不是python语言,而是另外的语言,原理也是一样的,同样可以使用源的开放API,只不过就无法直接使用源官方开源出来的示例代码,而需要自己从头写示例程序。
第三步,下载示例代码。开发环境准备妥当后,你可以直接下载源在Github开源的示例代码。
第四步,将下载下来的文件进行解压,将Yuan_api文件夹导入python工程中。Yuan_api跟目录下主要包含两个类文件,一个类是Inspurai.py,一个类是url_config.py。
Inspurai.py包括两个函数,一个是Yuan模型,一个是Example示例,Yuan模型是用来实例化Yuan推理API的超参数,而Example是源官方提供的各种examples程序,比如作诗、对话等。
url_config.py完成对源的远程线上调用操作,其中包括了提交查询Submit_request()和查询结果Reply_request()两个函数,这两个函数封装成了一个接口函数submit_API()。所以用户不必关心Submit_request()和Reply_request()的细节,只需要使用submit_API()函数进行远程调用Yuan的推理API即可。
图1 核心类
第五步,运行examples示例程序,体验源1.0的基本功能。只需要在示例程序中填写上用户名和手机号,程序就可以编辑执行了。
当然,也可以直接在url_config.py文件中直接配置用户名和手机号。
第六步,开发自己的AI应用。当你不满足于只运行官方提供的示例,想开发自己的AI应用的话,那么你可能会用到下面的一些方法啦。
- 调整Yuan实例的超参数。不同的超参数设定,会影响模型生成的效果,所以不同的应用场景和任务会有“最优”的一组超参数设定。参数的详细说明见《用户手册》。
- 创建样例实例。预训练阶段源模型见过了不少任务,但也不能保证目前的目标任务是它能够精准理解的。针对目前要完成的目标任务,有时需要给几个样例(few-shot)给到源模型,它才能明白目前的任务。实例的数量可以是1个或者多个,但样例tokens数都是算在输入tokens数的,输入总tokens数不能超过2048。
样例可以分为不同的类型,一类是“输入输出”型样例,即给定这样的输入文本,期待模型生成输出文本。比如:输入是“夸我”,输出是“从您的言谈中可以看出,我今天遇到的是很有修养的人。”
一类是“背景知识”型样例,即给定这样的背景知识,期待模型基于这样的背景知识生成输出文本。比如,背景知识为“我今年53岁,有23年糖尿病史,入院已1周,目前感觉自身状况良好。入院前一段时间我睡至后半夜时有下肢抽筋,疼痛难忍不能缓解。”
- 对输入文本进行前处理,对输出文本进行后处理。同样的语义,输入文本格式不同,预训练语言模型会产生不同的输出,所以对输入文本进行前处理,如增加背景知识,调整文本格式等,都可以显著提高模型的生成结果。同时对于模型产生的结果进行后处理,比如截断,去处无意义符号等后处理,可以让结果具备更高的可读性和质量。
已经有开发者开发了AI剧本杀虚拟人,AI虚拟演员,AI虚拟病人,问答机器人,文案自动生成器,邮件自动写作,夸夸机器人,抬杠机器人,辩论机器人等应用,你也可以发挥你的创意,给源三条样例,开发一个AI应用。