2025 年 AI 工具对开发者效率影响研究:AI写代码导致开发者效率下降19%

thbcm阅读(554)

作者:METR 研究团队 翻译与整理:编程狮(w3cschool.cn)

一、研究背景:为什么关注AI对开发者效率的影响?

随着AI工具在软件开发领域的广泛应用,理解其对开发者效率的实际影响变得至关重要。此前的编码/代理基准测试虽然有助于了解AI能力,但往往牺牲了现实性以换取规模和效率。这些基准测试通常任务自包含,无需先前上下文即可理解,并且使用算法评估,未能捕捉许多重要能力。这可能导致基准测试高估AI能力。另一方面,由于基准测试没有实时人类交互,模型可能因小型瓶颈而无法完成任务,尽管在实际使用中人类会修复这些问题,这可能导致我们低估模型能力。

我们对评估AI在现实场景中的影响感兴趣,特别是AI对AI研发本身的影响,这可能带来显著风险。例如,极快的AI进步可能导致监督或安全措施的崩溃。测量AI对软件开发者效率的影响,为基准测试提供了补充证据,有助于全面了解AI对AI研发加速的总体影响。

二、研究方法:如何测量AI工具对开发效率的影响?

为直接测量AI工具对软件开发的现实影响,我们招募了16位经验丰富的开发者,他们来自大型开源仓库(平均拥有22k+星和1M+代码行),并已贡献多年。开发者提供了246个真实问题列表,这些问题对仓库有价值——包括bug修复、功能添加和重构,通常属于他们的常规工作。然后,我们将每个问题随机分配为允许或不允许使用AI工具。当允许使用AI时,开发者可使用他们选择的任何工具(主要是Cursor Pro与Claude 3.5/3.7 Sonnet——研究时的前沿模型);当不允许使用AI时,开发者在没有生成式AI辅助的情况下工作。开发者完成这些任务(平均耗时两小时)时录制屏幕,并自我报告所需的总实现时间。我们以每小时150美元的报酬补偿开发者参与研究。

三、核心发现:AI工具为何反而拖慢了开发速度?

研究结果显示,当开发者被允许使用AI工具时,他们完成问题所需的时间比不使用AI工具时长19%——这是一个显著的减速,与开发者信念和专家预测相悖。这一感知与现实之间的差距引人注目:开发者预期AI能将其速度提升24%,即使在经历了减速后,他们仍相信AI使其速度提升了20%。

开发者预期AI提速 24%
实际使用AI后感知提速 20%
实际观察到的减速 19%

四、关键因素分析:哪些原因导致了减速?

我们研究了20个可能解释减速的潜在因素,发现以下5个因素可能起主要作用:

因素分类 具体描述
任务切换成本 开发者在使用AI工具时频繁切换任务,导致效率下降
AI输出审核 开发者需要花费额外时间审核和修正AI生成的代码
过度依赖AI 开发者可能因过度依赖AI而忽视自身技能的应用
工具学习曲线 掌握AI工具的有效使用需要时间,短期内可能降低效率
隐性要求处理 高质量代码要求(如文档、测试覆盖率)AI工具可能无法完全满足

五、研究结论:如何看待AI工具的实际效用?

研究结果表明,在特定条件下,AI工具可能并未显著提升开发者效率,反而导致减速。这并不意味着AI工具在所有场景下都无效。可能的解释包括:

观点 解释
AI工具的潜力未充分挖掘 开发者可能未充分利用AI工具的所有功能,或缺乏优化提示/脚手架
任务类型差异 AI在处理基准测试中的任务表现良好,但在现实复杂任务中可能面临挑战
人类因素影响 开发者可能因享受使用AI的过程或预期未来收益而高估其效率提升

六、未来展望:如何持续评估AI对开发效率的影响?

我们计划在未来运行类似研究,以跟踪AI带来的提速(或减速)趋势,特别是在这种评估方法可能比基准测试更难被操纵的情况下。如果AI系统能够显著加速我们设定中的开发者效率,这可能预示着AI研发进程的快速加速,进而可能导致风险扩散、监督和安全措施的崩溃或权力过度集中。

七、常见问题解答

问题 回答
开发者为何在使用AI时反而变慢? 开发者可能因频繁审核AI输出、处理AI工具未满足的隐性代码要求以及任务切换成本而变慢
研究结果是否适用于所有开发者? 本研究仅针对经验丰富的开源开发者,结果可能不适用于初学者或不熟悉的代码库
AI工具是否完全无用? 不是。AI工具可能在其他场景(如处理原型或研究代码)中非常有用,具体取决于任务类型和开发者经验

八、总结

本研究表明,尽管AI工具在特定基准测试中表现出色,但在现实复杂任务中,其对开发者效率的影响可能不如预期。理解这些差异对于合理评估AI工具的实际效用至关重要。我们鼓励开发者根据具体任务需求,结合自身经验,审慎选择和使用AI工具。

403 是什么意思?一文读懂 HTTP 状态码 403 及解决方法

thbcm阅读(524)

在浏览网页时,你是否曾遇到 “403 Forbidden” 的提示?这个看似简单的错误代码,背后却隐藏着网站安全机制的关键逻辑。今天,作为一名资深的编程开发技术专家,我将为你深入解析 HTTP 状态码 403 的含义、常见原因及解决方法,帮助你轻松应对这一问题。

一、403 状态码的含义

HTTP 状态码 403(Forbidden)表示服务器已经理解了客户端的请求,但拒绝授权访问。这意味着,虽然服务器收到了你的请求,但根据其预设规则,你没有权限访问所请求的资源。简而言之,403 错误可以理解为 “你没有足够的权限来查看这个页面或资源”。

与 401 状态码不同,401 表示请求未经过身份验证或提供的凭据无效,通常是因为用户未登录或登录信息错误。而 403 表示请求已经过身份验证,但用户没有执行该操作的权限。例如,普通用户试图访问仅限管理员的操作时,就会出现 403 错误。

二、常见原因及解决方法

1. 权限不足

  • 原因 :服务器上的文件或目录权限设置不当,导致用户无法访问。例如,网站管理员可能将某些敏感文件或目录的访问权限设置为仅限特定用户或 IP 地址。
  • 解决方法 :如果你是网站管理员,可以通过修改服务器上的文件或目录权限来解决此问题。如果你是普通用户,尝试联系网站管理员,告知他们你遇到了 403 错误,以便他们检查并调整权限设置。

2. IP 地址被封禁

  • 原因 :网站为了防止恶意攻击或滥用资源,可能会对某些 IP 地址进行封禁。如果你的 IP 地址被误判为恶意 IP,或者你之前在该 IP 地址下进行了违反网站规则的操作,那么当你再次访问该网站时,就会收到 403 错误。
  • 解决方法 :尝试使用其他网络环境访问该网站,例如切换到手机热点、使用代理服务器或 VPN 等。同时,你可以联系网站管理员,询问你的 IP 地址是否被封禁以及如何解除封禁。

3. 网站配置错误

  • 原因 :网站服务器的配置文件存在错误,例如 Apache 或 Nginx 的配置文件设置不当,导致某些请求被拒绝。
  • 解决方法 :如果你是网站管理员,需要检查服务器的配置文件,确保其正确无误。如果你不熟悉服务器配置,可以参考相关教程或寻求专业的技术支持。

4. 访问隐藏资源

  • 原因 :有些网站会隐藏某些资源,例如未发布的文章、内部测试页面等,并通过服务器设置禁止外部访问。
  • 解决方法 :除非你有合法的权限访问这些隐藏资源,否则不建议强行尝试访问。尊重网站的隐私和安全设置,避免进行不必要的操作。

5. Referer 或 User-Agent 限制

  • 原因 :网站为了防止恶意爬虫或第三方网站的非法链接,会对请求的 Referer 和 User-Agent 进行限制。如果客户端的请求不符合网站的限制条件,就会返回 403 错误。
  • 解决方法 :确保你的浏览器或客户端程序设置了正确的 Referer 和 User-Agent。如果你是网站管理员,可以在服务器配置中适当放宽这些限制,但要注意平衡安全性和开放性。

三、如何排查 403 错误

  • 检查 URL :确认你输入的 URL 是否正确,避免因拼写错误或路径错误导致无法访问。
  • 查看服务器日志 :如果你是网站管理员,可以通过查看服务器日志来获取更多关于 403 错误的详细信息,例如具体的请求参数、用户 IP 地址等,从而快速定位问题所在。
  • 使用诊断工具 :可以使用 curl 命令、Wireshark 等工具来诊断和分析 403 错误。curl 命令可以帮助你模拟请求并查看服务器的响应,而 Wireshark 可以抓取网络数据包,让你深入了解请求和响应的细节。

