Model reference · open weights
longformer_zh is an open-weight embedding model from ValkyriaLenneth. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.
Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.
What it is
| Released by | ValkyriaLenneth |
|---|---|
| Type | Embedding models |
| Task | Embeddings |
| Context | 4k tokens |
| Runs with | transformers |
| Released | 2022-03-02 |
| Popularity | 1k downloads / month |
| Licence | Unknown |
About
相比于Transformer的O(n^2)复杂度,Longformer提供了一种以线性复杂度处理最长4K字符级别文档序列的方法。Longformer Attention包括了标准的自注意力与全局注意力机制,方便模型更好地学习超长序列的信息。
Compared with O(n^2) complexity for Transformer model, Longformer provides an efficient method for processing long-document level sequence in Linear complexity. Longformer’s attention mechanism is a drop-in replacement for the standard self-attention and combines a local windowed attention with a task motivated global attention.
我们注意到关于中文Longformer或超长序列任务的资源较少,因此在此开源了我们预训练的中文Longformer模型参数, 并提供了相应的加载方法,以及预训练脚本。
There are not so much resource for Chinese Longformer or long-sequence-level chinese task. Thus we open source our pretrained longformer model to help the researchers.
您可以使用谷歌云盘或百度网盘下载我们的模型 You could get Longformer_zh from Google Drive or Baidu Yun.
我们同样提供了Huggingface的自动下载 We also provide auto load with HuggingFace.Transformers.
from Longformer_zh import LongformerZhForMaksedLM
LongformerZhForMaksedLM.from_pretrained('ValkyriaLenneth/longformer_zh')
直接使用 transformers.LongformerModel.from_pretrained 加载模型
Please use transformers.LongformerModel.from_pretrained to load the model directly
以下内容已经被弃用
The following notices are abondoned, please ignore them.
区别于英文原版Longformer, 中文Longformer的基础是Roberta_zh模型,其本质上属于 Transformers.BertModel 而非 RobertaModel, 因此无法使用原版代码直接加载。
Different with origin English Longformer, Longformer_Zh is based on Roberta_zh which is a subclass of Transformers.BertModel not RobertaModel. Thus it is impossible to load it with origin code.
我们提供了修改后的中文Longformer文件,您可以使用其加载参数。
We provide modified Longformer_zh class, you can use it directly to load the model.
如果您想将此参数用于更多任务,请参考Longformer_zh.py替换Attention Layer.
If you want to use our model on more down-stream tasks, please refer to Longformer_zh.py and replace Attention layer with Longformer Attention layer.
我们的预训练语料来自 https://github.com/brightmart/nlp_chinese_corpus, 根据Longformer原文的设置,采用了多种语料混合的预训练数据。
The corpus of pretraining is from https://github.com/brightmart/nlp_chinese_corpus. Based on the paper of Longformer, we use a mixture of 4 different chinese corpus for pretraining.
我们的模型是基于Roberta_zh_mid (https://github.com/brightmart/roberta_zh),训练脚本参考了https://github.com/allenai/longformer/blob/master/scripts/convert_model_to_long.ipynb
The basement of our model is Roberta_zh_mid (https://github.com/brightmart/roberta_zh). Pretraining scripts is modified from https://github.com/allenai/longformer/blob/master/scripts/convert_model_to_long.ipynb.
同时我们在原版基础上,引入了 Whole-Word-Masking 机制,以便更好地适应中文特性。
We introduce Whole-Word-Masking method into pretraining for better fitting Chinese language.
Whole-Word-Masking代码改写自TensorFlow版本的Roberta_zh,据我们所知是第一个开源的Pytorch版本WWM.
Our WWM scripts is refacted from Roberta_zh_Tensorflow, as far as we know, it is the first open source Whole-word-masking scripts in Pytorch.
模型 max_seq_length = 4096, 在 4 * Titan RTX 上预训练3K steps 大概用时4天。
Max seuence length is 4096 and the pretraining took 4 days on 4 * Titan RTX.
我们使用了 Nvidia.Apex 引入了混合精度训练,以加速预训练。
We use Nvidia.Apex to accelerate pretraining.
关于数据预处理, 我们采用 Jieba 分词与JIONLP进行数据清洗。
We use Jieba Chinese tokenizer and JIONLP data cleaning.
更多细节可以参考我们的预训练脚本
For more details, please check our pretraining scripts.
| Model | Dev F |
|---|---|
| Bert | 80.3 |
| Bert-wwm-ext | 80.5 |
| Roberta-mid | 80.5 |
| Roberta-large | 81.25 |
| Longformer_SC | 79.37 |
| Longformer_ZH | 80.51 |
| Model | BPC |
|---|---|
| Longformer before training | 14.78 |
| Longformer after training | 3.10 |
| Model | F1 | EM |
|---|---|---|
| Bert | 85.87 | 64.90 |
| Roberta | 86.45 | 66.57 |
| Longformer_zh | 86.15 | 66.84 |
| Model | Conll-F1 | Precision | Recall |
|---|---|---|---|
| Bert | 66.82 | 70.30 | 63.67 |
| Roberta | 67.77 | 69.28 | 66.32 |
| Longformer_zh | 67.81 | 70.13 | 65.64 |
感谢东京工业大学 奥村·船越研究室 提供算力。
Thanks Okumula·Funakoshi Lab from Tokyo Institute of Technology who provides the devices and oppotunity for me to finish this project.
From the published model card. Full card on the HuggingFace links in the sidebar.
Using it via the API
Once AxForge deploys longformer-zh for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (longformer-zh below is illustrative; you get the exact model name on deployment.)
$ curl -sS https://api.axforge.ai/v1/embeddings \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"longformer-zh","input":"text to embed"}'
Create an account — your API key is available in the console. 3M free tokens every 30 days with every new account.