生成式 AI 入门的第一课

本文基于刚啃完的 Generative AI for Everyone 课程,喜欢这类文章请到右上角 点击关注,跟我一起从0开始学习生成式AI。

什么是生成式AI(Generative AI)?

生成式AI是指那些能够产出高质量内容的人工智能系统,比如生成文本、图片、音频、视频等。

其背后的原理是 监督学习(Supervised learning)

监督学习是一种让机器学习模型从 输入数据(A)输出结果(B) 的过程。在过去的十年(2010年至2020年)中,监督学习取得了许多突破性的进展。 例如:

  • 在垃圾邮件过滤中,通过将电子邮件作为输入,模型可以预测该电子邮件是否是垃圾邮件。
  • 在广告点击率预测中,模型可以根据广告和用户信息预测用户是否会点击该广告。
  • 在自动驾驶中,通过输入图像和雷达信息,模型可以预测其他车辆的位置。
  • 在医学影像诊断中,通过输入X射线图像,模型可以进行疾病诊断。
  • 在手机生产中,通过手机图像,模型即可以检测出缺陷。
  • 在语音转录中,通过输入音频录音,模型可以生成相应的文本转录。

简单来说,就是通过学习大量标注好的数据模型,找出输入和输出之间的关系,然后就可以根据一定输入自主地产出高质量的输出了。

大语言模型生成文本

在生成文本方面,我们可以利用大语言模型(Large Language Models)进行创作。这种方法使用监督学习(输入A -> 输出B)的方式,反复预测下一个词是什么。通过在大量数据(数千亿个单词)上训练一个庞大的人工智能系统,我们可以得到一个大型语言模型,例如 ChatGPT。

大语言模型具有惊人的创造力和理解能力。它可以理解上下文的语义和语法,并生成连贯、流畅的文本。我们可以将其应用于各种任务,如自动回复、文章创作、故事编写等。通过与用户的交互,大语言模型可以生成高质量的文本内容。

虽然生成式 AI 在写作、阅读和对话等领域表现出色。但他们确有非常明显的优点和缺点。

生成式AI的优缺点

生成式AI 的优点:

  • 写作:在写作方面有很多优势。它可以重写文本、创作故事、缩写文章(提炼内容) 和翻译文本。

  • 阅读:比如生成式AI可以用于阅读并分析电子邮件,判断是否为投诉邮件,并将其发送到相应的部门。它还可以对你写的文章进行校对、总结长篇文章内容,总结聊天的对话内容,对餐厅评价的好差评进行情感分析等。

  • 对话:可以训练专门的聊天机器人,用于与用户进行交互。这些聊天机器人可以提供个性化的对话体验,并在客户服务和咨询方面发挥重要作用。

生成式AI 的缺点:

  • 幻觉(hallucinations)和编造:可能会生成虚构的内容,缺乏可靠性。它不能自主判断信息的真实性,因此需要对其生成的结果进行审慎评估。

  • 知识截止:模型训练总有一个截止日期,AI 只了解截止日期前训练过程中接触到的数据,无法获得超出其知识范围的最新信息。

  • 输入(和输出)长度有限:对于输入和输出的长度有一定限制。当面对较长的文本或上下文时可能受到限制,导致信息的缺失或不完整。

  • 对结构化数据处理能力有限:在处理结构化数据方面的能力相对较弱,它更适用于处理文本和非结构化数据。

  • 存在偏见和有害内容:如果训练数据中存在偏见或有害内容,它可能会继承这些问题,并在生成内容时表现出类似的倾向。

提示词(prompt)技巧

  • 要详细和具体:在提示中提供详细和具体的信息,以引导模型更准确地生成答案。确切的细节能够帮助模型理解问题的上下文,并生成更合适的回答。

  • 引导模型思考:通过提示引导模型基于之前的答案逐步回答。例如,你可以给出问题的解决步骤,如第一步:起一个名字,第二步:基于第一步加上押韵,第三步:加上表情符号。这样的提示可以引导模型按照特定的思维路径生成答案。

  • 不断优化迭代,没有一开始就完美的提示词,从一个想法开始,根据回答逐渐优化和迭代提示词。

一些 prompt 的例子

给出更多上下文信息

arduino 复制代码
write a press release xxxx using the following information:
xxx: xxx
xxx: xxx

校对

vbnet 复制代码
Proofread the following text, intended for a website selling children's stuffed toys, for spelling and grammatical errors, and rewrite it with corrections:

Meet this adorable stuffedxxxxxxxxxxxxxxxxxxxx.

总结文章

yaml 复制代码
Summarize the following paper in 300 words or fewer:
xxxxxxxxxxxxx

让 AI 只从列表中选出答案

vbnet 复制代码
Read the email below and choose the most appropriate department to route the email to.

Choose the department from the following list:
Apparel, Electronics, Home appliances.

I love my new llama t-shirt!
The fabric is so soft.

图像生成

图像生成是通过 diffusion model(扩散模型) 的方法来实现的。

