大模型微调:聊聊ChatGLM-6B医疗数据微调

ChatGLM-6B (介绍以及本地部署) ChatGLM-6B 是一个开源的、支持中英双语问答的对话语言模型,基于架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。ChatGLM-6B 使用了和ChatGLM相同的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。 阅读详情

参考了多个医疗大模型,如扁鹊、灵心等,重新思考了下微调的方案以及数据集的格式;基于ChatGLM/其它LLM整合多种微调方法的非官方实现的框架,审视其数据集格式,以及调试效果,进行微调。
最终基于liucongg/ChatGLM-Finetuning开源框架成功的微调出来我想要的结果。

服务器环境

阿里云PAI平台

开源库下载

在服务器上通过git一键下载即可:
在这里插入图片描述
在这里插入图片描述

ChatGLM-6B下载

直接在服务器上,通过魔塔社区的sdk下载代码一键下载即可:
在这里插入图片描述

我加了一句代码打印出下载地址,然后通过mv命令拷贝到指定路径下。

#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('ZhipuAI/ChatGLM-6B')
print(model_dir)

指令数据集准备

数据集的格式严格参考开源库的格式,这里的格式直接参考/data/xxx.json数据格式即可。

{"instruction": "一名年龄在70岁的女性,出现了晕厥、不自主颤抖、情绪不稳等症状,请详细说明其手术治疗和术前准备。", "input": "", "output": "该病需要进行电极导线、脉冲发生器和永久心脏起搏器置入术,并需要使用镇静药物和局麻对病人进行手术治疗。术前准备包括1-3天的时间进行术前检查和生活方式的调整。"}
{"instruction": "一个患者的卵巢小细胞癌转移至其它部位,是否有必要进行手术治疗?", "input": "", "output": "当卵巢小细胞癌转移至其它部位时,手术治疗的效果可能不理想,因此一般不推荐进行手术治疗。针对转移病灶,可以采用化疗、放疗等治疗手段进行综合治疗。"}
{"instruction": "一位60岁男性患者由于肝动脉瘤出现肝功能异常,具体表现为黄疸,该如何诊治?", "input": "", "output": "该患者可能出现了肝动脉瘤并发症之一的梗阻性黄疸,需要进行腹部平片、彩色多普勒超声、CTA、动脉造影等检查后确定诊断,治疗方面应按照病因治疗,如若为肝动脉炎、动脉粥样硬化等病因,应该采取手术治疗,而若是单纯的肝动脉瘤,可以进行介入治疗或手术治疗。"}
{"instruction": "患者男,28岁,关节部位红肿疼痛,排尿困难,近期有过微生物感染史。请问可能患的是什么疾病?如何治疗?", "input": "", "output": "可能患有反应性关节炎。治疗方案可以采用沙利度胺、泼尼松等药物。同时还要注意休息和饮食。"}
{"instruction": "一名患者因腹胀、纳差等症状就诊,检查发现肝大、腹水及肝功能损害,诊断为肝淀粉样变性,请问该患者应该接受哪些治疗方案?", "input": "", "output": "该患者应该接受弥漫性系膜硬化、苯丙氨酸氮芥等治疗方案。"}
{"instruction": "治疗方法上有何不同", "input": "", "output": "急性非ST段抬高型心肌梗死的治疗主要是通过改善生活方式和控制危险因素来预防,紧急情况下可能需要静脉注射血栓溶解药物;而自身免疫性肝炎的治疗则包括药物治疗和手术治疗,如激素、免疫抑制剂、肝移植等"}
{"instruction": "一位中年男性感染了军团杆菌,导致出现了弥漫性血管内凝血、充血性心力衰竭等并发症,应该怎样进行辅助检查和诊断?", "input": "", "output": "首先应该做特殊实验室检查和血常规和生化检查,进一步的辅助诊断可考虑X线检查,X线胸片检查、化验检查、血清学检查以及实验室检查等方法。"}
{"instruction": "胆管癌和偏头痛的主要症状有何区别?", "input": "", "output": "胆管癌的主要症状包括黄疸、肝肿大等消化系统症状,而偏头痛的主要症状是头部疼痛。"}
{"instruction": "胡女士出现了黄疸、恶心、呕吐等症状,可能患了什么疾病?", "input": "", "output": "胡女士可能患有胆道张力低下综合征。建议尽快到内科进行检查,并进行西医和中医治疗。"}
{"instruction": "一位妊娠31周孕妇在家中自行服用草药,随后出现呕吐、腹痛、恶心、疲劳、皮肤瘙痒、黄疸等症状,血液检查显示血清转氨酶升高,交叉免疫电泳检测显示未见明显异常。 ", "input": "", "output": "可能是由于在未咨询医生的情况下自行服用草药导致的急性妊娠期肝内胆汁淤积症。建议及时就医,如需紧急治疗可在医生指导下使用胆酸螯合剂、皮质激素等药物,并密切监测胎儿状态与身体其他部位不适情况。"}

