ChatGLM的部署,主要是两个步骤:

  1. 在Github上下载chatglm的库文件
  2. 在Hugging Face上下载模型参数与配置文件

ChatGLM包

从Github上看ChatGLM项目文件的结构来看,仅仅是包含三种部署方式的py代码与微调的py代码



而相关的实现细节,比如神经网络、激活函数、损失函数等具体的实现,并不在该项目源码中。

不管以哪种方式部署,最核心就是三句代码,其作用是引入模型参数,初始化transformers配置;以web部署的方式为例:

tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
model = model.eval() // 引入Gradio,实现web方式的使用 // 调用模型方法,开始进行对话推理
xx = model.stream_chat(xxxx);

web的调用是基于Gradio;

api的调用是基于fastapi;

cli的调用是基于python解释器;

微调

微调的解决方案一般是P-Tuning或LoRA;ChatGLM-6B是基于P-Tuning v2实现的微调,P-Tuning v2是基于连续提示(continuous prompts)的思想。微调会生成新的模型参数文件,也称为checkpoint文件。

微调时可以选择全参数微调或是部分参数微调,其流程是训练+推理。训练生成新的checkpoint文件(模型参数);推理则是加载模型参数文件。

训练前,需要调整参数,一般修改train.sh脚本文件就行。

推理时,加载原模型文件与微调后生成的checkpoint文件。还是通过那三句代码。

输出的checkpoint文件如下:



checkpoint文件夹内的文件如下:

transformers的联系

目前的模型,都会对接到Hugging Face平台的transformers库中,通过transformers库来管控大模型。所以在推理阶段通过三句代码就能调用AI模型。在微调阶段,生成的checkpoint文件中,其结构是Hugging Face平台的文件结构,包含transformers的相关配置及初始化信息。

总结

聊聊ChatGLM-6B部署与微调的深入理解的更多相关文章

  1. Tomcat 部署 Web 项目的本质理解

    手动创建Web项目 不借助集成开发工具IDE,直接手动创建一个Web项目,有助于理解Web项目的本质. 1.首先建立一个myweb文件夹(自己定义项目名). 2.然后可以建一个html文件(文件里面只 ...

  2. IDEA 部署Tomcat教程(透彻理解操作)

    目录 首先我们看一下 IDEA 里的当前项目结构配置 设置 Web 资源目录和 Tomcat读取的 web.xml 配置文件 Tomcat 的 Run/Debug 配置 处理常见问题 Web资源找不到 ...

  3. 《进击吧!Blazor!》系列入门教程 第一章 8.部署

    <进击吧!Blazor!>是本人与张善友老师合作的Blazor零基础入门教程视频,此教程能让一个从未接触过Blazor的程序员掌握开发Blazor应用的能力. 视频地址:https://s ...

  4. 使用Kylin构建企业大数据分析平台的4种部署方式

    本篇博客重点介绍如何使用Kylin来构建大数据分析平台.根据官网介绍,其实部署Kylin非常简单,称为非侵入式安装,也就是不需要去修改已有的 Hadoop大数据平台.你只需要根据的环境下载适合的Kyl ...

  5. Office web app server2013详细的安装和部署

    转自:http://blog.csdn.net/u011355311/article/details/9360293 SharePoint 2013集成Office web apps server20 ...

  6. Windows Phone 8初学者开发—第8部分:理解编译和部署

    原文 Windows Phone 8初学者开发—第8部分:理解编译和部署 第8部分:理解编译和部署 原文地址: http://channel9.msdn.com/Series/Windows-Phon ...

  7. eclipse maven项目中使用tomcat插件部署项目

    maven的tomcat插件部署web项目,我简单认为分两种,一种是部署到内置tomcat,另一种是部署到安装的tomcat. 第一种部署,默认是部署在内置tomcat的8080端口,如果不需要改端口 ...

  8. [svc]rsync简单部署

    安装rsync服务端-backup服务器 yum install rsync -y useradd rsync -s /sbin/nologin -M chown -R rsync.rsync /da ...

  9. 在github Pages上部署octopress搭建个人博客系统

    原文链接:http://caiqinghua.github.io/blog/2013/08/26/deploy-octopress-to-github-pages/ 引子 上一篇博客已经说了为什么要搭 ...

  10. Azure资源模板化部署,伦家不懒都不好意思了

    如果老板让你在云平台上部署一套系统,你准备怎么做? 嗯,估计得根据具体需求开通或创建一大堆东西:虚拟机.存储.数据库.虚拟网络……别急还没完,接着还要对这些东西的规模.配置等各方面调整和优化.一系列环 ...

随机推荐

  1. # 简明快速配置 Rust 工具链

    以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/dBzL9WZ8P1L1X9j_XkmNQg 你可能会为不同版本的工具 ...

  2. Journey / Solution Set - 「NOIP-S 2020」「Prob. A-C」

    这种东西怎么写啊... Day 1(好像也没有 Day 2 到了 NK 后发现正好可以进门,于是就什么也没有检查的进去了. 进门前问了一下 LYC 之前问过的一个问题,他说没有头绪,然后就没怎么说话了 ...

  3. 成本阶问题:财务模块axcr004合计金额检核表第18行合计金额与明细差异过大问题处理?

    财务模块axcr004合计金额检核表第18行合计金额与明细差异过大问题处理? 可能原因:生产开立工单时元件未建在生产料件BOM明细中,导致成本阶没有算到,需要手动更改成本阶. 公式: 处理办法:修改成 ...

  4. 调节LED的亮度

    虽然Devices Plus已经介绍过Arduino的多种应用和作品示例,但是了解相关基础知识对于任何项目的构建仍然是非常重要的!这次,我们将为您介绍Arduino电子制作的基础知识.此次的分享嘉宾是 ...

  5. 【matplotlib 实战】--百分比柱状图

    百分比堆叠式柱状图是一种特殊的柱状图,它的每根柱子是等长的,总额为100%.柱子内部被分割为多个部分,高度由该部分占总体的百分比决定. 百分比堆叠式柱状图不显示数据的"绝对数值", ...

  6. ABC322 A-F 题解

    前言 为什么 ABC 天天出原题. 为什么 D 题这么答辩. A 直接找. 赛时代码 B 模拟. 赛时代码 C 对于每一个节日从后往前扫到上一个节日. 赛时代码 D 搜索,不需要任何剪枝,直接爆搜. ...

  7. CC BY-SA 4.0原文及翻译

    CC BY-SA 4.0原文及翻译 英文参考链接 中文参考链接 原文: Attribution 4.0 International (CC BY 4.0) This is a human-readab ...

  8. HTTP 和 RPC 的区别

    一句话概括 RPC代表:Feign.Dubbo RPC 主要用于公司内部的服务调用,性能消耗低,传输效率高,服务治理方便. HTTP 代表:RestTemplate.HttpClient HTTP 主 ...

  9. 【源码系列#01】vue3响应式原理(Proxy)

    专栏分享:vue2源码专栏,vue3源码专栏,vue router源码专栏,玩具项目专栏,硬核推荐 欢迎各位ITer关注点赞收藏 在学习 Vue3 是如何进行对象的响应式代理之前,我想我们应该先去了解 ...

  10. React 应用构建(环境)

    可以少去理解一些不必要的概念,而多去思考为什么会有这样的东西,它解决了什么问题,或者它的运行机制是什么? 一. 环境搭建 工作编辑器:Visual Studio Code. Javascript 解析 ...