四、推荐课程

如果你对 HTTP 协议、Web 开发或网络安全感兴趣,编程狮(w3cschool.cn)上有许多相关的课程可以帮助你深入学习。例如,《基础网络协议入门课程》课程详细讲解了 HTTP 协议的工作原理、状态码的含义以及如何通过 JavaScript 与服务器进行交互。通过学习这些课程,你将能够更好地理解和解决 403 错误等问题,提升你的编程技能和网络知识水平。

总之,HTTP 状态码 403 表示服务器拒绝授权访问请求的资源。遇到此错误时,不要惊慌,可以通过检查权限设置、IP 地址、服务器配置等方面来排查和解决问题。同时,学习相关的编程知识和网络安全技术,将有助于你更好地应对各种网络问题。

HTTP 401 状态码详解:未授权的含义与解决办法

thbcm阅读(598)

在网络开发和学习过程中,我们经常会遇到各种 HTTP 状态码,其中 “401 Unauthorized”(未授权)是一个常见的客户端错误状态码。对于零基础学习者来说,理解这个状态码的含义以及如何解决相关问题至关重要。本文将详细讲解 HTTP 401 状态码的基础知识、常见场景以及解决办法,帮助你轻松掌握这一概念。

一、什么是 HTTP 401 状态码?

HTTP 401 状态码表示客户端请求需要用户身份验证,但缺少有效的身份验证凭据,或者提供的凭据无效。简单来说,这就是服务器告诉客户端:“你想访问的资源是受保护的,但你没有提供有效的‘通行证’,所以不允许访问”。

与其他 HTTP 状态码相比,401 状态码有其独特之处:

  • 与 403 状态码不同:403 状态码表示即使客户端通过了身份验证,仍然没有权限访问请求的资源。而 401 状态码表示客户端根本未提供有效的身份验证信息。
  • 与 404 状态码不同:404 表示请求的资源在服务器上不存在,而 401 表示资源存在,只是客户端没有权限访问。

二、401 状态码的常见场景

1. 未登录或登录状态失效

当用户尝试访问需要登录才能使用的资源时,如果未登录或登录状态因长时间不活动而失效,服务器会返回 401 状态码。

2. 认证令牌过期或无效

在基于令牌(如 JWT,JSON Web Token)的身份验证系统中,如果客户端发送的令牌已过期或无效,服务器会拒绝请求并返回 401 状态码。例如,用户登录后获得了一个令牌,但如果这个令牌过期而用户未及时刷新,再次请求受保护资源时就会触发 401 错误。

3. 请求缺少必要的认证信息

如果请求中缺少 Authorization 头部字段,或者 Authorization 头部的内容格式不正确,服务器也无法验证客户端身份,从而返回 401 状态码。

4. 用户名或密码错误

当用户尝试登录时,如果输入的用户名或密码错误,服务器也会返回 401 状态码,表示身份验证失败。

三、401 状态码的解决方法

1. 检查登录状态

  • 如果是因为未登录导致的 401 错误,解决办法很简单:直接登录即可。对于前端开发,可以通过编程狮平台学习如何实现用户登录功能,例如使用表单提交用户名和密码。
  • 如果是登录状态失效,可能需要重新登录,或者在后端实现自动刷新令牌的机制。

2. 检查认证令牌

  • 如果是令牌过期或无效,需要检查令牌的生成和验证逻辑。确保后端正确签发令牌,并且客户端在请求时携带了有效的令牌。
  • 在编程狮的课程中,你可以学习如何生成和验证 JWT 令牌,以及如何在请求头中正确设置 Authorization: Bearer <token> 的格式。

3. 确保请求包含正确的认证信息

  • 在开发中,务必检查请求头是否正确设置了认证信息。例如,在使用 Axios 发起 HTTP 请求时,可以通过以下代码确保请求头中包含认证信息:
  axios.get('/api/protected-resource', {
    headers: {
      'Authorization': 'Bearer ' + yourValidToken // yourValidToken 是有效的认证令牌
    }
  })
  .then(response => {
    console.log('请求成功:', response.data);
  })
  .catch(error => {
    console.error('请求失败:', error.response.status);
  });

如果你对 Axios 或 HTTP 请求还不熟悉,可以参考编程狮上的相关教程,深入学习如何正确发起 API 请求。

4. 检查用户名和密码

  • 如果是因为用户名或密码错误导致的 401 错误,需要提醒用户仔细核对输入的信息。在编程狮的入门课程中,你可以学习如何设计用户友好的登录界面,以及如何处理用户输入错误。

5. 清理缓存和 Cookie

  • 有时候,浏览器缓存或 Cookie 中存储的过期认证信息可能导致 401 错误。可以尝试清除浏览器缓存和 Cookie,然后重新登录系统。

6. 检查服务器配置

  • 如果上述方法都无法解决问题,可能是服务器端的配置出现了问题。例如,服务器可能未正确配置身份验证中间件,或者防火墙规则限制了某些请求。此时,需要联系后端开发人员或服务器管理员进行排查。

四、推荐编程狮相关课程

如果你对 HTTP 协议、身份验证或前端开发感兴趣,编程狮(W3Cschool)上有许多适合初学者的课程:

五、总结

HTTP 401 状态码并不可怕,它是服务器提醒客户端需要正确身份验证的一种方式。通过本文的讲解,你已经了解了 401 状态码的含义、常见场景以及解决办法。如果你是初学者,建议从基础课程学起,逐步掌握前端开发和 API 交互的相关知识。希望这些内容能帮助你在编程学习的道路上越走越远!

BUG 是什么意思?轻松掌握编程中的“BUG”概念

thbcm阅读(490)

在编程的世界里,BUG 这个词频繁出现,它是程序员们既熟悉又“头疼”的存在。那么,BUG 到底是什么意思呢?今天,编程狮将用通俗易懂的语言为大家揭开 BUG 的神秘面纱,帮助零基础的初学者快速理解这一概念。

一、BUG 的定义

BUG 是英文单词 “Bug” 的音译,原意是指 “虫子”。在编程领域,BUG 指的是程序中存在的错误、缺陷或异常情况,这些错误可能导致程序无法正常运行、产生错误结果,或者出现意想不到的行为。就像一台精密的机器中混入了一颗坏掉的螺丝,虽然看似微小,但却可能影响整个机器的正常运转。

二、BUG 的产生原因

BUG 的产生原因多种多样,常见的有以下几种:

1. 编写代码时的疏忽

程序员在编写代码时,可能会因为一时的疏忽而犯下一些低级错误。例如,拼写错误、忘记添加分号、括号不匹配等。这些看似不起眼的小错误,却可能成为程序中的 BUG。就像在写一篇文章时,一个错别字可能会让读者误解整个句子的意思。

2. 逻辑错误

逻辑错误是指程序的算法或逻辑设计存在缺陷。这种错误往往不容易被发现,因为代码在语法上可能是正确的,但执行结果却不符合预期。例如,一个计算程序本来应该输出加法结果,却因为逻辑错误输出了乘法结果。

3. 外部环境的影响

有时候,外部环境的变化也可能导致程序出现 BUG。例如,程序所依赖的第三方库版本更新,或者程序运行的硬件环境发生了变化。这些外部因素可能与程序内部的代码产生冲突,从而引发 BUG。

三、BUG 的示例

下面,我将通过一个简单的 JavaScript 示例来让大家更直观地了解 BUG。

let name = "Alice";
console.log("Hello, " + nmae);

在这个例子中,我们定义了一个变量 name,并将其值设置为 “Alice”。然后,我们试图输出 “Hello, ” 加上 name 的值。然而,由于在 console.log 中错误地将 name 拼写成了 nmae,这段代码将无法正常运行,会在控制台输出错误信息,这就是一个典型的 BUG。

当我们修复这个拼写错误后,代码将能够正常运行,输出预期的结果 “Hello, Alice”。

四、如何发现和修复 BUG

发现和修复 BUG 是编程过程中不可或缺的一部分。以下是一些常用的方法:

1. 仔细阅读错误信息

当程序出现 BUG 时,通常会在控制台或日志中输出错误信息。这些错误信息往往包含了 BUG 的位置和原因。仔细阅读和分析这些信息,可以帮助我们快速定位问题所在。

