🚀 Palmyra-med-20b
Palmyra-Med-20b 是一个拥有 200 亿参数的大语言模型,它在 Palmyra-Large 的基础上,使用专门精心策划的医学数据集进行了进一步训练。该模型的主要目标是提升在医学对话和问答任务中的性能。
🚀 快速开始
本模型与 Hugging Face 的 AutoModelForCausalLM
兼容,并且可以在单个 40GB 的 A100 上轻松运行。
基础用法
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name = "Writer/palmyra-med-20b"
tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=False)
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map="auto",
torch_dtype=torch.float16,
)
prompt = "Can you explain in simple terms how vaccines help our body fight diseases?"
input_text = (
"A chat between a curious user and an artificial intelligence assistant. "
"The assistant gives helpful, detailed, and polite answers to the user's questions. "
"USER: {prompt} "
"ASSISTANT:"
)
model_inputs = tokenizer(input_text.format(prompt=prompt), return_tensors="pt").to(
"cuda"
)
gen_conf = {
"temperature": 0.7,
"repetition_penalty": 1.0,
"max_new_tokens": 512,
"do_sample": True,
}
out_tokens = model.generate(**model_inputs, **gen_conf)
response_ids = out_tokens[0][len(model_inputs.input_ids[0]) :]
output = tokenizer.decode(response_ids, skip_special_tokens=True)
print(output)
高级用法
model=Writer/palmyra-med-20b
volume=$PWD/data
docker run --gpus all --shm-size 1g -p 8080:80 -v $volume:/data ghcr.io/huggingface/text-generation-inference --model-id $model
✨ 主要特性
- 专业医学训练:在专门的医学数据集上进行训练,提升医学对话和问答任务的性能。
- 易于使用:与 Hugging Face 的
AutoModelForCausalLM
兼容,可在单个 40GB 的 A100 上运行。
📦 安装指南
文档未提及具体安装步骤,跳过该章节。
📚 详细文档
模型描述
模型来源
Palmyra-Med: Instruction-Based Fine-Tuning of LLMs Enhancing Medical Domain Performance
使用范围
超出适用范围的使用
在未充分评估风险和制定缓解措施的情况下用于生产环境;任何可能被认为不负责任或有害的使用场景。
偏差、风险和局限性
Palmyra-Med-20B 主要在英语数据上进行训练,可能无法很好地泛化到其他语言。此外,由于它是在代表网络的大规模语料库上进行训练的,因此可能会带有网络上常见的刻板印象和偏差。
建议
建议 Palmyra-Med-20B 的用户开发防护机制,并在任何生产使用中采取适当的预防措施。
数据集
在微调大语言模型时,我们使用了一个精心策划的医学数据集,该数据集结合了两个公开可用来源的数据:PubMedQA(Jin 等人,2019 年)和 MedQA(Zhang 等人,2018 年)。PubMedQA 数据集源自 PubMed 摘要数据库,由生物医学文章及其对应的问答对组成。相比之下,MedQA 数据集包含旨在评估医学问答系统推理能力的医学问题和答案。
我们通过合并和处理上述来源的数据来准备自定义数据集,并保持表 1 中详细列出的数据集混合比例。这些比例在微调 Palmyra-20b 和 Palmyra-40b 模型时保持一致。使用该数据集对模型进行微调后,得到的模型分别称为 Palmyra-Med-20b 和 Palmyra-Med-40b。
数据集 |
比例 |
数量 |
PubMedQA |
75% |
150,000 |
MedQA |
25% |
10,178 |
评估
我们展示了实验结果,首先是微调模型的评估结果,然后讨论了每个评估数据集上基础模型的性能。此外,我们还报告了 Palmyra-Med-40b 模型在 PubMedQA 数据集训练过程中的逐步改进情况。
模型 |
PubMedQA |
MedQA |
Palmyra-20b |
49.8 |
31.2 |
Palmyra-40b |
64.8 |
43.1 |
Palmyra-Med-20b |
75.6 |
44.6 |
Palmyra-Med-40b |
81.1 |
72.4 |
局限性
该模型可能在医疗领域之外无法有效运行。由于它尚未经过实际场景的测试,其实时有效性和准确性仍不确定。在任何情况下,它都不能替代医疗专业人员的建议,只能作为研究工具使用。
引用和相关信息
如需引用此模型,请使用以下 BibTeX 格式:
@misc{Palmyra-Med-20B,
author = {Writer Engineering team},
title = {{Palmyra-Large Parameter Autoregressive Language Model}},
howpublished = {\url{https://dev.writer.com}},
year = 2023,
month = March
}
联系信息
Hello@writer.com
详细结果可在 此处 查看。
指标 |
值 |
平均值 |
40.02 |
ARC (25-shot) |
46.93 |
HellaSwag (10-shot) |
73.51 |
MMLU (5-shot) |
44.34 |
TruthfulQA (0-shot) |
35.47 |
Winogrande (5-shot) |
65.35 |
GSM8K (5-shot) |
2.65 |
DROP (3-shot) |
11.88 |
🔧 技术细节
文档未提及具体技术细节,跳过该章节。
📄 许可证
本模型使用 Apache 2.0 许可证。
⚠️ 重要提示
本模型已不再由我们的团队维护或支持,强烈建议不要在生产环境或任何关键应用中使用它。建议使用我们的最新模型,可在 此处 找到。
💡 使用建议
建议 Palmyra-Med-20B 的用户开发防护机制,并在任何生产使用中采取适当的预防措施。该模型不能替代医疗专业人员的建议,只能作为研究工具使用。