扩散模型是AI图像生成的核心方法之一,它基于监督学习的原理。 通过在图像中逐渐引入噪声来生成逼真的图像。这个过程类似于让图像的像素值在每个时间步骤中进行微小的扩散和混合。通过多次迭代这个过程,图像逐渐从随机噪声变得更加清晰和真实。

扩散模型的训练基于监督学习的方法。初始阶段,模型通过观察真实图像来学习生成真实图像的技巧和特征。然后,模型使用这些学到的知识来生成新的图像。在训练过程中,模型会逐渐减小生成图像与真实图像之间的差距,以提高生成图像的质量和逼真度。

高级技术

RAG (Retrieval Augmented Generation) 检索增强生成

RAG 是检索增强生成技术的缩写,它利用上下文文档来回答问题,并将检索到的文本融入到更新后的提示中,从而生成带有额外上下文的答案。

RAG 的工作原理是

  • 在给定一个问题后,通过搜索相关文档来找到与问题相关的答案。
  • 将检索到的文本与原始问题组合成一个新的提示。
  • 利用带有额外上下文的新提示来生成答案。
vbnet 复制代码
Use the following pieces of context to answer the question at the end.

XXX:XXXXXXXX...

Is theer parking for employees?

这种方法的优势在于,它允许语言模型(LLM)利用上下文信息来提供更准确和有关联的答案。通过为LLM提供更多上下文,它可以读取并理解与问题相关的文本,从而生成更加准确和完整的答案。

RAG 的应用范围广泛,例如

  • 在聊天机器人中可以实现更自然和有关联的对话。
  • 新式网络搜索引擎(new bing、google、you.com)通过结合LLM的推理能力,提供更具信息量和相关性的搜索结果。
  • chat with pdf 类应用如c hatpdf、 askyourpdf,pdf.ai 等。

综上所述,RAG(检索增强生成)是一种利用检索到的文本来增强生成答案的技术。它通过整合上下文文档,提供更准确和有关联的答案,使语言模型能够更好地处理信息和生成内容。

Fine-tuning 微调

Fine-tuning(微调)是一种常用的AI技术,它通过使用已经进行过大规模预训练的模型,然后在少量的特定数据上进行进一步训练,以微调模型的输出结果。

PreTrained Model -> Fine-tuned Model

预训练模型通常是使用大规模数据集和强大计算资源训练得到的,具有强大的语言理解能力和广泛的知识背景。 在此基础上,只需使用少量特定领域的数据对预训练模型进行进一步训练,以使模型适应特定任务或领域的需求。这个过程就是Fine-tuning。

通过在特定数据上微调模型,它可以学习到特定任务或领域的细节和特征,从而提供更准确和定制化的输出结果。

Fine-tuning的优势在于它可以在相对较少的数据和计算资源下,获得高性能的模型。相比于从头开始训练一个模型,Fine-tuning可以节省时间和资源,整个微调过程可能只需要几十上百刀的成本。

Fine-tuning可以应用于各种任务。例如,在自然语言处理领域,可以使用Fine-tuning来生成特定风格的文本输出,如特定的写作风格或语气。通过Fine-tuning,模型可以在预训练的基础上进一步学习和调整,以产生符合特定风格要求的文本。

Pretraining 预训练

预训练需要使用大量的数据来训练模型,这意味着成本是非常昂贵的,需要工程师团队,几个月的时间,千万美元级别的投资,应该是你最后的选择。

模型大小

AI模型参数的大小会直接影响到模型的能力和性能。

  • 10亿参数(1 B):具有模式匹配和基本的世界知识。这种规模的模型适合于一些相对简单的任务,比如餐馆评分。

  • 100亿参数(10 B):具有更广泛的世界知识。这种规模的模型可以遵循基本的指令,并在类似点餐机器人等任务中发挥作用。

  • 千亿级别参数(100B+):具有丰富的世界知识和复杂的推理能力。这种规模的模型非常适合于需要进行深入推理和复杂问题求解的任务,比如头脑风暴的伙伴。它可以利用广泛的知识和推理能力来提供创造性的思路和解决方案。

在选择模型参数大小时,需要权衡模型的能力和计算资源之间的平衡。较大的模型通常需要更多的计算资源和时间来训练和部署,但在处理更复杂的任务时可能会表现更出色。较小的模型可能更易于训练和部署,但在处理复杂任务时可能受到限制。

开源闭源

开源和闭源AI模型都有各自的优劣势,根据您的笔记,我可以给出以下介绍:

闭源模型(Close-source models):

  • 使用方便:闭源模型通常提供了易于使用的接口和工具,使用户能够快速开始使用模型。这使得不具备深度学习专业知识的用户也能够从这些模型中获益。

  • 更强大:闭源模型通常由大型技术公司或研究机构开发,他们拥有庞大的资源和专业知识。因此,这些模型可能更大且更强大,具备更高的性能和更广泛的应用领域。

  • 成本低廉:闭源模型通常以商业授权或订阅形式提供,用户可以根据自己的需求选择适合的许可。与自行开发和训练模型相比,闭源模型的成本相对较低。

  • 绑定风险:如果您完全依赖于某个供应商的闭源模型,可能会受限于其支持、更新和定价策略。

