使用智谱 GLM-4-9B 和 SiliconCloud 云服务快速构建一个编码类智能体应用

本篇文章我将介绍使用智谱 AI 最新开源的 GLM-4-9B 模型和 GenAI 云服务 SiliconCloud 快速构建一个 RAG 应用,首先我会详细介绍下 GLM-4-9B 模型的能力情况和开源限制,以及 SiliconCloud 的使用介绍,最后构建一个编码类智能体应用作为测试。

本文首发自博客 使用智谱 GLM-4-9B 和 SiliconCloud 云服务快速构建一个编码类智能体应用

我的新书《LangChain编程从入门到实践》 已经开售!推荐正在学习AI应用开发的朋友购买阅读,此书围绕LangChain梳理了AI应用开发的范式转变,除了LangChain,还涉及其他诸如 LIamaIndex、AutoGen、AutoGPT、Semantic Kernel等热门开发框架。
LangChain编程从入门到实践

GLM-4-9B 有多强

智谱家 GLM-4-9B 模型的发布,可以称得上大模型开源领域的又一个里程碑事件,除了开源行为本身值得肯定,我觉得开源出来的模型可以接入线上应用直接使用,可能对我们做应用层的开发者意义更大。话不多说,看 GLM-4-9B 的介绍:

首先 GLM-4-9B 模型结构与 GLM-3-9B 变化不大,主要是模型层数由 28 增加到 40,词表大小由 65024 扩充到 151552、支持的上下文长度支持从 32K、128K 扩展到 128K、1M(GLM-4-9B-Chat-1M),做应用最关注的就是长上下文(多轮对话记忆保持、各种阅读助手、长文本理解等常见场景)能力和 Function Call 能力(工具调用,构建智能体应用的基础)。

1M 的上下文长度(约 200 万中文字符)方面,GLM-4-9B 在大海捞针测试中全绿。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

不过根据英伟达研究团队最近新提出的名为RULER的新基准,这里选用的测试方法(测试的 LWM 声称上下文长度 1M,实际不到 4K)测出来的结果有水分,这个我还会自己测试下。

上下文长度虚标严重

Function Call 能力也属于 gpt-4-turbo 级别,使用 Berkeley Function-Calling Leaderboard 测试集,这个对我来说比较有说服力,有兴趣的可以看看测试集设计,不过毕竟测试集公开,混在训练集里也不好说,这个我也按照相同思路设计了对应的私有中文测试集,引入之前也会再跑一次作为交叉验证。

ModelOverall Acc.AST SummaryExec SummaryRelevance
Llama-3-8B-Instruct58.8859.2570.0145.83
gpt-4-turbo-2024-04-0981.2482.1478.6188.75
ChatGLM3-6B57.8862.1869.785.42
GLM-4-9B-Chat81.0080.2684.4087.92

虽然开源,但也存在限制,就是学术研究免费,商业用途需要登记且必须遵守相关条款和条件,详见 Github 项目介绍:https://github.com/THUDM/GLM-4

SiliconCloud 有多好用

SiliconCloud 是硅基流动推出的 GenAI 云服务,这是国内同类产品中我体验最好的一家,便宜且推理速度还快,国外已经有很多类似服务了,比如 Banana, Replicate, Beam, Modal 、OctoAI、ModelZ、BentoML等,这类服务主要用于私有模型或常见开源模型托管,通过它们自研的推理加速引擎、大模型基础设施优化能力,大幅降低大模型的部署及推理成本,降低 AI 应用的成本,加速 AI 产品的落地 。

推理价格

SiliconCloud 便宜又快的原因就在于硅基流动自研的 LLM 推理加速引擎 SiliconLLM ,支持 Llama3、Mixtral、DeepSeek、Baichuan、ChatGLM、Falcon、01-ai(零一万物开源的模型)、GPT-NeoX 等模型加速,下面是 SiliconLLM 与推理框架vLLM(伯克利大学 LMSYS 组织开源)、Tensorrt-LLM(英伟达开源)的性能比较。

SiliconLLM与vLLM、Tensorrt-LLM性能比较

