向量化(Vectorization)是一种将数据或操作转换为向量的过程,以便利用并行计算和高效处理。向量化将非数值数据(如文本、图像)转换为数值向量,以便计算机处理。而向量化在AIGC中非常的常见,例如知识库对话等等。如果大家感兴趣,后面专门来聊聊。
向量长什么样?例如:[0.25, -0.1, 0.7],向量化后的数据通常是一个数值数组
那我们如何将文本向量化呢,有很多种方式,这里我们使用Embedding。
Embedding(嵌入)是一种将高维、离散的数据(如单词、类别、图像等)映射到低维、连续的向量空间的技术。这些向量能够捕捉数据的语义或特征信息,广泛应用于自然语言处理(NLP)、推荐系统和机器学习等领域。
例如通过下面的代码我们可以将文本转换为向量化:
from transformers import BertTokenizer, BertModeltokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertModel.from_pretrained('bert-base-uncased')
inputs = tokenizer("I love programming", return_tensors="pt")
outputs = model(**inputs)
embeddings = outputs.last_hidden_state # 获取单词或句子的向量
向量数据库是一种专门设计用于存储和查询向量数据的数据库,而ElasticSearch就可以用来