首页 > 其他分享 >chatglm.cpp使用手记

chatglm.cpp使用手记

时间:2023-08-12 23:58:15浏览次数:51  
标签:bin 6b 使用手记 chatglm2 -- chatglm cpp

目前绝大多数LLM模型都是python实现的,运行速度有限(包括ChatGLM2-6b),幸好有大神将其用C++重写了一遍,让运行速度大大提高。

项目地址:li-plus/chatglm.cpp: C++ implementation of ChatGLM-6B & ChatGLM2-6B (github.com)

部署过程如下(环境:WSL 2 ubuntu 22.04,显卡: N卡RTX 4060) - 注:无显卡,纯CPU也行

1、克隆项目

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

2、编译

注:执行下面操作前,请先确保ubuntu环境里有make, cmake环境(没有请自行google或baidu)

纯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

3、模型转换

原生的ChatGLM2-6B模型无法直接使用,需要将其转换成ggml的bin文件,假如我们已提前下载了 THUDM/chatglm2-6b-int4 · Hugging Face,放在windows主系统的e:\chatglm2-6b-in4目录

python3 convert.py -i /mnt/e/chatglm2-6b-int4 -t q4_0 -o chatglm2-6b-int4.bin

执行完后,将在当前目录下,得到1个名为chatglm2-6b-int4.bin

4、CLI 验证

 ./build/bin/main -m /home/jimmy/code/models/chatglm2-6b-int4.bin -i

 有显卡的情况下,c++版本与python版本速度的区别不太明显,但在纯CPU环境下,c++版本明显快很多。

5、python绑定

纯CPU环境:

pip install -U chatglm-cpp

nvidia CUDA环境: 

CMAKE_ARGS="-DGGML_CUBLAS=ON" pip install -U chatglm-cpp

Mac环境:

CMAKE_ARGS="-DGGML_METAL=ON" pip install -U chatglm-cpp

安装好以后,cd examples目录:

  • CLI模式验证
 python cli_chat.py -m /home/jimmy/code/models/chatglm2-6b-int4.bin -i

  • web_demo

  • api-demo

 先安装

pip install 'chatglm-cpp[api]'

然后就可以验证了:

MODEL=/home/jimmy/code/models/chatglm2-6b-int4.bin uvicorn api_demo:app --host 127.0.0.1 --port 8080

MODEL=后面的路径,大家根据情况换成模型的实际路径,这里的api_demo.app,实际是在examples/api_demo.py里指定的

同时从源码里可以看到,对外暴露了2个url,如果顺利的话,启动后将看到类似以下输出:

如果启动过程中报错:

pandas PydanticImportError:`BaseSettings`已移动到`pydantic-settings`包中

可以尝试:

pip install ydata-profiling

启动成功 后,用ApiPost验证一下:

 

  •  longchain-api

先启动

MODEL=/home/jimmy/code/models/chatglm2-6b-int4.bin uvicorn chatglm_cpp.langchain_api:app --host 127.0.0.1 --port 8000

然后测试longchain-client

python langchain_client.py

源代码如下:

from langchain.llms import ChatGLM

llm = ChatGLM(endpoint_url="http://127.0.0.1:8000", max_token=2048, top_p=0.7, temperature=0.95, with_history=False)
print(llm.predict("你好"))

如果运行过程中报错

PydanticUserError: If you use `@root_validator` with pre=False (the default) you MUST specify `skip_on_failure=True`. Note that `@root_validator` is deprecated and should be replaced with `@model_validator`. For further information visit https://errors.pydantic.dev/2.0.2/u/root-validator-pre-skip

 尝试:

pip install ydata-profiling

 

参考文章:

ChatGLM |

标签:bin,6b,使用手记,chatglm2,--,chatglm,cpp
From: https://www.cnblogs.com/yjmyzz/p/chatglm_cpp.html

