了解大模型

在懒猫的认知中, 大模型就是由海量数据堆积而成的模型, 它可以对大量的数据进行分析, 并得出有意义的结论。
在我们的日常使用中,也是对ai模型的使用, 如搜索引擎、推荐系统、图像识别、语音识别等。
本质需求: 我们提出需求,希望ai能充分的理解需求, 并给出有意义的结论或最终我们想要的结果。

但别人的大模型都是在海量数据上训练的, 并不是每个人都有那么多的海量数据, 所以,如何使用大模型, 如何快速的训练自己的大模型, 如何快速的使用自己的大模型, 这些都是需要我们去探索的。

如何使用百度大模型

首先,你需要有一个百度账号,然后去百度智能云 进行登陆。
使用

  • 百度智能云千帆大模型 【对所选择的大模型负责 进行训练,调整,评估,优化 从而变成属于你希望样子的模型,更好的为你的达成你的目标】
  • 百度智能云千帆AppBuilder 【可以根据选择的大模型,再根据指令,扩展的组件,知识库,数据库 简单就完成一个ai原生应用搭建】

训练一个自己的大模型

首先一个大模型的训练是要很多数据支撑,着就意味着需要有大量的训练数据,同时不小的花销。如果非必需还是可以使用平台所给的大模型。
以上是建议

  1. 百度智能云千帆大模型平台 你训练大模型就需要一个数据集,数据集的准备工作是十分重要的,需要你对数据有一定的理解,并进行数据清洗,数据增强,数据划分等工作。

类似如下数据集,基本是一问一答的形式,每一问都对应一个答案,每一问都有多个选项,选项之间是有关联的,所以,训练一个大模型,需要你对数据有一定的理解,并进行数据清洗,数据增强,数据划分等工作。且需要不同的关于数据集的理解角度。

1
[{"prompt": "请根据下面的新闻生成摘要, 内容如下:3月12日,最高人民法院院长周强作最高人民法院工作报告。周强表示,去年各级法院再审改判刑事案件1317件,其中纠正一批重大冤假错案。对错案的发生,我们深感自责,要求各级法院深刻汲取教训……更多工作报告要点详见↓\n生成摘要如下:"}]
  1. 有了数据集就需要标注,一般平台会标注好大部分,少部分无标准,求稳的情况最好把一问一答的内容都看一遍,看是否根据问题回答是否满意,不满意进行手动修改标注。直到全部标注完毕,数据集就准备好了。

  2. 完成1-2步骤 后就可以进行 自己的大模型 训练了。在模型精调中使用sft创建sft作业, 进到里面,你可以可视化看到 你选择哪一种基础模型当你的大模型地基,然后选择大型的版本,调整训练配置(具体配置不描述,可以去官方看文档),数据配置就是我们刚刚进行标注完成的数据集,点击确定按钮即可,等待大模型等训练完成。

  3. 训练完成后,一个初步属于你模型就初步成型,当然不可能一下就完美后面可以根据模型评估,和实际调用,慢慢在对自己的大模型进行优化调整,直到你自己满意为止。

构建一个ai原生应用搭建

  1. 来到 百度智能云千帆AppBuilder, 点击创建应用
    里面有应用的
  • 基本进行配置(logo,名称,描述);
  • 角色指令(请输入希望角色完成的任务目标、具备的组件能力以及对输出答案的要求与限制等);
  • 组件(选择你想要的组件,并进行配置,比如选择语音识别,图像识别,搜索引擎等);
  • 知识库(可以选择你自己的数据集,也可以选择平台提供的知识库);
  • 数据库(可以选择你自己的数据集,也可以选择平台提供的数据库);
  • 选择需要运用到的大模型(可以选择你自己训练的模型,也可以选择平台提供的模型);
  • 完成后点击创建应用,等待应用创建完成。

通俗讲解下

  • 说重点首选如果你已经训练好自己的大模型那肯定使用自己训练好的大模型, 这时你的大模型就好比一个刚刚学习玩的一个学生有着自己的认知和对某一门科目的理解与看法。

  • 其次就是组件的选择尤为重要,就好比 学生根据不同需要穿上不通的装备来达成不同的目的,选择合适的组件,才能达到目的。
    比如: 你需要ai原生应用 要读懂你提交的文件文档 这时你的大模型(也就是学生)不知道怎么去读你给文件因为,他不知道如何怎么去打开它,这时你就要给他一个组件,也就是一个可以打开文件并读懂的组件,这样他才能读懂你提交的文件文档。 在百度智能云千帆AppBuilder 可以选择 代码解释器,通过代码语言去读文件内容,然后大模型在根据文件内容 回答你要的答案。
    同理:文生图,图声文字,语音识别,图像识别,搜索引擎等等,都是需要特定的组件变成大模型理解的文意,在通过这些组件反向或正向反馈与你。

  • 上面说的组件,其实也就是通俗意义的工作流,对要做的事情的动作进行拆分组合,最终变成完整的一套动作的流程,在百度也叫组件。

