通过大模型实现自己的私人医生

上一篇分享了如何在笔记本搭建自己的大模型,可是对个人真正有用的还是垂直领域的专用模型。比如医学,法律,军事等。医学对每个人都有用,本来可以百度查,可是百度自己把自己污染了。 所以搭建自己的医学大模型很有必要。基于这个考虑,我在github上找到了QiZhenGPT来搭建医学大模型,实现自己的私人医生。
          启真医学大模型坚持“数据+知识双轮驱动”的技术路线,通过大模型技术和医学知识库的紧密结合,融合医疗应用场景中的实际需求,从医学数据治理、医学推理、医患问答、病历自动生成、临床决策辅助支持系统等方面开展迭代研发,助力大模型技术在医疗行业的落地和应用实践.本身支持Chinese-LLaMA-Plus-7B、CaMA-13B、ChatGLM-6B模型,其中基于Chinese-LLaMA-Plus-7B效果最好,本篇只是验证搭建过程,为了模型处理方便,选择ChatGLM-6B。下面是具体的搭建过程。github上原作者介绍的很简单:

  1. 环境安装;

   pip install -r requirements.txt

  1. 获取ChatGLM-6B,详情见这里;

  2. 下载LoRA,将模型下载并放在lora目录下;

  3. 修改gradio_chatglm_demo.py里的模型位置参数;

  4. 启动demo;

      python gradio_chatglm_demo.py
    搭建过开源项目的读者,看到这里都会会心一笑。如果如此简单就搭建成功,那我这篇文章就没有了意义。
    下面是基于阿里云服务器搭建。环境linux ,conda(如何申请与搭建这些环境,网上很多就不在赘述)。具体步骤如下:
     1)下载代码
      
git clone GitHub - CMKRG/QiZhenGPT: QiZhenGPT: An Open Source Chinese Medical Large Language Model|一个开源的中文医疗大语言模型

        cd QiZhenGP
      2)搭建虚拟环境
      conda create -n qzgpt python=3.10 
      source activate

       conda activate   qzgpt
     3)调整requirements.txt
       增加:
      pyqt5==5.12.2

    opencv-python

     spyder==5.1.5

     google-auth==1.7.2

     google-auth-oauthlib==0.4.2

     tensorboard-data-server==0.6.1

     tensorboard-plugin-wit==1.7.0

     tb-nightly==2.11.0a20220906
    4)安装依赖:pip install -r requirements.txt
     5)报错处理,如果报找不到。直接在requirements.txt删除找不到的包。然后分别安装。我这里分别用以下命令安装了      conda install -c intel mkl_random,conda install -c intel   mkl-service,conda install absl-py
     6)下载模型,调整gradio_chatglm_demo.py中的base_model_path = 'chatglm-6b/'

lora_model_path = 'lora/'
终于到了激动人心的启动时刻了。执行python gradio_chatglm_demo.py。报错:

File "/mnt/workspace/QiZhenGPT/gradio_chatglm_demo.py", line 18, in <module>

    model = model.eval()

  File "/home/pai/envs/qzgpt/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1930, in eval

    return self.train(False)

  File "/home/pai/envs/qzgpt/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1911, in train

    module.train(mode)

  File "/home/pai/envs/qzgpt/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1911, in train

    module.train(mode)

  File "/home/pai/envs/qzgpt/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1911, in train

    module.train(mode)

  [Previous line repeated 4 more times]

  File "/home/pai/envs/qzgpt/lib/python3.10/site-packages/peft/tuners/lora.py", line 322, in train

    self.weight.data += (

RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cpu!
这个就有点要命了。网上搜索了一大堆全是废话。也问了通义千问与文心一言,基本的答案就是翻译一下原文,不解决根本问题。后面多方分析,从报错位置上看。还是model.eval()函数的问题,首先弄清eval()函数的含义,是启动预估模式。那要解决用gpu训练的事,必须在前面解决。根据这个与网上的答案。增加import torch   device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')    model = model.to(device)。增加完成后,再次启动。启动成功。界面如下:

可能搭建看起来好像很轻松 ,实际整整搞了14个小时   。当看到启动界面的时候,又感觉回到了3年前,搞定一个技术难题的兴奋。至此,基于大模型的私人医生搭建成功。山静似太古,日长如小年,下篇再见。

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值