首页 >科技周边 >人工智能 >使用顶点AI探索嵌入模型

使用顶点AI探索嵌入模型

Lisa Kudrow
Lisa Kudrow原创
2025-03-11 09:46:11493浏览

向量嵌入对于许多先进的AI应用程序(包括语义搜索和异常检测)至关重要。本文提供了对嵌入的基本理解,重点是句子嵌入和矢量表示。我们将探索实用技术,例如均值合并和余弦相似性,使用BERT深入研究双重编码器的体系结构,并使用顶点AI在异常检测中检查其应用程序,以进行欺诈检测和内容调节等任务。

关键学习目标

  • 掌握向量嵌入在表示连续矢量空间内表示单词,句子和其他数据类型中的作用。
  • 了解令牌化以及象征性嵌入如何有助于句子级嵌入。
  • 学习使用顶点AI部署嵌入模型的关键概念和最佳实践,以应对现实世界中的AI挑战。
  • 通过整合增强分析和决策的嵌入模型来发现如何使用顶点AI优化和扩展应用程序。
  • 获得实践经验培训双重编码器模型,定义其架构和培训过程。
  • 使用隔离林之类的方法实施异常检测,以基于嵌入相似性来识别异常值。

*本文是***数据科学博客马拉松的一部分。

目录

  • 了解顶点嵌入
  • 解释了句子嵌入
  • 句子嵌入中的余弦相似性
  • 培训双重编码器模型
  • 提问的双重编码器
  • 双重编码器培训过程
  • 利用顶点AI的嵌入
  • 堆栈溢出的数据集创建
  • 生成文本嵌入
  • 批处理嵌入生成
  • 异常识别
  • 隔离森林以进行离群值检测
  • 结论
  • 常见问题

了解顶点嵌入

向量嵌入代表定义空间内的单词或句子。这些矢量的接近表示相似性。近距向量表示更大的语义相似性。虽然最初主要用于NLP,但它们的应用程序扩展到图像,视频,音频和图形。剪辑是一种突出的多模式学习模型,同时生成图像和文本嵌入。

向量嵌入的关键应用包括:

  • 在输入令牌转换后,LLMS将它们用作令牌嵌入。
  • 语义搜索采用它们来找到查询最相关的答案。
  • 在检索增强发电(RAG)中,句子嵌入有助于检索相关信息块。
  • 建议系统使用它们来表示产品并识别相关项目。

让我们检查一下抹布管道中的句子嵌入的重要性。

使用顶点AI探索嵌入模型

上图中的检索引擎标识了与用户查询有关的数据库信息。基于变压器的跨编码器可以将查询与所有信息进行比较,从而对相关性进行分类。但是,这很慢。矢量数据库通过存储嵌入并使用相似性搜索提供更快的替代方法,尽管精度可能略低。

了解句子嵌入

句子嵌入是通过将数学操作应用于令牌嵌入而创建的,这通常是由Bert或GPT等预训练的模型生成的。以下代码证明了Bert生成的令牌嵌入的平均汇总以创建句子嵌入:

 model_name =“ ./models/bert-base-uncased”
tokenizer = berttokenizer.from_pretaining(model_name)
型号= bertmodel.from_pretrataining(model_name)

def get_sentence_embedding(句子):
    encoded_input = tokenizer(句子,padding = true,truncation = true,return_tensors ='pt')
    activation_mask = encoded_input ['activation_mask']  

    使用Torch.no_grad():
        输出=模型(** encoded_input)

    token_embeddings = output.last_hidden_​​state
    input_mask_expanded = activation_mask.unsqueeze(-1).expand(token_embeddings.size())。float()


    ston_embedding = torch.sum(token_embeddings * input_mask_expanded,1) / torch.clamp(input_mask_expanded.sum(1),min = 1e-9)

    return stone_embedding.flatten()。tolist()

该代码加载了BERT模型,并定义了使用平均池化计算句子嵌入的函数。

骨骼嵌入的余弦相似性

余弦相似性衡量两个向量之间的相似性,使其适合比较句子嵌入。以下代码实现了余弦的相似性和可视化:

 def cosine_similarity_matrix(功能):
    norms = np.linalg.norm(特征,轴= 1,keepdims = true)
    归一化=功能 /规范
    samelity_matrix = np.inner(归一化_features,normolized_features)
    Rounded_similarity_matrix = np.Round(Sameity_matrix,4)
    返回rounded_simarility_matrix

def plot_simarlity(标签,功能,旋转):
    sim = cosine_similarity_matrix(功能)
    sns.set_theme(font_scale = 1.2)
    g = sns.heatmap(sim,xticklabels =标签,yticklabels =标签,vmin = 0,vmax = 1,cmap =“ ylorrd”)
    g.set_xticklabels(标签,旋转=旋转)
    g.set_title(“语义文本相似性”)
    返回g

消息= [
    # 技术
    “我更喜欢使用MacBook进行工作。”
    “ AI是否接管人类工作?”
    “我的笔记本电脑电池排出太快了。”

    # 运动的
    “你昨晚看过世界杯决赛吗?”
    “勒布朗·詹姆斯是一位令人难以置信的篮球运动员。”
    “我喜欢在周末参加马拉松比赛。”

    # 旅行
    “巴黎是一个美丽的城市。”
    “夏天最好的旅行场所是什么?”
    “我喜欢在瑞士阿尔卑斯山远足。”

    # 娱乐
    “最新的漫威电影很棒!”
    “你听泰勒·斯威夫特的歌吗?”
    “我对我最喜欢的系列的整个赛季进行了狂欢。”

这是给出的
嵌入= []
对于消息中的t:
    EMB = get_sentence_embedding(t)
    embeddings.append(EMB)

plot_simurility(消息,嵌入,90)

该代码定义句子,生成嵌入,并绘制显示其余弦相似性的热图。结果可能会表现出出乎意料的高相似性,激发了对诸如双重编码器之类的更准确方法的探索。

(其余部分以类似的方式继续进行,在维护核心信息并保留图像位置和格式的同时,对原始文本进行解释和重组。)

以上是使用顶点AI探索嵌入模型的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn