基础模型:
- ruslanmv/ai-medical-model-32bit
- Locutusque/Llama-3-Hercules-5.0-8B
- refuelai/Llama-3-Refueled
库名称: transformers
标签:
- mergekit
- 合并
- 医疗
许可证: 其他
语言:
- 英语
数据集:
- ruslanmv/ai-medical-chatbot
- Locutusque/hercules-v5.0
Medichat-V2-Llama3-8B
这是使用mergekit创建的预训练语言模型合并版本。
该模型在结构化非结构化临床文本方面特别有效。
模型组成与特点:
-
基础模型: 该模型基于"refuelai/Llama-3-Refueled",这是Llama3-8B模型的改进版本,以其遵循指令的能力和跨领域适应性著称。
-
合并模型:
- ruslanmv/ai-medical-model-32bit: 专门针对回答技术性医学问题进行微调的模型,提供了坚实的医学知识基础。
- Locutusque/Llama-3-Hercules-5.0-8B: 以其处理复杂指令和有效进行对话交互的能力闻名,尤其在科学和技术语境中表现突出。
该模型采用DARE TIES合并方法,以refuelai/Llama-3-Refueled为基础进行合并。
合并的模型
合并中包含以下模型:
配置
使用以下YAML配置生成该模型:
models:
- model: Locutusque/Llama-3-Hercules-5.0-8B
parameters:
weight: [0.25, 0.35, 0.45, 0.35, 0.25]
density: [0.1, 0.25, 0.5, 0.25, 0.1]
- model: refuelai/Llama-3-Refueled
- model: ruslanmv/ai-medical-model-32bit
parameters:
weight: [0.55, 0.45, 0.35, 0.45, 0.55]
density: [0.1, 0.25, 0.5, 0.25, 0.1]
merge_method: dare_ties
base_model: refuelai/Llama-3-Refueled
parameters:
int8_mask: true
dtype: bfloat16
使用方式
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
class MedicalAssistant:
def __init__(self, model_name="sethuiyer/Medichat-V2-Llama3-8B", device="cuda"):
self.device = device
self.tokenizer = AutoTokenizer.from_pretrained(model_name)
self.model = AutoModelForCausalLM.from_pretrained(model_name).to(self.device)
self.sys_message = '''
您是一个基于大量健康信息数据集训练的AI医疗助手。请提供详尽的回答。
如果不知道特定医学问题的答案,建议寻求专业帮助。
'''
def format_prompt(self, question):
messages = [
{"role": "system", "content": self.sys_message},
{"role": "user", "content": question}
]
prompt = self.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
return prompt
def generate_response(self, question, max_new_tokens=512):
prompt = self.format_prompt(question)
inputs = self.tokenizer(prompt, return_tensors="pt").to(self.device)
with torch.no_grad():
outputs = self.model.generate(**inputs, max_new_tokens=max_new_tokens, use_cache=True)
answer = self.tokenizer.batch_decode(outputs, skip_special_tokens=True)[0].strip()
return answer
assistant = MedicalAssistant()
question = '''
症状:
头晕、头痛和恶心。
可能的鉴别诊断是什么?
'''
response = assistant.generate_response(question)
print(response)
根据头晕、头痛和恶心的症状,可能的鉴别诊断包括以下几种情况:
1. 前庭系统疾病: 如良性阵发性位置性眩晕(BPPV)、迷路炎和前庭神经炎,可导致头晕、眩晕和恶心。
2. 偏头痛: 可引发剧烈头痛、恶心和头晕,可能由压力、睡眠模式改变或某些食物触发。
3. 内耳感染: 如迷路炎或中耳炎,可能导致头晕、恶心和头痛。
4. 梅尼埃病: 内耳疾病,可导致眩晕发作、恶心和听力丧失。
5. 晕动病: 当身体从眼睛、内耳和其他感觉系统接收到冲突信号时发生,可导致头晕、恶心和头痛。
6. 焦虑或惊恐发作: 可能导致头晕、恶心和头痛。
7. 低血糖: 可导致头晕、头痛和恶心。
8. 药物副作用: 某些抗生素、抗组胺药和抗抑郁药可能引起头晕、头痛和恶心。
9. 中风或短暂性脑缺血发作(TIA): 可能导致突发性头晕、头痛和恶心。
10. 脑肿瘤或其他中枢神经系统疾病: 罕见情况下,脑肿瘤或其他中枢神经系统疾病可能导致头晕、头痛和恶心。
建议咨询医疗专业人员进行全面评估和诊断。医生可能会进行体格检查、详细病史采集并安排适当检查以确定症状的根本原因。治疗方案将取决于具体诊断,可能包括药物、生活方式调整或其他干预措施。
prompt = '''
一位52岁女性因6个月的全身乏力、低热和10公斤(22磅)体重减轻就诊。体检显示全身苍白和脾肿大。血红蛋白浓度为7.5 g/dL,白细胞计数为41,800/mm3。白细胞碱性磷酸酶活性降低。外周血涂片显示嗜碱性粒细胞增多伴中幼粒细胞和晚幼粒细胞。骨髓活检显示细胞增生伴未成熟粒细胞增殖。以下哪种机制最可能导致该患者的病情?
以JSON格式输出:
{
"年龄":
"性别"
"既往病史"
"现症状"
"干预措施"
"实验室检查"
"用药情况"
"可能疾病"
}
请仅输出JSON
'''
response = assistant.generate_response(prompt)
print(response)
{
"年龄": 52,
"性别": "女性",
"既往病史": "不详",
"现症状": "全身乏力、低热、10公斤(22磅)体重减轻",
"干预措施": "骨髓活检",
"实验室检查": "血红蛋白浓度: 7.5 g/dL, 白细胞计数: 41,800/mm3, 白细胞碱性磷酸酶活性: 降低, 外周血涂片: 嗜碱性粒细胞增多伴中幼粒细胞和晚幼粒细胞",
"用药情况": "无",
"可能疾病": "慢性粒细胞白血病"
}
量化版本
该模型的量化版本可在mradermacher/Medichat-V2-Llama3-8B-GGUF获取