2. 使用调试工具

现代的编程环境通常都提供了强大的调试工具。通过这些工具,我们可以逐步执行代码,观察变量的值和程序的执行流程,从而发现潜在的 BUG。

3. 代码审查

代码审查是一种有效的发现 BUG 的方法。让其他程序员审查你的代码,他们可能会发现你忽略的错误或潜在的问题。同时,你也可以从他人的代码中学习到新的编程技巧和经验。

五、推荐课程

如果你对编程感兴趣,并且希望进一步提升自己的编程能力,编程狮(w3cschool.cn)上有许多优质的课程可供选择。例如,《JavaScript 入门到精通》课程将带你深入了解 JavaScript 编程的基础知识和高级技巧,帮助你更好地理解和处理 BUG。此外,《HTML + CSS 前端开发实战》课程则专注于前端开发领域,教你如何编写高质量的前端代码,减少 BUG 的出现。

六、总结

BUG 是编程中不可避免的一部分,它指的是程序中存在的错误、缺陷或异常情况。通过了解 BUG 的定义、产生原因、示例以及发现和修复的方法,我们可以更好地应对编程过程中的各种挑战。记住,发现和修复 BUG 不仅是编程的一部分,更是提升编程技能的重要途径。在编程狮平台上,有许多丰富的学习资源可以帮助你不断进步,成为一名优秀的程序员。

301 是什么意思?——HTTP 状态码详解与应用

thbcm阅读(540)

在互联网的世界里,当我们访问一个网站时,服务器会返回一个数字代码,这个代码就是 HTTP 状态码。其中,“301”是一个非常重要的状态码,它代表着“永久重定向”。这意味着,当你尝试访问的网页地址已经永久地迁移到了另一个新的地址,服务器会自动将你引导到新的页面上。

一、HTTP 状态码基础

HTTP 状态码是服务器与客户端之间通信的一种语言,它帮助浏览器理解服务器的响应状态。这些状态码通常由三位数字组成,不同的数字范围代表不同的含义。例如,以“2”开头的状态码表示请求已成功被服务器接收、理解、并接受;以“3”开头的状态码则表示客户端需要采取进一步的操作来完成请求,而“301”正是这个类别中的一种。

二、301 状态码的详细解释

(一)永久重定向的含义

当服务器返回“301”状态码时,它告诉浏览器:“你请求的资源已经永久地搬到了另一个地址。”这与临时重定向(如“302”状态码)不同,后者表示资源只是暂时地移动到了新地址,未来可能会变回来。而“301”意味着这次搬迁是永久性的,浏览器应该更新它的记录,直接访问新的地址。

(二)对用户体验的影响

对于普通用户来说,“301”状态码的工作通常是无形的。当你点击一个链接或者在浏览器中输入一个网址时,如果该地址已经被永久重定向,你不会注意到中间发生了什么,只会发现自己被顺利地带到了新的页面上。这种无缝的过渡保证了用户浏览体验的连续性和流畅性。

(三)对搜索引擎优化(SEO)的作用

对于网站所有者和 SEO 专家来说,“301”状态码具有重要的意义。当一个网页的 URL 发生变更时,使用“301”重定向可以确保搜索引擎知道这个页面已经永久迁移,并将原页面的权重和排名传递给新的页面。这有助于保持网站在搜索引擎结果中的可见性和排名,避免因 URL 变更而导致的流量损失。

三、实际应用场景

(一)网站迁移或改版

当一个网站进行大规模的迁移或改版时,旧的 URL 结构可能不再适用。通过设置“301”重定向,可以将用户从旧的页面引导到新的对应页面,确保用户能够找到他们需要的信息,同时也保留了搜索引擎的排名。

(二)域名变更

如果一个网站决定更换域名,使用“301”重定向可以将所有流量从旧域名转移到新域名,避免用户因输入旧域名而无法访问网站,同时也帮助搜索引擎快速识别新域名,并将原域名的权重转移到新域名上。

四、如何实现 301 重定向

在编程狮或 W3Cschool 的相关课程中,你可以学习到如何在不同的服务器环境中设置“301”重定向。例如,在 Nginx 服务器中,你可以在配置文件中添加如下代码:

server {
    listen 80;
    server_name old.example.com;  # 旧域名

    
    # 设置 301 永久重定向
    return 301 http://new.example.com$request_uri;  # 新域名
}

这段代码的作用是将所有对“old.example.com”的请求永久重定向到“new.example.com”,其中“$request_uri”变量确保了用户请求的路径和参数也被正确地转移到新的域名上。

五、总结

“301”状态码是 HTTP 协议中的一个关键组成部分,它在维护网站的用户体验和搜索引擎优化方面发挥着重要作用。通过理解“301”状态码的含义和应用场景,以及学习如何在服务器端实现它,你可以更好地管理你的网站,确保在 URL 发生变更时,用户和搜索引擎都能够顺利地找到新的资源位置。

Debug 是什么意思?从零开始学会调试程序

thbcm阅读(560)

在编程过程中,你是否遇到过这样的问题:你写了一段代码,却总是运行不成功,或者运行的结果和预期完全不一样?如果是这样,恭喜你,你已经进入了一个所有程序员都会经历的阶段——“Debug 时刻”。Debug 是什么意思?它就是找出程序中的错误并修复它的一个过程。

一、Debug 是什么?

Debug 的全称是 Debugging,直接翻译就是“调试”。如果用生活中的例子来类比,Debug 就像修灯泡。灯泡不亮了,你可以检查灯泡是否烧坏、灯座有没有松动、线路是否通电。Debug 的本质也是类似的——找出问题并解决问题。

在编程中,Debug 主要包括两个步骤:

  1. 找到问题在哪里(为什么会出错)。
  2. 修复问题(通过修改代码让它按预期工作)。

二、为什么需要 Debug?

Debug 是编程中不可或缺的一个环节,原因主要有两个:

  1. 程序代码复杂性:随着程序规模的增大,代码逻辑会越来越复杂,稍不留意就容易产生错误。
  2. 人为疏忽:即使是经验丰富的开发者,也无法避免在写代码时犯下逻辑错误或拼写错误。

Debug 的重要性在于,它能帮助你快速定位问题,节省宝贵的时间,同时还能加深你对代码的理解。

三、Debug 的一个简单示例

为了更好地理解 Debug,我们来看一个简单的例子。以下是一段 JavaScript 代码:

function 计算总和(a, b) {
    return a - b; // 这里故意写错了
}


let 结果 = 计算总和(5, 3);
console.log("结果是:", 结果);

这段代码的目的是计算两个数字的和,然而我们在 return 语句中犯了一个错误——将加法写成了减法。程序运行后,输出的结果是“结果是:2”,而不是我们预期的“结果是:8”。

要 Debug 这个问题,我们需要:

  1. 找到错误原因:检查代码逻辑。
  2. 修复错误:把减号改成加号。

四、Debug 的方法和技巧

Debug 并不是一件随意的事情,有一些常见的方法和技巧可以帮到你。

1. 打印调试

打印调试是最基础的一种 Debug 方法,通过插入 console.log 输出变量的值,可以快速定位问题。例如,在上面的代码中:

function 计算总和(a, b) {
    console.log("a 的值是:", a); // 打印 a
    console.log("b 的值是:", b); // 打印 b
    return a - b;
}

通过打印,我们可以观察到 a 和 b 的值是正确的,但计算结果却不对。这让我们迅速锁定到代码逻辑出了问题。

2. 使用断点调试

在复杂的程序中,为了更好地观察代码执行过程,可以使用浏览器开发者工具中的断点功能。在代码某一行设置断点,程序执行到这一行时会暂停,你可以逐步执行,观察每一步的变化。

五、推荐学习资源

Debug 是每个程序员必须掌握的技能。如果你对 Debug 感兴趣,可以深入学习编程狮平台上的相关课程:

  1. 《JavaScript 基础实战》:学习 JavaScript 编程的基础知识,为 Debug 打下基础。

六、总结

Debug 是编程中一个非常重要的环节,它不仅是找出并修复错误的过程,也是深入理解代码逻辑的过程。初学者不必害怕犯错,因为错误是成长的必经之路。通过学习 Debug 技巧,你可以更加从容地面对编程中的问题。

希望这篇文章能够帮助你在 Debug 的道路上迈出第一步!

什么是算力?一文读懂算力的奥秘

thbcm阅读(496)

