CHATGPT学习笔记-定制嵌入(客户化)customizing Embedding。

这篇具有很好参考价值的文章主要介绍了CHATGPT学习笔记-定制嵌入(客户化)customizing Embedding。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在ChatGPT的API中,"embedding"通常被翻译为"嵌入"。这是一种将词汇、句子或更大的文本块转化为数值向量的方法,这些向量可以被机器学习模型理解和处理。"嵌入"这个词在此上下文中的含义是,文本信息被"嵌入"到高维空间中,每个维度都代表文本的某种特性。

那怎么理解被嵌入到高维空间中,每个维度都代表文本的某种特性呢?

"嵌入到高维空间"是一种表示方式,它意味着文本信息被转化为具有多个维度的数值向量。每个维度都代表文本的某种潜在特性。这些特性并不是预定义的或可解释的(例如,“这个维度代表语气”,“那个维度代表情感”等),而是在训练嵌入模型的过程中通过机器学习自动学习的。

举个例子,如果我们有一个词嵌入模型,我们可能会将单词“猫”嵌入为一个300维的向量。这个向量中的每个数字(或"维度")都代表了单词"猫"的某种抽象特性。这些特性是在模型学习过程中自动发现的,它们可能与语义相似性、语法关系、共现模式等有关,但我们通常不能精确地知道每个特定维度的含义。

然后,这些向量可以被用于各种NLP任务,如文本分类、命名实体识别、情感分析等。模型可以通过比较两个或更多词向量之间的距离或角度,来理解词之间的关系。例如,词嵌入模型可能会学习到"猫"和"狗"的向量在空间中相对接近,因为它们在很多上下文中都有相似的用法(都是宠物、都是动物等)。而"猫"和"微积分"的向量可能会相对远离,因为它们在语义上差别较大。

openai提供openai.embeddings_utils给用户做embedding的相关操作。

具体的例子大家可以学习

openai/cookbook/examples/Customizing_embeddings.ipynb

这个例子演示了如何将 OpenAI 嵌入定制到特定任务。

输入是以 [text_1, text_2, label] 形式的训练数据,其中 label 是 +1 表示配对相似,-1 表示配对不相似。

输出是一个可以用来矩阵乘法的嵌入矩阵。这个乘积是一个"定制嵌入",它将更好地强调与用例相关的文本方面。在二元分类的用例中,可以看到错误率降低了高达 50%。

在示例中,使用了从 SNLI 语料库中挑选的 1000 对句子对。每对句子都是逻辑上的蕴含关系(即,一个暗示着另一个)。正面例子(label = 1)。我们通过组合来自不同配对的句子生成合成的负面例子,这些句子被假设为不是逻辑上的蕴含关系(label = -1)。

对于一个聚类用例,你可以通过从同一聚类中的文本创建配对来生成正面例子,通过从不同聚类中的句子创建配对来生成负面例子。

对于其他数据集,我们看到即使只有大约 100 个训练样本也有了不错的改进。当然,有更多的例子,性能会更好。

训练数据是data/snli_1.0_train_2k.csv,这个数据集的样子如下:

,annotator_labels,captionID,gold_label,pairID,sentence1,sentence1_binary_parse,sentence1_parse,sentence2,sentence2_binary_parse,sentence2_parse 0,['neutral'],3416050480.jpg#4,neutral,3416050480.jpg#4r1n,A person on a horse jumps over a broken down airplane.,( ( ( A person ) ( on ( a horse ) ) ) ( ( jumps ( over ( a ( broken ( down airplane ) ) ) ) ) . ) ),(ROOT (S (NP (NP (DT A) (NN person)) (PP (IN on) (NP (DT a) (NN horse)))) (VP (VBZ jumps) (PP (IN over) (NP (DT a) (JJ broken) (JJ down) (NN airplane)))) (. .))),A person is training his horse for a competition.,( ( A person ) ( ( is ( ( training ( his horse ) ) ( for ( a competition ) ) ) ) . ) ),(ROOT (S (NP (DT A) (NN person)) (VP (VBZ is) (VP (VBG training) (NP (PRP$ his) (NN horse)) (PP (IN for) (NP (DT a) (NN competition))))) (. .))) 1,['contradiction'],3416050480.jpg#4,contradiction,3416050480.jpg#4r1c,A person on a horse jumps over a broken down airplane.,( ( ( A person ) ( on ( a horse ) ) ) ( ( jumps ( over ( a ( broken ( down airplane ) ) ) ) ) . ) ),(ROOT (S (NP (NP (DT A) (NN person)) (PP (IN on) (NP (DT a) (NN horse)))) (VP (VBZ jumps) (PP (IN over) (NP (DT a) (JJ broken) (JJ down) (NN airplane)))) (. .))),"A person is at a diner, ordering an omelette.","( ( A person ) ( ( ( ( is ( at ( a diner ) ) ) , ) ( ordering ( an omelette ) ) ) . ) )","(ROOT (S (NP (DT A) (NN person)) (VP (VBZ is) (PP (IN at) (NP (DT a) (NN diner))) (, ,) (S (VP (VBG ordering) (NP (DT an) (NN omelette))))) (. .)))" 2,['entailment'],3416050480.jpg#4,entailment,3416050480.jpg#4r1e,A person on a horse jumps over a broken down airplane.,( ( ( A person ) ( on ( a horse ) ) ) ( ( jumps ( over ( a ( broken ( down airplane ) ) ) ) ) . ) ),(ROOT (S (NP (NP (DT A) (NN person)) (PP (IN on) (NP (DT a) (NN horse)))) (VP (VBZ jumps) (PP (IN over) (NP (DT a) (JJ broken) (JJ down) (NN airplane)))) (. .))),"A person is outdoors, on a horse.","( ( A person ) ( ( ( ( is outdoors ) , ) ( on ( a horse ) ) ) . ) )","(ROOT (S (NP (DT A) (NN person)) (VP (VBZ is) (ADVP (RB outdoors)) (, ,) (PP (IN on) (NP (DT a) (NN horse)))) (. .)))"

