当前位置: 首页 > news >正文

南昌市科协网站工商注册查询官网

南昌市科协网站,工商注册查询官网,单位网站建设的必要性,黄埔网站建设Embedding介绍 Embedding是向量的意思#xff0c;向量可以理解为平面坐标中的一个坐标点(x,y),在编程领域#xff0c;一个二维向量就是一个大小为float类型的数组。也可以用三维坐标系中的向量表示一个空间中的点。在机器学习中#xff0c;向量通常用于表示数据的特征。 向量…Embedding介绍 Embedding是向量的意思向量可以理解为平面坐标中的一个坐标点(x,y),在编程领域一个二维向量就是一个大小为float类型的数组。也可以用三维坐标系中的向量表示一个空间中的点。在机器学习中向量通常用于表示数据的特征。 向量分数越高代表位置越接近匹配的数据越相似。 文本向量化 而文本向量化是指利用大模型可以吧一个字一个词或一段话映射为一个多维向量比如我们可以直接在LangChain4j中调用向量模型来对一句话进行向量化。 案例代码 public class EmbeddingDemo{public static void main(String[] args) {OpenAiEmbeddingModel embeddingModel OpenAiEmbeddingModel.builder().baseUrl(http://langchain4j.dev/demo/openai/v1).apiKey(demo).build();ResponseEmbedding embed embeddingModel.embed(你好我叫gorgor);System.out.println(embed.content().toString());System.out.println(embed.content().vector().length);} } 代码执行结果为 Embedding { vector [-0.019351093, -0.02137422...] } 1536 从结果可以知道“你好我叫gorgor”这句话经过大模型向量化之后得到一个长度为1536的float数组。注意1536是固定的不会随着句子长度而变化。 那么我们通过这种向量模型得到一句话对应的向量有什么作用呢非常有用因为我们可以基于向量来判断两句话之间的相似度进而可以实现超越elasticsearch的高级搜索。 向量相似度 我们可以使用余弦相似度来计算向量的相似度余弦相似度是一种用于衡量向量之间相似度的指标可以用于文本向量之间的相似度在计算机中用来判断文本之间的距离。 例如 机器学习表示为 [1,2,3] 深度学习表示为[2,3,3] 英雄联盟表示为[9,1,3] 示例代码余弦相似度 package com.gorgor.langchain4j.embedding;import java.util.*;public class CosineSimilarity {// 计算两个向量的点积public static double dotProduct(double[] vectorA, double[] vectorB) {double dotProduct 0;for (int i 0; i vectorA.length; i) {dotProduct vectorA[i] * vectorB[i];}return dotProduct;}// 计算向量的模public static double vectorMagnitude(double[] vector) {double magnitude 0;for (double component : vector) {magnitude Math.pow(component, 2);}return Math.sqrt(magnitude);}// 计算余弦相似度public static double cosineSimilarity(double[] vectorA, double[] vectorB) {double dotProduct dotProduct(vectorA, vectorB);double magnitudeA vectorMagnitude(vectorA);double magnitudeB vectorMagnitude(vectorB);if (magnitudeA 0 || magnitudeB 0) {return 0; // 避免除以零} else {return dotProduct / (magnitudeA * magnitudeB);}}public static void main(String[] args) {// 示例向量//机器学习double[] vectorA {1, 2, 3};//深度学习double[] vectorB {2,3,3};//英雄联盟double[] vectorC {9,1,3};// 计算余弦相似度//机器学习”与“深度学习”的距离double similarityAB cosineSimilarity(vectorA, vectorB);System.out.println(Cosine SimilarityAB: similarityAB);//机器学习”与“英雄联盟“的距离double similarityAC cosineSimilarity(vectorA, vectorC);System.out.println(Cosine SimilarityAB: similarityAC);} }代码执行结果 Cosine SimilarityAB: 0.9686648999069225 Cosine SimilarityAB: 0.5603318146805258 结论“机器学习”与“深度学习”两个文本之间的余弦相似度更高表示它们在语义上更相似。 文本向量算法 文本向量算法是指将文本数据转化为向量表示的具体算法通常包括以下几个步骤 分词将文本划分成一个个单词或短语。构建词汇表将分词后的单词或短语建立词汇表并为每个单词或短语赋予一个唯一的编号。计算词嵌入使用预训练的模型或自行训练的模型将每个单词或短语映射到向量空间中。计算文本嵌入将文本中每个单词或短语的向量表示取平均或加权平均得到整个文本的向量表示。 常见的文本向量算法包括 Word2Vec、GloVe、FastText 等。这些算法通过预训练或自行训练的方式将单词或短语映射到低维向量空间中从而能够在计算机中方便地处理文本数据。当然这中间最关键的就是向量模型因为向量是它生成的向量模型也是经过大量机器学习训练之后产生的向量模型效果越好就表示它对于自然语言理解的程度越好同时也就表示它生成出来的向量越准确越能反映出语义的相似度。 文本向量用途 文本嵌入用于测量文本字符串的相关性通常用于 搜索结果按与查询字符串的相关性排序聚类其中文本字符串按相似性分组推荐推荐具有相关文本字符串的项目异常检测识别出相关性很小的异常值多样性测量分析相似性分布分类其中文本字符串按其最相似的标签分类 向量数据库 LangChain4j支持的向量数据库 向量数据库名称保存过滤删除In-memory✅✅✅Astra DB✅  Azure AI Search✅✅ Azure CosmosDB Mongo vCore✅  Azure CosmosDB NoSQL✅  Cassandra✅  Chroma✅  Elasticsearch✅✅✅Infinispan✅  Milvus✅✅✅MongoDB Atlas✅  Neo4j   OpenSearch✅  PGVector✅✅✅Pinecone   Qdrant✅  Redis✅  Vearch✅  Vespa   Weaviate✅ ✅ EmbeddingStore表示向量数据库它有20个实现类 AstraDbEmbeddingStoreAzureAiSearchEmbeddingStoreCassandraEmbeddingStoreChromaEmbeddingStoreElasticsearchEmbeddingStoreInMemoryEmbeddingStoreInfinispanEmbeddingStoreMemoryIdEmbeddingStoreMilvusEmbeddingStoreMinimalEmbeddingStoreMongoDbEmbeddingStoreNeo4jEmbeddingStoreOpenSearchEmbeddingStorePgVectorEmbeddingStorePineconeEmbeddingStoreQdrantEmbeddingStoreRedisEmbeddingStoreVearchEmbeddingStoreVespaEmbeddingStoreWeaviateEmbeddingStore 其中我们熟悉的有Elasticsearch、MongoDb、Pg、Redis令人惊喜的是MySQL 9.0也开始支持面向Ai的向量数据库了。 案例实现 下面案例就以redis来演示对于向量的增删改查 引入redis依赖 dependencygroupIddev.langchain4j/groupIdartifactIdlangchain4j-redis/artifactIdversion${langchain4j.version}/version /dependency 然后需要注意的是普通的Redis是不支持向量存储和查询的需要额外的redisearch模块我这边是直接使用docker来运行一个带有redisearch模块的redis容器的命令为 docker run -p 6379:6379 redis/redis-stack-server:latest 注意端口6379不要和你现有的Redis冲突了。 然后就可以使用以下代码把向量存到redis中了 public class EmbeddingDemo {public static void main(String[] args) {OpenAiEmbeddingModel embeddingModel OpenAiEmbeddingModel.builder().baseUrl(http://langchain4j.dev/demo/openai/v1).apiKey(demo).build();RedisEmbeddingStore embeddingStore RedisEmbeddingStore.builder().host(127.0.0.1).port(6379).dimension(1536).build();TextSegment textSegment1 TextSegment.textSegment(机器学习);TextSegment textSegment2 TextSegment.textSegment(深度学习);TextSegment textSegment3 TextSegment.textSegment(英雄联盟);// 生成向量ResponseEmbedding embed1 embeddingModel.embed(机器学习);ResponseEmbedding embed2 embeddingModel.embed(深度学习);ResponseEmbedding embed3 embeddingModel.embed(英雄联盟);// 存储向量embeddingStore.add(embed1.content(),textSegment1);embeddingStore.add(embed2.content(),textSegment2);embeddingStore.add(embed3.content(),textSegment3);// 生成向量ResponseEmbedding embed embeddingModel.embed(学习);// 查询ListEmbeddingMatchTextSegment result embeddingStore.findRelevant(embed.content(), 5);for (EmbeddingMatchTextSegment embeddingMatch : result) {System.out.println(embeddingMatch.embedded().text() ,分数为 embeddingMatch.score());}} }代码执行结果为 深度学习,分数为0.94541862607 机器学习,分数为0.943170130253 英雄联盟,分数为0.9012748003005 从这就更容易看出向量的好处能够基于向量快速的得到和文本相似的文本这样就能非常适合用来做RAG也就是检索增强生成。
http://www.w-s-a.com/news/661077/

