模型:

VoVanPhuc/sup-SimCSE-VietNamese-phobert-base

英文
目录
  • 介绍
  • 预训练模型
  • 使用SimeCSE_Vietnamese和sentences-transformers
    • 安装
    • 示例用法
  • 使用SimeCSE_Vietnamese和transformers
    • 安装
    • 示例用法
  • SimeCSE_Vietnamese: Vietnamese句子嵌入的简单对比学习

    预训练的SimeCSE_Vietnamese模型是Vietnamese句子嵌入的最新技术:

    • SimeCSE_Vietnamese预训练方法基于 SimCSE ,优化SimeCSE_Vietnamese预训练过程以获得更稳健的性能。
    • SimeCSE_Vietnamese使用预训练语言模型 (例如 PhoBert ) 对输入句子进行编码。
    • SimeCSE_Vietnamese可同时处理无标签和有标签的数据。

    预训练模型

    Model #params Arch.
    1237321 135M base
    1238321 135M base

    使用SimeCSE_Vietnamese和sentences-transformers

    安装

    • 安装sentence-transformers:

      • pip install -U sentence-transformers
    • 安装pyvi用于分词:

      • pip install pyvi

    示例用法

    from sentence_transformers import SentenceTransformer
    from pyvi.ViTokenizer import tokenize
    
    model = SentenceTransformer('VoVanPhuc/sup-SimCSE-VietNamese-phobert-base')
    
    sentences = ['Kẻ đánh bom đinh tồi tệ nhất nước Anh.',
              'Nghệ sĩ làm thiện nguyện - minh bạch là việc cấp thiết.',
              'Bắc Giang tăng khả năng điều trị và xét nghiệm.',
              'HLV futsal Việt Nam tiết lộ lý do hạ Lebanon.',
              'việc quan trọng khi kêu gọi quyên góp từ thiện là phải minh bạch, giải ngân kịp thời.',
              '20% bệnh nhân Covid-19 có thể nhanh chóng trở nặng.',
              'Thái Lan thua giao hữu trước vòng loại World Cup.',
              'Cựu tuyển thủ Nguyễn Bảo Quân: May mắn ủng hộ futsal Việt Nam',
              'Chủ ki-ốt bị đâm chết trong chợ đầu mối lớn nhất Thanh Hoá.',
              'Bắn chết người trong cuộc rượt đuổi trên sông.'
              ]
    
    sentences = [tokenize(sentence) for sentence in sentences]
    embeddings = model.encode(sentences)
    

    使用SimeCSE_Vietnamese和transformers

    安装

    • 安装transformers:

      • pip install -U transformers
    • 安装pyvi用于分词:

      • pip install pyvi

    示例用法

    import torch
    from transformers import AutoModel, AutoTokenizer
    from pyvi.ViTokenizer import tokenize
    
    PhobertTokenizer = AutoTokenizer.from_pretrained("VoVanPhuc/sup-SimCSE-VietNamese-phobert-base")
    model = AutoModel.from_pretrained("VoVanPhuc/sup-SimCSE-VietNamese-phobert-base")
    
    sentences = ['Kẻ đánh bom đinh tồi tệ nhất nước Anh.',
              'Nghệ sĩ làm thiện nguyện - minh bạch là việc cấp thiết.',
              'Bắc Giang tăng khả năng điều trị và xét nghiệm.',
              'HLV futsal Việt Nam tiết lộ lý do hạ Lebanon.',
              'việc quan trọng khi kêu gọi quyên góp từ thiện là phải minh bạch, giải ngân kịp thời.',
              '20% bệnh nhân Covid-19 có thể nhanh chóng trở nặng.',
              'Thái Lan thua giao hữu trước vòng loại World Cup.',
              'Cựu tuyển thủ Nguyễn Bảo Quân: May mắn ủng hộ futsal Việt Nam',
              'Chủ ki-ốt bị đâm chết trong chợ đầu mối lớn nhất Thanh Hoá.',
              'Bắn chết người trong cuộc rượt đuổi trên sông.'
              ]
    
    sentences = [tokenize(sentence) for sentence in sentences]
    
    inputs = PhobertTokenizer(sentences, padding=True, truncation=True, return_tensors="pt")
    
    with torch.no_grad():
        embeddings = model(**inputs, output_hidden_states=True, return_dict=True).pooler_output
    

    快速入门

    Open In Colab

    引用

    @article{gao2021simcse,
       title={{SimCSE}: Simple Contrastive Learning of Sentence Embeddings},
       author={Gao, Tianyu and Yao, Xingcheng and Chen, Danqi},
       journal={arXiv preprint arXiv:2104.08821},
       year={2021}
    }
    
    @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}
    }