简介
OpenAI
一个美国人工智能研究实验室,由非营利组织 OpenAI Inc,和其营利组织子公司 OpenAI LP 所组成。该组织于 2015 年由萨姆·阿尔特曼、里德·霍夫曼、杰西卡·利文斯顿、伊隆·马斯克、伊尔亚·苏茨克维、沃伊切赫·萨伦巴、彼得·泰尔等人在旧金山成立,他们共同认捐了 10 亿美元。微软先后支付了百亿美元投资,用于独家授权使用 GPT-4
ChatGPT
全称聊天生成预训练转换器(英语:Chat Generative Pre-trained Transformer),是 OpenAI 开发的人工智能聊天机器人程序,于 2022 年 12 月推出。该程序使用基于 GPT-3.5、GPT-4、GPT-4o 架构的大型语言模型并以强化学习训练。可以实现自动生成文本、自动问答、自动摘要、编写和调试计算机程序等多种任务。
GPT
GPT-3.5
GPT-3.5 Turbo 模型可以理解并生成自然语言或代码,并已针对使用聊天完成 API 的聊天进行了优化,但也适用于非聊天任务。自 2024 年 7 月起,应使用 gpt-4o-mini 代替 gpt-3.5-turbo,因为它更便宜、功能更强大、多模式且速度同样快。
GPT-4
GPT-4 是一个大型多模态模型(接受文本或图像输入并输出文本),由于其更广泛的常识和先进的推理能力,它可以比我们以前的任何模型更准确地解决难题。GPT-4 可在 OpenAI API 中向付费客户提供。与 gpt-3.5-turbo 一样,GPT-4 针对聊天进行了优化,但也适用于使用聊天完成 API 的传统完成任务。
GPT-4o
GPT-4o(“o”代表“omni”)是我们最先进的型号。它是多模式的(接受文本或图像输入并输出文本),具有与 GPT-4 Turbo 相同的高度智能,但效率更高 - 它生成文本的速度快 2 倍,成本便宜 50%。此外,在我们的所有模型中,GPT-4o 在非英语语言方面具有最佳的视觉和性能。
GPT-4o mini
GPT-4o mini(“o”代表“omni”)是我们小型型号类别中最先进的型号,也是我们迄今为止最便宜的型号。它是多模式的(接受文本或图像输入并输出文本),比 gpt-3.5-turbo 具有更高的智能,但速度同样快。它旨在用于较小的任务,包括视觉任务。我们建议您选择 gpt-4o-mini,因为该型号功能更强大且更便宜。
文本生成模型使用建议
模型 |
价格 1M tokens |
特点 |
gpt-4o-mini |
|
gpt4o 加速廉价版本 日常任务推荐 |
gpt3.5-turbo |
|
gpt4 上一代 廉价代替模型 |
gp4o |
|
提高速度 能力弱于 gpt4 |
gpt4-turbo |
|
gpt4 的加速版本 |
gpt4 |
|
推理能力强 训练数据规模大 |
DALL·E
DALL·E 是一个人工智能系统,可以根据自然语言的描述创建逼真的图像和艺术。DALL·E 3 目前支持根据提示创建具有特定尺寸的新图像的功能。DALL·E 2 还支持编辑现有图像或创建用户提供的图像的变体的功能。
霍格沃兹测试开发学社 AI 服务
Text to speech
TTS (Text to speech) 是一种人工智能模型,可将文本转换为听起来自然的语音文本。我们提供两种不同的模型变量,tts-1 针对实时文本到语音用例进行了优化,tts-1-hd 针对质量进行了优化。这些模型可与音频 API 中的语音端点一起使用。
Whisper
Whisper 是一种通用语音识别模型。它是在各种音频的大型数据集上进行训练的,也是一个多任务模型,可以执行多语言语音识别以及语音翻译和语言识别。Whisper v2-large 模型目前可通过我们的 API 获得,模型名称为 Whisper-1。目前,Whisper 的开源版本和通过我们的 API 提供的版本没有区别。然而,通过我们的 API,我们提供了优化的推理过程,这使得通过我们的 API 运行 Whisper 比通过其他方式运行要快得多。
whisper /Users/seveniruby/ceba/ai_v2_kg/data/bytedance.mp4
Detecting language using up to the first 30 seconds. Use `--language` to specify the languageDetected language: Chinese[00:00.000 --> 00:02.000] 吉智公云 吉智收获[00:30.000 --> 00:32.000] 吉智 吉智收获[01:01.000 --> 01:08.000] 一頓操作猛如虎 屏幕輸出2.5[01:20.000 --> 01:22.000] 強刷等在不如不在[01:31.000 --> 01:36.000] 上班摸魚 越摸越魚[01:41.000 --> 01:42.000] 怎麼樣 好吃嗎[01:43.000 --> 01:45.000] 好吃好吃 太好吃了[01:46.000 --> 01:49.000] 假如每個人頭上都戴了側晃泥[01:51.000 --> 01:53.000] 這件衣服適合我嗎
[01:54.000 --> 01:56.000] 適合 特別好看
Embeddings嵌入是文本的数字表示,可用于衡量两段文本之间的相关性。嵌入对于搜索、聚类、推荐、异常检测和分类任务很有用。
基于 Embeddings 的 RAG 检索增强生成
Sora
Sora 是一个 AI 模型,可以根据文本指令创建现实且富有想象力的场景。
{style="flex: 2"}
ChatGPT 使用方式
命令行使用
pip install openai
openai api chat.completions.create -m gpt-4o-mini -g user ceshiren.com是做什么的
Ceshiren.com 是一个专注于软件测试和开发的综合性平台,提供了一系列与自动化测试、性能测试、接口测试等相关的工具和资源。它还可能有社区论坛,用户可以在这里分享经验、解决问题和讨论相关主题
通过编程语言的 Library 使用
from openai import OpenAI
client = OpenAI(
# Defaults to os.environ.get("OPENAI_API_KEY")
)
chat_completion = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Hello world"}]
)
通过 Langchain 等框架
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="gpt-4o",
# api_key="...", # if you prefer to pass api key in directly instaed of
# base_url="...",
)
messages = [
(
"system",
"You are a helpful assistant that translates English to French. Translate the user sentence.",
),
("human", "I love programming."),
]
ai_msg = llm.invoke(messages)
通过学社提供的 AI 服务
ChatGPT 助理
Assistants 助理
由 GPT-4 等大型语言模型提供支持,能够为用户执行任务。这些助手根据模型上下文窗口中嵌入的指令进行操作。他们通常还可以使用允许助理执行更复杂任务的工具,例如运行代码或从文件中检索信息
助理工具 Assistant Tools
使用 Assistants API 创建的助手可以配备工具,使他们能够执行更复杂的任务或与您的应用程序交互。我们为助手提供内置工具,但您也可以定义自己的工具来使用函数调用扩展其功能。Assistants API 目前支持以下工具:文件搜索 代码解释器 函数调用
函数调用 Function calling
助手 API 支持函数调用。函数调用允许您向 Assistants API 描述函数,并让它智能地返回需要调用的函数及其参数。
ChatGPT 微调
微调
微调通过训练超出提示范围的更多示例来改进小样本学习,让您在大量任务上取得更好的结果。一旦模型经过微调,您就不需要在提示中提供那么多示例。这可以节省成本并实现更低延迟的请求。
使用微调之前的建议
微调 OpenAI 文本生成模型可以使它们更好地适应特定应用,但这需要仔细投入时间和精力。我们建议首先尝试通过如下方法获得更好效果
- 提示工程
- 提示链
- 函数调用
谨慎使用微调的原因
- 在许多任务中,我们的模型最初可能表现不佳,但可以通过正确的提示来改进结果 - 因此可能不需要进行微调
- 迭代提示和其他策略比微调迭代具有更快的反馈循环,后者需要创建数据集并运行训练作业
- 在仍然需要微调的情况下,最初的提示工程工作不会浪费 - 在微调数据中使用良好的提示(或将提示链接/工具使用与微调相结合)时,我们通常会看到最佳结果
简单文本生成微调案例
{"messages": [{"role": "system", "content": "Marv 是一个既真实又讽刺的聊天机器人。"}, {"role": "user", "content": "大写的是什么法国?"}, {"role": "assistant", "content": "巴黎,好像每个人都不知道这一点。"}]} {"messages": [{"role": "system", "content": "Marv 是一个既真实又讽刺的聊天机器人。"}, {"role": "user", "content": "谁写了 '罗密欧与朱丽叶'?"}, {"role": "assistant", "content": "哦,只是一个叫威廉·莎士比亚的人听说过他吗?"}]} {"messages": [{"role": "system", "content": "Marv 是一个既真实又讽刺的聊天机器人。"}, {"role": "user", "content": "距离有多远从地球到月球?"}, {"role": "assistant", "content": "大约 384,400 公里。这确实很重要。"}]}
工具调用微调案例
{
"messages": [
{ "role": "user", "content": "What is the weather in San Francisco?" },
{
"role": "assistant",
"tool_calls": [
{
"id": "call_id",
"type": "function",
"function": {
"name": "get_current_weather",
"arguments": "{\"location\": \"San Francisco, USA\", \"format\": \"celsius\"}"
}
}
]
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and country, eg. San Francisco, USA"
},
"format": { "type": "string", "enum": ["celsius", "fahrenheit"] }
},
"required": ["location", "format"]
}
}
}
]
}
微调任务与微调结果
使用微调模型
from openai import OpenAI
client = OpenAI()
completion = client.chat.completions.create(
model="ft:gpt-4o-mini:my-org:custom_suffix:id",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
]
)
print(completion.choices[0].message)
ChatGPT 总结
最好最领先的大模型生态