五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

一文讀懂神經(jīng)搜索、Jina 及 Finetuner

2022-01-18 15:22 作者:Jina_AI  | 我要投稿


本文為 Jina AI Co-founder & CTO 王楠,在 2021 年 12 月 24 日 Python Meetup Beijing 的分享實錄,內(nèi)附 Demo 及 PPT 地址。

閱讀本文,你將對神經(jīng)搜索 (Neural Search)、Jina 及 Finetuner,有較為全面的了解。

本文內(nèi)容概覽

神經(jīng)搜索:用非結(jié)構(gòu)化數(shù)據(jù)搜索非結(jié)構(gòu)化數(shù)據(jù)

結(jié)構(gòu)化數(shù)據(jù),以常用的數(shù)據(jù)庫為代表,其所有信息都是定義好的,可以直接進行快速搜索。

與結(jié)構(gòu)化數(shù)據(jù)相對應的,即非結(jié)構(gòu)化數(shù)據(jù),這類數(shù)據(jù)沒有直接可供搜索的結(jié)構(gòu)化信息。

常見的非結(jié)構(gòu)化數(shù)據(jù)包括 PDF 文檔、視頻、音樂等

據(jù) MongoDB 統(tǒng)計,我們身邊 80%~90% 的數(shù)據(jù),都屬于非結(jié)構(gòu)化數(shù)據(jù),所以,非結(jié)構(gòu)化數(shù)據(jù)的搜索,是一個非常重要的問題。

Reference:https://www.mongodb.com/unstructured-data

非結(jié)構(gòu)化數(shù)據(jù)本身包含豐富的信息,但這些信息必須借助工具抽取和加工。得益于深度學習及人工智能技術(shù)的迅猛發(fā)展,過去十幾年間,產(chǎn)生了很多可以用于抽取非結(jié)構(gòu)化數(shù)據(jù)信息的深度學習模型。

一方面,各種分類模型可以精確地給視頻、照片等非結(jié)構(gòu)化數(shù)據(jù)打標簽;另一方面,還可以利用深度學習模型,把非結(jié)構(gòu)化的數(shù)據(jù)表示為向量。

利用深度學習模型處理非結(jié)構(gòu)化數(shù)據(jù)的兩種思路

在向量空間中,相似數(shù)據(jù)會聚合在一起,不同數(shù)據(jù)則會分散在空間的不同位置。根據(jù)用戶查詢的數(shù)據(jù),在向量空間中尋找近鄰,就可以實現(xiàn)非結(jié)構(gòu)化數(shù)據(jù)的搜索。

神經(jīng)搜索特指使用非結(jié)構(gòu)化數(shù)據(jù)搜索非結(jié)構(gòu)化數(shù)據(jù),深度學習模型和向量索引是神經(jīng)搜索的重要組成部分。

神經(jīng)搜索系統(tǒng)包括兩個關(guān)鍵要素:深度學習模型及向量索引。這兩點也是神經(jīng)搜索系統(tǒng)和傳統(tǒng)搜索系統(tǒng)的區(qū)別。

神經(jīng)搜索系統(tǒng)的應用,包括以圖搜圖、以文字搜圖、Question-Answering(問答機器人)、照片去重、海量標簽分類等。

神經(jīng)搜索系統(tǒng)的應用場景

由于神經(jīng)搜索是一個全新的領域,缺少系統(tǒng)搭建的統(tǒng)一工具,開發(fā)者通常需要同時了解包括分布式系統(tǒng)、深度學習框架以及網(wǎng)絡服務方面的知識,為此我們設計了 Jina。

Jina:簡單易用的云原生神經(jīng)搜索框架

Jina 是一款主打易用性及云原生的神經(jīng)搜索框架,于 2020 年 4 月在 GitHub 開源,截至目前已收獲 13.1k Star(最新數(shù)據(jù))。

Jina 多次登上了 GitHub 全球 Trending 排行榜第一名,最近還被收錄進了 2021 年度全球最受歡迎的 10 個? Python 庫榜單,目前已有 200 多名貢獻者。

訪問 Jina GitHub:github.com/jina-ai/jina

訪問 Python 庫榜單:

tryolabs.com/blog/2021/12/21/top-python-libraries-2021

Jina 中包括三個重要概念:Document、Executor 和 Flow。

Document:封裝非結(jié)構(gòu)化數(shù)據(jù);Executor:實現(xiàn)神經(jīng)搜索系統(tǒng)所需要的不同模塊

;Flow:將 Executor 連接起來

