質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

パラメータ

関数やプログラム実行時に与える設定値をパラメータと呼びます。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

1188閲覧

パラメータを変えたいです。

jeesus

総合スコア1

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

パラメータ

関数やプログラム実行時に与える設定値をパラメータと呼びます。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/11/03 05:35

前提・実現したいこと

下記のプログラムにおきまして、新たなパラメータでの実行、PretrainedModelの変更、corpusの変更をして実行したいと思っております。
どのような手順で実行するべきかをご指導お願いいたします。

該当のソースコード

Python

1#! pip install datasets transformers 2from huggingface_hub import notebook_login 3 4notebook_login() 5# !apt install git-lfs 6 7import transformers 8 9print(transformers.__version__) 10 11GLUE_TASKS = ["cola", "mnli", "mnli-mm", "mrpc", "qnli", "qqp", "rte", "sst2", "stsb", "wnli"] 12 13task = "cola" 14model_checkpoint = "distilbert-base-uncased" 15batch_size = 16 16 17from datasets import load_dataset, load_metric 18 19actual_task = "mnli" if task == "mnli-mm" else task 20dataset = load_dataset("glue", actual_task) 21metric = load_metric('glue', actual_task) 22 23dataset 24 25dataset["train"][0] 26 27import datasets 28import random 29import pandas as pd 30from IPython.display import display, HTML 31 32def show_random_elements(dataset, num_examples=10): 33 assert num_examples <= len(dataset), "Can't pick more elements than there are in the dataset." 34 picks = [] 35 for _ in range(num_examples): 36 pick = random.randint(0, len(dataset)-1) 37 while pick in picks: 38 pick = random.randint(0, len(dataset)-1) 39 picks.append(pick) 40 41 df = pd.DataFrame(dataset[picks]) 42 for column, typ in dataset.features.items(): 43 if isinstance(typ, datasets.ClassLabel): 44 df[column] = df[column].transform(lambda i: typ.names[i]) 45 display(HTML(df.to_html())) 46 47show_random_elements(dataset["train"]) 48 49metric 50 51import numpy as np 52 53fake_preds = np.random.randint(0, 2, size=(64,)) 54fake_labels = np.random.randint(0, 2, size=(64,)) 55metric.compute(predictions=fake_preds, references=fake_labels) 56 57from transformers import AutoTokenizer 58 59tokenizer = AutoTokenizer.from_pretrained(model_checkpoint, use_fast=True) 60 61tokenizer("Hello, this one sentence!", "And this sentence goes with it.") 62 63task_to_keys = { 64 "cola": ("sentence", None), 65 "mnli": ("premise", "hypothesis"), 66 "mnli-mm": ("premise", "hypothesis"), 67 "mrpc": ("sentence1", "sentence2"), 68 "qnli": ("question", "sentence"), 69 "qqp": ("question1", "question2"), 70 "rte": ("sentence1", "sentence2"), 71 "sst2": ("sentence", None), 72 "stsb": ("sentence1", "sentence2"), 73 "wnli": ("sentence1", "sentence2"), 74} 75 76sentence1_key, sentence2_key = task_to_keys[task] 77if sentence2_key is None: 78 print(f"Sentence: {dataset['train'][0][sentence1_key]}") 79else: 80 print(f"Sentence 1: {dataset['train'][0][sentence1_key]}") 81 print(f"Sentence 2: {dataset['train'][0][sentence2_key]}") 82 83def preprocess_function(examples): 84 if sentence2_key is None: 85 return tokenizer(examples[sentence1_key], truncation=True) 86 return tokenizer(examples[sentence1_key], examples[sentence2_key], truncation=True) 87 88preprocess_function(dataset['train'][:5]) 89 90 91encoded_dataset = dataset.map(preprocess_function, batched=True) 92 93from transformers import AutoModelForSequenceClassification, TrainingArguments, Trainer 94 95num_labels = 3 if task.startswith("mnli") else 1 if task=="stsb" else 2 96model = AutoModelForSequenceClassification.from_pretrained(model_checkpoint, num_labels=num_labels) 97 98metric_name = "pearson" if task == "stsb" else "matthews_correlation" if task == "cola" else "accuracy" 99model_name = model_checkpoint.split("/")[-1] 100 101args = TrainingArguments( 102 f"{model_name}-finetuned-{task}", 103 evaluation_strategy = "epoch", 104 save_strategy = "epoch", 105 learning_rate=2e-5, 106 per_device_train_batch_size=batch_size, 107 per_device_eval_batch_size=batch_size, 108 num_train_epochs=5, 109 weight_decay=0.01, 110 load_best_model_at_end=True, 111 metric_for_best_model=metric_name, 112 push_to_hub=True, 113) 114 115def compute_metrics(eval_pred): 116 predictions, labels = eval_pred 117 if task != "stsb": 118 predictions = np.argmax(predictions, axis=1) 119 else: 120 predictions = predictions[:, 0] 121 return metric.compute(predictions=predictions, references=labels) 122 123validation_key = "validation_mismatched" if task == "mnli-mm" else "validation_matched" if task == "mnli" else "validation" 124trainer = Trainer( 125 model, 126 args, 127 train_dataset=encoded_dataset["train"], 128 eval_dataset=encoded_dataset[validation_key], 129 tokenizer=tokenizer, 130 compute_metrics=compute_metrics 131) 132 133trainer.train() 134

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2021/11/03 06:03

そのコードはどこかから持ってきたもんでしょうか
guest

回答1

0

huggingface / transformersを使って日本語BERTの事前学習を実施してオリジナルな言語モデルを作ってみるが参考になりませんか?

日本人が日本語で実際に動くコードまで一緒に丁寧にまとめてくれた資料を自力で見た方が、いきなり「誰かわからんコードをレビューしてくれ」で着くかどうかもわからない回答を待つより早そうです。

投稿2021/11/04 12:43

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問