在经历了一段时间的筹备后,JetBrains 终于发布了 Junie Local 的初始版本,让用户可以在 MacBook M5 上完全本地运行编码代理,并采用 Qwen3.6-27B 作为底层模型。团队在博文中详细解释了为何选择 Qwen3.6-27B 而非 Qwen3.8-27B,并分享了从代理本身到推理引擎的全栈优化过程。 本地推理的挑战:预填充速度成为瓶颈 与云端模型不同,本地模型的预填充(prefill)速度并不快,读取文件内容会消耗大量时间。在 Junie 的主执行循环中,用户指定任务后,代理会将任务发送给大语言模型(LLM),模型返回工具调用指令(如 Bash 命令、读写文件等),代理再执行并将结果回传。这一过程中,LLM 会持续接收上下文扩展请求,并复用先前请求的预填充数据,这部分数据被称为 KV-cache。 在云端环境下,即使模型需要重新读取文件内容,也可以快速请求并处理。但本地模型无法做到这一点,因此团队改变了本地推理的逻辑:将每个新请求直接添加到滚动上下文中。这样一来,模型已经读取过的文件会保留在上下文窗口内,无需再次“读取”,从而大幅减少重复预填充的时间开销。 最大化初始可复用前缀:缓存系统提示与项目上下文 另一个关键优化涉及 Junie 启动新编码会话时发送的系统提示和初始上下文。实际上,首次 LLM 请求发送的数据量远不止任务本身,还包括一组不同的信息集合,这些信息会在每次新会话开始时被完整发送并处理。为了缓存这些内容,团队调整了数据发送的顺序,并为推理引擎添加了特殊逻辑:将用户请求之前的前缀全部缓存,以便同一项目中的后续任务直接复用,而项目上下文之后的内容则被有意排除在缓存之外。 这一改动意味着,在同一项目内,多次任务之间可以共享已处理的上下文,避免重复计算。对于本地推理而言,这种前缀缓存机制显著降低了每次请求的延迟,提升了整体响应速度。 为什么是 Qwen3.6-27B 而非 Qwen3.8-27B? 团队在博文中明确解释了选择 Qwen3.6-27B 的原因,但具体细节并未在公开内容中完全展开。从优化策略来看,Qwen3.6-27B 在本地推理场景下与 Junie 的滚动上下文和前缀缓存机制配合更为顺畅,能够在 MacBook M5 的硬件条件下实现可接受的性能表现。而 Qwen3.8-27B 可能在某些方面存在兼容性或效率上的差异,导致团队最终选择了前者作为首发版本的基础模型。 目前,Junie Local 已开放安装,用户可以在本地环境中体验完整的编码代理功能。团队表示,这一版本只是长期项目的起点,未来将继续优化本地推理体验,并扩展对更多硬件配置的支持。 特别
排超-津沪女排同获8连胜领跑各组 冀滇仍难求一胜
为篮球运动员提供心理辅导和心理素质训练,提升其应对压力和挑战的能力。...
德天空:克洛普将于9月17日公布德国队大名单,马拉在计划中
为篮球运动员提供心理辅导和心理素质训练,提升其应对压力和挑战的能力。...