国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Observability:識別生成式 AI 搜索體驗中的慢速查詢

這篇具有很好參考價值的文章主要介紹了Observability:識別生成式 AI 搜索體驗中的慢速查詢。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

作者:Philipp Kahr

Observability:識別生成式 AI 搜索體驗中的慢速查詢,Elasticsearch,Observability,Elastic,人工智能,elasticsearch,大數據,搜索引擎,運維,全文檢索

Elasticsearch Service 用戶的重要注意事項:目前,本文中描述的 Kibana 設置更改僅限于 Cloud 控制臺,如果沒有我們支持團隊的手動干預,則無法進行配置。 我們的工程團隊正在努力消除對這些設置的限制,以便我們的所有用戶都可以啟用內部 APM。 本地部署不受此問題的影響。?

不久前,我們在 Elasticsearch? 中引入了檢測,讓你能夠識別它在幕后所做的事情。 通過在 Elasticsearch 中進行追蹤,我們獲得了前所未有的見解。

當我們想要利用 Elastic 的學習稀疏編碼器模型進行語義搜索時,本博客將引導你了解各種 API 和 transaction。 該博客本身可以應用于 Elasticsearch 內運行的任何機器學習模型- 你只需相應地更改命令和搜索即可。 本指南中的說明使用我們的稀疏編碼器模型(請參閱文檔)。

對于以下測試,我們的數據語料庫是 OpenWebText,它提供大約 40GB 的純文本和大約 800 萬個單獨的文檔。 此設置在具有 32GB RAM 的 M1 Max Macbook 上本地運行。 以下任何交易持續(xù)時間、查詢時間和其他參數僅適用于本博文。 不應對生產用途或你的安裝進行任何推斷。

讓我們動手吧!

在 Elasticsearch 中激活跟蹤是通過靜態(tài)設置(在 elasticsearch.yml 中配置)和動態(tài)設置來完成的,動態(tài)設置可以在運行時使用 PUT _cluster/settings 命令進行切換(動態(tài)設置之一是采樣率)。 某些設置可以在 runtime 時切換,例如采樣率。 在elasticsearch.yml中,我們要設置以下內容:

tracing.apm.enabled: true
tracing.apm.agent.server_url: "url of the APM server"

秘密令牌(或 API 密鑰)必須位于 Elasticsearch 密鑰庫中。 使用以下命令 elasticsearch-keystore add Tracing.apm.secret_token 或 tracing.apm.api_key ,密鑰庫工具應該可以在 <你的 elasticsearch 安裝目錄>/bin/elasticsearch-keystore 中使用。 之后,你需要重新啟動 Elasticsearch。 有關跟蹤的更多信息可以在我們的跟蹤文檔中找到。

激活后,我們可以在 APM 視圖中看到 Elasticsearch 自動捕獲各種 API 端點。 GET、POST、PUT、DELETE 調用。 整理好之后,讓我們創(chuàng)建索引:

PUT openwebtext-analyzed
{
  "settings": {
    "number_of_replicas": 0,
    "number_of_shards": 1,
    "index": {
      "default_pipeline": "openwebtext"
    }
  },
  "mappings": {
    "properties": {
      "ml.tokens": {
        "type": "rank_features"
      },
      "text": {
        "type": "text",
        "analyzer": "english"
      }
    }
  }
}

這應該給我們一個名為 PUT /{index} 的單個 transaction。 正如我們所看到的,當我們創(chuàng)建索引時發(fā)生了很多事情。 我們有創(chuàng)建調用,我們需要將其發(fā)布到集群狀態(tài)并啟動分片。

Observability:識別生成式 AI 搜索體驗中的慢速查詢,Elasticsearch,Observability,Elastic,人工智能,elasticsearch,大數據,搜索引擎,運維,全文檢索

我們需要做的下一件事是創(chuàng)建一個攝取管道 —— 我們稱之為 openwebtext。 管道名稱必須在上面的索引創(chuàng)建調用中引用,因為我們將其設置為默認管道。 這可確保如果請求中未指定其他管道,則針對索引發(fā)送的每個文檔都將自動通過此管道運行。

