
實時航班追蹤背后的技術:在線飛機追蹤器的工作原理
{
"service": "alibabacloud-ai-search",
"service_settings": {
"api_key": "<api_key>",
"service_id": "ops-text-sparse-embedding-001",
"host": "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
"workspace": "default"
}
}
在上面,我們需要從阿里云獲得 api_key 來進行。運行上面的命令:
我們接下來可以通過如下的方式來測試(如下信息由地址獲得):
POST _inference/alibabacloud_ai_search_sparse
{
"input": "阿里巴巴(中國)有限公司成立于2007年03月26日,法定代表人蔣芳"
}
上面的命令顯示的結果為:
我們從上面的顯示結果可以看出來,它和我們之前的 Elastic ELSER 輸出是不同的。這里應該是 unicode。
上面的命令和下面的命令是一樣的:
POST _inference/sparse_embedding/alibabacloud_ai_search_sparse
{
"input": "阿里巴巴(中國)有限公司成立于2007年03月26日,法定代表人蔣芳"
}
因為每個 endpoint 在 Elasticsearch 創建時,都會自動檢測并識別出它是什么類型的模型,所以上面路徑中的 sparse_embedding 是可以省去的。
PUT _inference/text_embedding/alibabacloud_ai_search_embeddings
{
"service": "alibabacloud-ai-search",
"service_settings": {
"api_key": "<api_key>",
"service_id": "ops-text-embedding-001",
"host": "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
"workspace": "default"
}
}
運行上面的命令,我們可以看到:
我們可以使用如下的命令來生成密集向量:
POST _inference/alibabacloud_ai_search_embeddings
{
"input": "阿里巴巴(中國)有限公司成立于2007年03月26日,法定代表人蔣芳"
}
密集向量是一個浮點數的數組。我們在生成的時候,其實還是可以對它進行標量量化,這樣可以節省內存消耗,并提高搜索的速度。
我們甚至可以針對搜索的結果運用大模型來得到一個 completion 的結果,比如,我們使用如下的命令來生成一個 completion 的推理 API 端點:
PUT _inference/completion/alibabacloud_ai_search_completion
{
"service": "alibabacloud-ai-search",
"service_settings": {
"host" : "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
"api_key": "{{API_KEY}}",
"service_id": "ops-qwen-turbo",
"workspace" : "default"
}
}
我們可以通過如下的例子來展示 completion:
POST _inference/completion/alibabacloud_ai_search_completion
{
"input": "阿里巴巴(中國)有限公司是什么時候成立的?"
}
這個結果是結合大模型而生成的。大模型提供了一個基于在大模型訓練時得到的結果。
同樣,我們可以按照如下的命令來生成一個 rerank 的推理 API 端點:
PUT _inference/rerank/alibabacloud_ai_search_rerank
{
"service": "alibabacloud-ai-search",
"service_settings": {
"api_key": "<api_key>",
"service_id": "ops-bge-reranker-larger",
"host": "default-j01.platform-cn-shanghai.opensearch.aliyuncs.com",
"workspace": "default"
}
}
在上面的 input 里,我們列舉了兩個文檔。我們可以通過 rerank 端點來針對這兩個文檔重新進行排序。假如我們想搜索的文字是 “阿里巴巴(中國)有限公司是哪一年成立的?”。那么 rerank 返回來的結果是:
從上面,我們可以看出來,第二個文檔比第一個文檔更為貼近,也就是它的相關度更高。
在很多情況下,我們企業有很多的業務數據或者私有數據每時每刻都在生成,而大模型的知識僅限于在它生成的時候,所以很多的時候,大模型有很多的知識是不知道的。如果我們不對大模型的回答進行限制,那么它可能給出的答案就是錯誤的,從而產生幻覺。在實際的應用中,我們通常把業務或私有數據保存于像 Elasticsearch 這樣的向量數據庫中。在搜索時,我們首先搜索 Elasticsearch,并把搜索的結果發送給大模型做為 prompt 的一部分,這樣就可以解決幻覺的問題。
首先,我們來創建一個稀疏向量索引:
PUT alibaba_sparse
{
"mappings": {
"properties": {
"inference_field": {
"type": "semantic_text",
"inference_id": "alibabacloud_ai_search_sparse"
}
}
}
}
然后,我們寫入如下的兩個文檔
PUT alibaba_sparse/_bulk
{"index": {"_id": "1"}}
{"inference_field": "阿里巴巴(中國)有限公司成立于2007年03月26日,法定代表人蔣芳"}
{"index": {"_id": "2"}}
{"inference_field": "阿里云(Alibaba Cloud Computing Co. Ltd,又名:阿里云計算有限公司)創立于2009年,總部設在杭州,為阿里巴巴集團的數字技術與智能骨干業務,向全球客戶提供全方位云服務,包括自有服務器、彈性計算、存儲、網絡安全、數據庫和大數據等服務。"}
我們通過如下的命令來進行搜索:
GET alibaba_sparse/_search
{
"query": {
"semantic": {
"field": "inference_field",
"query": "阿里云是什么時候成立的?"
}
}
}
阿里云排第一位
“阿里云(Alibaba Cloud Computing Co. Ltd,又名:阿里云計算有限公司)創立于2009年,總部設在杭州,為阿里巴巴集團的數字技術與智能骨干業務,向全球客戶提供全方位云服務,包括自有服務器、彈性計算、存儲、網絡安全、數據庫和大數據等服務。
“阿里巴巴排第二位
“阿里巴巴(中國)有限公司成立于2007年03月26日,法定代表人蔣芳”含有阿里云的文檔排在第一的位置。這個就是我們所說的向量搜索。在實際的很多例子中,我們有時想得到一個唯一的答案,甚至這個答案是推理出來的,而不原始的文檔。這個時候我們就需要用到大模型,也就是使用 completion 這個推理端點。我們首先來做如下的搜索:
GET alibaba_sparse/_search
{
"query": {
"semantic": {
"field": "inference_field",
"query": "阿里巴巴公司的法人是誰?"
}
}
}
這次只有一個文檔被列出來了。我們在下面使用 completion 端點:
POST _inference/completion/alibabacloud_ai_search_completion
{
"input": "<|system|>
你是一個知識淵博的人.</s>
<|user|>
CONTEXT:
阿里巴巴(中國)有限公司成立于2007年03月26日,法定代表人蔣芳
QUESTION:
阿里巴巴公司的法人是誰?</s>
<|assistant|>"
}
在上面,我們把上面搜索的結果文檔 “阿里巴巴(中國)有限公司成立于2007年03月26日,法定代表人蔣芳” 作為 context 的一部分,并把搜索的問題也一并提交。我們使用 completion 端點 API 來查看結果:
上面顯示的結果是 “阿里巴巴公司的法定代表人是蔣芳”。很顯然這個和之前的直接使用 completion 而沒有 context 的結果是完全不同的:
POST _inference/completion/alibabacloud_ai_search_completion
{
"input": "阿里巴巴法定代表是誰?"
}
可以這樣理解,有了從 Elasticsearch 向量數據庫(實時業務數據或私有數據)中搜索來的結果并提供給大模型,大模型可以根據這些上下文,得到更為貼近答案的搜索結果。這個在實際的使用中避免幻覺!另外一個例子:
POST _inference/completion/alibabacloud_ai_search_completion
{
"input": "<|system|>
你是一個知識淵博的人.</s>
<|user|>
CONTEXT:
阿里巴巴(中國)有限公司成立于2007年03月26日,法定代表人蔣芳
QUESTION:
阿里巴巴(中國)有限公司是什么時候成立的?</s>
<|assistant|>"
}
按照構建提示(prompt)的方法,我們來創建一個密集向量的索引:
PUT alibaba_dense
{
"mappings": {
"properties": {
"inference_field": {
"type": "semantic_text",
"inference_id": "alibabacloud_ai_search_embeddings"
}
}
}
}
我們按照同樣的方法來寫入文檔:
PUT alibaba_dense/_bulk
{"index": {"_id": "1"}}
{"inference_field": "阿里巴巴(中國)有限公司成立于2007年03月26日,法定代表人蔣芳"}
{"index": {"_id": "2"}}
{"inference_field": "阿里云 (又名:阿里云計算有限公司)創立于2009年,總部設在杭州,為阿里巴巴集團的數字技術與智能骨干業務,向全球客戶提供全方位云服務"}
我們來對這個密集向量索引 alibaba_dense 來進行搜索:
GET alibaba_dense/_search
{
"query": {
"semantic": {
"field": "inference_field",
"query": "Alibaba 的法人是誰?"
}
}
}
很顯然,在我們的搜索中,我們并沒有使用 “阿里巴巴”,我們查詢的是 Alibaba。在向量空間里 “阿里巴巴” 等同于 “Alibaba”。同樣地,
GET alibaba_dense/_search
{
"query": {
"semantic": {
"field": "inference_field",
"query": "Aliyun是什么樣的公司?"
}
}
}
上面的搜索的結果是:
很顯然,含有 “阿里云” 的文檔排名為第一盡管我們搜索的是 “Alibaba”。
我們知道 semantic_text 字段可以幫我們自動把一大段的文字進行分塊,而不需要我們手動去分塊。這個是 semantic_text 一個非常大的好處。我們來創建一個叫做 alibaba_dense_large_text 的索引:
PUT alibaba_dense_large_text
{
"mappings": {
"properties": {
"inference_field": {
"type": "semantic_text",
"inference_id": "alibabacloud_ai_search_embeddings"
}
}
}
}
我們也為這個索引創建一個大的文檔:
PUT alibaba_dense_large_text/_doc/1
{
"inference_field": "
阿里巴巴集團簡介
阿里巴巴集團(Alibaba Group)是一家總部位于中國浙江省杭州市的全球知名科技公司,成立于1999年,由馬云及其團隊創建。作為一家以科技驅動為核心的企業,阿里巴巴在電子商務、云計算、金融科技、數字媒體、物流等領域擁有廣泛布局,成為全球互聯網行業的重要參與者。
創立背景與早期發展
阿里巴巴的誕生始于1999年,當時中國的互聯網剛剛興起。馬云和他的團隊懷著通過互聯網賦能中小企業的愿景,推出了全球批發交易市場阿里巴巴網站(Alibaba.com)。最初,這個平臺主要為中小企業提供展示產品和尋找國際買家的機會,幫助中國的制造商走向全球市場。經過幾年發展,阿里巴巴迅速嶄露頭角,成為全球領先的B2B電子商務平臺。
2003年,阿里巴巴推出了面向個人消費者的C2C平臺淘寶網(Taobao),迅速吸引了大量用戶。憑借“免費開店”的模式,淘寶在短時間內與其他電商平臺展開競爭并取得成功。為了增強用戶體驗,阿里巴巴在2004年推出了第三方支付平臺支付寶(Alipay),解決了在線支付的信任問題,這一創新奠定了中國電子商務快速發展的基礎。
業務生態與戰略布局
阿里巴巴通過不斷拓展業務,逐步構建了涵蓋電商、金融、物流和云計算等領域的多元化生態系統。
電子商務領域
作為阿里巴巴的核心業務,電子商務包括淘寶、天貓(Tmall)和全球速賣通(AliExpress)等平臺。其中,淘寶以滿足個人消費者需求為主,天貓則面向品牌和企業,提供高品質的商品和服務。全球速賣通致力于連接海外買家與中國賣家,在國際市場上影響力日益增強。
云計算與大數據
阿里云(Alibaba Cloud)是阿里巴巴集團的核心技術部門,成立于2009年,提供云計算服務、人工智能解決方案和大數據技術支持。如今,阿里云已成為全球領先的云服務提供商,為企業數字化轉型提供支撐。
金融科技
支付寶的母公司螞蟻集團是阿里巴巴金融科技布局的重要組成部分。通過支付寶,阿里巴巴為用戶提供線上支付、理財、貸款等服務,推動了中國無現金社會的發展。
物流與供應鏈
菜鳥網絡(Cainiao Network)成立于2013年,致力于優化物流效率,構建覆蓋全球的智能物流網絡。菜鳥的技術和平臺能力提升了電商物流服務的速度和可靠性。
數字媒體與娛樂
阿里巴巴還在數字媒體領域積極布局,包括優酷、阿里影業和蝦米音樂等,推動內容生態的建設。此外,集團通過投資文化創意產業和拓展體育事業,進一步豐富了品牌內涵。
國際化與創新
近年來,阿里巴巴不斷加快國際化步伐,旨在成為全球消費者與企業的橋梁。集團通過并購和合作,擴展了其在東南亞、歐洲和北美等市場的業務。例如,通過收購Lazada,阿里巴巴增強了其在東南亞地區的電商影響力。
此外,阿里巴巴還積極探索新技術,包括人工智能、區塊鏈和物聯網。這些技術的應用不僅優化了集團的現有業務,還為未來的創新奠定了基礎。
企業文化與社會責任
阿里巴巴的企業文化以“讓天下沒有難做的生意”為核心使命,鼓勵員工創新和協作。馬云強調企業的社會責任,并倡導將資源用于公益事業。例如,阿里巴巴基金會支持環境保護、教育發展和扶貧工作,為社會創造長期價值。
面臨的挑戰與未來展望
盡管阿里巴巴取得了顯著成就,但也面臨著國際競爭加劇、行業監管加強和技術創新壓力等挑戰。為了保持領先地位,阿里巴巴需要在全球范圍內持續創新,同時積極適應不同市場的法規和文化。
展望未來,阿里巴巴將繼續推動科技與商業的融合,助力中小企業和消費者實現更多價值。同時,通過技術研發和全球化布局,阿里巴巴有望在全球數字經濟的發展中扮演更加重要的角色。
結語
作為中國乃至全球最具影響力的互聯網公司之一,阿里巴巴的成長歷程展現了科技對商業模式的深刻變革。通過不斷創新和拓展,阿里巴巴正在為全球經濟注入新的活力,也為無數企業和消費者創造了前所未有的機會。未來,阿里巴巴仍將以技術和商業為驅動,為構建更加便捷和高效的數字化世界而努力。
"
}
上面的文章的字數大概在1000個字左右。
我們可以通過如下的方法來查看寫入的文檔:
GET alibaba_dense_large_text/_search
從上面,我們可以看出來,semantic_text 字段自動將一個很長文字的文檔分塊,并分別對它們進行向量化。
本文章轉載微信公眾號@阿里云大數據AI平臺