丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
人工智能開發(fā)者 正文
發(fā)私信給skura
發(fā)送

0

初學(xué)者如何學(xué)習(xí)NLP?這里有一些最棒的項目推薦

本文作者: skura 2020-01-09 09:12
導(dǎo)語:都不是玩具項目

如果你對機器學(xué)習(xí)感興趣的話,那么有很多很棒的學(xué)習(xí)資源。像 fast.ai 就可以幫助任何具有技術(shù)背景的人學(xué)習(xí)機器學(xué)習(xí)的基礎(chǔ),并訓(xùn)練他們自己的模型。

但是,如果你對用機器學(xué)習(xí)構(gòu)建生產(chǎn)軟件感興趣,那么可以使用的資源就少多了。把機器學(xué)習(xí)應(yīng)用到生產(chǎn)中的基礎(chǔ)設(shè)施挑戰(zhàn)根本就沒有那么豐富的寫作內(nèi)容。

本文旨在充當(dāng)基于 NLP 構(gòu)建的軟件項目的指導(dǎo),任何人甚至沒有 ML 經(jīng)驗的人都可以構(gòu)建文中的這些項目。

當(dāng)然,這些項目也不是玩玩而已,它們都是受當(dāng)今真實公司銷售的真實軟件的啟發(fā)而產(chǎn)生的。

寫在開始之前

以下每個項目將使用類似的架構(gòu):

  • 你將實現(xiàn)一個相關(guān)的預(yù)訓(xùn)練模型

  • 你將把模型部署為一個 API

  • 你將把 API 連接到主應(yīng)用程序

這種設(shè)計模式稱為實時推理,它有很多好處。

首先,它消除了主應(yīng)用程序的計算負擔(dān),將其卸載到專門為 ML 模型構(gòu)建的服務(wù)器上。其次,它允許你通過 API 合并 ML 進行預(yù)測,這是大多數(shù)軟件開發(fā)人員都熟悉的模式。最后,還有像 Cortex 這樣的開源工具,它自動地將這些模型部署為 API 所需的所有基礎(chǔ)設(shè)施工作,這意味著你不必花費大量時間來研究如何配置 AWS 來為機器學(xué)習(xí)模型服務(wù)。

要使用 Cortex 部署任何模型,你都需要做三件事:

  • 編寫一個 Python 腳本來提供來自模型的預(yù)測

  • 編寫一個配置文件來定義你的部署

  • 從命令行運行 cortex deploy

把所有這些都排除在外,讓我們開始吧。

項目 1:自動完成功能

傳統(tǒng)上,自動完成是通過鍵值查找來實現(xiàn)的,在鍵值查找中,將用戶輸入的不完整單詞與字典進行比較,并給出潛在單詞。

然而,使用機器學(xué)習(xí),自動完成可以更進一步。與引用靜態(tài)的單詞或短語詞典不同,模型可以根據(jù)真實世界的用戶輸入進行訓(xùn)練,以預(yù)測最有可能出現(xiàn)的下一個短語。

一個常見的例子是 Gmail 的智能回復(fù),它對你收到的電子郵件的回復(fù)提出建議:

初學(xué)者如何學(xué)習(xí)NLP?這里有一些最棒的項目推薦

圖片來源于 Google

讓我們看看如何構(gòu)建自己的 ML 自動完成功能。

我應(yīng)該用什么模型?

在這種情況下,我們要用 RoBERTa。

RoBERTa 是 Facebook 開發(fā)的一個 NLP 模型。它建立在谷歌著名的 BERT 的基礎(chǔ)上,因此在 RoBERTa 中使用了奇怪的大寫字母,并通過實現(xiàn)稍微不同的訓(xùn)練方法改進了 BERT 的性能。

預(yù)先訓(xùn)練好的 RoBERTa 通過 PyTorch Hub 加載,它帶有一個內(nèi)置的 fill_mask()方法,允許你傳入一個字符串,指向 RoBERTa 應(yīng)該預(yù)測的下一個單詞/短語的位置,并接收你的預(yù)測。

現(xiàn)在,你只需要將 RoBERTa 部署為一個 API,并在前端編寫一個函數(shù),用用戶的輸入查詢你的模型。

如果遇到任何問題,可以使用這個 Cortex 示例部署 RoBERTa:https://github.com/cortexlabs/cortex/tree/master/examples/pytorch/search-completer 。

項目 2:客戶支持機器人

支持機器人絕不是一個新的概念,但隨著機器學(xué)習(xí)的發(fā)展,整個領(lǐng)域都向前邁進了一步。

在過去,一個支持機器人可能已經(jīng)預(yù)先準(zhǔn)備好了一些問題的答案。如果這個問題的措辭沒有被機器人識別,或者它涉及了一個主題之外的內(nèi)容,機器人就不會工作。

然而,現(xiàn)在,ML 驅(qū)動的機器人可以解析和理解用戶輸入,而不僅僅是將其與問題列表進行比較,還可以自行生成答案。