最后补充一组我自己本地随手测试的 API 调用服务吞吐:

  1. 首次响应时间与最快响应时间差Latency saved 0.03s): 表示首次响应时间与最快响应时间之间的差异,这个指标可以反映出大模型 API 服务在处理请求时的波动。
  2. 优化后的首 token 响应时间Optimized TTFT 0.36s):是指在多次请求中,最快的一次首 token 响应时间。
  3. 首 token 响应时间中位数Median TTFT 0.03s ):是指在所有请求中,首 token 响应时间的中位数,即一半的请求首 token 响应时间比这个值快,另一半比这个值慢。中位数可以提供一个更稳健的性能指标,因为它不受极端值的影响。
  4. 生成的 token 数量Tokens: 19):表示在请求过程中生成的 token 总数。
  5. token 生成速率79 tokens/sec): 表示每秒生成的 Token 数量,这是衡量大模型 API 服务处理能力的一个指标。
  6. 总时间Total time: 0.59s): 表示从开始发送 HTTP 请求到接收到最后一个 token 的时间,这是整个请求处理过程的总耗时

API吞吐

构建编码类智能体应用

首先前往官网 👉 https://cloud.siliconflow.cn/auth/login 注册 SiliconCloud 账号,无需手机号,邮箱注册即可(值得一提,新用户注册可以得到 42 元免费额度用于体验,相当于 3 亿 tokens),按流程注册,保存好生成的 API-KEY。

生成API密钥

开始之前先设置好 SiliconCloud 的 GLM-4-9B-Chat 模型, API 调用方式也与 OpenAI 兼容 ,所以可以直接使用 OpenAI SDK (langchain_openai)来访问 SiliconCloud 上的任意模型。

import os
from langchain_openai import ChatOpenAI
sc_api_key = os.getenv("SC_API_KEY")
llm = ChatOpenAI(base_url="https://api.siliconflow.cn/v1",api_key=sc_api_key,model="zhipuai/glm4-9B-chat")

后续代码和这篇文章 DeepSeek-V2 到底有多强?写一个 AI 编码 Agent 测测看(附详细代码)基本一致,也有着详细解释过程,这里不再赘述,后台回复 DeepSeek可获取完整代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/24198.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构和算法之数组和链表

一、数组 数组是一种线性数据结构,它是由一组连续的内存单元组成的,用于存储相同类型的数据。在JavaScript中,数组可以包含任意类型的数据,不只限于基本数据类型。 1.存储方式 在内存中,数组的元素是连续存储的&…

【Vue】组件的存放目录问题

注意: .vue文件 本质无区别 组件分类 .vue文件分为2类,都是 .vue文件(本质无区别) 页面组件 (配置路由规则时使用的组件)复用组件(多个组件中都使用到的组件) 存放目录 分类开来的…

Llama模型家族之拒绝抽样(Rejection Sampling)(二)均匀分布简介

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (一) 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (二) 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (三) 基于 LlaMA…

ssti模板注入

一、Flask应用 1、介绍 定义 Flask:是一个使用Python编写的轻量级web应用框架。Flask基于Werkzeug WSGI工具包和Jinja2模板引擎。 特点 良好的文档、丰富的插件、包含开发服务器和调试器、集成支持单元测试、RESTful请求调度、支持安全cookies、基于Unicode。 …

手机短信删除怎么恢复?快速找回的3个秘密武器

手机,这个我们每天离不开的小玩意儿,有时候也会让我们头疼不已。比如,你一不小心,或者为了清理点空间,就把那些重要的短信给删了。这些短信可能是你和好友的深夜聊天,或者是重要的工作信息。一旦删除&#…

人工智能就业方向有哪些?

人工智能就业方向有哪些? 随着人工智能技术的不断发展,其应用领域也越来越广泛。对于想要进入人工智能领域的年轻人来说,选择一个合适的职业方向是至关重要的。今天给大家介绍六个热门的人工智能就业方向,分别是机器学习工程师、自然语言处理…

Webshell检测初识

最近在研究webshell检测的小东西,所以开启一个专门记录webshell检测工具开发的专栏,若有遗漏之处,请大佬们指出。 本篇大致了解以下内容 什么是webshll?有哪些类型?各自有什么不同?Webshell有哪些常见的检测…

鼠标侧键映射虚拟桌面切换 —— Win11

鼠标侧键映射虚拟桌面切换 —— Win11 基于 AutoHotkey 实现功能 下载软件 AutoHotkey建议安装在默认路径下(C盘) 此软件非常小,几乎不占用资源软件安装在默认路径以外的位置可能导致部分功能不可用 新建一个 .ahk 文件使用记事本打开该 .a…

哪款开放式耳机佩戴最舒服?2024五款备受推崇产品分享!