相关文章:

  • 廊坊网站建设搭建整合营销传播的效果表现为
  • 网站服务器在本地是指园林绿化
  • 公司网站建设需要什么科目网站代运营价格
  • 网站建设前的ER图ppt模板图片 背景
  • 做一个网站花多少钱网站导航营销步骤
  • 仙桃网站定制做房产网站能赚钱吗
  • 西安网站制作模板最新源码
  • 南京江宁网站建设大学高校网站建设栏目
  • 模板网站建设明细报价表做网站第一
  • 公司网站建设系统软件开发 上海
  • 怎么让公司建设网站固安县建设局网站
  • 360免费建站官网入口手机网站建设设计
  • 商城网站建站系统dw如何做网页
  • 网站建设的公司收费我有网站 怎么做淘宝推广的
  • 网站建设策划书事物选题手机兼职app
  • html5 微网站模版wordpress博客速度很慢
  • 怎么做五个页面网站网络推广如何收费
  • 上虞宇普电器网站建设江西建筑人才网
  • 在吗做网站商城一个网站需要服务器吗
  • 先做网站再备案吗中山微网站建设报价
  • 树莓派可以做网站的服务器吗网站建设与设计ppt
  • 网站访问速度分析网站怎么做让PC和手机自动识别
  • 网站建设要考西宁网站建设多少钱
  • 网站开发公司东莞网站推广计划书具体包含哪些基本内容?
  • 素材天下网站惠州网站建设行业
  • 网站做a视频在线观看网站天津建站
  • 自己做的网站怎么链接火车头采集一个网站可以做几级链接
  • 济南网站制作哪家专业做网站怎样投放广告
  • 辽宁网站推广短视频运营培训学费多少
  • 拼多多网站怎么做翻译 插件 wordpress