人工智能数学基础 - 线性代数之向量篇

火山方舟向量数据库弹性计算

本文将从向量的哲学三问: 向量是什么?向量从哪来? 向量用到哪里去? 带 您一文搞懂人工智能数学基础-线性代数之 向量。

picture.image 向量的哲学三问

一、向量是什么?

向量定义向量是一组有序的数字(标量),用于在多维空间中表示数据点或特征。这些数字构成了一个列表或数组,其中每个元素对应于一个特定的维度。

picture.image

向量定义

向量正逐步崭露头角,有望成为AI时代的数据交换标准,类似于互联网时代广泛使用的JSON(JavaScript Object Notation)。

  • 数据表示:在AI中,各种类型的数据(如文本、图像、声音)经常被转换为向量形式,以便进行处理和分析。
  • 特征提取:向量中的每个元素可以代表数据的一个特征,如图像的像素强度或文本的语义属性。
  • 模型参数:在机器学习中,模型的参数(如权重和偏差)通常以向量的形式表示,并通过优化算法进行训练。
  • 有序性:向量中的元素是有序排列的,每个位置对应一个特定的维度。
  • 可运算性:向量支持各种数学运算,如加法、减法、点积等,这些运算在AI算法中广泛应用。
  • 维度:向量的维度(即元素的数量)可以根据任务和数据类型的不同而变化,可以是二维、三维或更高维度。

向量是Encoder-Decoder的桥梁: 将现实问题转化为数学问题,通过求解数学问题来得到现实世界的解决方案。

picture.image

Encoder-Decoder(编码器-解码器)

  • Encoder (编码器):“将现实问题转化为数学问题”

picture.image

Encoder编码器

  • Decoder (解码器):“求解数学问题,并转化为现实世界的解决方案”

picture.image

Decoder解码器

二、 向量从哪来?

向量转换过程非结构化数据转换成向量的过程称为 Embedding(嵌入)。通过深度学习的训练,可以将真实世界数字化后的离散特征提取出来,投影到数学空间上,成为一个数学意义上的向量,同时很神奇的保留着通过向量之间的距离表示语义相似度的能力。

picture.image 非结构化数据转成向量的过程(Embedding)

Embedding 的过程:

  1. 数据准备:首先,需要收集和处理非结构化数据,如文本、图像或声音。对于文本数据,可能需要进行分词、去除停用词等预处理步骤。
  2. 模型选择:选择一个适合任务的神经网络模型,如Word2Vec、BERT(对于文本),或卷积神经网络(对于图像)。
  3. 训练过程:通过大量数据训练神经网络模型。在训练过程中,模型学习将输入的非结构化数据映射到低维向量空间,同时优化损失函数以保留数据间的相似性。
  4. 向量提取:训练完成后,模型可以将任何输入的非结构化数据转换为向量。这些向量捕捉了数据的语义信息,使得相似的输入具有相近的向量表示。

向量检索: 向量相关的工程技术里最核心的当然是向量检索算法,即如何在海量向量里找到跟目标向量最相似的 K 个,又叫 topK。

picture.image 向量检索算法

  1. 暴力检索(Brute-force Search)
  • 算法描述:暴力检索是一种最直观的向量检索方法。对于给定的查询向量,它会计算该向量与数据库中所有向量的相似度,然后返回相似度最高的K个向量作为结果。
  • 优点:简单易懂,易于实现。
  • 缺点:当数据库向量数量非常大时,计算量大,检索速度慢。

  1. 基于树的检索算法(Tree-based Search Algorithms)

2.1 KD树(KD-tree)

  • 算法描述:KD树是一种分割k维数据空间的数据结构,常用于多维空间中的点搜索。在向量检索中,KD树可用于快速查找与查询向量相近的向量。
  • 优点:对于低维数据,检索效率高。
  • 缺点:对于高维数据,由于“维数灾难”,性能可能会急剧下降

2.2 球树(Ball-tree)

  • 算法描述:球树是另一种基于树结构的向量检索算法,它使用超球体来划分数据空间,而不是像KD树那样使用超平面。
  • 优点:对于高维数据,球树通常比KD树更有效。
  • 缺点:构建和维护球树可能比KD树更复杂。

