ChatGLM
支持的领域 / 任务:aigc
目前在大模型服务平台上对外提供的ChatGLM模型服务主要包含ChatGLM2和ChatGLM3模型,均是由智谱AI出品的大规模语言模型。
ChatGLM2是开源中英双语对话模型ChatGLM-6B的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,ChatGLM2-6B引入了如下新特性:
更强大的性能:基于 ChatGLM 初代模型的开发经验,全面升级了 ChatGLM2-6B 的基座模型。ChatGLM2-6B 使用了GLM的混合目标函数,经过了 1.4T 中英标识符的预训练与人类偏好对齐训练,评测结果显示,相比于初代模型,ChatGLM2-6B 在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BBH(+60%)等数据集上的性能取得了大幅度的提升,在同尺寸开源模型中具有较强的竞争力。
更长的上下文:基于FlashAttention技术,将基座模型的上下文长度(Context Length)由 ChatGLM-6B 的 2K 扩展到了 32K,并在对话阶段使用 8K 的上下文长度训练,允许更多轮次的对话。但当前版本的 ChatGLM2-6B 对单轮超长文档的理解能力有限,会在后续迭代升级中着重进行优化。
更高效的推理:基于Multi-Query Attention技术,ChatGLM2-6B 有更高效的推理速度和更低的显存占用:在官方的模型实现下,推理速度相比初代提升了 42%,INT4 量化下,6G 显存支持的对话长度由 1K 提升到了 8K。
当前在大模型服务平台部署服务时使用的ModelScope社区模型id:ZhipuAI/chatglm2-6b,模型版本:v1.0.2。
ChatGLM3是ChatGLM 系列最新一代的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性:
更强大的基础模型:ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。在语义、数学、推理、代码、知识等不同角度的数据集上测评显示,ChatGLM3-6B-Base 具有在 10B 以下的预训练模型中最强的性能。
更完整的功能支持:ChatGLM3-6B 采用了全新设计的Prompt 格式,除正常的多轮对话外。同时原生支持工具调用(Function Call)、代码执行(Code Interpreter)和 Agent 任务等复杂场景。
更全面的开源序列:除了对话模型 ChatGLM3-6B 外,还开源了基础模型 ChatGLM-6B-Base、长文本对话模型 ChatGLM3-6B-32K。
当前在大模型服务平台部署服务时使用的ModelScope社区模型id:ZhipuAI/chatglm3-6b,模型版本:v1.0.0。
更多信息可以参考ModelScope上ChatGLM2-6B的开源repo、ChatGLM3-6B的开源repo。
快速开始
前提条件
示例代码
以下示例展示了调用ChatGLM API对一个用户指令进行响应的代码。
需要使用您的API-KEY替换示例中的 your-dashscope-api-key,代码才能正常运行。
设置API-KEY
export DASHSCOPE_API_KEY=YOUR_DASHSCOPE_API_KEY
from http import HTTPStatus
from dashscope import Generation
def call_with_messages():
messages = [
{'role': 'system', 'content':'You are a helpful assistant.'},
{'role': 'user', 'content': '介绍下杭州'}]
gen = Generation()
response = gen.call(
'chatglm3-6b',
messages=messages,
result_format='message', # set the result is message format.
)
print(response)
if __name__ == '__main__':
call_with_messages()
// Copyright (c) Alibaba, Inc. and its affiliates.
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.MessageManager;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.JsonUtils;
public class Main {
public static void usage()
throws NoApiKeyException, ApiException, InputRequiredException {
MessageManager msgManager = new MessageManager(10);
Message systemMsg = Message.builder().role(Role.SYSTEM.getValue()).content("You are a helpful assistant.").build();
Message userMsg = Message.builder().role(Role.USER.getValue()).content("介绍下杭州").build();
msgManager.add(systemMsg);
msgManager.add(userMsg);
GenerationParam param = GenerationParam.builder()
.model("chatglm3-6b")
.messages(msgManager.get())
.build();
Generation gen = new Generation();
GenerationResult result = gen.call(param);
System.out.println(JsonUtils.toJson(result));
}
public static void main(String[] args) {
try {
usage();
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}
调用成功后,将会返回如下示例结果。
{
"status_code": 200,
"request_id": "0b9c2a71-89cf-963b-8eb4-2786ba88dfbf",
"code": "",
"message": "",
"output": {
"text": null,
"finish_reason": null,
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "\n 杭州是中华人民共和国浙江省的省会,位于中国东南沿海地区,地处长江三角洲南翼。杭州拥有悠久的历史和灿烂的文化,自古以来就是著名的历史文化名城。杭州的地理位置优越,交通便捷,是长江三角洲地区的重要城市之一。\n\n杭州的气候属于亚热带季风气候,四季分明,温暖湿润,雨量充沛。全年气候温和,无霜期长,湿度适中。杭州的春天湿润多雨,夏天炎热多雨,秋天气候宜人,冬天干燥寒冷。\n\n杭州是中国著名的旅游胜地,拥有许多著名的旅游景点,如西湖、灵隐寺、宋城、西溪湿地等。此外,杭州还有许多美食,如龙井虾仁、西湖醋鱼、东坡肉等,是中国著名的美食城市之一。\n\n杭州是中国的互联网科技产业发达的城市之一,拥有阿里巴巴、网易等知名互联网公司。此外,杭州还是中国的金融中心之一,拥有许多金融机构和保险公司。\n\n杭州是一个历史悠久、文化底蕴深厚的城市,同时也是中国经济发展迅速的城市之一,拥有广阔的发展前景。",
"content_type": "text"
}
}
]
},
"usage": {
"input_tokens": 10,
"output_tokens": 225
}
}
了解更多
有关ChatGLM模型API详细调用文档API详情进行了解。