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

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

0

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

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

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

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

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

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

寫在開始之前

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

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

  • 你將把模型部署為一個(gè) API

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

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

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

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

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

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

  • 從命令行運(yùn)行 cortex deploy

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

項(xiàng)目 1:自動(dòng)完成功能

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

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

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

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

圖片來源于 Google

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

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

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

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

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

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

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

項(xiàng)目 2:客戶支持機(jī)器人

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

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

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

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

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

圖片來源:Reply.ai

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

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

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

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

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

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

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

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

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

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

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

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

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

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

圖片來源:TabNine Blog

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

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

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

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

當(dāng) GPT-2 第一次發(fā)布的時(shí)候,它引起了一系列的轟動(dòng)。首先,它非常強(qiáng)大。其次,OpenAI 的團(tuán)隊(duì)沒有發(fā)布完整的預(yù)訓(xùn)練模型,因?yàn)樗麄儞?dān)心它可能被濫用。不出所料,這引發(fā)了媒體對一個(gè)可能「對公眾太危險(xiǎn)」的人工智能的猛烈抨擊。

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

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

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

項(xiàng)目 4:語言標(biāo)識(shí)符

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

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

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

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

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

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

Facebook 的 fastText。

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

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


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

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

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

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

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

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

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

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

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

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

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

Flair 的 SequenceTagger。

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

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




示例用法

讓我們對一個(gè)示例語句運(yùn)行命名實(shí)體識(shí)別。你只需要造一個(gè)句子,加載一個(gè)預(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)

完成!這個(gè)句子現(xiàn)在有實(shí)體注釋。把句子打印出來看看標(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 來實(shí)現(xiàn) Cortex 的 Flair,這是我們到目前為止用于部署所有 PyTorch 模型的方法。

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

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

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

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

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?這里有一些最棒的項(xiàng)目推薦

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