为了方便大家对AI和大模型技术有更加深入的了解,接下来一段时间会开一个专题,专门用来介绍AI和大模型相关技术,专题介绍内容从以下AI技术总览展开。
AI技术定义:
缩写名 | 描述 | 备注 |
---|---|---|
Go-zero | go-zero是一个集成了各种工程实践的web和rpc框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。go-zero 包含极简的 API 定义和生成工具 goctl。 | |
CRD | CustomResourceDefinition,在 Kubernetes 中一切都可视为资源,Kubernetes 1.7 之后增加了对 CRD 自定义资源二次开发能力来扩展 Kubernetes API,通过 CRD 我们可以向 Kubernetes API 中增加新资源类型,而不需要修改 Kubernetes 源码来创建自定义的 API server,该功能大大提高了 Kubernetes 的扩展能力 | |
Controller | 在Kubernetes中用于管理和自动化Kubernetes资源的组件。controller控制器用于确保Kubernetes中的资源处于所需的状态,例如deployment controller用于确保Deployment中定义的Pod数量与所需的Pod数量匹配。controller还可以作为资源监视器,并针对资源变化进行相应处理。 | |
Operator | Operator是Kubernetes 自定义控制器,它使用自定义资源定义(CRD)来扩展Kubernetes API,以便管理应用程序和服务。Operator可以自动化部署、配置和管理应用程序和服务,以便更好地适应特定的业务需求。operator = crd + controller + webhook(其中controller与webhook可以为同一个服务,这也是业界普遍做法) | |
LLM | Large Language Model,称大规模语言模型或者大型语言模型,是一种基于大量数据训练的统计语言模型,可用于生成和翻译文本和其他内容,以及执行其他自然语言处理任务(NLP),通常基于深度神经网络构建,包含数百亿以上参数,使用自监督学习方法通过大量无标注文本进行训练 | |
ChatGLM | ChatGLM是由清华技术成果转化的公司智谱AI发布的开源的、支持中英双语问答的对话语言模型系列,并针对中文进行了优化,该模型基于General Language Model(GLM)架构构建 | |
LLaMA | Large Language Model Meta AI,由Meta AI公司于2023年2月发布的开放且高效的大型基础语言模型系列,共有7B、13B、33B、65B四种版本 | |
Baichuan | Baichuan系列模型是由百川智能开发的开源可商用的大规模预训练语言模型系列,基于Transformer结构,支持中英双语 | |
pt | pre-training,预训练是大语言模型训练的基本步骤,预训练阶段需要利用海量的训练数据,包括互联网网页、维基百科、书籍、GitHub、论文等,构建包含数千亿甚至数万亿单词的基础语料,利用由数千块高性能GPU和高速网络组成的超级计算机,花费数十天完成深度神经网络参数训练 | |
sft | Supervised Fine-Tuning,有监督微调,也称为指令微调(Instruction Tuning),利用少量高质量数据集合,包含用户输入的提示词(Prompt)和对应的理想输出结果,使用与预训练阶段相同的语言模型训练算法,在基础语言模型基础上再进行训练。 | |
LoRA | Low-Rank Adaption of Large Language Models,大语言模型的低秩适应,是一种PEFT(参数高效性微调方法),其核心思想是对大型模型的权重矩阵进行隐式的低秩转换 | |
Checkpoint | 模型在训练过程中的中间状态和结果,是大语言模型在训练过程中进行容错的一种关键技术,通过将中间状态和结果作为checkpoint保存到持久化存储,在训练任务由于异常失败时,可以从checkpoint中恢复训练中间状态继续训练 | |
DeepSpeed | DeepSpeed是一个由微软开发的开源深度学习优化库,基于pytorch构建,旨在提高大规模模型训练的效率和可扩展性。它通过多种技术手段来加速训练,包括模型并行化、梯度累积、动态精度缩放、本地模式混合精度等。DeepSpeed还提供了一些辅助工具,如分布式训练管理、内存优化和模型压缩等,以帮助开发者更好地管理和优化大规模深度学习训练任务。 | |
quantize | 模型量化,又称为模型压缩,是指以较低的推理精度损失将连续取值(通常为float32或者大量可能的离散值)的浮点型权重近似为有限多个离散值(通常为int8或int4)的过程。通过以更少的位数表示浮点数据,模型量化可以减少模型尺寸,进而减少在推理时的内存消耗,并且在一些低精度运算较快的处理器上可以增加推理速度。 | |
watermark | 模型水印是一种用于模型版权保护的技术,通过向大模型植入水印(触发集数据加上特定的噪声或者标志),使得模型学习到这种特定的噪声或者标志的特征,通过特定的问题可以从大模型的回答中提取出水印进行验证。 | |
Seldon Core | Seldon Core 目前是机器学习模型部署领域最受欢迎的方案之一,由 Seldon 公司开源和维护,旨在为不同框架下训练出来的模型(Tensorflow,Pytorch,SKLearn,XGBoost)提供一套相对统一的部署方式,支持多种不同类型模型的Inference Server。 | |
TGI | Text Generation Inference,是Huggingface推出的用于部署和服务大型语言模型 (LLM) 的工具包, 支持各种主流LLM,如Llama、Falcon、StarCoder、BLOOM、GPT-NeoX 等;集成了多种推理加速技术,如张量并行、连续批处理、量化、算子优化等等,并且支持模型水印技术,是目前较为流行的高性能推理框架之一 | |
vLLM | vLLM是一个开源的大模型推理加速框架,通过PagedAttention高效地管理attention中缓存的张量,实现了比HuggingFace Transformers高24倍的吞吐量。 | |
Paged Attention | PagedAttention是大模型推理的一项优化技术,灵感来自于操作系统中虚拟内存和分页的经典思想,它允许在非连续空间内存储连续的KV张量,把每个序列的KV缓存进行了分块,每个块包含固定长度的token,而在计算attention时可以高效地找到并获取那些块。 | |
Continuous Batching | 动态批推理,是大模型推理框架进行性能优化的关键技术,通过将多个在线请求进行批处理(Batching),可以提高 GPU 的使用效率 |
1. 起源与发展
早期发展:
- 1943年:Warren McCulloch 和 Walter Pitts 提出了第一个数学模型,用于描述神经元的工作原理。
- 1958年:Frank Rosenblatt 提出了感知器模型,这是第一个能够学习的神经网络模型。
- 1969年:Marvin Minsky 和 Seymour Papert 在《Perceptrons》中指出单层感知器的局限性,导致神经网络研究的停滞。
现代发展:
- 1986年:David Rumelhart、Geoffrey Hinton 和 Ronald Williams 提出了反向传播算法(Backpropagation),重新激发了对神经网络的研究兴趣。
- 2006年:Geoffrey Hinton 等人提出了深度信念网络(Deep Belief Networks),标志着深度学习的兴起。
- 2012年:AlexNet 在 ImageNet 图像识别竞赛中取得了显著的成功,推动了深度学习的发展。
2. 主要技术
神经网络:
- 定义:神经网络是一种模拟人脑神经元连接和工作方式的计算模型,由多个神经元(节点)组成,这些神经元通过连接(权重)相互连接。
- 工作原理:包括前向传播、损失函数、反向传播和权重更新等过程。
深度学习:
- 定义:深度学习是机器学习的一个子领域,基于人工神经网络,特别是深度神经网络(DNN),来模拟人脑的工作方式进行数据处理和模式识别。
- 主要模型:卷积神经网络(CNN)、循环神经网络(RNN)、生成对抗网络(GAN)、自编码器(Autoencoder)、变分自编码器(VAE)、Transformer 等。
生成式AI:
- 定义:生成式AI是指通过机器学习模型生成新的数据或内容的人工智能技术。
- 应用场景:文本生成(文生文)、多模态生成(图像生成、音频生成、视频生成等)。
Transformer:
- 定义:Transformer 是一种基于自注意力机制的深度学习模型,广泛应用于自然语言处理(NLP)任务。
- 架构:包括编码器(Encoder)和解码器(Decoder)两部分,每部分由多个相同的层堆叠而成。
Prompt:
- 定义:Prompt 是输入给生成式AI模型的一段文本,用于引导模型生成特定的输出。
- 作用:通过设计合适的 Prompt,可以控制生成内容的主题、风格、格式等,提高生成内容的质量和相关性。
3. 应用场景
自然语言处理(NLP):
- 文本生成:生成高质量的文本内容,如文章、故事、新闻报道等。
- 机器翻译:将一种语言的文本翻译成另一种语言。
- 文本摘要:生成文本摘要,提取长文档的关键信息。
- 情感分析:分析文本的情感倾向,生成情感分析报告。
计算机视觉:
- 图像识别:识别图像中的物体、场景、人物等。
- 图像生成:生成高质量的图像内容,如艺术作品、照片、插图等。
- 图像修复:修复损坏的图像,填补缺失的部分。
- 图像描述生成:根据图像生成描述性文本。
语音识别:
- 语音转文字:将语音转换为文字。
- 语音合成:生成自然的语音内容。
- 语音识别:识别语音中的内容和情感。
自动驾驶:
- 目标检测:检测道路上的车辆、行人、交通标志等。
- 路径规划:规划车辆的行驶路径。
- 行为预测:预测其他车辆和行人的行为。
推荐系统:
- 内容推荐:根据用户的兴趣和行为生成个性化的内容推荐。
- 商品推荐:根据用户的购买历史和偏好生成个性化的商品推荐。
- 广告推荐:根据用户的兴趣和行为生成个性化的广告推荐。
医疗健康:
- 药物生成:生成新的药物分子,帮助药物研发人员快速发现和优化药物。
- 诊断生成:生成诊断方案,帮助医生快速诊断和治疗疾病。
- 治疗生成:生成治疗方案,帮助医生优化治疗方案,提高治疗效果。
教育培训:
- 学习内容生成:生成个性化的学习内容,如课件、习题、考试等。
- 教学方案生成:生成个性化的教学方案,帮助教师优化教学方案。
- 学习评估生成:生成个性化的学习评估,如测验、考试、评估报告等。
4. 常见大模型
LLaMA2:
- 定义和来源:LLaMA2 是 LLaMA(Large Language Model Meta AI)的第二代模型,由 Meta(前身为 Facebook)开发。
- 功能特点:改进的架构、高效训练、多任务学习。
- 擅长场景:自然语言处理、对话系统、内容生成。
- 优缺点:高效训练、多任务学习、适应性强;需要大量计算资源和数据进行训练。
LLaMA3:
- 定义和来源:LLaMA3 是 LLaMA 系列的第三代模型。
- 功能特点:更深的网络结构、高效推理、多模态支持。
- 擅长场景:自然语言处理、多模态生成、内容生成。
- 优缺点:高效推理、多模态支持、适应性强;需要大量计算资源和数据进行训练。
BLOOM:
- 定义和来源:BLOOM 是一个开源的大型语言模型,由 BigScience 团队开发。
- 功能特点:开源、多语言支持、社区驱动。
- 擅长场景:自然语言处理、对话系统、内容生成。
- 优缺点:开源、多语言支持、社区驱动;性能可能不如一些专有模型。
BERT:
- 定义和来源:BERT(Bidirectional Encoder Representations from Transformers)是由 Google 开发的预训练语言模型。
- 功能特点:双向编码、预训练和微调、高效。
- 擅长场景:自然语言处理、信息检索、对话系统。
- 优缺点:双向编码、高效、适应性强;需要大量计算资源和数据进行预训练。
Falcon 180B:
- 定义和来源:Falcon 180B 是一个大规模的语言模型,具有 1800 亿参数。
- 功能特点:大规模参数、高性能、多任务学习。
- 擅长场景:自然语言处理、对话系统、内容生成。
- 优缺点:大规模参数、高性能、多任务学习;需要大量计算资源和数据进行训练。
Mistral 7B:
- 定义和来源:Mistral 7B 是一个具有 70 亿参数的语言模型。
- 功能特点:高效、多任务学习、灵活性。
- 擅长场景:自然语言处理、对话系统、内容生成。
- 优缺点:高效、多任务学习、灵活性强;需要大量计算资源和数据进行训练。
OpenHermes:
- 定义和来源:OpenHermes 是一个开源的大型语言模型。
- 功能特点:开源、多语言支持、社区驱动。
- 擅长场景:自然语言处理、对话系统、内容生成。
- 优缺点:开源、多语言支持、社区驱动;性能可能不如一些专有模型。
GPT-NeoX-20B:
- 定义和来源:GPT-NeoX-20B 是一个具有 200 亿参数的语言模型,由 EleutherAI 开发。
- 功能特点:大规模参数、开源、高性能。
- 擅长场景:自然语言处理、对话系统、内容生成。
- 优缺点:大规模参数、开源、高性能;需要大量计算资源和数据进行训练。
Pythia:
- 定义和来源:Pythia 是一个开源的大型语言模型。
- 功能特点:开源、多语言支持、社区驱动。
- 擅长场景:自然语言处理、对话系统、内容生成。
- 优缺点:开源、多语言支持、社区驱动;性能可能不如一些专有模型。
OpenLLaMA:
- 定义和来源:OpenLLaMA 是一个开源的大型语言模型。
- 功能特点:开源、多语言支持、社区驱动。
- 擅长场景:自然语言处理、对话系统、内容生成。
- 优缺点:开源、多语言支持、社区驱动;性能可能不如一些专有模型。
OlMA:
- 定义和来源:OlMA 是一个开源的大型语言模型。
- 功能特点:开源、多语言支持、社区驱动。
- 擅长场景:自然语言处理、对话系统、内容生成。
- 优缺点:开源、多语言支持、社区驱动;性能可能不如一些专有模型。
GPT-4 系列:
- 定义和来源:GPT-4 系列是 OpenAI 开发的第四代生成预训练变换器(GPT)模型。
- 功能特点:大规模参数、高性能、多任务学习。
- 擅长场景:自然语言处理、对话系统、内容生成。
- 优缺点:大规模参数、高性能、多任务学习;需要大量计算资源和数据进行训练。
Claude-3:
- 定义和来源:Claude-3 是一个大规模的语言模型。
- 功能特点:大规模参数、高性能、多任务学习。
- 擅长场景:自然语言处理、对话系统、内容生成。
- 优缺点:大规模参数、高性能、多任务学习;需要大量计算资源和数据进行训练。
GLM-4:
- 定义和来源:GLM-4 是一个大规模的语言模型。
- 功能特点:大规模参数、高性能、多任务学习。
- 擅长场景:自然语言处理、对话系统、内容生成。
- 优缺点:大规模参数、高性能、多任务学习;需要大量计算资源和数据进行训练。
文心一言:
- 定义和来源:文心一言 是百度开发的一个大规模语言模型,专为中文自然语言处理任务设计。
- 功能特点:中文支持、高性能、多任务学习。
- 擅长场景:自然语言处理、对话系统、内容生成。
- 优缺点:中文支持、高性能、多任务学习;需要大量计算资源和数据进行训练。
通义千问:
- 定义和来源:通义千问 是阿里巴巴开发的一个大规模语言模型,专为中文自然语言处理任务设计。
- 功能特点:中文支持、高性能、多任务学习。
- 擅长场景:自然语言处理、对话系统、内容生成。
- 优缺点:中文支持、高性能、多任务学习;需要大量计算资源和数据进行训练。
Abad6:
- 定义和来源:Abad6 是一个大规模的语言模型。
- 功能特点:大规模参数、高性能、多任务学习。
- 擅长场景:自然语言处理、对话系统、内容生成。
- 优缺点:大规模参数、高性能、多任务学习;需要大量计算资源和数据进行训练。
qwen:
- 定义和来源:qwen 是一个大规模的语言模型。
- 功能特点:大规模参数、高性能、多任务学习。
- 擅长场景:自然语言处理、对话系统、内容生成。
- 优缺点:大规模参数、高性能、多任务学习;需要大量计算资源和数据进行训练。
5. 硬件支持
GPU硬件组网:
- 定义:GPU硬件组网是指在多GPU系统中,通过高效的互联技术将多个GPU连接在一起,以实现高性能计算和数据处理。
- 组网技术:PCIe、NVLink、Infinity Fabric、RDMA、NVSwitch 等。
- 组网架构:单机多GPU架构、多机多GPU架构、GPU集群架构。
- 应用场景:深度学习训练、科学计算、高性能计算(HPC)等。
卡间互联:
- 定义:卡间互联是指在多GPU系统中,不同GPU之间进行数据传输和通信的技术。
- 重要性:数据传输速度、计算效率、扩展性。
- 技术:PCIe、NVLink、Infinity Fabric、RDMA、NVSwitch 等。
总结
人工智能技术已经成为现代科技发展的重要驱动力,广泛应用于自然语言处理、计算机视觉、语音识别、自动驾驶等领域。AI技术的发展经历了早期的神经网络研究、现代的深度学习兴起以及生成式AI的广泛应用。常见的大模型如 LLaMA2、LLaMA3、BLOOM、BERT、Falcon 180B、Mistral 7B、OpenHermes、GPT-NeoX-20B、Pythia、OpenLLaMA、OlMA、GPT-4 系列、Claude-3、GLM-4、文心一言、通义千问、Abad6、qwen 等在各个领域表现出色,推动了人工智能的发展和应用。