宿舍晚上溫度高,那是你沒聽“鬼故事”
摘要:天熱嘛,出身冷汗就好了。這次給大家準備了一個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個福利,並且還有機會獲得精美獎品哦(業界良心,全國包郵),歡迎大家參與。