← Open Source
VinAIResearch

PhoBERT

PhoBERT: Pre-trained language models for Vietnamese (EMNLP-2020 Findings).

ModelsLanguage-specific models
Open on GitHub
Momentum
+0stars in 24 hours0.0%
809
Stars
113
Forks
+0
This week
1
Contributors
Created 2020-03-03 · Updated 2026-10-04 · #13598 today
Top developers

VinAIResearch/PhoBERT is ranked 13,598 with 809 stars.

Same-category comparison

VinAIResearch/PhoBERT is ranked 13,598 among these 8 peers; OpenTexture/Paint3D is ranked 13,597.

Same-category comparison
NameRankMetrics
ByteDance-Seed/Seed-Thinking-v1.513,563
Stars:
812
Forks:
19
openseg-group/OCNet.pytorch13,574
Language:
Python
Stars:
812
Forks:
125
Description:
Please choose the openseg.pytorch project for the updated code that achieve SOTA on 6 benchmarks.
HazyResearch/hyena-dna13,587
Language:
Assembly
Stars:
810
Forks:
112
Description:
Official implementation for HyenaDNA, a long-range genomic foundation model built with Hyena.
OpenTexture/Paint3D13,597
Language:
Python
Stars:
809
Forks:
44
Description:
[CVPR 2024] Paint3D: Paint Anything 3D with Lighting-Less Texture Diffusion Models, a no lighting baked texture generative model.
OrionStarAI/Orion13,608
Language:
Python
Stars:
808
Forks:
60
Description:
Orion-14B is a family of models includes a 14B foundation LLM, and a series of models: a chat model, a long context model, a quantized model, a RAG fine-tuned model, and an Agent fine-tuned model.
facebookresearch/metamotivo13,667
Language:
Python
Stars:
802
Forks:
77
Description:
The first behavioral foundation model to control a virtual physics-based humanoid agent for a wide range of whole-body tasks.
ChenRocks/UNITER13,680
Language:
Python
Stars:
801
Forks:
111
Description:
Research code for ECCV 2020 paper "UNITER: UNiversal Image-TExt Representation Learning".
facebookresearch/GENRE13,687
Language:
Python
Stars:
800
Forks:
99
Description:
Autoregressive Entity Retrieval.
Key parameters and specifications
Key parameters and specifications
ParameterValue
CategoryModels
SubcategoryLanguage-specific models
KeywordsVietnamese
Stars809
Forks113
Contributors1
Created date2020-03-03
Updated date2026-10-04
Stars in 1 day0
Stars in 7 days0
Rank13,598
Previous rank13,491
Rank change-107
7-day stars rank14,021
Previous 7-day stars rank14,039
7-day stars rank change18
Total stars rank13,223
Previous total stars rank13,202
Total stars rank change-21
CountryVietnam
README summary

Notes PhoBERT: Pre-trained language models for Vietnamese Pre-trained PhoBERT models are the state-of-the-art language models for Vietnamese (Pho, i. "Phở", is a popular food in Vietnam): Two PhoBERT versions of "base" and "large" are the first public large-scale monolingual language models pre-trained for Vietnamese. PhoBERT pre-training approach is based on RoBERTa which optimizes the BERT pre-training procedure for more robust performance. PhoBERT outperforms previous monolingual and multilingual approaches, obtaining new state

-of-the-art performances on four downstream Vietnamese NLP tasks of Part-of-speech tagging, Dependency parsing, Named-entity recognition and Natural language inference. The general architecture and experimental results of PhoBERT can be found in our paper: **Please CITE** our paper when PhoBERT is used to help produce published results or is incorporated into other software. _Users may also want to use BamiBERT, our new BERT-based pretrained language model for Vietnamese that addresses key limitations of PhoBERT. Trained

from scratch on a 129 GB corpus of general-domain Vietnamese text for 20 epochs, BamiBERT supports an extended context length of up to 2,048 tokens and operates directly on raw input, eliminating the need for external word segmentation. Across eight Vietnamese benchmarks, it achieves the best performance on 11 of 15 metrics and the second-best performance on three others, setting a new state of the art among "base"-sized Vietnamese encoders and demonstrating strong cross-domain generalization

. _ Using PhoBERT with Installation Install with pip: , or install from source. Note that we merged a slow tokenizer for PhoBERT into the main branch. The process of merging a fast tokenizer for PhoBERT is in the discussion, as mentioned in this pull request. If users would like to utilize the fast tokenizer, the users might install as follows: Install with pip: Pre-trained models Model | #params | Arch. without word segmentation, a word segmenter must be applied to produce word-segmented

texts before feeding to PhoBERT. As PhoBERT employed the RDRSegmenter from VnCoreNLP to pre-process the pre-training data (including Vietnamese tone normalization and word and sentence segmentation), it is recommended to also use the same word segmenter for PhoBERT-based downstream applications w.

Frequently asked questions

How many stars and forks are recorded?

VinAIResearch/PhoBERT has 809 stars and 113 forks.

What is the repository rank?

VinAIResearch/PhoBERT is ranked 13,598.

