模型概述
模型特點
模型能力
使用案例
🚀 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卸載層數和序列長度等參數。
- 若遇到授權相關問題,及時諮詢原始模型倉庫。



