最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

AI 影評家: 用 Hugging Face 模型打造一個電影評分機器人

2023-03-17 11:56 作者:HuggingFace  | 我要投稿
本文為社區(qū)成員 Jun Chen 為 百姓 AI 和 Hugging Face 聯(lián)合舉辦的黑客松所撰寫的教程文檔,歡迎你閱讀今天的第二條推送了解和參加本次黑客松活動。文內(nèi)含有較多鏈接,我們不再一一貼出,請在文末查看渲染后的 Notebook 文件鏈接。

隨著人工智能和大模型 ChatGPT 的持續(xù)火爆,越來越多的個人和創(chuàng)業(yè)者都想并且可以通過自己創(chuàng)建人工智能 APP 來探索這個新興領(lǐng)域的機會。只要你有一個想法,你就可以通過各種開放社區(qū)和資源實現(xiàn)一些簡單功能,滿足特定領(lǐng)域或者用戶的需求。

試想現(xiàn)在有一部新的電影剛剛上線了,我們和朋友在家熱烈的討論著這部新的電影,這些都是非常有價值的電影評價的信息,不過估計這個時候很少有人會特地去登陸自己的豆瓣賬號再去發(fā)表這些剛剛的評論,如果有一個電影評論機器人可以自動收集這些評論并且根據(jù)評論打分,然后自動上傳到制定的電影評論網(wǎng)站呢?再比如,我們在某個餐廳吃飯,我們只用對著手機說幾句話,我們的評分就自動上傳到大眾點評呢?我們來試試如何實現(xiàn)這樣一個小小的機器人吧!

在本教程中,我們將探索如何使用 Hugging Face 資源來 Finetune 一個模型且構(gòu)建一個電影評分機器人。我們將向大家展示如何整合這些資源,讓你的聊天機器人具備總結(jié)評論并給出評分的功能。我們會用通俗易懂的語言引導(dǎo)你完成這個有趣的項目!

為了可以簡單的說明實現(xiàn)的步驟,我們簡化這個【電影打分機器人】的實現(xiàn)方法:

  1. App 直接收集來自?input??text?作為輸入,有興趣的小伙伴們可以研究一下如何接入到語音,Whisper to ChatGPT 是一個很有好的例子。

  2. App 不會實現(xiàn)自動上傳評價到特定網(wǎng)站。

第一步: 訓(xùn)練電影評價打分模型

首先我們需要一個可以看懂評論且給評論打分的模型,這個例子選用的是利用數(shù)據(jù)集 IMDb 微調(diào) DistilBERT,微調(diào)后的模型可以預(yù)測一個電影的評論是正面的還是負面的且給出評分(五分滿分)。

當(dāng)然大家可以根據(jù)各自的需求找到不同的數(shù)據(jù)集來 Finetune 模型,也可以使用不同的基礎(chǔ)模型,Hugging Face 上提供了很多可選項。

本任務(wù)使用或間接使用了下面模型的架構(gòu):

ALBERT, BART, BERT, BigBird, BigBird-Pegasus, BLOOM, CamemBERT, CANINE, ConvBERT, CTRL, Data2VecText, DeBERTa, DeBERTa-v2, DistilBERT, ELECTRA, ERNIE, ErnieM, ESM, FlauBERT, FNet, Funnel Transformer, GPT-Sw3, OpenAI GPT-2, GPT Neo, GPT-J, I-BERT, LayoutLM, LayoutLMv2, LayoutLMv3, LED, LiLT, Longformer, LUKE, MarkupLM, mBART, Megatron-BERT, MobileBERT, MPNet, MVP, Nezha, Nystr?mformer, OpenAI GPT, OPT, Perceiver, PLBart, QDQBert, Reformer, RemBERT, RoBERTa, RoBERTa-PreLayerNorm, RoCBert, RoFormer, SqueezeBERT, TAPAS, Transformer-XL, XLM, XLM-RoBERTa, XLM-RoBERTa-XL, XLNet, X-MOD, YOSO

在使用本示例前請安裝如下庫文件:

我們建議登陸 Hugging Face 賬戶進行操作,這樣就可以方便的上傳和分享自己創(chuàng)建的模型。當(dāng)有彈框時請輸入個人的 token 。根據(jù)下圖找到我們自己的 Hugging Face Tokens。


加載 IMDb 數(shù)據(jù)集

開始從 Datasets 庫中加載 IMDb 數(shù)據(jù)集 ?? :

檢查一下數(shù)據(jù)是否載入成功:?

在這個數(shù)據(jù)集中有兩個字段:

  • text: 電影評論。

  • label: 0 或者 1。0?代表負面評價、1?代表正面評價。

輸入數(shù)據(jù)預(yù)處理

這一步是加載 DistilBERT tokenizer,并創(chuàng)建一個預(yù)處理函數(shù)來預(yù)處理?text,且保證輸入不會大于 DistilBERT 的最長輸入要求:

使用 ?? Datasets map 函數(shù)把預(yù)處理函數(shù)應(yīng)用到整個數(shù)據(jù)集中。我們還可以使用?batched=True?來加速?map:?

