小试牛刀,很懂《三体》恋爱脑云天明!
在谈论AI的代码解析能力之前,我们不妨先看一下它在处理自然语言文本方面的表现。为了测试GLM-4-Long的理解力,我决定让它尝试阅读并理解我最爱的科幻小说-94万字的《三体》。
抽取概括能力
作为一个具有强大理解能力的模型,必须具备从复杂的文本中抽取出关键的信息,并进行总结。当一次性输入整本小说,模型能有怎样的表现呢?
我决定以《三体》中的恋爱脑云天明为例,我们可以让模型梳理出云天明的个人故事,并按照时间线进行概括。
结果分析:
上下文串联与推理能力
除了信息抽取,一个优秀的长文本大模型还需要具备强大的上下文串联与推理能力。假设我们提出一个极端的假设:如果僵尸吃掉了云天明的脑子,三体的故事将会怎么发展?通过这样的假设,模型可以根据已有的故事情节推测出后续的发展方向。
结果分析:不得不说,相比时间抽取任务上的精彩表现,在通过长文本基础上进一步推理思考的任务中,模型表现得则没有那么惊艳。
不仅能读小说,GLM-4-Long解析代码项目能力几何
用模型读小说,只是为了一探模型能力的究竟。真正能验证模型能力的,还得是真实的生产任务。接下来整活结束,让小智带领大家将GLM-4-Long用到代码开发中!
考虑到代码保密的要求,接下来小智将用LangChain代码用作示例演示。LangChain官网的AI助手是基于RAG实现的,现在既然我们拥有了超强上下文的能力,不如我们自己做一个。
准备工作,LangChain-Core代码一网打尽
import osdef integrate_python_files(directory, output_file, identifier='---'):# 确保输出文件是空的open(output_file, 'w', encoding='utf-8').close()# 遍历目录for root, dirs, files in os.walk(directory):for file in files:if file.endswith('.py'):# 构建文件的完整路径full_path = os.path.join(root, file)# 获取文件相对于主目录的相对路径relative_path = os.path.relpath(full_path, directory)# 读取文件内容with open(full_path, 'r', encoding='utf-8') as f:file_content = f.read()# 写入输出文件with open(output_file, 'a', encoding='utf-8') as out_f:# 添加标识符和文件的相对路径out_f.write(f"{identifier} {relative_path}\n")out_f.write(file_content)out_f.write("\n")# 添加一个空行作为分隔# 调用函数directory_path = 'langchain/libs/core/langchain_core'# 替换为你的目录路径output_file_path = 'integrated_code.txt'# 替换为你的输出文件路径integrate_python_files(directory_path, output_file_path, identifier='=======')
GLM-4-Long 轻松帮你打造 LangChain AI 助手
对于一个完整的项目,GLM-4-Long在没有额外文档的情况下,是否能准确理解并解析项目的功能和组件呢?我们将其应用于一个实际的代码项目,看看它能给出怎样的分析。
问题1、项目主要做了什么?实现了什么功能?
通过将项目代码输入GLM-4-Long,我们希望模型能够给出项目的整体概览,包括其主要功能和实现的目标。
结果分析:
问题2、概括LangChain核心组件和概念
LangChain是一个用于构建语言模型应用的框架,包含多个核心组件。我们让GLM-4-Long对这些组件进行概括,并解释它们在项目中的作用。
结果分析:
问题3、请以代码方式输出经典的LCEL使用案例
在理解了项目和组件之后,我们进一步要求GLM-4-Long展示一个经典的LCEL( LangChain Expression Language)使用案例,以便读者更好地理解LangChain的应用场景。
结果分析:
问题4、上强度,通过Multi Query构建一个RAG案例,要求合并输出文档里的连续片段
在常规的解析任务之外,我们让GLM-4-Long处理一个高难度任务:通过Multi Query(多查询)构建一个RAG案例,并合并输出文档中的连续片段。这不仅测试了模型的理解能力,还考验了它的合成与输出能力。
结果分析:
虽然没能正确完成高阶的代码开发案例,但在如此简单的提示下,模型的表现仍然不错。如果真的完成了需求,可能广大程序员朋友们真的得担心失业问题了。