PUT _ingest/pipeline/openwebtext
{
  "description": "Elser",
  "processors": [
    {
      "inference": {
        "model_id": ".elser_model_1",
        "target_field": "ml",
        "field_map": {
          "text": "text_field"
        },
        "inference_config": {
          "text_expansion": {
            "results_field": "tokens"
          }
        }
      }
    }
  ]
}

我們得到一個 PUT /_ingest/pipeline/{id} transaction。 我們看到集群狀態(tài)更新和一些內部調用。 至此,所有準備工作都已完成,我們可以開始使用 openwebtext 數據集運行批量索引。

Observability:識別生成式 AI 搜索體驗中的慢速查詢,Elasticsearch,Observability,Elastic,人工智能,elasticsearch,大數據,搜索引擎,運維,全文檢索

在開始批量攝入之前,我們需要啟動 ELSER 模型。 轉到 “Maching Learning(機器學習)”、“Trained Models(訓練模型)”,然后單擊 “Play(播放)”。 你可以在此處選擇分配和線程的數量。

模型啟動被捕獲為 POST /_ml/trained_models/{model_id}/deployment/_start。 它包含一些內部調用,可能不如其他事務那么有趣。

Observability:識別生成式 AI 搜索體驗中的慢速查詢,Elasticsearch,Observability,Elastic,人工智能,elasticsearch,大數據,搜索引擎,運維,全文檢索

現在,我們想通過運行以下命令來驗證一切是否正常。 Kibana 開發(fā)工具有一個很酷的小技巧,你可以在文本的開頭和結尾使用三引號(如”””),告訴 Kibana? 將其視為字符串并在必要時轉義。 不再需要手動轉義 JSON 或處理換行符。 只需輸入你的文字即可。 這應該返回一個文本和一個顯示所有令牌的 ml.tokens 字段。?

POST _ingest/pipeline/openwebtext/_simulate
{
  "docs": [
    {
      "_source": {
        "text": """This is a sample text"""
      }
    }
  ]
}

此調用也被捕獲為 transaction POST _ingest/pipeline/{id}/_simulate。 有趣的是,我們看到推理調用花費了 338 毫秒。 這是模型創(chuàng)建向量所需的時間。

Observability:識別生成式 AI 搜索體驗中的慢速查詢,Elasticsearch,Observability,Elastic,人工智能,elasticsearch,大數據,搜索引擎,運維,全文檢索

Bulk 攝入

openwebtext 數據集有一個文本文件,代表 Elasticsearch 中的單個文檔。 這個相當 hack 的 Python 代碼讀取所有文件并使用簡單的批量助手將它們發(fā)送到 Elasticsearch。 請注意,你不想在生產中使用它,因為它以序列化方式運行,因此速度相對較慢。 我們有并行批量幫助程序,允許你一次運行多個批量請求。

import os
from elasticsearch import Elasticsearch, helpers

# Elasticsearch connection settings
ES_HOST = 'https://localhost:9200'  # Replace with your Elasticsearch host
ES_INDEX = 'openwebtext-analyzed'  # Replace with the desired Elasticsearch index name

# Path to the folder containing your text files
TEXT_FILES_FOLDER = 'openwebtext'

# Elasticsearch client
es = Elasticsearch(hosts=ES_HOST, basic_auth=('elastic', 'password'))

def read_text_files(folder_path):
    for root, _, files in os.walk(folder_path):
        for filename in files:
            if filename.endswith('.txt'):
                file_path = os.path.join(root, filename)
                with open(file_path, 'r', encoding='utf-8') as file:
                    content = file.read()
                    yield {
                        '_index': ES_INDEX,
                        '_source': {
                            'text': content,
                        }
                    }

def index_to_elasticsearch():
    try:
        helpers.bulk(es, read_text_files(TEXT_FILES_FOLDER), chunk_size=25)
        print("Indexing to Elasticsearch completed successfully.")
    except Exception as e:
        print(f"Error occurred while indexing to Elasticsearch: {e}")

