Model Overview
Model Features
Model Capabilities
Use Cases
🚀 Med42 70B - GGUF
本项目提供了M42 Health的Med42 70B模型的GGUF格式文件,可用于医疗领域的文本生成任务。
🚀 快速开始
本仓库包含 M42 Health的Med42 70B 模型的GGUF格式文件。这些文件由 Massed Compute 提供的硬件进行量化。
✨ 主要特性
- 多格式支持:提供了多种量化格式的模型文件,包括Q2_K、Q3_K、Q4_K等,以满足不同的使用场景和硬件需求。
- 广泛兼容:与多种客户端和库兼容,如llama.cpp、text-generation-webui、KoboldCpp等。
- 高性能表现:在多个医疗基准测试中取得了具有竞争力的成绩,如MedQA、MedMCQA等。
📦 安装指南
下载GGUF文件
- 手动下载:不建议克隆整个仓库,因为提供了多种不同的量化格式,大多数用户只需选择并下载单个文件。
- 自动下载:以下客户端/库会自动为你下载模型,并提供可用模型列表供选择:
- LM Studio
- LoLLMS Web UI
- Faraday.dev
在text-generation-webui
中下载
在“Download Model”下,输入模型仓库地址 TheBloke/med42-70B-GGUF
,并在下方输入要下载的具体文件名,如 med42-70b.Q4_K_M.gguf
,然后点击“Download”。
命令行下载
推荐使用 huggingface-hub
Python库:
pip3 install huggingface-hub
然后可以使用以下命令将任何单个模型文件高速下载到当前目录:
huggingface-cli download TheBloke/med42-70B-GGUF med42-70b.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
💻 使用示例
基础用法
from ctransformers import AutoModelForCausalLM
# 设置要卸载到GPU的层数。如果系统没有GPU加速,则设置为0。
llm = AutoModelForCausalLM.from_pretrained("TheBloke/med42-70B-GGUF", model_file="med42-70b.Q4_K_M.gguf", model_type="llama", gpu_layers=50)
print(llm("AI is going to"))
高级用法
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name_or_path = "m42-health/med42-70b"
model = AutoModelForCausalLM.from_pretrained(model_name_or_path,
device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)
prompt = "What are the symptoms of diabetes ?"
prompt_template=f'''
<|system|>: You are a helpful medical assistant created by M42 Health in the UAE.
<|prompter|>:{prompt}
<|assistant|>:
'''
input_ids = tokenizer(prompt_template, return_tensors='pt').input_ids.cuda()
output = model.generate(inputs=input_ids, temperature=0.7, do_sample=True,eos_token_id=tokenizer.eos_token_id, pad_token_id=tokenizer.pad_token_id, max_new_tokens=512)
print(tokenizer.decode(output[0]))
📚 详细文档
关于GGUF
GGUF是llama.cpp团队在2023年8月21日引入的一种新格式,它取代了不再受llama.cpp支持的GGML格式。以下是已知支持GGUF的客户端和库的不完全列表:
- llama.cpp:GGUF的源项目,提供CLI和服务器选项。
- text-generation-webui:最广泛使用的Web UI,具有许多功能和强大的扩展,支持GPU加速。
- KoboldCpp:功能齐全的Web UI,支持跨所有平台和GPU架构的GPU加速,尤其适合讲故事。
- LM Studio:适用于Windows和macOS(Silicon)的易于使用且功能强大的本地GUI,支持GPU加速。
- LoLLMS Web UI:一个很棒的Web UI,具有许多有趣和独特的功能,包括一个完整的模型库,便于模型选择。
- Faraday.dev:一个有吸引力且易于使用的基于角色的聊天GUI,适用于Windows和macOS(Silicon和Intel),支持GPU加速。
- ctransformers:一个支持GPU加速、LangChain和OpenAI兼容AI服务器的Python库。
- llama-cpp-python:一个支持GPU加速、LangChain和OpenAI兼容API服务器的Python库。
- candle:一个专注于性能的Rust ML框架,包括GPU支持和易于使用。
可用仓库
- 用于GPU推理的AWQ模型
- 用于GPU推理的GPTQ模型,具有多种量化参数选项
- 用于CPU+GPU推理的2、3、4、5、6和8位GGUF模型
- M42 Health的原始未量化fp16 PyTorch格式模型,用于GPU推理和进一步转换
提示模板
<|system|>: You are a helpful medical assistant created by M42 Health in the UAE.
<|prompter|>:{prompt}
<|assistant|>:
授权信息
源模型的创建者将其许可证列为 other
,因此此量化版本使用相同的许可证。由于该模型基于Llama 2,它也受Meta Llama 2许可证条款的约束,并且额外包含了该许可证文件。因此,应将其视为同时受这两个许可证的约束。已联系Hugging Face以澄清双重许可问题,但他们尚未有官方立场。如果情况发生变化,或者Meta对此情况提供任何反馈,将相应更新此部分。在此期间,任何关于许可的问题,特别是这两个许可证如何相互作用的问题,应直接咨询原始模型仓库:M42 Health的Med42 70B。
兼容性
这些量化的GGUFv2文件与8月27日之后的llama.cpp兼容,截至提交 d0cee0d。它们还与许多第三方UI和库兼容,请参阅本README顶部的列表。
量化方法说明
点击查看详情
新的可用方法如下:
- GGML_TYPE_Q2_K:“type-1” 2位量化,超级块包含16个块,每个块有16个权重。块的比例和最小值用4位量化。最终每个权重有效使用2.5625位(bpw)。
- GGML_TYPE_Q3_K:“type-0” 3位量化,超级块包含16个块,每个块有16个权重。比例用6位量化。最终使用3.4375 bpw。
- GGML_TYPE_Q4_K:“type-1” 4位量化,超级块包含8个块,每个块有32个权重。比例和最小值用6位量化。最终使用4.5 bpw。
- GGML_TYPE_Q5_K:“type-1” 5位量化。与GGML_TYPE_Q4_K具有相同的超级块结构,最终使用5.5 bpw。
- GGML_TYPE_Q6_K:“type-0” 6位量化。超级块有16个块,每个块有16个权重。比例用8位量化。最终使用6.5625 bpw。
请参考下面的“提供的文件”表,了解哪些文件使用了哪些方法以及如何使用。
提供的文件
名称 | 量化方法 | 位数 | 大小 | 所需最大RAM | 使用场景 |
---|---|---|---|---|---|
med42-70b.Q2_K.gguf | Q2_K | 2 | 29.28 GB | 31.78 GB | 最小,质量显著损失 - 不建议用于大多数用途 |
med42-70b.Q3_K_S.gguf | Q3_K_S | 3 | 29.92 GB | 32.42 GB | 非常小,高质量损失 |
med42-70b.Q3_K_M.gguf | Q3_K_M | 3 | 33.19 GB | 35.69 GB | 非常小,高质量损失 |
med42-70b.Q3_K_L.gguf | Q3_K_L | 3 | 36.15 GB | 38.65 GB | 小,大量质量损失 |
med42-70b.Q4_0.gguf | Q4_0 | 4 | 38.87 GB | 41.37 GB | 旧版;小,非常高的质量损失 - 建议使用Q3_K_M |
med42-70b.Q4_K_S.gguf | Q4_K_S | 4 | 39.07 GB | 41.57 GB | 小,更大的质量损失 |
med42-70b.Q4_K_M.gguf | Q4_K_M | 4 | 41.42 GB | 43.92 GB | 中等,平衡的质量 - 推荐 |
med42-70b.Q5_0.gguf | Q5_0 | 5 | 47.46 GB | 49.96 GB | 旧版;中等,平衡的质量 - 建议使用Q4_K_M |
med42-70b.Q5_K_S.gguf | Q5_K_S | 5 | 47.46 GB | 49.96 GB | 大,低质量损失 - 推荐 |
med42-70b.Q5_K_M.gguf | Q5_K_M | 5 | 48.75 GB | 51.25 GB | 大,非常低的质量损失 - 推荐 |
med42-70b.Q6_K.gguf | Q6_K | 6 | 56.59 GB | 59.09 GB | 非常大,极低的质量损失 |
med42-70b.Q8_0.gguf | Q8_0 | 8 | 73.29 GB | 75.79 GB | 非常大,极低的质量损失 - 不建议 |
注意:上述RAM数字假设没有进行GPU卸载。如果将层卸载到GPU,这将减少RAM使用并使用VRAM。
Q6_K和Q8_0文件是拆分的,需要合并
注意:HF不支持上传大于50GB的文件。因此,已将Q6_K和Q8_0文件作为拆分文件上传。
点击查看Q6_K和Q8_0文件的说明
q6_K
请下载:
med42-70b.Q6_K.gguf-split-a
med42-70b.Q6_K.gguf-split-b
q8_0
请下载:
med42-70b.Q8_0.gguf-split-a
med42-70b.Q8_0.gguf-split-b
要合并文件,请执行以下操作:
Linux和macOS:
cat med42-70b.Q6_K.gguf-split-* > med42-70b.Q6_K.gguf && rm med42-70b.Q6_K.gguf-split-*
cat med42-70b.Q8_0.gguf-split-* > med42-70b.Q8_0.gguf && rm med42-70b.Q8_0.gguf-split-*
Windows命令行:
COPY /B med42-70b.Q6_K.gguf-split-a + med42-70b.Q6_K.gguf-split-b med42-70b.Q6_K.gguf
del med42-70b.Q6_K.gguf-split-a med42-70b.Q6_K.gguf-split-b
COPY /B med42-70b.Q8_0.gguf-split-a + med42-70b.Q8_0.gguf-split-b med42-70b.Q8_0.gguf
del med42-70b.Q8_0.gguf-split-a med42-70b.Q8_0.gguf-split-b
如何运行
llama.cpp
命令示例
确保使用的是提交 d0cee0d 或更高版本的llama.cpp
。
./main -ngl 32 -m med42-70b.Q4_K_M.gguf --color -c 4096 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "<|system|>: You are a helpful medical assistant created by M42 Health in the UAE.\n<|prompter|>:{prompt}\n<|assistant|>:"
将 -ngl 32
更改为要卸载到GPU的层数。如果没有GPU加速,请删除它。将 -c 4096
更改为所需的序列长度。对于扩展序列模型(例如8K、16K、32K),必要的RoPE缩放参数会从GGUF文件中读取,并由llama.cpp自动设置。如果想要进行聊天式对话,请将 -p <PROMPT>
参数替换为 -i -ins
。有关其他参数及其使用方法,请参考 llama.cpp文档。
在text-generation-webui
中运行
更多说明请参考:text-generation-webui/docs/llama.cpp.md。
从Python代码运行
可以使用 llama-cpp-python 或 ctransformers 库从Python使用GGUF模型。
如何在Python代码中加载此模型,使用ctransformers
首先安装包:
# 无GPU加速的基础ctransformers
pip install ctransformers
# 或使用CUDA GPU加速
pip install ctransformers[cuda]
# 或使用AMD ROCm GPU加速(仅适用于Linux)
CT_HIPBLAS=1 pip install ctransformers --no-binary ctransformers
# 或使用适用于macOS系统的Metal GPU加速
CT_METAL=1 pip install ctransformers --no-binary ctransformers
简单的ctransformers示例代码:
from ctransformers import AutoModelForCausalLM
# 设置要卸载到GPU的层数。如果系统没有GPU加速,则设置为0。
llm = AutoModelForCausalLM.from_pretrained("TheBloke/med42-70B-GGUF", model_file="med42-70b.Q4_K_M.gguf", model_type="llama", gpu_layers=50)
print(llm("AI is going to"))
如何与LangChain一起使用
以下是使用llama-cpp-python和ctransformers与LangChain的指南:
🔧 技术细节
硬件和软件
训练过程在Condor Galaxy 1 (CG-1) 超级计算机平台上进行。
评估结果
Med42在各种医学基准测试中取得了具有竞争力的性能,包括MedQA、MedMCQA、PubMedQA、HeadQA和衡量大规模多任务语言理解(MMLU)临床主题。到目前为止报告的所有评估中,使用 EleutherAI的评估工具库 并报告零样本准确率(除非另有说明)。将性能与其他模型(ClinicalCamel-70B、GPT-3.5、GPT-4.0、Med-PaLM 2)报告的性能进行比较。
数据集 | Med42 | ClinicalCamel-70B | GPT-3.5 | GPT-4.0 | Med-PaLM-2 (5-shot)* |
---|---|---|---|---|---|
MMLU临床知识 | 74.3 | 69.8 | 69.8 | 86.0 | 88.3 |
MMLU大学生物学 | 84.0 | 79.2 | 72.2 | 95.1 | 94.4 |
MMLU大学医学 | 68.8 | 67.0 | 61.3 | 76.9 | 80.9 |
MMLU医学遗传学 | 86.0 | 69.0 | 70.0 | 91.0 | 90.0 |
MMLU专业医学 | 79.8 | 71.3 | 70.2 | 93.0 | 95.2 |
MMLU解剖学 | 67.4 | 62.2 | 56.3 | 80.0 | 77.8 |
MedMCQA | 60.9 | 47.0 | 50.1 | 69.5 | 71.3 |
MedQA | 61.5 | 53.4 | 50.8 | 78.9 | 79.7 |
USMLE自我评估 | 71.7 | - | 49.1 | 83.8 | - |
USMLE样本考试 | 72.0 | 54.3 | 56.9 | 84.3 | - |
注意:未报告Med-PaLM 2的零样本性能。更多详细信息可在 https://github.com/m42health/med42 找到。
🔑 关键性能指标
- Med42在美国医学执照考试(USMLE)样本考试中达到了72%的准确率,超过了公开可用的医学大语言模型中的先前最优水平。
- 在MedQA数据集上达到61.5%(相比之下,GPT-3.5为50.8%)。
- 在MMLU临床主题上的性能始终高于GPT-3.5。
📄 许可证
本项目使用的模型受M42 Health许可证和Meta Llama 2许可证条款的约束。具体授权信息请参考上述“授权信息”部分。
💬 Discord
如需进一步支持,以及讨论这些模型和人工智能相关话题,请加入:TheBloke AI的Discord服务器
🙏 感谢与贡献
感谢 chirper.ai 团队!感谢来自 gpus.llm-utils.org 的Clay!如果您能够并愿意做出贡献,将不胜感激,这将有助于继续提供更多模型,并开展新的人工智能项目。捐赠者将在任何AI/LLM/模型问题和请求上获得优先支持,访问私人Discord房间以及其他福利。
- Patreon: https://patreon.com/TheBlokeAI
- Ko-Fi: https://ko-fi.com/TheBlokeAI
特别感谢:Aemon Algiz。
Patreon特别提及:Pierre Kircher、Stanislav Ovsiannikov、Michael Levine等众多支持者。
感谢所有慷慨的赞助者和捐赠者!再次感谢a16z的慷慨资助。
⚠️ 重要提示
- Med42尚未准备好用于实际临床应用。正在进行广泛的人工评估以确保安全。
- 存在生成不正确或有害信息的可能性。
- 有延续训练数据中偏差的风险。
请负责任地使用此模型!在没有进行严格的安全测试之前,请勿将其用于医疗用途。
💡 使用建议
- 选择合适的量化模型文件,根据自身硬件条件和使用场景进行选择,如追求平衡质量可选择
med42-70b.Q4_K_M.gguf
。 - 在使用过程中,注意根据实际情况调整GPU卸载层数和序列长度等参数。
- 若遇到授权相关问题,及时咨询原始模型仓库。



