前些日子, Al领域再度引发轰动!8月14日, 智普实施了正式更新, GLM-5.3底座参数保持未变, 然而整体性能却陡然激增50%。
先搞清楚:GLM-5.3比之前强在哪?
智谱此次更新, 并未以大张旗鼓的方式去召开发布会, 然而技术社区却已经将其传开了。其核心升级集中在三个方向。
· 代码生成能力显著增强: 于多个编程榜单之中, GLM - 5.3的通过率大于90%, 对于部分语言(像Java、C++)而言其表现已然超越同等级别的海外模型。
具备质的飞跃般的调试能力, 不再仅仅是帮你找出错误, 而是连代码意图都能够理解,还能主动去修复逻辑方面的漏洞。
· 项目级别的理解能力得到增强, 不再仅仅是查看你所贴出的一段代码, 而是能够去理解整个项目之中的架构以及依赖关系。
关于技术细节你不必知晓, 你只需明白最终结果: 对于相同的需求, 5.3版所生成的代码, 在以前得要修改三轮方可成功运行, 而如今一次就顺利通过了。
三个实测场景:到底强在哪?
场景①:写一个“带过期时间的LRU缓存”
这是一道经典的编程题目, 进行数据结构设计的考量, 有着并发处理方面的要求, 还涉及边界条件覆盖的检验。
输入指令:
要去写一个带有过期时间的LRU缓存, 它得支持get操作, 还得支持put操作, 并且在过期之后能够自动进行清理, 同时要考虑多线程安全的问题。
GLM-5.3的输出:
```
class :
def (self, , ttl):
self. =
self.ttl = ttl
self.cache = {}
self.lock = .RLock()
self. = {}
def (self):
# 清理过期条目
=
k for k, t in self..items()
if time.time() - t > self.ttl
for k in :
del self.cache
del self.
```
· 一次生成了完整代码,包含、get、put、四个方法
· 自动加了线程锁,考虑到了并发场景
· 附带使用示例和单元测试
· 变量命名清晰,结构合理
相互对照去感受, 先前的主要模型也给出了代码, 不过却遗漏了过期清理的逻辑, 这需要我依靠手动去进行补充, 其中GLM - 5.3能够一次性生成完整且可以运行的内容。
使用方面的建议是, 要是你期望GLM - 5.3为你补齐好似“带过期时间的LRU缓存”这种经典的数据结构代码, 那么建议你在指令当中同时讲清楚“多线程安全”或者“边界条件”, 如此一来它便会更加完整地涵盖这些边缘状况。
场景②:把300行面条代码重构为函数式风格
这存在一个于实际工作期间所产生的需求, 即要将一段达300行的面条代码, 拆分成具备可维护特性的函数式结构, 此结构当中含有多个嵌套循环以及条件分支。
输入指令:
将这段代码改为函数式风格, 借助map来替换循环, 以此提升可读性, 让原有功能得以维持不变, 输出重构后的完整代码。
GLM-5.3的输出:
```
# 重构前:三层嵌套循环 + 多个if
# 重构后:管道式操作
= (data
.( x: x
''
== '')
.map( x: (x))
.( acc, x: merge(acc, x))
```
· 精准识别了map//的适用位置
· 把循环拆解成管道操作
· 解释了每一步的“不变性”优势
· 重构后的代码行数从300行压缩到了200行左右
我们来看看对比后的感受, 其他一些模型同样进行了重构, 然而其中部分版本仅仅是做了变量名的替换操作, 并没有切实地改变范式, 而GLM - 5.3它实实在在地理解到了“函数式”的含义。
使用方面的建议是, 对于重构类任务而言, 倡导在指令里头清晰地讲明白“维持原来的功能不发生改变”, 并且还要标明“给出重构之后的完整代码”, 以此防止AI仅仅输出有改动的那些片段。
场景③:根据错误日志定位Bug
一则真实的爬虫报错日志被递交予它, 该日志涵盖完整的堆栈信息, 其中涉及重定向循环, 当中还包括User - Agent校验失败的状况。
输入指令:
遵循这段报错日志所示内容, 寻觅Bug形成缘由, 依据严重程度罗列出问题, 依照顺序给出修复代码。
GLM-5.3的输出:
· 明确指出两个问题, 其一为重定向循环, 此问题优先级高, 其二为User - Agent缺失, 该问题优先级中。
代码块被给出, 其为按顺序修复的, 并且已标注, 内容是先修A再修B, 不然的话就会触发新的403。
· 附带了一份简短的调试说明
指导意见如下: 针对于调试类工作任务而言, 建议于指令里面清晰、明确地提出要求, 具体为“按照优先级的先后顺序逐一列出问题”以及“给出具有先后次序的修复顺序”, 如此一来, 它能够以更为结构化的方式去组织调试阶段所涉及的思维逻辑, 从而致使你在开展排查工作期间能够更具条理性。
三条“榨干”GLM-5.3编程能力的技巧
技巧①:不要只说“写一个XX”,要说“用XX方式写”
模糊指令:“写一个爬虫”
编写出一个爬虫程序, 运用 + 来开展相关操作, 针对反爬情况进行处理, 具体是采用随机 User - Agent 以及延时的方式, 将数据输出为 CSV 格式, 并且添加异常处理以及日志功能。
技巧②:让它“自己审查自己”
这一句需加在所撰代码生成之后: “核查这段代码于边界条件下的覆盖实情, 要是存在欠缺, 予以补齐。”GLM-5.3对代码层面的自我校正予以支持, 能够辨别出自身遗漏的边缘状况。
技巧③:用“项目级”上下文
若是你正着手开展一个完整的项目, 那么在进行提问之前, 务必要将项目结构清晰地描述出来。GLM - 5.3所具备的项目级理解能力相较于前代而言, 有着显著的增强, 当给予它更多的上下文信息时, 其输出的代码会更加契合实际需求。
谁最应该关注这次更新?
· 独立开发者:一人顶三人,代码质量提升明显
· 创业团队:技术人手不足的情况下,可有效补充产能
· 接单搞副业的人:交付速度和质量同步提升,能接更多单
· 编程学习者:代码注释质量高,适合跟着学
一个提醒
GLM - 5.3在编程能力方面的提升显著, 然而, 任何经由AI生成的代码, 在执行之前都务必要经过人工审查这个环节, 特别是那些涉及到生产环境的代码, 抑或是涉及数据库操作的代码, 还有涉及支付逻辑的代码。应当把AI看作是“具备一定能力的实习生”, 而非“无需检验的正式工”。
当前, 智谱清言App以及网页端都能够免费予以使用, 其中部分高级编程功能借助于API进行调用, 而且个人开发者同样有着免费额度。要是在平常你从事写代码相关活动的话, 不妨比较一番来看看看哪一个动用起来更顺手是GLM-5.3。
以前写代码需要3小时,现在只需要1小时。
省下来的2小时,你可以用来想清楚“到底该写什么”。