Sign inSign up

qsbye/runtime-env1

By qsbye

•Updated about 3 years ago

ChatGLM运行环境+ChatGLM2模型

Image
0

1.4K

qsbye/runtime-env1 repository overview

⁠简介

基于macOS:Catalina镜像 cmake镜像的ChatGLM运行时环境+ChatGLM2大模型。 内含ChatGLM2-6B大模型文件,可以一键运行。

⁠目录说明

  • /srv:挂载目录
  • /models:包含ChatGLM源码和ChatGLM2-6B模型
  • /chatglm/chatglm.cpp:包含chatglm.cpp源码和ChatGLM2-6B模型

⁠更新日志

⁠第一版

qsbye/runtime-env1:v1-arm64 已知问题:需要手动进入bash运行命令cd /chatglm/chatglm.cpp/examples && python3 /chatglm/chatglm.cpp/examples/web_demo.py -m /chatglm/chatglm.cpp/THUDM/chatglm2-6b/chatglm2-ggml.bin"

⁠CPU版包含软件

  • macOS:Catalina
  • cmake
  • openssl@3
  • python3.9
  • ninja
  • chatglm.cpp

⁠CPU版使用方式

#arm64架构
docker run -it --rm -p 8000:7860 qsbye/runtime-env1:v1-arm64 bash -c "cd /chatglm/chatglm.cpp/examples && python3 /chatglm/chatglm.cpp/examples/web_demo.py -m /chatglm/chatglm.cpp/THUDM/chatglm2-6b/chatglm2-ggml.bin"
docker run -it --rm -p 8000:7860 qsbye/runtime-env1:v1-arm64 bash -c "/chatglm/chatglm.cpp/build/bin/main -m /chatglm/chatglm.cpp/THUDM/chatglm2-6b/chatglm2-ggml.bin -i"
docker run -it --rm -p 8000:7860 qsbye/runtime-env1:v1-arm64 bash -c "/chatglm/chatglm.cpp/build/bin/main -m /chatglm/chatglm.cpp/THUDM/chatglm2-6b/chatglm2-ggml.bin -p 你好"
#x86_64(amd64)架构
docker run -it --rm -p 8000:7860 qsbye/runtime-env1:v1-arm64 bash -c "cd /chatglm/chatglm.cpp/examples && python3 /chatglm/chatglm.cpp/examples/web_demo.py -m /chatglm/chatglm.cpp/THUDM/chatglm2-6b/chatglm2-ggml.bin"

⁠CPU版构建过程

#cmake镜像
docker pull elvispayano/cmake:3.25.2-pi4
docker run -it -v $PWD:/srv elvispayano/cmake:3.25.2-pi4 bash
mkdir /chatglm
cp -r /srv/files3/chatglm.cpp /chatglm
mkdir -p /chatglm/chatglm.cpp/THUDM/chatglm2-6b
cp /srv/files2/chatglm.cpp/THUDM/chatglm2-6b/chatglm2-ggml.bin /chatglm/chatglm.cpp/THUDM/chatglm2-6b
cd /chatglm/chatglm.cpp 
cmake -B build
cmake --build build -j
/chatglm/chatglm.cpp/build/bin/main -m /chatglm/chatglm.cpp/THUDM/chatglm2-6b/chatglm2-ggml.bin -i

#安装pip
#检测更新
apt update
#用于添加ppa源的小工具
apt install software-properties-common
#有确认提示按回车继续
add-apt-repository ppa:deadsnakes/ppa
apt install curl
# 下载最新的官方 pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
# 安装 python-distutils
apt install python3-distutils 
# 直接获取 pip
python3 get-pip.py
# 安装 launchpadlib
pip3 install launchpadlib
pip install gradio
pip install mdtex2html
pip install -U pip
ls /usr/include/python3.9
ls /usr/include
sudo apt-get install python3-dev
pip install chatglm_cpp
pip --version
pip install markupsafe==2.0.1
#启动网页
cd /chatglm/chatglm.cpp/examples && python3 /chatglm/chatglm.cpp/examples/web_demo.py -m /chatglm/chatglm.cpp/THUDM/chatglm2-6b/chatglm2-ggml.bin
docker commit 8e09737d2758 qsbye/runtime-env1:v1-arm64
docker push qsbye/runtime-env1:v1-arm64

