精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何借助假設文檔嵌入改進語義搜索? 原創

發布于 2024-5-10 08:27
瀏覽
0收藏

本文介紹了如何使用簡單的大語言模型(LLM)調用來顯著改善語義搜索結果的質量。

找到合適的AI模型來構建工作流程很困難。由于不同平臺上有眾多的模型可用,因此不可能知道從哪里入手,或者如何找到最適合您特定需求的模型。這就是我打算用AIModels.fyi解決的問題,這是唯一用來發現和比較網上AI模型的搜索引擎。

該網站有一個簡單的前提:用自然語言描述問題,然后詳細列出可能會解決問題的AI模型。比如說,您可以搜索“我需要一個模型,可以在不失去清晰度的情況下幫助提升圖像質量”或“讓我的貓看起來像是在唱歌”。目的是讓任何人(不僅僅是機器學習工程師)都能為其項目輕松找到有用的AI工具。

在底層,搜索的工作原理是獲取用戶的查詢后,將其與來自Hugging Face、Replicate、Cerebrium和DeepInfra等主要平臺的7500多個創建者的逾24萬個AI模型組成的數據庫進行比較。用戶輸入搜索后,使用OpenAI的text-embedding-ada-002模型將查詢嵌入到向量中。然后將該查詢向量與數據庫中模型名稱、描述和用例的預計算向量表示進行比較。余弦距離最相似的模型作為搜索結果返回。

以下是我使用了六個月的核心搜索邏輯的簡化版本:

const fetchData = async (query) => {
  // Embed the search query
  const embeddingResponse = await openAi.createEmbedding({
    model: "text-embedding-ada-002",
    input: query,
  });
  
  const embedding = embeddingResponse.data.data[0].embedding;

  // Find the most similar models in the vector database 
  const { data: modelsData, error } = await supabase.rpc("search_models", {
    query_embedding: embedding,
    similarity_threshold: 0.75,
    match_count: 10,
  });

  return modelsData;
};

當查詢術語和模型描述之間存在直接重疊時,這種向量搜索方法可以很好地顯示相關模型。但是面對更抽象、更復雜或更小眾的查詢時,由于用戶的語言與數據庫中的技術術語并不完全匹配,它的實現效果就勉為其難。

比如說,我最近想找到一種模型,可以使用音頻片段來創建具有動畫效果的肖像圖像。我知道有幾個很好的模型,但我搜索“由圖像和音頻創建會說話的肖像”并沒有返回預期的結果。問題在于,我的查詢術語與模型描述中使用的特定詞沒有足夠的文字匹配,即使語義意圖是相似的。

