ONNX 模型库
返回模型

说明文档

Lettuce-512D-v2(移动端优化版)

这是一个移动优先sentence-transformers 模型,专为记忆系统角色扮演 RAG 应用而设计。

它将句子和段落映射到 512 维的稠密向量空间。与标准模型不同,该模型经过精细改造,支持 4096 tokens 的上下文长度,并针对叙事流畅性和角色交互进行了专门微调。

模型详情

关键规格

  • 模型类型: Sentence Transformer(蒸馏与微调)
  • 基础架构: all-MiniLM-L6-v2(BERT)并进行了自定义改造。
  • 最大序列长度: 4096 tokens(从 512 扩展)。
  • 输出维度: 512(通过稠密层投影)。
  • 大小: ~23 MB(Int8 量化 ONNX)。
  • 延迟: CPU 上约 ~1.3ms(短文本)。
  • 相似度函数: 余弦相似度。

为什么选择这个模型?

标准移动端模型(如 MiniLM)在两个方面表现不佳:上下文(限制为 512 tokens)和叙事逻辑(它们更倾向于关键词匹配而非故事氛围)。

Lettuce-v2 通过 4 步工程流程解决了这些问题:

  1. 改造: 使用复制-重复初始化将绝对位置嵌入扩展到 4096。
  2. 投影: 添加可训练的稠密层将 384d -> 512d 进行投影。
  3. 蒸馏:BAAI/bge-m3(最先进模型)进行知识蒸馏,以保留通用语义逻辑。
  4. 微调:Augmental(命运石之门) 数据集上训练,并混合 NLI 数据,以优先考虑叙事/角色扮演的语义对齐。

完整模型架构

SentenceTransformer(
  (0): Transformer({'max_seq_length': 4096, 'do_lower_case': False}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 384, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, ...})
  (2): Dense({'in_features': 384, 'out_features': 512, 'bias': True, 'activation_function': 'torch.nn.modules.linear.Identity'})
)

使用方法

直接使用

首先安装 Sentence Transformers 库:

pip install -U sentence-transformers

然后你可以加载此模型并运行推理。

from sentence_transformers import SentenceTransformer

# 从 🤗 Hub 下载
model = SentenceTransformer("Zeolit/lettuce-emb-512d-v2")

# 对叙事/角色扮演文本运行推理
sentences = [
    '"You raised a flag."',
    '*I take a deep breath, my mind racing with possibilities...* "Leap to an even earlier time."',
    'The quick brown fox jumps over the lazy dog.'
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 512]

# 获取嵌入的相似度分数
similarities = model.similarity(embeddings, embeddings)

训练详情

训练数据集

该模型在混合数据集上训练,以平衡叙事风格通用逻辑

  • 主要数据: Heralax/Augmental-Dataset(视觉小说 / 角色扮演日志)。
  • 基础数据: sentence-transformers/all-nli(逻辑与推理锚点)。
  • 总大小: 18,798 个训练样本。

训练日志

训练显示出平滑的收敛,在收益递减点(Epoch 2)准确停止,以防止过拟合。

Epoch Step Training Loss
0.1064 500 0.0021
0.2128 1000 0.0016
0.3191 1500 0.0012
0.4255 2000 0.0011
0.5319 2500 0.001
0.6383 3000 0.0009
0.7447 3500 0.001
0.8511 4000 0.0009
0.9574 4500 0.0009
1.0638 5000 0.0006
1.1702 5500 0.0005
1.2766 6000 0.0005
1.3830 6500 0.0006
1.4894 7000 0.0006
1.5957 7500 0.0005
1.7021 8000 0.0005
1.8085 8500 0.0005
1.9149 9000 0.0005

训练超参数

  • per_device_train_batch_size: 4(梯度累积模拟更大的批次)
  • num_train_epochs: 2
  • fp16: True
  • loss: CosineSimilarityLoss

引用

@inproceedings{reimers-2019-sentence-bert,
    title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
    author = "Reimers, Nils and Gurevych, Iryna",
    booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
    month = "11",
    year = "2019",
    publisher = "Association for Computational Linguistics",
    url = "https://arxiv.org/abs/1908.10084",
}

Zeolit/lettuce-emb-512d-v2

作者 Zeolit

sentence-similarity sentence-transformers
↓ 0 ♥ 0

创建时间: 2025-12-20 20:08:28+00:00

更新时间: 2025-12-20 20:09:21+00:00

在 Hugging Face 上查看

文件 (8)

.gitattributes
README.md
model.onnx ONNX
model.onnx.data
special_tokens_map.json
tokenizer.json
tokenizer_config.json
vocab.txt