展开代码apt update apt-get install libglib2.0-0 -y
全量微调Qwen2.5-VL-7B-Instruct的参数,用于图片转公式LaTex。
模型地址:https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct
数据集:https://modelscope.cn/datasets/AI-ModelScope/LaTeX_OCR/summary
数据集下载,约有1.1G大小数据:
bash展开代码modelscope download --dataset AI-ModelScope/LaTeX_OCR --local_dir AI-ModelScope/LaTeX_OCR
该Python脚本用于处理/ssd/xiedong/vlm-r1-train-tasks-json-ui-docto/tasks_json目录下的数据,将其中所有图片等比例缩小(最长边为1024像素),并连同JSON文件一起复制到新目录/ssd/xiedong/vlm-r1-train-tasks-json-ui-docto/tasks_json_small_size中。
功能说明
一篇很好的DeepSeek R1 解读: https://zhuanlan.zhihu.com/p/20844750193
DeepSeek R1 论文: https://arxiv.org/abs/2501.12948
如何从DeepSeek-V3-Base得到DeepSeek-R1-Zero,可以看下面这图。编写一个指导性的提示词,让DeepSeek-V3-Base输出一组回答,用奖励模型进行奖励RL训练,这样就可以训练出DeepSeek-R1-Zero。
VLM-R1GRPO微调, 实战训练教程(1):
https://www.dong-blog.fun/post/1961
本博客这次使用多图进行GRPO。
官方git项目:https://github.com/om-ai-lab/VLM-R1?tab=readme-ov-file
https://github.com/pch18-docker/baota
yaml展开代码root@xd-OptiPlex-3070:~/bt_data# cat docker-compose.yml
version: '3.8'
services:
baota:
image: pch18/baota:clear
container_name: baotaxd
restart: unless-stopped
ports:
- "11000:8888" # 宝塔面板(外部11000 → 容器8888)
- "11080:80" # HTTP(外部11080 → 容器80)
- "11443:443" # HTTPS(外部11443 → 容器443)
- "11020:20" # FTP(可选)
- "11021:21" # FTP(可选)
- "11306:3306" # MySQL(可选)
- "11679:6379" # Redis(可选)
volumes:
- ./www:/www/wwwroot
- ./backup:/www/backup
- ./data:/www/data
privileged: true
在qwen vl里有一些标记,但其实用不着:
<|endoftext|>
:表示文本的结束。<|im_start|>
和 <|im_end|>
:可能用于标记输入/输出的开始和结束。<|object_ref_start|>
和 <|object_ref_end|>
:可能用于标记对象引用的开始和结束。<|box_start|>
和 <|box_end|>
:可能用于标记一个“框”结构的开始和结束。<|quad_start|>
和 <|quad_end|>
:可能用于标记一个“四边形”结构的开始和结束。<|vision_start|>
和 <|vision_end|>
:可能用于标记视觉相关内容的开始和结束。<|vision_pad|>
、<|image_pad|>
、<|video_pad|>
:可能用于填充视觉、图像或视频内容。<tool_call>
和 </tool_call>
:可能用于标记工具调用的开始和结束。<|fim_prefix|>
、<|fim_middle|>
、<|fim_suffix|>
、<|fim_pad|>
:可能用于填充或标记某些特定格式的文本(如代码补全)。<|repo_name|>
和 <|file_sep|>
:可能用于标记仓库名称或文件分隔符。json展开代码[
{
"role": "user",
"content": [
{
"type": "image",
"image": "path_to_image.jpg"
},
{
"type": "text",
"text": "图中的杯子的坐标在哪里?"
}
]
},
{
"role": "assistant",
"content": "<|object_ref_start|>杯子<|object_ref_end|><|box_start|>(0.456,0.387),(0.702,0.789)<|box_end|>"
}
]
可以看编码原理:
ThingsBoard 是一个开源的物联网(IoT)平台,专注于设备管理、数据收集、处理和可视化,支持多种通信协议如 MQTT、CoAP 和 HTTP。它提供了强大的规则引擎和丰富的可视化工具,帮助用户快速构建智能能源、车队跟踪、智能农业等物联网应用。基于 Java 和 TypeScript 开发,ThingsBoard 拥有活跃的社区和详细的文档,采用 Apache 2.0 开源协议,适合各种规模的物联网项目,帮助用户高效管理和分析设备数据。