国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

woocommerce做零售網(wǎng)站網(wǎng)站排名推廣工具

woocommerce做零售網(wǎng)站,網(wǎng)站排名推廣工具,廣州網(wǎng)站建設(shè)騰虎,php新聞網(wǎng)站開(kāi)發(fā)的原因Embedding介紹 Embedding是向量的意思,向量可以理解為平面坐標(biāo)中的一個(gè)坐標(biāo)點(diǎn)(x,y),在編程領(lǐng)域,一個(gè)二維向量就是一個(gè)大小為float類型的數(shù)組。也可以用三維坐標(biāo)系中的向量表示一個(gè)空間中的點(diǎn)。在機(jī)器學(xué)習(xí)中,向量通常用于表示數(shù)據(jù)的特征。 向量…

Embedding介紹

??????? Embedding是向量的意思,向量可以理解為平面坐標(biāo)中的一個(gè)坐標(biāo)點(diǎn)(x,y),在編程領(lǐng)域,一個(gè)二維向量就是一個(gè)大小為float類型的數(shù)組。也可以用三維坐標(biāo)系中的向量表示一個(gè)空間中的點(diǎn)。在機(jī)器學(xué)習(xí)中,向量通常用于表示數(shù)據(jù)的特征。

?????? 向量分?jǐn)?shù)越高,代表位置越接近,匹配的數(shù)據(jù)越相似。

?

文本向量化

????? 而文本向量化是指,利用大模型可以吧一個(gè)字,一個(gè)詞或一段話映射為一個(gè)多維向量,比如我們可以直接在LangChain4j中調(diào)用向量模型來(lái)對(duì)一句話進(jìn)行向量化。

案例代碼:

public class EmbeddingDemo{public static void main(String[] args) {OpenAiEmbeddingModel embeddingModel = OpenAiEmbeddingModel.builder().baseUrl("http://langchain4j.dev/demo/openai/v1").apiKey("demo").build();Response<Embedding> embed = embeddingModel.embed("你好,我叫g(shù)orgor");System.out.println(embed.content().toString());System.out.println(embed.content().vector().length);}
}

? 代碼執(zhí)行結(jié)果為:

Embedding { vector = [-0.019351093, -0.02137422...] }
1536

從結(jié)果可以知道“你好,我叫g(shù)orgor”這句話經(jīng)過(guò)大模型向量化之后,得到一個(gè)長(zhǎng)度為1536的float數(shù)組。注意,1536是固定的,不會(huì)隨著句子長(zhǎng)度而變化。

??????? 那么我們通過(guò)這種向量模型得到一句話對(duì)應(yīng)的向量有什么作用呢?非常有用,因?yàn)槲覀兛梢曰谙蛄縼?lái)判斷兩句話之間的相似度,進(jìn)而可以實(shí)現(xiàn)超越elasticsearch的高級(jí)搜索。

?

向量相似度

??????? 我們可以使用余弦相似度來(lái)計(jì)算向量的相似度,余弦相似度是一種用于衡量向量之間相似度的指標(biāo),可以用于文本向量之間的相似度,在計(jì)算機(jī)中用來(lái)判斷文本之間的距離。

例如:

"機(jī)器學(xué)習(xí)"表示為 [1,2,3]
"深度學(xué)習(xí)"表示為[2,3,3]
"英雄聯(lián)盟"表示為[9,1,3]

?????? 示例代碼(余弦相似度):

package com.gorgor.langchain4j.embedding;import java.util.*;public class CosineSimilarity {// 計(jì)算兩個(gè)向量的點(diǎn)積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;}// 計(jì)算向量的模public static double vectorMagnitude(double[] vector) {double magnitude = 0;for (double component : vector) {magnitude += Math.pow(component, 2);}return Math.sqrt(magnitude);}// 計(jì)算余弦相似度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) {// 示例向量//機(jī)器學(xué)習(xí)double[] vectorA = {1, 2, 3};//深度學(xué)習(xí)double[] vectorB = {2,3,3};//英雄聯(lián)盟double[] vectorC = {9,1,3};// 計(jì)算余弦相似度//機(jī)器學(xué)習(xí)”與“深度學(xué)習(xí)”的距離:double similarityAB = cosineSimilarity(vectorA, vectorB);System.out.println("Cosine SimilarityAB: " + similarityAB);//"機(jī)器學(xué)習(xí)”與“英雄聯(lián)盟“的距離":double similarityAC = cosineSimilarity(vectorA, vectorC);System.out.println("Cosine SimilarityAB: " + similarityAC);}
}

??? 代碼執(zhí)行結(jié)果:

Cosine SimilarityAB: 0.9686648999069225
Cosine SimilarityAB: 0.5603318146805258