這讓我開始思考如何改善搜索體驗,以更好地處理這種抽象或復雜的查詢。我怎樣才能讓系統更智能地理解用戶的真實意圖,并將其映射到數據庫中的相關模型?我無意中看到了這篇研究論文(https://arxiv.org/abs/2212.10496),因此有機會了解了假設文檔嵌入(HyDE)想法。

HyDE——查詢擴展器!

HyDE背后的關鍵理論是,在嵌入搜索之前,使用大語言模型(LLM)將用戶的簡短查詢擴展為更詳細的假設“理想”文檔。因此,它不是直接將查詢嵌入與數據庫嵌入相匹配,而是先將查詢轉換為與實際文檔在相同語義空間中更豐富的表示。

整個過程是這樣的:

  • 用戶輸入表達需求的自然語言查詢,比如“我想把一個圖像轉換成3D模型。”
  • 然后使用像OpenAI的text-embedding-ada-002這樣的模型,將生成的這個偽文檔嵌入到密集向量中。
  • 因此獲得的嵌入用于查詢向量數據庫,并找到最相似的實際模型文檔。

該查詢被饋入到指令調優的LLM(比如GPT-3)中,以生成假設文檔。提示要求模型想象一個回答查詢的理想文檔。舉例說:

查詢:我要將圖像轉換為3D模型。

假設文檔:市面上有幾種AI模型可以將2D圖像轉換為3D模型。這個過程名為單視圖重建或3D估計。它通常需要使用深度學習由2D輸入圖像預測深度圖和3D形狀。處理這項任務的一些流行模型包括Pix2Vox、Pixel2Mesh、AtlasNet和OccNet。這些模型是使用龐大的3D對象數據集加以訓練的,可以處理復雜形狀。要使用它們,您就要提供輸入圖像,模型會輸出一個3D網格或三維像素表示,您可以在3D建模工具中渲染或進一步編輯。

LLM步驟有助于彌合用戶的簡單查詢和模型描述中使用的技術性更強的語言之間的差距。它在初始查詢的基礎上進行擴展,以推斷有助于檢索更好匹配的其他相關術語、概念和上下文。與此同時,使用真實的文檔嵌入作為最終的搜索索引可以使搜索結果更可靠,防止幻覺問題。

我在現有的AIModels搜索上實施了HyDE的基礎版本,初步結果令人滿意。在我測試的一些示例查詢中,HyDE顯示的相關模型比原始關鍵字匹配方法多兩三倍。對于會說話的頭像查詢,它能夠生成一個假設文檔,含有“對口型”、“臉部動畫”和“音頻驅動動畫”等關鍵術語,這有助于檢索普通搜索忽略的一些強匹配模型。

如何在您自己的搜索系統中實現HyDE?

不妨展示如何將HyDE添加到現有的語義搜索系統上,從而顯著提高質量。

不妨從基于我當前搜索流的簡化代碼草圖入手。以下是完整的文件,在我們查看各部分之前,您可以瀏覽一下整體:

const fetchData = async (query) => {
  // Generate a hypothetical document embedding for the query 
  const hypotheticalDocument = await generateHypotheticalDocument(query);
  
  const embeddingResponse = await openAi.createEmbedding({
    model: "text-embedding-ada-002",
    input: hypotheticalDocument,
  });
  
  const embedding = embeddingResponse.data.data[0].embedding;

  // Search the real model embeddings using the hypothetical document embedding
  const { data: modelsData, error } = await supabase.rpc("search_models", {
    query_embedding: embedding,
    similarity_threshold: 0.75,
    match_count: 10,
  });

  return modelsData;
};

const generateHypotheticalDocument = async (query) => {
  // Use GPT-3 to expand the query into a hypothetical ideal document
  const prompt = `The user entered the following search query: 
  "${query}"
  
  Please generate a detailed hypothetical document that would be highly relevant to answering this query. The document should use more technical language and expand on the key aspects of the query.

  Hypothetical Document:`;

  const response = await openAi.createCompletion({
    model: "text-davinci-002",
    prompt: prompt,
    max_tokens: 200,
    n: 1,
    stop: null,
    temperature: 0.5,
  });

  const hypotheticalDocument = response.data.choices[0].text.trim();
  return hypotheticalDocument;
}

看看它是如何工作的。我們將從fetchData函數開始,這是搜索過程的主要入口點。首先:

const hypotheticalDocument = await generateHypotheticalDocument(query);

這一行調用generateHypotheticalDocument函數(稍后會有詳細解釋),基于用戶的搜索查詢生成一個假設的理想文檔。

假設文檔是HyDE方法的關鍵部分,因為它旨在以比原始查詢更詳細和更技術的方式捕獲用戶的搜索意圖。

const embeddingResponse = await openAi.createEmbedding({
  model: "text-embedding-ada-002",
  input: hypotheticalDocument,
});
const embedding = embeddingResponse.data.data[0].embedding;

這幾行使用OpenAI的text-embedding-ada-002模型為假設文檔生成嵌入向量。我認為這是目前為止最好的嵌入選項。

嵌入是一種將文本表示為密集數字向量的方法,其中相似的文本有相似的向量。這便于我們執行語義相似度搜索。

通過嵌入假設文檔而不是原始查詢,我們旨在獲得更好地捕獲擴展搜索意圖的向量表示。接下來:

const { data: modelsData, error } = await supabase.rpc("search_models", {
  query_embedding: embedding,
  similarity_threshold: 0.75,
  match_count: 10,
});

這部分在模型數據庫中執行實際的相似度搜索。它對Supabase數據庫調用遠程過程(search_models),將假設文檔的嵌入作為query_embedding傳入。

similarity_threshold和match_count這兩個參數控制結果需要匹配的程度和返回的數量。

搜索基于余弦相似度尋找與查詢嵌入最相似的模型嵌入。

現在不妨看看generateHypotheticalDocument函數:

const prompt = `The user entered the following search query: 
"${query}"

Please generate a detailed hypothetical document that would be highly relevant to answering this query. The document should use more technical language and expand on the key aspects of the query.

Hypothetical Document:`;

這部分構建將發送給語言模型以生成假設文檔的提示。

提示包括用戶的原始查詢和指令,以便模型生成詳細的技術文檔,從而擴展查詢的關鍵方面。構建有效的提示對于指導語言模型生成實用的假設文檔至關重要。

現在是下一個部分:

const response = await openAi.createCompletion({
  model: "text-davinci-002",
  prompt: prompt,
  max_tokens: 200,
  n: 1,
  stop: null,
  temperature: 0.5,
});

這幾行使用OpenAI的text-davinci-002模型基于提示生成假設的文檔。

max_tokens參數限制所生成文檔的長度,而temperature控制隨機性(較高的值使輸出更多樣化,但可能不那么集中)。調整這些參數有助于調整所生成文檔的質量和多樣性。

接下來,我們有:

const hypotheticalDocument = response.data.choices[0].text.trim();

這一行從GPT-3 API響應中提取所生成的假設文檔文本。然后返回所生成的文本,以便用在嵌入步驟中。

回顧:我們剛剛構建了什么?

我希望代碼和我的解釋能夠演示如何在現有的語義搜索系統上實現HyDE方法。其實沒那么難!關鍵思想是這個:我們旨在通過將假設文檔生成和嵌入步驟插入到搜索管道中,借助更好地捕獲用戶的意圖來改進搜索結果。

總結一下,幾個關鍵部分是:

  • 使用語言模型將用戶的查詢擴展為更詳細的技術性假設文檔。
  • 嵌入假設文檔,以獲得與模型數據庫一致的向量表示。
  • 在假設文檔嵌入和模型嵌入之間執行相似度搜索,以找到最相關的結果。

當然,這只是一種簡化的實現,真正的實現中還有許多細節和優化需要考慮。但它闡明了HyDE方法的核心流程和組成部分。

結束語

因為這只是一個初始原型,還有很多試驗和改進的余地。我在思考一些關鍵的開放性問題:

  • 生成有用的假設文檔的最佳提示結構和輸出長度是什么?我想嘗試不同的提示模板和輸出大小,看看它們如何影響結果質量。
  • 如何使假設文檔對用戶更易于解釋、更透明?如果用戶不明白為什么添加某些術語,可能會備感困惑。我正考慮將所生成文本的一部分顯示為“查詢解釋”,以便更深入地揭示該過程。
  • 結果質量在多大程度上依賴所使用的特定LLM和嵌入模型?我很想對不同的模型組合進行基準測試(比如GPT-4 vs GPT-3和Contriever vs OpenAI嵌入等),以找到最佳配方。
  • 如何有效地擴展這種方法,以便處理數百萬個數據庫條目?在像GPT-3這樣的大型LLM上進行推理昂貴又緩慢。我需要研究緩存、優化或提煉模型,以便這種方法在大規模環境中切實可行。

我對語言模型的潛力感到興奮,可以幫助像AIModels這樣的搜索界面對更廣泛的受眾而言更直觀、更強大。彌合用戶如何自然表達需求和如何技術上描述AI模型之間的語義差距,是解決這個難題的一個重要環節。HyDE之類的技術為深刻理解用戶意圖,并滿足用戶需求的搜索體驗指明了一條道路。

我的長期目標是不斷完善這個界面,直到任何人都可以輕松地找到符合他們需求的相關AI模型,無論他們的技術專業水平如何。無論您是想“把您的頭像變成Studio Ghibli插圖”、“由圖像生成3D模型”、“為虛擬助手創建文本到語音功能”,還是“找到最好的標志設計AI”,我都希望AIModels是個不錯的起點。

隨著我繼續試驗HyDE及其他方法,會分享更多細節。如果您想進一步了解技術方面,建議您查看原始論文。

原文標題:How to improve your semantic search with hypothetical document embeddings,作者:Mike Young

鏈接:https://notes.aimodels.fyi/improving-ai-model-search-with-hypothetical-document-embeddings/。


?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
收藏
回復
舉報
回復
相關推薦
欧美日韩视频一区二区| 久久久亚洲国产美女国产盗摄| 久久精品视频中文字幕| 老女人性生活视频| 国产v日韩v欧美v| 久久精品视频一区二区| 国产在线精品一区免费香蕉| 欧美精品xxxxx| 天堂综合网久久| 欧美日韩情趣电影| 国产在线视频综合| 精品av中文字幕在线毛片| 精品无码三级在线观看视频| 国内揄拍国内精品| 5566中文字幕| 欧美亚洲国产日韩| 在线不卡a资源高清| 日韩视频免费播放| 午夜在线免费观看视频| av在线播放一区二区三区| 国产在线拍偷自揄拍精品| 亚洲国产成人精品激情在线| 999久久久免费精品国产| 亚洲国产精品久久久久久| 国产精品久久久毛片| 成人爽a毛片免费啪啪动漫| 欧美国产日韩在线观看| 国产精品免费观看高清| 亚洲天堂自拍偷拍| 久久国产精品毛片| 久久久久久美女| 永久免费看mv网站入口| 国产精品三级| 亚洲国产精品久久久久秋霞蜜臀 | 色欲av无码一区二区三区| 亚洲香蕉久久| 欧美吞精做爰啪啪高潮| 欧美日韩亚洲一| 秋霞在线午夜| 亚洲女女做受ⅹxx高潮| 亚洲精品日韩成人| 黄色小视频在线观看| 不卡的av网站| 成人羞羞视频免费| 国产高清在线观看视频| 精品一区免费av| 国产欧美一区二区三区久久| 国产又粗又猛又爽又| 另类亚洲自拍| 欧美亚洲视频一区二区| 国产成人自拍视频在线| 精品二区视频| 久久久久久久久久av| 看片网站在线观看| 欧美在线网址| 精品中文字幕在线观看| 在线看的片片片免费| 婷婷伊人综合| 久久综合久久美利坚合众国| 五月综合色婷婷| 偷拍欧美精品| 美日韩精品视频免费看| avtt天堂在线| 亚洲无线一线二线三线区别av| 色在人av网站天堂精品| 极品颜值美女露脸啪啪| 国产精品www.| 久久久久久欧美| 日本视频免费在线| 免费亚洲一区| 国产精品欧美亚洲777777| 中文字幕乱码无码人妻系列蜜桃| 秋霞av亚洲一区二区三| 成人国产在线激情| 99热这里只有精品66| 国产精品996| 国产一区精品视频| 日韩porn| 国产精品免费人成网站| 中文字幕一区二区三区四区五区人| 国产精品一卡二卡三卡| 亚洲国产综合色| 国产精品亚洲αv天堂无码| 欧洲av不卡| 欧美精品三级在线观看| 精品国产乱码久久久久夜深人妻| 精品五月天堂| 亚洲一级一级97网| 91传媒免费观看| 在线看片一区| 国产精品久久一区| 国产成人精品a视频| 99在线精品观看| 亚洲高清在线观看一区| 欧美xxxx黑人又粗又长| 色综合久久精品| 少妇性l交大片7724com| 欧美午夜18电影| 久久久国产精品免费| 欧美亚韩一区二区三区| 欧美a一区二区| 成人做爰66片免费看网站| 黄色av免费在线看| 一区二区三区成人| www黄色在线| 亚洲一区二区三区日本久久九| 日韩精品在线播放| 男的操女的网站| 久久一二三四| 成人羞羞视频免费| аⅴ资源新版在线天堂| 亚洲国产视频在线| mm131国产精品| 日韩精品福利一区二区三区| 精品国产一区二区三区四区在线观看 | 久久av偷拍| 亚洲欧美国产精品va在线观看| 老熟妇高潮一区二区三区| 久久精品动漫| 丁香五月网久久综合| 在线观看免费版| 色综合久久久久久久久久久| 人妻 日韩 欧美 综合 制服| 久久久久久久久久久9不雅视频 | 国产精品一区无码| 韩国av一区二区三区在线观看| 欧美高清性xxxxhd| 精精国产xxxx视频在线中文版| 欧洲国产伦久久久久久久| av黄色一级片| 欧美日韩a区| 国产视频999| 国产福利第一视频在线播放| 欧美日韩综合视频| 在线观看一区二区三区四区| 亚洲成人免费| 国产日韩欧美在线视频观看| www.中文字幕久久久| 色综合天天综合给合国产| 国产麻豆xxxvideo实拍| 国产一区二区三区四区三区四| 91久久在线视频| 国产精品va在线观看视色| 欧美日韩视频第一区| 在线观看日本黄色| 热久久久久久久| 一区二区在线高清视频| 韩日一区二区| 在线色欧美三级视频| 国产情侣免费视频| 欧美国产激情二区三区| 91在线视频观看免费| 国产精品欧美三级在线观看| 国产精品高潮粉嫩av| 国产三级视频在线看| 在线精品视频小说1| 国产又黄又粗视频| 日韩电影在线一区二区| 亚洲国产欧洲综合997久久| 欧美视频在线视频精品| 日韩中文字幕在线看| 国产又黄又爽视频| 亚洲欧美偷拍三级| 免费看三级黄色片| 亚洲高清av| 久热这里只精品99re8久| 小草在线视频免费播放| 亚洲欧美国产一本综合首页| 五月婷婷丁香在线| 中文字幕在线不卡国产视频| 亚洲天堂网站在线| 亚洲视频一区| 蜜桃成人在线| 成人福利一区二区| 欧美精品免费看| 蜜臀av午夜精品| 色综合一区二区| 日本裸体美女视频| 成人午夜电影小说| 欧美污视频网站| 日本一区二区免费高清| 亚洲a区在线视频| 91资源在线观看| 国产亚洲精品一区二区| 艳妇乳肉豪妇荡乳av| 亚洲欧美日韩国产一区二区三区 | 另类专区欧美制服同性| 亚洲国产剧情在线观看| 日韩欧美在线免费观看| 性少妇bbw张开| 另类成人小视频在线| 免费人成自慰网站| 精品日韩毛片| 不卡一卡2卡3卡4卡精品在| 日韩电影毛片| 日韩视频一区在线| 天天干,天天操,天天射| 在线观看精品一区| 麻豆国产尤物av尤物在线观看| 久久伊人蜜桃av一区二区| www.久久久久久久久久久| 在线日韩视频| 综合网五月天| 在线一级成人| 99精品欧美一区二区三区| 中文字幕在线中文字幕在线中三区| www.欧美三级电影.com| 日本在线丨区| 欧美成人video| 中文天堂在线资源| 五月天丁香久久| 无码黑人精品一区二区| 久久久久88色偷偷免费| 久久久久久无码精品人妻一区二区| 亚洲免费网站| 国产xxxx振车| 亚洲精品国产偷自在线观看| 深田咏美在线x99av| 一区中文字幕| 成人美女免费网站视频| 亚洲天堂资源| 久久久久久国产精品美女| 91精品国产高清久久久久久久久 | 日韩av一区在线| 国产一区二区网站| 91搞黄在线观看| 91九色丨porny丨肉丝| 亚洲特黄一级片| 337人体粉嫩噜噜噜| www日韩大片| 美女扒开腿免费视频| 国产麻豆精品一区二区| 日日躁夜夜躁aaaabbbb| 天堂久久一区二区三区| 1024av视频| 1000部精品久久久久久久久| 300部国产真实乱| 午夜国产一区二区| 天堂一区二区三区| 极品美女一区二区三区| 看高清中日韩色视频| 给我免费播放日韩视频| 超碰97在线人人| 日韩精品成人在线观看| 成人精品视频在线| 国产精品4hu.www| 国产精品国产福利国产秒拍| 日韩av中字| 国产成人精品在线视频| 美女100%一区| 国产精品v日韩精品| 3d欧美精品动漫xxxx无尽| 日韩免费av片在线观看| 性欧美18一19sex性欧美| 日本久久久久亚洲中字幕| 欧美大片1688| 国产国产精品人在线视| 一区在线影院| 国产欧美日韩综合精品| 亚洲一区导航| 成人av网站观看| 第四色中文综合网| 国产一区二区自拍| 亚洲男人都懂第一日本| 欧美综合77777色婷婷| 欧美日韩在线二区| 亚洲欧洲一二三| 一区二区三区网站| 久久精品无码中文字幕| 99热在线精品观看| 国产亚洲精品网站| 日韩国产欧美视频| 国产一区二区在线观看免费视频| 国产精品77777| 国产xxxx视频| 国产亚洲欧美日韩日本| 国产福利在线导航| 一区二区三区免费网站| 国产精品美女久久久久av爽| 在线免费观看一区| 国产不卡av在线播放| 日韩电影网在线| 亚洲视频tv| 欧美极品欧美精品欧美视频 | 欧美重口另类videos人妖| 超薄肉色丝袜脚交一区二区| 5566av亚洲| 蜜桃视频欧美| 好色先生视频污| 国产日本精品| 欧美国产日韩另类| 99久久99久久综合| www.4hu95.com四虎| 亚洲综合视频在线观看| 6080午夜伦理| 日韩免费电影一区| 麻豆app在线观看| 久久99国产精品久久久久久久久| 一区二区三区短视频| 91亚洲国产成人精品性色| 欧美一区二区三区红桃小说| 亚洲看片网站| 一本综合精品| 欧美成人乱码一二三四区免费| 成人18视频日本| 成人三级视频在线观看| 福利一区福利二区微拍刺激| 97超视频在线观看| 亚洲免费视频观看| 亚洲第一图区| 国产精品一区二区三| 欧美丝袜美腿| www婷婷av久久久影片| 日韩专区一卡二卡| 东京热av一区| 亚洲男人的天堂在线aⅴ视频| 无码人妻久久一区二区三区| 亚洲成人精品视频| 97超碰在线公开在线看免费| 国产精品欧美激情| 久久99免费视频| 日韩av高清在线看片| 国产福利91精品一区二区三区| 91狠狠综合久久久久久| 色婷婷综合久久久久中文一区二区 | 国产91精品入口17c| 大片网站久久| 毛片av免费在线观看| 99精品在线免费| 精品无码免费视频| 欧美刺激午夜性久久久久久久| 一本一道波多野毛片中文在线 | 一道本在线观看视频| 久久只有精品| 国产精品无码久久久久久| 亚洲成人久久影院| 亚洲精品久久久狠狠狠爱| www国产精品视频| 日韩成人精品一区二区三区| 色综合电影网| 免费高清在线视频一区·| 在线免费观看日韩av| 精品女厕一区二区三区| 香港一级纯黄大片| 68精品久久久久久欧美| 你懂的在线观看一区二区| 成人免费毛片在线观看| 成人深夜在线观看| 国产无码精品久久久| 亚洲成人性视频| 麻豆mv在线看| 精品一区在线播放| 亚洲综合欧美| 日本性高潮视频| 欧美中文字幕一二三区视频| 成人午夜影视| 国产欧美一区二区三区久久| 亚洲v在线看| 波多野吉衣在线视频| 亚洲影院在线观看| 色呦呦视频在线| 91av在线免费观看视频| 你懂的一区二区三区| 国产视频在线视频| 国产精品久久三| 国产免费黄色录像| 九九热精品视频国产| 国产成人高清精品免费5388| 国产96在线 | 亚洲| 国产亚洲欧美日韩俺去了| ,一级淫片a看免费| 久久亚洲国产精品成人av秋霞| 日韩精品一区二区三区中文字幕| 国产黄色激情视频| 99精品国产视频| 国产情侣小视频| 久久国产精品久久久久| 精品网站aaa| 天天干天天综合| 亚洲在线视频一区| 青青草免费观看免费视频在线| 国产精品久久久久久五月尺| 欧美在线高清| 黑丝av在线播放| 精品视频一区二区不卡| 亚洲精品天堂| 久久久久综合一区二区三区| 美女一区二区视频| 久久久久久久久99| 亚洲男人天堂2024| 动漫一区二区三区| 久久网站免费视频| 最近日韩中文字幕| 天天综合网在线| 国产日本欧美视频| 99精品免费| 精品无码久久久久成人漫画| 日韩大陆毛片av| 国产精品麻豆| 可以免费在线看黄的网站|