是一种用于自然语言处理(NLP)任务的数据集,特别是用于文本蕴含任务(Textual Entailment)。文本蕴含任务是一种NLP任务,目标是确定一个给定的语句(前提)是否蕴含或冲突于另一个语句(假设)。

在这个数据集中,每个条目都包含了两个句子(sentence1和sentence2)和一个标签(gold_label)。标签有三种可能的值:"entailment","contradiction",或者 "neutral":

  • "entailment":表示sentence1蕴含了sentence2,即根据sentence1,我们可以推断出sentence2是正确的。
  • "contradiction":表示sentence1与sentence2是矛盾的,即根据sentence1,我们可以推断出sentence2是错误的。
  • "neutral":表示sentence1既不蕴含也不矛盾于sentence2,即sentence1没有提供足够的信息来确定sentence2是正确还是错误。

这种数据集被用于训练一个机器学习模型,让它学会理解和推断语句之间的这种关系。在训练过程中,模型会尝试根据输入的两个句子预测正确的标签。然后,模型的预测结果会与真实的标签进行比较,如果预测正确,模型就会得到积极的反馈;如果预测错误,模型就会得到负面的反馈,然后进行调整以改进未来的预测。

代码例子主要是以下几个步骤。

0.加载类库

1.定义输入

2.加载和处理数据

3.把数据拆成训练数据集

4.生成-合成负样本

5.计算嵌入向量和余弦相似度:创建了一个缓存来保存嵌入向量。如果再次运行代码,就不必再次计算嵌入向量。

6.绘制余弦相似度的分布:在这里使用余弦相似度来衡量文本的相似度。根据经验,大部分的距离函数(L1, L2, 余弦相似度)的工作效果大致相同。注意,嵌入向量已经被归一化到长度1,所以余弦相似度等同于点积。

这些图表展示了相似对和不相似对的余弦相似度分布之间的重叠程度。如果重叠程度很高,那就意味着有一些不相似的对具有比一些相似的对更大的余弦相似度。

计算的准确率是一个简单规则的准确率,该规则预测'相似(1)',如果余弦相似度高于某个阈值X,否则预测'不相似(0)'。

7.使用提供的训练数据优化矩阵:这段代码的目的是将训练得到的优化矩阵(matrix)应用到嵌入向量上,从而得到优化后的嵌入向量,然后计算这些优化后的嵌入向量之间的相似度。

8.绘制训练前后的图像,展示在训练过程中找到的最佳矩阵的结果 矩阵越好,它将相似和不相似的对分离得就越干净。文章来源地址https://www.toymoban.com/news/detail-451371.html

