跳转至

My Digital Worker : New Coding Way Part0 —— Building AI-Coding Env

导言

随着AI模型的能力越来越强,我们要做的就是像SE一样描述清楚需求边界,然后让AI去干就行了。

但是由于安全保密,或者不同公司开发软件的历史原因,如何搭建一个AI Coding的环境直接第一步就难住了:

  1. 问题场景:黄区开发,根本连不上外网;
    1. 解决方法:允许蓝区开发
  2. 问题场景:客户都是k8s集群调度机器,都是虚拟出来的机器,只提供一个web的terminal调试界面。代码是在跳板机上修改,然后挂载同步到实际申请到虚拟机上。

控制Web终端

【Trae+GLM5.1】

  1. 借助Chrome DevMCP,确实能登陆,验证通过,并到终端界面,
  2. 借助 CDP 的 Input.dispatchKeyEvent 能输入指令并回车
  3. 但是获取输出结果一直失败:要不就是图片截图内容为空,要不就是websocket连接不了,返回各种报错码。

VsCode直连虚拟环境

浦江

  1. 设置DNAT,写虚拟机IP到跳板IP的映射
名称
vc-a3-huawei-test
状态
运行中
VPC
vpc-ailab
  1. 虚拟机开启ssh服务,如下报错前执行ssh-keygen -A
[root@tsj-lm-kl-0427-worker-0 workspace]# ssh-keygen -A
ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519 
[root@tsj-lm-kl-0427-worker-0 workspace]# /usr/sbin/sshd -p 22
[root@tsj-lm-kl-0427-worker-0 workspace]# mkdir -p ~/.ssh
[root@tsj-lm-kl-0427-worker-0 workspace]# vi ~/.ssh/authorized_keys
[root@tsj-lm-kl-0427-worker-0 workspace]# 

远程虚拟机重新分配,Trae会丢失会话记录

为此一些项目基础信息(入口指令),和项目进度(当前任务),需要及时建议写到文件里。

- 背景:这是一个RL项目,运行在ascend设备上,xtuner框架,推理有lmdeploy和vllm可选,训练时fsdp后端。
- 最终目标:当前npu上单步训推kl loss 大约  3e-4,但是GPU单步训推kl loss 大约  1.7e-4,需要分析单步kl loss差异大的来源,其来源一般来自训推实现不一致,计划最终通过对齐训推实现,来降低kl loss差异。
- 基础信息:入口脚本 npu\_qwen3p5\_rl\_baseline\_project/src/intern\_s1\_delivery/run\_train\_vllm.sh
- 注意:由于环境不稳定,任务常中断;
    - 你需要维护task-done-doing.md; 及时更新;
    - 并及时提交完成任务的代码修改;
    - 如果你忘记了之前的任务,就阅读未提交的更改。
    - 你新增的工具函数,请抽象出易用函数,放在putils 仓,以供后续服用
- 当前阶段任务目标(小步快跑):
    - 加速迭代:由于RL迭代很慢,需要开发一个 环境变量 fast\_debug 选项,保证在该选项下,5mins内能完成第一步流程串通的验证,不用保证精度。(为此,能跳过权重加载, 复杂计算用fake result替换),可以每10spy-spy dump堆栈来分析当前卡在哪里,如果在相同位置,想办法跳过该模块。
    - 理解项目:由于项目是一个大杂烩,看代码是无法知道实际执行逻辑的,你应该加许多打印以便自己模糊时理解。
    - 维测指标添加:由于总ks loss来自每条数据,和每条数据里的每个token计算而来,需要能打印每条数据和每个token的 kl loss
    - 详细精度数据:借助 putils\_repo/putils/accuracy.py 的hook接口,将vllm和训练的model的每层信息打印出来。

参考文献

评论