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

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

點(diǎn)擊即用的Plus版AI老婆教程:ChatGLM+VITS+機(jī)器翻譯(Kaggle + Google Colab)

2023-03-25 18:37 作者:豚骨拉面--  | 我要投稿

(注:本專(zhuān)欄只討論相關(guān)技術(shù),不涉及任何其他目的,如侵刪)

摘要

最近,清華大學(xué)NLP團(tuán)隊(duì)開(kāi)源了一款對(duì)話語(yǔ)言模型ChatGLM-6B,擁有62億參數(shù),支持用戶在消費(fèi)級(jí)顯卡上進(jìn)行本地部署。然而,模型接近14GB的大小,最低的6GB顯存要求,以及在CPU上極慢的推理速度,都大大影響本地部署的使用體驗(yàn)。為此,我寫(xiě)了一個(gè)簡(jiǎn)單的Kaggle Notebook,可以將ChatGLM-6B部署在Kaggle平臺(tái)的GPU上。同時(shí)還結(jié)合了機(jī)器翻譯模型和VITS模型,可實(shí)現(xiàn)一鍵點(diǎn)擊即用,與AI老婆進(jìn)行實(shí)時(shí)交互。在Kaggle上可以部署無(wú)量化(FP16)的ChatGLM,保持了模型最好的推理能力,同時(shí)仍具有較短的推理時(shí)間。另外我也寫(xiě)了一個(gè)Colab Notebook,可以在Google Colab上部署INT4量化后的模型。

本專(zhuān)欄實(shí)際上是對(duì)上一期視頻的補(bǔ)充,由于本人還是初學(xué)者,代碼部分難免有許多不正確之處,歡迎大家指正。

ChatGLM項(xiàng)目鏈接:https://github.com/THUDM/ChatGLM-6B

機(jī)器翻譯模型鏈接:https://huggingface.co/engmatic-earth/mt5-zh-ja-en-trimmed-fine-tuned-v1

VITS模型鏈接:https://github.com/CjangCjengh/TTSModels

(上期視頻投了好幾次,不是內(nèi)容違規(guī)就是簡(jiǎn)介違規(guī),搞了半天也不知道到底哪出問(wèn)題了,麻了)

前言(廢話)

上一期專(zhuān)欄寫(xiě)完之后,本來(lái)想著短時(shí)間內(nèi)應(yīng)該不會(huì)再碰對(duì)話模型了,結(jié)果馬上又看到清華開(kāi)源ChatGLM-6B的消息。ChatGLM有62億參數(shù),遠(yuǎn)遠(yuǎn)多于GPT2的1億參數(shù),訓(xùn)練過(guò)程中也使用了RLHF,同時(shí)支持用戶在消費(fèi)級(jí)顯卡上進(jìn)行本地部署,可以說(shuō)是ChatGPT的平替。

我一開(kāi)始也想部署到本地,結(jié)合之前的機(jī)器翻譯和VITS模型,看看AI老婆Plus版的效果。結(jié)果最小的INT4量化級(jí)別也需要6GB顯存,我筆記本上的破1650根本跑不了,于是我決定轉(zhuǎn)戰(zhàn)Colab和Kaggle。由于模型大小以及CPU / GPU顯存的問(wèn)題,我修改了模型加載部分的代碼,最終可以在Kaggle上使用無(wú)量化的ChatGLM,在Google Colab上使用INT4量化后的模型。

使用方式

Kaggle

Notebook鏈接:https://www.kaggle.com/code/littleweakweak/cybergirlfriendplus

首先,進(jìn)入Notebook后選擇GPU T4 × 2,然后點(diǎn)擊Run All即可。

Google Colab

Colab Notebook鏈接:https://colab.research.google.com/drive/1h1LWEToiBXtR7uhsr6ZwSPfhE5QKEATK#scrollTo=L9WdjAleafGa

Colab不能選GPU,連接后選擇全部運(yùn)行即可。

等待一段時(shí)間(6-7min)后,程序會(huì)跳轉(zhuǎn)到最后一個(gè)代碼塊的輸入。使用方法如下:

  • 對(duì)話模式:輸入“對(duì)話”可以啟動(dòng)對(duì)話模式,ChatGLM的輸出文本會(huì)經(jīng)過(guò)機(jī)器翻譯和VITS,生成對(duì)應(yīng)的日文語(yǔ)音。而想要修改設(shè)定時(shí)可以輸入“取消對(duì)話”,這樣可以只調(diào)用ChatGLM,節(jié)省輸出時(shí)間。

  • 修改角色語(yǔ)音:輸入“角色”,可以修改角色語(yǔ)音,這里我選用的是VITS項(xiàng)目作者開(kāi)源的yuzusoft 7人模型,角色I(xiàn)D需要在0-6之間。

具體演示可以看視頻:

這里我建議大家用Kaggle的版本,因?yàn)镵aggle平臺(tái)提供了兩塊GPU,每一塊都有15GB的顯存,可以部署無(wú)量化模型,保持模型最好的推理能力。目前使用Colab偶爾可能會(huì)出現(xiàn)爆顯存的情況,此時(shí)可以斷開(kāi)連接并刪除運(yùn)行時(shí),然后重新運(yùn)行整個(gè)Notebook。

