chatglm.cpp使用手记

2023-10-12 02:01
文章标签 chatglm 使用手记 cpp

本文主要是介绍chatglm.cpp使用手记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

chatglm.cpp AI搭建

    • 1.环境准备
    • 2 githup下载项目
    • 3 安装加载和量化拥抱面模型所需的软件包
    • 4 准备编译环境
    • 5 开始编译项目
    • 6 模型转换
    • 7 CLI 验证
    • 8 web 验证
    • 9 api验证
    • 10 遗留问题

1.环境准备

cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

2 githup下载项目

git clone --recursive https://github.com/li-plus/chatglm.cpp.git && cd chatglm.cpp

3 安装加载和量化拥抱面模型所需的软件包

python3 -m pip install -U pip
python3 -m pip install torch tabulate tqdm transformers accelerate sentencepiece

4 准备编译环境

#准备>=3.12版本cmake
#如果是ubuntu 2004默认安装的cmake是3.16,如果是Ubuntu1804需要如下步骤安装cmake
#CMake 官方提供了一个 APT 存储库,你可以使用它来安装最新版本的 CMake。执行以下步骤:
#安装 apt-transport-https 包以允许使用 HTTPS 下载
sudo apt-get install apt-transport-https
#添加 Kitware APT 存储库的 GPG 密钥:
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc | sudo apt-key add -
#添加 Kitware APT 存储库到你的源列表:
apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main'
apt-get update
apt-get install cmake
cmake --version

5 开始编译项目

pwd
/software/chatglm.cppmkdir build
cp ./CMakeLists.txt build
#纯CPU环境: 
cmake -B build
cmake --build build -j --config Release
#有(nvidia cuda) GPU 环境:
cmake -B build -DGGML_CUBLAS=ON && cmake --build build -j --config Release

6 模型转换

#pytorch_model-00001-of-00007 网址https://cloud.tsinghua.edu.cn/d/674208019e314311ab5c/?p=%2F&mode=list
python3 ./chatglm_cpp/convert.py -i tsinghua_mode/pytorch_model-00001-of-00007.bin -t q4_0  -o chatglm2-6b.bin

7 CLI 验证

./build/bin/main -m chatglm-ggml-f16.bin -i

请添加图片描述

8 web 验证

python3 ./examples/web_demo.py -m chatglm-ggml-f16.bin

请添加图片描述

9 api验证

$MODEL=/software/chatglm.cpp/chatglm-ggml-f16.bin uvicorn api_demo:app --host 0.0.0.0 --port 8080
INFO:     Started server process [282242]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
中国四大名著是指《红楼梦》、《水浒传》、《三国演义》、《西游记》。一般认为它们的作者是曹雪芹、施耐庵、罗贯中、吴承恩。《红楼梦》通行本前八十回的作者是曹雪芹,后四十回续书的作者是高鹗。INFO:     127.0.0.1:53420 - "POST /v1/chat/completions HTTP/1.1" 200 OK
^CINFO:     Shutting down
INFO:     Waiting for application shutdown.
INFO:     Application shutdown complete.
INFO:     Finished server process [282242]curl http://127.0.0.1:8080/v1/chat/completions -H 'Content-Type: application/json'     -d '{"messages": [{"role": "user", "content": "中国四大名著作者分别是谁"}]}'
{"object":"chat.completion","response":"中国四大名著是指《红楼梦》、《水浒传》、《三国演义》、《西游记》。一般认为它们的作者是曹雪芹、施耐庵、罗贯中、吴承恩。《红楼梦》通行本前八十回的作者是曹雪芹,后四十回续书的作者是高鹗。","model":"chatglm2-6b","choices":[{"delta":{"content":"中国四大名著是指《红楼梦》、《水浒传》、《三国演义》、《西游记》。一般认为它们的作者是曹雪芹、施耐庵、罗贯中、吴承恩。《红楼梦》通行本前八十回的作者是曹雪芹,后四十回续书的作者

10 遗留问题

  1. huggingface 克隆不下来
  2. 清华模型转换失败
  3. api_demo.py 脚本获取不到

请添加图片描述

这篇关于chatglm.cpp使用手记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/192455

相关文章

类模板中.h和.cpp的实现方法

一般类的声明和实现放在两个文件中,然后在使用该类的主程序代码中,包含相应的头文件".h"就可以了,但是,模板类必须包含该其实现的.cpp文件才行。也就是说,在你的主程序中,将 #include"DouCirLList.h" 替换成 #include"DouCirLList.cpp" 应该就可以了。 在使用类模板技术时,可在.h中实现,也可在.h和.cpp中分开实现,若用.h实

CPP中的hash [more cpp-7]

写在前面 hash 在英文中是弄乱的含义。在编程中,hash是一种数据技术,它把任意类型的数据通过算法,生成一串数字(hash code),实现hash的函数称为哈希函数,又称散列函数,杂凑函数。在CPP中hashcode是一个size_t类型的数字。 你可能会问?把数据弄乱有什么用?为什么我们要把数据映射到一串数字上?这又什么意义吗?我们先看看hash的性质 一般hash性质 唯一性(唯

【最新华为OD机试E卷-支持在线评测】机器人活动区域(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线评测,专栏文章质量平均 94 分 最新华为OD机试目录: https://blog.

llama.cpp demo

git clone https://github.com/ggerganov/llama.cppcd llama.cpp 修改Makefile使能mfma参数     MK_CFLAGS   += -mfma -mf16c -mavx     MK_CXXFLAGS += -mfma -mf16c -mavx 安装python3依赖 cat ./requirements/requirem

【最新华为OD机试E卷-支持在线评测】分糖果(100分)-多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线评测,专栏文章质量平均 94 分 最新华为OD机试目录: https://blog.

【最新华为OD机试E卷-支持在线评测】查找充电设备组合(200分)-多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线评测,专栏文章质量平均 94 分 最新华为OD机试目录: https://blog.

llama.cpp本地部署大模型

llama.cpp 是一个C++库,用于简化LLM推理的设置,它使得在本地机器上运行大模型(GGUF格式)成为可能。 官网:https://github.com/ggerganov/llama.cpp 模型库: https://huggingface.co/ HF-Mirror 魔搭社区 安装并且使用llama.cpp 0.安装llama.cpp 官方文档:https://gi

gcc/g++编译 cpp/c文件 生成可执行文件

g++编辑cpp生成exe 编译重命名等: g++ –c Hello.cc  编译文件,生成目标文件 Hello.o g++ Hello.o –o abc  连接 并重命名为可执行文件 abc g++ Hello.cc    编译连接一起,生成a.out g++ Hello.cc –o hello 生成a.out并命名为hello 多文件编译 $

TinyWebSever源码逐行注释(一)_webserver.cpp

前言 项目源码地址 项目详细介绍 项目简介: Linux下C++轻量级Web服务器,助力初学者快速实践网络编程,搭建属于自己的服务器. 使用 线程池 + 非阻塞socket + epoll(ET和LT均实现) + 事件处理(Reactor和模拟Proactor均实现) 的并发模型使用状态机解析HTTP请求报文,支持解析GET和POST请求访问服务器数据库实现web端用户注册、登录功能,可以请

CPP多态

目录 前言 多态的概念 多态的定义及实现 多态的构成条件 虚函数 虚函数的重写 虚函数重写的两个例外 C++11 override 和 final 重载、覆盖(重写)、隐藏(重定义)的对比 抽象类 接口继承和实现继承 多态的原理 虚函数表 多态的原理 动态绑定与静态绑定 单继承和多继承关系的虚函数表 单继承中的虚函数表 多继承中的虚函数表 菱形继承、菱形虚拟