乘风破浪,遇见最佳跨平台跨终端框架.Net Core/.Net生态 - 深入OpenAI与马斯克、微软的秘密,通过API轻松接入ChatGPT
什么是OpenAI
OpenAI是一家人工智能公司,成立于2015年,总部位于美国旧金山。该公司的使命是研究和开发能够产生广泛影响的人工智能技术,并将这些技术传播到整个社会。OpenAI由一些著名的科学家和企业家共同创立,包括伊隆·马斯克、Sam Altman等。该公司致力于推动人工智能技术的发展,同时也关注潜在的伦理和公共政策问题。
OpenAI和马斯克有什么关系
OpenAI是由埃隆·马斯克在2015年创立的人工智能公司之一。然而,他后来退出该公司的开发和运作,声称担心人工智能可能对人类造成的潜在威胁。尽管如此,OpenAI仍然受到马斯克的支持和投资,但他不再直接参与公司的运营和决策。
马斯克退出OpenAI是因为他和其他创始成员对于OpenAI的发展方向和策略存在不同的看法。马斯克一直强调OpenAI的开发应该有明确的安全和道德框架,以确保AI技术的未来发展是有益于人类的,而其他成员则对于这种限制比较谨慎。由于双方观点的差异,马斯克决定退出OpenAI,而OpenAI也继续沿着其自己的发展方向前进。
OpenAI和微软有什么关系
OpenAI和微软有一些联合合作项目,包括使用微软的Azure云平台来为OpenAI的研究提供计算资源和技术支持。另外,在OpenAI的董事会成员中,也有微软的高管和代表。此外,目前一些OpenAI的技术也被微软用于其产品和服务中。
微软和OpenAI之所以合作紧密,是因为两家公司拥有着共同的愿景和目标,即推动人工智能的发展并拓展其应用。另外,微软作为一个科技巨头,已经有了很强的技术和资源优势,而OpenAI则是人工智能领域的先驱和领导者,有着顶尖的人才和研究成果。通过合作,双方可以互相借鉴和合作,共同推动人工智能技术的发展,并将其应用于更多领域,包括医疗、金融、教育、自动驾驶等。此外,微软和OpenAI还有着众多共同的合作伙伴,包括谷歌、IBM等,联手合作可以更好地打造一个更具有影响力和领导力的人工智能行业。
微软和OpenAI曾在2019年宣布建立合作伙伴关系。根据该协议,微软将为OpenAI提供技术支持,并投资10亿美元作为OpenAI的首次投资款项。 微软还将成为OpenAI的首个云服务提供商,为其提供基础设施和计算能力。在这个合作框架下,微软将利用其Azure云计算服务为 OpenAI提供支持,这将有助于OpenAI开发和部署更强大的人工智能模型和解决方案,并扩大其产品和服务的市场。除此之外,微软和OpenAI 还计划联手推出一系列开源工具和技术,促进人工智能在更广泛领域的发展和创新。
微软与OpenAI合作的目的是在人工智能和自然语言处理领域共同研究和开发更先进的技术,并将其应用于各种产品和服务中。OpenAI是一个领先的人工智能研究机构,它拥有大量的数据、算法和专业知识,可以帮助微软进一步提升其人工智能技术。通过使用OpenAI的技术,微软可以提高其搜索引擎、智能助手和其他人工智能相关产品的性能和功能。此外,微软还可以将这些技术应用于其他领域,如自动化、智能制造和医疗保健,为现代社会带来切实可行的解决方案。
什么是ChatGPT
ChatGPT是一种基于自然语言处理和机器学习技术的聊天机器人。它可以与人类进行对话,并回答有关天气、新闻、娱乐、教育、旅游等各种主题的问题。ChatGPT使用了开源的GPT(Generative Pre-trained Transformer)模型,该模型是一种深度学习技术,可以在没有特定任务或目标的情况下对大量文本进行预训练,学习了解自然语言,并生成文本响应。这使得ChatGPT可以更好地理解人类语言,并产生更自然、更准确的回复。
Generative Pre-trained Transformer模型,简称GPT模型,是一种基于自然语言处理的深度学习模型。它是由OpenAI团队开发的模型系列,目前已经发布了GPT、GPT-2和GPT-3。GPT模型基于Transformer网络结构,采用的是无监督学习方式进行前期训练,即通过大量的语言数据集进行自我学习,学习文本的统计规律和语义信息,并将学习到的模型参数存储为预训练模型。在后续的学习任务中,可以基于预训练模型进行微调或fine-tune操作,以适应特定的语言处理任务,如文本分类、机器翻译、自然语言生成等方面。GPT模型已经在多个自然语言处理任务上取得了非常优秀的表现。
Transformer网络结构是一种用于处理序列数据的深度学习网络结构,最初由Google团队在2017年提出。它被广泛应用于机器翻译、文本生成、语音识别等任务中,其性能表现优于很多传统的序列模型,如循环神经网络(RNN)和卷积神经网络(CNN)。Transformer网络结构的核心是自注意力机制(self-attention mechanism),它能够捕捉每个输入在序列中的整体联系,并且避免使用传统RNN或CNN中必要的循环或卷积操作,极大地减少了计算量。由于在序列中每个输入节点都可以与其他任意节点建立联系,因此它可以获取到更加全局的信息。此外,Transformer网络结构还采用了残差连接和归一化技巧,更加有效的解决了梯度消失问题。总之,Transformer网络结构是一种高效且强大的神经网络模型,其广泛应用于自然语言处理和语音识别等领域,并在其中产生了非常优秀的表现。
ChatGPT可以做什么
ChatGPT是一个基于人工智能技术的智能聊天机器人,可以通过与用户的交互来提供以下服务:
- 回答用户的问题:ChatGPT可以回答各种领域的问题,如科学、历史、地理、文化、娱乐等,可以帮助用户快速获取相关知识和信息。
- 交流和娱乐:ChatGPT会与用户进行友好的对话,可以用幽默和风趣的方式与用户互动,为用户提供娱乐和消遣。
- 语音识别和处理:ChatGPT支持语音输入和输出,可以进行语音识别和语音合成,让用户更加方便地使用服务。
- 个性化定制服务:ChatGPT可以根据用户的需求和偏好进行个性化的定制服务,包括推荐相关内容、制定健康饮食计划等。
总之,ChatGPT是一个全方位的智能助手,可以为用户提供多种服务,帮助用户更快、更准确地获取信息,提高生活品质。
新Bing和ChatGPT的关系
新Bing是微软公司于2023年推出的一款升级版搜索引擎,它基于人工智能技术和机器学习算法打造,旨在提供更加智能化、个性化的搜索服务,优化用户的搜索体验。新Bing的机器学习技术被称为Turing模型,它是基于深度神经网络的语言模型,能够更好地理解自然语言、推断用户的意图以及呈现最相关的搜索结果。与ChatGPT有关系的是,Turing模型是基于GPT技术(Generative Pre-trained Transformer)打造的,它是用于自然语言处理的预训练神经网络,可以生成新的自然语言文本、回答自然语言问题等。因此,ChatGPT和新Bing都是基于人工智能技术的应用,都能够解决自然语言理解和生成的问题。
微软的Turing模型是一款开源的自然语言处理(NLP)软件工具包,用于构建聊天机器人、语音识别系统、智能客服等应用。通过使用该工具包,开发人员可以简单快速地创建智能对话系统,从而提高用户体验并提高工作效率。
什么是Prometheus AI
Prometheus AI是微软推出的自然语言处理(NLP)模型,它基于最先进的人工智能技术,可以进行文本生成,语言翻译,问答系统等多种NLP任务。该模型使用了大规模的预训练数据和多个深度神经网络层,可以理解和处理多种语言和语言风格。Prometheus AI还能够学习和记忆用户的习惯用语和语义,具有更好的个性化服务能力。此外,它还可以自动从语料库中提取信息并进行归纳总结,提高内容生成的速度和准确度。
与GPT 3.5的区别
Prometheus AI语言模型和GPT 3.5都是自然语言处理领域的先进技术,其主要的区别如下:
-
数据量:Prometheus AI语言模型拥有比GPT 3.5更多的数据量,据称它的数据量达到了4万亿字节,而GPT 3.5的数据量只有数十万亿字节。
-
训练方式:Prometheus AI语言模型是基于自监督的训练方式,而GPT 3.5则是基于有监督和无监督的训练方式。自监督训练是指在没有人类干预的情况下,利用大量未标记的数据进行训练。而有监督和无监督训练则需要人类对数据进行标记和监督。
-
应用场景:两者的应用场景也有所不同。Prometheus AI主要用于语言生成和理解方面的研究, 如辅助文章写作、翻译、问答等。而GPT 3.5则更加注重于语言处理和应用领域,它可以广泛地应用于自然语言生成、机器翻译、语音识别、文本分类等领域。
-
网络架构:Prometheus AI和GPT 3.5的网络架构也有所不同。Prometheus AI采用的是基于Transformer的模型,而GPT 3.5则是采用了自回归式神经网络模型(auto-regressive neural network)。
总体来说,Prometheus AI语言模型和GPT 3.5都是自然语言处理领域的先进技术,其在数据量、训练方式、应用场景和网络架构等方面的差异,决定了它们在不同领域中的应用价值和适用性。
对接OpenAI的前置工作
注册OpenAI开发者账号
- 访问OpenAI官方网站,点击"Sign up"按钮,进入注册页面。
- 在注册页面填写您的电子邮件地址和密码,然后点击“Create account”按钮。
- 您将收到一封来自OpenAI的确认邮件,请点击邮件中的链接进行确认。
- 在确认之后,您会被引导到登录页面,输入您的注册电子邮件地址和密码, 点击“Login”进行登录。
- 登录之后,请根据您的需要完成账号信息的填写,例如设置您的API密钥等。
注册完成之后,您可以使用OpenAI的API进行开发项目。
如何生成OpenAI的APIKey
- 首先,访问OpenAI的网站。
- 输入您的电子邮件地址和密码,然后单击“登录”。
- 单击页面右上角的"View API Keys"按钮。
- 在"API keys"标签下单击"Create new secret key"。
- 复制生成的APIKey,并保存好。
请注意,OpenAI的APIKey是机密信息,请务必妥善保管。
通过Postman调用ChatGPT API
调用示例
接口地址:https://api.openai.com/v1/chat/completions
请求方式:Post
请求头: Authorization: Bearer $your api key
请求内容体格式:
{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "system",
"content": "你是一个搜索引擎小助手。"
},
{
"role": "user",
"content": "什么是ChatGPT?"
}
]
}
返回结构
{
"id": "chatcmpl-6q37KnFWZ3XOZ1eciKhymvZJVh1bL",
"object": "chat.completion",
"created": 1677863058,
"model": "gpt-3.5-turbo-0301",
"usage": {
"prompt_tokens": 33,
"completion_tokens": 178,
"total_tokens": 211
},
"choices": [
{
"message": {
"role": "assistant",
"content": "ChatGPT是一个基于人工智能技术的聊天机器人,它能够与人类进行自然的对话,并能够回答问题,提供帮助,解决问题等。ChatGPT使用了GPT(Generative Pre-Trained Transformer)技术,这是一种流行的自然语言处理模型,它能够处理大规模自然语言任务,生成自然语言文本,包括文字、语音、图像等。ChatGPT可以应用于各种场景,如客户服务、在线支持、产品推广等,并能够帮助人们更快、更方便地获取信息。"
},
"finish_reason": "stop",
"index": 0
}
]
}
效果演示
调用说明
之前Open AI开放的接口都是针对text-davinci-003
模型的,现在最新API已经开放了能力更加接近ChatGPT的gpt-3.5-turbo
模型。
新的接口请求结构体中,只剩下model
和messages
组两个参数,其中model
比较好理解,这次messages
变成一个Json对象数组,而这个数组里面可以填入多个message
对象。
{
"messages": [
{
"role": "system",
"content": "你是一个搜索引擎小助手。"
},
{
"role": "user",
"content": "什么是ChatGPT?"
},
{
"role": "assistant",
"content": "ChatGPT是一个基于人工智能技术的聊天机器人。"
},
{
"role": "user",
"content": "请给我一段使用C#对接gpt-3.5-turbo模型接口的示例"
}
]
}
我们看到每一个message
中包含两个节点,一个是角色role
,它有三个值,分别是系统角色(system
)、用户角色(user
)、助理角色(assistant
),它们共同构成了整个对话的上下文信息。
所谓系统角色(system
),就是你先给这个机器人一个定位,而用户角色(user
)说的就是和机器人对话的这个人类,助理角色(assistant
)指的就是来回答人类提出的问题的这个机器人,我们可以把它叫做助理。
因为我们和这个机器人助理之间会存在多轮对话,那么我们只需要在后续对话中,将之前用户角色(user
)、助理角色(assistant
)的对话信息在messages
中带上即可,这样后面的对话就有了前面对话的上下文信息。
关于费用
注册即送免费额度
这么好的东西,当然是收费的。不过注册完,也给了一定的免费额度18美元。
在账户的Usage
标签页可以看到使用量和已记账费用。
45次模型调用才使用了0.00272美元,那么折合下来就是0.00006044美元一次,还是蛮便宜的。
单次调用计算规律
每次调用它会返回一个usage
信息
{
"usage": {
"prompt_tokens": 245,
"completion_tokens": 550,
"total_tokens": 795
}
}
其中prompt_tokens
就是输入消耗的Tokens数量,completion_tokens
是输出消耗的Tokens数量,total_tokens
就是这次对话输入输出加起来总消耗的Tokens数量。
最终它会根据tokens
的消耗来计算费用。
Token是什么
在ChatGPT中,Token是指一段文本中的最小单位,通常是一个词或一个标点符号。ChatGPT需要将输入的文本分解成许多个Token,然后将它们转化成数字,以便在训练和推理时使用。计算Token数的方法是将输入文本按空格、标点等符号进行切分,得到单独的Token,然后统计Token的数量即可。例如句子 "Hello, how are you?" 包含4个Token: "Hello", ",", "how", "are", "you"。
在ChatGPT模型中,一个模型在处理文本时有一个固定的最大输入Token数限制,如果输入的Token数量超过这个限制,则需要进行截断。这个限制通常由模型的超参数指定。在使用ChatGPT时,通常需要对输入的文本进行预处理,将其分割成符合模型要求的Token数量。
Token怎么计费
ChatGPT的Token计费方式因服务提供商而异。通常情况下,Token是通过预先购买一定数量的Token,然后在使用ChatGPT服务时,系统会扣除相应的Token数量进行计费。计费的数量取决于你对ChatGPT的使用频率和使用量,以及提供商的计费标准。有些服务提供商会根据每次对话、每个API请求或一定时间段内的使用次数来计算Token。有些提供商还根据你对ChatGPT的使用情况进行不同的费率标准。因此,在选择ChatGPT提供商时,应该根据自己的需求和预算来选择最适合自己的计费方式和提供商。