相关文章

  • 开启想象翅膀:轻松实现文本生成模型的创作应用,支持LLaMA、ChatGLM、UDA、GPT2等模型,开
    开启想象翅膀:轻松实现文本生成模型的创作应用,支持LLaMA、ChatGLM、UDA、GPT2等模型,开箱即用1.介绍TextGen实现了多种文本生成模型,包括:LLaMA、ChatGLM、UDA、GPT2、Seq2Seq、BART、T5、SongNet等模型,开箱即用。1.1最新更新[2023/06/15]v1.0.0版本:新增ChatGLM/LLaMA/Bloom模......
  • yaml-cpp生成yaml文件及解析yaml文件
    1) 源码编译及安装获取源码$git clone https://github.com/jbeder/yaml-cpp.git$cd yaml-cpp && mkdir build && cd build && cmake .. && make && make install使用样例:由于yaml格式文件与xml和json格式的文件类似,采用树形结构。Yaml对于树节点定义为No......
  • 使用阿里云微调chatglm2
    完整的代码可以参考:https://files.cnblogs.com/files/lijiale/chatglm2-6b.zip?t=1691571940&download=true#%%[markdown]##微调前#%%model_path="/mnt/workspace/ChatGLM2-6B/chatglm2-6b"fromtransformersimportAutoTokenizer,AutoModel#载入Tokenizer......
  • 在矩池云使用ChatGLM-6B & ChatGLM2-6B
    ChatGLM-6B和ChatGLM2-6B都是基于GeneralLanguageModel(GLM)架构的对话语言模型,是清华大学KEG实验室和智谱AI公司于2023年共同发布的语言模型。模型有62亿参数,一经发布便受到了开源社区的欢迎,在中文语义理解和对话生成上有着不凡的表现。ChatGLM-6B可以在消费级......
  • c/cpp: g++ 设置(fedora38)
    c/cpp: g++设置(fedora38)    一、基本配置信息[wit@fedoranull]$cat/etc/bashrc#/etc/bashrc#Systemwidefunctionsandaliases#Environmentstuffgoesin/etc/profile#It'sNOTagoodideatochangethisfileunlessyouknowwhatyou#ared......
  • 阿里云部署 ChatGLM2-6B 与 langchain+chatGLM
    1.ChatGLM2-6B部署更新系统apt-getupdate安装gitapt-getinstallgit-lfsgitinitgitlfsinstall克隆ChatGLM2-6B源码gitclonehttps://github.com/THUDM/ChatGLM2-6B.git克隆chatglm2-6b模型#进入目录cdChatGLM2-6B#创建目录mkdirmodel#进入......
  • 使用 backward-cpp 打印调用堆栈
    下载backward-cpp:https://gitee.com/zsy26226/backward-cpp.git使用方法:一、1. 将backward.hpp文件复制到工程中。2. 在主函数所在的cpp文件中添加:#include<backward.hpp>namespacebackward{backward::SignalHandlingsh;}//namespacebackward......
  • CENTOS7下安装GRPC FOR CPP
    gRPC是一个高性能、开源和通用的RPC框架,面向移动和HTTP/2设计。目前提供C、Java和Go语言版本,分别是:grpc,grpc-java,grpc-go.其中C版本支持C,C++,Node.js,Python,Ruby,Objective-C,PHP和C#。gRPC基于HTTP/2标准设计,带来诸如双向流、流控、头部压缩、单TC......
  • 初步体验 llama.cpp
    llama.cpp:PortofFacebook'sLLaMAmodelinC/C++github仓库:https://github.com/ggerganov/llama.cpp参考博文:High-SpeedInferencewithllama.cppandVicunaonCPU第1步,准备一台阿里云4核8G的服务器,操作系统用的是ubuntu22.04第2步,签出llama.cpp源码进行build......
  • ubuntu上搭建ChatGLM2-6b环境及ptuing微调训练的坑
    清华大学的chatGLM2-6B可以说是目前亚洲唯一能打的对中文支持不错的LLM大模型,网上已经有很多介绍如何在本机搭建环境的文章,就不再重复了,这里记录下最近踩的一些坑:1、为啥要使用ubuntu?chatGLM2-6b项目里有很多.sh文件,在windows下要正常运行通常要折腾一番,最后能不能全部通关,讲究......