All Projects → JayYip → Bert Multitask Learning

JayYip / Bert Multitask Learning

Licence: apache-2.0
BERT for Multitask Learning

Projects that are alternatives of or similar to Bert Multitask Learning

Nlp Experiments In Pytorch
PyTorch repository for text categorization and NER experiments in Turkish and English.
Stars: ✭ 35 (-90.79%)
Mutual labels:  text-classification, named-entity-recognition, ner, transformer
Pytorch-NLU
Pytorch-NLU,一个中文文本分类、序列标注工具包,支持中文长文本、短文本的多类、多标签分类任务,支持中文命名实体识别、词性标注、分词等序列标注任务。 Ptorch NLU, a Chinese text classification and sequence annotation toolkit, supports multi class and multi label classification tasks of Chinese long text and short text, and supports sequence annotation tasks such as Chinese named entity recognition, part of speech ta…
Stars: ✭ 151 (-60.26%)
Mutual labels:  text-classification, named-entity-recognition, pretrained-models, word-segmentation
Kashgari
Kashgari is a production-level NLP Transfer learning framework built on top of tf.keras for text-labeling and text-classification, includes Word2Vec, BERT, and GPT2 Language Embedding.
Stars: ✭ 2,235 (+488.16%)
Mutual labels:  text-classification, named-entity-recognition, ner
Ner blstm Crf
LSTM-CRF for NER with ConLL-2002 dataset
Stars: ✭ 51 (-86.58%)
Mutual labels:  jupyter-notebook, named-entity-recognition, ner
Snips Nlu
Snips Python library to extract meaning from text
Stars: ✭ 3,583 (+842.89%)
Mutual labels:  text-classification, named-entity-recognition, ner
Bertweet
BERTweet: A pre-trained language model for English Tweets (EMNLP-2020)
Stars: ✭ 282 (-25.79%)
Mutual labels:  text-classification, named-entity-recognition, ner
Dan Jurafsky Chris Manning Nlp
My solution to the Natural Language Processing course made by Dan Jurafsky, Chris Manning in Winter 2012.
Stars: ✭ 124 (-67.37%)
Mutual labels:  text-classification, named-entity-recognition, ner
Multilstm
keras attentional bi-LSTM-CRF for Joint NLU (slot-filling and intent detection) with ATIS
Stars: ✭ 122 (-67.89%)
Mutual labels:  jupyter-notebook, named-entity-recognition, ner
Bert Sklearn
a sklearn wrapper for Google's BERT model
Stars: ✭ 182 (-52.11%)
Mutual labels:  jupyter-notebook, named-entity-recognition, ner
Pytorch Bert Crf Ner
KoBERT와 CRF로 만든 한국어 개체명인식기 (BERT+CRF based Named Entity Recognition model for Korean)
Stars: ✭ 236 (-37.89%)
Mutual labels:  jupyter-notebook, named-entity-recognition, ner
Vncorenlp
A Vietnamese natural language processing toolkit (NAACL 2018)
Stars: ✭ 354 (-6.84%)
Mutual labels:  named-entity-recognition, ner, word-segmentation
Ner Bert Pytorch
PyTorch solution of named entity recognition task Using Google AI's pre-trained BERT model.
Stars: ✭ 249 (-34.47%)
Mutual labels:  named-entity-recognition, ner, transformer
Monpa
MONPA 罔拍是一個提供正體中文斷詞、詞性標註以及命名實體辨識的多任務模型
Stars: ✭ 203 (-46.58%)
Mutual labels:  named-entity-recognition, ner, word-segmentation
Turkish Bert Nlp Pipeline
Bert-base NLP pipeline for Turkish, Ner, Sentiment Analysis, Question Answering etc.
Stars: ✭ 85 (-77.63%)
Mutual labels:  jupyter-notebook, named-entity-recognition, ner
Bnlp
BNLP is a natural language processing toolkit for Bengali Language.
Stars: ✭ 127 (-66.58%)
Mutual labels:  jupyter-notebook, named-entity-recognition, ner
Pytorch Seq2seq
Tutorials on implementing a few sequence-to-sequence (seq2seq) models with PyTorch and TorchText.
Stars: ✭ 3,418 (+799.47%)
Mutual labels:  jupyter-notebook, encoder-decoder, transformer
Spacy Streamlit
👑 spaCy building blocks and visualizers for Streamlit apps
Stars: ✭ 360 (-5.26%)
Mutual labels:  text-classification, named-entity-recognition, ner
Delft
a Deep Learning Framework for Text
Stars: ✭ 289 (-23.95%)
Mutual labels:  text-classification, ner
Dab
Data Augmentation by Backtranslation (DAB) ヽ( •_-)ᕗ
Stars: ✭ 294 (-22.63%)
Mutual labels:  jupyter-notebook, transformer
Named Entity Recognition Ner Papers
An elaborate and exhaustive paper list for Named Entity Recognition (NER)
Stars: ✭ 302 (-20.53%)
Mutual labels:  named-entity-recognition, ner

