PaECTER: 深度学习驱动的专利相似度模型安装与使用教程
paecter 项目地址: https://gitcode.com/mirrors/mpi-inno-comp/paecter
随着人工智能和深度学习技术的不断发展,专利分析领域也在逐步引入先进的模型和方法。PaECTER(Patent Embeddings using Citation-informed TransformERs)模型作为一款基于专利文本的深度学习模型,正逐渐受到广泛关注。本文将详细介绍PaECTER模型的安装和使用方法,帮助读者更好地理解和应用这款先进的专利分析工具。
PaECTER模型简介
PaECTER是一款用于专利相似度计算的模型,它基于Google的BERT for Patents模型进行构建,能够从专利文本中生成1024维的密集向量嵌入。这些向量嵌入能够捕捉到专利文本的语义特征,从而为各种下游任务,如语义搜索、先前艺术搜索、聚类和专利景观分析等,提供了强有力的支持。
安装PaECTER模型
在使用PaECTER模型之前,您需要安装以下必备软件和依赖项:
- Python 3.6或更高版本
- PyTorch库
- Transformers库
- Sentence-Transformers库(可选)
安装Sentence-Transformers库的命令如下:
pip install -U sentence-transformers
PaECTER模型的使用
使用Sentence-Transformers库
如果您已经安装了Sentence-Transformers库,那么使用PaECTER模型将变得非常简单。以下是一个使用PaECTER模型的示例代码:
from sentence_transformers import SentenceTransformer
# 加载模型
model = SentenceTransformer('mpi-inno-comp/paecter')
# 定义待转换的句子
sentences = ["This is an example sentence", "Each sentence is converted"]
# 获取句子嵌入
embeddings = model.encode(sentences)
# 打印嵌入向量
print(embeddings)
使用HuggingFace Transformers库
如果您没有安装Sentence-Transformers库,您也可以直接使用HuggingFace Transformers库来使用PaECTER模型。以下是一个使用HuggingFace Transformers库的示例代码:
from transformers import AutoTokenizer, AutoModel
import torch
# 定义句子平均池化函数
def mean_pooling(model_output, attention_mask):
token_embeddings = model_output[0] # 获取所有token嵌入
input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)
# 定义待转换的句子
sentences = ['This is an example sentence', 'Each sentence is converted']
# 加载模型和分词器
tokenizer = AutoTokenizer.from_pretrained('mpi-inno-comp/paecter')
model = AutoModel.from_pretrained('mpi-inno-comp/paecter')
# 分词
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt', max_length=512)
# 获取token嵌入
with torch.no_grad():
model_output = model(**encoded_input)
# 执行句子平均池化
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])
# 打印嵌入向量
print("Sentence embeddings:")
print(sentence_embeddings)
PaECTER模型的评估结果
PaECTER模型的评估结果可以在我们的论文PaECTER: Patent-level Representation Learning using Citation-informed Transformers中找到。
PaECTER模型的训练
PaECTER模型使用了以下参数进行训练:
- DataLoader参数:
torch.utils.data.dataloader.DataLoader
,长度为318750,参数包括batch_size
、sampler
和batch_sampler
。 - 损失函数参数:
sentence_transformers.losses.CustomTripletLoss.CustomTripletLoss
,参数包括distance_metric
和triplet_margin
。 - fit()方法参数:包括
epochs
、evaluation_steps
、evaluator
、max_grad_norm
、optimizer_class
、optimizer_params
、scheduler
、steps_per_epoch
和warmup_steps
。
PaECTER模型的完整架构
PaECTER模型的完整架构如下:
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel
(1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False})
)
引用与作者
如果您在论文或项目中使用了PaECTER模型,请引用以下文献:
@misc{
paecter 项目地址: https://gitcode.com/mirrors/mpi-inno-comp/paecter
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考