在数字化飞速发展的今天,“算力”这个词频繁地出现在我们的视野中。从人工智能到大数据分析,从科学研究到日常办公,算力无处不在。那么,究竟什么是算力呢?今天,作为一名资深的编程开发技术专家,我将用通俗易懂的语言为大家揭开算力的神秘面纱。

一、算力的定义

简单来说,算力就是计算机的计算能力(Computing Power)。无论是我们的手机、电脑,还是强大的超级计算机,它们的核心功能都是对数据进行处理和运算。算力越高,设备处理数据的速度就越快,能够完成的任务也就越复杂。就像一个拼图高手,算力越强,拼完一幅复杂的拼图所需的时间就越短。

二、算力的构成

算力的强弱取决于多种因素。首先是硬件基础,包括 CPU(中央处理器)、GPU(图形处理器)等。CPU 是计算机的大脑,负责执行各种计算任务;GPU 则擅长并行计算,尤其在图像处理和人工智能领域表现出色。其次是内存和存储,内存是计算机临时存储数据的地方,内存容量越大、速度越快,算力的效率就越高;而快速的存储设备(如固态硬盘 SSD)能显著提升数据加载和写入速度。此外,网络带宽也对算力有影响,在分布式计算系统中,高带宽网络可以减少节点间的数据传输时间,从而提升整体算力表现。

三、算力的分类

算力可以根据应用领域分为几类。通用算力主要用于日常任务,如办公、上网、看视频等,它就像一个多面手,适合处理各种常规任务。科学算力则专注于解决复杂的科研问题,如模拟气候变化、分析基因序列、研究星系分布和黑洞形成等,它是算力界的“学霸”,能够完成高强度、高精度的计算任务。智能算力主要应用于人工智能领域,包括机器学习、深度学习、数据分析等,它以 GPU、FPGA(现场可编程逻辑门阵列)、AI 芯片等输出的计算能力为主,为人工智能算法模型的训练与运行提供强大的支持。

四、算力的衡量

衡量算力有多种方法和单位。常见的有 MIPS(每秒钟执行的百万指令数)、FLOPS(每秒浮点运算次数)、OPS(每秒操作次数)、Hash/s(每秒哈希运算次数)等。其中,FLOPS 是衡量计算机运算速度的主要指标之一,从量级来看,PC 的算力为 GFLOPS 级别;中国超级计算机神威“太湖之光”的算力为 93.015PFLOPS;鹏程实验室的鹏程云脑 II 拥有 1000PFLOPS 的强大算力,相当于数千万甚至上亿台 PC 的集合。在人工智能领域,还常用 TOPS(Tera Operations Per Second)来衡量 AI 芯片的算力,它表示每秒执行多少次操作,主要用于评估神经网络计算中的矩阵乘法等操作。

五、算力的应用

算力在我们生活的方方面面都发挥着重要作用。在人工智能领域,深度学习模型的训练和推理需要极大的算力支持。像 ChatGPT 这样的语言模型,训练过程涉及大量的矩阵乘法和浮点数计算,往往需要数千甚至上万块 GPU 进行分布式训练;而在推理阶段,生成模型的响应也需要高效的算力来实现。在科学研究中,气候模拟、分子动力学模拟、量子计算模拟等任务同样离不开强大的算力,这些复杂的计算通常由超级计算机来完成。此外,图形渲染与视频处理也是算力的典型应用领域,3D 建模、电影制作、游戏中的图像渲染等都需要极高的算力来实现逼真的视觉效果。

六、算力的发展与挑战

随着科技的不断进步,算力也在不断提升。然而,算力的发展也面临着一些挑战。摩尔定律曾预测集成电路上晶体管数量每 18-24 个月翻一番,从而提升计算能力,但随着技术接近物理极限,摩尔定律的速度开始减缓。为了解决这一问题,科学家们开始探索新的架构,如量子计算、光计算和神经形态计算等。同时,能效问题也日益凸显,大规模的计算通常会消耗大量的能源,如何在提升算力的同时减少能耗,成为当前计算技术面临的一个关键挑战。此外,并行计算的挑战也不容忽视,随着算力的提升,越来越多的计算任务被分布到多个计算节点上,这就需要高效的并行计算和数据传输技术,而分布式计算面临着同步、负载均衡、通信延迟等问题。

七、编程狮助你探索算力世界

如果你对算力的世界感兴趣,想要深入了解并掌握相关技术,编程狮(W3Cschool)平台为你提供了丰富的学习资源。在编程狮上,你可以学习到关于计算机硬件、软件开发、人工智能等各个方面的课程,从基础的编程语言到高级的算法设计,从简单的数据处理到复杂的人工智能应用,全方位提升你的编程能力和对算力的理解与应用能力,让你在数字化时代中更好地把握机遇,迎接挑战。

常用 Python 爬虫库汇总

thbcm阅读(518)

常用 Python 爬虫库汇总

在数据驱动的时代,网络爬虫技术已成为众多行业进行数据采集与分析的关键工具。Python 凭借简洁易用的语法和丰富的库生态,成为了构建网络爬虫的首选语言。本文将汇总常用的 Python 爬虫库,帮助初学者快速入门。

一、请求库

1.1 requests

  • 简介:requests 是 Python 中最流行的 HTTP 库之一,可用于发送 HTTP 请求和接收网页响应。它的简单性和直观的 API 设计,使其成为编写爬虫的首选库。
  • 安装:pip install requests
  • 使用示例:

    import requests
    
    
    
    
    # 发送 GET 请求
    response = requests.get("https://www.example.com")
    
    
    
    
    # 输出状态码
    print(response.status_code)
    
    
    
    
    # 输出网页内容
    print(response.text)

    在编程狮的 Python 爬虫入门课程中,requests 库的使用是基础内容之一,通过实际案例帮助学员快速掌握如何抓取网页数据。

1.2 urllib

  • 简介:urllib 是 Python 的内置库,提供了一系列用于操作 URL 的功能,可以用来发送 HTTP/HTTPS 请求。
  • 使用示例:

    from urllib import request
    
    
    
    
    # 发送 GET 请求
    response = request.urlopen("https://www.example.com")
    
    
    
    
    # 输出网页内容
    print(response.read().decode("utf-8"))

    urllib 库功能强大且灵活,但在易用性上稍逊于 requests。在 W3Cschool 的 Python 教程中,urllib 也占据了重要位置,适合学习网络请求的基础原理。

二、解析库

2.1 BeautifulSoup

  • 简介:BeautifulSoup 是用于解析 HTML 和 XML 文档的库,可以从网页中提取所需信息,同时拥有强大的 API 和多样化的解析方式。
  • 安装:pip install beautifulsoup4
  • 使用示例:

    from bs4 import BeautifulSoup
    
    
    
    
    html = "<html><head><title>测试页面</title></head><body><p>欢迎来到编程狮</p></body></html>"
    soup = BeautifulSoup(html, "html.parser")
    
    
    
    
    # 提取标题
    print(soup.title.string)
    
    
    
    
    # 提取段落内容
    print(soup.p.text)

    BeautifulSoup 是初学者最友好的解析库之一,在编程狮的爬虫课程中,它与 requests 的组合使用被广泛讲解,帮助学员轻松提取网页数据。

2.2 lxml

  • 简介:lxml 是一个高效的 HTML/XML 解析库,支持 XPath 解析方式,解析效率非常高。
  • 安装:pip install lxml
  • 使用示例:

    from lxml import etree
    
    
    
    
    html = "<html><head><title>测试页面</title></head><body><p>欢迎来到 W3Cschool</p></body></html>"
    tree = etree.HTML(html)
    
    
    
    
    # 使用 XPath 提取标题
    title = tree.xpath("//title/text()")
    print(title[0])
    
    
    
    
    # 提取段落内容
    content = tree.xpath("//p/text()")
    print(content[0])

    lxml 库在处理大规模数据时表现出色,是编程狮高级爬虫课程中推荐的解析工具之一。

三、爬虫框架

3.1 Scrapy

  • 简介:Scrapy 是一个强大的爬虫框架,用于快速高效地抓取网站并从页面中提取结构化数据。它提供了丰富的功能和工具,可以高效地爬取大量数据。
  • 安装:pip install scrapy
  • 使用示例(创建简单爬虫):

    import scrapy
    
    
    
    
    class ExampleSpider(scrapy.Spider):
      name = "example"
      start_urls = ["https://www.example.com"]
    
    
    
    
      def parse(self, response):
          # 提取网页标题
          title = response.css("title::text").get()
          print(title)
    
    
    
    
          # 提取段落内容
          content = response.css("p::text").get()
          print(content)

    在编程狮的爬虫进阶课程中,Scrapy 是重点学习内容,帮助学员构建复杂爬虫项目,实现高效数据采集。

