你是否热衷于AI科技的最新动态?你是否觉得AI无比神秘,却不知如何挖掘其深度?或者,你是否期望精通大模型技术,然而无法找到一条完整的学习路径?有幸的是,我们为你准备了一门别开生面的课程 - "AIGC深度训练营:大型模型工程师与产品专家在线版"。这将是你步入AI领域先河的助推器,引领你在大模型领域站稳脚跟!马上加入我们的AIGC在线Demo课程,感受AI的无限魅力!
在12月15日,我们即将启动第五期的AIGC深度训练营!在此课程中,你将从无到有,逐步走进大模型的核心领域。课程内容涵盖自然语言处理、计算机视觉、推荐系统等多个细分领域。
接口(Interface)
在技术领域,接口起到了连接与沟通的重要作用。常见的接口主要有以下两种:
人机交互接口(User Interface,简称 UI):负责人与机器之间的互动。人们根据UI的设计进行操作,而UI的设计则需要符合人类的习惯和直觉。 应用程序编程接口(Application Programming Interface,简称 API):负责不同程序之间的调用和协作。程序按照API的规范进行调用,API的设计则需要满足程序的通用惯例。 你是否曾经遇到过调用接口时的种种困扰?例如,文档不明确、大小写敏感、参数顺序或类型错误等。这些都可能导致接口调用失败或产生意想不到的结果。
接口的进化历程:
UI方面:
命令行界面(Command Line Interface,简称 CLI):如DOS、Unix/Linux shell以及Windows Power Shell。 图形界面(Graphical User Interface,简称 GUI):如Windows、MacOS、iOS和Android等操作系统采用的界面。 语言界面(Conversational User Interface,简称 CUI)或自然语言用户界面(Natural-Language User Interface,简称 LUI)。 脑机接口(Brain-Computer Interface,简称 BCI)。 UI的进化趋势是逐渐适应人的习惯,变得越来越自然和直观。
API方面:
从本地到远程,从同步到异步,虽然媒介发生了变化,但其核心仍然是程序员之间的约定。 目前,API开始进化到自然语言接口(Natural-Language Interface,简称 NLI)的阶段。 自然语言连接一切(Natural Language Interface)
NLI是一个我们在先前的文章中提出的概念,它指的是以自然语言为输入的接口。随着用户操作习惯的转变,未来的软件都需要提供“自然语言界面”,即NLI。这意味着不仅用户界面需要NLI,API也同样需要NLI化。因为用户发出的宏观指令往往需要多个软件和设备的协同工作来完成。
一种实现方法是拥有一个强大的入口AI(如Siri、小爱同学或机器人管家),它能充分了解所有软件和设备的能力,并能准确地将用户任务进行拆解和分发。这对入口AI的要求非常高。
另一种方法是入口AI在接收到自然语言指令后,通过NLI将其广播出去(也可以基于某些规则进行有选择的广播以保护用户隐私),然后由各个软件自主决定是否接受该指令,如果接受,需要如何执行以及需要与哪些其他软件进行协作。
当NLI成为实际的标准后,互联网上软件和服务之间的互通性将得到极大的提升,不再受到各种协议和接口的限制。最自然的接口就是自然语言接口。过去因为计算机不能处理自然语言,我们创造了那么多的编程语言、接口、协议和界面风格。而且,它们的每一次进化都是为了变得更“自然”。现在,终极的自然已经到来,我们终于可以将计算机当作一个真正的人来与之交流了。
Plugins 和 Actions 是什么
Plugins 和 Actions 是为了扩展大模型(如ChatGPT)的功能而设计的工具。由于大模型存在两大缺陷:没有最新信息和没有真逻辑,因此需要一种方法来连接真实世界并对接真逻辑系统。这就是Plugins和Actions的用途所在。
Plugins:
是一种扩展工具,可以为大模型添加新的功能或数据源。 例如,通过天气插件,大模型可以查询实时天气信息。 另一个例子是使用Wolfram Alpha插件进行高级数学计算。 Actions:
可以看作是Plugins的升级版。 是GPT产品的一部分,但在某些时候可能还没有完全推出。 与Plugins的主要区别可能在于其集成度和功能范围,但核心概念相似。 工作原理:
当你向大模型发出指令或查询时,它会检查是否有与你的请求匹配的插件或动作。如果有,它会调用相应的插件或动作来执行你的请求,然后返回结果。
Plugins开发:
开发Plugins相对简单,主要需要定义两个文件:yourdomain.com/.well-known/ai-plugin.json 和 openai.yaml。其中,ai-plugin.json描述插件的基本信息,而openai.yaml描述插件的API。OpenAI的AI系统会读取这两个文件,了解如何与你的插件进行交互。
这是一个名为"Sport Stats"的官方插件例子,其功能是获取体育运动员和比赛的当前和历史统计数据。
ai-plugin.json文件包含了插件的基本信息:
schema_version: 配置文件的版本。 name_for_human: 插件的用户友好名称。 name_for_model: 插件在ChatGPT模型中的唯一标识符。 description_for_human: 插件功能的描述,用于在插件市场展示给用户。 description_for_model: 插件功能的描述,ChatGPT会分析这个字段,确定何时调用插件。 auth: API认证方式,此处为"none",表示不需要认证。 api: API相关信息,包括类型和Swagger API文档地址。 logo_url: 插件的Logo地址。 contact_email: 插件官方的联系邮件。 legal_info_url: 与插件相关的法律信息链接。 openapi.yaml文件则描述了插件的API接口:
openapi: 使用的OpenAPI版本号。 info: API的基本信息,如标题、描述和版本。 servers: API服务器的URL。 paths: API的路径和操作,包括获取所有球员、获取所有球队和获取所有比赛等。每个路径下都有相应的GET操作和相关参数、响应描述等。 这个例子中展示了如何定义一个用于体育统计数据的插件,并通过OpenAPI文档来描述其API接口。ChatGPT可以通过读取这些配置和API文档来了解插件的功能和使用方法,并在需要时调用插件来获取相关数据。
看个官方例子。
ai-plugin.json :
{ "schema_version": "v1", //配置文件版本
"name_for_human": "Sport Stats", //插件名字,给用户看的名字
"name_for_model": "sportStats", //插件名字,给ChatGPT模型看的名字,需要唯一
"description_for_human": "Get current and historical stats for sport players and games.", //描述插件的功能,这个字段是在插件市场展示给用户看的
"description_for_model": "Get current and historical stats for sport
players and games. Always display results using markdown tables.", //描述插件 的功能,ChatGPT会分析这个字段,确定什么时候调用你的插件
"auth": { "type":
},
"api": { "type":
"none" //这个是API认证方式,none 代表不需要认证
"openapi",
"url": "PLUGIN_HOSTNAME/openapi.yaml" //这个是Swagger API文档地址,ChatGPT 通过这个地址访问我们的api文档
},
"logo_url": "PLUGIN_HOSTNAME/logo.png", //插件logo地址
"contact_email": "support@example.com", //插件官方联系邮件
"legal_info_url": "https://example.com/legal" //与该插件相关的legal information
}
openapi.yaml :
openapi: 3.0.1
info:
title: Sport Stats
description: Get current and historical stats for sport players and games. version: "v1"
servers:
- url: PLUGIN_HOSTNAME
paths:
/players:
get:
operationId: getPlayers
summary: Retrieves all players from all seasons whose names match the
query string.
parameters:
- in: query
name: query
schema:
type: string
description: Used to filter players based on their name. For
example, ?query=davis will return players that have 'davis' in their first
or last name.
responses:
"200":
description: OK
/teams:
get:
operationId: getTeams
summary: Retrieves all teams for the current season.
responses:
"200":
description: OK
/games:
get:
operationId: getGames
summary: Retrieves all games that match the filters specified by the
args. Display results using markdown tables.
parameters:
- in: query
name: limit
schema:
type: string
description: The max number of results to return.
- in: query
name: seasons
schema:
type: array
items:
type: string
description: Filter by seasons. Seasons are represented by the
year they began. For example, 2018 represents season 2018-2019.
- in: query
name: team_ids
schema:
type: array
items:
type: string
description: Filter by team ids. Team ids can be determined using
the getTeams function.
- in: query
name: start_date
schema:
type: string
description: A single date in 'YYYY-MM-DD' format. This is used to
select games that occur on or after this date.
- in: query
name: end_date
schema:
type: string
description: A single date in 'YYYY-MM-DD' format. This is used to
select games that occur on or before this date.
responses:
"200":
description: OK
/stats:
get:
operationId: getStats
summary: Retrieves stats that match the filters specified by the args.
Display results using markdown tables.
parameters:
- in: query
name: limit
schema:
type: string
description: The max number of results to return.
- in: query
name: player_ids
schema:
type: array
items:
type: string
description: Filter by player ids. Player ids can be determined
using the getPlayers function.
- in: query
name: game_ids
schema:
type: array
items:
type: string
description: Filter by game ids. Game ids can be determined using
the getGames function.
- in: query
name: start_date
schema:
type: string
description: A single date in 'YYYY-MM-DD' format. This is used to
select games that occur on or after this date.
- in: query
name: end_date
schema:
type: string
description: A single date in 'YYYY-MM-DD' format. This is used to
select games that occur on or before this date.
responses:
"200":
description: OK
/season_averages:
get:
operationId: getSeasonAverages
summary: Retrieves regular season averages for the given players.
Display results using markdown tables.
parameters:
- in: query
name: season
schema:
type: string
description: Defaults to the current season. A season is
represented by the year it began. For example, 2018 represents season 2018-
2019.
- in: query
name: player_ids
schema:
type: array
items:
type: string
description: Filter by player ids. Player ids can be determined
using the getPlayers function.
responses:
"200":
description: OK
description 的内容非常重要,决定了 ChatGPT 会不会调用你的插件,调用得是否正确。
Plugins的市场表现经历了起起伏伏。从最初的发布到逐步向用户开放,再到因安全原因进行的调整,其发展历程并不是一帆风顺的。媒体曾将其与App Store相提并论,但由于一系列的问题,Plugins并未达到预期的市场契合点。
对于Plugins的失败,有几个主要原因:
使用成本高:由于缺少“强Agent”调度,用户需要手动选择插件,这增加了使用的复杂性。 不在“场景”中:Plugins不能为用户提供端到端的一揽子服务,因此在实际应用中存在局限性。 开销大:使用Plugins涉及到多次GPT-4生成和Web API调用,这增加了其运营成本。 而GPTs为了解决这些问题,正在采取以下措施:
为每个GPT定义特定场景,如“写代码”、“教小孩数学”等,使其更具针对性。 通过GPT绑定的Actions来自动调用相关功能,简化agent的调度过程。 提高GPT-4的速度并降低其成本。 对于开发者而言,可以利用GPTs进行以下操作:
开发自己的Actions,并搭建自己的GPTs。 使用Assistants API来创建独立的智能应用。 此外,当涉及到Function Calling时,开发者需要注意OpenAI已经在接口中废弃了“functions”这一称呼,转而使用了“tools”。这也是开发者在创建智能应用时需要注意的一个细节。
开发者可以通过调用本地函数来增强AI的功能,确保其能够精确处理加法等问题。这也是利用Function Calling机制的一个实际应用场景。
我们的讲师团队是由经验丰富的Aiden博士带领的,他在AIGC大模型的实战领域有着丰富的经验,其深入浅出的课堂气氛深受学员们的欢迎。
我们的开发团队由近屿智能AI大模型实验室的资深工程师组成,他们在大模型增量预训练和微调方面具有深厚的实战经验和前沿的技术视角。他们愿意分享他们的知识和经验,帮助你在AIGC的世界里稳步前行,成为真正的专家。
参与我们的训练营,你将获得:
职场优势:在AI技术广泛应用的今天,掌握大模型的知识和技能可以让你在求职市场中站稳脚跟。
技能提升:理解大模型的工作原理和应用方式可以帮助你在工作中更有效地利用这些工具,无论是数据分析、产品开发还是业务决策。
核心竞争力:掌握大模型的开发和微调技术,不仅可以让你在当前市场上拥有炙手可热的技能,而且可以让你具备解决复杂问题的能力,这对于建立自己的核心竞争力至关重要。
前沿技术领域的参与:学习并掌握AI大模型技术,这意味着你能够参与到最新的技术发展中,维持你的技能先进性和对行业的洞察力。
职业发展的多样性:随着AI技术的快速发展,相关的工作岗位也在不断增加和变化。掌握大模型相关技能,将让你在多个领域找到发展机会。
课程结束你将获得:
无限重学机会:一年内随时可以参加新的直播课程,确保你完全掌握技能。
真实项目实战:打造一个行业级别的AI Agent,三个项目供你选择,提升实战经验。
顶级导师1V1指导:优秀项目有机会获得行业导师独家指导,直接对接投资机构,帮助你的AI梦想起飞。
优质社群交流:顶级投资人、教授、博士、优秀程序员等在内的OJAC Club社区,与大神们近距离交流,碰撞思想火花。
别再犹豫,赶快参加我们的直播试听课吧!12月15日,开启你的AI之旅。
为你参与的学员们,我们准备了让人心动的奖励!
现在扫码报名即可领取大模型电子书!
参与上海近屿智能科技的直播demo试听课程,更有机会获得与AIGC培训课程相关的精美礼品包!