chatglm.cpp使用手记

news2024/11/20 4:28:41

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.cpp

mkdir 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 脚本获取不到

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1081473.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新手教程!制作电子期刊的必备网站

随着数字时代的到来,电子期刊已经成为一种重要的阅读方式。无论是为了学习、工作还是娱乐,电子期刊都以其方便、快捷、多样化的特点,越来越受到人们的欢迎。 对于想要制作电子期刊的新手来说,首先需要找到一些专业的工具来制作电子…

构建图像金字塔:探索 OpenCV 的尺度变换技术

构建图像金字塔:探索 OpenCV 的尺度变换技术 引言什么是图像金字塔?为什么需要图像金字塔?构建高斯金字塔构建拉普拉斯金字塔图像金字塔的应用示例:在不同尺度下检测图像中的边缘 结论 引言 在计算机视觉领域,图像金字…

关于链表指针的深刻理解

以下列代码为例 //终于给我搞清楚指针的指向究竟是怎么看的了// 按编号对职工记录进行递增排序 void sortById(List* list) {Employee* p, * q, * tail NULL;// tail 变量则是一个边界指针,初始值为 NULL。while (list->head->next ! tail) // tail 变量则是…

elasticsearch(ES)分布式搜索引擎03——(RestClient查询文档,ES旅游案例实战)

目录 3.RestClient查询文档3.1.快速入门3.1.1.发起查询请求3.1.2.解析响应3.1.3.完整代码3.1.4.小结 3.2.match查询3.3.精确查询3.4.布尔查询3.5.排序、分页3.6.高亮3.6.1.高亮请求构建3.6.2.高亮结果解析 4.旅游案例4.1.酒店搜索和分页4.1.1.需求分析4.1.2.定义实体类4.1.3.定…

本地安装多个node版本,gvnm来安装切换使用。vue2和vue3对node版本要求不一样

首先,本地下载安装gvnm https://github.com/Kenshin/gnvm.。 里面有安装使用方式。 使用gvnm 来管理切换本地node 版本。 2,切换为高版本node,或是在vue2项目package.json 启动打包的时候 配置修改。就无需再切换低版本node 来启动vue2项目了 "s…

(视频教程)Complexheatmap做热图之设置不一样的注释效果

热图我们号的热图系列已经写的很完善了,也写过其他的热图,随便在公众号检索关键词”热图“就有很多,这里就不再列举了。要是一般的热图设置什么的网上也是一大堆,我们也没有写的必要。这里要写的这个热图主要是为了解决一个问题&a…

安卓-APP启动优化技术方案汇总

应用有三种启动状态:冷启动、温启动或热启动。每种状态都会影响应用向用户显示所需的时间。在冷启动中,应用从头开始启动。在另外两种状态中,系统需要将后台运行的应用带入前台。 我们建议您始终在假定冷启动的基础上进行优化。这样做也可以…

探索 Redis 与 MySQL 的双写问题

在日常的应用开发中,我们经常会遇到需要使用多种不同类型的数据库管理系统来满足各种业务需求。其中最典型的就是Redis和MySQL的组合使用。 这两者拥有各自的优点,例如Redis为高性能的内存数据库提供了极快的读写速度,而MySQL则是非常强大的…

生活中的视音频技术

生活中的视音频技术 平时我们打开电脑中自己存电影的目录的话,一般都会如下图所示,一大堆五花八门的电影。(其实专业的影视爱好者一概会把影视文件分门别类的,但我比较懒,一股脑把电影放在了一起) 因为下载…

避坑:不要在调试版本中的修改程序逻辑

作为一名开发者,我想,你最不希望发生的事情之一是:当你调试一个Bug的时候,Bug就消失了,但直接运行的时候,Bug又出现了。 通过 #ifdef DEBUG 技法,可以将额外的调试代码放置到程序中。毕竟&…

单目标应用:墨西哥蝾螈优化算法(Mexican Axolotl Optimization,MAO)求解微电网优化MATLAB

一、微网系统运行优化模型 微电网优化模型介绍: 微电网多目标优化调度模型简介_IT猿手的博客-CSDN博客 二、墨西哥蝾螈优化算法MAO 墨西哥蝾螈优化算法(Mexican Axolotl Optimization,MAO)由Yenny Villuendas-Rey 1等人于2021…

10.11作业

多继承代码实现沙发床 #include <iostream>using namespace std;class Sofa {private:int h;public:Sofa() {cout << "Sofa无参构造" << endl;}Sofa(int h): h(h) {cout << "Sofa有参构造" << endl;}Sofa(const Sofa& …

Telink泰凌微TLSR8258蓝牙开发笔记(二)

在开发过程中遇到了以下问题&#xff0c;记录一下 1.在与ios手机连接后&#xff0c;手机app使能notify&#xff0c;设备与手机通过write和notify进行数据交换&#xff0c;但是在连接传输数据一端时间后&#xff0c;设备收到write命令后不能发出notify命令&#xff0c;打印错误…

java 无感hook实现(修改jdk)

背景 1 工作需要&#xff0c;需要修改一个java的程序逻辑&#xff0c;之前都是用的frida修改的&#xff0c;但是现在的工作场景&#xff0c;重视效率&#xff0c;所以frida这种重工具被pass了&#xff0c;只能重新选其他工具&#xff0c;初始的时候是想用java本身的一些修改工…

Java之TCP和UDP进行网络编程

目录 一.网络编程 1.1网络编程的作用 1.2网络编程的基本概念 1.3网络编程的实现 二.UDP网络编程 2.1UDP数据报套的初步了解 2.2Java数据报套接字通信模型 2.3Java编程实现UDP通信 三.TCP网络编程 3.1TCP流套接字api 3.2TCP通信代码实现 3.2.1短连接实现代码 3.…

【特纳斯电子】基于物联网的指纹密码锁系统设计-实物设计

资料下载链接&#xff1a;基于物联网的指纹密码锁系统设计-实物设计 - 电子校园网 编号&#xff1a; T3732205M-SW 设计简介&#xff1a; 本设计是基于单片机的指纹密码锁&#xff0c;主要实现以下功能&#xff1a; 1、可通过密码解锁 2、可通过云平台解锁 3、可通过指纹解…

基于SSM+Vue的大学学术交流论坛

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

保姆式教程:MAC安装Android studio(包括安装JDK,Android SDK),解决gradle下载慢的问题

文章目录 参考文章安装JDK并配置环境变量安装JDK配置JDK相关的环境变量 Android studio 安装下载Android studiogradle下载慢解决方法 安装Android SDK选择jdk版本安装SDK并配置环境变量 参考文章 原文链接 原文链接 安装JDK并配置环境变量 安装JDK 下载地址 下载后双击安装…

Mongo

MongoDB MongoDB 基础 MongoDB 是什么&#xff1f; MongoDB 是一个基于 分布式文件存储 的开源 NoSQL 数据库系统&#xff0c;由 C 编写的。MongoDB 提供了 面向文档 的存储方式&#xff0c;操作起来比较简单和容易&#xff0c;支持“无模式”的数据建模&#xff0c;可以存储…

java处理时间-去除节假日以及双休日

文章目录 一、建表:activity_holiday_info二、java代码1、ActivitityHolidayController.java2、ActivityHolidayInfoService.java3、ActivityHolidayInfoServiceImpl.java 三、测试效果 有些场景需要计算数据非工作日的情况&#xff0c;eg&#xff1a;统计每个人每月工作日签到…