#amd64镜像构建方式基本一致

⁠CUDA版包含软件

  • cuda:11.0.3-devel-centos7
  • chatglm.cpp
  • cmake
  • python3.6
  • pip

⁠CUDA版使用方式

#docker run -it --rm -p 8000:7860 qsbye/runtime-env1:v0.999-amd64-cuda bash -c "cd /chatglm/chatglm.cpp/examples && python3 /chatglm/chatglm.cpp/examples/web_demo.py -m /chatglm/chatglm.cpp/THUDM/chatglm2-6b/chatglm2-ggml.bin"
docker run -it --rm -p 8000:7860 qsbye/runtime-env1:v0.999-amd64-cuda bash -c "/chatglm/chatglm.cpp/build/bin/main -m /chatglm/chatglm.cpp/THUDM/chatglm2-6b/chatglm2-ggml.bin -i"
docker run -it --rm -p 8000:7860 qsbye/runtime-env1:v0.999-amd64-cuda bash -c "/chatglm/chatglm.cpp/build/bin/main -m /chatglm/chatglm.cpp/THUDM/chatglm2-6b/chatglm2-ggml.bin -p 你好"

⁠CUDA版构建过程

scp -r ./files3/chatglm.cpp [email protected]:/home/qsbye
scp -r ./files2/chatglm.cpp/THUDM/chatglm2-6b/chatglm2-ggml.bin [email protected]:/home/qsbye
docker run -it -v $PWD:/srv -p 8888:7860 nvidia/cuda:11.0.3-devel-centos7 bash
yum -y install cmake

# 下载最新的官方 pip
curl  https://bootstrap.pypa.io/pip/3.6/get-pip.py -o get-pip.py
# 安装 python-distutils
yum search python*-distutils
yum -y install python3
#Loaded plugins: fastestmirror, ovl
#yum -y install python3-distutils 
#或 sudo apt install python3.11-distutils(高版本的python3)
# 直接获取 pip3.11
python3 get-pip.py
pip install pqi 
mkdir -p /root/.config/pip
pqi use ustc
pip install gradio
pip install mdtex2html
pip install markupsafe==2.0.1
mkdir /chatglm
cp -r /srv/chatglm.cpp /chatglm/chatglm.cpp
mkdir -p /chatglm/chatglm.cpp/THUDM/chatglm2-6b
cp /srv/chatglm2-ggml.bin /chatglm/chatglm.cpp/THUDM/chatglm2-6b/chatglm2-ggml.bin
docker commit f30b9cd1d9dc qsbye/runtime-env1:v0.9-cuda
docker push qsbye/runtime-env1:v0.9-cuda

#继续构建
scp -r ./files3/cmake-3.27.3 [email protected]:/home/qsbye
scp -r ./files3/openssl-3.1.2 [email protected]:/home/qsbye
scp -r ./files3/cmake-3.27.3.tar.gz [email protected]:/home/qsbye
docker run -p 8888:7860 -it --runtime=nvidia -v $PWD:/srv qsbye/runtime-env1:v0.9-cuda bash
cp -r /srv/openssl-3.1.2 /home/openssl-3.1.2
cp -r /srv/cmake-3.27.3 /home/cmake-3.27.3
cp -r /srv/cmake-3.27.3.tar.gz /home
yes | rm -R /home/cmake-3.27.3
tar -xvf /home/cmake-3.27.3.tar.gz

cd /home/openssl-3.1.2
yum -y install perl
yum -y install perl-IPC-Cmd
./Configure
make && make install
cp /home/openssl-3.1.2/libssl.so.3 /usr/lib/libssl.so.3
cp /home/openssl-3.1.2/libcrypto.so.3 /usr/lib/libcrypto.so.3
cd /etc/ld.so.conf.d
yum -y install vim
vim libc.conf
/sbin/ldconfig -v
#添加/usr/lib
#yum -y install openssl
#./configure -DCMAKE_USE_OPENSSL=OFF
cd /home/cmake-3.27.3
./configure
make && make install

