Description
Pretrained BertForMaskedLM model, adapted from Hugging Face and curated to provide scalability and production-readiness using Spark NLP. MARBERT is a Arabic model originally trained by UBC-NLP.
How to use
documentAssembler = DocumentAssembler() \
    .setInputCol("text") \
    .setOutputCol("document")
tokenizer = Tokenizer() \
    .setInputCols("document") \
    .setOutputCol("token")
bert_loaded = BertEmbeddings.pretrained("bert_embeddings_marbert","ar") \
    .setInputCols(["document", "token"]) \
    .setOutputCol("embeddings") \
    .setCaseSensitive(True)
pipeline = Pipeline(stages=[documentAssembler, tokenizer, bert_loaded])
data = spark.createDataFrame([["I love Spark NLP"]]).toDF("text")
result = pipeline.fit(data).transform(data)
val documentAssembler = new DocumentAssembler()
    .setInputCol("text")
    .setOutputCol("document")
val tokenizer = new Tokenizer()
    .setInputCols("document")
    .setOutputCol("token")
val bert_loaded = BertEmbeddings.pretrained("bert_embeddings_marbert","ar")
    .setInputCols(Array("document", "token"))
    .setOutputCol("embeddings")
    .setCaseSensitive(True)
val pipeline = new Pipeline().setStages(Array(documentAssembler, tokenizer, bert_loaded))
val data = Seq("I love Spark NLP").toDS.toDF("text")
val result = pipeline.fit(data).transform(data)
import nlu
nlu.load("ar.embed.bert.by_ubc_nlp").predict("""I love Spark NLP""")
Model Information
| Model Name: | bert_embeddings_marbert | 
| Compatibility: | Spark NLP 4.2.4+ | 
| License: | Open Source | 
| Edition: | Official | 
| Input Labels: | [sentence, token] | 
| Output Labels: | [bert] | 
| Language: | ar | 
| Size: | 611.4 MB | 
| Case sensitive: | true | 
References
- https://huggingface.co/UBC-NLP/MARBERT
- https://aclanthology.org/2021.acl-long.551.pdf
- https://github.com/UBC-NLP/LMBERT
- https://github.com/UBC-NLP/marbert
- https://doi.org/10.14288/SOCKEYE
- https://www.tensorflow.org/tfrc