初识 Embedding,为何大家都基于它搭建私人智能客服?

news2024/11/15 13:54:12

随着 AI 技术的发展,大家在日常使用过程中经常会碰到一些目前 GPT4 也无法解决的问题:

  • 无法获取个人私有数据信息,进行智能问答
  • 无法获取最新信息,LLM 模型训练都是都是有截止日期的
  • 无法定制化私有的专属模型,从而在某个领域内取得更好效果

基于以上问题 OpenAI 官方提供了两种不同私有化模型定制方式:Fine-Tuning(微调)、Embedding(嵌入)。

一、Fine-Tuning 与 Embedding 区别

两种方式信息概括如下:

  • Fine-Tuning(微调):在一个已经预训练好的模型的基础上,使用用户提供的数据进行进一步的训练,从而使模型更适合用户的特定应用场景。微调可以提高模型的质量、准确性和可靠性,以及降低请求的延迟和代价。微调需要用户准备和上传训练数据,以及选择合适的模型和参数。
  • Embedding(嵌入):指将文本或其他内容转换为数值向量的形式,从而可以计算内容之间的相似度或相关性。OpenAI 的 Embedding 模型可以将文本解析为 1536 个维度,每个维度代表一个概念或特征。用户可以通过 Embedding 模型来存储、检索或比较文本或其他内容。Embedding 不需要用户提供训练数据,也不需要选择模型和参数。

Fine-Tuning 微调训练的成本较高,且自身需要一定的模型训练经验和一定规模的数据集,否则微调出来的模型效果并不会很理想。所以更推崇使用 Embedding 方式对数据进行处理从而达到预期效果,比如目前市面上智能客服完全可以通过 Embedding 实现落地。

二、Embedding 详细分析

接下来我们就来重点聊聊 Embedding ,它的大致流程是:

  1. 将已有数据集维护成对应的向量数据库
  2. 当用户通过 Prompt 进行提问时,从向量数据库提取相似或相近的信息
  3. 将信息连同 Prompt 一起发送给 GPT 模型来生成结果

这样做有一个好处就是我们只需要将相关的数据发送给 ChatGPT 即可,相对比较节约 Token。

Embedding 将数据转成成连续向量空间的过程,我们并不需要去深入了解。所以我们从 Embedding 如何识别相似或关联性数据讲起。

1. 如何从向量数据库提取相关数据?

从上面的概述我们可以了解到一个重点是:Embedding 模型需要将数据解析为 1536 个维度,每个维度代表一个概念或特征

将一段文字转换成这么多个维度的数据,从向量数据库提取的过程中就是根据这些维度进行计算。

人类是如何辨别一个人,想象自己平时是如何认出谁是谁呢?我们都是通过外表容貌来认人的(如眼睛大小、鼻子大小、脸型、发型等等),对我们熟悉的人,我们的脑海中会记住他的五官、身材等关键信息。

映射到向量数据也是一样的道理,将数据的 1536 个维度认为是它的“五官”,当我们需要从向量数据库中提取数据时只需要找到“五官”相似的数据即可。

图片

以如上二维坐标进行举例,相似或有关联性的向量数据就会分布在坐标系中比较临近的位置(奥运会、亚运会、残奥会),而内容基本不相干的向量数据(北京地铁)在坐标系中就会离得比较远。

2. 使用 OpenAI 生成向量数据

通过 OpenAI 官网我们也可以看到,价格还是比较便宜的。使用量按每个输入令牌定价,收费为每1000个 tokens 大约0.0004美元。

图片

通过 OpenAI 的 Embedding 方法调用,看看返回数据啥样。
在这里插入图片描述

接口返回了该文本对应的 1536 个维度数据,相当于我们已经掌握了这份文本数据的“五官”信息了。

图片

3. 如何提取相似数据?

在上面的方法上使用余弦值来比较相似度,代码如下:

import openai
from sklearn.metrics.pairwise import cosine_similarity

openai.api_key = "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"

