ChatGLM系列解析(三)—— ChatGLM3 —— AgentTuning

        本文作为ChatGLM系列的第三篇,主要讲到ChatGLM3做出的优化与改进;也会补充ChatGLM2和ChatGLM3与GLM1的区别(这些内容在笔者的博客中确实存在遗漏)。

ChatGLM系列解析(一)—— ChatGLM开篇之作_chatglmforconditiongeneration-优快云博客

ChatGLM系列解析(二)—— ChatGLM2_chatglm glm2-优快云博客

        个人认为ChatGLM3的技术核心特色是自研的AgentTuning多模态能力CogVLM和独创的多阶段增强预训练方法和更丰富的训练数据。

        在能力层面的特色可以总结4点:引入特定prompt,自闭环方式解决安全注入问题;增加模型‘函数调用’和‘agent 调用’能力;代码能力;能力对齐和安全对齐。

        我们先来讲下技术核心特色——AgentTuning(其余核心技术后续更新)

一、AgentTuning

1.1 motivation

        LLM是可以作为Agent的,在作为Agent时,起到完成任务规划、记忆和使用对应工具的作用,这需要细粒度的Prompt方法,又需要LLM自身具备强大的性能(上下文理解、推理等能力)。

        现有针对LLM Agent能力的研究主要关注设计提示(如Prompt) or 构建框架(COT、TOT)来完成某一特定代理任务,而没有从根本上提升LLM自身的通用Agent能力(笔者的理解:外在依赖为主)。

        还有一些工作专注于提升LLM在某些特定方面的能力,如代码编写、论文阅读等,这通常以牺牲其通用能力和泛化能力为代价。针对上述问题,清华大学和智谱AI提出了AgentTuning

1.2 AgentTuning作用与两步走流程

        AgentTuning是一种简单而通用的方法,既可以增强LLM的Agent能力,有可以同时保持其通用LLM能力。 

        对于一个Agent任务,LLM代理的‘交互轨迹’可以记录为多轮对话历史(u1,a1,…,un,an)。考虑到现有的对话模型通常包括两个角色,用户和模型,ui表示来自用户的输入,ai表示来自的响应模型。每个轨迹都有一个最终奖励r∈[0,1],反映了任务的完成情况。

        AgentTuning,主要包含两个步骤:

        1. 构建一个覆盖多种代理任务、包含高质量交互轨迹的轻量级指令调优数据集

### ChatGLM 系列模型介绍 ChatGLM 系列是由智谱AI和清华大学KEG实验室联合开发的开源对话语言模型,以其出色的中英双语能力和低资源部署门槛而广受欢迎。该系列模型从初代 ChatGLM 开始,经历了多次迭代和优化,最终发展到了最新的 ChatGLM3-6B。以下是各代模型的主要特点和发展历程。 ### ChatGLM-6B 特点 ChatGLM-6B 是 ChatGLM 系列的第一代模型,它在对话流畅性和部署门槛方面表现出色。该模型基于 GLM(Generalized Language Model)架构,能够处理多轮对话任务[^1]。尽管初代模型在多个基准测试中表现良好,但它在某些高级任务如数学推理和代码生成方面仍有提升空间。 ### ChatGLM2-6B 特点 ChatGLM2-6B 在初代模型的基础上进行了全面升级,特别是在基座模型的设计上。它采用了 GLM 的混合目标函数,并经过了 1.4T 中英标识符的预训练与人类偏好对齐训练。评测结果显示,相比于初代模型,ChatGLM2-6B 在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%)、BBH(+60%)等数据集上的性能取得了大幅度的提升,在同尺寸开源模型中具有较强的竞争力[^4]。此外,ChatGLM2-6B 还支持更复杂的对话场景,如多轮对话和上下文理解。 ### ChatGLM3-6B 特点 ChatGLM3-6B 是 ChatGLM 系列的第代模型,继承了前两代模型的优点,并在多个方面进行了改进。首先,ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。在语义、数学、推理、代码、知识等不同角度的数据集上测评显示,ChatGLM3-6B-Base 具有在 10B 以下的基础模型中最强的性能[^3]。其次,ChatGLM3-6B 采用了一个全新设计的 Prompt 格式,除正常的多轮对话外,还原生支持工具调用(Function Call)、代码执行(Code Interpreter)和 Agent 任务等复杂场景。最后,除了对话模型 ChatGLM3-6B 外,还开源了基础模型 ChatGLM3-6B-Base 和长文本对话模型 ChatGLM3-6B-32K。以上所有权重对学术研究完全开放,在填写问卷进行登记后亦允许免费商业使用[^2]。 ### 总结 从 ChatGLM-6B 到 ChatGLM3-6B,ChatGLM 系列模型在性能、功能和支持的场景上不断进步。初代模型奠定了良好的基础,第二代模型在多个基准测试中取得了显著提升,而第代模型则在基础模型性能、功能支持和开源序列方面进行了全面优化。这些改进使得 ChatGLM 系列模型在学术研究和商业应用中都具有广泛的适用性。 ```python # 示例代码:使用 ChatGLM3-6B 模型生成对话 from transformers import AutoTokenizer, AutoModelForCausalLM # 加载预训练的 tokenizer 和模型 tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm3-6b") model = AutoModelForCausalLM.from_pretrained("THUDM/chatglm3-6b") # 定义对话历史 history = [ {"role": "user", "content": "你好,我是谁?"}, {"role": "assistant", "content": "你是一个用户。"}, {"role": "user", "content": "我现在在做什么?"} ] # 将对话历史转换为模型输入 input_ids = tokenizer.apply_chat_template(history, return_tensors="pt").input_ids # 生成回复 response_ids = model.generate(input_ids, max_new_tokens=100) response = tokenizer.decode(response_ids[0], skip_special_tokens=True) print(response) ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值