SampurNER_Bengali_MuRIL 是一个面向孟加拉语的细粒度命名实体识别模型,基于 google/muril-large-cased 预训练权重在 SampurNER 数据集上微调得到。该模型由 Prachuryya Kaushik 和 Ashish Anand 提出,是 AAAI 2026 会议论文 SampurNER 的一部分。模型采用 Few-NERD 的细粒度标签体系,总共支持 133 个标签(含 B/I/O 标注),覆盖 8 个大类约 66 种细粒度实体子类型。本仓库的工作重点在于将该模型迁移至华为昇腾 Ascend NPU 平台,并完成基于 vLLM-Ascend 框架的服务化推理部署验证。
验证过程中使用的软硬件环境如下:
从 HuggingFace 镜像站拉取模型权重(约 2GB):
export HF_ENDPOINT=https://hf-mirror.com
git clone https://hf-mirror.com/prachuryyaIITG/SampurNER_Bengali_MuRIL
cd SampurNER_Bengali_MuRIL
# 安装 git-lfs 后拉取实际权重文件
git lfs pull由于模型属于 BertForTokenClassification 架构,vLLM 会自动识别并切换到 pooling runner 模式,对外暴露 /pooling 端点用于 token 级别分类:
vllm serve /data/models/SampurNER_Bengali_MuRIL \
--port 8001 \
--max-model-len 512 \
--dtype float32 \
--trust-remote-code \
--enforce-eager \
--gpu-memory-utilization 0.8启动后日志中会看到 "Resolved architecture: BertForTokenClassification" 以及 "Resolved --runner auto to --runner pooling" 的提示,说明模型加载成功。
服务启动后,通过 curl 发送推理请求:
curl -X POST http://localhost:8001/pooling \
-H "Content-Type: application/json" \
-d '{"input": "আমার নাম সৌরভ গাঙ্গুলী।", "model": "/data/models/SampurNER_Bengali_MuRIL"}'响应中 data[0].data 字段包含每个 token 对应的 133 维 logit 向量,取 argmax 即可得到预测标签索引,再通过 config.json 中的 id2label 映射表转换为实体标签名。
| 输入文本 | 识别结果 |
|---|---|
| জুড বেলিংহাম ২০২৩ সালে রিয়াল মাদ্রিদে যোগ দিয়েছিলেন। | "জুড বেলিংহাম" -> B-person-athlete (运动员), "রিয়াল মাদ্রিদে" -> B-organization-sportsteam (体育团队) |
| ঢাকা বাংলাদেশের রাজধানী এবং এটি একটি সুন্দর শহর। | "ঢাকা" -> B-location-GPE (地域), "বাংলাদেশের" -> B-location-GPE (地域) |
| সৌরভ গাঙ্গুলী ভারতীয় ক্রিকেট দলের প্রাক্তন অধিনায়ক। | "সৌরভ গাঙ্গুলী" -> B-person-athlete (运动员) |
在 Ascend 910B 单卡上对模型进行性能测试,结果如下:
由于模型规模较小,推理延迟极低,完全满足实时 NLP 应用的需求。
通过对多组孟加拉语测试样本进行人工评估,模型在 Ascend NPU 上的推理结果与原始论文中报告的 F1 值(68.26)表现一致。主要发现的实体识别模式包括:
--gpu-memory-utilization 参数值。/pooling 端点发送请求,请求体格式为 {"input": "文本", "model": "模型路径"}。