模型概述
模型特點
模型能力
使用案例
🚀 Dr Samantha 7B - GGUF
Dr Samantha 7B - GGUF 是一個醫學領域的語言模型,它結合了醫學知識和哲學、心理等方面的理解,能夠為用戶提供醫療諮詢和個人輔導服務。
🚀 快速開始
下載 GGUF 文件
- 自動下載:LM Studio、LoLLMS Web UI、Faraday.dev 等客戶端/庫會自動下載模型,並提供可用模型列表供您選擇。
- 在
text-generation-webui
中下載:在“Download Model”下,輸入模型倉庫地址TheBloke/Dr_Samantha-7B-GGUF
,並在下方輸入要下載的具體文件名,如dr_samantha-7b.Q4_K_M.gguf
,然後點擊“Download”。 - 命令行下載:推薦使用
huggingface-hub
Python 庫。首先安裝:
pip3 install huggingface-hub
然後使用以下命令下載單個模型文件到當前目錄:
huggingface-cli download TheBloke/Dr_Samantha-7B-GGUF dr_samantha-7b.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
運行模型
在 llama.cpp
中運行
確保使用的是 d0cee0d 或更新版本的 llama.cpp
。示例命令如下:
./main -ngl 35 -m dr_samantha-7b.Q4_K_M.gguf --color -c 2048 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "Below is an instruction that describes a task. Write a response that appropriately completes the request.\n\n### Instruction:\n{prompt}\n\n### Response:"
-ngl 32
:要卸載到 GPU 的層數。如果沒有 GPU 加速,請移除該參數。-c 2048
:所需的序列長度。對於擴展序列模型(如 8K、16K、32K),必要的 RoPE 縮放參數會從 GGUF 文件中讀取並由 llama.cpp 自動設置。注意,更長的序列長度需要更多資源,因此可能需要減小該值。- 如果想進行聊天式對話,將
-p <PROMPT>
參數替換為-i -ins
。
在 text-generation-webui
中運行
更多說明可在 text-generation-webui 文檔中找到:text-generation-webui/docs/04 ‐ Model Tab.md。
從 Python 代碼運行
可以使用 llama-cpp-python 或 ctransformers 庫從 Python 中使用 GGUF 模型。建議使用 llama-cpp-python。
- 安裝包:根據系統運行以下命令之一:
# 無 GPU 加速的基礎 ctransformers
pip install llama-cpp-python
# 有 NVidia CUDA 加速
CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install llama-cpp-python
# 有 OpenBLAS 加速
CMAKE_ARGS="-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS" pip install llama-cpp-python
# 有 CLBLast 加速
CMAKE_ARGS="-DLLAMA_CLBLAST=on" pip install llama-cpp-python
# 有 AMD ROCm GPU 加速(僅適用於 Linux)
CMAKE_ARGS="-DLLAMA_HIPBLAS=on" pip install llama-cpp-python
# 有 Metal GPU 加速(僅適用於 macOS 系統)
CMAKE_ARGS="-DLLAMA_METAL=on" pip install llama-cpp-python
# 在 Windows 中,在 PowerShell 中設置 CMAKE_ARGS 變量,例如對於 NVidia CUDA:
$env:CMAKE_ARGS = "-DLLAMA_OPENBLAS=on"
pip install llama-cpp-python
- 簡單的 llama-cpp-python 示例代碼:
from llama_cpp import Llama
# 設置要卸載到 GPU 的層數。如果系統沒有 GPU 加速,設置為 0。
llm = Llama(
model_path="./dr_samantha-7b.Q4_K_M.gguf", # 首先下載模型文件
n_ctx=2048, # 要使用的最大序列長度 - 注意,更長的序列長度需要更多資源
n_threads=8, # 要使用的 CPU 線程數,根據系統和性能進行調整
n_gpu_layers=35 # 如果有 GPU 加速,要卸載到 GPU 的層數
)
# 簡單推理示例
output = llm(
"Below is an instruction that describes a task. Write a response that appropriately completes the request.\n\n### Instruction:\n{prompt}\n\n### Response:", # 提示
max_tokens=512, # 生成最多 512 個令牌
stop=["</s>"], # 示例停止令牌 - 不一定適用於此特定模型!使用前請檢查。
echo=True # 是否回顯提示
)
# 聊天完成 API
llm = Llama(model_path="./dr_samantha-7b.Q4_K_M.gguf", chat_format="llama-2") # 根據使用的模型設置 chat_format
llm.create_chat_completion(
messages = [
{"role": "system", "content": "You are a story writing assistant."},
{
"role": "user",
"content": "Write a story about llamas."
}
]
)
使用 LangChain
以下是使用 llama-cpp-python 和 ctransformers 與 LangChain 的指南:
✨ 主要特性
- 醫學知識豐富:通過準確識別各種症狀的潛在原因,展示了廣泛的醫學知識。
- 強調專業診斷:回覆始終強調尋求專業診斷和治療的重要性。
- 提供實用建議:為某些問題提供諮詢專家的建議,並在一些情況下提供症狀管理的實用臨時措施。
- 富有同理心:始終表現出對患者福祉的同理心、支持和安慰。
- 解釋清晰易懂:對病情和治療方案進行清晰易懂的解釋。
- 響應及時全面:及時響應並解決醫療諮詢的各個方面。
📦 安裝指南
下載依賴庫
pip3 install huggingface-hub
加速下載(可選)
pip3 install hf_transfer
設置環境變量:
HF_HUB_ENABLE_HF_TRANSFER=1
💻 使用示例
基礎用法
from llama_cpp import Llama
llm = Llama(
model_path="./dr_samantha-7b.Q4_K_M.gguf",
n_ctx=2048,
n_threads=8,
n_gpu_layers=35
)
output = llm(
"Below is an instruction that describes a task. Write a response that appropriately completes the request.\n\n### Instruction:\n{prompt}\n\n### Response:",
max_tokens=512,
stop=["</s>"],
echo=True
)
高級用法
from llama_cpp import Llama
llm = Llama(model_path="./dr_samantha-7b.Q4_K_M.gguf", chat_format="llama-2")
llm.create_chat_completion(
messages = [
{"role": "system", "content": "You are a story writing assistant."},
{
"role": "user",
"content": "Write a story about llamas."
}
]
)
📚 詳細文檔
關於 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 加速,特別適合講故事。
- GPT4All:免費開源的本地運行 GUI,支持 Windows、Linux 和 macOS,具有完整的 GPU 加速。
- LM Studio:易於使用且功能強大的本地 GUI,適用於 Windows 和 macOS(Silicon),支持 GPU 加速。截至 2023 年 11 月 27 日,Linux 版本處於測試階段。
- LoLLMS Web UI:一個很棒的 Web UI,具有許多有趣和獨特的功能,包括一個完整的模型庫,便於模型選擇。
- Faraday.dev:一個有吸引力且易於使用的基於角色的聊天 GUI,適用於 Windows 和 macOS(Silicon 和 Intel),支持 GPU 加速。
- llama-cpp-python:一個具有 GPU 加速、LangChain 支持和 OpenAI 兼容 API 服務器的 Python 庫。
- candle:一個 Rust ML 框架,注重性能,包括 GPU 支持和易用性。
- ctransformers:一個具有 GPU 加速、LangChain 支持和 OpenAI 兼容 AI 服務器的 Python 庫。截至 2023 年 11 月 27 日,ctransformers 已有很長時間未更新,不支持許多最新模型。
可用倉庫
- 用於 GPU 推理的 AWQ 模型
- 用於 GPU 推理的 GPTQ 模型,具有多種量化參數選項
- 用於 CPU+GPU 推理的 2、3、4、5、6 和 8 位 GGUF 模型
- Sethu Iyer 原始未量化的 fp16 模型(pytorch 格式),用於 GPU 推理和進一步轉換
提示模板
Below is an instruction that describes a task. Write a response that appropriately completes the request.
### Instruction:
{prompt}
### Response:
兼容性
這些量化的 GGUFv2 文件與 2023 年 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 | 使用場景 |
---|---|---|---|---|---|
dr_samantha-7b.Q2_K.gguf | Q2_K | 2 | 2.53 GB | 5.03 GB | 質量損失顯著 - 不推薦用於大多數情況 |
dr_samantha-7b.Q3_K_S.gguf | Q3_K_S | 3 | 2.95 GB | 5.45 GB | 非常小,質量損失高 |
dr_samantha-7b.Q3_K_M.gguf | Q3_K_M | 3 | 3.30 GB | 5.80 GB | 非常小,質量損失高 |
dr_samantha-7b.Q3_K_L.gguf | Q3_K_L | 3 | 3.60 GB | 6.10 GB | 小,質量損失較大 |
dr_samantha-7b.Q4_0.gguf | Q4_0 | 4 | 3.83 GB | 6.33 GB | 舊版本;小,質量損失非常高 - 建議使用 Q3_K_M |
dr_samantha-7b.Q4_K_S.gguf | Q4_K_S | 4 | 3.86 GB | 6.36 GB | 小,質量損失較大 |
dr_samantha-7b.Q4_K_M.gguf | Q4_K_M | 4 | 4.08 GB | 6.58 GB | 中等,質量平衡 - 推薦 |
dr_samantha-7b.Q5_0.gguf | Q5_0 | 5 | 4.65 GB | 7.15 GB | 舊版本;中等,質量平衡 - 建議使用 Q4_K_M |
dr_samantha-7b.Q5_K_S.gguf | Q5_K_S | 5 | 4.65 GB | 7.15 GB | 大,質量損失低 - 推薦 |
dr_samantha-7b.Q5_K_M.gguf | Q5_K_M | 5 | 4.78 GB | 7.28 GB | 大,質量損失非常低 - 推薦 |
dr_samantha-7b.Q6_K.gguf | Q6_K | 6 | 5.53 GB | 8.03 GB | 非常大,質量損失極低 |
dr_samantha-7b.Q8_0.gguf | Q8_0 | 8 | 7.16 GB | 9.66 GB | 非常大,質量損失極低 - 不推薦 |
注意:上述 RAM 數字假設沒有 GPU 卸載。如果將層卸載到 GPU,這將減少 RAM 使用並使用 VRAM 代替。
原始模型信息
概述
Dr. Samantha 是一個語言模型,通過 mergekit 將 Severus27/BeingWell_llama2_7b
和 ParthasarathyShanmugam/llama-2-7b-samantha
合併而成。它具備專注於醫學知識的能力(在 USMLE 數據庫和醫患互動數據上訓練),同時擁有 Samantha-7b 模型的哲學、心理和關係理解能力。作為醫療顧問和個人輔導員,Dr.Samantha 可以有效地支持身體和心理健康,這對於整體健康護理非常重要。
Yaml 配置
slices:
- sources:
- model: Severus27/BeingWell_llama2_7b
layer_range: [0, 32]
- model: ParthasarathyShanmugam/llama-2-7b-samantha
layer_range: [0, 32]
merge_method: slerp
base_model: TinyPixel/Llama-2-7B-bf16-sharded
parameters:
t:
- filter: self_attn
value: [0, 0.5, 0.3, 0.7, 1]
- filter: mlp
value: [1, 0.5, 0.7, 0.3, 0]
- value: 0.5 # fallback for rest of tensors
tokenizer_source: union
dtype: bfloat16
提示模板
Below is an instruction that describes a task. Write a response that appropriately completes the request.
### Instruction:
What is your name?
### Response:
My name is Samantha.
OpenLLM 排行榜性能
T | 模型 | 平均 | ARC | Hellaswag | MMLU | TruthfulQA | Winogrande | GSM8K |
---|---|---|---|---|---|---|---|---|
1 | sethuiyer/Dr_Samantha-7b | 52.95 | 53.84 | 77.95 | 47.94 | 45.58 | 73.56 | 18.8 |
2 | togethercomputer/LLaMA-2-7B-32K-Instruct | 50.02 | 51.11 | 78.51 | 46.11 | 44.86 | 73.88 | 5.69 |
3 | togethercomputer/LLaMA-2-7B-32K | 47.07 | 47.53 | 76.14 | 43.33 | 39.23 | 71.9 | 4.32 |
按學科的準確率
學科 | 準確率 (%) |
---|---|
臨床知識 | 52.83 |
醫學遺傳學 | 49.00 |
人類衰老 | 58.29 |
人類性行為 | 55.73 |
大學醫學 | 38.73 |
解剖學 | 41.48 |
大學生物學 | 52.08 |
大學醫學 | 38.73 |
高中生物學 | 53.23 |
專業醫學 | 38.73 |
營養學 | 50.33 |
專業心理學 | 46.57 |
病毒學 | 41.57 |
高中心理學 | 66.60 |
平均 | 48.85% |
GPT-4 對 ChatDoctor-200k 數據集中 25 個隨機提示的評估
總體評分:83.5/100
優點
- 通過準確識別各種症狀的潛在原因,展示了廣泛的醫學知識。
- 回覆始終強調尋求專業診斷和治療的重要性。
- 針對某些問題建議諮詢專家,理由充分。
- 在一些情況下提供了症狀管理的實用臨時措施。
- 始終表現出對患者福祉的同理心、支持和安慰。
- 對病情和治療方案進行清晰易懂的解釋。
- 及時響應並解決醫療諮詢的各個方面。
缺點
- 偶爾在症狀表明可能是緊急情況時,沒有更加強調緊迫性。
- 對鑑別診斷的討論可以探索更廣泛的不太常見的原因。
- 有時對不太常見症狀及其影響的細節需要更深入。
- 有機會通過後續問題收集更多關於症狀歷史的澄清細節。
- 在相關情況下,可以考慮探索完整的病史以改善診斷背景。
- 可以更加強調與某些疾病相關的謹慎程度和風險因素。
🔧 技術細節
模型結構
Dr. Samantha 是通過將 Severus27/BeingWell_llama2_7b
和 ParthasarathyShanmugam/llama-2-7b-samantha
合併而成,使用了 mergekit 工具。具體的合併配置如下:
slices:
- sources:
- model: Severus27/BeingWell_llama2_7b
layer_range: [0, 32]
- model: ParthasarathyShanmugam/llama-2-7b-samantha
layer_range: [0, 32]
merge_method: slerp
base_model: TinyPixel/Llama-2-7B-bf16-sharded
parameters:
t:
- filter: self_attn
value: [0, 0.5, 0.3, 0.7, 1]
- filter: mlp
value: [1, 0.5, 0.7, 0.3, 0]
- value: 0.5 # fallback for rest of tensors
tokenizer_source: union
dtype: bfloat16
量化方法
使用了多種量化方法,如 GGML_TYPE_Q2_K、GGML_TYPE_Q3_K 等,不同的量化方法在位數、大小和質量損失等方面有所不同。具體信息請參考“提供的文件”部分。
📄 許可證
該模型遵循 llama2 許可證。
信息表格
屬性 | 詳情 |
---|---|
模型類型 | llama |
訓練數據 | GBaker/MedQA-USMLE-4-options、cognitivecomputations/samantha-data、shibing624/medical |
模型創建者 | Sethu Iyer |
許可證 | llama2 |
支持語言 | 英語、中文 |
庫名稱 | transformers |
提示模板 | Below is an instruction that describes a task. Write a response that appropriately completes the request. ### Instruction: {prompt} ### Response: |
量化者 | TheBloke |
標籤 | llama、merge、medical |
常用提示信息
⚠️ 重要提示
手動下載者幾乎不需要克隆整個倉庫!提供了多種不同的量化格式,大多數用戶只需要選擇並下載單個文件。
💡 使用建議
在使用模型時,根據自己的硬件資源選擇合適的量化文件和參數設置。如果有 GPU 加速,建議將部分層卸載到 GPU 以提高性能。同時,注意更長的序列長度需要更多的資源,可能需要根據實際情況進行調整。



