部署并使用bge

部署bge:

cd到model文档:

使用命令:git clone https://huggingface.co/BAAI/bge-large-zh-1.5

再将bge-large-zh中的pytorch_model.bin删掉(如果该文件只有几十M大小,下载的可能是虚拟文件)再输入如下命令:

wget https://huggingface.co/BAAI/bge-large-zh/resolve/main/pytorch_model.bin

在py或者ipynb文件中输入如下命令:

from sentence_transformers import SentenceTransformer
queries = ['query_1', 'query_2']
passages = ["样例文档-1", "样例文档-2"]
instruction = "为这个句子生成表示以用于检索相关文章:"

model = SentenceTransformer('/home/ubuntu/model/bge-large-zh-1.5')
q_embeddings = model.encode([instruction+q for q in queries], normalize_embeddings=True)
p_embeddings = model.encode(passages, normalize_embeddings=True)
scores = q_embeddings @ p_embeddings.T
print(scores)

执行以后下列图片,即为下载成功。

如何使用:

我们希望我们的问题能embedding10个最相关的句子。使用如下数据集(由于是公司整理,暂时不会提供给公众)

这些数据我们录入到emb11_0918_3694.txt文件中

from sklearn.metrics.pairwise import cosine_similarity
with open('/home/ubuntu/model/bge-large-zh/emb11_0918_3694.txt', 'r') as f:
    text = f.read()
    # 按行分割文本
    sentence_2_cn = text.split('\n')
model_cn = SentenceTransformer('/home/ubuntu/model/bge-large-zh')
embeddings_2_cn = model_cn.encode(sentence_2_cn, normalize_embeddings=True)
query = "如何更换雨刮片"
sentence_1 = []
instruction = "为这个句子生成表示以用于检索相关文章:"
sentence_1.append(query)
embeddings_1 = model.encode([instruction+q for q in sentence_1], normalize_embeddings=True)
similarities = cosine_similarity(embeddings_1, embeddings_2_cn)[0]
top_indices = np.argsort(similarities)
request = f"""请告诉我\\"{sentence_1}\\"的答案"""
top_10_sentences = [f"{sentence_2_cn[index]}" for index in reversed(top_indices)]
new_string = '\n'.join(top_10_sentences) +'\n'+ request

### 部署 Hugging Face bge-reranker-v2-m3 模型 为了成功部署 Hugging Face 的 `bge-reranker-v2-m3` 模型,可以遵循以下指南: #### 准备环境 确保安装了 Python 和 pip 工具。接着,在命令行工具中执行如下操作来创建激活虚拟环境(推荐做法),这有助于管理依赖项。 ```bash python -m venv my_env source my_env/bin/activate # Linux 或 macOS 用户 my_env\Scripts\activate # Windows 用户 ``` #### 安装必要的库 通过 pip 来安装 Transformers 库和其他可能需要的包,比如 Torch 或 TensorFlow,具体取决于所选框架版本。 ```bash pip install transformers torch datasets ``` #### 加载模型 利用 Hugging Face 提供的 API 接口加载指定名称的空间中的预训练模型实例。对于 `bge-reranker-v2-m3` 而言,首次调用将会自动从远程服务器下载对应的权重文件至本地缓存目录[^2]。 ```python from transformers import AutoModelForSequenceClassification, AutoTokenizer model_name = "BAAI/bge-reranker-v2-m3" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForSequenceClassification.from_pretrained(model_name) ``` #### 使用模型进行预测 定义一个简单的函数来进行输入处理和输出解析,以便能够方便地测试该重排序器的效果。 ```python def rerank(query, documents): inputs = tokenizer([query]*len(documents), documents, return_tensors="pt", padding=True, truncation=True) outputs = model(**inputs).logits.detach().numpy() scores = list(zip(outputs.flatten(), documents)) sorted_scores = sorted(scores, key=lambda x: x[0], reverse=True) for score, doc in sorted_scores[:5]: print(f"Score {score:.4f}: {doc}") # 测试例子 test_query = "example query text here." docs_to_rerank = ["document one content.", "another document's contents."] rerank(test_query, docs_to_rerank) ``` 上述代码片段展示了如何初始化模型以及编写基本的查询文档重排逻辑。实际应用时可根据需求调整参数设置或集成到更大规模的应用程序当中[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值