BERT, or Bidirectional Encoder Representations from Transformers, is a new method of pre-training language representations which obtains state-of-the-art results on a wide array of Natural Language Processing (NLP) tasks. Our academic paper which describes BERT in detail and provides full results on a number of tasks can be found here: arxiv: BERT. Ref: bert#pre-trained-models URL to code for this post: GitHub: bert-as-service STEP 1: Installation of BERT as a server: pip install bert-serving-server # server pip install bert-serving-client # client, independent of `bert-serving-server` STEP 2: Download a PRE-Trained BERT model. The one we have using is "BERT-Base, Uncased 12-layer, 768-hidden, 12-heads, 110M parameters": storage.googleapis.com: uncased_L-12_H-768_A-12.zip STEP 3: After installation of the server, start it in Python shell as follows: $ bert-serving-start -model_dir D:\workspace\Jupyter\exp_42_bert\uncased_L-12_H-768_A-12 -num_worker=1 LOGS: (env_for_python_36) C:\Users\ashish>bert-serving-start -model_dir D:\workspace\Jupyter\exp_42_bert\uncased_L-12_H-768_A-12 -num_worker=1 usage: C:\Users\ashish\AppData\Local\Continuum\anaconda3\envs\env_for_python_36\Scripts\bert-serving-start -model_dir D:\workspace\Jupyter\exp_42_bert\uncased_L-12_H-768_A-12 -num_worker=1 ARG VALUE __________________________________________________ ckpt_name = bert_model.ckpt config_name = bert_config.json cors = * cpu = False device_map = [] do_lower_case = True fixed_embed_length = False fp16 = False gpu_memory_fraction = 0.5 graph_tmp_dir = None http_max_connect = 10 http_port = None mask_cls_sep = False max_batch_size = 256 max_seq_len = 25 model_dir = D:\workspace\Jupyter\exp_42_bert\uncased_L-12_H-768_A-12 no_position_embeddings = False no_special_token = False num_worker = 1 pooling_layer = [-2] pooling_strategy = REDUCE_MEAN port = 5555 port_out = 5556 prefetch_size = 10 priority_batch_size = 16 show_tokens_to_client = False tuned_model_dir = None verbose = False xla = False I:[35mVENTILATOR[0m:freeze, optimize and export graph, could take a while... I:[36mGRAPHOPT[0m:model config: D:\workspace\Jupyter\exp_42_bert\uncased_L-12_H-768_A-12\bert_config.json I:[36mGRAPHOPT[0m:checkpoint: D:\workspace\Jupyter\exp_42_bert\uncased_L-12_H-768_A-12\bert_model.ckpt I:[36mGRAPHOPT[0m:build graph... I:[36mGRAPHOPT[0m:load parameters from checkpoint... I:[36mGRAPHOPT[0m:optimize... I:[36mGRAPHOPT[0m:freeze... I:[36mGRAPHOPT[0m:write graph to a tmp file: C:\Users\ashish\AppData\Local\Temp\tmpy8lsjd5y I:[35mVENTILATOR[0m:optimized graph is stored at: C:\Users\ashish\AppData\Local\Temp\tmpy8lsjd5y I:[35mVENTILATOR[0m:bind all sockets I:[35mVENTILATOR[0m:open 8 ventilator-worker sockets I:[35mVENTILATOR[0m:start the sink I:[32mSINK[0m:ready I:[35mVENTILATOR[0m:get devices W:[35mVENTILATOR[0m:no GPU available, fall back to CPU I:[35mVENTILATOR[0m:device map: worker 0 -> cpu I:[33mWORKER-0[0m:use device cpu, load graph from C:\Users\ashish\AppData\Local\Temp\tmpy8lsjd5y I:[33mWORKER-0[0m:ready and listening! I:[35mVENTILATOR[0m:all set, ready to serve request! STEP 4: Then to use the client in a different console: from bert_serving.client import BertClient bc = BertClient() bc.encode(['First do it', 'then do it right', 'then do it better']) Logs: (env_for_python_36) C:\Users\ashish>python Python 3.6.8 |Anaconda, Inc.| (default, Feb 21 2019, 18:30:04) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> from bert_serving.client import BertClient >>> bc = BertClient() >>> bc.encode(['First do it', 'then do it right', 'then do it better']) array([[ 0.13186511, 0.32404116, -0.8270434 , ..., -0.37119645, -0.39250118, -0.3172187 ], [ 0.24873514, -0.12334443, -0.38933924, ..., -0.4475621 , -0.559136 , -0.1134515 ], [ 0.28627324, -0.18580206, -0.30906808, ..., -0.2959365 , -0.39310536, 0.07640218]], dtype=float32) >>> Dated: 19-Dec-2019
Sunday, October 4, 2020
Getting started with word embedding technique 'BERT'
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment