飞哥带你玩转大模型:新手必备的GLM-4-Plus实用指南
大家好,我是飞哥!在最近两年里,大模型技术是发展最快的技术领域。在过去机器学习和AI算法方向门槛很高。现在随着各家通用基座模型的能力开放,大家只需要调用bigmodel开放平台提供的API,就可以提高我们工作生活效率,甚至也可以封装一个应用出来。最近智谱 BigModel开放平台公布的 Plus 系列模型,在关键能力上接近了国际先进水平,已经成为国内大部分大模型玩家的首选。谈谈大模型技术优点其实机
大家好,我是飞哥!
在最近两年里,大模型技术是发展最快的技术领域。在过去机器学习和AI算法方向门槛很高。现在随着各家通用基座模型的能力开放,大家只需要调用bigmodel开放平台提供的API,就可以提高我们工作生活效率,甚至也可以封装一个应用出来。
最近智谱 BigModel开放平台公布的 Plus 系列模型,在关键能力上接近了国际先进水平,已经成为国内大部分大模型玩家的首选。
谈谈大模型技术优点
其实机器学习一直都是计算机领域里的一个重要的研究方向。我在硕士期间研究课题是使用人的颅骨和面部特征的三维数据进行统计模型的建立。然后使用该统计模型对缺失面貌数据的颅骨进行面部重建,通过复杂的数学运算自动推导出该颅骨主人的面貌特征应该是什么。
在过去的年代里,机器学习和 AI 算法方向门槛很高。在数学上你需要具备非常强的数学基础,对线性代数、微积分要有非常深的理解。然后还需要掌握各种基础的模型,如逻辑回归、SVM、CNN、LSTM 等等的原理。还需要学会使用各种机器学习编程框架。
但,大模型的出现可以说是一个质变。
随着 GPT、GLM、Llama 等预训练的通用基础大模型的出现,模型正式从专用领域演变到了通用领域。
而且这些模型都提供了 API 接口,使得驾驭门槛大大降低。即使你不懂得 Transformer,不了解预训练,只要你会使用这些模型的 API,就能用大模型解决你工作中的实际问题,甚至是可以搭一个应用出来。
在模型上,最近也是百花齐放。除了大家所熟知的 GPT 外(好是好,但用起来实在是门槛太多了),国内的模型也是雨后春笋般地出现。在最近的 ACM SIGKDD 大会上。智谱 AI 发布的 GLM-4-Plus 也在关键能力上接近了国际领先水平。该模型的优势在以下几个方面
1)语言理解达到了新高度
GLM-4-Plus 通过大规模语料库的训练和优化算法,模型在处理复杂语义上更加出色。提高了模型在智能客服、自动化办公等应用场景中的实用性。
在跑分测评中,语言文本能力方面,GLM-4-Plus和GPT4o及405B参数量的 Llama3.1 相当。
2)长文本处理能力突破
长文本处理一直是自然语言处理领域的难题之一。GLM-4-Plus 提出了创新的记忆机制、以及分段处理技术,在这一块取得了较大进步,帮助用户更高效地处理大量文本信息。
测评结果来看,长文本能力方面已经达到了国际先进水平。提高了模型在法律分析、学术研究、以及复杂内容创作方面的应用价值。
3)推理能力强化
引入了近端策略优化算法(PPO),帮助模型在探索最优解过程中保持稳定性和高效性。提高了模型在数学、编程等复杂推理推理任务中的变现。
所以,时至今日,大家在大模型开发上,我觉得再也没必要费劲巴拉地跨越各种障碍使用 GPT 了,直接使用 GLM-4-Plus 等模型平替就好。
那么假如我们想使用 GLM-4-Plus 来完成自己的工作任务,或者是搭建一个应用的话,我们该如何操作呢?别急,飞哥提供手把手的教程。
大模型接口使用方式
首先,你需要注册一个智谱的账号,并获取 API 秘钥(访问 https://bigmodel.cn/)。
获取 GLM-4 系列模型的官方文档(访问 https://bigmodel.cn/dev/api/normal-model/glm-4)
通过文档可以看到,智谱不仅仅是有 GLM-4-Plus ,还有 glm-4-0520、glm-4 、glm-4-air、glm-4-airx、glm-4-long 、 glm-4-flash。不同的模型能力不同,价格也有一些差异。
在接口调用方式上,可以使用 python SDK,也可以直接用最简单的 curl 的方式使用。接口的重要参数有如下几个
model:具体要使用哪个模型,例如 GLM-4-Plus
messages:传递给模型的系统消息、用户消息,以及历史助手消息等
temperature:控制模型输出的随机性(创造性),值越低模型回答越稳重,越高则模型会更具备创造性
max_tokens:模型输出的最大token数,默认值为1024,最大输出为4095
我们先对其进行一次简单的访问试试。我们在参数中指定模型使用 GLM-4-Plus,只和模型打个招呼,发送个“你好”。注意要使用你自己的 API 秘钥。
# curl --location 'https://open.bigmodel.cn/api/paas/v4/chat/completions' \
--header 'Authorization: xxxxxx' \
--header 'Content-Type: application/json' \
--data '{
"model": "GLM-4-Plus",
"messages": [
{ "role": "user", "content": "你好" }
],
"temperature": 1.0,
"max_tokens": 2048
}'
在命令行执行上述命令后就能收到大模型返回的内容了
{
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "你好👋!我是人工智能助手智谱清言(ChatGLM),很高兴见到你,欢迎问我任何问题。",
"role": "assistant"
}
}
],
"created": 1726484393,
......
}
使用大模型API可做哪些事
上面我们只是说了个最简单的例子。但实际上,大模型可以完成很多使用的功能,甚至你可以把接口包装一个独立的应用供你的用户访问。我来给大家举几个例子。
让大模型帮写代码
当我开发需求时,我就会先找大模型来来帮忙。通过直接把具体的需求描述给一下,大模型就会帮我们写出可用的代码。
例如,我想写一个统计 CPU 利用率的 shell 代码,我是这样调用 GLM-4-Plus 接口的。
# curl --location 'https://open.bigmodel.cn/api/paas/v4/chat/completions' \
--header 'Authorization: xxxxxx' \
--header 'Content-Type: application/json' \
--data '{
"model": "GLM-4-Plus",
"messages": [
{ "role": "system", "content": "你是一个专业的shell编程技术专家,善于用shell代码帮用户解决各种需求" },
{ "role": "user", "content": "请帮我写一段根据/proc/stat文件统计3秒内系统平均CPU利用率的代码,最好要区分用户态、内核态、软中断开销" }
],
}'
值得注意的是我的 messages 里这次增加了一个系统 system 角色。在大模型的接口中可以通过系统明确对话的主题或领域,指示模型扮演特定角色,能更大程度地保证大模型的回答不会偏离我们的需求。
接着在 messages 的 user 角色里指明了我们的指令,把我们的需求描述清楚。把请求发出去后,等待几秒后,大模型就可以输出非常专业的。经过我长时间的体验来看, GLM-4-Plus 给出的代码基本上只需要简单修改就可以直接使用。
{
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "为了计算3秒内系统的平均CPU利用率,并区分用户态、内核态和软中断的开销,我们可以编写一个Shell脚本来读取`/proc/stat`文件中的相关数据,计算两次读取之间的差值,并根据这些差值来计算CPU利用率。\n\n以下是实现该功能的Shell脚本:\n\n```bash\n#!/bin/bash......",
"role": "assistant"
}
}
],
"created": 1726487203,
"id": "2024091619461419429dbf38cd4b57",
"model": "GLM-4-Plus",
"request_id": "2024091619461419429dbf38cd4b57",
"usage": {
"completion_tokens": 748,
"prompt_tokens": 56,
"total_tokens": 804
}
}
GLM-4-Plus 输出的 usage 中告诉了我们消耗的 token 数量,在 choices 的 message 中,是输出的帮写的代码和注释。不但是给提供了完善的代码,还写出了非常完善的注释和详细的解释,另外还贴心地告诉我要把代码保存成一个 cpu_usage.sh。
# 获取初始的CPU时间统计
initial_stat=$(cat /proc/stat | grep '^cpu ')
initial_user=$(echo $initial_stat | awk '{print $2}')
......
# 等待3秒
sleep 3
# 获取当前的CPU时间统计
current_stat=$(cat /proc/stat | grep '^cpu ')
current_user=$(echo $current_stat | awk '{print $2}')
current_nice=$(echo $current_stat | awk '{print $3}')
......
# 计算差值
delta_user=$((current_user - initial_user))
delta_nice=$((current_nice - initial_nice))
# 计算总时间
total_time=$((delta_user + delta_nice + ......))
# 计算利用率
user_util=$(echo "scale=2; $delta_user * 100 / $total_time" | bc)
echo "3秒内系统平均CPU利用率:"
echo "用户态利用率: $user_util%"
.....
输出中还包括了代码实现解释
获取初始CPU时间统计:从/proc/stat文件中读取初始的CPU时间统计。
等待3秒:使用sleep 3命令等待3秒。
获取当前CPU时间统计:再次从/proc/stat文件中读取当前的CPU时间统计。
计算差值:计算两次读取之间的各个状态的差值。
计算总时间:计算总的CPU时间。
计算利用率:分别计算用户态、内核态和软中断的利用率。
输出结果:打印出3秒内系统的平均CPU利用率。
朋友圈文案
我在发朋友圈的时候经常会词穷,不知道该怎么样写文案既有趣,又能积极向上一些。现在我是经常在发朋友圈之前向我的朋友 - GLM-4-Plus 求助。它每次都能给我很棒的建议。
curl --location 'https://open.bigmodel.cn/api/paas/v4/chat/completions' \
--header 'Authorization: xxxxxx' \
--header 'Content-Type: application/json' \
--data '{
"model": "GLM-4-Plus",
"messages": [
{ "role": "system", "content": "你是一个专业的朋友圈文案专家,善于帮用户写出各种有趣的、积极向上的朋友圈文案" },
{ "role": "user", "content": "刚参加了一场羽毛球比赛,比赛获得了第三名的成绩,请帮写一段朋友圈文案" }
]
}'
输出格式还是一样的,主要信息都在 choices 下的 message 字段中。为了方便大家看,我单独把这个字段中的输出提炼了出来。
当然可以!以下是一段有趣且积极向上的朋友圈文案,庆祝你在羽毛球比赛中获得第三名的好成绩:
---
🏸🌟【羽球飞舞,荣耀归来!】🌟🏸
今天在羽毛球赛场上挥洒汗水,每一拍都倾尽全力,每一次跳跃都超越自我!🤸♂️💪
🥉虽然止步于季军,但心中的热血与激情依旧燃烧!这不仅仅是一份荣誉,更是对坚持和努力的最好证明!🔥🏅
感谢并肩作战的队友,感恩一路支持的朋友们!💖下次赛场,我们再创佳绩!🚀
#羽球达人 #热血赛场 #荣耀时刻
---
希望这段文案能表达出你的喜悦与自豪,同时也传递出积极向上的正能量!🌈👍
GLM-4-Plus 给的每一条建议都非常的优质,而且除了文案还配了恰当的emoji表情。
旅游计划
在外出旅行的时候,我的一大痛点是不知道目的地周围都有哪些好玩的地方,也不知道该如何制定旅游自驾路线,以及中间的时间、和住宿的安排。现在我直接把这项工作“外包”给 GLM-4-Plus 了。
如果你觉得这个功能有兴趣,我觉得未来完全你完全可以用这个功能来做一个工具类的应用,给时间紧张而没时间制定旅游攻略的上班族们使用。
以下是我使用的提示词。
curl --location 'https://open.bigmodel.cn/api/paas/v4/chat/completions' \
--header 'Authorization: Bearer 0d0fc3756a977a767a911b759468b7db.8FVb72' \
--header 'Content-Type: application/json' \
--data '{
"model": "GLM-4-Plus",
"messages": [
{ "role": "system", "content": "你是一个乐于解答各种问题的助手,你的任务是为用户提供专业、准确、有见地的建议。" },
{ "role": "user", "content": "## Goals\n制定一个全面而详细的旅行计划,包括目的地、行程、住宿、交通和活动安排。\n\n## Skills\n- 熟悉不同目的地的旅游资源和特色。\n- 能够根据用户需求进行行程定制。\n- 精通预算管理和时间安排。\n\n## Output Format\n1. 旅行目的地概览\n2. 详细行程安排(每日活动)\n3. 住宿建议\n4. 交通安排\n5. 预算明细\n6. 行李清单\n7. 紧急联系信息\n\n## Initialization\n你好,请为我规划一个新疆、旅行时间为:出行时间为七月份、旅程 7 天、预算 两万元的旅行计划。\n" }
]
}'
我对新疆不太熟悉,如果让我自己制作旅行攻略是一件非常耗费精力的事情。GLM-4-Plus 根据我的提示词给出了我非常棒的建议。
它给我的旅行建议中把喀纳斯湖、喀纳斯国家森林公园、吐鲁番、交河古城、葡萄沟、新疆博物馆都给安排到了。而且更重要的是时间节奏安排的很不错,最后选择了乌鲁木齐到北京的航班给我回京。
你好!非常高兴为你规划......
1. 旅行目的地概览
新疆是中国西北部的一个自治区,以其壮丽的自然风光、丰富的民族文化和独特的地理环境而闻名。我们将主要游览乌鲁木齐、喀纳斯、吐鲁番等地的著名景点。
2. 详细行程安排(每日活动)
Day 1: 北京 - 乌鲁木齐
上午:从北京乘飞机前往乌鲁木齐。
下午:抵达乌鲁木齐,入住酒店,稍作休息。
晚上:逛国际大巴扎,体验当地风情。
Day 2: 乌鲁木齐 - 喀纳斯
上午:乘坐早班飞机前往喀纳斯。
下午:抵达喀纳斯,入住酒店,游览喀纳斯湖。
晚上:享受宁静的湖边夜景。
Day 3: 喀纳斯
全天:游览喀纳斯国家森林公园,包括观鱼台、三湾(卧龙湾、月亮湾、神仙湾)。
Day 4: 喀纳斯 - 吐鲁番
上午:乘坐飞机前往吐鲁番。
下午:参观交河故城,了解古代丝绸之路的历史。
晚上:入住吐鲁番酒店。
Day 5: 吐鲁番
上午:游览葡萄沟,品尝当地特色葡萄。
下午:参观坎儿井,了解古代水利设施。
晚上:体验维吾尔族特色晚餐。
Day 6: 吐鲁番 - 乌鲁木齐
上午:乘坐火车返回乌鲁木齐。
下午:参观新疆博物馆,了解新疆的历史和文化。
晚上:自由活动,可以选择购物或休息。
Day 7: 乌鲁木齐 - 北京
上午:根据航班时间,前往机场。
下午:抵达北京,结束愉快的旅程。
3. 住宿建议
......
4. 交通安排
......
5. 预算明细
......
提供参考面试题
在工作的时候,准备面试题也是一件比较耗时的事情。如果每次都用同一套面试题的话,既不能更加准确地验证候选人的水平,也容易在多次面试之后出现题目泄露的情况。让大模型帮提供一些参考面试题也是非常不错的节约精力的方法。
如下是我使用的 Golang 后端开发岗位的提示词,把它格式化后传入到 API 接口的 user role 中。
# curl --location 'https://open.bigmodel.cn/api/paas/v4/chat/completions' \
--header 'Authorization: Bearer 0d0fc3756a977a767a911b759468b7db.8FVb72' \
--header 'Content-Type: application/json' \
--data '{
"model": "GLM-4-Plus",
"messages": [
{ "role": "system", "content": "你是一个乐于解答各种问题的助手,你的任务是为用户提供专业、准确、有见地的建议。" },
{ "role": "user", "content": "# Role: 招聘专家\n\n## Goals\n为特定职位生成一套多样化和相关的面试问题。\n\n## Constraints\n确保问题专业、无偏见,并专注于评估候选人对于工作的技能和经验。\n## Skills\n了解常见的面试问题类型,能够针对特定职位定制问题,理解有效的面试实践。\n## Output Format\n按照技能或主题分类的10个面试问题列表。\n## Workflow:\n1. 确定职位和所需的关键技能。\n2. 创建行为、情境、技术和经验基础问题的混合。\n3. 确保问题清晰、简洁且与职位相关。\n4. 将问题按类别组织,以便于参考。\n\n## Initialization:\n你好,为"Golang后端工程师"生成一套量身定制的面试问题。\n" }
]
}'
然后 GLM-4-Plus 就可以制定出一套非常完善的面试题,由于篇幅较长,这里我就不展示了。
输出内容具体包括了基础问题(goroutine、channel等),并发问题、RESTful API接口设计、情景问题(微服务架构拆分、故障处理),团队合作等。涵盖了 Golang 后端工程师所需的关键技能和经验,包括了对技术能力、软技能的评估。
除了以上这些应用外,GLM-4-Plus 还可以实现英文资料翻译、论文内容摘要分析、聊天机器人、解释代码(这个助教知识广博、不知疲倦、极有耐心,绝对不会因为你有什么不懂的反复提问而表示不耐烦)、文本举例、文本改写、内容审核、技术文档、法律文书、合同审核、商品推荐等。
我本篇公众号文章的标题就是 GLM-4-Plus 给生成的,我觉得非常不错,就采纳它的建议了。
最后值得提一下的是,在智谱的开发者后台上,除了基座大模型外。还包括文本生图模型 CogView,可以实现给文章配图、AI 作画、广告素材生成等功能。还有多模态模型 GLM-4V,可以帮我们分析视频内容,会极大地提高视频内容审核的效率。
更多的模型使用指南,请大家参考 https://bigmodel.cn/dev/howuse/introduction
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)