在MacOS中制作通义千问14B大模型的容器镜像

1、创建镜像所在文件夹和Dockerfile文件

(1)mkdir qwenrepo

(2)cd qwenrepo

(3)touch Dockerfile

2、在Dockerfile文件中写入指令

输入以下命令,

vim ./Dokcerfile

进入文本查看状态,按字母i切换进入编辑状态,输入以下内容: 

#Version 1.0
#FROM 命令是指定基础镜像,这里用ubuntu系统。
FROM ubuntu

# 这里要替换 your_name 为您的名字, 和your_email 为您的Email
MAINTAINER hollisyao <hollisyao@qq.com>

#设置root用户为后续命令的执行者
USER root

#执行操作,命令是在镜像内部执行,可以使用&&拼接命令。
#RUN yum update -y
#RUN yum install -y java
#RUN touch test.txt && echo "abc" >>abc.txt

#对外暴露端口
#EXPOSE 80 8080 1038

#添加网络文件
#ADD https://www.baidu.com/img/bd_logo1.png /opt/

#设置环境变量
#ENV WEBAPP_PORT=9090

#设置工作目录
#WORKDIR /opt/

#设置启动命令
#ENTRYPOINT ["ls"]

#设置启动参数,启动运行CMD括号里面的命令
CMD ["/bin/bash"]

#设置卷
#VOLUME ["/data", "/var/www"]

按“esc”键之后,输入:wq,保存退出。

3、创建镜像

Dockerfile 文件所在目录执行下面的命令,用来创建镜像。

docker build -t hollisyao/qwenrepo:v1 .

docker build 是docker创建镜像的命令
-t 是标识新建的镜像属于 hollisyao,仓库的名称是qwenrepo
:v1 是tag
"."是用来指明我们使用的Dockerfile文件是在当前目录,前面有个空格

4、从镜像创建容器

输入以下命令

docker run -t -i hollisyao/qwenrepo:v1 /bin/bash

进入容器的命令行模式,输入

cat /etc/issue

查看容器ubuntu系统版本,我的显示为:

Ubuntu 22.04.3 LTS \n \l

5、制作依赖项,安装python3.10

这个操作系统没有sudo,需要安装

apt-get update
apt-get install sudo

ubuntu默认安装了2.7,需要安装python3.10

sudo apt update sudo apt install python3.10 -y

安装完成后,验证是否安装成功

python3.10 --version

如果你需要将python 3.10设置运行默认的python版本,/usr/bin/是Linux PATH环境变量默认搜索路径。因此仅需要将python3.10的可执行二进制文件软链接到/usr/bin/python文件就可以将python 3.10设置为默认版本。

运行命令

sudo ln -sf /usr/bin/python3.10 /usr/bin/python

创建符号链接,-s 选项是创建软链接,-f选项是强制。

这样后续可以直接输入python,而不用输入python3.10了。

6、安装curl、wget、pip3

安装wget
sudo apt-get install wget -y

安装curl

sudo apt install curl -y

ubuntu默认安装了pip2,安装pip3

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3 get-pip.py
python get-pip.py

用以下命令确认pip3版本

pip3 --version

7、安装pytorch

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

8、安装git和lfs用于下载大模型

sudo apt install git -y
sudo apt-get install git-lfs

验证安装是否成功

git --version
git lfs env

lfs 环境报错,再运行以下命令修复问题。

执行git init 会生成 /lfs/objects/、/lfs/tmp/目录。运行 git lfs install 一次,为你的系统初始化后,当你克隆包含 Git LFS 内容的仓库时,Git LFS 将自动进行自我引导启用。

git init   //解决上述问题:Error: Failed to call git rev-parse --git-dir: exit status 128
git lfs install
    --Install Git LFS configuration.

 这时候再运行命令验证安装是否成功,再没有报错了。

git lfs env

9、安装依赖组件transformers等 

安装依赖组件

sudo apt-get install python3-dev
pip3 install transformers==4.32.0 accelerate tiktoken einops scipy transformers_stream_generator==0.0.4 peft deepspeed

推荐安装flash-attention库(也可以不装,当前已支持flash attention 2),以实现更高的效率和更低的显存占用。建议使用CUDA 11.4及以上(GPU用户、flash-attention用户等需考虑此选项)

git clone https://github.com/Dao-AILab/flash-attention
cd flash-attention && pip3 install .
# 下方安装可选,安装可能比较缓慢。
pip3 install csrc/layer_norm
pip3 install csrc/rotary

10、下载源代码和预训练模型

下载通义千问7B大模型的源代码

#下载7b的源代码
git clone https://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@github.com/QwenLM/Qwen-7B.git qwen-7b-source

查看当前目录,确认存在qwen-7b-source文件夹。

ls -l

进入目录qwen-7b-source,安装依赖组件

cd qwen-7b-source
# 安装依赖
pip install -r requirements.txt
# 安装 web_demo 依赖
pip install -r requirements_web_demo.txt

启动 web_demo 快速体验(过程中会自动下载预训练模型,非常大会很慢)

# 通过参数 --server-port 指定端口号,默认为 8000
# 通过参数 --server-name 指定服务地址,默认为 127.0.0.1
# 如果是用 cpu 跑的话,可以加上参数 --cpu-only
# 如果想生成一个用于公网访问的 url,可以加上参数 --share
python web_demo.py --server-port 8087 --server-name "0.0.0.0"

启动类 openai api 形式的接口

有个必要的依赖库需要先安装 pip3 install sse_starlette ,然后就可以启动了

# 通过参数 --server-port 指定端口号,默认为 8000
# 通过参数 --server-name 指定服务地址,默认为 127.0.0.1
# 如果是用 cpu 跑的话,可以加上参数 --cpu-only
python openai_api.py --server-port 8086 --server-name "0.0.0.0"

服务启动正常之后,就可以使用 openai 的客户端使用了,比如 chatbox、opencat 等等。

  • 47
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值