​在现今耳机市场,开放式耳机凭借其舒适的佩戴体验和独特的不入耳设计,备受消费者追捧。它们不仅让你在享受音乐时,仍能察觉周围的声音,确保与人交流无障碍,而且有利于耳朵的卫生与健康。对于运动爱好者和耳机发烧友而…

GIGE 协议摘录 —— 引导寄存器(四)

系列文章目录 GIGE 学习笔记 GIGE 协议摘录 —— 设备发现(一) GIGE 协议摘录 —— GVCP 协议(二) GIGE 协议摘录 —— GVSP 协议(三) GIGE 协议摘录 —— 引导寄存器(四) GIGE 协议…

Flutter Dismissible 属性介绍及使用指南

在移动应用开发中,滑动删除是一种常见的交互方式。Flutter 提供了一个强大的小部件 Dismissible,使得实现这一功能变得非常简单。本文将介绍 Dismissible 的主要属性及其使用方法。 1. Dismissible 简介 Dismissible 是一个 Flutter 小部件&#xff0c…

前后端实现文件上传进度条-实时进度

后端接口代码&#xff1a; PostMapping("/upload")public ResponseEntity<String> handleFileUpload(RequestParam("file") MultipartFile file) {try {// 获取文件名String fileName file.getOriginalFilename();// 创建上传目标路径Path targetPa…

基于简单Agent对医疗数据进行分析

数据表 供应商资格审核规定.pdf 医生名录.xlsx 历史就诊记录.xlsx 患者信息名录.xlsx 药品.xlsx 药品库存管理.xlsx 采购单位基本信息.xlsx Agent测试 模型基于ChatGPT-3.5 问题&#xff1a;帮我找出不达标的供应商 Agent分析过程 [Thought: 0] Key Concepts: - 不达标的供…

P7 品牌管理

逆向生成页面 新增菜单—商品系统的品牌管理 —product/brand 在代码生成器得到的文件中&#xff0c; main-resources-src-views-modules-product brand.vue、brand-add-or-update.vue放到category.vue同级vue文件有新增、删除按钮&#xff0c;但页面未显示&#xff0c;是因…

嵌入式Linux系统中RTC应用的操作详解

第一:RTC的作用以及时间简介 “RTC”的英文全称是Reul-Time Clock,翻译过来是实时时钟芯片.实时时钟芯片是日常生活中应用最为广泛的电子器件之一,它为人们或者电子系统提供精确的实时时间,实时时钟芯片通过引脚对外提供时间读写接口,通常内部带有电池,保证在外部系统关…

【Android】使用EventBus进行线程间通讯

EventBus 简介 EventBus&#xff1a;github EventBus是Android和Java的发布/订阅事件总线。 简化组件之间的通信 解耦事件发送者和接收者 在 Activities, Fragments, background threads中表现良好 避免复杂且容易出错的依赖关系和生命周期问题 Publisher使用post发出…

好书推荐-人工智能数学基础

本书以零基础讲解为宗旨&#xff0c;面向学习数据科学与人工智能的读者&#xff0c;通俗地讲解每一个知识点&#xff0c;旨在帮助读者快速打下数学基础。    全书分为 4 篇&#xff0c;共 17 章。其中第 1 篇为数学知识基础篇&#xff0c;主要讲述了高等数学基础、微积分、泰…

鸿蒙Ability Kit(程序框架服务)【应用启动框架AppStartup】

应用启动框架AppStartup 概述 AppStartup提供了一种更加简单高效的初始化组件的方式&#xff0c;支持异步初始化组件加速应用的启动时间。使用启动框架应用开发者只需要分别为待初始化的组件实现AppStartup提供的[StartupTask]接口&#xff0c;并在[startup_config]中配置App…

Open vSwitch 数据包处理流程

一、Open vSwitch 数据包转发模式 Open vSwitch 根据不同的模块使用&#xff0c;主要分为两种数据包的转发模式&#xff1a;Datapath 模式和 DPDK 模式&#xff0c;这两种模式的主要区别在于&#xff1a; Datapath 模式&#xff1a; 使用内核空间的网络栈进行数据包的转发性能相…

理解和实现 LRU 缓存置换算法

引言 在计算机科学中&#xff0c;缓存是一种用于提高数据访问速度的技术。然而&#xff0c;缓存空间是有限的&#xff0c;当缓存被填满时&#xff0c;就需要一种策略来决定哪些数据应该保留&#xff0c;哪些应该被淘汰。LRU&#xff08;最近最少使用&#xff09;算法是一种广泛…