if __name__ == '__main__':
    evaluate_one_text = "奥运会"    
    evaluate_two_text = "亚运会"    
    evaluate_three_text = "北京地铁"   
     
    # 对数据进行 embedding    
    embeddings = openai.Embedding.create(    
        model="text-embedding-ada-002",        
        input=[evaluate_one_text, evaluate_two_text, evaluate_three_text],    
    )    
    
    evaluate_one = embeddings["data"][0]["embedding"]    
    evaluate_two = embeddings["data"][1]["embedding"]    
    evaluate_three = embeddings["data"][2]["embedding"]   
    
    print("奥运会&亚运会的余弦距离:" + format(cosine_similarity([evaluate_one], [evaluate_two])[0][0]))    
    print("奥运会&北京地铁的余弦距离:" + format(cosine_similarity([evaluate_one], [evaluate_three])[0][0]))    
    print("北京地铁&亚运会的余弦距离:" + format(cosine_similarity([evaluate_three], [evaluate_two])[0][0]))

结果如下:

奥运会&亚运会的余弦距离:0.9022809359592784
奥运会&北京地铁的余弦距离:0.7898007980212471
北京地铁&亚运会的余弦距离:0.7767229785942393

计算两个数据的相似度,我们可以使用余弦相似度(cosine similarity)的方法,即计算两个向量之间的夹角的余弦值。余弦相似度的范围是[-1, 1],其中 1 表示完全相同,0表示正向相关性,-1表示完全相反。

通过这样一个简单的案例,我们就可以知道 OpenAI 是如何从向量数据库中提取到相似或相关联的数据。

结尾

本文主要讲解了 Embedding 的一些基本概念,后续会更新如何基于 Embedding 转换私人数据搭建私人客服。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2097233.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网站开发:HTML+CSS - 表格与表单

1. 前言​​​​​​​​​​​​​​ 表格与表单在网页开发中非常重要。表格使得用户可以更简洁清晰的去浏览信息。 表单提供了一种在客户端(浏览器)和服务器之间进行数据交互的方式。 以下为其主要作用: 用户交互和数据输入:表…

【射频模块的基本组成以及工作原理-3D动画演示】How RF Module works?

一. 模块简介 RF是射频,是高频交流变化电磁波的简称。通常指的是振荡频率从30KHz到300GHz之间的电磁波。而射频模块就指的是工作在射频频率之间的模块。 二. 基本组成 RF模块指的是一组RF发射器和RF接收器。工作频率为433MHz。 1. RF transmitter RF发射器接受串…

苹果手机丢了怎么找回?3个追踪法,30秒迅速定位

苹果手机已经成为了我们生活中交流、出行、工作的重要工具,如果不小心把手机弄丢了,则会给我们的衣食住行都带来很大的不便之处。对此,如果苹果手机丢了怎么找回呢? 本文将介绍3种追踪丢失手机的方法,帮助你快速定位丢…

关于Embedding的两种实现方式

目录 言简意赅方式一方式二以DNN为例两种方式全部demo代码 言简意赅 假设现在有一段话:“我爱你中国”,在训练入模的时候,常用的方法分别有:onehot、embedding、hash,如果词表很大、特征很多,那么onehot之…

macos 使用port查询并安装python2, python3多版本, 设置默认python版本方法

不管是新版macos还是旧版本的macos都可以使用macport这个包管理工具简单方便的在mac上面安装并存多个版本的python, 还可以利用port select --set python python3 来设置默认的python版本等. port search查询可用python安装包 命令 port search --name --line --regex ^pytho…

判断二分图

