精品欧美一区二区三区在线观看 _久久久久国色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/。


?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
收藏
回復
舉報
回復
相關推薦
日韩综合久久| 成人在线观看免费| 亚洲每日在线| 亚洲一级黄色av| 三区视频在线观看| av在线资源| 国产精品久久久久久亚洲伦 | 亚洲第一二三四五区| 丰满少妇被猛烈进入高清播放| av在线免费观看网站| 国产精品主播直播| 日本亚洲欧美成人| 99精品久久久久| 精品在线99| 欧美一区二区网站| 国产美女三级视频| 黄色污污视频在线观看| 欧美激情一区二区| 国产日韩精品久久| a级片在线免费看| 青青草成人在线观看| 午夜精品久久久久久久99热浪潮 | 欧美限制电影| 亚洲第一av网站| 久久精品国产99久久99久久久| 自拍偷拍亚洲视频| 亚洲成av人影院在线观看网| 资源网第一页久久久| 精品亚洲综合| 91网站最新网址| 国产精品国产亚洲精品看不卡15| 中文字幕永久在线观看| 国产精品毛片在线看| 欧美放荡办公室videos4k| 亚洲国产精品一区二区久久hs| 日韩三级毛片| 亚洲第一综合天堂另类专| 91 视频免费观看| 深夜视频一区二区| 色悠久久久久综合欧美99| 性高湖久久久久久久久aaaaa| 免费的黄网站在线观看| 国产精品理论片在线观看| 日韩在线导航| 岛国视频免费在线观看| 26uuu亚洲综合色| 国产自产精品| 无码精品黑人一区二区三区 | 欧美一区二区三区影视| 奇米影视四色在线| 黄色成人在线观看网站| 欧美日韩中文字幕一区| 国产一伦一伦一伦| 亚洲伊人精品酒店| 欧美丰满一区二区免费视频| 日韩中文字幕a| 日本免费成人| 欧美一区二区私人影院日本| 一级黄色片在线免费观看| 亚洲精品无播放器在线播放| 538在线一区二区精品国产| 亚洲精品综合在线观看| 美女精品视频在线| 精品国产一区a| 你懂得在线视频| 天堂俺去俺来也www久久婷婷| 日韩av在线不卡| 成人免费毛片糖心| 欧美一区电影| 久久九九亚洲综合| 久久久久亚洲AV| 国产亚洲一区在线| 国产精品劲爆视频| 国产精品久久影视| 成人精品国产免费网站| 久久久久久a亚洲欧洲aⅴ| 你懂的在线观看视频网站| 91在线一区二区| 少妇特黄a一区二区三区| 日本在线免费网| 亚洲黄色尤物视频| 久久精品国产sm调教网站演员| 多野结衣av一区| 欧洲亚洲精品在线| 日韩精品视频网址| 亚洲+小说+欧美+激情+另类| 在线成人一区二区| 国产这里有精品| 国产精品日韩欧美一区| 国产在线观看精品| 精品人妻av一区二区三区| 99精品久久久久久| 亚洲美女网站18| heyzo高清在线| 在线视频一区二区三区| 日本少妇xxx| 伊人久久大香线蕉综合网站| 久久精品国产亚洲7777| 日韩手机在线观看| 久久av中文字幕片| 精品一区二区久久久久久久网站| 啊v视频在线| 亚洲v中文字幕| 天天看片天天操| 日韩中出av| 美日韩精品视频免费看| 无码无套少妇毛多18pxxxx| 狠狠网亚洲精品| 欧美日本韩国一区二区三区| huan性巨大欧美| 欧美日韩精品在线播放| www激情五月| av在线不卡顿| 欧美中文字幕视频在线观看| www.com在线观看| 国产精品视频麻豆| 国产主播在线看| 一区二区三区四区视频免费观看 | 精品一区二区三孕妇视频| 国产一区亚洲| 成人美女av在线直播| 二区三区在线播放| 丁香五六月婷婷久久激情| 波多野结衣电影免费观看| 欧美aaaaaaaaaaaa| 国产极品jizzhd欧美| 婷婷丁香一区二区三区| 亚洲精品写真福利| 91精品999| 成人写真视频| 国产精品久久视频| 欧美孕妇孕交| 精品久久久久久中文字幕大豆网 | 在线观看国产精品入口男同| 91久色porny| 69堂免费视频| 日本成人7777| 欧美在线视频网站| 污视频网站免费观看| 亚洲一区二区三区四区在线观看 | 国产 欧美 精品| 亚洲精品乱码久久久久久| 日韩欧美国产片| 日韩欧美高清在线播放| 国产精品久久二区| 91精彩视频在线观看| 在线看日本不卡| 日本少妇xxxxx| 日本午夜一本久久久综合| 日本一区二区三区在线视频| 毛片免费看不卡网站| 亚洲欧美在线x视频| 免费视频久久久| 国产欧美日韩在线| 天天操天天摸天天爽| jlzzjlzz亚洲女人| 国产在线观看91精品一区| 国精产品一区| 精品国精品国产| 日韩精品人妻中文字幕| 91亚洲国产成人精品一区二三| 97超碰在线人人| 亚洲第一福利社区| 国产精品久久久| 日本在线视频观看| 日韩精品自拍偷拍| 全部毛片永久免费看| 久久久久综合网| 国产aⅴ爽av久久久久| 亚洲九九在线| 国产三区精品| 欧美日韩激情电影| 久久久av亚洲男天堂| 午夜精品久久久久久久第一页按摩| 亚洲成av人影院在线观看网| 波多野结衣a v在线| 久久精品国产精品青草| 国产卡一卡二在线| 日韩伦理一区二区三区| 国产精品丝袜视频| 欧美videosex性欧美黑吊| 日韩精品免费在线视频| 中文字幕视频二区| 亚洲综合免费观看高清完整版| 北岛玲一区二区| 青青草一区二区三区| 毛片av在线播放| 九九久久成人| 91成人伦理在线电影| 在线观看特色大片免费视频| 色婷婷av一区二区三区久久| 免费看av毛片| 欧美三区免费完整视频在线观看| 欧美日韩大片在线观看| 久久久亚洲精品石原莉奈| 亚洲自拍第三页| 久久不射网站| 国产一级黄色录像片| 国产欧美亚洲精品a| 成人黄色片视频网站| 日韩一区二区精品| 波多野结衣三级视频| 免费在线日韩av| 国产三级中文字幕| 亚洲免费成人av在线| 91麻豆国产语对白在线观看| 校园春色亚洲| 欧美精品中文字幕一区| 粉嫩av在线播放| 亚洲精品在线免费播放| 一区二区三区免费观看视频| 精品久久久中文| 91嫩草|国产丨精品入口| 国产亚洲一区二区在线观看| 折磨小男生性器羞耻的故事| 久久国产人妖系列| 黄色动漫网站入口| 欧美午夜视频| 国产大尺度在线观看| 狠狠操综合网| 麻豆一区区三区四区产品精品蜜桃| 美国十次综合久久| 国产日韩欧美夫妻视频在线观看 | 亚洲成人激情av| 国产精品99久久久久久成人| 国产亚洲精品资源在线26u| 亚洲av无码专区在线播放中文| 极品少妇xxxx精品少妇| 久久久久久久片| 欧美亚洲一区二区三区| 日本xxxxxxxxxx75| 欧美精品午夜| 成人污网站在线观看| 亚洲先锋影音| 手机福利在线视频| 97在线精品| 亚洲一区二区三区精品视频| 精品国产乱码久久久| 欧美日韩在线观看一区| 日韩大胆成人| 久久96国产精品久久99软件| 都市激情亚洲| 国产精品午夜av在线| 国产精东传媒成人av电影| 成人免费视频观看视频| 亚洲**毛片| 成人久久18免费网站漫画| 视频成人永久免费视频| 99久久99久久精品国产片| 91九色鹿精品国产综合久久香蕉| 亚洲tv在线观看| 人人爱人人干婷婷丁香亚洲| 成人做爰66片免费看网站| 一区三区自拍| 久久99国产精品| 精品大片一区二区| 亚洲区一区二区三区| 天天久久综合| 亚洲啊啊啊啊啊| 亚洲无线视频| 欧美 日韩 国产 高清| 免费亚洲婷婷| av在线网址导航| 国产福利一区二区| 精品熟女一区二区三区| 91麻豆国产在线观看| 国产成人福利在线| 国产精品欧美极品| 亚洲色婷婷一区二区三区| 亚洲国产综合人成综合网站| 日韩在线观看第一页| 在线观看一区二区精品视频| 中文字幕一级片| 日韩欧美国产wwwww| 天堂av在线资源| 最好看的2019年中文视频| 成人av黄色| 777国产偷窥盗摄精品视频| 日本欧美一区| 91麻豆蜜桃| 九九热精品视频在线观看| 一区二区三区四区欧美日韩| 韩日精品视频| 一级特黄性色生活片| 国产麻豆一精品一av一免费| 国产乱了高清露脸对白| 国产精品美女久久福利网站| 国产亚洲精品久久久久久无几年桃 | 91麻豆精品国产91久久久久久 | 欧美日本在线视频中文字字幕| 77thz桃花论族在线观看| 国产精品com| 亚洲第一二区| 日韩精品第一页| 伊人久久亚洲美女图片| 中文字幕国产免费| 欧美人与牛zoz0性行为| 亚洲一区三区电影在线观看| 精品动漫3d一区二区三区免费| 亚洲人成无码www久久久| 国产综合色在线| 欧美色图亚洲激情| 一区二区高清视频在线观看| 在线观看 亚洲| 日韩精品中文字幕在线不卡尤物| 国产三级在线看| 久久久久久久久爱| 久久亚洲资源中文字| 蜜桃传媒视频麻豆一区| 欧美精选一区| 亚洲免费av一区| 久久精品亚洲麻豆av一区二区| 青青草手机在线观看| 欧美日韩一区视频| 日本v片在线免费观看| 欧美国产极速在线| 欧美成人免费全部网站| 蜜桃传媒视频第一区入口在线看| 欧美日韩综合| aaa一级黄色片| 国产欧美一区二区三区网站 | 欧美在线你懂得| 日日躁夜夜躁白天躁晚上躁91| 精品国产一区久久久| av有声小说一区二区三区| 国产亚洲一区二区三区在线播放| 亚洲天天影视网| 欧美一级视频在线| 亚洲国产精品ⅴa在线观看| 中文字幕在线播| 亚洲精品在线不卡| 色黄视频在线观看| 精品久久久久久中文字幕动漫| 欧美午夜电影在线观看| 韩国三级在线看| 亚洲欧美日韩小说| 国产精品爽爽久久久久久| 日韩在线观看高清| 成人不卡视频| 日韩欧美一区二区三区久久婷婷| 免费永久网站黄欧美| 老司机福利av| 欧美最新大片在线看| 免费播放片a高清在线观看| 欧美一区二区.| 偷拍精品福利视频导航| 啊啊啊一区二区| 91免费看片在线观看| 香蕉影院在线观看| 一区二区三区视频免费| 成人国产精选| 亚洲国产精品影视| 国产精品一级片在线观看| 青娱乐国产在线| 亚洲成人性视频| 在线视频超级| 日韩国产一区久久| 久久精品99国产国产精| 婷婷在线精品视频| 精品国产一区二区三区久久影院| 男插女视频久久久| 精品无人区一区二区三区| 另类激情亚洲| 少妇太紧太爽又黄又硬又爽小说 | 欧美超碰在线| 一级网站在线观看| 亚洲小说欧美激情另类| 天天操天天射天天舔| 国产精品成人一区二区| 天天综合一区| 91视频在线免费| 色综合久久66| 欧美被日视频| 国产伦精品一区二区三区视频免费 | 国产一区二区在线视频观看| 九九精品在线视频| 麻豆国产欧美一区二区三区r| 热久久精品国产| 亚洲视频中文字幕| 亚洲 欧美 自拍偷拍| 国产精品入口尤物| 国产精品激情电影| av女人的天堂| 日韩午夜三级在线| 一区二区三区短视频| 视频一区二区视频| 2欧美一区二区三区在线观看视频| 中文在线字幕av| 久久久亚洲成人| 欧美精品乱码| 亚洲精品无码一区二区| 欧美羞羞免费网站| av漫画网站在线观看| 亚洲精品日韩在线观看| 成av人片一区二区| 一级特黄aa大片| 5278欧美一区二区三区| 91精品一区国产高清在线gif| 五月婷婷综合在线观看| 欧美一区二区免费视频|