Document 是 Jina 中一個基礎的數(shù)據(jù)類型,可以幫助開發(fā)者方便地描述非結(jié)構(gòu)化數(shù)據(jù),相當于 Numpy 中的 ndarray 或 PyTorch 中的 Tensor。一組 Document 構(gòu)成一個 DocumentArray,開發(fā)者可以像使用 Python 原生的 list 一樣使用 DocumentArray。

Executor 對應神經(jīng)搜索系統(tǒng)中的不同模塊,實現(xiàn)對數(shù)據(jù)處理的核心功能。Flow 則對應整套神經(jīng)搜索系統(tǒng),將多個 Executor 連接起來,構(gòu)建成一套完整的搜索系統(tǒng)。

Jina 不僅可以方便地在本地調(diào)試,也可以快速的以服務形式進行部署。Jina 原生提供 Swagger-UI,方便代碼調(diào)試。

Jina 中的 Debug 工具操作便捷,可直接可視化所有請求和結(jié)果

此外,?Jina 部署到 Kubernetes 系統(tǒng)中也非常簡單,僅用幾行代碼,就可以完成部署。

開發(fā)者如果自己設計神經(jīng)搜索系統(tǒng),往往需要自行維護一套工具鏈,包括構(gòu)建模型預測服務、維護向量索引等,Jina 通過將整個流程封裝成一個完整系統(tǒng),提供統(tǒng)一的接口,極大降低了神經(jīng)搜索系統(tǒng)的開發(fā)成本。

Finetuner:一行代碼解決模型調(diào)優(yōu)

用 Jina 從零搭建一套神經(jīng)搜索系統(tǒng),約需要 1~2 天,但是對模型進行調(diào)優(yōu),往往需要 1-2 周甚至更長時間。

用 Jina 搭建一套神經(jīng)搜索系統(tǒng),約有 87.5% 的時間用于調(diào)優(yōu)

為了幫助開發(fā)者更快、更簡潔地調(diào)試神經(jīng)搜索系統(tǒng),我們設計了? Finetuner。

用 Finetuner 對模型進行調(diào)優(yōu),共包括三個步驟:

1、載入數(shù)據(jù)

2、載入模型(下圖示例中使用的是 PyTorch?resnet50?模型)

3、將模型和數(shù)據(jù)傳給 Finetuner 的 fit() 函數(shù),F(xiàn)inetuner 就可以自動對模型進行微調(diào)

Finetuner:一行代碼搞定調(diào)優(yōu)過程

Finetuner 主要包含三個模塊,分別與煉丹師們訓練模型的三個步驟一一對應:Labeler 對應數(shù)據(jù)準備,Tailer 對應模型搭建,Tuner 對應模型訓練。

Finetuner 支持 PaddlePaddle、PyTorch 及 Keras 三個框架

Labeler?

Labeler 在實際中使用較少

Labeler 主要包含兩部分:前端頁面 (UI) 和存儲 (Data Storage)。

?Tailer?

Tailer 的主要任務是準備模型

因為我們接觸到的大部分模型,并不是為搜索場景設計的,無法把非結(jié)構(gòu)化數(shù)據(jù),直接轉(zhuǎn)換成向量表示,所以我們需要使用 Tailer。

Tailer 的輸入是一個任意模型,輸出是一個新模型,這個新的模型可以計算非結(jié)構(gòu)化數(shù)據(jù)的向量表示。

除此之外,Tailer 模塊中還提供一些實用功能,如開發(fā)者可以指定凍結(jié)模型中的某些層。此外 Tailer 還提供可視化網(wǎng)絡結(jié)構(gòu)的 display 函數(shù)。

?Tuner?

Tuner 對應模型訓練的步驟

Tuner 的核心包括四個部分:dataset、sampler、miner、loss。

loss:實現(xiàn)了搜索場景下,常用的兩個損失函數(shù) Triple loss 和 Siamese loss。

dateset 和 sampler 則主要是針對搜索場景,生成模型訓練需要的數(shù)據(jù)樣本。

dataset 對數(shù)據(jù)進行統(tǒng)一封裝,sampler 會在統(tǒng)一數(shù)據(jù)結(jié)構(gòu)的基礎上,對數(shù)據(jù)進行各種操作,生產(chǎn)出訓練模型時需要的三元組或二元組。

今天我們主要介紹了 Jina 和 Finetuner。在 Jina 生態(tài)中,Jina 解決開發(fā)者搭建神經(jīng)搜索系統(tǒng)的問題,F(xiàn)inetuner 解決搭建過程中模型微調(diào)的問題。另一個我們沒有介紹的重要成員是 Jina Hub。

