AIGC|手把手教你进行ChatGLM模型部署实践

这篇具有很好参考价值的文章主要介绍了AIGC|手把手教你进行ChatGLM模型部署实践。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景介绍

模型部署基本步骤分为模型选择、模型部署、运行,如果需要在特定的场景下定制化模型,则还需要进行数据集的选择、数据集格式转换、微调。

根据上述的步骤本教程选取如下的开源模型、数据集,来对医疗场景下进行定制化模型部署。当然模型部署对GPU要求非常高,所以本教程将使用AutoDL提供的服务器资源。

  • 地址:https://www.autodl.com/home

ChatGLM-6B(模型):清华开源的、支持中英双语对话的语言模型,具有62亿参数。

  • 地址:https://github.com/THUDM/ChatGLM-6B

HuatuoGPT-sft-data-v1(数据集):医疗数据集,拥有333M庞大数据。

  • 地址:https://huggingface.co/datasets/FreedomIntelligence/HuatuoGPT-sft-data-v1

ChatGLM Efficient Tuning(微调):针对ChatGLM-6B进行微调,集成多个微调框架。

  • 地址:https://github.com/hiyouga/ChatGLM-Efficient-Tuning/blob/main/README_zh.md

二、创建服务器资源

进入AutoDL官网申请一台服务器资源,可以按如下图步骤操作:

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

进入后选择社区镜像,在红框处输入:

WhaleOps/dolphinschedulerllm/dolphinscheduler-llm-0521

这个镜像集成了基础的模型运行环境,可以方便以后部署。

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

创建完成后等待服务器创建完成即可。创建完成后可以参考下图:

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

至此服务器资源已创建完成。

三、模型部署

点击JupyterLab进入服务器的控制台。

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

进入终端,正式开始模型部署。

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

3.1 下载ChatGLM模型

首先进入/root/autodl-tmp目录,在这里创建一个文件夹用来保存ChatGLM模型,文件目录可以参考下图用git_project来存放模型。

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

进入git_project目录输入git clone https://huggingface.co/THUDM/chatglm-6b 命令下载模型,模型文件比较大可能要等一段时间。下载完成后可以进入chatglm-6b目录,目录内容参考下图,后面运行就需要依赖下图的模型。

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

3.2 下载ChatGLM运行依赖

回到git_project目录输入git clone https://github.com/THUDM/ChatGLM-6B.git 命令,下载完成后进入ChatGLM-6B目录,可以看到如下目录:

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

我们使用pip install -r requirements.txt 命令下载脚本依赖的库。等待命令跑完即可。

3.3 ChatGLM运行

运行模型需要配置一下模型的文件位置,输入vim web_demo.py ,修改内容参考下图红框处。

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

把红框处的内容改成我们刚刚下载好的模型地址。上图是已经改过的,可以参考下。

现在已经可以运行了,输入 python web_demo.py 试试看。

运行后可以看到只能够在本地自己使用,为了让运行的模型可以分享给大家使用,可以修改参数share=True,参数位置位于web_demo.py最底部。可以参考下图:

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

再尝试输入 python web_demo.py 后可以看到控制台打印了url地址,参考下图:

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

复制 public URL的地址,放到浏览器中体验一下部署好的模型吧。

这是部署好的界面:

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

四、数据集

虽然基础模型在各个方面都了解,但一旦深入就开始胡言乱语了。下面我们开始对模型微调,使它在医疗方面表现的更好一些。

4.1 下载数据集

AutoDL服务器下载HuggingFace内容比较慢,所以先在本地下载好数据集后,再上传到服务器。

进入这个网址,按下图步骤进行操作:

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

4.2 数据集环境配置

进入git_project目录,下载微调框架,输入 git clone :

https://github.com/hiyouga/ChatGLM-Efficient-Tuning.git。

进入ChatGLM-Efficient-Tuning目录后可以看到如下子目录:

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

我们进入data目录,在data目录下新建huatuo_gpt文件夹用来存放我们的数据集和数据集格式转换脚本。

把下载好的数据集放到huatuo_gpt下,并新增一个脚本文件。参考图如下:

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

脚本可以参考链接,具体脚本编写参考这个网址:

https://huggingface.co/docs/datasets/dataset_script

回到data目录,编辑dataset_info.json文件,对刚才新增的数据集进行配置。把dataset_info.json划到最后面,新增如下红框内容:

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

至此数据集环境已经配置好了。

五、微调

环境已经配置完成了,现在可以进行微调,具体步骤如下。

回到ChatGLM-Efficient-Tuning目录,输入命令:

CUDA_VISIBLE_DEVICES=0 python src/train_sft.py \
    --do_train \
    --model_name_or_path /root/autodl-tmp/git_project/chatglm-6b \
    --dataset huatuo_gpt \
    --finetuning_type lora \
    --output_dir /root/autodl-tmp/train_model \
    --per_device_train_batch_size 4 \
    --gradient_accumulation_steps 4 \
    --lr_scheduler_type cosine \
    --logging_steps 10 \
    --save_steps 1000 \
    --learning_rate 5e-5 \
    --num_train_epochs 3.0 \
    --fp16 > output.log &

对部分参数讲解一下:

--model_name_or_path:基础模型的文件位置。

--dataset:刚才在dataset_info中设置的名称。

--finetuning_type:微调模型的类型。

--output_dir:训练后模型的文件位置。

具体模型参数可以参考这个地址:

https://github.com/hiyouga/ChatGLM-Efficient-Tuning/wiki/%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95#%E5%BE%AE%E8%B0%83%E8%AE%AD%E7%BB%83

运行这个脚本大概需要40小时左右。

六、运行

微调结束后进入ChatGLM-Efficient-Tuning目录,输入vim src/utils/config.py命令修改一下基础模型的文件位置,具体参考如下:

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