像 Reply.ai 這樣構(gòu)建自定義支持機器人的公司就是一個典型的例子。根據(jù) Reply.ai 的數(shù)據(jù),平均一家公司可以通過一個 ML 驅(qū)動的機器人來處理 40% 的入站支持請求,下面就是哪一個例子:

初學(xué)者如何學(xué)習(xí)NLP?這里有一些最棒的項目推薦

圖片來源:Reply.ai

現(xiàn)在,讓我們構(gòu)建自己的客戶支持機器人。

我應(yīng)該用什么型模型?

DialoGPT 非常適合這個任務(wù)。

DialoGPT 是微軟公司構(gòu)建的一個模型, 是用 Hugging Face 的 pytorch transformer 和 OpenAI 的 GPT-2 開發(fā)的。該模型接受了 Reddit 對話的訓(xùn)練,并將返回查詢到的任何文本的答案。

然而,因為微軟地保留了這個模型的解碼器(有人擔(dān)心 Reddit 訓(xùn)練模型的潛在輸出),所以你必須實現(xiàn)你自己的 GPT-2 解碼器來將模型的響應(yīng)翻譯成人類語言。幸運的是,這對你來說并不太困難,你可以通過克隆此 repo 來運行 DialoGPT 的整個部署。

一旦部署了 DialoGPT API,就可以將其連接到前端并開始處理客戶請求。

額外提示:如果你對使用 DialoGPT 有問題,這里有一個教程:https://towardsdatascience.com/how-to-actually-use-ml-in-production-reading-comprehension-1597095a54b2

項目 3:文本預(yù)測生成器

如果你隱約知道機器學(xué)習(xí)社區(qū),你應(yīng)該聽說過 AI Dungeon 2。這是一款經(jīng)典的文本冒險游戲,其中的故事完全由 GPT-2 生成。這款廣受歡迎的游戲最初被關(guān)閉的原因是,它的云托管成本超過 10000 美元/天。

你可以用這款游戲做任何事情,比方說,吃掉月亮:

初學(xué)者如何學(xué)習(xí)NLP?這里有一些最棒的項目推薦

AI Dungeon 2 是使用 OpenAI 的 GPT-2 構(gòu)建的,雖然交互式 RPG 可能不是你想要的商業(yè)案例,但 AI Dungeon 2 展示了自動生成文本的說服力。

Deep TabNine 是自動生成文本的一個很好的例子。Deep TabNine 是一款使用機器學(xué)習(xí)在 IDE 中實現(xiàn)自動完成功能的產(chǎn)品,適用于多種編程語言:

初學(xué)者如何學(xué)習(xí)NLP?這里有一些最棒的項目推薦

圖片來源:TabNine Blog

如果你是一名軟件工程師,那么使用 ML 立即生成準(zhǔn)確、完整的代碼行的想法一定令人激動。

讓我們看看如何構(gòu)建自己的版本。

我應(yīng)該用什么模型?

對于這個項目,你應(yīng)該使用這個龐然大物本身,也就是 OpenAI 的 GPT-2。

當(dāng) GPT-2 第一次發(fā)布的時候,它引起了一系列的轟動。首先,它非常強大。其次,OpenAI 的團隊沒有發(fā)布完整的預(yù)訓(xùn)練模型,因為他們擔(dān)心它可能被濫用。不出所料,這引發(fā)了媒體對一個可能「對公眾太危險」的人工智能的猛烈抨擊。

而如今,完整的模型已經(jīng)發(fā)布,并且在 Skynet 上沒有相關(guān)報道。

和這個模型交互非常簡單,給它發(fā)一段文本,然后等著它生成就行。

要使用 Cortex 部署 GPT-2,可以使用這個存儲庫:https://github.com/cortexlabs/cortex/tree/master/examples/tensorflow/text-generator。

項目 4:語言標(biāo)識符

你有沒有瀏覽過 Google Chrome 中的一個網(wǎng)站并看到這個彈出窗口?

初學(xué)者如何學(xué)習(xí)NLP?這里有一些最棒的項目推薦

你有沒有想過 Chrome 如何識別頁面的語言?答案很簡單:它使用語言標(biāo)識符。

語言識別是出了名的棘手。不同的語言有許多共同的詞匯,不同的方言和俚語使語言更難被識別,而且沒有法律禁止在一個網(wǎng)頁上使用多種語言。

這個模糊的任務(wù)是確定一個給定的文本用哪種語言對于機器學(xué)習(xí)來說是完美的。讓我們看看如何在下面構(gòu)建自己的語言標(biāo)識符。

我應(yīng)該用什么模型?

Facebook 的 fastText。

fastText 是一個使用單詞嵌入來理解語言的模型。在我關(guān)于將 fastText 部署為 API 的教程中,我簡要解釋了使 fastText 如此特殊的原因:

