i# enginex-kunlun-r200-translation
# translation-transformers
## Quickstart
```shell
#构建docker镜像
docker build . -t kunlun_r200_vl

#运行docker容器
docker run -it -p 10055:8000 --device=/dev/xpu2:/dev/xpu0 --device=/dev/xpuctrl:/dev/xpuctrl -v /home/aiyueqi/mnt/models/vlm/MiniCPM-V-4:/model:ro --name kunlun_r200_vl_test kunlun_r200_vl
```
等待模型Load完成，出现以下日志时，代表服务启动成功, 且模型加载完成
```shell
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
```
执行测试程序
```shell
python3 test.py
```
测试程序执行结果
```
Succeed!
Response: {'output_text': '图片中的物体是一只狗，具体来说是一只金毛寻回犬。这只狗穿着带有图案的项圈，表明它可能被驯养并经常在户外活动。它正与一个坐着的人互动，看起来像是在玩或进行某种形式的身体接触。地面上有一个物体，可能是狗玩具或零食，这表明狗和人在海滩上进行休闲活动。背景中的海和日落暗示着一个宁静而放松的环境，通常与宠物的陪伴相关联。'}
```
停止docker容器
```
docker stop kunlun_r200_translation_test
```
## 模型支持
在Quickstart中运行容器时，通过磁盘目录挂载的方式，指定模型的类型和具体的模型名称，即：
```
-v /home/aiyueqi/mnt/models/vlm/MiniCPM-V-4:/model:ro
```
目前支持MiniCPM模型, 参考https://modelscope.cn/models/OpenBMB/MiniCPM-V-4 

## 其他说明
因镜像中的pytorch版本较老，PyTorch在低版本里对inference tensor限制过严，有些模型运行时可能出现以下报错：
```
RuntimeError: Cannot set version_counter for inference tensor
```
找到报错对应的行，对只读的tensor执行clone操作，即可运行成功
