基于亞馬遜云科技大語言模型等服務打造企業知識庫

背景

大語言模型是自然語言處理領域的一項重要技術,能夠通過學習大量的文本數據,生成具有語法和意義的自然語言文本。目前大語言模型已經成為了自然語言處理領域的一個熱門話題,引起了廣泛的關注和研究。

知識庫需求在各行各業中普遍存在,例如制造業中歷史故障知識庫、游戲社區平臺的內容知識庫、電商的商品推薦知識庫和醫療健康領域的掛號推薦知識庫系統等。

本文旨在介紹一些企業知識庫的典型實用場景,以及如何使用智能搜索,結合大語言模型,針對企業知識庫提供基于搜索的精準問答。

基于智能搜索的大語言模型增強方案介紹

架構圖

該平臺將包括五大核心內容

1. 智能搜索

傳統僅依靠關鍵詞匹配的分詞搜索的方式在很多場景下可以提供快速有效的查詢,但是也存在一些固有的局限性。例如匹配一些包括停用詞在內的無關詞匯,無法識別同義詞和缺乏抽象能力。為了解決這些問題,本方案中一方面使用意圖識別大語言模型,對關鍵信息進行提取,從而可以有效的避免停用詞等無法詞匯對搜索造成的干擾。另一方面,引入AI/ML的方法來輔助實現語意搜索。具體來講,使用同一個向量編碼的大語言模型對搜索語句和文檔數據庫進行語意編碼,在檢索的過程中,使用knn方法進行向量匹配。以下是一個傳統分詞搜索與語意向量搜索的對比展示。可以看到,使用向量搜索功能后,可以召回更多自然語意上相近而關鍵詞無關的內容,增加召回范圍和提升搜索準確性。

在本方案中,以Amazon OpenSearch和Amazon Kendra為基礎構建搜索引擎。提供分詞搜索,模糊查詢和AI/ML輔助搜索功能。不在局限于某一種搜索方式,而是將所有搜索方法取長補短,進行有機的整合。

智能引導

造成搜索不準確的原因,一方面是由于搜索引擎本身的能力不足,另外一方面的原因是因為搜索的語句不夠準確和具體。因此,本方案中提出了一種引導式的搜索機制來幫助檢索人員逐步豐富輸入的搜索語句,最終達到提升搜索準確性的目的。

以下面制造業大型設備維保知識庫的搜索流程為例。該知識庫存儲歷史維修記錄,包括故障現象,故障原因,維修方案等字段。

當用戶輸入檢索詞“電路”后,除了從知識庫中返回與電路相關的條目之外,還會給予一些提示詞,例如“門系統”、“控制系統”等,這些詞代表與“電路”相關的故障往往伴隨可能出現問題的系統,提示用戶進一步豐富當前的搜索描述。

當用戶進一步輸入“主板”后,會將“電路”和“主板”進行聯合查詢,返回相關的條目,并進一步給出新的提示詞。

用戶可以重復以上過程,直到搜索出來更為精準的結果。

提示詞的獲取:根據實際情況,可以采用人工打標、無監督聚類、有監督分類、大語言模型(LLM)等方法進行提取,并提前注入到數據庫中。

智能優化

通常情況下,由于知識庫的迭代更新,檢索的準確率可能會隨時時間的推薦逐步降低,一方面是因為我們往往不能保證,數據庫和搜索引擎一次性構建完成后就達到很好的效果。另外一方面是因為對于過時的知識沒有進行有效的處理。因此,本方案提出以用戶行為對搜索引擎進行持續優化。

具體來講包括兩個步驟:

用戶行為收集:將歷史用戶的行為進行收集,例如用戶對某個搜索詞條的打分。

大語言模型的訓練和部署:通過用戶行為,整理得到搜索詞條和知識庫之間的相關度。使用該相關度訓練和部署一個重排大語言模型,該重排大語言模型可以根據歷史的用戶行為,給予用戶更加偏好的內容更高的權重得分。

