一、人工智能介绍
人工智能(Artificial Intelligence),英文缩写为AI。它试图赋予机器智能的能力,使它们能够像人类一样思考、学习和做出决策。它的核心要素是数据、模型和算力。(一种观点:基于机器学习、神经网络的是AI,基于规则、搜索的不是AI)
数据是人工智能的基础,数据的质量和多样性对于模型至关重要的作用。高质量、多样性和代表性的数据可以有效地训练模型和优化模型,提高模型的性能和效果。
模型是人工智能的关键组成部分,根据给定的输入数据,通过使用相应的算法和参数,进行大量的计算和优化,可以更准确地对新的输入进行预测和决策。
算力是指用于训练和运行人工智能模型的计算资源。强大的算力可以支持更大规模的数据集、更复杂的模型架构和更高的推理速度和响应能力。例如在线客服、智能助手等。只有具备足够的算力,才能保证模型能够及时响应用户的请求,并具备良好的用户体验。
人工智能主要内容包括:计算机视觉、自然语言理解、语音处理、数据分析挖掘等方面。计算机视觉:研究如何让计算机“看”的科学。计算机视觉研究的主题主要包括图像分类、目标检测、图像分割、目标跟踪、文字识别等。目前的落地场景:人脸识别、自动驾驶等。
自然语言理解:利用计算机技术来理解并运用自然语言的学科。自然语言处理研究的主题主要包括机器翻译、文本挖掘和情感分析等。目前的落地场景:机器翻译等。
语音处理:语音处理研究主要包括语音识别、语音合成、语音唤醒、声纹识别、音频事件检测等。其中最成熟的技术是语音识别。目前的落地场景:智能客服、智能家居等。
数据分析挖掘:从大量的数据中,通过统计学、人工智能、机器学习等方法,挖掘出未知的、且有价值的信息和知识的过程,支持决策和业务发展。目前的落地场景:贷款风险评估、预测设备故障、预测疾病风险等。
二、ChatGPT介绍
ChatGPT是由OpenAI公司研发出的一种基于自然语言处理技术的聊天机器人,简单来说是一种基于人工智能技术的交互式对话机器人。ChatGPT基本原理是基于OpenAI公司服务器和计算机集群,利用收集的大规模语料库数据,通过机器学习算法和自然语言处理技术,生成庞大的语言模型,使其能够理解并学习人类的语言,最终实现与人类的对话交互。
ChatGPT在自然语言处理任务中具有强大的能力,可以生成人类可读的文本,但它并不是为数据挖掘任务而设计的。数据挖掘是一种通过分析大量数据来发现隐藏模式、关联和趋势的过程,而ChatGPT主要是通过对大规模文本数据进行训练,来学习语言模型并生成文本。虽然ChatGPT可以用于从结构化的数据中提取文本信息,但在数据挖掘方面的能力相对较弱。数据挖掘通常需要进行统计分析、聚类、分类、回归等复杂的数学和统计分析方法,而ChatGPT无法直接处理这些任务。
三、通用大模型与行业大模型区别
通用大模型是指能够处理多种任务和领域的人工智能模型。这些模型通过在大规模数据集上进行预训练,可以学习到丰富的语言知识和模式,然后通过微调适应特定任务。OpenAI的ChatGPT就是一种通用大模型,它可以用于对话生成、文本摘要、语言翻译等多个任务。
行业大模型是指用于特定行业的大规模机器学习模型。这些模型通常通过大量的专业数据进行训练,并具有强大的预测和决策能力。行业大模型可以应用于各种领域,如金融、医疗、交通等,以解决复杂的问题并提供智能化的解决方案。
训练数据:通用大模型通常基于大规模的、多样化的数据集进行训练,这些数据集涵盖了各个领域的知识。而行业大模型则侧重于特定行业的专业知识其训练数据主要来自于该行业的相关数据。这使得通用大模型具有更广泛的知识覆盖能力,而行业大模型则在特定领域具有更高的专业性。
应用场景:通用大模型适用于多种任务和场景,可以应用于自然语言处理、计算机视觉、语音识别等多个领域。而行业大模型主要针对特定行业的应用场景进行优化,如金融风控、医疗诊断等。这使得行业大模型在特定领域的性能更加优越,但在其他领域的适用性相对较弱。
四、大模型工作原理
4.1、通俗原理
它只是根据上文,猜下一个词(的概率)……(发散式的生成,上下文的约束越多,效果越好)
大模型注入新的知识
from openai import OpenAI
client = OpenAI(api_key="sk-...",base_url='https://...')
# 消息
messages = [
{
"role": "system",
"content": "你是AI助手,数学老师的助教,数学课每周二、四上课。" # 注入新知识
},
{
"role": "user",
"content": "周末有数学课吗?"
},
]
# 调用 GPT-3.5
chat_completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=messages
)
# 输出回复
print(chat_completion.choices[0].message.content)
划重点:
1、大模型就是一个函数,给输入,生成输出
2、任何可以用语言描述的问题,都可以输入文本给大模型,就能生成问题的结果文本
3、进而,任意二进制数据,都可以输入给大模型,生成二进制数据
4.2、略深一点原理
训练和推理是大模型工作的两个核心过程。
训练:
1、大模型阅读了人类说过的所有的话。这就是机器学习
2、训练过程会把不同 token 同时出现的概率存入神经网络文件。保存的数据就是参数,也叫权重。
推理:
1、我们给推理程序若干 token,程序会加载大模型权重,算出概率最高的下一个 token 是什么
2、用生成的 token,再加上上文,就能继续生成下一个 token。以此类推,生成更多文字
Token 是什么?
1、可能是一个英文单词,也可能是半个,三分之一个
2、可能是一个中文词,或者一个汉字,也可能是半个汉字,甚至三分之一个汉字
3、大模型在开训前,需要先训练一个 tokenizer 模型。它能把所有的文本,切成 token
思考:
1、AI做对的事,怎么用这个原理解释?
答:有过输入资料,学习过
2、AI的幻觉,一本正经的胡说八道,怎么解释?
答:没有过学习资料,基于概率运算输出,输出的话是成句子
4.3、更深一点
生成机制的内核叫Transformer 架构。Transformer 是目前人工智能领域最广泛流行的架构,被用在各个领域,Transformer 仍是主流,但并不是最先进的。目前只有 transformer 被证明只要加大算力,加大训练,就会更聪明。
五、大模型应用技术架构
5.1、纯prompt
Prompt 是操作大模型的唯一接口
当人看:你说一句,ta 回一句,你再说一句,ta 再回一句……
5.2、Agent + Function Calling
Agent:AI 主动提要求
Function Calling:AI 要求执行某个函数
当人看:你问 ta「我明天去北京出差,要带伞吗?」,ta 让你先看天气预报,你看了告诉 ta,ta 再告诉你要不要带伞
工作流程:应用程序通过prompt问问题,大模型做出推理判断回答的问题,需要借助外部程序,于是agent反向提出function calling请求,告诉应用程序通过内/外部api,把需要查的知识查到,查到的知识放到prompt提示词中给到大模型,大模型做出最终的推理给出结果。
5.3、RAG(检索增强生成)
大模型知识不够,需要灌输知识,做知识库,用到常用的知识rag。
Embeddings:把文字转换为更易于相似度计算的编码。这种编码叫向量
向量数据库:把向量存起来,方便查找
向量搜索:根据输入向量,找到最相似的向量
当人看:考试答题时,到书上找相关内容,再结合题目组成答案,然后,就都忘了
rag的过程相当于把外部知识存入到向量知识库中,从向量数据库中,把需要回答的知识找到,和问题一起给到大模型。
5.4、Fine-tuning(微调)
希望提供的知识长期记住,能活学活用,就需要Fine-tuning。
工作流程:直接把外部知识通过fine-tuning的过程,训练到大模型内部,模型的参数权重发生变化,神经网络结构发生变化,新的知识就被记住。
六、如何选择技术路线
面对一个需求,如何开始,如何选择技术方案?下面是个不严谨但常用思路。
值得尝试 Fine-tuning 的情况:
1、提高模型输出的稳定性
2、用户量大,降低推理成本的意义很大
3、提高大模型的生成速度
4、需要私有部署
七、如何找到落地场景
找落地场景的思路:
1、从最熟悉的领域入手
2、尽量找能用语言描述的任务
3、别求大而全。将任务拆解,先解决小任务、小场景
4、让 AI 学最厉害员工的能力,再让 ta 辅助其他员工,实现降本增效