开始训练,按文档准备好脚本 run.sh;根据自己的服务器卡数选择即可,修改模型路径,数据集参数即可。
在这里插入图片描述

脚本内容:
在这里插入图片描述

生成的文件:
在这里插入图片描述

在这里插入图片描述

合并Lora参数文件

需要将Lora微调后的参数文件与原模型参数文件合并,执行脚本即可。

python merge_lora.py

当然要替换下里面的路径参数。最终生成的参数文件:
在这里插入图片描述

推理

执行脚本predict.py文件即可,但里面的代码有些问题,用修改后的即可,同样需要修改路径参数

# -*- coding:utf-8 -*-
# @project: ChatGLM-Finetuning
# @filename: predict
# @author: 刘聪NLP
# @zhihu: https://www.zhihu.com/people/LiuCongNLP
# @contact: logcongcong@gmail.com
# @time: 2023/12/6 20:41
"""
    文件说明:
            
"""
import argparse
import torch
from model import MODE
import os
# 启用CUDA
os.environ['CUDA_VISIBLE_DEVICES'] = '0'

def parse_args():
    parser = argparse.ArgumentParser()
    # Model
    parser.add_argument("--device", type=str, default="0", help="")
    parser.add_argument("--mode", type=str, default="glm", help="")
    parser.add_argument("--model_path", type=str, default="/mnt/workspace/demos/ChatGLM-Finetuning/output-glm/epoch-2-step-262", help="")
    parser.add_argument("--max_length", type=int, default=500, help="")
    parser.add_argument("--do_sample", type=bool, default=True, help="")
    parser.add_argument("--top_p", type=float, default=0.8, help="")
    parser.add_argument("--temperature", type=float, default=0.8, help="")
    return parser.parse_args()


def predict_one_sample(instruction, input, model, tokenizer, args):
    result, _ = model.chat(tokenizer, instruction + input, max_length=args.max_length, do_sample=args.do_sample,
                           top_p=args.top_p, temperature=args.temperature)
    return result


if __name__ == '__main__':
    args = parse_args()
    model = MODE[args.mode]["model"].from_pretrained(args.model_path, device_map="auto",
                                                     torch_dtype=torch.float16)
    tokenizer = MODE[args.mode]["tokenizer"].from_pretrained(args.model_path)
    instruction = "一位年轻女性患者出现了风团性斑块、丘疹等症状,请问此病可以由哪些科室进行治疗?"
    input = ""
    r = predict_one_sample(instruction, input, model, tokenizer, args)
    print(r)

返回结果:
在这里插入图片描述

总结

liucongg/ChatGLM-Finetuning开源库提供了Lora指令微调的方式,其逻辑主要还是编写了一套新的train代码,支持指令的微调。

程序员为什么要学大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

事实上,抢你饭碗的不是AI,而是会利用AI的人。

继科大讯飞、阿里、华为等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?

与其焦虑……

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉优快云大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

​

一、LLM大模型经典书籍

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

在这里插入图片描述

二、640套LLM大模型报告合集

这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)

在这里插入图片描述

三、LLM大模型系列视频教程

在这里插入图片描述

四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)

在这里插入图片描述

LLM大模型学习路线 ↓

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。

  • 内容:

    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。

  • 内容:

    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.3 流水线工程
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。

  • 内容:

    • L3.1 Agent模型框架
    • L3.2 MetaGPT
    • L3.3 ChatGLM
    • L3.4 LLAMA
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。

  • 内容:

    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

这份 LLM大模型资料 包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉优快云大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

​

【Instruction Tuning】ChatGLM 微调实战(附源码) Instruction Tuning 来微调一个监督学习模型排序序列来训练一个打分模型前两篇文章主要对 RM 和 RL 两部分进行了讲解和实验,但无数的经验向我们证明 —— 拥有一个好的 SFT 的模型对后两步的训练至关重要。由于在 RL 训练过程中会加入与 SFT 模型的相似度(KL-Divergence)惩罚,这意味着 RL 模型的上限很大程度上取决于 SFT 模型。为此,我们今天来重点讲一讲如何通过 ChatGLM 来微调一个读懂我们指令的模型。 阅读详情

相关推荐

学习实践ChatGLM-6B(部署+运行+微调)

该模型基于 General Language Model (GLM) 架构,具有 62 亿参数。注:结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。ChatGLM-6B可以实现的能力这是一个对话机器人,所以基本的问答,系统都支持。自我认知提纲写作文案写作邮件助手信息抽取角色扮演评论比较旅游向导。