使用 DataCollatorWithPadding 來生成數(shù)據(jù)包,這樣動態(tài)的填充數(shù)據(jù)包到最大長度能夠更加節(jié)省資源。

模型評測函數(shù)

選擇一個合適的測評指標(biāo)是至關(guān)重要的。大家可以直接調(diào)用庫函數(shù) ?? Evaluate 里的各種測評指標(biāo)。在這個例子中,我們使用了accuracy,了解更多請 查看文檔快速上手:

這里我們需要定義一個可以 計算 指標(biāo)的函數(shù):

訓(xùn)練模型

在開始訓(xùn)練前,需要定義一個id到標(biāo)簽和標(biāo)簽到id的?map?

如果不熟悉如何使用 Trainer 來訓(xùn)練模型, 可以查看更詳細的教程!

好了,一切已經(jīng)準(zhǔn)備就緒!我們可以使用 AutoModelForSequenceClassification 加載 DistilBERT 模型:?

接下來只有三步需要完成:

  1. 在 TrainingArguments 中定義模型超參,只有?output_dir?參數(shù)是必須的。我們可以設(shè)置?push_to_hub=True?來直接上傳訓(xùn)練好的模型(如果已經(jīng)登陸了Hugging Face)。在每一個訓(xùn)練段,Trainer 都會評測模型的 accuracy 和保存此節(jié)點。

  2. 傳入超參數(shù),模型,數(shù)據(jù)集和評測函數(shù)到 Trainer。

  3. 調(diào)用 train() 來微調(diào)模型。

訓(xùn)練結(jié)束后大家就可以通過 push_to_hub() 方法 上傳模型到 Hugging Face 上了,這樣所有人都可以看見并且使用你的模型了。

第二步:模型上傳到 Hugging Face

大家可以在 PyTorch Notebook或者 TensorFlow Notebook 查看更加詳細的關(guān)于如何微調(diào)模型的教程。

第三步:創(chuàng)建自己的 App

恭喜大家已經(jīng)獲得了自己的模型!下面我們可以在 Hugging Face 中創(chuàng)建一個自己的 App 了。

創(chuàng)建新的 Hugging Face Space 應(yīng)用

在 Spaces 主頁上點擊?Create new Space?

添加 App 邏輯

?app.py?文件中接入以下代碼:

成功運行后,大家應(yīng)該可以看見下面類似的界面:

注意,我們需要把必須的庫文件放在?requirements.txt?中,例如這個 App 需要:

另外,由于我們在示范中只跑了 2 個 epoch,所以最終模型 accuracy 不高。大家可以根據(jù)自己的情況調(diào)整超參和訓(xùn)練時長。

上傳到 Hugging Face Spaces

而且?app.py?以及?requirements.txt?文件,都可以在 Hugging Face Hub 的界面上直接操作,如下圖:

第四步: 完成機器人開發(fā)

現(xiàn)在,你已經(jīng)創(chuàng)建了一個能夠根據(jù)電影評論給電影打分的機器人。當(dāng)你向機器人提問時,它會使用 Hugging Face 的模型進行情感分析,根據(jù)情感分析結(jié)果給出一個評分。

chjun/movie_rating_bot 是根據(jù)以上教程完成的一個機器人 App,大家也可以直接復(fù)制這一個 Space 應(yīng)用,并在此基礎(chǔ)上更改開發(fā)。

點擊?submit,與你的 AI 伙伴互動吧!這個項目僅僅是一個起點,你可以根據(jù)自己的需求和興趣進一步完善這個聊天機器人,使其具備更多有趣的功能。

第五步: 接入 BaixingAI 機器人廣場

還有更激動人心的一步,我們可以把機器人接口根據(jù) BaixingAI 機器人廣場需求 擴展,讓我們自己創(chuàng)建的機器人可以去和其他機器人交流對話,以下是代碼示范:

更多詳情請參考 Hugging Face 上 baixing 的 Spaces:
https://hf.co/baixing

渲染后的 Notebook 文件: https://ipynb.cn/urls/huggingface.co/datasets/HuggingFace-CN-community/translation/raw/main/events/movie_rating_bot_FINAL.ipynb

未來已來,各位 Hackathon 參賽者們都是探索者,預(yù)祝大家一切順利!

AI 影評家: 用 Hugging Face 模型打造一個電影評分機器人的評論 (共 條)

分享到微博請遵守國家法律
汕头市| 哈尔滨市| 中卫市| 南华县| 满洲里市| 江安县| 桓仁| 新晃| 彩票| 洛隆县| 峡江县| 元阳县| 常德市| 淮南市| 土默特右旗| 凉山| 酒泉市| 新巴尔虎左旗| 壶关县| 鄂托克前旗| 德钦县| 腾冲县| 壤塘县| 蓬溪县| 弥勒县| 蕲春县| 白山市| 庆阳市| 九寨沟县| 和政县| 湾仔区| 红桥区| 集贤县| 鲁甸县| 南通市| 英山县| 和田县| 曲水县| 措美县| 曲阜市| 沈阳市|