3.2 Selenium

  • 简介:Selenium 是一款基于浏览器的自动化程序库,可以抓取动态渲染的网页内容。
  • 安装:pip install selenium
  • 使用示例:

    from selenium import webdriver
    
    
    
    
    # 启动浏览器
    driver = webdriver.Chrome()
    
    
    
    
    # 打开网页
    driver.get("https://www.example.com")
    
    
    
    
    # 提取网页标题
    print(driver.title)
    
    
    
    
    # 提取段落内容
    print(driver.find_element("xpath", "//p").text)
    
    
    
    
    # 关闭浏览器
    driver.quit()

    Selenium 在处理复杂的动态网页时非常有效,是编程狮爬虫实战课程中推荐的工具之一,帮助学员应对各种爬虫场景。

四、存储库

4.1 pandas

  • 简介:pandas 是一个强大的数据处理库,可以方便地对爬取的数据进行整理、清洗和分析。
  • 安装:pip install pandas
  • 使用示例:

    import pandas as pd
    
    
    
    
    # 创建数据
    data = {"姓名": ["张三", "李四"], "年龄": [25, 30]}
    
    
    
    
    # 转换为 DataFrame
    df = pd.DataFrame(data)
    
    
    
    
    # 保存为 CSV 文件
    df.to_csv("编程狮学员信息.csv", index=False, encoding="utf-8-sig")

    在编程狮的数据分析课程中,pandas 是核心工具之一,帮助学员高效处理爬虫采集到的数据。

总结

以上是 Python 爬虫中常用的库,初学者可以从 requests 和 BeautifulSoup 入门,掌握基础的网络请求和数据解析技能。随着学习的深入,可以学习 Scrapy 和 Selenium 等高级工具,应对更复杂的爬虫场景。同时,pandas 等数据处理库能够帮助学员更好地整理和分析数据。编程狮平台提供了丰富的 Python 爬虫课程,从基础到进阶,全方位满足学习需求。

课程推荐

数字劳动力:大模型、AI Agent助力企业全链条智能化升级

thbcm阅读(496)

导语

经济学家保罗·克鲁格曼曾说“经济萧条、通货膨胀、战争都会让一个国家贫困,唯有生产率的提高可以让它富裕起来。”提高人类的生产率,是技术发展不懈的追求,尤其是提高生产率的技术,无论是机械还是自动化,或多或少都涉及对劳动力的节约和替代。

随着LLM能力的进化与行业标准化体系的建立,2025年已然成为AI Agent从概念验证到规模落地的关键转折点,也是AI Agent规模化落地的关键一年,AI Agent正在改变企业的生产方式和交互模式,它不仅是技术的突破,更是企业战略升级的关键。企业应优先在高频、规则明确、数据丰富的场景试点AI Agent,逐步积累经验,最终实现全链条智能化升级。

一、大模型的知识处理能力

01新技术的使能效应

大模型是AI历史的突变和涌现,从1956年达特茅斯学院的人工智能会议算起,人工智能历史已接近70年。在机器学习中,模型作为核心概念,本质是对函数映射的描述何抽象,通过对模型进行训练何优化,可以得到更加准确和有效的函数映射。建立模型的目的,是从数据中找到一些规律和模式,用这些规律和模式,预测未来的结果。模型的复杂度越高,模型越容易过拟合。模型参数越多,意味着该模型可以处理更复杂、更丰富的信息,具有更高的准确性和表现力。因此,超大模型的训练和调整需要极其巨大的计算资源和数据量级、更加复杂的算法和技术、大规模的投入和协作。

在中国,AI大模型的主要代表是阿里通义千问、百度文心一言、华为盘古、字节豆包,这些模型的共同是:需要在大规模数据集上进行训练,基于大量的计算资源进行优化和调优,借助大模型,深度学习算法可以更好的处理这些任务,提高模型的准确性和性能。

经济学家保罗·克鲁格曼曾说“经济萧条、通货膨胀、战争都会让一个国家贫困,唯有生产率的提高可以让它富裕起来。”提高人类的生产率,是技术发展不懈的追求。而提高生产率的技术,无论是机械还是自动化,或多或少都涉及对劳动力的节约和替代。

无论是在手工时代,还是工业革命时期,新的技术突破,也会带来全新的产品和服务。19世纪30年代修建的蒸汽机车和铁路;20世纪10年代的汽车和公路建设;21世纪10年代的智能手机和移动互联网服务,都是巨大的新市场和蛋糕。重要的是,新的产品同样会促进其他行业产品的流通。新岗位的就业数量与市场规模成正比,新技术要打开新市场,才能源源不断的增加岗位,来解决旧岗位被技术替代解决的失业问题。工业革命是在1840年后进入的良性循环,1850年工厂发挥规模经济优势,刺激蒸汽机的应用,催生密集型的新岗位。新技术的使能效应过程中,呈现了两个关键特征,分别是生产体系和人力教育对技术的主动适应性。

图1: 新技术的使能效应图

回顾几次工业革命,技术对生产率的跨越提升,均需要生产流程围绕新技术进行重构。

早期的印刷术改变获取、保存、传播知识的方式,促进了知识的交流,百年后的大语言模型再次改变了人类的认知过程。无论是印刷术还是互联网技术,都提高了知识传播的数量和质量,大模型的出现改善了信息的互动方式,有效的在场景中运用,从记忆、理解、应用、分析、评价、创造等六个层次中,大模型与大脑在知识处理中不同层次都各有优势,人们知识处理的范式转换,由于坐拥全人类精选知识作为预训练输入,大模型经过RL、监督学习、推理等多种能力后,它将更全面的参与到业务生产中。未来的科研和发明,都会有大模型的深度参与和助力。

大模型可以作为私人助手,帮人们高效完成工作,也可以自主平等协作,完成不同级别的业务流程。

图2:未来无人企业开会的变化/不同级别的业务流程

02数字时代的智能基座:预训练模型;算法皇冠上的明珠:生成式模型

当我们拥有了高质量数据和算力后,算法可加深解析数据,能够精准定位关键信息并生成决策方案,减少算力消耗,优化资源利用,通过迁移学习等技术,将已有知识迁移到新任务中,能减少训练时间和计算资源消耗,驱动算力发展效率。‌三者协同作用,共同推动AI技术进步。

预训练模型:预训练在算法大模型领域是革命性的技术范式,核心价值在于自监督学习海量数据知识,可为下游提供强大的基础能力。若将预训练比喻为神经网络模型的练习题,在预训练期间,模型会根据预测结果进行反向传播,调整模型参数来提高模型的准确性。这个过程很像做练习题,每次的训练都可以让模型更好的掌握语言知识和技能,提高下一次预测的准确性。

企业在训练神经网络模型中,都将对模型进行参数优化,让模型在预测任务中表现准确,这样的反向传播,利用误差信号来更新模型参数,以便让模型更好的拟合训练数据。同时,利用梯度下降算法更新模型参数,对参数进行微调,减少误差,提高模型预测准确性。反向传播与算法梯度下降的迭代,不断调整参数,提高模型在预训练上的表现,为模型的预测任务提供准确结果。对比传统方式,预训练将重构AI开发范式,统一基础模型+微调、调用API、小时级部署,开发成本降低10倍以上。

整个过程是深度学习、神经网络模型学习和优化的关键,核心机制为突破数据标注瓶颈、实现通用能力迁移、构建压缩理解生成表征能力、涌现复杂推理能力(参数超千亿,模型将突破0样本学习、复杂推理)等。它是一个技术杠杆,将技术迁移通用智能化,是AI工业化的基础、可降低AI边际成本,支撑AGI核心底座。

生成式模型:生成式模型是算法领域的革新突破,AI感知到认知的跃迁,不止是“生成逼真内容”,它是一种对数据本质和世界规律进行深度理解和建模的能力。它的目标是建模逼真真实数据的复杂概率分布,成功生成,意味着模型真正捕获了数据的关键特征、变量间的依赖关系、数据生成的底层物理和语义规则。最大的价值就是全新、符合特定分布的、被约束的特定样本(图形、音频、文本、代码、视频、分子结构等)。打破不同数据类型的壁垒,还可创造出跨模态生成。

