成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

通過PyTorch來創建一個文本分類的Bert模型

開發 后端
在本文中,介紹了一種稱為BERT(帶轉換器Transformers的雙向編碼Encoder 器表示)的語言模型,該模型在問答、自然語言推理、分類和通用語言理解評估或 (GLUE)等任務中取得了最先進的性能.

[[420285]]

2018 年,谷歌發表了一篇題為《Pre-training of deep bidirectional Transformers for Language Understanding》的論文。

在本文中,介紹了一種稱為BERT(帶轉換器Transformers的雙向編碼Encoder 器表示)的語言模型,該模型在問答、自然語言推理、分類和通用語言理解評估或 (GLUE)等任務中取得了最先進的性能.

BERT全稱為Bidirectional Encoder Representation from Transformers[1],是一種用于語言表征的預訓練模型。

它基于谷歌2017年發布的Transformer架構,通常的Transformer使用一組編碼器和解碼器網絡,而BERT只需要一個額外的輸出層,對預訓練進行fine-tune,就可以滿足各種任務,根本沒有必要針對特定任務對模型進行修改。

BERT將多個Transformer編碼器堆疊在一起。Transformer基于著名的多頭注意力(Multi-head Attention)模塊,該模塊在視覺和語言任務方面都取得了巨大成功。

在本文中,我們將使用 PyTorch來創建一個文本分類的Bert模型。

筆者介今天紹一個python庫 --- simpletransformers,可以很好的解決高級預訓練語言模型使用困難的問題。

simpletransformers使得高級預訓練模型(BERT、RoBERTa、XLNet、XLM、DistilBERT、ALBERT、CamemBERT、XLM-RoBERTa、FlauBERT)的訓練、評估和預測變得簡單,每條只需3行即可初始化模型。

數據集來源:https://www.kaggle.com/jrobischon/wikipedia-movie-plots

