尝试加载 llama2 模型:
model = AutoModelForCausalLM.from_pretrained(
model_name,
quantization_config=bnb_config,
device_map=device_map
)
Run Code Online (Sandbox Code Playgroud)
使用这些 bnb_config:
BitsAndBytesConfig {
"bnb_4bit_compute_dtype": "bfloat16",
"bnb_4bit_quant_type": "nf4",
"bnb_4bit_use_double_quant": true,
"llm_int8_enable_fp32_cpu_offload": false,
"llm_int8_has_fp16_weight": false,
"llm_int8_skip_modules": null,
"llm_int8_threshold": 6.0,
"load_in_4bit": true,
"load_in_8bit": false,
"quant_method": "bitsandbytes"
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
RuntimeError: Failed to import transformers.models.llama.modeling_llama because of the following error (look up to see its traceback):
cannot import name 'flash_attn_func' from 'flash_attn' (/opt/conda/lib/python3.10/site-packages/flash_attn/__init__.py)
Run Code Online (Sandbox Code Playgroud)
任何帮助都会有所帮助。
我想使用域语料库(情感相关文本)预训练 BERT 和 RoBERTa MLM。使用50k~100k字需要多长时间。由于 RoBERTa 没有接受过预测下一个句子目标的训练,一个训练目标比 BERT 少,并且具有更大的小批量和学习率,我认为 RoBERTa 会快得多?
我看到存在 T5model 的两个配置 - T5Model和TFT5WithLMHeadModel。我想测试这个翻译任务(例如 en-de),因为它们在 google 的原始 repo 中显示。有没有办法可以使用这个模型从拥抱脸来测试翻译任务。我在文档方面没有看到任何与此相关的示例,并且想知道如何提供输入并获得结果。
任何帮助表示赞赏
我只是想知道是否可以将 HuggingFace BertForSequenceClassification模型扩展到 2 个以上的标签。文档说,我们可以传递位置参数,但似乎“标签”不起作用。有人有想法吗?
labels = th.tensor([0,0,0,0,0,0], dtype=th.long).unsqueeze(0)
print(labels.shape)
modelBERTClass = transformers.BertForSequenceClassification.from_pretrained(
'bert-base-uncased',
labels=labels
)
l = [module for module in modelBERTClass.modules()]
l
Run Code Online (Sandbox Code Playgroud)
torch.Size([1, 6])
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-122-fea9a36402a6> in <module>()
3 modelBERTClass = transformers.BertForSequenceClassification.from_pretrained(
4 'bert-base-uncased',
----> 5 labels=labels
6 )
7
/usr/local/lib/python3.6/dist-packages/transformers/modeling_utils.py in from_pretrained(cls, pretrained_model_name_or_path, *model_args, **kwargs)
653
654 # Instantiate model.
--> 655 model = cls(config, *model_args, **model_kwargs)
656
657 if state_dict is None and not from_tf:
TypeError: __init__() …Run Code Online (Sandbox Code Playgroud) python transformer-model bert-language-model huggingface-transformers
我的问题涉及这个例子,可以在伟大的huggingface/transformers库中找到。
我正在使用库创建者提供的笔记本作为我的管道的起点。它提出了一个在 Glue 数据集上微调 BERT 进行句子分类的流程。
当进入代码时,我注意到一个非常奇怪的事情,我无法解释。
InputFeatures在示例中,输入数据作为类的实例从此处引入模型:
该类有4个属性,包括label属性:
class InputFeatures:
...
input_ids: List[int]
attention_mask: Optional[List[int]] = None
token_type_ids: Optional[List[int]] = None
label: Optional[Union[int, float]] = None
Run Code Online (Sandbox Code Playgroud)
随后将其作为输入字典传递给forward()模型方法。这是由Trainer类完成的,例如这里的第 573-576 行:
def _training_step(
self, model: nn.Module, inputs: Dict[str, torch.Tensor], optimizer: torch.optim.Optimizer
) -> float:
model.train()
for k, v in inputs.items():
inputs[k] = v.to(self.args.device)
outputs = model(**inputs)
Run Code Online (Sandbox Code Playgroud)
但是,该forward()方法需要标签(注意复数形式)输入参数(取自此处):
def forward(
self,
input_ids=None,
attention_mask=None, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Hugging Face Transformers 库来 POS_TAG 法语。在英语中,我可以通过如下句子来做到这一点:
天气真是太好了。那么让我们去散步吧。
结果是:
token feature
0 The DET
1 weather NOUN
2 is AUX
3 really ADV
4 great ADJ
5 . PUNCT
6 So ADV
7 let VERB
8 us PRON
9 go VERB
10 for ADP
11 a DET
12 walk NOUN
13 . PUNCT
Run Code Online (Sandbox Code Playgroud)
有谁知道法语如何实现类似的目标吗?
这是我在 Jupyter 笔记本中用于英文版本的代码:
!git clone https://github.com/bhoov/spacyface.git
!python -m spacy download en_core_web_sm
from transformers import pipeline
import numpy as np
import pandas as pd
nlp = pipeline('feature-extraction') …Run Code Online (Sandbox Code Playgroud) 我有一个包含段落的数据集,我需要将其分为两类。这些段落通常有 3-5 句话长。其中绝大多数的长度不到 500 字。我想利用BERT来解决这个问题。
我想知道我应该如何使用 BERT 来生成这些段落的向量表示,尤其是将整个段落传递给 BERT 是否可以?
此处和此处对相关问题进行了翔实的讨论。这些讨论集中在如何使用 BERT 来表示整个文档。在我的例子中,段落并没有那么长,确实可以在不超过 512 的最大长度的情况下传递给 BERT。但是,BERT 是在句子上进行训练的。句子是相对独立的意义单位。我想知道将多个句子输入 BERT 是否与模型的设计目的没有根本冲突(尽管这似乎是定期进行的)。
nlp text-classification bert-language-model huggingface-transformers
我正在尝试为文档分类构建模型。我正在BERT与PyTorch.
我得到了带有以下代码的 bert 模型。
bert = AutoModel.from_pretrained('bert-base-uncased')
Run Code Online (Sandbox Code Playgroud)
这是训练的代码。
for epoch in range(epochs):
print('\n Epoch {:} / {:}'.format(epoch + 1, epochs))
#train model
train_loss, _ = modhelper.train(proc.train_dataloader)
#evaluate model
valid_loss, _ = modhelper.evaluate()
#save the best model
if valid_loss < best_valid_loss:
best_valid_loss = valid_loss
torch.save(modhelper.model.state_dict(), 'saved_weights.pt')
# append training and validation loss
train_losses.append(train_loss)
valid_losses.append(valid_loss)
print(f'\nTraining Loss: {train_loss:.3f}')
print(f'Validation Loss: {valid_loss:.3f}')
Run Code Online (Sandbox Code Playgroud)
这是我的 train 方法,可通过 object 访问modhelper。
def train(self, train_dataloader):
self.model.train()
total_loss, total_accuracy = 0, 0
# …Run Code Online (Sandbox Code Playgroud) python deep-learning pytorch bert-language-model huggingface-transformers
我正在使用 Scibert 预训练模型来获取各种文本的嵌入。代码如下:
from transformers import *
tokenizer = AutoTokenizer.from_pretrained('allenai/scibert_scivocab_uncased', model_max_length=512, truncation=True)
model = AutoModel.from_pretrained('allenai/scibert_scivocab_uncased')
Run Code Online (Sandbox Code Playgroud)
我已将最大长度和截断参数添加到分词器,但不幸的是,它们不会截断结果。如果我通过分词器运行更长的文本:
inputs = tokenizer("""long text""")
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
令牌索引序列长度长于此模型指定的最大序列长度 (605 > 512)。通过模型运行此序列将导致索引错误
现在很明显,由于张量序列太长,我无法在模型中运行它。截断输入以适应最大序列长度 512 的最简单方法是什么?
我正在尝试在 Google Collaboratory 上实施 XLNET。但我得到以下问题。
ImportError:
XLNetTokenizer requires the SentencePiece library but it was not found in your environment. Checkout the instructions on the
installation page of its repo: https://github.com/google/sentencepiece#installation and follow the ones
that match your environment.
Run Code Online (Sandbox Code Playgroud)
我还尝试了以下步骤:
!pip install -U transformers
!pip install sentencepiece
from transformers import XLNetTokenizer
tokenizer = XLNetTokenizer.from_pretrained('xlnet-base-cased-spiece.model')
Run Code Online (Sandbox Code Playgroud)
提前谢谢你的帮助。
transformer-model google-colaboratory huggingface-transformers huggingface-tokenizers