3. 最近邻搜索算法(Nearest Neighbor Search Algorithms)

3.1 ANN(Approximate Nearest Neighbor)

  • 算法描述:ANN算法是一类近似最近邻搜索算法的统称,它们的目标是在牺牲一定精度的情况下,显著提高检索速度。常见的ANN算法有FLANN、FAISS等。
  • 优点:检索速度快,适用于大规模数据集。
  • 缺点:结果是近似的,可能不是绝对的最近邻。

三、向量用到哪里去?

向量数据库: 一个典型的基于向量数据库的应用框图可以表示如下:

picture.image

基于向量数据库的应用框图

步骤一:生成向量嵌入

  • 使用嵌入模型(如深度学习)将原始数据(文本、图像等)转换为多维向量。
  • 这些向量捕捉数据的语义特征,使相似数据在向量空间中相互靠近。

步骤二:存储与索引

  • 将生成的向量嵌入存储在专门的向量数据库中。
  • 数据库为高效检索建立索引,并保留对原始数据的引用。

步骤三:查询与相似性匹配

  • 当有新查询时,使用相同的嵌入模型将其转换为向量。
  • 在数据库中搜索与查询向量最相似的向量嵌入。
  • 返回相似向量对应的原始数据作为查询结果。

提示词工程: 大模型应用离不开提示词工程。提示词工程怎么做呢?主要就是为大模型整理一个资料库,然后在访问流程上,先从海量资料库里找到最匹配的内容,拼接提示词来增强回答,本质上就是一个搜索引擎。

picture.image

提示词工程

LangChain+ Embedding+ 向量数据库构建提示词工程是指结合LangChain+(一个假设的或特定的NLP框架/工具)的文本处理能力和Embedding技术(将文本或其他数据转换为向量的方法),以及向量数据库的高效存储和检索能力,来构建和优化基于提示词的AI系统。构建此类工程时可能涉及的关键步骤和组件如下:

  1. LangChain+ 文本处理
  • 文本理解:利用LangChain+的NLP功能来理解和分析输入文本,提取关键信息和上下文。
  • 文本生成:根据用户输入或系统需求,生成自然、相关且有用的文本响应。

  1. Embedding 技术
  • 词嵌入:将文本中的单词或短语转换为高维空间的向量表示,捕捉语义和语法关系。
  • 句子嵌入:将整个句子或段落转换为向量,用于更高级别的文本比较和检索。
  • 预训练模型:利用预先在大规模语料库上训练的模型(如BERT、GPT等)来获取高质量的嵌入向量。

  1. 提示词工程设计
  • 提示词定义:明确提示词在系统中的作用,例如引导文本生成、触发特定功能等。
  • 模板设计:创建可复用的提示词模板,以适应不同的应用场景和用户输入。
  • 动态生成:根据实时上下文和用户反馈,动态生成和调整提示词。

  1. 向量数据库构建与管理
  • 数据库选择:选择合适的向量数据库系统,以支持高效存储和快速检索大量嵌入向量。
  • 数据索引:为嵌入向量创建索引,以加速查询和匹配过程。
  • 性能优化:通过调整数据库参数、使用近似查询算法等方式优化系统性能。

  1. 系统集成与测试
  • 组件集成:将LangChain+、Embedding技术和向量数据库无缝集成到一个统一的系统中。
  • 功能测试:验证系统的各项功能是否按预期工作,包括文本处理、嵌入生成、提示词生成和数据库操作等。
  • 性能测试:评估系统在不同负载和数据规模下的性能表现,确保满足生产环境的要求。
0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
亿万用户下高可用融合直播的应用实践
直播融合 CDN 调度系统承担了公司内所有直播流量的接入工作,对高并发高带宽场景支持友好,有完善的体系进行容灾降级、质量优化、成本优化。本次演讲将带大家了解直播融合 CDN 调度系统的整体架构及在抖音上的应用。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论