如何使用搭建好的ai原生应用

点击发布,然后编辑,在发布详情中获得多种发布渠道,然后进行使用。

但以上都是有局限性,但还有api调用,相信做开发的都明白有这个基本就嫁接到自己的软件或平台都十分的简单。
以下就说下如何调用api。
调用api,其实也是就是我们对自己api进行访问,然后进行提问,ai在进行回答;所以需要api也就3个完全满足需求。api文档地址

  1. 建立会话:首选建立会话,ai才知道它是跟那一个人进行沟通,后续的对话才有意义。
  2. 文件上传:主要是对上传文件进行处理,比如语音识别,图像识别,文本识别等。然后根据文件进行回复
  3. 大模型对话: 基本就是一问一答,根据问题进行回答,然后根据回答进行下一步的操作。

建立会话 请求curl 示例

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

# 接口定义
# URL /v2/app/conversation
# Method POST
# Content-Type application/json
# Authorization 请求签名(此签名为应用工作台密钥)

# 参数
# app_id 是你创建的应用的id


curl --location 'https://qianfan.baidubce.com/v2/app/conversation' \
--header 'Authorization: Bearer authorization string' \
--header 'Content-Type: application/json' \
--data '{
"app_id": "85036d8f-239c-469c-b342-b62ca9d696f6"
}'


## 正确响应示例
# 响应参数
# 字段 类型 是否必 说明
#request_id string 是 request_id
#conversation_id string 是 对话id,可以用于后续调用,有效期为7天。

HTTP/1.1 200 OK
{
"request_id": "355a4f4e-a6d8-4dec-b840-7075030c6d22",
"conversation_id": "2370813b-5303-4a4f-b5cc-44f571121342"
}

文件上传 请求curl 示例

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
#接口定义
#URL /v2/app/conversation/file/upload
#Method POST
#Content-Type mutlipart/form-data
#Authorization 请求签名(此签名为应用工作台密钥)

#请求参数
#字段 类型 是否必须 说明
#app_id string 是 app_id,来源于个人空间-应用-应用ID
#file file 是 文件
#conversation_id string 是 对话id,本轮对话id,本文件只对该conversation_id有效。


curl --location 'https://qianfan.baidubce.com/v2/app/conversation/file/upload '
--header 'Authorization: Bearer authorization string'
--form 'file=@"GBSJEEB-5/test.jsonl"'
--form 'app_id="85036d8f-239c-469c-b342-b62ca9d696f6"'
--form 'conversation_id="355a4f4e-a6d8-4dec-b840-7075030c6d22"'


#响应参数
#字段 类型 必然存在 说明
#request_id string 是 request_id
#id string 是 已上传文件id,该id后续可以在对话接口的file_ids字段中填入。
#conversation_id string 是 对话id


HTTP/1.1 200 OK
{
"request_id": "355a4f4e-a6d8-4dec-b840-7075030c6d22",
"id": "1a1385ca-91ff-4b71-bb2a-048db17507c6",
"conversation_id": "355a4f4e-a6d8-4dec-b840-7075030c6d22"
}

大模型对话 请求curl 示例

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
#接口定义
#URL /v2/app/conversation/runs
#Method POST
#Content-Type application/json
#Authorization 请求签名(此签名为应用工作台密钥)


#请求参数
#字段 类型 必填 说明
#app_id string 是 app_id,来源于个人空间-应用-应用ID。
#query string 是 用户query文字, 长度限制2000字符。
#stream bool 是 是否以流式接口的形式返回数据,默认false。
#conversation_id string 是 对话id,可通过新建会话接口创建。
#file_ids list[string] 否 如果在对话中上传了文件,可以将文件id放入该字段,目前只处理第一个文件。


POST /v2/app/conversation/runs HTTP/1.1
HOST: qianfan.baidubce.com
Authorization: authorization string
Content-Type: application/json

{
"app_id": "85036d8f-239c-469c-b342-b62ca9d696f6",
"query": "根据文件中的数据,统计这几所学校小学生有多少",
"stream": true,
"conversation_id": "355a4f4e-a6d8-4dec-b840-7075030c6d22",
"file_ids": [
"cdd1e194-cfb7-4173-a154-795fae8535d9"
]
}

一个实际使用思维导图例子