如果只是想體驗(yàn)ChatGLM的b友按照上面的步驟就可以運(yùn)行了,接下來(lái)我會(huì)大概描述一下代碼細(xì)節(jié),歡迎大家指正。關(guān)于VITS和機(jī)器翻譯的部分可以看看上一期專(zhuān)欄:

模型部署

由于模型文件本身接近14GB,按照原項(xiàng)目提供的代碼,似乎會(huì)將先模型加載到CPU上,然后再移至GPU:

而Kaggle和Colab的CPU都只有12GB的顯存,根本加載不了。經(jīng)過(guò)搜索,我使用Hugging Face的Accelerate庫(kù)進(jìn)行分布式加載,也就是把模型分布式加載到CPU / 兩個(gè)GPU上,同時(shí)保證每一個(gè)GLMBlock在同一個(gè)設(shè)備上:

具體細(xì)節(jié)可見(jiàn)下面的鏈接:

https://huggingface.co/docs/accelerate/usage_guides/big_modeling

https://huggingface.co/docs/accelerate/package_reference/big_modeling

VITS模型下載

原作者提供的下載鏈接似乎不能直接在Kaggle或者Colab中下載。不過(guò)有人將模型上傳到了Hugging Face,鏈接為https://huggingface.co/spaces/skytnt/moe-tts,模型在saved_model/0中:

這里我原來(lái)想只下載saved_model/0中的文件,但是由于整個(gè)項(xiàng)目是在Hugging Face Spaces下,搜索之后好像無(wú)法用Hugging Face的API實(shí)現(xiàn)?(有知道的大佬可以在評(píng)論區(qū)告訴我),所以我只能把整個(gè)項(xiàng)目都clone一遍:

在Notebook中播放語(yǔ)音

在Notebook中播放語(yǔ)音可以使用IPython庫(kù)中的IPython.display.Audio函數(shù),但是這個(gè)函數(shù)返回的是一個(gè)<IPython.lib.display.Audio object>。如果代碼塊中Audio函數(shù)沒(méi)有接其他輸入 /?輸出,則程序可以直接播放對(duì)應(yīng)語(yǔ)音(類(lèi)似在代碼塊中直接輸出變量):

但是這里我們需要在播放完語(yǔ)音后重新input,此時(shí)程序不會(huì)播放語(yǔ)音

因此我們需要調(diào)用IPython.display.display函數(shù),它的功能和print類(lèi)似(即直接輸出變量print(變量)的區(qū)別),這樣就可以播放語(yǔ)音了:

至此代碼部分就講完了,接下來(lái)是一些使用時(shí)的注意事項(xiàng)。

使用注意事項(xiàng)

  • ChatGLM模型的輸出具有一定的隨機(jī)性,輸入同樣的文本,每次的回答都不一樣。視頻中所展示的是我選取的效果比較好的一段,有時(shí)候模型會(huì)直接忘記自己的貓娘設(shè)定:

  • 機(jī)器翻譯模型多數(shù)情況下效果還行,但是有部分詞可能會(huì)錯(cuò)譯或漏譯。之前因?yàn)橐诒镜厥褂?,所以?duì)于模型輸出的max_length和束搜索的num_beams,我選取了比較小的值。大家可以在最后一個(gè)代碼塊中修改一下,看看效果:

  • 由于我把整個(gè)moe-tts項(xiàng)目都clone了,saved_model中還有其他預(yù)訓(xùn)練模型,感興趣的b友可以選擇其他的模型進(jìn)行嘗試,修改模型文件路徑即可:

同時(shí),由于我使用的是7人模型,所以我加了一條assert防止模型運(yùn)行不正常(如果輸入大于7的數(shù)字,模型貌似會(huì)直接寄,會(huì)報(bào)錯(cuò)不在同一個(gè)device上,后續(xù)只能重新運(yùn)行整個(gè)Notebook)。如果想使用其他模型,還需要修改一下assert部分:

結(jié)語(yǔ)

想不到又拿對(duì)話模型水了一期專(zhuān)欄不過(guò)整個(gè)過(guò)程還是挺有意思的,可以體驗(yàn)到平替版ChatGPT的強(qiáng)大。不得不說(shuō),開(kāi)源確實(shí)是一項(xiàng)壯舉,再次感謝這些開(kāi)源的作者。如果大家有什么問(wèn)題或者什么改進(jìn)的建議,可以在評(píng)論區(qū)留言或者私信我,我也只是初學(xué)者,大家一起討論和學(xué)習(xí)。

點(diǎn)擊即用的Plus版AI老婆教程:ChatGLM+VITS+機(jī)器翻譯(Kaggle + Google Colab)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
凉城县| 连山| 汪清县| 浏阳市| 长春市| 潢川县| 赤水市| 射洪县| 获嘉县| 兴仁县| 陆川县| 永登县| 仪陇县| 永安市| 光泽县| 九江市| 来安县| 上饶县| 隆安县| 恩施市| 淄博市| 启东市| 徐汇区| 四平市| 大竹县| 吴江市| 古丈县| 新干县| 五常市| 海安县| 淳安县| 棋牌| 平度市| 祁阳县| 泉州市| 鄂托克旗| 比如县| 广平县| 睢宁县| 波密县| 二手房|