? 結(jié)論:“機(jī)器學(xué)習(xí)”與“深度學(xué)習(xí)”兩個(gè)文本之間的余弦相似度更高,表示它們?cè)谡Z(yǔ)義上更相似。

?

文本向量算法

文本向量算法是指將文本數(shù)據(jù)轉(zhuǎn)化為向量表示的具體算法,通常包括以下幾個(gè)步驟:

  • 分詞:將文本劃分成一個(gè)個(gè)單詞或短語(yǔ)。
  • 構(gòu)建詞匯表:將分詞后的單詞或短語(yǔ)建立詞匯表,并為每個(gè)單詞或短語(yǔ)賦予一個(gè)唯一的編號(hào)。
  • 計(jì)算詞嵌入:使用預(yù)訓(xùn)練的模型或自行訓(xùn)練的模型,將每個(gè)單詞或短語(yǔ)映射到向量空間中。
  • 計(jì)算文本嵌入:將文本中每個(gè)單詞或短語(yǔ)的向量表示取平均或加權(quán)平均,得到整個(gè)文本的向量表示。

????????常見(jiàn)的文本向量算法包括 Word2Vec、GloVe、FastText 等。這些算法通過(guò)預(yù)訓(xùn)練或自行訓(xùn)練的方式,將單詞或短語(yǔ)映射到低維向量空間中,從而能夠在計(jì)算機(jī)中方便地處理文本數(shù)據(jù)。當(dāng)然這中間最關(guān)鍵的就是向量模型,因?yàn)橄蛄渴撬傻?#xff0c;向量模型也是經(jīng)過(guò)大量機(jī)器學(xué)習(xí)訓(xùn)練之后產(chǎn)生的,向量模型效果越好,就表示它對(duì)于自然語(yǔ)言理解的程度越好,同時(shí)也就表示它生成出來(lái)的向量越準(zhǔn)確,越能反映出語(yǔ)義的相似度。

?

文本向量用途

文本嵌入用于測(cè)量文本字符串的相關(guān)性,通常用于:

  • 搜索(結(jié)果按與查詢字符串的相關(guān)性排序)
  • 聚類(其中文本字符串按相似性分組)
  • 推薦(推薦具有相關(guān)文本字符串的項(xiàng)目)
  • 異常檢測(cè)(識(shí)別出相關(guān)性很小的異常值)
  • 多樣性測(cè)量(分析相似性分布)
  • 分類(其中文本字符串按其最相似的標(biāo)簽分類)

?

向量數(shù)據(jù)庫(kù)

LangChain4j支持的向量數(shù)據(jù)庫(kù):

向量數(shù)據(jù)庫(kù)名稱保存過(guò)濾刪除
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表示向量數(shù)據(jù)庫(kù),它有20個(gè)實(shí)現(xiàn)類:

  1. AstraDbEmbeddingStore
  2. AzureAiSearchEmbeddingStore
  3. CassandraEmbeddingStore
  4. ChromaEmbeddingStore
  5. ElasticsearchEmbeddingStore
  6. InMemoryEmbeddingStore
  7. InfinispanEmbeddingStore
  8. MemoryIdEmbeddingStore
  9. MilvusEmbeddingStore
  10. MinimalEmbeddingStore
  11. MongoDbEmbeddingStore
  12. Neo4jEmbeddingStore
  13. OpenSearchEmbeddingStore
  14. PgVectorEmbeddingStore
  15. PineconeEmbeddingStore
  16. QdrantEmbeddingStore
  17. RedisEmbeddingStore
  18. VearchEmbeddingStore
  19. VespaEmbeddingStore
  20. WeaviateEmbeddingStore

其中我們熟悉的有Elasticsearch、MongoDb、Pg、Redis,令人驚喜的是MySQL 9.0也開(kāi)始支持面向Ai的向量數(shù)據(jù)庫(kù)了。

?

案例實(shí)現(xiàn)

下面案例就以redis來(lái)演示對(duì)于向量的增刪改查

引入redis依賴

<dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-redis</artifactId><version>${langchain4j.version}</version>
</dependency>

然后需要注意的是,普通的Redis是不支持向量存儲(chǔ)和查詢的,需要額外的redisearch模塊,我這邊是直接使用docker來(lái)運(yùn)行一個(gè)帶有redisearch模塊的redis容器的,命令為:

docker run -p 6379:6379 redis/redis-stack-server:latest

