Description
BERT(Bidirectional Encoder Representations from Transformers)是一种预训练的自然语言处理模型,由Google在2018年提出。它基于Transformer架构,并通过在大规模文本语料上进行无监督训练来学习通用的语言表示。
BERT的主要特点是双向性(Bidirectional),它能够同时利用上下文信息来理解单词的含义。传统的语言模型(如GPT)只能根据前面的单词来预测下一个单词,而BERT可以同时考虑前面和后面的单词,从而更好地捕捉上下文信息。
BERT的训练过程包括两个阶段:预训练和微调。在预训练阶段,BERT使用大规模的无标签文本数据来学习语言表示。它通过掩码语言建模(Masked Language Modeling)和下一句预测(Next Sentence Prediction)任务来训练模型。在掩码语言建模任务中,BERT会随机掩盖输入句子中的一些单词,然后预测这些被掩盖的单词。在下一句预测任务中,BERT会判断两个句子是否是连续的。
在微调阶段,BERT的预训练模型会在特定的下游任务上进行微调,例如文本分类、命名实体识别、问答等。通过微调,BERT可以根据具体任务的标注数据来调整模型参数,使其更好地适应特定任务的要求。
BERT在自然语言处理领域取得了重大的突破,它在多项基准测试中取得了领先的性能。由于BERT能够学习到通用的语言表示,它可以应用于各种文本处理任务,包括文本分类、命名实体识别、情感分析、机器翻译等。
我们使用BERT的向量化功能,将各种dockerhub上的description转化为向量并进行bi-Kmeans聚类分析。
Resources
- BERT-as-service git repo: https://github.com/hansonrobotics/bert-as-service
- https://cloud.tencent.com/developer/article/1886981
- https://zhuanlan.zhihu.com/p/50582974
Environments
- Windows11 Professional x64
- Python 3.10(Global)
Reqiurements
- Python 3.6 or 3.7
- Tensorflow==1.15.0
Installations
Install & Configure Venv
To create an isolated and clean environment, we use acconda to create venv.
- Download acconda at https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive
- Install
- Add installation path to
PATH
:setx PATH "%PATH%;C:\path\to\anaconda"
- Setup a venv:
conda create -n venv python=3.7
- Use tsinghua mirror to acclerate downloading:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn
- Activate venv:
activate venv
- Test:
python --version
andpip --version
Install Dependencies
- Config pip mirror:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
- Install Tensorflow==1.15.0:
pip install tensorflow==1.15.0
- python安装模块的时候出现了不能连接的问题:after connection broken by ‘ProxyError’: 关掉梯子
- 踩坑:python - TypeError: Descriptors cannot not be created directly - Stack Overflow
- Install service:
pip install bert-serving-client bert-serving-server
- Download pre-trained model at https://github.com/google-research/bert
- Activate server:
bert-serving-start -model_dir v:\Dev\metadata-analysis-framework\BERT_model -num_worker=1
Test
1 | from bert_serving.client import BertClient #导入客户端 |