值得注意的是,該大語言模型是基于傳統機器學習模型xgboost的,所以所需要的訓練數據量和推理所需要的資源都是很小的(例如只需要幾十條數據和t3.small機型),因此可以基于不同的用戶/用戶群訓練不同的重排大語言模型,達到千人千面,個性化搜索的目的。

4.智能問答

基于私有知識庫進行問答是另外一個廣泛應用的場景,例如智能客戶聊天機器人系統,IT/HR系統智能問答系統等。

如果僅使用搜索引擎,只能基于問題從數據庫中提取與該問題相關的內容,而不能直接給出答案。

如果僅使用大語言模型(Large Language Model,LLM),不能基于私有知識庫進行問答。一種可行的方式是將私有知識庫和問題直接以prompt的形式直接一次性給到LLM,然后讓LLM給出回答。但是受限于LLM Token的限制,無法一次性輸入過多的知識庫。

因此,在本方案中,將兩者結合。如下圖所示,當用戶提出一個問題后,首先使用搜索提取與問題相關的知識,然后再將問題和提取的知識給到LLM進行總結,最后直接給出問題答案。

5. 非結構化數據注入

可供搜索引擎進行檢索的企業知識庫是一種結構化的數據,但往往企業的原始知識都是以非結構化的數據進行存儲的,來自多個渠道,也包含了多種格式,例如Words,PDF,Excel等。

為了能夠幫助企業快速將這些結構化數據利用起來,本方案提供了非結構化數據注入功能,該功能將企業的知識文檔進行自動段落拆分和向量編碼,建立結構化企業知識庫。

大語言模型技術細節

LLM

最近半年,大語言模型(LLM)在自然語言處理領域取得了飛速的發展。大語言模型通常基于Transformer架構,在大規模的網絡文本數據上進行訓練,其核心是使用一個自我監督的目標來預測部分句子中的下一個單詞。亞馬遜云科技已推出大語言模型Titan和大語言模型平臺Amazon Bedrock,另外還有許多研究機構推出開源大語言模型,如斯坦福大學的Alpaca和清華大學的ChatGLM等。這些大語言模型都具備強大的文本處理能力,廣泛應用在智能問答、文本總結、文本生成等場景。

Embedding

各類非結構化數據廣泛存在于我們的生活和工作場景,如文本、圖片、視頻等,為了處理這些非結構化數據,亞馬遜云科技通常使用Embedding模型提取這些數據的特征,并把數據特征轉化成向量,通過特征向量對這些非結構化數據進行分析和檢索。通用的預訓練大語言模型都有把文本進行向量化的功能,可以根據不同的場景和語種,選用合適的預訓練大語言模型作為Embedding模型。

Intent Detection

搜索意圖識別主要功能是分析用戶的核心搜索需求,例如在電商場景,用戶找的電子產品,是電腦類的,還是手機類的,是家庭場景用的,還是戶外場景用的等等,如果意圖識別不準,會有很多不相關的商品展現給用戶,導致產生非常差的用戶體驗,因此精準的意圖識別非常重要。意圖識別主要包括類目預測和實體識別大語言模型,類目預測大語言模型主要采用文本多分類模型,根據平臺的用戶行為數據,將查詢文本預測屬于各個類目的概率。實體識別大語言模型將查詢文本中的實體詞識別出來,實體詞是描述商品的維度信息,如品牌、顏色、材質等,通過實體識別大語言模型識別出查詢文本的實體詞后,再到搜索引擎進行精準查詢。

Controlled Text Generation

可控文本生成是在傳統文本生成的基礎上,增加對生成文本的控制,如指定生成文本的關鍵詞、格式、風格等,從而使生成的文本符合我們的預期,比如生成與某人相同風格的文本,生成有固定內容格式的報告,根據簡單的故事線生成完整的小說等等。可控文本生成有對預訓練模型finetune、重新訓練文本生成模型和重構預訓練模型輸出結果等方式。在大語言模型推出后,目前可以方便的通過Prompt提示詞,指導大語言模型進行可控文本生成,針對不同的場景和文本生成目標,設計不同格式和內容的提示詞,生成滿足需求的文本。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/166400.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166400.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166400.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《洛谷深入淺出基礎篇》P4715淘汰賽——二叉樹