注意端口6379不要和你現(xiàn)有的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("機(jī)器學(xué)習(xí)");TextSegment textSegment2 = TextSegment.textSegment("深度學(xué)習(xí)");TextSegment textSegment3 = TextSegment.textSegment("英雄聯(lián)盟");// 生成向量Response<Embedding> embed1 = embeddingModel.embed("機(jī)器學(xué)習(xí)");Response<Embedding> embed2 = embeddingModel.embed("深度學(xué)習(xí)");Response<Embedding> embed3 = embeddingModel.embed("英雄聯(lián)盟");// 存儲(chǔ)向量embeddingStore.add(embed1.content(),textSegment1);embeddingStore.add(embed2.content(),textSegment2);embeddingStore.add(embed3.content(),textSegment3);// 生成向量Response<Embedding> embed = embeddingModel.embed("學(xué)習(xí)");// 查詢List<EmbeddingMatch<TextSegment>> result = embeddingStore.findRelevant(embed.content(), 5);for (EmbeddingMatch<TextSegment> embeddingMatch : result) {System.out.println(embeddingMatch.embedded().text() + ",分?jǐn)?shù)為:" + embeddingMatch.score());}}
}

代碼執(zhí)行結(jié)果為

深度學(xué)習(xí),分?jǐn)?shù)為:0.94541862607
機(jī)器學(xué)習(xí),分?jǐn)?shù)為:0.943170130253
英雄聯(lián)盟,分?jǐn)?shù)為:0.9012748003005

????????從這就更容易看出向量的好處,能夠基于向量快速的得到和文本相似的文本,這樣就能非常適合用來(lái)做RAG,也就是檢索增強(qiáng)生成。

?

?

?

?

http://aloenet.com.cn/news/44703.html

相關(guān)文章:

  • 網(wǎng)站開(kāi)發(fā)需要有什么證書搜索引擎排名查詢工具
  • 大連自己的網(wǎng)站大數(shù)據(jù)營(yíng)銷專業(yè)
  • 做網(wǎng)站 怎么選擇公司今日新聞聯(lián)播主要內(nèi)容摘抄
  • 找別人做網(wǎng)站交貨時(shí)應(yīng)該注意什么禁止搜索引擎收錄的方法
  • 網(wǎng)站建設(shè)貳金手指科杰2如何做電商賺錢
  • 電子商務(wù)網(wǎng)站建設(shè)可用性深圳市seo網(wǎng)絡(luò)推廣哪家好
  • 建設(shè)政府網(wǎng)站多少錢青島seo關(guān)鍵詞排名
  • 建設(shè)部規(guī)范網(wǎng)站關(guān)鍵詞優(yōu)化的策略有哪些
  • 黃驊市第五中學(xué)北京seo推廣外包
  • 想在百度做網(wǎng)站自動(dòng)推廣工具
  • 開(kāi)發(fā)大型網(wǎng)站的流程推廣方案經(jīng)典范文
  • 中國(guó)航發(fā)網(wǎng)上商城首頁(yè)優(yōu)化課程設(shè)置
  • 黑色網(wǎng)站后臺(tái)公司網(wǎng)站推廣
  • 網(wǎng)站flash制作教程友鏈目錄網(wǎng)
  • 做網(wǎng)站 做應(yīng)用網(wǎng)絡(luò)推廣引流是做什么的
  • 網(wǎng)站建設(shè)目標(biāo)及需求百度搜索排名怎么收費(fèi)
  • 一個(gè)好的網(wǎng)站建設(shè)優(yōu)化大師官網(wǎng)登錄入口
  • 淘寶客的網(wǎng)站是自己做的嗎深圳專業(yè)seo外包
  • 做網(wǎng)站開(kāi)發(fā)需要學(xué)那些東西安裝百度到手機(jī)桌面
  • 網(wǎng)頁(yè)設(shè)計(jì)素材網(wǎng)站有哪些怎么自己弄一個(gè)網(wǎng)站
  • 學(xué)室內(nèi)設(shè)計(jì)真的那么慘嗎北京seo專員
  • 自己做的小網(wǎng)站如何發(fā)布軟文范例
  • 重慶模板網(wǎng)站多少錢烘焙甜點(diǎn)培訓(xùn)學(xué)校
  • 制作網(wǎng)站程序黑帽seo培訓(xùn)大神
  • 手機(jī)在線銷售網(wǎng)站 - 百度百度人工客服電話怎么轉(zhuǎn)人工
  • 學(xué)習(xí)做網(wǎng)站的網(wǎng)站愛(ài)站關(guān)鍵詞挖掘工具
  • 網(wǎng)游網(wǎng)站開(kāi)發(fā)如何做好搜索引擎優(yōu)化工作
  • 關(guān)注建設(shè)銀行網(wǎng)站如何讓網(wǎng)站被百度收錄
  • 貴陽(yáng)建設(shè)網(wǎng)站公司5118
  • 做帶會(huì)員后臺(tái)的網(wǎng)站用什么軟件阿里指數(shù)官方網(wǎng)站