five

MKTY-3B-Chat

收藏
魔搭社区2025-10-11 更新2025-10-04 收录
下载链接:
https://modelscope.cn/datasets/AaronAaron/MKTY-3B-Chat
下载链接
链接失效反馈
官方服务:
资源简介:
### 📖 模型简介 该模型是“明康慧医 - 基于LLM与多模态人工智能的健康管理与辅助诊疗系统设计与实现”项目(简称:明康慧医智慧医疗系统)的组成部分 本模型在医学、医疗及生物学领域进行了微调与优化,其表现优于其底座模型`Qwen2.5-3B-Instruct`。微调过程采用LoRA算法,分两步进行,且仅针对中文语言。首先,通过增量训练(Pretrain)阶段,利用医学书籍、病历及医疗相关文章等语料数据进行初步训练。随后,进行指令监督微调(SFT),使用的语料包括症状与对应病历、医患对话(症状描述及诊断)、医学知识问答,以及基于“大模型讨论机制”的对话语料。总数据量约为`2.88GB`。 特别地,模型在“大模型讨论机制”方面进行了优化。该机制的具体运作方式如下:模型在回答每个问题时,会基于不同的上下文生成多个结果,模拟“多人发表观点”的场景。系统还设有“主持人”角色,负责总结各轮讨论的观点。随后,所有参与者根据原始问题、主持人的总结以及各自的上下文,进行下一轮讨论。此过程循环往复,直至讨论结果收敛(语义趋于一致)或达到预设的最大讨论轮数。 ### 🔧 硬件条件 若使用GPU推理,则至少需要`7GB`显存。若显存容量不足7GB或无独立显卡,使用`CPU` + `7GB RAM`内存也可以运行MKTY-3B-Chat大模型。 ### 🚀 使用示例 基于通义千问`Qwen2.5-3B-Instruct`,可直接通过`transformers`库快速加载启动。 **模型加载** ```python from transformers import AutoModelForCausalLM, AutoTokenizer def load_model_and_tokenizer(model_name): model = AutoModelForCausalLM.from_pretrained( model_name, torch_dtype="auto", device_map="auto" ) tokenizer = AutoTokenizer.from_pretrained(model_name) return model, tokenizer def generate_response(prompt, messages, model, tokenizer, max_new_tokens=2000): messages.append({"role": "user", "content": prompt}) text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True ) model_inputs = tokenizer([text], return_tensors="pt").to(model.device) generated_ids = model.generate( **model_inputs, max_new_tokens=max_new_tokens ) generated_ids = [ output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids) ] response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0] messages.append({"role": "assistant", "content": response}) return response ``` **普通问答模式** ```python if __name__ == "__main__": model_name = r"MKTY-3B-Chat" messages = [] model, tokenizer = load_model_and_tokenizer(model_name) while True: prompt = input("User> ") if prompt == "exit": break response = generate_response(prompt, messages, model, tokenizer) print("MKTY>", response) ``` **大模型讨论模式** ```python if __name__ == "__main__": model_name = "MKTY-3B-Chat" discuss_rounds = 3 agent_number = 3 model, tokenizer = load_model_and_tokenizer(model_name) messages_arr = [[] for _ in range(agent_number)] while True: prompt = input("User> ") if prompt == "exit": break moderator_opinion = "暂无" for i in range(discuss_rounds): responses_arr = [] prompt_per_round = "- 问题:\n" + prompt + "\n - 上轮讨论主持人意见:\n" + moderator_opinion + "\n - 请你结合主持人意见,对上述医疗或医学专业的问题发表详细观点,可以质疑并说明理由。\n" for j in range(agent_number): messages = messages_arr[j] response = generate_response(prompt_per_round, messages, model, tokenizer) responses_arr.append(response) print(f"第{i + 1}轮讨论,LLM {j + 1}观点>\n", response) print("-------------------") moderator_prompt = "- 问题:\n" + prompt + "\n\n" for res_index in range(len(responses_arr)): moderator_prompt = moderator_prompt + f"- LLM {res_index + 1}观点:\n" + responses_arr[res_index] + "\n\n" moderator_prompt = moderator_prompt + "对于给定的医疗相关问题,请综合各LLM观点,结合自身知识,得出你自己的判断,尽可能详尽,全部都分析到位,还要充分说明理由。\n" moderator_opinion = generate_response(moderator_prompt, [], model, tokenizer) print(f"第{i + 1}轮讨论,主持人的意见>\n", moderator_opinion) print("-------------------") clear_history(messages_arr) ```

