我正在使用 bert 进行具有 3 个标签的序列分类任务。为此,我使用带有tensorflow的huggingface转换器,更具体地说是带有bert-base-german-cased模型的TFBertForSequenceClassification类(是的,使用德语句子)。
我绝不是 NLP 方面的专家,这就是为什么我在这里几乎遵循这种方法: https: //towardsdatascience.com/fine-tuning-hugging-face-model-with-custom-dataset-82b8092f5333(进行了一些调整当然)
一切似乎都工作正常,但我从模型收到的输出却让我失望。以下只是上下文中的一些输出。
我与文章中的示例的主要区别是标签的数量。我有 3 个,而文章只介绍了 2 个。
我使用 sklearn.preprocessing 中的 LabelEncoder 来处理我的标签
label_encoder = LabelEncoder()
Y_integer_encoded = label_encoder.fit_transform(Y)
Run Code Online (Sandbox Code Playgroud)
*这里是一个字符串标签列表,所以像这样
['e_3', 'e_1', 'e_2',]
Run Code Online (Sandbox Code Playgroud)
然后变成这样:
array([0, 1, 2], dtype=int64)
Run Code Online (Sandbox Code Playgroud)
然后,我使用 BertTokenizer 处理文本并创建输入数据集(训练和测试)。这些是它们的形状:
<TensorSliceDataset shapes: ({input_ids: (99,), token_type_ids: (99,), attention_mask: (99,)}, ()), types: ({input_ids: tf.int32, token_type_ids: tf.int32, attention_mask: tf.int32}, tf.int32)>
Run Code Online (Sandbox Code Playgroud)
然后,我按照 Huggingface 文档训练模型。
训练模型的最后一个时期如下所示:
Epoch 3/3
108/108 [==============================] - 24s 223ms/step - loss: 25.8196 - accuracy: 0.7963 - val_loss: 24.5137 - val_accuracy: 0.7243 …Run Code Online (Sandbox Code Playgroud) python tensorflow bert-language-model huggingface-transformers
TL;DR:\n我的模型总是预测相同的标签,但我不知道为什么。下面是我的微调代码,希望有人能指出我哪里出错了。
\n我使用 Huggingface 的 TFBertForSequenceClassification 进行序列分类任务来预测德语文本中句子的 4 个标签。
\n我使用 bert-base-german-cased 模型,因为我不只使用小写文本(因为德语比英语更区分大小写)。
\n我从一个 csv 文件中获取输入,该文件是根据收到的带注释的语料库构建的。这是其中的一个示例:
\n0 Hier kommen wir ins Spiel Die App Cognitive At...\n1 Doch wenn Athlet Lebron James jede einzelne Mu...\n2 Wie kann ein Gehirn auf Hochleistung getrimmt ...\n3 Wie schafft es Warren Buffett knapp 1000 W\xc3\xb6rte...\n4 Entfalte dein mentales Potenzial und werde ein...\nName: sentence_clean, Length: 3094, dtype: object\nRun Code Online (Sandbox Code Playgroud)\n这些是我的标签,来自同一个 csv 文件:
\n0 e_1\n1 e_4\n2 e_4\n3 e_4\n4 e_4\nRun Code Online (Sandbox Code Playgroud)\n不同的标签是:e_1、e_2、e_3 和 e_4
\n …python tensorflow bert-language-model huggingface-transformers