生成式模型赋予算法革新,提升判别模型能力、推动模型可解释性、促进多模态融合,也是实现跨模态理解和转换的核心技术,进一步加速认知能力的“统一智能体”发展。

可见,投资算法是提升数据资产价值和最大化算力投资回报率的关键战略。理解算法在推动数据、算力发展的作用,对于构建高效、可持续的AI基础设施至关重要。

二、大模型产业解析

01大模型优化的GPU和云服务

一切数据处理都要经过基础设施厂商之手,这些决定了产业回报。每秒的浮点运算次数成了生成式AI的命脉。GPU在深度学习中非常重要相比CPU,GPU具有更大量的并行处理能力,特别适合处理深度学习中大规模矩阵运算,可以让模型的训练和推理过程获得显著加速。

更高的计算力,与以往的深度学习模型相比,大模型具有更多的参数和更大的模型结构,随着模型的扩大,计算复杂度也将呈现指数级增长。比如人脸识别的主流算法Deepface和A rcfacec参数规模在几百万和一亿之间,而大模型的参数规模可达到十亿,甚至千亿,参数规模就像浑厚的内力。

在大模型进行商业化后,推理成本将成为业务边际成本的重要部分,需要对推理业务在GPU上进行加速优化,从而降低成本。这也代表企业需要更大的显存容量、更快的显存带宽、更高效的集群通信能力。大模型供应商进行预训练和微调时,需要GPU,行业用户应用时,利用私域数据进行模型微调时,需要GPU,最终应用时,还需要GPU进行推理。

大模型时代,算力的重要性毋庸置疑,模型的参数规模比以往的深度学习模型大的多,在训练和推理中需要消耗巨大的计算资源和时间。分布式的深度学习框架便成了大模型最重要的软件基础设施。

当大模型加入图像、视频等多模态数据之后,模型规模、算力要求、训练时长都会进一步提升。大规模计算、数据并行计算、容错和恢复机制、高效的资源利用的难题,将让分布式深度学习框架的重要性,在多模态条件下更加凸显。

在算力、数据、算法的三要素中,大模型产业通过硬件基础+分布式框架,重点解决算力问题后,数据的数量与质量,便成了大模型训练的性能影响因素。预训练中,数据常常可通过购买、合作、抓取等方式,并进行数据清洗,无需人工标注。但,进入后阶段,RL与微调时,都需要人工标注和样本数据,这些数据获取,一方面是专业人士数据标注,以及采购专业数据公司和云厂商数据服务;另一方面是获取合规性的公域或三方数据、接入企业私域数据;最后是搜索用户使用过程中的反馈,这些数据加入训练,大模型的性能和使用体验,将得到极大提高,也将启动数据飞轮,走向自我强化的循环。

图3:LLM的数据飞轮图

——————————-

除了模型参数比拼,智能体正在定义人机协作边界

落地实践中,算力资源的高需求与技术难题相互交织、双重凸显。其中,Agent架构相较于传统AI产品呈现出更为突出的算力消耗特征–单次任务处理所需的Token数量可飙升至十万量级,这一现象主要归因于其对长上下文的理解分析、多Agent间的交互通信机制、复杂的验证流程以及多模态融合应用场景的综合需求。以Manus平台为例,其依托Claude 3.7 Sonnet模型执行单次任务时,不仅产生超过10万个Token的数据交互量,更伴随约2美元的成本支出。

从技术维度审视,该领域正面临三大核心挑战:自然语言的模糊性引发的语义意图误判问题、多智能体协作中存在的群体思维趋同与利益分配失衡现象,以及模型生成内容可能出现的事实性错误(即“幻觉”效应)。针对这些瓶颈,学术界积极探索贝叶斯统计实验设计与分层式系统架构等创新路径进行优化;而在产业界,则普遍采用RAG(检索增强生成)技术方案来有效抑制幻觉现象,典型如医疗健康领域通过整合专业知识库显著提升了辅助诊断系统的精准度。

02模型即服务层(MAAS)

大模型的产业核心是MAAS层,我们现在使用的大模型应用均是这一层模型,通过企业服务模块的应用程序接口形式,实现对话、写作、分析、写代码等各种功能。面向应用开发者多功能调用,包括模型推理、微调训练、强化学习训练、插件库、私域模型托管等。

被开发者常应用的是开源模型,其源代码、模型数据、模型训练过程内容,均公开可用,不同的开源模型,可规定不同的内容开放范围和使用场景,不一定百分百开放。对比闭源模型,闭源模型商业化程度高,产品完善、模型性能更佳。开源模型可以降低模型的二次开发门槛,充分利用AI大厂预训练计算集群,规避算法调优、无需清洗庞大数据,有助于领域应用的广泛应用和普及,开发者以及社区驱动了开源模型的创新和改进,群体智慧更快的发展(Meta LLaMA等扩展出来的模型成为了生成式预训练的典范).

LLM需创造价值,若应用层无法实现商业价值和客户价值,整个大模型将失去持续发展的动力。面向服务,LLM最基础的能力便是模型推理,微调训练(帮助企业适应特定任务和领域、定制应用)、强化学习、模型裁剪(帮助企业特定场景的规模化部署)、私域模型托管、插件库(帮助企业获得最新、最私密、少有的训练数据、执行指定操作等)。应用层拥有良好的创新和价值,为各行各业将带来智能业务场景上的诸多可能。

例如:

Character.ai端到端自建大模型个性化人机聊天应用:

  • 特点:用户选择不同的角色,历史上的名人/动漫人物/专业属性的角色;用户可以自建角色,后续沟通中产生“你的聊天对象认识你”。
  • 商业模式:实现”前向用户付费+后向广告“双重模式,支持付费用户和免费用户共存。
  • 市场价值:取决于定位人群,未来每个孩子在AI中陪伴中成长,AI将成为旅程伴侣。
  • 竞争壁垒:自建大模型的架构和训练方法;特色运营,如何利用特色、名人、文化属性,结合社交、趣味,产生传播;快速形成规模,降低获客成本。

Cocounsel AI 法律助手

  • 特点:基于本地文档库的文件问答、法律法规、内容检索、法律备忘录、协议关键信息总结、合同数据提取、风险条款修改等功能。
  • 商业模式:根据使用的技能数量和委托给Ai的工作量,按次付费、订阅付费,为独立、公司内部、大小律所服务。订阅付费的方式,产生持续产业流,优质体验保证续费率,持续扩大规模。
  • 市场价值:庞大的、最新的案例法和法规训练,生成的AI输出具有难以置信的可靠性,以及高验证。
  • 竞争壁垒:大量专业的模型训练和微调;快速累积数据,在垂域领域抢先市场先机;行业的深厚积累,高频次使用率。

三、大模型应用与行业结合,提高现有生产力,是最落地的商业

新技术的引入和发展,势必带来新的产品与服务形态。由于大模型具有跨行业的通用性,通过自然语言、API系统对接交互手段,支持多样化的使用方式。因此千行百业落地大模型应用时,会因适应场景能力、成熟度、企业应用时间、企业性质的不同,经历不同阶段。

第一阶段:帮助员工提高工作效率和质量。大模型的产出归属于个人,员工也需为大模型产出质量负责。为企业探索大模型业务场景的应用成熟度、效率提升、模型缺陷、负面影响等,用于评估大模型价值,整合体系,为企业的进一步决策提供价值参考。

企业需注意的是,内部核心数据的保密,选择大模型服务商提供的私域专有模型,部署专用服务器,确保内部数据不进入公域大模型训练数据集中。此时AI:人类=1:1

第二阶段:面临业务流程调整和组织变革。大模型嵌入到了企业业务流程中,独立承担工作职责,可贡献全局性的利益,产出归属与企业。LLM与人工形成协作关系,同时可接受监督和指导。

需注意的是,要充分利用模型能力,调整和优化自身流程,关注大模型对员工的影响,调整业务流程和职能岗位,设置好组织机制。为进一步加大效果和产出,还可借助插件完成二次开发、读取、查询本地数据;包括模型微调训练、上下文学习、定制化、评估业务环节的信息量和容错率。因地制宜,评估业务各个环节大模型应用成熟度和优先级。

第三阶段:少量企业有能力尝试的阶段,让大模型的多模态能力充分释放,结合企业的全新业务模型设计产生颠覆性创新,重新设计业务,从根本上改变业务运作方式。这也将让企业的AI能力更上一层楼。