开源模型(Open-source models):

  • 模型定制:开源模型提供了完全控制模型的能力。您可以自由查看、修改和定制模型的结构和参数,以满足特定需求。

  • 可在自己的设备上运行:开源模型可以在您自己的设备上运行,无需依赖第三方供应商的服务器。这使得您可以更好地控制模型的性能、速度和资源使用情况。

  • 控制数据隐私/访问:开源模型使您能够完全控制数据的隐私和访问。您可以自行处理和存储数据,确保数据安全和隐私保护,并根据具体需求设置访问权限。

Reinforcement learning from human feedback (RLHF)

RLHF(从人类反馈中进行强化学习)结合了强化学习和人类反馈,以改进模型在特定任务中的表现。以下是RLHF的两个主要步骤:

  1. 训练答案质量模型:

首先需要训练一个答案质量模型,用于评估生成答案的质量。这个模型使用人类反馈中的评分作为训练数据,其中评分基于"3H"准则(即是否有帮助Helpful、诚实Honest和无害Harmless)。通过监督学习算法,将回答作为输入,评分作为输出,训练出一个能够准确评估答案质量的模型。

  1. 提供更多高分答案的训练:

使用预训练的语言模型,生成大量答案,并将这些答案输入到答案质量模型中进行评估。然后,通过强化学习算法,进一步训练LLM生成更多获得高评分的答案。这个过程通过将高分答案作为正向反馈信号,使LLM逐渐调整生成答案的方式,以获得更好的结果。

通过这种RLHF方法,模型可以通过人类反馈进行引导,逐步改进其生成答案的质量。准确的答案质量模型能够提供准确的评估,而高质量的人类反馈可以为模型提供有益的指导。因此,在应用RLHF时,需要确保答案质量模型的训练和人类反馈的获取都是可靠和准确的。

调用外部系统

生成式AI允许语言模型(LLMs)调用外部工具,以扩展LLMs的推理计算能力任务执行能力

实现方式是通过微调模型来返回指定的格式。

比如用户发出 Send me a burger!,经过微调的模型可以返回:

rust 复制代码
ORDER(Burger,9876,1234 My Street)
User message:
Ok, it's on the way

其中的 ORDER(Burger,9876,1234 My Street) 可用于调用订餐系统,分别传入( 产品,用户ID 和地址)

只有最后一行 Ok, it's on the way 是返回给用户的

需要注意的是,LLMs返回的结果有一定几率是错误的。为了避免潜在的问题,最好在UI界面上弹出窗口,让用户最终确认是否执行操作。

这样可以确保用户在执行关键操作之前能够确认意图,减少潜在的误操作。

再比如

scss 复制代码
You would have CALCULATOR(100*1.05^8) doollars

由于LLMs不擅长计算,可调用外部计算器 CALCULATOR(100*1.05^8) 来计算结果,扩展LLMs的计算能力。

Agents

Agents 旨在让语言模型(LLMs)能够自主决定下一步采取的行动。

比如你可以抛给AI一个研究课题

scss 复制代码
Help me research BetterBurgers top competitors

他应该会自己列出实现的步骤,然后分别执行对应步骤,最后给出一个最终结果。

当然,这是目前AI研究的前沿领域,还远没有成熟。


本文基于刚啃完的 Generative AI for Everyone 课程,喜欢这类文章请到右上角 点击关注,跟我一起从0开始学习生成式AI。

相关推荐
虚假程序设计1 分钟前
pythonnet python图像 C# .NET图像 互转
开发语言·人工智能·python·opencv·c#·.net
Rattenking6 分钟前
node - npm常用命令和package.json说明
前端·npm·json
Easonmax6 分钟前
【HTML5】html5开篇基础(1)
前端·html·html5
For. tomorrow10 分钟前
Vue3中el-table组件实现分页,多选以及回显
前端·vue.js·elementui
ღ᭄ꦿ࿐Never say never꧂14 分钟前
微服务架构中的负载均衡与服务注册中心(Nacos)
java·spring boot·后端·spring cloud·微服务·架构·负载均衡
.生产的驴23 分钟前
SpringBoot 消息队列RabbitMQ 消息确认机制确保消息发送成功和失败 生产者确认
java·javascript·spring boot·后端·rabbitmq·负载均衡·java-rabbitmq
AI王也27 分钟前
ChatGPT 4o 使用指南 (9月更新)
人工智能·chatgpt·prompt·aigc
望繁信科技30 分钟前
望繁信科技受邀出席ACS2023,为汽车行业数智化护航添翼
人工智能·企业数字化转型·流程挖掘·流程智能·数字北极星
海里真的有鱼31 分钟前
Spring Boot 中整合 Kafka
后端
木凳子a33 分钟前
给儿童掏耳朵用哪个好?儿童耳勺最建议买的五个牌子
人工智能·安全·信息可视化·智能家居·健康医疗