paraphrase-multilingual-MiniLM-L12-v2和gte-Qwen2-7B-instruct用于癌种分类的测试
模型下载
paraphrase-multilingual-MiniLM-L12-v2
参考:https://www.sbert.net/docs/sentence_transformer/pretrained_models.html#semantic-similarity-models1
2
3
4
5
6# 下载模型保存到本地
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2", cache_folder='本地目录路径')
# 后续调用本地模型
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('本地目录路径')gte-Qwen2-7B-instruct
参考:https://www.modelscope.cn/models/iic/gte_Qwen2-7B-instruct/
提供了2种方法:SDK下载和Git下载。
2种方法都试了,Git下载会出现.safetensors文件下载不全,导致报错:ERROR: safetensors_rust.SafetensorError: Error while deserializing header: HeaderTooLarge。1
2
3
4
5
6# 下载模型保存到本地
from modelscope import snapshot_download
model = snapshot_download('iic/gte_Qwen2-7B-instruct', local_dir='本地目录路径')
# 后续调用本地模型
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('本地目录路径')
测试数据
- 输入:一些样本的临床信息和病理诊断。
- 目标:NCCN癌症分类,例如:非小细胞肺癌、直肠癌、结肠癌、胃癌等,共38种。
测试方法
- 参考:https://www.sbert.net/docs/sentence_transformer/usage/semantic_textual_similarity.html
- 每个输入分别与目标计算相似性,取相似性最高的癌种作为预测结果,人工判断分类是否准确。
- 两个模型的测试数据和脚本一样,只替换调用的模型路径。
测试结果
模型 | 模型大小 | 运行时间 | 准确率 |
---|---|---|---|
paraphrase-multilingual-MiniLM-L12-v2 | 458M | 14s | 71.42% (10/14) |
gte-Qwen2-7B-instruct | 29G | 150s | 35.71% (5/14) |
- gte-Qwen2-7B-instruct对于肺癌分类似乎偏向于“小细胞肺癌”,而不是“非小细胞肺癌”。输入信息中的肺鳞癌、肺腺癌都分成了“小细胞肺癌”;甚至有样本是写着“非小细胞肺癌”的,也分成了“小细胞肺癌”。
- paraphrase-multilingual-MiniLM-L12-v2属于BERT模型,更擅长于擅长双向语义理解(如文本分类、语义匹配);而gte-Qwen2-7B-instruct似乎是更接近GPT类模型,以生成任务为核心(如问答、对话),所以这个结果应该是合理的?