1. 程式人生 > 實用技巧 >宿舍晚上溫度高,那是你沒聽“鬼故事”

宿舍晚上溫度高,那是你沒聽“鬼故事”

摘要:天熱嘛,出身冷汗就好了。這次給大家準備了一個AI鬼故事生成器,保證用完讓你瑟瑟發抖。

Hello大家好,我是B站UP主蘇蘇思量,最近又要開學了。

不禁讓我想起之前讀書時候,宿舍沒空調,晚上睡不著的經歷。

所以,用程式碼為大家排憂解難的我又來了!

天熱嘛,出身冷汗就好了。

這次給大家準備了一個AI鬼故事生成器,保證用完讓你瑟瑟發抖。

這個生成器的本質就是餵給AI模型一些鬼故事後,讓它進行自由文字生成。

文末有福利哦,千萬不要錯過!

說起生成中文,這次我用的是OPENAI釋出的GPT 2模型結合pytorch來進行訓練。

首先設定輸入引數,包括詞庫地址,是否預處理,學習率,最短字數等等等等。

然後宣告一個全新的GPT2模型。

為了在稍後的迭代中看到實時進度條,還得加一個tqdm模組。

但是!

我的個人電腦配置是英特爾i7加英偉達GEFORCE GTX的GPU。

之前用幾百K的資料訓練一個SVM都得將近一小時。這次訓練這麼高階的模型,不得跑一週嗎!

為了提高訓練效率,還是得上雲,來吧華為雲ModelArts線上寫碼線上除錯。

首先把剛剛的檔案都上傳儲存在OBS。

然後回到ModelArts,左側“開發環境”-“notebook”,這裡既可以選擇免費體驗版,也可以選擇付費加速版(結尾有福利,可以領取免費試用付費版哦)。

在本地讀取指定路徑下的檔案要寫成這樣:

model_config = transformers.modeling_gpt2.GPT2Config.from_json_file("檔案在本地的地址")

在modelArts的notebook裡要使用華為雲的moxing包

import moxing as mox

mox.file.make_dirs('/cache')
mox.file.copy_parallel('obs://{obs桶名稱}/{桶內檔案地址}', '{執行機中地址}')
model_config =   transformers.modeling_gpt2.GPT2Config.from_json_file(''
{執行機中地址}'')

在本地讀去使用者傳進來的引數的時候,是這樣的:

args = parser.parse_args()

但是在modelArts的notebook裡除錯的時候,要改成這樣。

args, unparsed = parser.parse_known_args()

Notebook支援分塊執行,除錯起來也更加輕鬆。

接著把資料按照剛剛設定的epoch和batch size分割。

然後傳遞給pytorch去構建張量。

接著設定前向傳播,損失函式,反向傳播,優化步驟。

全部設定好,之後,就可以開始訓練啦!

果然燒別人家的GPU就是不心疼,本來可能要一週的專案,很快就訓練好了。

現在來試一下給你們的開學禮物的效果吧。

附件給大家提供了所有檔案和一個簡化版的訓練文字(只有幾百K,訓練起來很快,方便大家快速拿到結果,早點來搶禮物喲)

只需要把nlpdata資料夾裡的資料傳到OBS,然後把notebook1.py中的程式碼複製到ModelArts的notebook中的第一個模組,然後點選run;

接著把notebook2.py中的程式碼複製到下一個模組,然後把裡面我的OBS檔案地址,改成你的OBS內檔案地址,點選run,就開始訓練啦!

訓練結束後,把notebook3.py中的程式碼複製到下一個模組,把裡面我的檔案的OBS檔案地址,改成你的OBS內檔案地址,點選run,就能生成屬於你的鬼故事啦!

為了感謝大家對我的支援,特意為大家帶來了2個福利,並且還有機會獲得精美獎品哦(業界良心,全國包郵),歡迎大家參與。

點選關注,第一時間瞭解華為雲新鮮技術~