if __name__ == "__main__":
    index_to_elasticsearch()

我們看到這 25 個文檔需要 11 秒才能被索引。 每次攝取管道調用推理處理器(進而調用機器學習模型)時,我們都會看到該特定處理器需要多長時間。 在本例中,大約需要 500 毫秒 — 25 個文檔,每個文檔約 500 毫秒,總共需約?12.5 秒來完成處理。 一般來說,這是一個有趣的觀點,因為較長的文件可能會花費更多的時間,因為與較短的文件相比,需要分析的內容更多。 總體而言,整個批量請求持續(xù)時間還包括返回給 Python 代理的答案以及 “確定” 索引。 現在,我們可以創(chuàng)建一個儀表板并計算平均批量請求持續(xù)時間。 我們將在 Lens 中使用一些小技巧來計算每個文檔的平均時間。 我會告訴你如何做。

首先,在事務中捕獲了一個有趣的元數據 - 該字段稱為 labels.http_request_headers_content_length。 該字段可能被映射為關鍵字,因此不允許我們運行求和、求平均值和除法等數學運算。 但由于運行時字段,我們不介意這一點。 我們可以將其轉換為 Double。 在 Kibana 中,轉到包含 traces-apm 數據流的數據視圖,并執(zhí)行以下操作作為值:

emit(Double.parseDouble($('labels.http_request_headers_content_length','0.0')))

如果該字段不存在和/或丟失,則將現有值作為 Double 發(fā)出(emit),并將報告為 0.0。 此外,將格式設置為 Bytes。 這將使它自動美化! 它應該看起來像這樣:

Observability:識別生成式 AI 搜索體驗中的慢速查詢,Elasticsearch,Observability,Elastic,人工智能,elasticsearch,大數據,搜索引擎,運維,全文檢索

創(chuàng)建一個新的儀表板,并從新的可視化開始。 我們想要選擇指標可視化并使用此 KQL 過濾器:data_stream.type: "traces" AND service.name: "elasticsearch" AND transaction.name: "PUT /_bulk"。 在數據視圖中,選擇包含 traces-apm 的那個,與我們在上面添加字段的位置基本相同。 單擊 Prmary metricfomula:?

sum(labels.http_request_headers_content_length_double)/(count()*25)

由于我們知道每個批量請求包含 25 個文檔,因此我們只需將記錄數(transaction 數)乘以 25,然后除以字節(jié)總和即可確定單個文檔有多大。 但有一些注意事項 - 首先,批量請求會產生開銷。 批量看起來像這樣:

