PAI提供多种已经训练好的自然语言处理类模型供您使用,例如BERT文本向量化模型。

自然语言处理NLP(Natural Language Processing)是人工智能和语言学领域的分支学科,能够挖掘自然语言文本蕴含的信息和知识。常见的应用包括:
  • 文本分类,适用于新闻标签打标、情感分析、文本内容反垃圾及商品评价分类等场景。
  • 文本匹配,适用于问答匹配、句子相似度匹配、自然语言推理及对话检索等场景。
  • 序列标注,适用于命名实体识别NER及情感词抽取等场景。
  • 特征提取,提取的文本特征可以在文本领域或结合其他领域(例如计算机视觉)进行后续操作。
PAI-ModelHub提供以上服务的部署流程,并提供BERT特征提取模型供您使用。

ModelHub登录入口

您可以通过如下方法进入ModelHub:
  1. 登录PAI控制台
  2. 在左侧导航栏,单击模型管理及优化
  3. PAI模型管理页面,单击ModelHub页签。

BERT文本向量化模型

  • 模型介绍
    除了对BERT预训练完成的模型进行Finetune外,BERT生成的向量本身也很有价值。例如,将BERT作为一个特征提取器,输入一个文本序列,输出一个向量序列。还可以先对CLS输出的向量进行Dense,再将该向量作为整个句子的句向量。特征提取当用户给定一个句子S,该组件会自动将其分词为Subtoken形式S = [CLS, tok1, tok2, ..., tokN, SEP],并给出以下三种类型结果:
    • pool_output:对句子进行编码后的向量,即图中的C'
    • first_token_output:即图中的C
    • all_hidden_outputs:即图中的[C, T1, T2, ..., TN, TSEP]
  • 输入格式
    输入数据为JSON格式字符串,包含如下字段:
    • id:文本ID。
    • first_sequence:对应的value为第一个文本字符串。
    • second_sequence:对应的value为第二个文本字符串(可以为空)。
    • sequence_length:对应文本的截断长度,最大为512。
    {
        "id": "该文本的ID",
        "first_sequence": "第一个文本字符串",
        "second_sequence": "第二个文本字符串(可以为空)",
        "sequence_length": 128
    }
  • 输出格式
    输出数据为JSON格式字符串,包含的字段如下表所示。
    字段 描述 Shape Type
    pool_output 英文逗号(,)分隔的768维向量,表示对句子进行编码后的向量,即图中的 C'。 [] STRING
    first_token_output 英文逗号(,)分隔的768维向量,即图中的C。 [] STRING
    all_hidden_outputs 768*sequence_length维向量,其中向量由英文逗号(,)分隔,序列由英文分号(;)分隔,即图中的[C, T1, T2, ..., TN, TSEP] [] STRING
  • 测试数据
    // 输入。
    {
        "id": "1667",
        "first_sequence": "双十一花呗提额在哪",
        "second_sequence": "",
        "sequence_length": 128
    }
    
    // 输出。
    {
        "id": "1667",
        "pool_output": "0.999340713024,...,0.836870908737",
        "first_token_output": "0.789340713024,...,0.536870908737",
        "all_hidden_outputs": "0.999340713024,...,0.836870908737;...;0.899340713024,...,0.936870908737"
    }