🚀 Monarch Mixer-BERT
Monarch Mixer-BERT是来自论文Benchmarking and Building Long-Context Retrieval Models with LoCo and M2-BERT的M2-BERT-8k的80M检查点。该模型可用于长上下文检索,具有重要的应用价值。
前往我们的 GitHub 获取下载和微调该模型的说明!
🚀 快速开始
本部分将介绍如何使用Monarch Mixer-BERT模型,包括模型加载、分词器使用以及生成嵌入等操作。
✨ 主要特性
- 基于论文提出的架构,适用于长上下文检索任务。
- 生成的嵌入维度为768,可用于相关的检索应用。
📦 安装指南
文档未提及具体安装步骤,可参考 GitHub 上的说明进行安装。
💻 使用示例
基础用法
你可以使用Hugging Face的 AutoModel
加载此模型:
from transformers import AutoModelForMaskedLM, BertConfig
config = BertConfig.from_pretrained("hazyresearch/M2-BERT-8K-Retrieval-Encoder-V1")
model = AutoModelForMaskedLM.from_pretrained("hazyresearch/M2-BERT-8K-Retrieval-Encoder-V1", config=config,trust_remote_code=True)
此模型使用Hugging Face的 bert-base-uncased
分词器:
from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
高级用法
此模型用于生成用于检索的嵌入,嵌入维度为768:
from transformers import AutoTokenizer, AutoModelForMaskedLM, BertConfig
max_seq_length = 8192
testing_string = "Every morning, I make a cup of coffee to start my day."
config = BertConfig.from_pretrained("hazyresearch/M2-BERT-8K-Retrieval-Encoder-V1")
model = AutoModelForMaskedLM.from_pretrained("hazyresearch/M2-BERT-8K-Retrieval-Encoder-V1", config=config, trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased", model_max_length=max_seq_length)
input_ids = tokenizer([testing_string], return_tensors="pt", padding="max_length", return_token_type_ids=False, truncation=True, max_length=max_seq_length)
outputs = model(**input_ids)
embeddings = outputs['sentence_embedding']
远程代码
此模型需要在 from_pretrained
方法中传入 trust_remote_code=True
。这是因为我们使用了自定义的PyTorch代码(详见我们的GitHub)。你可以考虑传入一个 revision
参数来指定代码的确切git提交版本,例如:
mlm = AutoModelForMaskedLM.from_pretrained(
"hazyresearch/M2-BERT-8K-Retrieval-Encoder-V1",
config=config,
trust_remote_code=True,
)
配置
注意,use_flash_mm
默认值为 false
。目前不支持使用FlashMM。
📄 许可证
本项目采用Apache-2.0许可证。