Jina Hub 是一個?Executer?的分享平臺,開發(fā)者可以方便地在 Jina Hub 上,和團隊或社區(qū)分享自己的 ?Executer。

訪問 Jina Hub,請點擊:hub.jina.ai

答現(xiàn)場問:開發(fā)者們問 Jina

1、Jina 是否考慮圍繞具體場景,進行產(chǎn)品化?

Jina 本身是一個工具,而不是一個產(chǎn)品,我們希望賦能開發(fā)者,由開發(fā)者根據(jù)實際場景進行產(chǎn)品化。

每個開發(fā)者都有自己熟悉的產(chǎn)品和業(yè)務,具備專業(yè)領域的知識,這些東西并不是通用的知識,也很難遷移到別的地方。

我們希望開發(fā)者能通過 Jina 或 Finetuner,搭建定制化搜索系統(tǒng),從而構(gòu)建針對具體場景的產(chǎn)品。

2、用 Jina 搭建的神經(jīng)搜索系統(tǒng),能否兼容通用搜索倒排索引的搜索?

是的,傳統(tǒng)搜索完全可以和 Jina 融合。

以 DocQA 為例,第一步是拉取候選,通過向量索引把所有相似段落找出來。第二步是用計算量更大的深度學習模型,從段落里把需要的答案找出來。

在第一步做召回時,可以用基于向量索引的方法,也可以基于傳統(tǒng)的 TF-IDF 或 bm25。因此在 Jina 里使用傳統(tǒng)倒排索引做召回,是完全可以的。

3、用 Jina 搭建一套神經(jīng)搜索系統(tǒng),需要多少計算資源?

用?Jina?搭建神經(jīng)搜索系統(tǒng)需要的資源,完全取決于業(yè)務需求,如數(shù)據(jù)量、穩(wěn)定性要求、要求的響應時間等。

單一數(shù)據(jù)類型,如果數(shù)據(jù)量在百萬以內(nèi),CPU 完全應付得了;如果數(shù)據(jù)量比較大,比如要搜索上億個視頻,且要求毫秒級別的反饋,那就必須要用 GPU。

4、利用 Jina 能否搜索 PDF 中的具體內(nèi)容?

可以的,我們已經(jīng)有企業(yè)客戶利用 Jina,搭建公司內(nèi)部資源的搜索系統(tǒng),其中就包括 PDF 搜索。客戶可以實現(xiàn)通過文字直接搜索相關(guān)語義內(nèi)容,或通過文字匹配 PDF 中的圖片。

2022 Python Meetup,重磅來襲

2022 年,Python Meetup 將在上海、杭州、長沙等地召開,Jina 也將為各地開發(fā)者帶來最新的神經(jīng)搜索技術(shù)分享,以及最炫酷的周邊禮品。

歡迎關(guān)注 Jina AI,了解最新線下活動進展~

本次活動的相關(guān)鏈接:

主要的 Jina 倉庫:get.jina.ai?

Finetuner 官網(wǎng):finetuner.jina.ai

本次分享的 Demo:hub.jina.ai

參與社區(qū)貢獻:github.com/jina-ai/

本次分享 PPT:

pan.baidu.com/s/158LuQXRmD91K7NuoSZtj3g?pwd=3mky

加入 Jina AI?

Jina AI 剛剛完成了 3000 萬美金 A 輪融資,我們希望利用這筆資金,吸引更多相信開源力量、相信神經(jīng)搜索美好未來的小伙伴加入,共同為全球開源社區(qū)做貢獻。

了解崗位詳情,請點擊閱讀原文,或訪問:https://jina.ai/careers/


一文讀懂神經(jīng)搜索、Jina 及 Finetuner的評論 (共 條)

分享到微博請遵守國家法律
晴隆县| 鲁山县| 于田县| 高要市| 奉节县| 班玛县| 铜鼓县| 湾仔区| 家居| 武夷山市| 枣阳市| 汝州市| 胶南市| 丰城市| 循化| 当涂县| 汝阳县| 山东省| 邵武市| 余干县| 桐乡市| 禄劝| 乌鲁木齐县| 慈溪市| 贵南县| 安顺市| 焦作市| 五常市| 大庆市| 弥勒县| 屏山县| 河东区| 沭阳县| 石景山区| 锡林浩特市| 义马市| 伊金霍洛旗| 古蔺县| 胶州市| 兴海县| 同德县|