到了这里,关于CHATGPT学习笔记-定制嵌入(客户化)customizing Embedding。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【图神经网络】图神经网络(GNN)学习笔记:Graph Embedding

    Graph广泛存在于真实世界的多种场景中,即节点和边的集合。比如社交网络中人与人之间的联系,生物中蛋白质相互作用以及通信网络中的IP地址之间的通信等等。除此之外,我们最常见的一张图片、一个句子也可以抽象地看做是一个图模型的结构,图结构可以说是无处不在。

    2024年02月08日
    浏览(47)
  • 深度学习笔记之Transformer(六)Position Embedding铺垫:Skipgram与CBOW模型

    上一节介绍了 Word2vec text{Word2vec} Word2vec 模型架构与对应策略。本节将继续介绍 Skipgram text{Skipgram} Skipgram 与 CBOW text{CBOW} CBOW 模型架构。 关于 Word2vec text{Word2vec} Word2vec 模型,它的 任务目标 是基于 语料库 ( Corpus ) (text{Corpus}) ( Corpus ) ,对该语料库对应 词汇表 ( Vocabulary ) (

    2024年02月15日
    浏览(39)
  • 神经网络算法 —— Embedding(嵌入)!!

    文章目录 前言 1、Embedding的本质 (1)机器学习中的Embedding (2)NLP中的Embedding 2、Embedding的原理 (1)Image Embedding(图像嵌入) (2)Word Embedding(词嵌入) 3、Embedding的应用 (1)Embedding + 推荐系统 (2)Embedding + 大模型 本文将从 Embedding 的 本质 、Embedding的 原理 、Embedding的

    2024年02月20日
    浏览(33)
  • 深度学习笔记之Transformer(五) Position Embedding铺垫:Word2vec

    在Transformer(三)自注意力机制一节中介绍了 位置编码 ( Position Embedding ) (text{Position Embedding}) ( Position Embedding ) ,本系列针对位置编码 再回首 ,从公式角度重新认识位置编码。本节作为铺垫,介绍一下 词向量 模型—— Word2vec text{Word2vec} Word2vec 。 在循环神经网络简单示例中

    2024年02月13日
    浏览(35)
  • 语言模型中“嵌入”(embedding)概念的介绍

           嵌入(embedding)是一种尝试通过数的数组来表示某些东西“本质”的方法,其特性是“相近的事物”由相近的数表示。        嵌入(Embedding)是一种将高维、离散或符号形式的数据转换为低维连续向量表示的方法。这些连续的数值数组能够捕捉原始数据中难以直接

    2024年02月22日
    浏览(39)
  • CVPR 2022 Image Dehazing Transformer with Transmission-Aware 3D Position Embedding 个人学习笔记

    源码下载: CVPR2022ImageDehazingTransformerwithTransmission-Aware3D代码-深度学习文档类资源-CSDN下载 Abstract 尽管卷积神经网络(CNNs)的单图像去模糊已经取得了良好的进展,但卷积固有的 等方差 和 局部性 仍然是去雾性能的 瓶颈 。虽然 Transformer 占据了各种计算机视觉任务,但直接利

    2023年04月08日
    浏览(51)
  • 【Pytorch:nn.Embedding】简介以及使用方法:用于生成固定数量的具有指定维度的嵌入向量embedding vector

    首先我们讲解一下关于嵌入向量embedding vector的概念 1) 在自然语言处理NLP领域,是将单词、短语或其他文本单位映射到一个固定长度的实数向量空间中 。嵌入向量具有较低的维度,通常在几十到几百维之间,且每个维度都包含一定程度上的语义信息。这意味着在嵌入向量空

    2024年02月12日
    浏览(33)
  • 【ChatGPT】Mr. Ranedeer:可定制个性化学习体验的 GPT-4 AI 导师提示

    Mr. Ranedeer AI Tutor 是一个可定制的提示,为具有不同需求和兴趣的用户提供个性化的学习体验。它使用GPT-4来释放AI的潜力,并允许您调整知识深度以匹配您的学习需求,自定义学习风格,沟通类型,语气和推理框架 。 当您使用Mr. Ranedeer AI Tutor时,您 可以选择自己的学习风格

    2024年02月11日
    浏览(51)
  • 2.自然语言处理NLP:词映射为向量——词嵌入(word embedding)

    1. 什么是词嵌入(word2vec) : 把词映射为向量(实数域)的技术 2. 为什么不采用one-hot向量: one-hot词向量无法准确表达不同词之间的相似度,eg:余弦相似度,表示夹角之间的余弦值,无法表达不同词之间的相似度。 3. word2vec主要包含哪两个模型 跳字模型: 基于某个词生成

    2024年02月06日
    浏览(55)
  • 玩转ChatGPT:Custom instructions (vol. 1)

    一、写在前面 据说GPT-4又被削了,前几天让TA改代码,来来回回好几次才成功。 可以看到之前3小时25条的限制,现在改成了3小时50条,可不可以理解为:以前一个指令能完成的任务,现在得两条指令?  可能作为补偿,OpenAI对于Plus用户开放了Custom instructions功能,具体打开方

    2024年02月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包