zoukankan      html  css  js  c++  java
  • Bert源码解读(二)

    # Bert源码解读(二)

    ## 一、速读Bert

    ![img](file:///C:UsersweixqAppDataRoamingTencentUsers2426149954TIMWinTempRichOle}VJ[3VI30I26F{P_KX~~H{F.png)

    Bert预训练部分是在做自注意力。

    分类器微调部分就是一层神经网络。

    分离矩阵得到起始值和终止值得概率矩阵。

    **用run_classifier.py,整个50万样本量,微调阶段训练时间约为半个小时。**

    ## 二、注意的要点

    1.官网源码中给出的是TPU estimator接口,需要改成普通estimator接口方案。

    参考博客:http://shzhangji.com/cnblogs/2018/05/14/serve-tensorflow-estimator-with-savedmodel/

    2.**Out of Memory问题**

    调节两个参数**`max_seq_length`和`train_batch_size`**,分别是最长句子的长度和一次批处理的大小,训练的观察 GPU显存的占用情况 。

    ## 三、Bert as service

    Bert的预训练模型部分可以部署。源码中的亮点有提供了图优化方法,包括的过程有:动态图计算--图冻结、剪枝和量化。还有zeromq进行异步并发请求,进行服务化部署。

    ## 四、总结

    Bert的泛化能力很强。我们可以加强学习。

    **较低成本实践Bert的路径:**

    第一步:有GPU,一般是28GB左右。

    第二步:确定一个数据集和确定自己的训练任务。

    第三步:修改代码,调参,验证效果。

    参考博客:https://zhuanlan.zhihu.com/p/58471554

     
    雪儿言
  • 相关阅读:
    Java ClassLoader
    Java Hashcode
    Java 装箱 拆箱
    Java 深拷贝,浅拷贝
    Java IO流
    JVM内存模型
    C语言中的__FILE__、__LINE__和#line
    OpenMP和MPI的区别
    visual studio代码备份精减
    MVVM设计模式在WPF中的应用
  • 原文地址:https://www.cnblogs.com/weixq351/p/14920164.html
Copyright © 2011-2022 走看看