企业需从技术、产品到市场、商业进行全盘策划,创建新的商业模式,它也是大模型产业应当追求的方向。

—————————-

智能体将大模型扩展到实际任务框架中

技术驱动中,随着多模态与大模型支撑能力升级,目前最明显的是Agent的核心能力依赖大语言模型(LLM)和视觉语言模型(VLM)的深度集成。依托于海量多模态数据的精细化训练,这些大模型成功构筑起强大的语义解析与环境交互体系,宛如为Agent奠定了坚实的“认知根基”。其能力进阶遵循着一条清晰的轨迹:“模仿学习”起步,历经“解耦”阶段,迈向“泛化”应用,最终实现“涌现”式的突破。具体而言,先是借助强化学习精准勾勒物理世界的运行图谱,继而逐步拓展至跨任务领域的广泛适应,直至在错综复杂的场景中自主催生出高效的决策机制。

如今,Agent已衍生出多样化的类型,诸如能够跨越不同领域进行交互的通用型Agent、专注于物理环境操作执行的具象化Agent,以及擅长动态内容创作的生成式Agent等,它们广泛渗透至医疗健康、智能机器人、电子游戏等诸多行业领域。以医疗为例,诊断类Agent能有效辅助分诊流程,然而仍需攻克“幻觉”这一技术难题;而在游戏世界中,Agent不仅能优化非玩家角色(NPC)的行为逻辑,还能自动生成栩栩如生的开放世界景观,极大地丰富了游戏体验。

四、大模型时代的演进产物:企业级AI Agent 的核心能力与应用场景

大模型的能力持续进化,行业标准化体系的逐步建立完善。2025年将成为AI Agent实现从概念验证迈向规模落地的重要转折点,更是其开启规模化应用征程的关键年份。当下,AI Agent正以前所未有的态势重塑着企业的生产方式与交互模式,这一变革绝非单纯的技术层面突破,而是关乎企业战略全面升级的核心驱动力。

图4:《2025智能体研究报告》

对于企业而言,在推进AI Agent应用的过程中,应当聚焦于那些高频发生、规则清晰明确且数据资源丰富的业务场景开展试点工作,通过在实践中不断积累宝贵经验,循序渐进地推动整个业务流程向全链条智能化方向转型升级。

企业级AI Agent的核心能力在于其自主规划、记忆、工具调用和行动能力。这些能力使其能够处理复杂的多步骤任务,如智能驾驶、智能家居管理、金融风险预测等。AI Agent的应用场景广泛,涵盖金融、医疗、制造、营销等多个领域。在金融领域,AI Agent能够实现端到端的自动化流程,提升风险控制和客户服务效率;在医疗领域,AI Agent能够辅助医生进行疾病诊断,提供个性化的治疗方案;在制造领域,AI Agent能够优化生产流程,提升生产效率和产品质量。

即便面临诸多挑战,但,得益于大模型技术的快速迭代以及应用场景的持续拓展,Agent依然展现出巨大的发展潜力,有望迎来商业化的重大拐点。随着A2A、MCP等协议日益普及,不同Agent之间的协作效率将得到显著提升;而多模态技术领域取得的关键突破,例如图像与语言生成技术的融合、机器人导航能力的增强等,将为医疗、工业等多个行业的实际应用注入强大动力。可以预见,未来,Agent或成为企业数字化转型的核心工具,驱动AI产业链从模型层向应用层延伸,重点关注具备数据、场景和平台能力的企业。

图5:《2025智能体研究报告》

AI Agent的蓬勃兴起,是大模型、充沛的算力供给、活跃的开源生态以及广泛的产业应用协同共进的成果。其核心技术依托于大型语言模型(LLM),借助模块化的设计架构与高效的协作框架,得以实现对复杂任务的自动化精准处理。如今,从最初功能单一的对话机器人(处于L1阶段),逐步演进为能够主动发起行动、展现智能决策能力的高级智能体(达到L3水平),且正稳步朝着更为高端的智能应用场景迈进。众多科技巨头,诸如OpenAI、Google、AWS等,均积极投身于企业级Agent市场的开拓之中,成功推出了一系列成熟且颇具影响力的产品与技术方案,像OpenAI精心打造的Operator、AWS推出的Bedrock Agent Core平台等。这些创新成果不仅有力证实了AI Agent在实际场景中的可行性,还极大地促进了其在企业领域的深度渗透与广泛应用。

然而,就目前而言,对于Agent这一概念尚未形成一个统一且明确的定义。学界与业界在此方面存在着显著的核心分歧,焦点集中在是否应着重突出“自主规划能力”。在学术界看来,一个理想的Agent应当具备涵盖环境感知、任务规划、记忆学习等多个模块所构成的完整闭环能力。例如,他们所提出的多模态通用Agent范式,就全面包含了感知、学习、记忆、认知以及执行这五大关键模块。与之相对,业界则更倾向于以结果为导向来界定Agent。以OpenAI为例,他们将Agent定义为“能够独立完成既定任务的系统”,着重强调其利用LLM进行工作流管理、灵活调用各类工具以及实时动态纠错的能力;而Anthropic则进一步细化了概念区分,将Agent与Workflow明确区隔开来,指出前者是由LLM自主进行流程编排,后者则是依据预先设定好的代码路径来协调工具的使用。

图6:《2025智能体研究报告》

在AI Agent的开发与应用进程中,务必紧密贴合企业的真实需求。具体而言,可通过精心搭建知识库体系、持续优化上下文工程策略以及科学规划工具集成方案等举措,打造出高效且稳定的智能体应用场景。对于企业级AI Agent而言,其价值不仅体现在显著提升工作效率方面,更能依托数据驱动的精准决策支持,助力企业顺利完成智能化转型。伴随相关技术的日益精进与成熟,AI Agent必将跃升为企业数字化转型的核心动力引擎,引领企业突破传统管理模式的桎梏,推动企业从传统的管理模式向智能化、自动化的方向发展。

五、AI Agent的未来展望与市场格局

图7:《2025智能体研究报告》

在当下的AI Agent市场中,竞争格局呈现出明显的两极态势。一方面,科技巨头依托自身在模型研发、算力储备、数据资源以及生态构建等方面的显著优势,积极谋划打造统一的平台级解决方案;而另一方面,众多创业公司与行业专家聚焦于特定的应用场景,借助垂直领域的深度应用开发、交互模式的创新探索以及成本效益的持续优化等策略,努力探寻市场的突破契机。展望未来,AI Agent的发展路径将着重围绕多个关键维度展开,诸如成本结构的精细化与效率水平的提升、通用型应用与垂直细分领域的有机平衡、交互范式的革新演进、数据资产的积累与竞争壁垒的构筑,以及人才资源的激烈角逐等。

安全性作为AI Agent迈向大规模应用的关键议题,备受关注。伴随其自主决策能力和交互功能的逐步强化,所面临的安全威胁也愈发复杂多样,诸如隐私信息的泄露风险、业务流程的人为篡改隐患、记忆数据的恶意投毒攻击等一系列新型安全挑战接踵而至。鉴于此,企业在部署和应用AI Agent的过程中,必须在设计初期就融入全方位的安全防护机制,运用身份验证技术、记忆数据的加固保护手段、控制流程的精准管控措施等,以达成自主性拓展与风险有效管控之间的动态均衡状态。

从宏观视角审视,AI Agent技术无疑将为企业的运营效能带来颠覆性的提升,并孕育出丰富的业务创新机遇。随着该技术的持续迭代升级以及在不同应用场景中的深度融合,AI Agent具备在更广泛领域实现重大突破的潜力,进而有力驱动企业乃至整个社会向智能化方向加速迈进。

我们看到大模型从单一工具演变为驱动千行百业转型升级的核心引擎。作为大模型落地应用的重要载体,AI Agent正在重构人机协作模式,引领AI从“被动响应”迈向“主动服务”,成为产业创新的强劲动力。国内企业将持续深化企业级AI Agent的核心能力,引领业界开启智能业务的“主动服务”新时代,赋能全产业实现技术革新!

近日,由百林哲主办,第九届CSDI中国软件研发创新科技峰会,于9月12-14日即将在深圳隆重召开。大会以“ 数算+智跃“为主旨,旨在深入展示AI领域最新技术与应用趋势, 诠释中国企业,创新先锋的深度应用,融合业界领先的大模型、智能体技术深入在研发全方位应用领域,携手百名国内外顶尖技术专家(京东、华为、百度、阿里、腾讯、字节、亚马逊、中兴、小米、360、蚂蚁、携程、顺丰、普元……),共同研讨以LLM为核心的AI技术深入软件研发的落地实践。





