不用问我都知道,你们一定是被ChatGPT的火热出圈导致的开始关注人工智能,也是由于此才看到我这篇文章。
放心,大家想要的我一定会给予,既然大家都想先认识ChatGPT,那么我们就从这个主题开始。
接下来,我们学学如何利用openAI的API来和其沟通。在整个使用过程中,我们都使用的是GPT-3.5的大预言模型。
在本课程中,我们将回答许多问题,例如,OpenAI 的 API 能够实现哪些神奇的事情?OpenAI 的产品被称为已经离通用人工智能(AGI)不远了,它们长什么样子?GPT-3 这样的模型与之前基于深度学习的自然语言处理解决方案有什么不同?我们将通过逐步解释这些问题,使您深入了解这个令人兴奋的领域。
无论您是否是一名程序员,您都可以从本课程中学习如何使用 AI 技术,尤其是大型语言模型,为您的项目和业务提供价值。
了开始学习本课程,您需要先注册一个可以使用 OpenAI 的 API 的账号。您可以通过注册入口进行注册。目前,OpenAI 尚未向中国大陆和香港地区开放,因此您需要自己寻找适当的解决方案进行注册。如果您有更好的解决方案,也欢迎在评论区分享。
注册账号后,您需要点击右上角的账号,然后进入 "View API Keys" 页面管理 API Keys。
您可以点击下方的 "+Create new secret key" 来创建一个新的 API Key。
您需要将此 API Key 存储在一个安全的位置,因为在后续的 OpenAI 接口调用中,需要使用此 API Key。
储存API Key留用这方便,我使用的是1Password,开了家庭版,很好用。
关于绑卡这个事,可以自己在网上搜索看,办法总比问题多。不要找我,虽然我有渠道,但是我的渠道很贵,到时候说我骗人钱我可说不清楚。
既然是开发API应用,那必然是需要开发环境的。如果你自己会,那就最好不过了,如果不是太熟悉,可以参考一下我这篇文章:
这篇文章详细的介绍了在Mac内如何搭建AI环境,包括Tensorflow的安装等。
基本上,我们现在需要的是3.10 的Python环境,还有Conda(我习惯用这个),然后在本地安装好Jupyter lab, 如下:
conda create --name gpt python=3.10
conda activate gpt
conda install -c conda-forge jupyterlab ipywidgets openai
这一段命令的意思是创建一个名为 gpt
的python 3.10的开发环境,然后切换到这个环境里,再安装必要的包。
在后面的使用过程中,当然你可以选择jupyter notebook, 也可以和我一样,使用VSCode。
当然,你也可以选择Colab,其实这也是一个Jupyterlab,如果你不想本地搭建环境,那就直接使用Colab吧,不过注意一点,需要科学上网。就算你本地有环境,我还是建议你有些事后使用Colab,能用到一些免费的GPU资源,我的M1没有好的显卡支持,很多时候还是需要上Colab。
使用时候,记得要安装openAI的库,并且设置自己的API Key:
!pip install openai
%env OPENAI_API_KEY="这里输入你的API Key"
让我们现在开始依次写完这段代码,虽然截图内已经有了,但是还是让我们一步步来执行起来,这一段代码,并不是出自我之手,而且直接借鉴的徐文浩的代码:
import openai
import json
# 设定API Key和模型
openai.api_key = "输入你自己的代码"
COMPLETION_MODEL = "text-davinci-003"
# 设定关键词和描述
prompt = """
Consideration proudct : 工厂现货PVC充气青蛙夜市地摊热卖充气玩具发光蛙儿童水上玩具
1. Compose human readale product title used on Amazon in english within 20 words.
2. Write 5 selling points for the products in Amazon.
3. Evaluate a price range for this product in U.S.
Output the result in json format with three properties called title, selling_points and price_range
"""
# 写一个调用方法
def get_response(prompt):
completions = openai.Completion.create (
engine=COMPLETION_MODEL,
prompt=prompt,
max_tokens=512,
n=1,
stop=None,
temperature=0.0,
)
message = completions.choices[0].text
return message
# 调用方法并打印最终结果
print(get_response(prompt))
然后我们就可以看到返回了:
{
"title": "Glow-in-the-Dark Inflatable PVC Frog Night Market Hot Selling Water Toy for Kids",
"selling_points": [
"Made of durable PVC material",
"Glow-in-the-dark design for night play",
"Inflatable design for easy storage and transport",
"Perfect for water play and outdoor activities",
"Great gift for kids"
],
"price_range": "$10 - $20"
}
这段代码里面,我们调用了 OpenAI 的 Completion 接口,然后向它提了一个需求,也就是为一个我在 1688 上找到的中文商品名称做三件事情。
同时,我们告诉 OpenAI,我们希望返回的结果是 JSON 格式的,并且上面的三个事情用 title、selling_points 和 price_range 三个字段返回。
神奇的是,OpenAI 真的理解了我们的需求,返回了一个符合我们要求的 JSON 字符串给我们。在这个过程中,它完成了好几件不同的事情。
第一个是翻译,我们给的商品名称是中文的,返回的内容是英文的。
第二个是理解你的语义去生成文本,我们这里希望它写一个在亚马逊电商平台上适合人读的标题,所以在返回的英文结果里面,AI 没有保留原文里有的“工厂现货”的含义,因为那个明显不适合在亚马逊这样的平台上作为标题。下面 5 条描述也没有包含“工厂现货”这样的信息。而且,其中的第三条卖点 “Inflatable design for easy storage and transport”,也就是作为一个充气的产品易于存放和运输,这一点其实是从“充气”这个信息 AI 推理出来的,原来的中文标题里并没有这样的信息。
第三个是利用 AI 自己有的知识给商品定价,这里它为这个商品定的价格是在 10~20 美元之间。而我用 “Glow-in-the-Dark frog” 在亚马逊里搜索,搜索结果的第一行里,就有一个 16 美元发光的青蛙。
最后是根据我们的要求把我们想要的结果,通过一个 JSON 结构化地返回给我们。而且,尽管我们没有提出要求,但是 AI 还是很贴心地把 5 个卖点放在了一个数组里,方便你后续只选取其中的几个来用。返回的结果是 JSON,这样方便了我们进一步利用返回结果。比如,我们就可以把这个结果解析之后存储到数据库里,然后展现给商品运营人员。
接下来,我们再看一个其他的例子:
prompt = """
Man Utd must win trophies, says Ten Hag ahead of League Cup final
请将上面这句话的人名提取出来,并用json的方式展示出来
"""
print(get_response(prompt))
得到输出结果:
{
"names": ["Ten Hag"]
}
看出AI干了什么吗?其实从中文中你能知道我需要AI做什么,而他完完全全输出了我想要的。
我们这里的两个例子,其实对应着很多不同的问题,其中就包括机器翻译、文本生成、知识推理、命名实体识别等等。在传统的机器学习领域,对于其中任何一个问题,都可能需要一个独立的机器学习模型。就算把这些模型都免费提供给你,把这些独立的机器学习模型组合到一起实现上面的效果,还需要海量的工程研发工作。没有一个数十人的团队,工作量根本看不到头。然而,OpenAI 通过一个包含 1750 亿参数的大语言模型,就能理解自然的语言输入,直接完成各种不同的问题。而这个让人惊艳的表现,也是让很多人惊呼“通用人工智能(AGI)要来了”的原因。
这两个例子虽然简单,但是咱们暂时先到此为止,记得课后好好练习。
推荐阅读如果你想知道 GPT 系列大模型到底是怎么回事儿,我推荐你去看一下李沐老师讲解 GPT 系列论文的视频 GPT、GPT-2、GPT-3 论文精读,这个视频深入浅出,能够让你理解为什么现在 GPT 那么火热。