Sentence Transformers癌种分类测试

paraphrase-multilingual-MiniLM-L12-v2和gte-Qwen2-7B-instruct用于癌种分类的测试

模型下载

  1. paraphrase-multilingual-MiniLM-L12-v2
    参考:https://www.sbert.net/docs/sentence_transformer/pretrained_models.html#semantic-similarity-models

    1
    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('本地目录路径')
  2. 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种。

测试方法

测试结果

模型 模型大小 运行时间 准确率
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类模型,以生成任务为核心(如问答、对话),所以这个结果应该是合理的?