为了可以在浏览器中访问,我们回到ChatGLM-Efficient-Tuning目录输入vim src/web_demo.py, 划到最下面修改参数为share=True,参考如下:

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

现在可以运行微调后的模型了,输入python src/web_demo.py --checkpoint_dir 训练后模型的文件位置 命令。可以在控制台看见如下红框的地址。复制到浏览器上就可以体验了。

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

七、训练前后对比

微调前的效果:

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

微调后的效果:

AIGC|手把手教你进行ChatGLM模型部署实践,AIGC,AIGC,ChatGLM,人工智能,模型部署,微调,数据集

可以看到微调前的对医疗的回答结果比较浅显,微调后回答结果专注治疗、解决办法。

到此就结束了,大家可以自己动手尝试一下。

更多AI小知识欢迎关注“神州数码云基地”公众号,回复“AI与数字化转型”进入社群交流

版权声明:文章由神州数码武汉云基地团队实践整理输出,转载请注明出处。文章来源地址https://www.toymoban.com/news/detail-771740.html

到了这里,关于AIGC|手把手教你进行ChatGLM模型部署实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一分钱不花!手把手教你部署Google最强开源AI大模型Gemma教程

    一分钱不花!本地部署Google最强开源AI大模型Gemma教程 半个多月前,谷歌搞了一波突然袭击,毫无预兆地发布了新一代AI模型Gemma,并宣称这是全球性能最强大的轻量级开源系列模型。 经过实测,虽然Gemma的使用体验不如ChatGPT-4等成熟的闭源大模型,但是本地运行模式还是有其

    2024年04月10日
    浏览(58)
  • Llama 3 开源!手把手带你进行大模型推理,部署,微调和评估

    节前,我们组织了一场算法岗技术面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 基于大模型实践和技术交流,我们

    2024年04月26日
    浏览(34)
  • 【MMDeploy&MMPose】手把手教你在Windows上使用MMDeploy1.x进行ONNX和TensorRT的部署(Python篇)

    2023.9.8更新 C++ SDK篇已经发布,点击这里传送到文章 MMDeploy 提供了一系列工具,帮助我们更轻松的将 OpenMMLab 下的算法部署到各种设备与平台上。 MMDeploy 定义的模型部署流程,这里直接使用了官方文档的内容,如下图所示:  1)模型转换(Model Converter) 模型转换的主要功能是

    2024年01月16日
    浏览(46)
  • AIGC|超详细教程提升代码效率,手把手教你如何用AI帮你编程

    目录 一、辅助编程 (一)代码生成 二、其他功能 (一)工具手册 (二)源码学习 (三)技术讨论 作为主要以 JAVA 语言为核心的后端开发者,其实,早些时间我也用过比如 Codota、Tabnine、Github 的 Copilot、阿里的 AI Coding Assistant 等 IDEA 插件,但是我并没有觉得很惊奇,感觉就

    2024年02月04日
    浏览(58)
  • 手把手教你用 Jenkins 自动部署 SpringBoot

    CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。 CI/CD 的核心概念可以总结为三点: 持续集成 持续交付 持续部署 CI/CD 主要针对在集成新代码时所引发的问题(俗称\\\"集成地狱\\\")。 为什么会有集成地狱这个“雅称”呢?大家想想我们一个项目部署的

    2024年02月02日
    浏览(48)
  • 手把手教你Linux部署Nexus3私服

    对maven来说仓库分为两类:本地仓库和远程仓库,有三种专门的Maven仓库管理软件可以用来帮助我们建立私服:chiva、Artifactory和Nexus。Nexus是当前最流行的Maven仓库管理软件。Nexus包含了各种类型的仓库的概念,包括代理仓库、宿主仓库、仓库组等。每一种仓库都提供了丰富实用

    2024年02月19日
    浏览(58)
  • 手把手教你将项目部署到服务器!

    一、导入centos7虚拟机: 打开VMWare,点击“打开虚拟机”,选择centos7.ova之后,选择存储路径: 点击导入: 选择“不再显示此消息”,点击“重试”按钮: 点击“编辑虚拟机设置”,修改处理器、内存、硬盘等信息后,启动 按Ctrl+Alt键可以切换到windows下。 启动成功后,输入

    2023年04月20日
    浏览(51)
  • 手把手教你用MindSpore训练一个AI模型!

    首先我们要先了解深度学习的概念和AI计算框架的角色( https://zhuanlan.zhihu.com/p/463019160 ),本篇文章将演示怎么利用MindSpore来训练一个AI模型。和上一章的场景一致,我们要训练的模型是用来对手写数字图片进行分类的LeNet5模型 请参考( http://yann.lecun.com/exdb/lenet/ )。 图1 M

    2024年02月04日
    浏览(56)
  • 手把手教你部署上线,你确定不瞧一瞧?

    Hello~ 大家好! 我又来更新咯 今天带大家部署云上线! 部署上线? 案例:基于云服务器上线青蛙吃苍蝇小游戏 1、安装apache服务 # yum install httpd -y 2、启动apache服务 # systemctl start httpd 3、在华为云控制台上开启安全组 4、上传项目包到服务器上 # yum install lrzsz -y    //安装rz命令

    2024年02月19日
    浏览(42)
  • 手把手教你用 Docker 部署 Vue3 项目

    用 docker 可以帮我们快速部署前端项目,本文介绍了如何用 docker 快速部署 vue3 项目。请准备好一台云服务器并安装好 docker,然后开始阅读本教程。 执行 npm run build 打包后项目目录中会多出一个 dist 文件夹 利用 docker 拉取 nginx 镜像 在服务器中创建工作目录,这里我放在 /ho

    2024年02月05日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包