{ "index": { "_index": "openwebtext" }
{ "_source": { "text": "this is a sample" } }

對于要索引的每個文檔,你都會獲得 JSON 中的第二行,該行會影響總體大小。 更重要的是,第二個警告是壓縮。 當使用任何壓縮時,我們只能說 “這批文檔的大小為 x”,因為壓縮的工作方式會根據批量內容而有所不同。 當使用高壓縮值時,我們發(fā)送 500 個文檔時可能會得到與現在發(fā)送 25 個文檔相同的大小。 盡管如此,這是一個有趣的指標。

Observability:識別生成式 AI 搜索體驗中的慢速查詢,Elasticsearch,Observability,Elastic,人工智能,elasticsearch,大數據,搜索引擎,運維,全文檢索?

我們可以使用 transaction.duration.us 提示! 將 Kibana 數據視圖中的格式更改為 Duration 并選擇 microseconds,確保其渲染良好。 很快,我們可以看到,批量請求的平均大小約為 125kb,每個文檔約為 5kb,耗時 9.6 秒,其中 95% 的批量請求在 11.8 秒內完成。

Observability:識別生成式 AI 搜索體驗中的慢速查詢,Elasticsearch,Observability,Elastic,人工智能,elasticsearch,大數據,搜索引擎,運維,全文檢索

?

查詢時間!

現在,我們已經對許多文檔建立了索引,終于準備好對其進行查詢了。 讓我們執(zhí)行以下查詢:

GET /openwebtext/_search
{
   "query":{
      "text_expansion":{
         "ml.tokens":{
            "model_id":".elser_model_1",
            "model_text":"How can I give my cat medication?"
         }
      }
   }
}

我正在向 openwebtext 數據集詢問有關給我的貓喂藥的文章。 我的 REST 客戶端告訴我,整個搜索(從開始到解析響應)花費了:94.4 毫秒。 響應中的語句為 91 毫秒,這意味著在 Elasticsearch 上的搜索花費了 91 毫秒(不包括一些內容)。 現在讓我們看看 GET /{index}/_search transaction。

Observability:識別生成式 AI 搜索體驗中的慢速查詢,Elasticsearch,Observability,Elastic,人工智能,elasticsearch,大數據,搜索引擎,運維,全文檢索

我們可以發(fā)現,機器學習(基本上是動態(tài)創(chuàng)建令牌)的影響占總請求的 74 毫秒。 是的,這大約占整個交易持續(xù)時間的 3/4。 有了這些信息,我們就可以就如何擴展機器學習節(jié)點以縮短查詢時間做出明智的決策。

結論

這篇博文向你展示了將 Elasticsearch 作為儀表化應用程序并更輕松地識別瓶頸是多么重要。 此外,你還可以使用事務持續(xù)時間作為異常檢測的指標,為你的應用程序進行 A/B 測試,并且再也不用懷疑 Elasticsearch 現在是否感覺更快了。 你有數據支持這一點。 此外,這廣泛地關注了機器學習方面的問題。 查看一般慢日志查詢調查博客文章以獲取更多想法。

儀表板和數據視圖可以從我的 Github 存儲庫導入。

原文:Identify slow queries in generative AI search experiences | Elastic Blog文章來源地址http://www.zghlxwxcb.cn/news/detail-641847.html

到了這里,關于Observability:識別生成式 AI 搜索體驗中的慢速查詢的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 體驗百度文心一言AI模型生成姚明簡介

    體驗百度文心一言AI模型生成姚明簡介

    姚明(Yao Ming),男,漢族,無黨派人士,1980年9月12日出生于上海市徐匯區(qū),祖籍江蘇省蘇州市吳江區(qū)震澤鎮(zhèn),前中國職業(yè)籃球運動員,司職中鋒,現任亞洲籃球聯(lián)合會主席、中國籃球協(xié)會主席、中職聯(lián)公司董事長兼總經理,十三屆全國青聯(lián)副主席,改革先鋒獎章獲得者。第

    2024年01月16日
    瀏覽(31)
  • Stable Diffusion體驗——AI生成不同風格照片

    Stable Diffusion體驗——AI生成不同風格照片

    AI繪畫想必大家都有所耳聞,最近博主嘗試了使用基于擴散過程的圖像生成工具 Stable Diffusion 來生成多樣化的圖片,生成的照片質量較高。 本文將會介紹我使用Stable Diffusion 生成 不同風格照片的 過程 ,并闡述它與其他 同類工具的比較 以及它的 工作原理 。 輸入的 原始圖片

    2024年02月05日
    瀏覽(36)
  • 體驗文心一言AI大模型生成中國城市簡介

    體驗文心一言AI大模型生成中國城市簡介

    宿遷,江蘇省省轄市,位于江蘇省北部、地處長江三角洲地區(qū),是長三角城市群成員城市,也是淮海經濟圈、沿海經濟帶、沿江經濟帶的交叉輻射區(qū)。宿遷獲評全國文明城市,榮獲國家衛(wèi)生城市、國家環(huán)保模范城市、國家園林城市、中國優(yōu)秀旅游城市、全國雙擁模范城市、全

    2024年02月10日
    瀏覽(22)
  • MySQL 8.0 OCP (1Z0-908) 考點精析-性能優(yōu)化考點4:慢速查詢日志(slow query log)

    慢速查詢日志(slow query log) 慢速查詢日志(slow query log)主要用于查找超過指定時間、執(zhí)行時間很長的SQL。 默認情況下這個功能是無效的,所以要啟用慢速查詢日志需要設置slow_query_log 為1(ON)。 慢速查詢日志(slow query log)相關參數 下面我們看看慢速查詢日志(slow query l

    2023年04月22日
    瀏覽(82)
  • PerfView專題 (第十五篇): 如何洞察 C# 中的慢速方法

    PerfView專題 (第十五篇): 如何洞察 C# 中的慢速方法

    在 dump 分析旅程中,經常會遇到很多朋友反饋一類問題,比如: 方法平時都執(zhí)行的特別快,但有時候會特別慢,怎么排查? 我的方法第一次執(zhí)行特別慢,能看到慢在哪里嗎? 相信有朋友肯定說,加些日志不就好了,大方向肯定是沒問題的,但加日志的顆粒度會比較粗而且侵

    2024年02月16日
    瀏覽(25)
  • 免費 AI 代碼生成器 Amazon CodeWhisperer 初體驗

    免費 AI 代碼生成器 Amazon CodeWhisperer 初體驗

    文章作者:浪里行舟 簡介 隨著 ChatGPT 的到來,不由讓很多程序員感到恐慌。雖然我們阻止不了 AI 時代到來,但是我們可以跟隨 AI 的腳步,近期我發(fā)現了一個神仙 AI 代碼生產工具 CodeWhisperer ,它是一項基于機器學習的服務,其根據自然語言注釋和集成開發(fā)環(huán)境(IDE)中的代

    2024年02月07日
    瀏覽(21)
  • Amazon CodeWhisperer 免費 AI 代碼生成助手體驗分享

    Amazon CodeWhisperer 免費 AI 代碼生成助手體驗分享

    ? ? ? ? 今年上半年,亞馬遜云科技正式推出了實時AI編程助手 Amazon CodeWhisperer,還提供了供所有開發(fā)人員免費使用的個人版版本。經過一段時間的體驗,我覺得 CodeWhisperer 可以處理編程工作中遇到的很多問題,并且?guī)椭_發(fā)人員提高編程效率。最重要的是 CodeWhisperer 在代碼

    2024年02月04日
    瀏覽(29)
  • WPS-AI 體驗筆記1:一鍵生成 PPT

    WPS-AI 體驗筆記1:一鍵生成 PPT

    WPS Win客戶端 版本:11.1.0.14650 上小節(jié)介紹了怎么獲取 WPS AI 的“入場券”和一些“入場”準備工作,這一篇開始來實戰(zhàn)應用一下。 使用 PPT 的【一鍵生成幻燈片】的功能,來制作一篇 PPT:賞析李白的經典詩歌《靜夜思》。 接下來一起來賞析一下李白的《靜夜思》。 新建一個

    2024年02月11日
    瀏覽(21)
  • 【體驗有獎】 玩轉 AIGC,Serverless 一鍵部署 AI 圖像生成服務

    【體驗有獎】 玩轉 AIGC,Serverless 一鍵部署 AI 圖像生成服務

    AI 模型展現出的圖像生成能力已經遠超人們的預期,只需要給出文字描述就能創(chuàng)造出具有驚人視覺效果的圖像,人人都是藝術家的時代即將來臨。 阿里云 Serverless 團隊全新上線體驗 “基于函數計算 FC+Serverless 應用部署 Stable Diffusion v1.5 ” 體驗活動,讓您簡單、高效實現一鍵

    2024年02月09日
    瀏覽(26)
  • 什么軟件可以生成AI龍年頭像圖片?帶你體驗個性頭像

    什么軟件可以生成AI龍年頭像圖片?帶你體驗個性頭像

    新的一年即將到來,不少人都開始為自己的社交平臺更換新年頭像,寓意著新的開始和美好的期許。 而如今,AI技術的應用讓我們可以輕松地為自己設計出與眾不同的頭像,還能設計出情侶款的頭像,滿足了各位小情侶在新的一年里對未來的各種期待。 那么問題就來了,哪個

    2024年02月20日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包