From 5b83c844a17d08b6626cb7aee9deba0100c5076a Mon Sep 17 00:00:00 2001 From: zhaochang Date: Sun, 17 Nov 2024 20:11:51 +0800 Subject: [PATCH] BAAI/bge-reranker-v2-minicpm-layerwise --- .../Domain/Other/Bge/BegRerankConfig.cs | 19 +++++++++++++++++-- .../Pages/Setting/AIModel/AddModel.razor.cs | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/AntSK.Domain/Domain/Other/Bge/BegRerankConfig.cs b/src/AntSK.Domain/Domain/Other/Bge/BegRerankConfig.cs index 8992cd1..40f0ece 100644 --- a/src/AntSK.Domain/Domain/Other/Bge/BegRerankConfig.cs +++ b/src/AntSK.Domain/Domain/Other/Bge/BegRerankConfig.cs @@ -36,8 +36,16 @@ namespace AntSK.Domain.Domain.Other.Bge dynamic flagEmbedding = Py.Import("FlagEmbedding"); dynamic model_dir = modelscope.snapshot_download(modelName, revision: "master"); - dynamic flagReranker = flagEmbedding.FlagReranker(model_dir, use_fp16: false); - model = flagReranker; + if (modelName == "BAAI/bge-reranker-v2-minicpm-layerwise") + { + dynamic flagReranker = flagEmbedding.LayerWiseFlagLLMReranker(model_dir, use_fp16: true); + model = flagReranker; + } + else + { + dynamic flagReranker = flagEmbedding.FlagReranker(model_dir, use_fp16: true); + model = flagReranker; + } return model; } } @@ -66,6 +74,13 @@ namespace AntSK.Domain.Domain.Other.Bge pyList.Append(item.ToPython()); // 将C# string转换为Python对象并添加到PyList中 } PyObject result = model.compute_score(pyList, normalize: true); + + //BAAI/bge-reranker-v2-minicpm-layerwise + // https://www.modelscope.cn/models/AI-ModelScope/bge-reranker-v2-m3 + PyList cutoffLayers = new PyList(); + cutoffLayers.Append(new PyInt(8)); + dynamic scores = model.compute_score(pyList, cutoff_layers: cutoffLayers); + return result.ConvertToDouble(); } catch (Exception ex) diff --git a/src/AntSK/Pages/Setting/AIModel/AddModel.razor.cs b/src/AntSK/Pages/Setting/AIModel/AddModel.razor.cs index 81acd28..a099b1c 100644 --- a/src/AntSK/Pages/Setting/AIModel/AddModel.razor.cs +++ b/src/AntSK/Pages/Setting/AIModel/AddModel.razor.cs @@ -65,7 +65,7 @@ namespace AntSK.Pages.Setting.AIModel private bool _logModalVisible; private List bgeEmbeddingList = new List() { "AI-ModelScope/bge-small-zh-v1.5", "AI-ModelScope/bge-base-zh-v1.5", "AI-ModelScope/bge-large-zh-v1.5" }; - private List bgeRerankList = new List() { "Xorbits/bge-reranker-base", "Xorbits/bge-reranker-large", "AI-ModelScope/bge-reranker-v2-m3", "AI-ModelScope/bge-reranker-v2-gemma" }; + private List bgeRerankList = new List() { "Xorbits/bge-reranker-base", "Xorbits/bge-reranker-large", "AI-ModelScope/bge-reranker-v2-m3", "AI-ModelScope/bge-reranker-v2-gemma", "BAAI/bge-reranker-v2-minicpm-layerwise" }; private bool BgeEmbeddingIsStart = false; private string BgeEmbeddingBtnText = "初始化";