# Mac osx 环境搭建Qwen3-VL-8B-Instruct模型推理(llama.cpp)
## 安装llama.cpp
### 1. 下载代码
```bash 
git clone https://gitcode.com/gh_mirrors/ll/llama.cpp.git
```
### 2. 编译

```bash
cd llama.cpp 
mkdir -p build && cd build
cmake ..
make LLAMA_METAL=ON -j$(sysctl -n hw.ncpu)
```

### 注意:不要 make install,因为M1 不兼容llama,系统默认安装会找不到lib
如果按了,可以删除
```bash
 ls -l install_manifest.txt
 sudo xargs rm -f < install_manifest.txt
```
```bash
# test
./main \
  -m models/qwen3-vl-8b-instruct.Q5_K_M.gguf \
  --mmproj models/mmproj-qwen3-vl-8b-instruct.f16.gguf \
  --image test.jpg \
  -p "详细描述这张图片" \
  -n 512
```

```bash
./llama cli\
  -m /Users/evan.li/Downloads/Qwen3VL-8B-Instruct-Q4_K_M.gguf \
  --mmproj /Users/evan.li/Downloads/mmproj-Qwen3VL-8B-Instruct-F16.gguf \
  --image /Users/evan.li/Downloads/test.jpeg \
  -p "详细描述这张图片" \
  -n 512
  -no-cnv
```

# 结果

```commandline


Loading model...  


▄▄ ▄▄
██ ██
██ ██  ▀▀█▄ ███▄███▄  ▀▀█▄    ▄████ ████▄ ████▄
██ ██ ▄█▀██ ██ ██ ██ ▄█▀██    ██    ██ ██ ██ ██
██ ██ ▀█▄██ ██ ██ ██ ▀█▄██ ██ ▀████ ████▀ ████▀
                                    ██    ██
                                    ▀▀    ▀▀

build      : b9436-d6588daa8
model      : Qwen3VL-8B-Instruct-Q4_K_M.gguf
modalities : text, vision

available commands:
  /exit or Ctrl+C     stop or exit
  /regen              regenerate the last response
  /clear              clear the chat history
  /read <file>        add a text file
  /glob <pattern>     add text files using globbing pattern
  /image <file>       add an image file

Loaded media from '/Users/evan.li/Downloads/test.jpeg'

> 详细描述这张图片

这张图片是一张竖版的社交媒体视频截图,背景是一个专业的舞蹈训练室。

**主要人物:**
画面中央是一位年轻的东亚女性,她有着一头乌黑亮丽的长卷发,自然垂落在肩上。她正侧身站立,目光望向画面右侧,表情专注,似乎在与人交流或准备开始训练。她的双臂交叉抱在胸前,姿态显得自信而放松。

**衣着:**
她穿着休闲的舞蹈训练服装,上身是一件米白色的拉链开衫外套,内搭一件灰色的圆领T恤。下身是宽松的灰色运动长裤,裤腰处有抽绳设计。

**环境与背景:**
她所处的环境是一个舞蹈教室。背景中可以看到一面巨大的落地镜,镜中反射出教室的内部结构。教室里有木质的舞蹈把杆,以及一个白色的立式空调。右侧有一张棕色的椅子,旁边的小桌上放着一个粉色奶瓶和一个彩色的鼓状物。房间的墙壁是浅黄色,天花板上装有现代风格的长条形照明灯。

**界面元素:**
图片的顶部显示时间为“06:59”,并有手机状态栏图标。图片中部有白色文字“来吧上来体能”。下方是视频的标签信息,显示位置为“太原市·CDC舞蹈艺考”,以及多个相关话题标签,如“舞蹈生的演技有多高#普高艺考舞蹈生#太原舞蹈艺考#舞蹈集训”。底部是社交媒体的互动按钮,包括“+关注”、点赞(4062)、分享(1774)、收藏(2632)和评论(68)。

**整体氛围:**
整张图片传达出一种专业、积极向上的氛围,暗示着即将开始的舞蹈训练或体能测试。人物的表情和姿态,以及教室的布置,都指向这是一个为舞蹈艺考或专业训练做准备的场景。

[ Prompt: 218.9 t/s | Generation: 44.9 t/s ]
```

# 移植练习1 nvidia cuda code -->--> llama code

# 1. 建虚拟环境
```bash
运行
# 建一个干净环境
python3.11 -m venv ~/venv-llama

# 激活
source ~/venv-llama/bin/activate
```
# 2. 降级 setuptools(解决 torch 冲突)
```bash
 #运行
pip install setuptools==81.0.0
```
# 3. 安装依赖(包括 pyyaml)

```bash
运行
pip install --upgrade pip wheel
pip install pyyaml
```
# 4. 安装支持 Qwen3-VL 的 llama-cpp-python(M1 Metal)
```bash
运行
CMAKE_ARGS="-DLLAMA_METAL=on -DLLAMA_QWEN_VL=on" \
pip install llama-cpp-python==0.3.23 --force-reinstall --no-cache-dir
```
# 5、验证安装(必须成功)
```bash
运行
python -c "
from llama_cpp import Llama
print('✅ llama-cpp-python 导入成功')
"
```
##
```bash
cd mllm_course/evan-files/p1 
python run_basic_inference.py --config config.yaml
```
⚠️ 1.不能直接传图片
可以使用httpserver

### 启用server
```bash
./llama-server \
  -m /Users/evan.li/Downloads/Qwen3VL-8B-Instruct-Q4_K_M.gguf \
  --mmproj /Users/evan.li/Downloads/mmproj-Qwen3VL-8B-Instruct-F16.gguf \
  --n-gpu-layers 99 \
  --threads 8 \
  --port 8080

```
#运行
```baah
   python run_llama_http.py --config config.yaml 
```

更多推荐