cd /chatglm/chatglm.cpp
yum info gcc
yum -y install centos-release-scl
yum -y install devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils
scl enable devtoolset-7 bash
echo "source /opt/rh/devtoolset-7/enable" >>/etc/bash.bashrc
#yum -y install cmake-3.20.5
#cuBLAS uses NVIDIA GPU to accelerate BLAS. Add the CMake flag `-DGGML_CUBLAS=ON` to enable it.
yes | rm -r build
cmake -B build -DGGML_CUBLAS=ON .
docker commit d3baf75cc21e qsbye/runtime-env1:v0.99amd64-cuda
docker push qsbye/runtime-env1:v0.99amd64-cuda
docker save -o /home/qsbye/qsbye-runtime-env1-v1-amd64.tar qsbye/runtime-env1:v1-amd64
docker run -it -p 8000:7860 qsbye/runtime-env1:v1-arm64 bash -c "/chatglm/chatglm.cpp/build/bin/main -m /chatglm/chatglm.cpp/THUDM/chatglm2-6b/chatglm2-ggml.bin -p 你好"
nano /chatglm/chatglm.cpp/examples/web_demo.py
#cd /chatglm/chatglm.cpp/examples && python3 /chatglm/chatglm.cpp/examples/web_demo.py -m /chatglm/chatglm.cpp/THUDM/chatglm2-6b/chatglm2-ggml.bin
docker commit f08bb685c49d qsbye/runtime-env1:v1.1-arm64
docker push qsbye/runtime-env1:v1.1-arm64
docker run --name="chatglm2" -it -p 8888:7860 -d qsbye/runtime-env1:v1-amd64 bash
docker exec -it chatglm2 bash
#cd /chatglm/chatglm.cpp/examples && nohup python3 /chatglm/chatglm.cpp/examples/web_demo.py -m /chatglm/chatglm.cpp/THUDM/chatglm2-6b/chatglm2-ggml.bin &

#继续构建
docker run -it --runtime=nvidia -p 8888:7860 qsbye/runtime-env1:v0.99amd64-cuda bash
cd /chatglm/chatglm.cpp
#nvidia-docker run -p 8888:7860 -it qsbye/runtime-env1:v0.9-cuda bash
#To enable cuBLAS acceleration:
#CMAKE_ARGS="-DGGML_CUBLAS=ON" pip install chatglm-cpp -i https://pypi.org/simple
vim /chatglm/chatglm.cpp/third_party/ggml/src/ggml-cuda.cu
#/cudaStreamWaitEvent
cmake --build build -j
/chatglm/chatglm.cpp/build/bin/main -m /chatglm/chatglm.cpp/THUDM/chatglm2-6b/chatglm2-ggml.bin -p 你好
docker commit 5892f4244c1d qsbye/runtime-env1:v0.999-amd64-cuda
docker push qsbye/runtime-env1:v0.999-amd64-cuda

#继续构建
docker run -it --runtime=nvidia -p 8887:7860 qsbye/runtime-env1:v0.999-amd64-cuda bash
cd /chatglm/chatglm.cpp
#make --build build -j
ln -fs /opt/rh/devtoolset-7/root/usr/bin/gcc /usr/bin/gcc 
ln -fs /opt/rh/devtoolset-7/root/usr/bin/gcc /usr/bin/cc
export CC=/opt/rh/devtoolset-7/root/usr/bin/gcc
export CXX=/opt/rh/devtoolset-7/root/usr/bin/g++

#CMAKE_ARGS="-DGGML_CUBLAS=ON" CMAKE_EXECUTABLE=/usr/local/bin/cmake CC=/opt/rh/devtoolset-7/root/usr/bin/gcc CXX=/opt/rh/devtoolset-7/root/usr/bin/g++ python3 setup.py bdist_wheel

#docker commit xx qsbye/runtime-env1:v1-amd64-cuda
#docker push qsbye/runtime-env1:v1-amd64-cuda
docker save -o /home/qsbye/qsbye-runtime-env1-v0.999-amd64-cuda.tar qsbye/runtime-env1:v0.999-amd64-cuda

⁠联系方式

Tag summary

Content type

Image

Digest

sha256:d6bff1772…

Size

6.8 GB

Last updated

about 3 years ago

docker pull qsbye/runtime-env1:v0.999-amd64-cuda