Which repository is closest in rank?

VinAIResearch/PhoBERT is compared with OpenTexture/Paint3D, ranked 13,597 with 809 stars.

README

Table of contents

  1. Introduction
  2. Using PhoBERT with transformers
  3. Using PhoBERT with fairseq
  4. Notes

PhoBERT: Pre-trained language models for Vietnamese

Pre-trained PhoBERT models are the state-of-the-art language models for Vietnamese (Pho, i.e. "Phở", is a popular food in Vietnam):

  • Two PhoBERT versions of "base" and "large" are the first public large-scale monolingual language models pre-trained for Vietnamese. PhoBERT pre-training approach is based on RoBERTa which optimizes the BERT pre-training procedure for more robust performance.
  • PhoBERT outperforms previous monolingual and multilingual approaches, obtaining new state-of-the-art performances on four downstream Vietnamese NLP tasks of Part-of-speech tagging, Dependency parsing, Named-entity recognition and Natural language inference.

The general architecture and experimental results of PhoBERT can be found in our paper:

@inproceedings{phobert,
title     = {{PhoBERT: Pre-trained language models for Vietnamese}},
author    = {Dat Quoc Nguyen and Anh Tuan Nguyen},
booktitle = {Findings of the Association for Computational Linguistics: EMNLP 2020},
year      = {2020},
pages     = {1037--1042}
}

Please CITE our paper when PhoBERT is used to help produce published results or is incorporated into other software.

Users may also want to use BamiBERT, our new BERT-based pretrained language model for Vietnamese that addresses key limitations of PhoBERT. Trained from scratch on a 129 GB corpus of general-domain Vietnamese text for 20 epochs, BamiBERT supports an extended context length of up to 2,048 tokens and operates directly on raw input, eliminating the need for external word segmentation. Across eight Vietnamese benchmarks, it achieves the best performance on 11 of 15 metrics and the second-best performance on three others, setting a new state of the art among "base"-sized Vietnamese encoders and demonstrating strong cross-domain generalization.

Using PhoBERT with transformers

Installation

Note that we merged a slow tokenizer for PhoBERT into the main transformers branch. The process of merging a fast tokenizer for PhoBERT is in the discussion, as mentioned in this pull request. If users would like to utilize the fast tokenizer, the users might install transformers as follows:

git clone --single-branch --branch fast_tokenizers_BARTpho_PhoBERT_BERTweet https://github.com/datquocnguyen/transformers.git
cd transformers
pip3 install -e .
  • Install tokenizers with pip: pip3 install tokenizers

Pre-trained models

Model #params Arch. Max length Pre-training data License
vinai/phobert-base-v2 135M base 256 20GB of Wikipedia and News texts + 120GB of texts from OSCAR-2301 GNU Affero GPL v3
vinai/phobert-base 135M base 256 20GB of Wikipedia and News texts MIT License
vinai/phobert-large 370M large 256 20GB of Wikipedia and News texts MIT License

Example usage

import torch
from transformers import AutoModel, AutoTokenizer

phobert = AutoModel.from_pretrained("vinai/phobert-base")
tokenizer = AutoTokenizer.from_pretrained("vinai/phobert-base")

# INPUT TEXT MUST BE ALREADY WORD-SEGMENTED!
sentence = 'Chúng_tôi là những nghiên_cứu_viên .'  

input_ids = torch.tensor([tokenizer.encode(sentence)])

with torch.no_grad():
    features = phobert(input_ids)  # Models outputs are now tuples

## With TensorFlow 2.0+:
# from transformers import TFAutoModel
# phobert = TFAutoModel.from_pretrained("vinai/phobert-base")

Using PhoBERT with fairseq

Please see details at HERE!

Notes

In case the input texts are raw, i.e. without word segmentation, a word segmenter must be applied to produce word-segmented texts before feeding to PhoBERT. As PhoBERT employed the RDRSegmenter from VnCoreNLP to pre-process the pre-training data (including Vietnamese tone normalization and word and sentence segmentation), it is recommended to also use the same word segmenter for PhoBERT-based downstream applications w.r.t. the input raw texts.

Installation

pip install py_vncorenlp

Example usage

import py_vncorenlp

# Automatically download VnCoreNLP components from the original repository
# and save them in some local machine folder
py_vncorenlp.download_model(save_dir='/absolute/path/to/vncorenlp')

# Load the word and sentence segmentation component
rdrsegmenter = py_vncorenlp.VnCoreNLP(annotators=["wseg"], save_dir='/absolute/path/to/vncorenlp')

text = "Ông Nguyễn Khắc Chúc  đang làm việc tại Đại học Quốc gia Hà Nội. Bà Lan, vợ ông Chúc, cũng làm việc tại đây."

output = rdrsegmenter.word_segment(text)

print(output)
# ['Ông Nguyễn_Khắc_Chúc đang làm_việc tại Đại_học Quốc_gia Hà_Nội .', 'Bà Lan , vợ ông Chúc , cũng làm_việc tại đây .']
Nearby in the ranking
Similar items