單詞嵌入將單詞表示為浮點數(shù)的 n 維向量,其中每個數(shù)字表示單詞含義的一個維度。使用單詞向量,你可以根據(jù)單詞的語義來「映射」單詞——例如,如果你從「king」的向量中減去「man」的向量,再加上「woman」,你將得到「queen」的向量。換句話說,king-man+woman=queen


word2vec 是最早流行的生成 word 嵌入的工具之一,fastText 是 word2vec 的擴展。word2vec 處理單個單詞,而 fastText 將單詞分解為 n 個單詞。這使得 fastText 能夠更好地理解晦澀難懂的單詞。當(dāng)給出一個罕見的單詞如「deminiquavers」時,fastText 會分析其中較小的 n 個字母(「demi」、「semi」等),以幫助找到它的語義,這類似于你分析熟悉的詞根來理解一個陌生的單詞。

部署 fastText 相當(dāng)簡單。你可以使用這個存儲庫:https://github.com/cortexlabs/cortex/tree/master/examples/pytorch/language-identifier,如果需要額外的幫助,可以按照本教程進行操作。

項目 6:媒體監(jiān)視器

現(xiàn)代商業(yè)的現(xiàn)實狀況是,如果用戶對你的產(chǎn)品有意見,他們會在大量的平臺上表達自己的不滿。為了有效地保持品牌的領(lǐng)先地位,監(jiān)控社交媒體以了解公司的情況是必要的。

這類產(chǎn)品的一個例子是 Keyhole,它是一個社交分析平臺,使用機器學(xué)習(xí)來監(jiān)控與貴公司相關(guān)的社交媒體:

初學(xué)者如何學(xué)習(xí)NLP?這里有一些最棒的項目推薦

然而,在構(gòu)建這種工具時,最大的挑戰(zhàn)之一是弄清楚你的品牌是怎么被提及的。

假設(shè)你想為你的品牌建立一個監(jiān)控黑客新聞的服務(wù),每天刪除 HN 評論是相當(dāng)簡單的,搜索這些評論中與你的品牌相關(guān)的詞也很容易。但是,這就是癥結(jié)所在,你怎么能肯定地知道,這些關(guān)鍵詞正被用于你的品牌?

例如,如果我在監(jiān)控 cortex,我怎么知道「cortex」這個詞在給出的評論中是指開源平臺,而不是一個人大腦的前額葉皮層?

這就是機器學(xué)習(xí)發(fā)揮作用的地方。

我應(yīng)該用什么模型?

Flair 的 SequenceTagger。

Flair 是一個基于 PyTorch 的開源 NLP 庫,它在很多方面都很出色,尤其是在命名實體識別(NER)方面,這正是我們試圖解決的問題。

例如,以下內(nèi)容直接取自 Flair 存儲庫:




示例用法

讓我們對一個示例語句運行命名實體識別。你只需要造一個句子,加載一個預(yù)先訓(xùn)練好的模型,然后用它來預(yù)測句子的標(biāo)簽:

from flair.data import Sentence
from flair.models import SequenceTagger

# make a sentence
sentence = Sentence('I love Berlin .')

# load the NER tagger
tagger = SequenceTagger.load('ner')

# run NER over sentence
tagger.predict(sentence)

完成!這個句子現(xiàn)在有實體注釋。把句子打印出來看看標(biāo)語者發(fā)現(xiàn)了什么。

print(sentence)
print('The following NER tags are found:')

# iterate over entities and print
for entity in sentence.get_spans('ner'):
    print(entity)

其輸出應(yīng)該是:

Sentence: "I love Berlin ." - 4 Tokens

The following NER tags are found:

LOC-span [3]: "Berlin"

你可以使用 Cortex 的 Predictor API 來實現(xiàn) Cortex 的 Flair,這是我們到目前為止用于部署所有 PyTorch 模型的方法。

使用機器學(xué)習(xí)不需要博士學(xué)位

機器學(xué)習(xí)通常給人一種感覺,那就是它只適合那些有著強大數(shù)學(xué)或理論背景的計算機科學(xué)的人來學(xué)習(xí)使用。

如果你想開發(fā)新的模型架構(gòu)或者突破機器學(xué)習(xí)的界限,那可能是真的,你需要從理論上理解機器學(xué)習(xí)。然而,如果你只是想用機器學(xué)習(xí)來構(gòu)建軟件,那么這個障礙只是想象出來的。

我上面列出的每一個項目都可以構(gòu)建,即使你對軟件開發(fā)只有一個初步的了解。而且所有這些項目都模仿真實的、成功的產(chǎn)品的功能——它們不是玩具項目。

via:https://towardsdatascience.com/a-list-of-beginner-friendly-nlp-projects-using-pre-trained-models-dc4768b4bec0

雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知

初學(xué)者如何學(xué)習(xí)NLP?這里有一些最棒的項目推薦

分享:
相關(guān)文章
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說