首先git clone这个仓库,但是好像不太行,就直接下载下来吧
创个容器弄,容器里需要conda gpu
镜像的话 在dockerhub找到了一个:docker pull vkashyap10/llava-next
下载在了
ssh root@10.12.107.240 |
amos@123 |
这个机器上。等会看看怎么传到rd调研用的机器上。
docker save -o llava-next.tar vkashyap10/llava-next
scp llava-next.tar root@bjrs-acg-tge0209f1a4.bjrs:/ssd2/lixiang/rs/dockerimage
docker load -i /ssd2/lixiang/rs/dockerimage/llava-next.tar
##ok scp用不了 那就用bos吧 上传和下载的命令示例如下
bcecmd bos cp text.txt bos:/mybucket/test.txt
bcecmd bos cp bos:/mybucket/test.txt text.txt
bcecmd bos cp llava-next.tar bos:/aipe-easyedge-model-zoo/tmp/llava-next.tar
bcecmd bos cp bos:/aipe-easyedge-model-zoo/tmp/llava-next.tar llava-next.tar
docker run --name rsunivlm \
--net=host \
--privileged \
--cap-add=SYS_PTRACE --shm-size 5g \
--gpus all \
-v /ssd2/lixiang/rs:/ssd2/lixiang/rs \
-itd \
vkashyap10/llava-next:latest /bin/bash
docker exec -it rsunivlm bash
运行github上相应的命令去配环境,没碰到什么问题。
需要下checkpoints,在Google Drive上,要外网。。那就还是传到那个能连外网的机子上,再导过来。
# 先安装gdown
pip install gdown
# 获取Google drive文件(不能是文件夹)的ID
# 比如这个https://drive.google.com/file/d/12LhpGHvGu4wIgXrONspNKqfGFpTfr0-p/view?usp=drive_link 里面的12LhpGHvGu4wIgXrONspNKqfGFpTfr0-p就是id。
# 在python中运行
>>> import gdown
>>> url = 'https://drive.google.com/uc?id=1Egva7JAYHliVUcqxk5pnFymyNaE3d_B3'
>>> output = 'added_tokens.json'
>>> gdown.download(url, output, quiet=False)
接下来是跑代码环节了。
在容器里装一个icoding的vscode。
# 请复制以下命令到开发机上执行(注:如在容器内执行,请在命令后添加-p 8888参数,端口号需与启动容器端口相同)
curl -s http://baidu-ide.bj.bcebos.com/platform/script/host-script/install-agent.sh | bash -s -- -g a040a1ac-d5ad-4198-87ac-6a4353c8feaa -c 2c5c163e616de3b377e19c7bed5767ac -v 1.8.401.83.1.03
# 报错了,然后去宿主机上看,发现是8888端口被占用了。直接把命令改成-p 8889就成功了
报错1:ImportError: libGL.so.1: cannot open shared object file: No such file or directory
解决1:
# Ubuntu/Debian :
sudo apt-get update
sudo apt-get install -y libgl1-mesa-glx # 或简化为 libgl1
报错2:ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory
解决2: apt-get install libglib2.0-dev
报错3:Exception: data did not match any variant of untagged enum ModelWrapper at line 757281 column 3
解决3:gpt说可能是transforms版本不对,去config.json里面看到,要 "transformers_version": "4.46.0",但是pip show的版本是4.39.3。所以删了下个新版本看看行不行。
报错4:ImportError: FlashAttention2 has been toggled on, but it cannot be used due to the following error: the package flash_attn seems to be not installed.
解决4:先检查torch和cuda版本
pip install flash-attn
直接这样装不行,最新版的flushattention要求torch2.2以上,我这边torch2.1。所以去GitHub,flushattention的官方页面,找release,有旧版本,也写清楚了torch和cuda的支持版本。
用这个命令,记得开代理,要不然很慢。pip install https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.3/flash_attn-2.7.3+cu12torch2.1cxx11abiFALSE-cp311-cp311-linux_x86_64.whl
报错5:OSError: Incorrect path_or_model_id: '/data/liux/siglip-so400m-patch14-384'. Please provide either the path to a local folder or the repo_id of a model on the Hub.
解决5:这一看就是checkpoints路径有问题啊,感觉有很多隐藏的要改的地方,不如我就直接放到和作者一样的路径好了。
ok服务好像起来了,如下链接应该可以访问
Running on local URL: http://0.0.0.0:1112
url换成服务器的ip:http://10.158.103.151:1112
原目录/data/liux变成 /ssd2/lixiang/data
死活访问不了。
最后是把端口号换成8080,浏览器用chrome就可以了。哦对,gradio还降版本了,从5.26.0变成了3.24.0。