E2405 智能应用·人工智能是编程的麒麟臂么?

E2405 智能应用·人工智能是编程的麒麟臂么?

27分钟 ·
播放数11
·
评论数0

继 E2404 这集,继续讲述 CURSOR 人工智能编程软件的特性。

✦LINK

1. 提高产品响应速度

    - 采用推测编辑,从推测解码衍生而来,利用并行处理提高速度,可加速代码编辑并在数据传输时审查代码。

    - 缓存预热可预判上下文信息,利用当前文件内容预热缓存,降低首次响应时间。

    - Cursor Tab设计中结合缓存和预测,提前处理请求操作并缓存建议,提升用户感知速度;还可通过减小KV Cache等策略训练模型,使其输出更符合用户偏好的建议;采用高效注意力机制提升token生成速度,减少KV Cache大小,增加缓存容量和命中率,稳定模型推理速度。

2. 提示词工程(Priompt)

    - 代码开发中筛选和组织prompt相关信息困难,不同模型对prompt反应不同,塞满窗口会影响模型。

    - Priompt系统借鉴网页开发实践,用React库声明式编程方法,有渲染器合理排布页面内容,可根据光标位置等设定优先级,方便调试,还可自动设定优先级,目标是帮助模型理解用户提问,获取相关信息。

3. Coding Agent工作流设计(Shadow Workspace)

    - Agent部分任务适用,如修复产品bug,但编程需迭代,用户需初始版本系统。

    - Shadow Workspace尝试在后台处理任务,通过提供反馈信号、利用语言服务器协议等,在后台运行隐藏窗口,Agent可修改代码不保存,避免影响实际文件,最终预期Agent可在后台执行一切,设计了写入锁定限制,技术实现面临挑战。

4. 模型找bug的情况

    - 模型找bug准确率低,即便如o1模型也表现不佳,因模型预训练数据分布影响,漏洞检测数据少,泛化能力不足,但可迁移通用代码理解能力改进。

    - 模型虽能感知代码问题,但难以判断bug重要性,人类基于经验和文化积累判断,模型难以理解开发者对代码质量要求差异。长远期望模型解决简单错误并捕捉更难bug,找bug能力对AI完成更多coding任务必要,可通过多种训练思路实现,目前基准测试难以真实反映模型能力,许多团队采用定性评估。

5. 代码索引与上下文处理

    - 代码库索引(Code base Indexing):为防Cursor对数据库误操作,开发相关API,数据库未来或支持分支功能供AI测试,用户增长带来挑战,构建索引系统计算代码库语义索引,通过分块、embedding并存储代码相关信息确保安全,利用哈希值(Merkle Tree结构)确保本地和服务器状态一致,采用缓存向量等技巧优化成本,索引系统可帮助查找代码位置,但扩展性面临诸多挑战。

    - 解决上下文问题:Context问题复杂,给模型过多上下文会影响性能,需确保信息准确相关,产品已实现部分自动上下文功能,未来可探索让模型在weights层面学习信息,以及考虑将retrieval和底层模型独立,尚无定论。

6. Scaling law和o1模型相关探讨

    - Scaling laws:Chinchilla之后,人们关注在给定推理预算下优化模型表现,scaling law维度更多,可权衡训练处理长上下文模型,蒸馏或可解决数据墙问题,应重视模型推理时间计算,避免过度训练小模型。

    - 复现OpenAI o1:Test time compute提供新思路,可通过增加推理计算量提升性能,合理策略是用小模型处理多数查询,对高智能需求查询用更长推理时间,但难以判断任务所需智能水平和实现模型动态切换,OpenAI不展示思维链并监控后台,若能获取相关数据可能有助于复刻o1模型,类似数据或可帮助提取SOTA模型能力并蒸馏到自有模型中。

投票
已结束
0人参与
你喜欢这集么?
看结果