bert学习

Bert中文提取词向量GPU

参考网址:https://blog.csdn.net/jufengada9/article/details/90229931

1、环境安装

    安装conda

     1) 下载

         https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

      2) 安装

          $ sh Miniconda3-latest-Linux-x86_64.sh 

2、 配置python3.6虚拟环境

      1) conda create -n python36 python=3.6

      2) conda env list

参考命令:

查询操作

conda list 查看安装包

conda env list 查看虚拟环境

conda updata conda 检查更新当前conda

环境操作

conda create -n python27 python=2.7 创建名称为Python27的python2.7环境

source activate envName 切换环境linux

conda activate envName 切换环境windows

python --version 查看当前python版本

conda deactivate 关闭环境windows

source deativate 关闭环境linux

conda remove -n envName 删除环境

包操作

conda install -n envName [package] 安装包

conda remove --name envName [package] 删除包

 

3、 安装Tensorflow 1.10

     1) 启动python36

      $source activate python36

      2) 更改pip源

      $ vim ~/.pip/pip.conf

        [global]

        index-url = https://pypi.tuna.tsinghua.edu.cn/simple

    3) 安装tf-1.13

      $pip install tensorflow-gpu==1.12.0

4、安装bert server and client

      pip install bert-serving-server

      pip install bert-serving-client

 5、启动bert服务

        下载模型:https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip

         启动服务:bert-serving-start -model_dir ./chinese_L-12_H-768_A-12 -num_worker 1/2/4

         注意:注意port和port_out的参数

 6、获取词向量       

启动BERT之后,在服务器重新打开一个窗口,进入要运行的文件夹,启动python

将肖涵博士bert-as-server包里的client的bert_serving放入文件夹

肖涵博士bert-as-server的链接:https://github.com/hanxiao/bert-as-service
bert学习_第1张图片

  

 Bert模型预训练

参考:https://daiwk.github.io/posts/nlp-bert-code.html

1、创建预训练数据

python create_pretraining_data.py \
  --input_file=./sample_text.txt \
  --output_file=/tmp/tf_examples.tfrecord \
  --vocab_file=$BERT_BASE_DIR/vocab.txt \
  --do_lower_case=True \
  --max_seq_length=64\
  --max_predictions_per_seq=20 \
  --masked_lm_prob=0.15 \
  --random_seed=12345 \
  --dupe_factor=5

2、预训练

python run_pretraining.py \
  --input_file=/tmp/tf_examples.tfrecord \
  --output_dir=/tmp/pretraining_output \
  --do_train=True \
  --do_eval=True \
  --bert_config_file=$BERT_BASE_DIR/bert_config.json \
  --init_checkpoint=$BERT_BASE_DIR/bert_model.ckpt \
  --train_batch_size=16 \
  --max_seq_length=64 \
  --max_predictions_per_seq=20 \
  --num_train_steps=20 \
  --num_warmup_steps=10 \
  --learning_rate=2e-5

Bert模型训练

参考:https://daiwk.github.io/posts/nlp-bert-code.html

           https://blog.csdn.net/weixin_43927437/article/details/85162533

1、模型训练

export BERT_BASE_DIR=/path/to/bert/uncased_L-12_H-768_A-12
export GLUE_DIR=/path/to/glue

python run_classifier.py \
  --task_name=MRPC \
  --do_train=true \
  --do_eval=true \
  --data_dir=$GLUE_DIR/MRPC \
  --vocab_file=$BERT_BASE_DIR/vocab.txt \
  --bert_config_file=$BERT_BASE_DIR/bert_config.json \
  --init_checkpoint=$BERT_BASE_DIR/bert_model.ckpt \
  --max_seq_length=64 \
  --train_batch_size=16 \
  --learning_rate=2e-5 \
  --num_train_epochs=3.0 \
  --output_dir=/tmp/mrpc_output/

2、模型预测

export BERT_BASE_DIR=/path/to/bert/uncased_L-12_H-768_A-12
export GLUE_DIR=/path/to/glue
export TRAINED_CLASSIFIER=/path/to/fine/tuned/classifier

python run_classifier.py \
  --task_name=MRPC \
  --do_predict=true \
  --data_dir=$GLUE_DIR/MRPC \
  --vocab_file=$BERT_BASE_DIR/vocab.txt \
  --bert_config_file=$BERT_BASE_DIR/bert_config.json \
  --init_checkpoint=$TRAINED_CLASSIFIER \
  --max_seq_length=64 \
  --output_dir=/tmp/mrpc_output/

Bert抽取特征向量

参考:https://daiwk.github.io/posts/nlp-bert-code.html

export BERT_BASE_DIR=/path/to/bert/uncased_L-12_H-768_A-12
export GLUE_DIR=/path/to/glue
export TRAINED_CLASSIFIER=/path/to/fine/tuned/classifier

python extract_features.py \
  --input_file=input.txt \
  --output_file=/tmp/output.json \
  --vocab_file=$BERT_BASE_DIR/vocab.txt \
  --bert_config_file=$BERT_BASE_DIR/bert_config.json \
  --init_checkpoint=$BERT_BASE_DIR/bert_model.ckpt \
  --layers=-1,-2,-3,-4 \
  --max_seq_length=128 \
  --batch_size=8

 

 

 

 

你可能感兴趣的:(算法)