AI大模型初探
前言
随着ChatGPT的腾空出世,AI已被推到了一个新的历史高度。前几年自己的工作领域就或多或少开始接触到AI,初步了解到AI的应用,那时主要是对AI算法进行封装对外提供能力。随着AI越来越热门,这两年自己开始去学习了《概率论》、《线性代数》、《数理统计》、然后实际操练了一下AI常用的算法,自己开始能够理解AI的一些底层原理,以及算法模型关联的场景。
站在AI应用的角度上来讲,自己算是初步跨入这个行业,但是要理解AI底层的原理和算法,数学功底还差得比较远。伴随着 GPT-3、Stable Diffusion 这样预训练好的大型基础模型的出现,以及这些模型的能力通过开放 API 的形式提供出来,即使没有任何机器学习的理论知识,我们也只需要一两天时间,就能做出一个能解决实际问题的AI应用。
拥抱它还是被它颠覆
这一轮的 AI 浪潮里,对应技术能够应用的范围非常广泛,可以说是包罗万象。AI可以帮我写代码,翻译英文资料,帮我修改文章,为文章配图等等;在工作上,可以让AI来优化商品文案、优化商品搜索,并进一步开始尝试让AI承接更多原本需要由人来进行的工作。
我不知道 AI 会不会让你失业,但是善用 AI 的团队和公司接下来一定会有更高的效率和产出。无论你是产品经理还是工程师,是产品运营还是美术设计,在这一轮 AI 浪潮下,你的工作性质都会产生根本性的改变。AI 会像一个助手一样随时陪伴在我们身边,随时帮我们解决简单的知识性工作,甚至在很多时候给我们创意性的启发。
整个 AI 基于基础大模型发展出来的能力,堪比一次工业革命。固然,这个改变对很多人的职业生涯来说,也是一场危机。但是就像丘吉尔所说的,“不要浪费一场危机”,尽早去拥抱这个变化,你就有机会像在 2008 年 App Store 发布的时候去学习移动 App 开发一样,把握住未来的机会。
大语言模型应用
大型语言模型的接口其实非常简单,像OpenAI就只提供了Complete和Embedding两个接口,其中,Complete可以让模型根据你的输入进行自动续写,Embedding可以将你输入的文本转化成向量。
Complete接口的应用例子如下:
import openai
import os
openai.api_key = os.environ.get("OPENAI_API_KEY")
COMPLETION_MODEL = "text-davinci-003"
prompt = """
请给我写一段关于AIGC的演讲稿,按照如下说明分成3段。
1. 先介绍一下当前AIGC的现状,要求少于50个字。
2. 再说明一下当前AIGC几个热门的应用,要求小于100个字。
3. 最后展望一下AIGC未来的发展前景,要求小于50个字。
"""
def get_response(prompt123):
completions = openai.Completion.create(
engine=COMPLETION_MODEL,
prompt=prompt123,
max_tokens=512,
n=1,
stop=None,
temperature=0.0,
)
message = completions.choices[0].text
return message
print(get_response(prompt))
响应结果如下:
1. AIGC(Artificial Intelligence and Game Computing)是一种新兴的计算机技术,它将人工智能技术与游戏计算机技术结合在一起。
2. AIGC在当今的应用领域非常广泛,包括自然语言处理、机器视觉、智能客服、智能安全、智能推荐系统等。
3. AIGC未来的发展前景非常广阔,它将在更多的领域发挥作用,为人类带来更多的便利。
Embedding接口的应用例子如下:
import openai
import os
from openai.embeddings_utils import cosine_similarity, get_embedding
# 获取访问open ai的密钥
openai.api_key = os.environ.get("OPENAI_API_KEY")
# 选择使用最小的ada模型
EMBEDDING_MODEL = "text-embedding-ada-002"
# 获取"好评"和"差评"的
positive_review = get_embedding("好评")
negative_review = get_embedding("差评")
def get_score(sample_embedding):
return cosine_similarity(sample_embedding, positive_review)-cosine_similarity(sample_embedding, negative_review)
good_restaurant = get_embedding("这家餐馆太好吃了,一点都不糟糕")
bad_restaurant = get_embedding("这家餐馆太糟糕了,一点都不好吃")
good_score = get_score(good_restaurant)
bad_score = get_score(bad_restaurant)
print("好评餐馆的评分 : %f" % good_score)
print("差评餐馆的评分 : %f" % bad_score)
响应结果如下:
好评餐馆的评分 : 0.062719
差评餐馆的评分 : -0.074591
Embedding使用说明
Embedding这个API可以把任何你指定的一段文本,变成一个大语言模型下的向量,也就是用一组固定长度的参数来代表任何一段文本。
- 先计算好“好评”和“差评”这两个特征的Embedding。
- 对于我们要区分的任何一段文本评论,再通过API获取它的Embedding。
- 通过计算文本评论的Embedding和两个特征的Embedding之间的余弦距离,得到它的相似度。
- 分数大于0,说明评论和“好评”的距离更近,判定为好评。否则,判定它为差评。
总结
在 ChatGPT、Whisper 和 Stable Diffusion 这样强大的 AI 技术出现之后,我们去学习任何新技术和新知识的方式也都应该更加高效。利用AI工具来改造你学习和工作的流程,把AI嵌入你生活和工作的方方面面,不断通过AI工具来提升自己的效率。