总结

AI正在从大模型时代中,从信息处理者升级为任务执行者,预示着复杂任务和系统,将被AI改写为数字世界的“代理实体”。企业智能体是下一代核心基础设施,是企业的群体智慧所在,是重塑生产关系的数字劳动力,最终帮助企业实现业务智能化闭环。

更多优秀嘉宾加入中,欢迎优秀的您加入我们

内容参考:网络、大模型时代图书、智能体发展

JavaScript 控制台(Console)是什么?3 分钟零基础入门指南

thbcm阅读(546)

本文面向 0~3 年经验的前端同学,用最直白的语言 + 可复制的代码,一次性讲清所有常用 console 方法。读完即可在调试、性能、日志管理上“开挂”。

一、JavaScript 控制台(Console) 是什么?

JavaScript 控制台(Console) 是浏览器内置的调试工具,用于在开发者工具控制台输出信息,辅助开发者调试代码、监控性能等。

一句话记住

控制台(Console) 就是浏览器给你开的一间“小黑屋”,你可以在里面敲任何 JavaScript 代码,立即看到结果,还能调试错误。

二、为什么要认识控制台(Console)?

  • 零门槛试验场:初学变量、循环、函数?在 Console 里敲一行回车一行,立刻看到结果,不怕把页面弄崩。
  • 调试神器:代码报错却找不到原因?Console 会告诉你哪一行、什么错。
  • 面试必问:几乎所有前端面试都会问:“你怎么调试?”答案里一定有 Console。

三、如何打开控制台

方式 操作
快捷键 F12 或 Ctrl+Shift+I(Mac 用 Cmd+Opt+I)
右键菜单 在网页空白处 → 检查 → 切换到控制台(Console) 面板
多面板切换 打开后顶部有 元素(Elements)、网络(Network)、控制台(Console) 等,点 控制台(Console) 即可

四、控制台常用代码

(把下面代码直接复制到控制台回车,就能看到效果)

目的 写法 中文解释
打印普通信息 console.log('你好,编程狮!'); 最常用的“打招呼”
警告黄条 console.warn('电量低,请充电'); 不会阻断程序,只是提醒
错误红条 console.error('出错了,快看代码'); 方便一眼定位问题
计时 console.time('循环耗时'); for(let i=0;i<1e6;i++); console.timeEnd('循环耗时'); 测性能,单位毫秒
表格展示 console.table([{name:'张三',age:18},{name:'李四',age:20}]); 把数组/对象变表格,超直观
断言检查 console.assert(1===2,'1 不等于 2'); 条件为假才报错,写测试很方便

新手日常开发必会的 Console 代码

方法 作用 中文示例
log 普通打印 console.log('你好,编程狮');
info 蓝色提示 console.info('版本 v1.2.3');
warn 黄色警告 console.warn('️ 不支持的浏览器');
error 红色错误 console.error(' 网络请求失败');
clear 清空面板 console.clear();

表格神器:console.table

把数组/对象直接转成表格,秒杀手写日志!

const users = [
  { name: '小明', age: 18, city: '北京' },
  { name: '小红', age: 22, city: '上海' }
];
console.table(users);

浏览器效果:

性能计时:console.time / timeEnd

测一段代码耗时,比手动 Date.now() 更精准。

console.time('渲染耗时');
// 这里放你的代码
for (let i = 0; i < 1e6; i++) { /* ... */ }
console.timeEnd('渲染耗时');  // 渲染耗时: 42.3ms

计数器:console.count

统计函数被调用次数,定位重复触发。

function clickBtn() {
  console.count('按钮点击');
}

分组折叠:console.group / groupCollapsed

让日志有“文件夹”,一眼看出层级。

console.group('登录流程');
console.log('1. 验证邮箱');
console.log('2. 查询用户');
console.groupEnd();  // 自动闭合

堆栈追踪:console.trace

追踪“谁调用了我”,快速定位调用链。

function foo() {
  bar();
}
function bar() {
  console.trace('追踪来源');
}
foo();

占位符格式化:%s %d %o

  • %s 字符串
  • %d 数字
  • %o 对象
const user = { name: '张三', age: 25 };
console.log('用户 %s 年龄 %d 详情 %o', user.name, user.age, user);

性能面板:console.profile / profileEnd

生成火焰图,比 console.time 更细粒度。

console.profile('页面加载');
window.addEventListener('load', () => {
  console.profileEnd('页面加载');
});

需在 开发者工具(DevTools) → 性能(Performance) 面板查看。

一键清空:console.clear

调试时日志太多?一键清空,清爽继续。

console.clear(); // 清空控制台

五、控制台实战调试技巧(收藏级)

场景 代码片段
条件断点 console.assert(score > 0, '分数必须大于0');
异步顺序 console.timeLog('任务A');
内存泄漏 console.memory(显示堆使用情况)
CSS 计数 console.log('%c 红色文字', 'color:red');

六、完整速查表(复制即用)

// 1. 基础打印
console.log('普通日志');
console.info('提示信息');
console.warn('警告信息');
console.error('错误信息');


// 2. 表格
console.table([{a:1},{a:2}]);


// 3. 计时
console.time('计时器');
// 代码块
console.timeEnd('计时器');


// 4. 计数
console.count('点击');


// 5. 分组
console.group('组名');
console.log('子项');
console.groupEnd();


// 6. 追踪
console.trace('调用链');


// 7. 格式化
console.log('用户 %s 年龄 %d', '小明', 18);


// 8. 清空
console.clear();

七、彩蛋:浏览器彩蛋指令

在控制台输入以下指令,解锁隐藏彩蛋:

彩色输出

// 彩色输出
console.log('%c编程狮欢迎你', 'color:#fff;background:#ff6b00;padding:4px 8px;border-radius:4px');

动态彩虹字

// 带动画效果的彩虹字控制台输出函数
function rainbowLog(text, speed = 100) {
    // 彩虹色的HSL颜色值数组
    const colors = [
        'hsl(0, 100%, 50%)',    // 红色
        'hsl(30, 100%, 50%)',   // 橙色
        'hsl(60, 100%, 50%)',   // 黄色
        'hsl(120, 100%, 50%)',  // 绿色
        'hsl(240, 100%, 50%)',  // 蓝色
        'hsl(270, 100%, 50%)',  // 靛蓝色
        'hsl(300, 100%, 50%)'   // 紫色
    ];

    
    let phase = 0;
    const colorCount = colors.length;

    
    // 动画渲染函数
    function render() {
        let output = '';
        const styles = [];

        
        for (let i = 0; i < text.length; i++) {
            // 计算当前字符的颜色索引,加入相位偏移产生动画效果
            const colorIndex = (i + phase) % colorCount;
            output += `%c${text[i]}`;
            styles.push(`color: ${colors[colorIndex]}; font-weight: bold; font-size: 16px;`);
        }

        
        // 清空控制台并输出当前帧
        console.clear();
        console.log(output, ...styles);

        
        // 更新相位,循环动画
        phase = (phase + 1) % colorCount;
    }

    
    // 初始渲染
    render();

    
    // 设置定时器,创建动画效果
    const interval = setInterval(render, speed);

    
    // 返回清除动画的函数,方便手动停止
    return () => clearInterval(interval);
}


// 使用示例:
// const stop = rainbowLog("编程狮动态彩虹文字效果!");
// 想要停止动画时调用:stop();

八、常见问题

Q1:console 里写的代码会保存吗?

不会!刷新页面或关闭浏览器就清空。想长久保存请写进 .js 文件或用编程狮在线项目保存。

Q2:console 能操作当前网页吗?

可以!试试在 console 输入:

document.body.style.backgroundColor = 'lightblue';

整页背景立即变天蓝色,再输入 document.body.style.backgroundColor = '' 即可恢复。

Q3:如何清空满屏信息?

  • 点击左上角 ️ 图标
  • 快捷键 Ctrl+L(Mac Cmd+K)

课程推荐

小结

控制台(Console) 是浏览器自带的“小黑屋”,零配置、零安装。 牢记 6 句咒语:log / warn / error / time / table / assert。 任何 JS 代码都能在 console 里立即运行,刷新即清空,大胆试!

关注编程狮学习更多前端开发技巧!

联系我们