### 📖 模型简介 本模型为"明康慧医——基于大语言模型(LLM)与多模态人工智能的健康管理与辅助诊疗系统设计与实现"项目(简称:明康慧医智慧医疗系统)的组成部分。 本模型已在医学、医疗及生物学领域完成微调与优化,其性能优于基座模型`Qwen2.5-3B-Instruct`。微调过程采用低秩自适应(LoRA)算法,分两步开展,且仅面向中文语言。第一步为增量训练(Pretrain)阶段,依托医学书籍、病历及医疗相关文章等语料数据完成初步训练。随后开展指令监督微调(SFT),所用语料涵盖症状与对应病历、医患对话(含症状描述及诊断内容)、医学知识问答,以及基于"大模型讨论机制"的对话语料。总数据量约为`2.88GB`。 尤为特别的是,本模型针对"大模型讨论机制"完成了优化。该机制的具体运行逻辑如下:模型在应答每个问题时,将基于不同上下文生成多组结果,模拟"多人发表观点"的场景。系统还设置了"主持人"角色,负责汇总各轮讨论的观点。此后,所有参与者将结合原始问题、主持人的总结内容以及各自的上下文,开展下一轮讨论。该过程循环往复,直至讨论结果收敛(语义趋于一致)或达到预设的最大讨论轮次。 ### 🔧 硬件条件 若采用GPU进行推理,则至少需要`7GB`显存。若显存容量不足7GB或无独立显卡,通过`CPU` + `7GB RAM`内存即可运行MKTY-3B-Chat大模型。 ### 🚀 使用示例 本模型基于通义千问`Qwen2.5-3B-Instruct`构建,可直接通过`transformers`库快速加载并启动。 **模型加载** python from transformers import AutoModelForCausalLM, AutoTokenizer def load_model_and_tokenizer(model_name): model = AutoModelForCausalLM.from_pretrained( model_name, torch_dtype="auto", device_map="auto" ) tokenizer = AutoTokenizer.from_pretrained(model_name) return model, tokenizer def generate_response(prompt, messages, model, tokenizer, max_new_tokens=2000): messages.append({"role": "user", "content": prompt}) text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True ) model_inputs = tokenizer([text], return_tensors="pt").to(model.device) generated_ids = model.generate( **model_inputs, max_new_tokens=max_new_tokens ) generated_ids = [ output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids) ] response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0] messages.append({"role": "assistant", "content": response}) return response **普通问答模式** python if __name__ == "__main__": model_name = r"MKTY-3B-Chat" messages = [] model, tokenizer = load_model_and_tokenizer(model_name) while True: prompt = input("User> ") if prompt == "exit": break response = generate_response(prompt, messages, model, tokenizer) print("MKTY>", response) **大模型讨论模式** python if __name__ == "__main__": model_name = "MKTY-3B-Chat" discuss_rounds = 3 agent_number = 3 model, tokenizer = load_model_and_tokenizer(model_name) messages_arr = [[] for _ in range(agent_number)] while True: prompt = input("User> ") if prompt == "exit": break moderator_opinion = "暂无" for i in range(discuss_rounds): responses_arr = [] prompt_per_round = "- 问题: " + prompt + " - 上轮讨论主持人意见: " + moderator_opinion + " - 请你结合主持人意见,对上述医疗或医学专业的问题发表详细观点,可以质疑并说明理由。 " for j in range(agent_number): messages = messages_arr[j] response = generate_response(prompt_per_round, messages, model, tokenizer) responses_arr.append(response) print(f"第{i + 1}轮讨论,LLM {j + 1}观点> ", response) print("-------------------") moderator_prompt = "- 问题: " + prompt + " " for res_index in range(len(responses_arr)): moderator_prompt = moderator_prompt + f"- LLM {res_index + 1}观点: " + responses_arr[res_index] + " " moderator_prompt = moderator_prompt + "对于给定的医疗相关问题,请综合各LLM观点,结合自身知识,得出你自己的判断,尽可能详尽,全部都分析到位,还要充分说明理由。 " moderator_opinion = generate_response(moderator_prompt, [], model, tokenizer) print(f"第{i + 1}轮讨论,主持人的意见> ", moderator_opinion) print("-------------------") clear_history(messages_arr)
提供机构:
maas
创建时间:
2025-10-02
搜集汇总
数据集介绍
main_image_url
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作