这个教程有以下几部分构成:
- 硬件配置
- 概念介绍
- 实操
- 测试结果
1.硬件配置
本文使用的方法配置要求低,没有gpu也可以正常使用(就是有点慢),不管是windows 还是linux,都可以无障碍使用大模型,有脚就行,废话少说, let’s rock!
2.概念介绍
几个部署要用到的概念,工具和项目
- hugging face:
类似于模型的github,各种各样的开源模型都可以在这被找到. - 模型量化技术:
这也是我们能够在低端设备上部署模型的关键理论,降低加载模型的精度使得内存、显存使用量更低.
3.GGUF
这是一种用来高效存储模型的格式,方便快速加载和传输. - llama.cpp
这个工具十分强大,即使没有gpu,也可以使用cpu自带的simd指令集(类似于avx512)进行快速推理,也可以同时使用gpu和cpu一起推理。它也可以被编译到App中,在客户端本地进行推理. 也可以变身为一个chatgpt api兼容的web服务器。总之可玩性非常强.
3.实操
1)hugging face的使用(别的也行,方法类似):
(点点点)
这里就不再对各大厂商发布的模型做介绍了, 可以去官网上选择自己合适的。
举个例子,可以通过翻越某种保护性建筑(高约2m)的方式,访问下面的这个地址,查看google开源的gemma 2模型(it 表示这是对指令微调过的, -GGUF表示这是被转化成GGUF格式的),其中不同等级的经过量化的文件和他们的效果都在表格中,可以选择合适自己的。
https://huggingface.co/bartowski/gemma-2-9b-it-GGUF
下载下来的文件是个GGUF格式的文件。
2)llama.cpp(别的也行,方法类似)
(conrol c + control v)
https://github.com/ggerganov/llama.cpp
如果你有支持cuda的gpu,需要加一个编译时参数(需要重新编译项目)来加速推理过程,可以看看这个教程
https://github.com/ggerganov/llama.cpp/blob/master/docs/build.md#cuda
如果没有GPU下个符合自己电脑架构的release版就可以了
4.检验成果
1) 简单对话机器人
llama-cli -m 你的gguf文件名 -p “You are a helpful assistant” -cnv
2)作为一个服务器使用
使用命令
./llama-server -m 你的gguf文件名 --port 8080
3)gpu参数
-ngl 35, 后面数字越大,代表越多层被移进gpu,随之而来的是速度越快。
还有挺多玩法,可以看看github上的补充细节,相信你们能做到,呵呵。
测试结果
本人在一台gpu虚拟化(显存6GB P40)的linux虚拟机上(内存32GB,30虚拟核心)使用5bit量化的gemma2-9b-it模型,速度可以达到10tokens/s,考虑到垃圾的硬件配置,这个速度可以说是不错了。
要是还有什么别的需求,可以给我留言,我再针对一些详细的玩法,比如说构建前端啦,后端啦,chatgpt api之类的,写点文章。帮助大家打破信息茧房。
大模型部署书籍推荐
《ChatGLM3大模型本地化部署、应用开发与微调》作为《PyTorch 2.0深度学习从零开始学》的姊妹篇,专注于大模型的本地化部署、应用开发以及微调等。
本书不仅系统地阐述了深度学习大模型的核心理论,更注重实践应用,通过丰富的案例和场景,引导读者从理论走向实践,真正领悟和掌握大模型本地化应用的精髓。全书共分13章,全方位、多角度地展示了大模型本地化实战的完整方案。
适宜人群
本书适合大模型的初学者、有一定基础的大模型研究人员、大模型应用开发人员阅读学习。同时《ChatGLM3大模型本地化部署、应用开发与微调》还可作为高等院校或高职高专相关专业大模型课程的教材,助力培养新一代的大模型领域人才。
本书作者
王晓华
- 高校计算机专业讲师,研究方向为云计算、大数据与人工智能。
版权信息
作者简介
内容简介
前言
第1章 大模型时代的开端
- 1.1 大模型的历史与发展 15
- 1.2 为什么要使用大模型 40
- 1.3 本章小结 56
第2章 PyTorch 2.0深度学习环境搭建
- 2.1 安装Python开发环境 58
- 2.2 安装PyTorch 2.0 94
- 2.3 Hello ChatGLM3 114
- 2.4 本章小结 184
第3章 基于gradio的云上自托管ChatGLM3部署实战
- 3.1 gradio的基本使用详解 186
- 3.2 基于gradio的猫狗分类可视化训练与预测实战 396
- 3.3 基于网页端的ChatGLM3部署和使用 468
- 3.4 基于私有云服务的ChatGLM3部署和使用 480
- 3.5 本章小结 489
第4章 使用ChatGLM3与LangChain实现知识图谱抽取和智能问答
- 4.1 当ChatGLM3遇见LangChain 491
- 4.2 ChatGLM3+ LangChain搭建专业问答机器人 545
- 4.3 使用ChatGLM3的LLM终端搭建知识图谱抽取与智能问答 570
- 4.4 本章小结 579
第5章 适配ChatGLM3终端的Template与Chain详解
- 5.1 基于输入模板的人机交互 581
- 5.2 Template中示例的最佳选择 593
- 5.3 使用Chain提高ChatGLM3的能力 605
- 5.4 LangChain中的记忆功能 611
- 5.5 基于ChatGLM3终端撰写剧情梗概、评论与宣传文案实战 620
- 5.6 本章小结 656
第6章 ChatGLM3多文本检索的增强生成实战
- 6.1 使用自然语言处理方法对目标进行查找 659
- 6.2 基于LLM终端完成文本内容抽取与文本问答 679
- 6.3 使用LLM终端完成反向问题推断 739
- 6.4 本章小结 751
第7章 构建以人为本的ChatGLM3规范化Prompt提示工程
- 7.1 提示工程模板构建的输入与输出格式 753
- 7.2 提示工程模板高级用法 771
- 7.3 结合提示工程的网页搜索服务实战 791
- 7.4 本章小结 811
第8章 使用ChatGLM3的思维链构建
- 8.1 思维链初探 813
- 8.2 思维链详解及其实战 822
- 8.3 本章小结 834
第9章 GLM源码分析与文本生成实战
- 9.1 GLM组件详解 836
- 9.2 GLM整体架构详解与文本生成实战 871
- 9.3 本章小结 898
第10章 低资源单GPU微调ChatGLM3实战
- 10.1 什么是大模型微调 900
- 10.2 ChatGLM3大模型微调的准备内容 912
- 10.3 虚拟客服多轮问答实战 952
- 10.4 加速的秘密:accelerate训练方法与模型量化详解 1004
- 10.5 更快的量化训练方案:QLoRA基础内容详解 1054
- 10.6 QLoRA微调文本生成实战 1086
- 10.7 本章小结 1141
第11章 会使用工具的ChatGLM3
- 11.1 ChatGLM3调用工具源码详解与实战 1143
- 11.2 ChatGLM3官方工具注册与调用源码分析与实战 1245
- 11.3 ChatGLM3实战:构建个人助理之美妆助手 1305
- 11.4 本章小结 1326
第12章 上市公司财务报表非结构化信息抽取实战
- 12.1 超长文本处理功能的ChatGLM3与真实财务报表的处理 1328
- 12.2 单报表非结构化信息抽取实战 1343
- 12.3 本章小结 1355
第13章 上市公司财务报表智能问答与财务预警实战
- 13.1 基于ChatGLM3的非结构化数据抽取与大规模财务报表数据库的建立 1357
- 13.2 基于自然语言的上市公司财务报表智能问答与财务预警实战 1389
- 13.3 本章小结 1421
附录 大模型的“幻觉”