上鏈接:【深基16.例1】淘汰賽 - 洛谷https://www.luogu.com.cn/problem/P4715 上題干: 題目描述 有 2^n(n≤7)個國家參加世界杯決賽圈且進入淘汰賽環節。已經知道各個國家的能力值,且都不相等。能力值高的國家和能力值…

力扣刷題,兩數之和

1、兩數之和 1、問題描述 給定一個整數數組 nums 和一個整數目標值 target,請你在該數組中找出 和為目標值 target 的那兩個整數,并返回它們的數組下標。 你可以假設每種輸入只會對應一個答案。但是,數組中同一個元素在答案里不能重復出現。…

從裸機啟動開始運行一個C++程序(十三)

前序文章請看: 從裸機啟動開始運行一個C程序(十二) 從裸機啟動開始運行一個C程序(十一) 從裸機啟動開始運行一個C程序(十) 從裸機啟動開始運行一個C程序(九) 從裸機啟動開…

uniapp打包的ipa上架到appstore的傻瓜式教程

? 轉載:uniapp打包的ipa上架到appstore的傻瓜式教程 uniapp打包 在HBuilder X編輯器中打開需要打包的項目,然后點擊上面菜單欄中 發行 > 原生App-云打包,對以下彈出的彈窗進行內容填寫 ? 填寫完成以后,點擊打包操作 ? ? …

自定義責任鏈Filter實現

核心接口 Filter package com.xxx.arch.mw.nbp.common.extension;import com.xxx.commons.data.domain.Result;/*** date 2023/08/25*/ public interface Filter {Result invoke(final Invoker invoker, final Invocation invocation); } Invoker package com.xxx.arch.mw.…

修改mysql的密碼(每一步都圖文解釋哦)

當你想要連接本機數據庫時,是不是有可能突然忘記了自己的數據庫密碼? 在此文中,我們來詳細解決一下如何去修改自己的數據庫密碼,并使用Navicat來連接測試 1.停止mysql服務 打開終端,鍵入命令,將mysql服務先停止掉,…

設置滾動條樣式

滾動條樣式&#xff1a; 下面是代碼&#xff1a; <!doctype html> <html lang"en"><head><meta charset"UTF-8"><title>CSS3自定義滾動條</title><style>header {font-family: Lobster, cursive;text-align: c…

亞馬遜云科技向量數據庫助力生成式AI成功落地實踐探秘(二)

向量數據庫選擇哪種近似搜索算法&#xff0c;選擇合適的集群規模以及集群設置調優對于知識庫的讀寫性能也十分關鍵&#xff0c;主要需要考慮以下幾個方面&#xff1a; 向量數據庫算法選擇 在 OpenSearch 里&#xff0c;提供了兩種 k-NN 的算法&#xff1a;HNSW (Hierarchical…

基于STM32設計的智能防盜單車鎖(馬蹄鎖)設計_升級版

1. 前言 隨著共享單車和自行車的普及,人們對自行車的安全和便利性提出了更高的要求。智能防盜馬蹄鎖是一種基于 STM32 單片機的智能鎖,可以通過手機藍牙實現開鎖和關鎖控制,同時具備 GPRS 防盜預警功能,提高了自行車的安全性和使用便利性。 通過智能防盜馬蹄鎖,用戶可以…

YOLOv5和改進后模型的result.csv文件對比

import pandas as pd import matplotlib.pyplot as plt# 讀取CSV文件 df1 pd.read_csv(rE:\xianyu\yolo.csv) df2 pd.read_csv(rE:\xianyu\final.csv)# 獲取列名 columns df1.columns# 循環繪制每一列的對比圖 for column in columns:plt.figure(figsize(8, 5))plt.plot(df1…

