问题标签 [bert-language-model]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 多语言 Bert 句子向量捕捉到的语言不仅仅是意义——作为实习生工作?
玩弄 BERT,我下载了 Huggingface Multilingual Bert 并输入了三个句子,保存了它们的句子向量(嵌入[CLS]
),然后通过谷歌翻译翻译它们,将它们传递给模型并保存它们的句子向量。
然后我使用余弦相似度比较了结果。
我惊讶地发现每个句子向量都与从它翻译的句子生成的向量相距甚远(0.15-0.27 余弦距离),而来自同一语言的不同句子确实非常接近(0.02-0.04 余弦距离)。
因此,与其将具有相似含义(但不同语言)的句子组合在一起(在 768 维空间中;)),相同语言的不同句子更接近。
据我了解,多语言 Bert 的全部意义在于跨语言迁移学习——例如,在一种语言的表示上训练一个模型(比如 FC 网络),并让该模型很容易在其他语言中使用。
如果(不同语言的)具有确切含义的句子被映射为比同一种语言的不同句子之间的距离更远,这怎么能起作用?
我的代码:
附言
至少 Heb1 比 Heb2 更接近 Heb3。对于英语等价物也观察到了这种情况,但情况较少。
nlp - 记不清; BERT
我是这个领域的新手,并试图通过下面的 Github 链接学习。但是,我遇到了运行时错误。尽管将批量大小和梯度累积调整为更小的值,并清除了缓存,但运行时错误仍然存在。
任何人都可以分享对此的任何见解吗?非常感谢。
运行时错误:CUDA 内存不足。尝试分配 1024.00 KiB(GPU 0;4.00 GiB 总容量;3.09 GiB 已分配;528.00 KiB 空闲;32.48 MiB 缓存)
tensorflow - 如何从 TF Hub 获取 Bert 分词器的词汇文件
我正在尝试使用 TensorFlow Hub 中的 Bert 并构建一个标记器,这就是我正在做的事情:
但是现在当我检查已解析对象中的词汇文件时,我得到一个空张量
获取此词汇文件的正确方法是什么?
python - 使用 BERT 对单词位置进行序列标记
如果我有一组句子,并且在这些句子中,单词之间存在一些依赖关系。我想训练 BERT 来预测哪些词与其他词有依赖关系。
例如,如果我有这句话:
我们在法国首都巴黎四处走动。
0--------1--------2--------3-----4----5--------6-----7- --8-----9----10---11(单词索引)
我希望 BERT 预测Paris
的位置France
。因此,将任务塑造为序列标记任务。
如果该单词与句子中的任何其他单词或其他单词的索引之间没有关系,则单词的标签可以是-1;对于我们上面的例子,Paris
word 应该有 11 作为 word 的索引France
。
将索引作为标签放置是否正确?
nlp - 如何设置最大 CPU/内核数以将 BERT 作为服务运行?
我可以按照https://github.com/hanxiao/bert-as-service中的说明安装和运行 BERT 模型
它运行时会占用 Linux 机器上的所有 CPU,但我希望它只在 Linux 服务器的 50 个 CPU 上运行。
可以设置运行 BERT 模型的最大 CPU/内核数吗?
python - BERT 标记器和模型下载
我是初学者..我正在和伯特一起工作。但是由于公司网络的安全问题,下面的代码并没有直接接收到bert模型。
所以我想我必须下载这些文件并手动输入位置。但我是新手,我想知道从 github 下载 .py 之类的格式并将其放在某个位置是否简单。
我目前使用的是抱脸的pytorch实现的bert模型,找到的源文件地址是:
https://github.com/huggingface/transformers
请让我知道我认为的方法是否正确,如果正确,要获取什么文件。
提前感谢您的评论。
python - 删除 Bert 中的 SEP 令牌以进行文本分类
给定一个情绪分类数据集,我想微调 Bert。
如您所知,BERT 创建的目的是在给定当前句子的情况下预测下一个句子。因此,为了让网络意识到这一点,他们[CLS]
在第一句的开头插入了一个标记,然后他们添加[SEP]
了一个标记以将第一句与第二句分开,最后在第二句的末尾添加另一个标记[SEP]
(我不清楚为什么他们在最后附加了另一个令牌)。
无论如何,对于文本分类,我在一些在线示例中注意到(参见带有 Tensorflow hub 的 Keras 中的 BERT),它们添加[CLS]
了标记,然后是句子,最后是另一个[SEP]
标记。
在其他研究工作中(例如,使用实体信息丰富预训练语言模型以进行关系分类),他们删除了最后一个[SEP]
标记。
[SEP]
当我的任务仅使用单个句子时,为什么在输入文本的末尾添加标记是/没有好处?
machine-learning - Trying to simplify BERT architecture
I have an interesting question about BERT.
Can I simplify the architecture of the model by saying that the similarity of two words in different context will depend on the similarity of input embeddings making up different contexts? For example, can I say that the similarity of the embeddings of GLASS in the context DRINK_GLASS and WINE in the context LOVE_WINE will depend on the similarity of the input embeddings GLASS and WINE (last position) and DRINK and LOVE (first position)? Or should I also take into account the similarity between DRINK (first context, first position) and WINE (second context, second position) and LOVE and GLASS (viceversa)?
Thanks for your help, for now it is really difficult for me to understand exactly the architecture of Bert, but I'm trying to make experiments so I need to understand some basics.
tensorflow - 如何在 Tensorflow Hub 中使用自定义模型?
我的目标是在 Google Colab 中测试 Google 的 BERT 算法。
我想为芬兰语使用预先训练的自定义模型(https://github.com/TurkuNLP/FinBERT)。在 TFHub 库中找不到该模型。我还没有找到使用 Tensorflow Hub 加载模型的方法。
有没有一种巧妙的方法可以通过 Tensorflow Hub 加载和使用自定义模型?
google-cloud-platform - Huggingface Bert TPU 微调适用于 Colab,但不适用于 GCP
我正在尝试在 TPU 上微调 Huggingface 转换器 BERT 模型。它在 Colab 中工作,但当我在 GCP 上切换到付费 TPU 时失败。Jupyter notebook 代码如下:
这是错误消息:
我在 Huggingface github ( https://github.com/huggingface/transformers/issues/2572 ) 上发布了这个,他们建议 TPU 服务器版本可能与 TPU 客户端版本不匹配,但是 a) 我不知道如何检查为此,也不 b) 该怎么做。建议表示赞赏。