LZL2020LZL的博客 2万+

ChatGLM两代的部署/微调/实现:从基座GLM、ChatGLM的LoRA/P-Tuning微调、6B源码解读到ChatGLM2的微调与实现

随着『GPT4多模态/Microsoft 365 Copilot/Github Copilot X/ChatGPT插件』的推出,绝大部分公司的技术 产品 服务,以及绝大部分人的工作都将被革新一遍类似iPhone的诞生 大家面向iOS编程 有了App Store现在有了ChatGPT插件/GPT应用商店,以后很多公司 很多人面向GPT编程(很快技术人员分两种,一种懂GPT,一种不懂GPT)然ChatGPT/GPT4基本不可能开源了,而通过上文《

结构之法 算法之道 6万+

【环境搭建】使用openSfM+MVSNet重建稠密点云

本帖详细介绍了如何使用openSfM+MVSNet对真实采集的数据进行稀疏重建与稠密重建,并针对一些真实场景下可能遇到的问题进行了整理。

YuhsiHu的博客 1972

ChatGLM(国内版的chatGPT)

ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答,更多信息请参考我们的博客。

qq_41771998的博客 2万+

华为灵衢UB总线介绍

华为发布"灵衢"(UB)超节点互联协议,旨在构建支持AI大模型计算的基础设施。该协议采用统一内存语义和对等架构,使设备可直接访问远程内存,实现资源池化。技术突破包括2.1微秒超低时延和TB级带宽,支持64节点、52万张昇腾卡的集群互联。相比传统RDMA,"灵衢"更注重系统级资源调度,而非单纯数据传输。华为开放技术规范,推动生态建设,已有厂商开发兼容IP核。"灵衢"可适应x86、RISC-V等架构,未来将扩展至百万卡规模集群。

技术引领业务创新 4425

orangepi 5 plus ubuntu24.04上安装redroid

OrangePi 5 Plus运行reDroid云手机方案总结 在RK3588+Ubuntu 24.04上部署reDroid(Android容器化方案)的关键步骤: 内核要求:确保启用binderfs(无需ashmem,新版reDroid使用memfd替代); 安装流程: 安装Docker并配置代理加速镜像拉取; 拉取reDroid镜像(推荐Android 12/13 ARM64版本); 通过挂载binderfs启动容器,指定分辨率与DPI参数; 多实例管理: 脚本化创建多个容器(如8个实例),分配独立端口

babytiger的专栏 2292

医疗大模型微调:聊聊ChatGLM-6B医疗数据微调

参考了多个医疗大模型,如扁鹊、灵心等,重新思考了下微调的方案以及数据集的格式;基于ChatGLM/其它LLM整合多种微调方法的非官方实现的框架,审视其数据集格式,以及调试效果,进行微调。

2401_82469710的博客 817

NVIDIA DGX Spark (Ubuntu 24.04) 部署Isaac Sim与Isaac Lab:二进制安装与ROS2集成实战

本文详细介绍了在NVIDIA DGX Spark工作站(Ubuntu 24.04系统)上,通过预编译二进制包稳定部署Isaac Sim与Isaac Lab的完整实战流程。文章重点剖析了二进制安装相较于源码编译和pip安装的优势,有效规避了CUDA、PyTorch等关键组件的版本冲突陷阱,并逐步指导完成环境配置、Isaac Lab集成、Conda环境管理以及ROS2 Jazzy的集成,最终构建出完整的机器人仿真与强化学习开发平台。

kite3的博客 396

大模型微调:聊聊ChatGLM-6B医疗数据微调(附教程)

大模型微调:聊聊ChatGLM-6B医疗数据微调(附教程)

pythonhy的博客 1362

Django Cookie/Session

Cookie是一种小型的文本文件,通常由Web服务器发送到用户浏览器,并存储在用户的本地计算机上。当用户再次访问该网站时,浏览器会将Cookie发送回服务器,从而实现用户身份验证、个性化设置等功能。Session是一种在服务器端存储用户会话信息的方式。与Cookie不同,Session数据存储在服务器上,而不是客户端。Django框架通过在客户端存储一个Session ID来实现Session的跟踪。Django框架的Cookie/Session机制为开发者提供了方便的数据存储和会话管理功能。

froginwe11的博客 467

南京理工大学计算机预推免面试(双非重点关注)

南京理工大学总体来说对双非学校比较友好,上岸率比较高,而且面试形式是线上,在预推免的过程中,可以作为重点关注的学校,但是一定要注意南理报名截止的时间,部分学校可能保研名额公示的比较晚,对于保研边缘人来说很可能会错过,我的建议是,即使不确定能否拿到保研名额,先查一下截止时间,先在系统上报名!!一旦拿到了offer,就是铁的,保底专硕,而且有很大的技巧性,一定要认真看哈!!!每个人的情况可能都不一样,如果有需要帮忙可以私我~~~

