动手学大模型:GUI智能体构建
本教程目标
1.了解GUI智能体领域的技术路线和研究现状
2.尝试基于开源模型Qwen2-VL-7B依托OS-Kairos数据集构建自适应人机交互GUI智能体的方法
3.尝试基于构建的GUI智能体进行推理
1.准备工作
1.1 了解GUI智能体领域的技术路线和研究现状
阅读教程:[Slides]
1.2 了解什么是自适应人机交互GUI智能体
参考论文:[Paper]
1.3 数据集准备
本教程以OS-Kairos为例,基于此工作开源的数据集构建并推理简单的GUI智能体。
从[Data]的README.md文件中的下载链接下载数据集,并解压到环境中。
数据格式示例如下:
1.4 模型准备
从[Model]下载Qwen2-VL-7B模型权重。
1.5 有监督微调代码准备
本教程采用LLaMa-Factory对Qwen2-VL-7B进行有监督微调,因此先从[Code]下载源码。
2.GUI智能体构建
2.1 数据预处理
将以下代码存储为get_sharpgpt.py,并向其填出Kairos_train.json和预计存储处理后的训练集json的路径,然后运行该文件。
经过该步骤,我们将OS-Kairos的训练集成功转化为符合sharpgpt格式的数据,便于进行下一步训练,数据预处理完成。
2.2 有监督微调
在上一步中,我们已经得到适配LLaMa-Factory训练的格式的Kairos数据集。然后我们要修改LLaMa-Factory以注册数据集和配置训练信息。 首先修改data/dataset_info.json,添加如下内容注册数据集:
继续修改/examples/train_full/qwen2vl_full_sft.yaml来进行配置训练信息:
以上是一个示例配置,model_name_or_path是Qwen2-VL-7B的路径,output_dir是存放断点和log的路径。 配置好后即可配置推理,示例命令行:
此处至少要使用3张80GB的A100计算资源。
3.OS-Kairos推理验证
训练完毕后,我们即可进行推理,推理也有很多种方法可以选择,可以自行通过transformers库和torch库构建推理代码,也可以采用LLaMa-Factory进行一键式推理,以下演示如何LLaMa-Factory进行一键式推理。 首先要修改/examples/inference/qwen2_vl.yaml,一个示例如下
其中model_name_or_path是训练后的断点路径。 然后即可通过
进行一键式推理,你可以自己拿出OS-Kairos测试集的图片,或者个人手机的截图,结合get_sharpgpt.py中格式的文本prompt输入给智能体,OS-Karios推理后会给出它认为当前应该进行的action和对于这个action的置信度分数。置信度分数越低,则当前指令越超出OS-Kairos的能力边界,需要人类介入来进行人机交互。