該數據集包含對來自世界各地的 34,886 部電影的描述。列描述如下:

  • 發行年份:電影發行的年份
  • 標題:電影標題
  • 起源:電影的起源(即美國、寶萊塢、泰米爾等)
  • 劇情:主要演員
  • 類型:電影類型
  • 維基頁面- 從中抓取情節描述的維基百科頁面的 URL
  • 情節:電影情節的長篇描述
  1. import numpy as np 
  2. import pandas as pd 
  3. import os, json, gc, re, random 
  4. from tqdm.notebook import tqdm 
  5. import torch, transformers, tokenizers 
  6. movies_df = pd.read_csv("wiki_movie_plots_deduped.csv"
  7. from sklearn.preprocessing import LabelEncoder 
  8.  
  9. movies_df = movies_df[(movies_df["Origin/Ethnicity"]=="American") | (movies_df["Origin/Ethnicity"]=="British")] 
  10. movies_df = movies_df[["Plot""Genre"]] 
  11. drop_indices = movies_df[movies_df["Genre"] == "unknown" ].index 
  12. movies_df.drop(drop_indices, inplace=True
  13.  
  14. # Combine genres: 1) "sci-fi" with "science fiction" &  2) "romantic comedy" with "romance" 
  15. movies_df["Genre"].replace({"sci-fi""science fiction""romantic comedy""romance"}, inplace=True
  16.  
  17. # 根據頻率選擇電影類型 
  18. shortlisted_genres = movies_df["Genre"].value_counts().reset_index(name="count").query("count > 200")["index"].tolist() 
  19. movies_df = movies_df[movies_df["Genre"].isin(shortlisted_genres)].reset_index(drop=True
  20.  
  21. # Shuffle  
  22. movies_df = movies_df.sample(frac=1).reset_index(drop=True
  23.  
  24. #從不同類型中抽取大致相同數量的電影情節樣本(以減少階級不平衡問題) 
  25. movies_df = movies_df.groupby("Genre").head(400).reset_index(drop=True
  26. label_encoder = LabelEncoder() 
  27. movies_df["genre_encoded"] = label_encoder.fit_transform(movies_df["Genre"].tolist()) 
  28. movies_df = movies_df[["Plot""Genre""genre_encoded"]] 
  29. movies_df 

使用 torch 加載 BERT 模型,最簡單的方法是使用 Simple Transformers 庫,以便只需 3 行代碼即可初始化、在給定數據集上訓練和在給定數據集上評估 Transformer 模型。

  1. from simpletransformers.classification import ClassificationModel 
  2.  
  3. # 模型參數 
  4. model_args = { 
  5.     "reprocess_input_data"True
  6.     "overwrite_output_dir"True
  7.     "save_model_every_epoch"False
  8.     "save_eval_checkpoints"False
  9.     "max_seq_length": 512, 
  10.     "train_batch_size": 16, 
  11.     "num_train_epochs": 4, 
  12.  
  13. Create a ClassificationModel 
  14. model = ClassificationModel('bert''bert-base-cased', num_labels=len(shortlisted_genres), args=model_args) 

訓練模型

  1. train_df, eval_df = train_test_split(movies_df, test_size=0.2, stratify=movies_df["Genre"], random_state=42) 
  2.  
  3. # Train the model 
  4. model.train_model(train_df[["Plot""genre_encoded"]]) 
  5.  
  6. # Evaluate the model 
  7. result, model_outputs, wrong_predictions = model.eval_model(eval_df[["Plot""genre_encoded"]]) 
  8. print(result) 
  9.  
  10. {'mcc': 0.5299659404649717, 'eval_loss': 1.4970421879083518} 
  11. CPU times: user 19min 1s, sys: 4.95 s, total: 19min 6s 
  12. Wall time: 20min 14s 

關于simpletransformers的官方文檔:https://simpletransformers.ai/docs

Github鏈接:https://github.com/ThilinaRajapakse/simpletransformers

 

責任編輯:姜華 來源: Python之王
相關推薦

2024-10-16 10:41:36

2020-09-25 09:58:37

谷歌Android開發者

2021-03-06 07:00:00

awk文本分析工具Linux

2022-10-09 08:00:00

機器學習文本分類算法

2018-07-04 15:17:07

CNNNLP模型

2020-06-04 12:55:44

PyTorch分類器神經網絡

2020-09-22 15:17:59

谷歌Android技術

2017-08-04 14:23:04

機器學習神經網絡TensorFlow

2018-12-17 09:10:52

機器學習TensorFlow容器

2020-03-23 08:00:00

開源數據集文本分類

2024-10-30 16:59:57

Python機器學習

2017-06-20 11:00:13

大數據自然語言文本分類器

2010-09-25 15:46:58

帳戶管理舊賬戶

2024-12-20 16:00:00

Python文本分類聚類

2023-12-31 16:35:31

Pytorch函數深度學習

2023-02-27 09:31:00

streamlitst.sidebar菜單

2025-01-23 16:13:35

RAG

2020-11-30 09:30:00

數據模型架構

2017-08-25 14:23:44

TensorFlow神經網絡文本分類
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品成人品 | 久久久精品综合 | 日韩a v在线免费观看 | 国产成人精品综合 | 久久久国产精品视频 | 国产精品久久久久久久久久久久午夜片 | 亚洲最大的成人网 | 一区二区中文字幕 | 99视频免费播放 | 久久久91| 99精品视频免费观看 | av中文字幕网站 | 久久综合狠狠综合久久综合88 | 欧美a级成人淫片免费看 | 亚洲欧美在线观看视频 | 中文字幕第十一页 | 国产精品久久久久一区二区三区 | 成人一区二区三区视频 | 激情 亚洲| 日韩av一区二区在线观看 | 97久久精品午夜一区二区 | 久久久久久亚洲精品 | 精品国产91久久久久久 | 国产一区2区 | 天天干天天爱天天爽 | www国产成人免费观看视频,深夜成人网 | 成人欧美一区二区三区白人 | 一区二区av | 天天久 | aacc678成免费人电影网站 | 久热精品免费 | 亚洲va国产日韩欧美精品色婷婷 | 青青草原综合久久大伊人精品 | 成人av久久 | 日韩视频一区 | 婷婷毛片| 亚洲最新在线视频 | 视频一区二区三区中文字幕 | 成人在线小视频 | 少妇精品亚洲一区二区成人 | 91精品国产91久久久久久吃药 |