技術分享 | 在 IDE 插件開發中接入 JCEF 框架

項目背景 當前的開發環境存在多種不同語言的 IDE&#xff0c;如 JetBrains 全家桶、Eclipse、Android Studio 和 VS Code 等等。由于每個 IDE 各有其特定的語言和平臺要求&#xff0c;因此開發 IDE 插件時&#xff0c;需要投入大量資源才能盡可能覆蓋大部分工具。同時&#xf…

數據結構算法-貪心算法

引言 貪心&#xff1a;人只要有 “需求“ &#xff0c;都會有有點“貪“&#xff0c; 這種“貪“是一種選擇&#xff0c;或者“”取舍“ RTS&#xff08;即時戰略&#xff09;游戲&#xff1a; 帝國時代里 首先確保擁有足夠的人口 足夠的糧食&#xff0c;足夠的戰略資源 足夠的…

干貨科普 | 不同類型的機器人及其在工作中的應用

原創 | 文 BFT機器人 制造商在其操作中使用各種類型的機器人&#xff0c;每種機器人都具有特定的能力和功能。我們將討論制造業中使用的一些最常見類型的機器人&#xff0c;以及哪種機器人可能最適合您的應用。 01 關節機器人 關節式機器人是一種工業機器人&#xff0c;具有一…

npm,yarn,pnpm 清理緩存

目錄 1&#xff0c;為什么要清理緩存1&#xff0c;緩存文件太多&#xff0c;影響系統運行2&#xff0c;不同源會有區別 2&#xff0c;命令2.1&#xff0c;npm2.2&#xff0c;yarn2.3&#xff0c;pnpm 1&#xff0c;為什么要清理緩存 1&#xff0c;緩存文件太多&#xff0c;影響…

關于easy-es的聚合問題

es實體類&#xff1a; public class ChemicalES {IndexId(type IdType.CUSTOMIZE)private Long id;HighLightIndexField(fieldType FieldType.TEXT, analyzer "ik_max_word")private String name;IndexField(fieldType FieldType.KEYWORD)private List<Stri…

三數之和 Java版

題目描述&#xff1a;給你一個包含 n 個整數的數組 nums&#xff0c;判斷 nums 中是否存在三個元素 a&#xff0c;b&#xff0c;c &#xff0c;使得 a b c 0 請你找出所有和為 0 且不重復的三元組。 注意&#xff1a;答案中不可以包含重復的三元組。 輸入&#xff1a;nums …

“土味出海”,屢試不爽!短劇出海引來新一輪爆發?

土味和“錢途”并存的短劇不僅在國內迅猛爆發&#xff0c;今年下半年以來海外市場多部爆火短劇出現&#xff0c;“短劇出海”的話題熱度不斷攀升&#xff0c;絲毫不差2021年網文出海的盛況。 “霸總的愛&#xff0c;日入千萬刀”&#xff0c;是真實存在的&#xff01; 據統計…

tp8 使用rabbitMQ(1)簡單隊列

php8.0 使用 rabbitmq 要使用 3.6版本以上的&#xff0c; 并且還要開啟 php.ini中的 socket 擴展 php think make:command SimpleMQProduce //創建一個生產者命令行 php think make:command SimpleMQConsumer //創建一個消費者命令行 代碼中的消息持久化的說明 RabbitMQ 消息持…

#Js篇:var、let和 const

var 聲明的變量具有函數作用域或者全局作用域&#xff1b;存在變量提升&#xff0c;即在執行上下文中&#xff0c;變量會被提升到函數或全局作用域的頂部&#xff0c;但初始化的賦值不會提升&#xff1b;可以重復聲明同一個變量不會報錯&#xff1b;可以被重新賦值&#xff1b…

vue3 + Ant Design Vue國際化,組件默認顯示中文

官網 寫入App.vue <template><ConfigProvider :locale"zhCN"><router-view :key"$route.fullPath"></router-view></ConfigProvider> </template><script setup> import { ConfigProvider } from "ant-de…