如何实现伯特嵌入的文本?
我正在通过Bert构建文本嵌入功能.它说伯特可以嵌入文本.但是,我找不到BERT教程上的嵌入功能.这是我查找的链接:伯特 有人知道BERT文本嵌入的资源吗?还是其他名称代表它?我知道为Openai提供了一个函数,只需致电OpenAiembeddings()即可.我只想找到类似的功能.谢谢! 我只想找到类似的函数,例如openaiembeddings(). 解决方案 您可以尝试以下操作: 安装所需的软件包: pip install -U sentence-transformers 代码: from sentence_transformers import SentenceTransformer model = SentenceTransformer('paraphrase-MiniLM-L6-v2') # Sentences we want to encode. Example: sentence = ['This framework generate
14 2024-03-30
编程技术问答社区
Bert或LLM可以用于句子 - 单词推荐吗?
是初级数据分析师. 我正在寻找句子 - >单词建议的方法. 例如,如果我输入"小美人鱼"和书的介绍(句子),则该模型可以放出"泳衣"或"鱼娃娃". 我对NLP的了解是初学者级别,我什至不知道伯特. 我可以通过Bert或其他LLM制作这种模型吗? ,我对我应该搜索的关键字不了解. 我要求您的建议. 谢谢. 解决方案 有多种解决建议问题的方法.现在的标准方式是将您通过SBERT搜索的句子列表矢量化列表,并使用SBERT进行推荐任务,并将它们像VectordB一样存储在某个地方.然后,当您获得查询句子时,也将其列出并使用矢量相似性度量来检索最类似的项目. 这是最有效的方法,但这不是唯一的方法.如果您需要使用Bert获得更好的模型,则必须查找它.您也可以忽略向量数据库并训练一个再次通过句子运行的模型! 类似地,LLM也可以用于编码向量.但是它们通常太贵了.
10 2024-03-30
编程技术问答社区
删除并重新初始化相关 BERT 权重/参数
我试图微调伯特的分类下游任务. 现在我再次加载了该模型,遇到了以下警告: 初始化bertmodel时未使用基于bert基的模型检查点的某些权重:['cls.predictions.transform.dense.dense.weight','cls.predictions.transform.layernorm.weight','cls. seq_relationship.weight','cls.predictions.bias','cls.seq_relationship.bias','cls.predictions.transform.layernorm.bias','cls.predictions.transform.transform.transform.dense.dense.bias','cls.predictions'cls.predictions.解码器. 如果您是从训练另一个任务或其他架构训练的模型的检查点初始化bertmodel的(例如,从bertfo
8 2024-03-30
编程技术问答社区
使用预训练的转化器与Keras
我想使用此预先训练的模型:我使用此代码使用keras构建模型(我通常使用的库): def build_model(transformer, max_len=512): """ function for training the model """ input_word_ids = Input(shape=(max_len,), dtype=tf.int32, name="input_word_ids") sequence_output = transformer(input_word_ids)[0] cls_token = sequence_output[:, 0, :] out = Dense(1, activation='sigmoid')(cls_token) model = Model(inputs=input_word_ids, outputs=out) model.compile(
10 2024-03-30
编程技术问答社区
变形金刚中的BERT加快句子处理速度
我有此代码: import torch import tensorflow as tf import numpy as np from transformers import AutoTokenizer, AutoModel model = 'bert-base-uncased' tokenizer = AutoTokenizer.from_pretrained(model) model = AutoModel.from_pretrained(model) Sentence_vectorList = [] for sent in x_train: input_sentence = torch.tensor(tokenizer.encode(sent)).unsqueeze(0) out = model(input_sentence) embeddings_of_last_layer = out[0] cls_embeddings = embeddings_of
4 2024-03-30
编程技术问答社区
BERT分类器ValueError: 目标尺寸(torch.Size([4, 1]))必须与输入尺寸(torch.Size([4, 2]))相同。
我正在训练分类器模型,但是几天我无法克服问题! 我有值:目标大小(TORCH.SIZE([4,1]))必须与输入大小(Torch.Size([4,2]))错误相同,但实际上对我来说似乎是正确的!的确,我使用Unsqueeze(1)将它们的尺寸放置.我还能尝试什么?谢谢! class SequenceClassifier(nn.Module): def __init__(self, n_classes): super(SequenceClassifier, self).__init__() self.bert = BertModel.from_pretrained(PRE_TRAINED_MODEL_NAME,return_dict=False) self.drop = nn.Dropout(p=0.3) self.out = nn.Linear(self.bert.config.hidden_size, n_classes) def
attributeError:'maskEdlMoutput'对象没有属性'view'
很抱歉打扰,当我评估某些型号时,我遇到了这个错误,并且找不到解决方案的好方法. " maskedlmoutput'means"是什么?有人可以告诉我如何解决这个问题吗?谢谢. (attributeError:'maskEdlMoutput'对象没有属性'view') from transformers import BertForMaskedLM class BertPunc(nn.Module): def __init__(self, segment_size, output_size, dropout): super(BertPunc, self).__init__() self.bert = BertForMaskedLM.from_pretrained('cl-tohoku/bert-base-japanese') self.bert_vocab_size = 32000 sel
12 2024-03-30
编程技术问答社区
在Mali GPU上使用完全委托的BERT模型
我正在尝试使用TensorFlowlite在Mali GPU上部署Bert和Transformer模型.但是问题在于,TensorFlowlite不支持这些模型中的某些操作,包括{cast,catch,mul,reshape,unwake}.有人知道如何将这些操作委派在GPU上吗?还有其他张量型库库可以支持嵌入式GPU,特别是Mali GPU? 我只想测量他们在GPU上的延迟. STARTING! Log parameter values verbosely: [0] Min num runs: [1] **Graph**: [mobilebert_float_384_gpu.tflite] **Use gpu**: [1] Loaded model mobilebert_float_384_gpu.tflite **INFO**: Created TensorFlow Lite delegate for GPU. **ERROR**: Following operations a
8 2024-03-30
编程技术问答社区
0.0在Camembembert提取的文本特征上使用KNN时的精度
我正在尝试使用Camembert模型来提取文本功能.之后,我试图使用KNN分类器将功能向量分类为输入. 这是我写的代码 import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from transformers import AutoTokenizer, CamembertModel from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score import torch # Initialize the Camembert tokenizer and model tokenizer = AutoTokenizer.from_pretrained("camembert-base") model = CamembertModel
10 2024-03-30
编程技术问答社区
attributeError:'tokenclalyOutput'对象没有属性"向后"
我正在使用JSON文件数据集微调命名实体识别任务中的BERT模型,但是当我运行该代码时,始终会出现错误: loss = model(b_input_ids, token_type_ids=None, attention_mask=b_input_mask, labels=b_labels) # backward pass loss.backward() 我认为图书馆已经更改,但我不知道在哪里可以找到"向后"属性 解决方案 token_classifier_output = model(b_input_ids, token_type_ids=None, attention_mask=b_input_mask, labels=b_labels) token_classifier_output.loss.backward()
12 2024-03-30
编程技术问答社区
用Tensorflow BERT模型保存和进行推理
我已经创建了一个使用TensorFlow Bert语言模型的二进制分类器.这是 .训练模型后,它保存了模型并生成以下文件. 预测代码. from tensorflow.contrib import predictor #MODEL_FILE = 'graph.pbtxt' with tf.Session() as sess: predict_fn = predictor.from_saved_model(f'/content/drive/My Drive/binary_class/bert/graph.pbtxt') predictions = predict_fn(pred_sentences) print(predictions) 错误 OSError: SavedModel file does not exist at: /content/drive/My Drive/binary_class/bert/graph.pbtxt/{saved_m
8 2024-03-30
编程技术问答社区
使用变换器类BertForQuestionAnswering进行提取式问题回答
我正在使用transformers类库BertForQuestionAnswering的BERT模型进行提取QA任务.提取问题回答是为给定上下文文本回答问题的任务,并输出答案在上下文中匹配的开始和结尾索引. model = BertForQuestionAnswering.from_pretrained('bert-base-uncased', cache_dir=os.getenv("cache_dir", "../../models")) question = "What is the capital of Italy?" text = "The capital of Italy is Rome." inputs = tokenizer.encode_plus(question, text, return_tensors='pt') start, end = model(**inputs) start_max = torch.argmax(F.softmax(start, dim =
2 2024-03-30
编程技术问答社区
如何从训练好的多标签文本分类模型中预测未见过的数据?
首先,我想说我是机器学习的新手,并且仍然学习这些事情的工作方式.我正在研究将评论分类为多个标签,并通过引用此该模型经过训练,可以将评论分类为9个标签,该模型可以单独预测每个标签的值.到目前为止,我如何训练该模型以及如何测试模型如下.我没有包含文本处理零件,否则将是一个冗长的代码. 这是模型,它与使用的模型相同在这里 #bert text model class TEXT_MODEL(tf.keras.Model): def __init__(self, vocabulary_size, embedding_dimensions=128, cnn_filters=50, dnn_units=512, model_output_classes=2, dropout_rate=0.1, trainin
BertForMaskedLM中的masked_lm_labels参数是如何工作的?
from transformers import BertTokenizer, BertForMaskedLM import torch tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertForMaskedLM.from_pretrained('bert-base-uncased') input_ids = torch.tensor(tokenizer.encode("Hello, my dog is cute", add_special_tokens=True)).unsqueeze(0) # Batch size 1 outputs = model(input_ids, masked_lm_labels=input_ids) loss, prediction_scores = outputs[:2] 此代码来自HuggingFace Transformers页面. http
6 2024-03-30
编程技术问答社区
如何使用贝尔特来写长句?
我试图将给定的文本分类为新闻,点击诱饵或其他人.我对培训的文本很长. 解决方案 您可以在论文中找到您类似问题的答案 - 分类/63413589#63413589">在这里. ,如果您谈论的是新闻或点击诱饵的文本,为什么您认为同一文档的块将具有不同的标签?您可以将文本缩小并遵循如何用于文本分类的微调bert?.作者表明,Head+Tail截断具有很高的精度.由于 github 页面和文档并取得了良好的结果. 您可以选择具有标志的截断方法 -trunc_medium 带有选项: -2表示仅头(保留第一个512代币), -1表示仅尾巴(保留最后512个令牌), 0是指头半 +尾巴半(例如:head256 + tail256), 其他自然数字k表示HEAD-K + TAIL-REST(例如:Head-K + Tail-(512-K)). 然后,您可以汇总成分的结果,创建长文本的汇总嵌入. 在这里,我还将继续讨论与Bert Reffering to Big
6 2024-03-30
编程技术问答社区
BERT 二进制文本分类每次运行的结果都不同
我从 simpletransform "> simpletransformer ">... . 我在COLAB中使用GPU运行时类型工作. 我已经生成了使用Sklearn Stratifiedkfold方法的火车和测试集.我有两个包含我折叠的字典的文件. 我在循环时运行以下分类: from sklearn.metrics import matthews_corrcoef, f1_score import sklearn counter = 0 resultatos = [] while counter != len(trainfolds): model = ClassificationModel('bert', 'bert-base-multilingual-cased',args={'num_train_epochs': 4, 'learning_rate': 1e-5, 'fp16': False,
10 2024-03-30
编程技术问答社区
在理解变形金刚库中BERTforTokenClassification类的输出方面的困惑
这是变形金刚pytorch库的文档中给出的示例 from transformers import BertTokenizer, BertForTokenClassification import torch tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertForTokenClassification.from_pretrained('bert-base-uncased', output_hidden_states=True, output_attentions=True) input_ids = torch.tensor(tokenizer.encode("Hello, my dog is cute", add_special_tokens=True)).unsqueeze(0)
2 2024-03-30
编程技术问答社区
使用预训练的BERT模型来增加模型无法识别的额外词汇
我需要在现有BERT模型中添加其他单词的帮助.我有两个Quires指导我: 我正在处理一个域的NER任务: 伯特识别为[unk]的单词很少(不确定确切的数字),但是这些实体是模型识别所必需的.预验证的模型在提供标记的数据并微调模型的同时,在" Bert-Base相提并论"上学习得很好(多达80%)的准确性,但如果识别所有实体,则该模型将学习得更好. 我是否需要在vocabs.txt中添加那些未知实体并再次训练模型? 我需要从头开始训练BERT模型吗? 谢谢... 解决方案 bert效果很好,因为它已在33亿个单词的非常大的文本数据集上进行了预培训. Skratch的培训BERT是资源要求的,在大多数合理的用例中不支付. bert使用文字算法进行输入分段.从理论上讲,这种shoudl可确保没有摄入量的代币最终以[UNK]的形式出现.分段中最坏的情况是输入令牌最终被分割为单个字符.如果正确完成分段,则仅在不在培训数据中的UTF-8的UTF-8时才会
6 2024-03-30
编程技术问答社区
在不同平台上,模型输出略有不同是正常的吗?
我正在使用huggingface生成文本的bert嵌入,但是在我的Mac和Linux平台上相同的文本略有不同.例如,一对结果: Mac [0.9832047820091248, 0.8559693694114685, 0.9794790744781494, 0.8379054069519043, 0.2829965651035309, 0.16260339319705963, -0.6263850927352905, -0.6327080130577087, 0.255816787481308, -0.993371307849884, 0.9957219958305359, 0.9640689492225647, ... 0.8542048931121826, -0.3760552406311035, 0.8242940902709961, 0.7799679636955261, -0.9965563416481018, -0.44975095987319946, -0.7
32 2024-03-30
编程技术问答社区
BERT与WMD距离的句子相似性
我尝试使用bert和word搬运距离(WMD)来计算两个句子之间的相似性.我找不到Python中WMD的正确公式.还尝试了WMD Python库,但它使用Word2Vec模型进行嵌入.请帮助解决以下问题以使用WMD获得相似性得分. sentence_obama = 'Obama speaks to the media in Illinois' sentence_president = 'The president greets the press in Chicago' sentence_obama = sentence_obama.lower().split() sentence_president = sentence_president.lower().split() #Importing bert for creating an embedding from sentence_transformers import SentenceTransformer model =
8 2024-03-30
编程技术问答社区