D1379951481的博客 2018

聊聊ChatGLM-6B医疗数据微调

参考了多个医疗大模型,如扁鹊、灵心等,重新思考了下微调的方案以及数据集的格式;基于ChatGLM/其它LLM整合多种微调方法的非官方实现的框架,审视其数据集格式,以及调试效果,进行微调。

2401_85327249的博客 1073

基于遗传算法改进BP神经网络的电池容量SOC预测

,遗传算法BP神经网络能很好的实现对电池容量soc的训练和预测,BP神经网络是一种成熟的神经,相对于其他神经网络,拥有很多的训练函数,传递函数,可以调节的参数非常多,对各种问题都可以达到一个比较理想的效果,关键看如何调试参数,选择训练传递函数,遗传算法改进BP神经网络的初始权值阈值,达到改进BP神经网络的目的,从而更好的实现对电池容量SOC的预测

abc991835105的博客 768

聊聊大模型微调训练全流程的思考

对于模型的微调,一开始我是想的太简单了,觉得只要按照基座官方模型文档调试即可;随着了解的深入与不断的学习,微调是个大工程而且对于领域模型来说,其训练流程:预训练 --> 监督微调 --> RHLF 中包含的事项与知识太多。

2401_82469710的博客 1568

大模型算法岗常见面试题100道

LangChain是一个用于构建和运行大型语言模型应用的开源框架。它提供了一套工具和组件,帮助开发者将大型语言模型(如 GPT-3)与其他工具和API结合,以完成更复杂的任务。1、LangChain包含哪些核心概念?Components:可重用的模块,例如API调用、数据库查询等。Chains:将多个Components链接在一起以完成特定任务的流程。Prompt Templates: 用于指导语言模型生成输出的文本模板。Output Parsers:解析语言模型输出的工具。

具身机器人和通用AI 1959

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

ChatGLM-6B在医疗领域的应用:智能问诊系统开发

本文介绍了基于星图GPU平台,如何自动化部署ChatGLM-6B智能对话服务镜像,以快速搭建一个智能问诊系统。该系统可作为医疗服务的补充,为用户提供初步的症状分析与健康建议,有效缓解医疗资源压力。

weixin_35238815的博客 380

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ChatGLM-6B模型微调实战:领域自适应技术详解

本文介绍了如何在星图GPU平台上自动化部署ChatGLM-6B智能对话服务镜像,实现领域自适应的模型微调。通过该平台,用户可快速搭建专业对话系统,应用于医疗问答、法律咨询等垂直领域的智能客服场景,显著提升行业对话的准确性和专业性。

weixin_36474966的博客 407

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

聊聊大模型微调训练全流程的思考,零基础入门到精通,看这篇就够了!赶紧收藏!

对于模型的微调,一开始我是想的太简单了,觉得只要按照基座官方模型文档调试即可;随着了解的深入与不断的学习,微调是个大工程而且对于领域模型来说,其训练流程:预训练 --> 监督微调 --> RHLF 中包含的事项与知识太多。

Java癫疯的博客 1319

开源大模型本地部署实战:从ChatGLM3-6B到生产级服务化

大语言模型作为当前人工智能领域的核心技术,其工作原理基于Transformer架构,通过海量数据预训练获得强大的语言理解和生成能力。这一技术突破为自然语言处理任务带来了革命性进展,其核心价值在于能够理解和生成接近人类水平的文本。从工程实践角度看,开源大模型通过提供完整的模型权重和架构代码,赋予了开发者前所未有的技术自主权,使得私有化部署和深度定制成为可能。特别是在数据隐私要求严格的金融、医疗等行业,以及需要高频调用的业务场景中,开源方案能够有效控制长期成本并确保流程可控。通过结合量化技术和高效推理框架,开发

weixin_29531177的博客 355

ChatGLM-6B持续学习实践:增量更新不遗忘

本文介绍了如何在星图GPU平台上自动化部署ChatGLM-6B智能对话服务镜像,实现模型的持续学习与增量更新。通过该平台,用户可便捷配置环境并训练模型,使其在不遗忘原有知识的前提下学习新领域(如医疗、法律等),适用于智能客服、专业知识问答等多样化对话场景。

weixin_42588555的博客 179
上一篇: 【LLM大模型】使用Langchain与ChatGLM实现本地知识库
下一篇: 【AI大模型】LLaMA-Factory微调入门个人重制版
Llama-Turbo
博客等级 码龄4年 9901粉丝 2022原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值