如何解决使用许多文本输入微调 BERT HuggingFace
我正在尝试微调以表格数据作为输入的 BERT/transformer 模型。
每一行都有许多文本输入和一些数字特征。
我想在一侧有一个神经网络。然后是另一侧的变压器。转换器将接受文本输入。神经网络将接受数字输入。输出将被连接起来,最后一个密集的 1 sigmoid 层将产生一个预测。
def bert_model():
num_columns = 10
inputs = []
numeric_inputs = layers.Input(shape = (window_size,num_columns))
categorical_inputs = layers.Input(shape = (window_size,num_columns))
inputs.append(numeric_inputs)
inputs.append(categorical_inputs)
input_ids = layers.Input(shape=(512,),name='input_token',dtype='int32')
input_masks_ids = layers.Input(shape=(512,name='masked_token',dtype='int32')
unpooledoutputs = tfbert_model(input_ids,input_masks_ids)
bert_layer = layers.Dropout(0.1)(unpooledoutputs.pooler_output)
inputs.append(input_ids)
inputs.append(input_masks_ids)
# textual data
for i in range(1,window_size):
input_ids = layers.Input(shape=(512,name=f'input_token_{i}',dtype='int32')
input_masks_ids = layers.Input(shape=(512,name=f'masked_token_{i}',dtype='int32')
inputs.append(input_ids)
inputs.append(input_masks_ids)
unpooledoutputs = tfbert_model(input_ids,input_masks_ids)
unpooledoutputs = layers.Dropout(0.1)(unpooledoutputs.pooler_output)
bert_layer = layers.Concatenate()([bert_layer,\
unpooledoutputs])
... rest of the concatenation with other model
这是正确的方法吗?我想使用单个 bert 模型对所有输入进行微调。我确实希望必须使用 50 个 BERT 模型,每个文本输入一个,但只需要一个。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。