Bert for Multi-task Learning

python tensorflow PyPI version fury.io PyPI license

中文文档

Note: Since 0.4.0, tf version >= 2.1 is required.

Install

pip install bert-multitask-learning

What is it

This a project that uses transformers(based on huggingface transformers) to do multi-modal multi-task learning.

Why do I need this

In the original BERT code, neither multi-task learning or multiple GPU training is possible. Plus, the original purpose of this project is NER which dose not have a working script in the original BERT code.

To sum up, compared to the original bert repo, this repo has the following features:

  1. Multimodal multi-task learning(major reason of re-writing the majority of code).
  2. Multiple GPU training
  3. Support sequence labeling (for example, NER) and Encoder-Decoder Seq2Seq(with transformer decoder).

What type of problems are supported?

  • Masked LM and next sentence prediction Pre-train(pretrain)
  • Classification(cls)
  • Sequence Labeling(seq_tag)
  • Multi-Label Classification(multi_cls)
  • Multi-modal Mask LM(mask_lm)

How to run pre-defined problems

There are two types of chaining operations can be used to chain problems.

  • &. If two problems have the same inputs, they can be chained using &. Problems chained by & will be trained at the same time.
  • |. If two problems don't have the same inputs, they need to be chained using |. Problems chained by | will be sampled to train at every instance.

For example, cws|NER|weibo_ner&weibo_cws, one problem will be sampled at each turn, say weibo_ner&weibo_cws, then weibo_ner and weibo_cws will trained for this turn together. Therefore, in a particular batch, some tasks might not be sampled, and their loss could be 0 in this batch.

Please see the examples in notebooks for more details about training, evaluation and export models.

Bert多任务学习

注意:版本0.4.0后要求tf>=2.1

安装

pip install bert-multitask-learning

这是什么

这是利用transformer(基于huggingface transformers)进行多模态多任务学习的项目.

我为什么需要这个项目

在原始的BERT代码中, 是没有办法直接用多GPU进行多任务学习的. 另外, BERT并没有给出序列标注和Seq2seq的训练代码.

因此, 和原来的BERT相比, 这个项目具有以下特点:

  1. 多任务学习
  2. 多GPU训练
  3. 序列标注以及Encoder-decoder seq2seq的支持(用transformer decoder)

目前支持的任务类型

  • Masked LM和next sentence prediction预训练(pretrain)
  • 单标签分类(cls)
  • 序列标注(seq_tag)
  • 多标签分类(multi_cls)
  • 多模态Mask LM(mask_lm)

如何运行预定义任务

可以用两种方法来将多个任务连接起来.

  • &. 如果两个任务有相同的输入, 不同标签的话, 那么他们可以&来连接. 被&连接起来的任务会被同时训练.
  • |. 如果两个任务为不同的输入, 那么他们必须|来连接. 被|连接起来的任务会被随机抽取来训练.

例如, 我们定义任务cws|NER|weibo_ner&weibo_cws, 那么在生成每一条数据时, 一个任务块会被随机抽取出来, 例如在这一次抽样中, weibo_ner&weibo_cws被选中. 那么这次weibo_nerweibo_cws会被同时训练. 因此, 在一个batch中, 有可能某些任务没有被抽中, loss为0.

训练, eval和导出模型请见notebooks

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].