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安装:
pip install transformers bitsandbytes accelerate
使用示例
以下是一个Python代码片段,演示如何与Medical-Llama3-8B-16bit模型交互并生成对您医疗问题的回答:
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 = '''
You are an AI Medical Assistant trained on a vast dataset of health information. Please be thorough and
provide an informative answer. If you don't know the answer to a specific medical inquiry, advise seeking professional help.
'''
创建符合聊天模板结构的消息
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文件)。
贡献
我们欢迎对本代码库的贡献!如果您有改进建议或想法,请随时创建拉取请求。
免责声明
尽管我们努力提供信息丰富的回复,但无法保证模型输出的准确性。对于确定的医疗建议,务必咨询医生或其他医疗专业人员。
【全文结束】


