Medical-Llama3-8B-16bit:针对医疗问答微调的Llama3模型
该仓库提供了一个经过微调的强大Llama3 8B模型版本,专门设计用于以信息丰富的方式回答医疗问题。它利用了AI医疗聊天机器人数据集(ruslanmv/ai-medical-chatbot)中包含的丰富知识。
模型与开发
- 开发者: ruslanmv
- 许可证: Apache-2.0
- 微调基础模型: meta-llama/Meta-Llama-3-8B
主要特点
- 医疗专精: 针对健康相关问题进行了优化。
- 知识库: 基于全面的医疗聊天机器人数据集进行训练。
- 文本生成: 能够生成信息丰富且可能有帮助的回复。
安装方法
该模型可通过Hugging Face Transformers库访问。使用pip安装:
bash
pip install transformers bitsandbytes accelerate
使用示例
以下是一个Python代码片段,演示如何与Medical-Llama3-8B-16bit模型交互并生成对医疗问题的回答:
python
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
import torch
model_name = "ruslanmv/Medical-Llama3-8B"
device_map = 'auto'
bnb_config = BitsAndBytesConfig(load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.float16,)
model = AutoModelForCausalLM.from_pretrained(model_name, quantization_config=bnb_config, trust_remote_code=True, use_cache=False, device_map=device_map)
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
tokenizer.pad_token = tokenizer.eos_token
def askme(question):
sys_message = '''
您是一名经过大量健康信息数据集训练的AI医疗助手。请全面详细地
提供信息丰富的回答。如果您不知道某个特定医疗问题的答案,请建议寻求专业帮助。
'''
创建用于聊天模板的结构化消息
messages = [{"role": "system", "content": sys_message}, {"role": "user", "content": question}]
应用聊天模板
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=100, use_cache=True)
提取并返回生成的文本,去除提示内容
response_text = tokenizer.batch_decode(outputs)[0].strip()
answer = response_text.split('<|im_start|>assistant')[-1].strip()
return answer
示例用法
- 上下文:首先描述您的问题。
- 问题:然后提出您的问题。
question = '''我是一名35岁男性,过去几个月一直感到疲劳,
对寒冷更加敏感,皮肤干燥发痒。
这些症状可能与甲状腺功能减退症有关吗?
如果是,我应该采取哪些步骤进行正确诊断并讨论治疗方案?'''
print(askme(question))
该模型生成的回答类型示例:
根据您的描述,您可能正在经历甲状腺功能减退症的症状。
甲状腺功能减退症是一种甲状腺激素分泌不足的状况,会导致多种症状。
常见症状包括疲劳、体重增加、便秘和皮肤干燥。
如果您出现这些症状,重要的是看医生进行正确诊断和制定治疗计划。
医生可能会安排血液检查来检测您的甲状腺激素水平
重要提示
该模型仅用于提供信息参考,不应替代专业医疗建议。对于任何健康问题,请务必咨询合格的医疗保健提供者。
许可证
该模型根据Apache许可证2.0分发(详情请参阅LICENSE文件)。
贡献
我们欢迎对此仓库的贡献!如果您有任何改进建议或想法,请随时创建pull request。
免责声明
尽管我们努力提供信息丰富的回答,但无法保证模型输出的准确性。对于确定性的医疗建议,务必咨询医生或其他医疗保健专业人士。
【全文结束】