题目链接 判断二分图 题目描述 注意点 graph.length n不存在自环(graph[u] 不包含 u)不存在平行边(graph[u] 不包含重复值)如果 v 在 graph[u] 内,那么 u 也应该在 graph[v] 内(该图是无向图&#xff0…

深度解析C++中函数重载与引用

🌈个人主页:Yui_ 🌈Linux专栏:Linux 🌈C语言笔记专栏:C语言笔记 🌈数据结构专栏:数据结构 🌈C专栏:C 文章目录 1. 函数重载1.1 函数重载概念1.2 C支持函数重载…

前端Flex布局常见的几个问题

1. 如何设置Flex布局的排列方向? 要设置Flex布局的排列方向,你可以使用CSS的flex-direction属性。该属性有四个值可以选择:row(默认值,水平排列)、row-reverse(反向水平排列)、colu…

零信任赋予安全牙齿,AI促使它更锋利

距离上次写关于安全的文字已经过去了很久很久,久到上次看到的AI还停留在TTS、ASR等最初的语音交互搜索类似的各种智能音箱以及通过关键字匹配的基于知识库的聊天的机器人。之后的几年各种视觉识别遍地开花,AI四小龙在人脸识别上成熟应用,再然…

Java:数字验证

Java中的有效数字验证:从混乱到清晰 引言问题背景初始尝试:一段令人困惑的代码解决方案:简化与重构 结语 引言 在计算机科学领域,确保输入数据的有效性至关重要。 尤其在处理用户提交的数据或解析文本文件时,确认数据…

第二证券:大洗牌!头部券商营收、净利集体下滑

前十券商营收团体下滑,银河证券跌幅最小 新股IPO数量锐减129家至44家,国内证券市场股票基金交易量日均规划 同比下降 6.83%……关于证券公司而言,本年上半年可谓多重要素叠加冲击,成果下滑难以避免。于大多数证券公司而言&#x…

金融行业选择数据安全交换系统三定律,你遵从了没?

金融行业对我国的重要性不言而喻,它作为国民经济的血脉,是国家核心竞争力的重要组成部分。金融行业是数据密集型行业,数据是金融行业的重要资产。数据在金融行业内部及内外部流动时,其价值才得以发挥,金融行业的业务以…

在麒麟系统安装php7.4中遇到的问题

一、安装过程 下载相关php安装包,进行解压,进入安装包,进行编译安装,编译 ./configure --prefix/soft/php74 --with-config-file-path/soft/php74/etc --with-libdir/usr/lib64 --with-freetype/usr/include/freetype2/free…

Zynq7000系列FPGA中的DDRC纠错码(ECC)

仅在半总线宽度(16位)数据宽度配置中提供可选的ECC支持。这种配置下,外部DRAM DDR设备需要26位,其中16位用于数据,10位用于ECC。每个数据字节使用独立的5位ECC字段,这种模式提供了单错误纠正和双错误检测的…

【C++】vector迭代器失效问题

本文是对vector迭代器失效问题的分析,需要对vector有一定了解,若还不了解的可以看这篇文章进行学习:【C】容器vector常用接口详解-CSDN博客 目录 一.什么是迭代器失效? 二.迭代器失效的典型案例 1.引起底层空间改变 2.指定位置…

Docker 在 Windows 上的使用指南

Docker 在 Windows 上的使用指南 Docker 是一种强大的容器化平台,广泛应用于开发和生产环境。本文将介绍如何在 Windows 系统上使用 Docker,包括容器的启动、常见问题的排查,以及网络问题的解决方法。 1. Docker 安装与配置 在开始使用 Do…

大模型书单指南:如何快速找到最适合你的那一本书?别找了就是这本!

大模型的书这么多,该怎么选呢? 本期书单就来教大家怎么快速地从众多大模型书中选到你想要的那一本! 大模型基础 大模型入门不可错过的一本书,就是这本大模型界的经典畅销书**《大规模语言模型》**!系统性强&#xf…

如何从 Mac 上清空的垃圾箱中恢复误删除的文件

在 Mac 上删除的文件将被移至垃圾箱并保留 30 天,然后才会被永久删除。但是,许多 Mac 用户可能会意外清空垃圾箱而没有意识到其中包含了重要文件。本指南包含从清空的垃圾箱中恢复 Mac 上已删除文件的所有有效方法。 当您意识到自己意外清空了 Mac 上的…

C语言基础(三十一)

1、线性搜索&#xff1a; #include "date.h" #include <stdio.h> #include <stdlib.h> #include <time.h> // 希尔排序 void shellSort(int arr[], int n) { for (int gap n / 2; gap > 0; gap / 2) { for (int i gap; i < n; i…

vue学习记录十四:路由(router)学习(五):Vue Router基本原理实现第二种方法

vue学习记录十四&#xff1a;路由&#xff08;router&#xff09;学习&#xff08;四&#xff09;&#xff1a;Vue Router基本原理实现二 一、vueRouter目录结构二、模拟vueRouter目录结构三、index.js文件实现四、install.js文件实现五、创建组件六、解析路由规则七、match实现…