Views
No views yet
hfl/chinese-lert-small预训练模型开发了一个用于中文语义检索的密集向量检索模型。与传统的语义文本相似度(STS)模型不同,本模型在标准BERT架构基础上引入了自适应权重池化机制,通过多头自注意力网络和MLP权重生成器来动态计算每个token的重要性权重,从而生成更具表达力的句子向量表示。1training:
2 backbone_lr: "5e-6"
3 new_modules_lr: "3e-5"
4 backbone_weight_decay: "1.2e-2"
5 new_modules_weight_decay: "2.5e-2"
6 max_length: 512
7 batch_size: 20
8 num_epochs: 18
9 gradient_accumulation_steps: 8
10 max_grad_norm: 0.5
11scheduler:
12 type: "cosine"
13 warmup_ratio: 0.11training:
2 batch_size: 20
3 max_length: 256
4 num_steps: 800
5 gradient_accumulation_steps: 8
6 max_grad_norm: 1.0
7 learning_rate: 5e-6
8scheduler:
9 type: "cosine"
10 warmup_ratio: 0.11from transformers import AutoTokenizer, AutoModel
2import torch
3import torch.nn.functional as F
4
5model = AutoModel.from_pretrained("Tungsten123/denseretrieval-chinese-lert-small", trust_remote_code=True)
6tokenizer = AutoTokenizer.from_pretrained("Tungsten123/denseretrieval-chinese-lert-small")
7
8sentences = [
9 "机器学习中的深度学习算法有哪些优势?",
10 "深度学习是机器学习的一个重要分支,它通过构建多层神经网络来模拟人脑的学习过程。相比传统的机器学习方法,深度学习具有强大的特征提取能力,能够自动学习数据中的复杂模式和抽象表示。在图像识别、自然语言处理、语音识别等领域,深度学习算法展现出了卓越的性能,特别是在处理大规模数据时,其优势更加明显。深度学习模型可以通过反向传播算法进行端到端的训练,无需人工设计特征,大大减少了特征工程的工作量。"
11]
12
13encoded = tokenizer(sentences, padding=True, truncation=True, max_length=512, return_tensors="pt")
14with torch.no_grad():
15 outputs = model(**encoded)
16 embeddings = F.normalize(outputs.pooled_output)
17 similarity = F.cosine_similarity(embeddings[0:1], embeddings[1:2], dim=1)
18 print(f"相似度: {similarity.item():.4f}")1import numpy as np
2import onnxruntime as ort
3from transformers import AutoTokenizer
4
5session = ort.InferenceSession("quantization/model.onnx")
6tokenizer = AutoTokenizer.from_pretrained("Tungsten123/denseretrieval-chinese-lert-small")
7
8sentences = [
9 "人工智能技术在医疗领域的应用前景如何?",
10 "人工智能在医疗健康领域展现出巨大的应用潜力和变革性影响。通过深度学习和计算机视觉技术,AI系统能够协助医生进行医学影像诊断,包括X光片、CT扫描、MRI等影像的自动分析和病变识别。在药物研发方面,人工智能可以加速新药发现过程,通过分子建模和虚拟筛选大幅缩短研发周期。此外,AI还能够实现个性化治疗方案推荐,根据患者的基因信息、病史和症状特征制定最优治疗策略。智能诊断系统、医疗机器人、远程医疗监护等应用正在逐步改变传统医疗服务模式。"
11]
12
13encoded = tokenizer(sentences, padding=True, truncation=True, max_length=512, return_tensors="np")
14inputs = {"input_ids": encoded["input_ids"].astype(np.int64), "attention_mask": encoded["attention_mask"].astype(np.int64)}
15outputs = session.run(None, inputs)
16embeddings = outputs[0]
17embeddings = embeddings / np.linalg.norm(embeddings, axis=1, keepdims=True)
18similarity = np.dot(embeddings[0], embeddings[1])
19print(f"相似度: {similarity:.4f}")