Skip to content
巴黎奥运会展现中国科技创新力量;Runway Gen 3 Alpha 模型图生视频功能上线,11秒视频让脑洞大开
🚀 京东云八大AI产品发布,助力企业数字化转型
在2024京东云峰会上,京东云展示了其在人工智能领域的最新进展,并发布了包括企业大模型服务、智能编程助手JoyCoder在内的八大AI产品。这些产品旨在帮助企业提升效率,降低成本,并在数字化转型的道路上迈出坚实的步伐。其中,言犀数字人3.0平台支持100+个性化角色,50多个行业特定属性场景,展现了AI在模拟人类行为上的巨大潜力。
🇨🇳 巴黎奥运会展现中国科技创新力量
2024年巴黎奥运会不仅是体育盛事,也是中国科技创新的展示窗口。本届奥运会预计将有三分之二的远程服务通过云计算实现,奥运转播云基于阿里云部署,支撑奥运直播信号传至全球200多个国家和地区。此外,AI技术在赛事解说、360度直播、视觉搜索等领域得到应用,如阿里巴巴的通义大模型成为奥运首个AI大模型应用的技术提供方,提升了观众的观赛体验。
🌟 豆包大模型日均tokens使用量超5000亿, 豆包大模型越来越「香」了
豆包大模型,作为字节跳动旗下的AI图像生成平台,近期在图像生成领域取得了显著的进步。在2024年7月的火山引擎AI创新巡展成都站活动中,豆包大模型团队展示了其在图像生成方面的最新进展,包括文生图模型和图生图模型的升级。豆包大模型的日均tokens使用量已经超过5000亿,显示出其在图像生成领域的广泛应用和影响力。
📂 苹果公司推出Apple Intelligence隐私报告功能
苹果公司在iOS 18.1和macOS Sequoia 15.1的首个测试版中推出了名为“Apple Intelligence”的新AI功能预览。该功能允许用户查看一份详细的隐私报告,了解Apple Intelligence如何处理他们的请求。报告中会显示用户的请求是通过设备还是苹果的PCC(Private Computing Core)处理的,以确保用户隐私。此外,苹果还开发了专门的芯片,即“私人计算模块”,用于在线处理请求,全程加密,处理完成后所有数据会被永久删除。
🌟 Runway Gen 3 Alpha 模型图生视频功能上线,11秒视频让脑洞大开
在人工智能领域,视频生成技术正迎来新的突破。近日,Runway Gen 3 Alpha 模型的图生视频功能正式上线,用户只需上传一张图片,即可生成长达11秒的逼真视频。这一功能的推出,不仅极大地提升了艺术控制和视频的一致性,也让人们对AI的创造力有了新的期待。Runway 联合创始人兼CEO Cristóbal Valenzuela 也在社交媒体上分享了一系列令人惊叹的图生视频示例,引发了网友的热烈讨论和高度评价。
💡 惠普AI PC全场景AI解决方案发布,惠小微智能助手4.0升级
在”AI 用起来 —— 惠普 AI PC 全场景 AI 生态大会”上,惠普推出了全新的AI PC全场景AI解决方案,并对惠小微智能助手进行了4.0版本的升级。新版本的惠小微智能助手整合了”文心一言 AI”和”WPS AI”等生成式AI工具,提供了包括智能会议、电脑管家、生活助理等一系列智能化服务,显著提升了用户体验。
🪙 Meta发布AI Studio,零编程创建AI角色
Meta公司发布了AI Studio,这是一个允许用户无需编程即可创建、分享和定制AI角色的平台。AI Studio基于Llama 3.1模型,使得每个人都能轻松地扩展自己的影响力,通过AI角色与更多受众互动。Meta的目标是构建一个所有人都能利用AI创意能力的世界,而AI Studio正是这一愿景的起点。
📰 Meta SAM 2登场,首个能在图片和视频中实时分割对象的AI模型
Meta公司发布了Meta Segment Anything Model 2(SAM 2),这是首个能够在图片和视频中实时分割对象的统一开源AI模型。SAM 2在图像分割准确性上超越了以往的能力,在视频分割性能上也优于现有成果,同时所需的交互时间减少了三倍。这一突破性的技术将为视频编辑和混合现实体验带来革命性的变化。
📍 亚马逊云科技发布Amazon Q Apps,开启AI应用新纪元
亚马逊云科技近日宣布推出Amazon Q Apps服务,这项革命性服务允许用户通过简单的描述创建应用程序,无需深厚的技术背景。Amazon Q Apps隶属于Amazon Q Business,旨在简化软件开发、数据分析和内容创作等任务。此外,Amazon Q Developer服务现已集成到Amazon SageMaker Studio中,通过聊天式交互为机器学习模型的开发提供便利,显著节省了数据科学家的时间。
🪙 Meta推出AI Studio,让用户创建、分享和发现AI
Meta推出了AI Studio,这是一个让用户无需技术背景即可创建、分享和发现AI的平台。用户可以通过AI Studio创建基于自己兴趣的AI角色,如烹饪教学、旅行建议等。此外,创作者还可以创建一个AI角色作为自己的延伸,快速回答粉丝的常见问题,帮助他们触及更多人。AI Studio目前在美国开始推广,用户可以在ai.meta.com/ai-studio或Instagram应用中创建AI角色。
📊 Vidu:生数科技与清华大学联合发布的视频大模型
Vidu是中国首个长时长、高一致性、高动态性视频大模型,由生数科技与清华大学联合发布。Vidu基于原创U-ViT架构,支持一键生成长达16秒、1080P分辨率的高清视频。Vidu能模拟真实物理世界,具有丰富想象力,可创作逼真或超现实内容,广泛应用于影视、广告、游戏等行业。
🚀 李飞飞AI新公司World Labs成为全球最快独角兽
著名计算机科学家李飞飞创办的AI公司World Labs,仅成立3个月便完成了两轮融资,最新估值达10亿美元,成为全球最快独角兽。World Labs致力于发展AI的空间智能,解决AI在三维空间感知和理解的难题。李飞飞坚信数据对AI的重要性,她的ImageNet项目为AI技术的底层设施提供了支持,包括ChatGPT在内的众多AI技术都受益于此。World Labs的快速发展,展现了李飞飞在AI领域的深厚影响力。
🔍 黄仁勋、扎克伯格支持AI大模型开源,两人互换外套
在第51届SIGGRAPH图形大会上,英伟达创始人CEO黄仁勋与Meta创始人CEO马克·扎克伯格进行了一场别开生面的对话。两人不仅讨论了人工智能和仿真模拟的未来,还就AI大模型的开源达成共识。在对话的高潮部分,他们甚至互换了外套,展现出两位科技巨头之间的友好关系。
📰 AI创业热潮催生独角兽,警惕泡沫风险
AI领域正经历新一轮创业热潮,以ChatGPT为代表的技术引发了全球范围内的AI创业浪潮。近期,多家AI初创公司如Cohere、Skild AI和Cognition Labs等在短时间内获得了高额融资,估值飙升。然而,这股热潮背后也隐藏着投资泡沫的风险。PitchBook数据显示,过去三个月内,投资机构向美国AI初创企业投入了超过270亿美元,全球投资额约为500亿美元。业内人士警告,AI行业的高投入可能短期内难以看到实质性的回报,提醒投资者需谨慎对待这场AI创业潮。
大模型重塑软件研发,从辅助编程到多 Agent 协同还有多远?
【导读】当编程成为最高频的 AI 应用场景,代码大模型的技术与产品发展之路该怎么走?本文作者从大模型软件研发的三大阶段和四大技术难点出发,分析了 AI 如何提升编程效率,并预测了未来软件研发工具的形态,终极目标是实现 AI 程序员,通过多智能体协同工作,大幅提升研发效率。
本文整理自阿里云云效、通义灵码产品技术负责人陈鑫在 2024 全球软件研发技术大会中的演讲,同时收录于《新程序员 008》。《新程序员 008》聚焦于大模型对软件开发的全面支撑,囊括 Daniel Jackson 和 Daniel Povey 等研发专家的真知灼见与“AGI 技术 50 人”栏目的深度访谈内容,
出品丨新程序员编辑部
大模型带来了前所未有机遇,突破传统软件工程和研发效能工具的局限,让 AI 成为软件研发必选项。
据统计,当前大模型技术近 30 %的应用需求来自于软件研发,在软件研发领域的应用也已经从简单的代码辅助生成,演进到能够实现自主处理和开发,市场上丰富的代码辅助工具也验证了这一点。
这些工具借助大语言模型来提高生成代码的准确性和性能,同时强调数据个性化的重要性,以满足不同企业和个人的编码习惯。我一直在思考,怎么才能进一步挖掘大语言模型的强大推理能力、理解能力和分析能力,给研发提供更强的辅助?代码大模型以及相关产品和技术发展之路该怎么走?
接下来,我将从大模型软件研发的三大阶段,四大难点等角度深入剖析。
大模型软件研发演进三步走
自AI技术浪潮再度袭来,大模型在编程领域的普及是个不可忽视的趋势。据统计数据显示,大模型技术近 30 %的应用需求来自于软件研发,编程成为最高频的 AI 应用场景。编程领域代码生成也是大模型擅长的方向,它可显著提升内部工作效率,让开发者协同的方式变得更加优雅、高效、流畅。AI已成为软件开发行业提升效率的关键要素。
据 CSDN、《新程序员》发起的《2024 中国开发者调查报告》显示,专门为开发而打造的 AI 辅助编码工具上,通义灵码使用率位居第一,占比 19 %。生成代码、解释 Bug 并提供修正、生成代码注释或者代码文档是开发者常用 AI 辅助编码工具来实现的事情,分别占比 41 %、29 %和 28 %。而我们正努力通过大模型与软件研发工具链的融合,逐步优化这些任务。
大模型正从两大方向影响着软件研发:
图 1 大模型对软件领域的影响
1、编程事务性工作的普遍替代
开发者的工作中存在大量重复性任务,例如编写胶水代码、框架代码和简单的业务逻辑。这些任务并非开发者核心关注点,如果大模型可以有效替代这些重复性工作,将显著提高个体效率。
此外,编程过程中通常涉及大量角色的协同工作,如产品经理、架构师、开发、测试和运维等。沟通往往耗时费力、协作成本高。如果能引入智能体,打造“超级个体”,将部分编码任务交由 AI 完成,就可以减少复杂的协同工作,提高整体协作效率。
2、知识传递模式的革新
传统的知识传递方式主要依赖于口口相传,如 code review、培训和代码规范的宣导等,这些方式往往滞后且效率低。智能化的研发工具链可以直接赋能一线开发者,提升团队整体水平。未来,每个团队可能会有专门擅长知识沉淀和梳理的成员,通过不断训练和优化大模型,使整个团队受益。
纵观整体趋势,大模型软件研发相关技术将分三步演进:
第一阶段:代码辅助生成
如 GitHub Copilot、通义灵码这类工具作为 IDE 插件,安装后可以显著提升编码效率,但并没有改变现有的编程习惯和研发工作流。AI 只是生成代码、编写测试或解释问题,最终的校验和确认依然由人完成,这个阶段,依然以人类为主导。
第二阶段:任务自主处理
AI 可以通过智能体技术自主校验生成的结果,例如,AI 编写测试用例后,能够自主判断测试是否通过、能否解决程序遇到的问题或发现新的问题。当我们进入智能体阶段,开发者可以减少对 AI 生成结果的人工校验。在此阶段,虽然仍以人类为主导,但AI已展现出独立完成特定任务的能力。此时将出现一条明显的产品分界线。
第三阶段:多智能体协同工作
多个智能体协同工作,并由大模型进行规划,完成复杂任务,如编写测试、写代码、撰写文档和需求分解等,而人类主要负责创意、纠偏和确认。这一阶段,AI 不只是 IDE 插件,而是可以实现功能的自主开发。代表性的产品有 GitHub Workspace 和今年 6 月阿里云刚推出的 AI 程序员,这些都标志着我们正在迎来 AI 自主化编程的时代。
以上前两个阶段,软件效率的提升大约在 10 %至 30 %之间,包括编码效率的提升 和 DevOps 流程的优化。那么,在第三阶段,我们可以通过打破现有的软件研发流程框架,面向 AI 设计新的编码框架和编程模式,效率提升有望突破 30 %,达到 50 %甚至 70 %。
死磕 Copilot 模式四大核心技术难点
接下来,当我们聚焦每个阶段,现有产品、技术发展的现状以及技术细节,就会发现未来还需攻坚的技术难点。以第一阶段最常见的 Copilot 模式为例,它主要分为以下几层:表现层、本地服务端、服务端、模型层、数据处理层、基础设施层。
图 2 Copilot 阶段通义灵码的核心功能架构
当我们聚焦现有代码助手产品技术发展的现状,以及技术细节,就会发现未来需要攻坚的难点主要有四点:
生成的准确度:准确率是决定产品能否应用于生产的关键因素;
推理性能:代码生成速度和整体性能的提升;
数据个性化:适应不同企业和个人的编程习惯;
代码安全与隐私:确保代码生成过程中数据的安全和隐私。
其中准确度包含生成准确度和补全信息准确度两方面。
1、加强生成准确度
根据内部调研报告显示,准确率才是产品的核心,开发者可以接受慢一点,也可以接受有瑕疵,但准确率才是决定能否应用于生产、会不会持续使用的最关键因素,而过硬的基础模型能力是准确度的基础。我们通常认为模型是产品能力的上限,一个靠谱的基础模型是首要的。
通义灵码的靠谱模型主要依赖以下两个:
通义灵码补全模型。它专做代码补全,被称为“ CodeQwen2 ”技术模型,是目前世界范围内非常强大的模型,在基础模型中排名第一,主要通过持续训练,提升其跨文件感知能力、生成代码能力及各个语言的细节优化,纠正其基础模型上的一些缺点,最终训练而成。
通义灵码问答模型。要想模型不仅基础能力强,还能很好地处理专项代码任务,就需要构造大量数据用于训练。单元测试、代码解释和代码优化等复杂任务,都需要构造大量数据进行训练,让模型遵循固定范式,从而持续输出稳定的结果。阿里目前基于 Qwen2 模型进行训练,它支持最大 128K 的上下文,不论是处理具体代码任务、Agent 任务,还是 RAG 优化,都表现出色。
除此之外,还需补全信息准确度。开发者在写代码时,不仅关注当前文件,还有查看引用、工程框架及编码习惯等。因此我们在端侧还设置了复杂的代码分析功能,专门构建整个工程的引用链及相关数据,将其转化为全面的上下文传给大模型进行推理。在代码补全方面,我们进行插件与模型的联合优化,每增加一种上下文都需要构造大量数据训练模型,使其能感知到输入上下文与预测结果的关联关系。通过一系列处理,可大幅降低模型生成的幻觉,使其更好地遵循当前工程开发者的习惯,模仿人类编写相应代码,从而提升生成代码的质量。
图 3 通义灵码补全准确度的方式
2、解决性能问题
如何解决代码生成既快又好的问题,还是得在性能方面下功夫。各种代任务通常不是由单一模型完成的,而是多个模型组合完成。因此,在代码补全方面,我们使用了 CodeQwen2 这个 7B 参数的小模型能保证在 500 到 800 毫秒内完成推理,做到快;在代码任务训练方面,使用千亿参数模型成本高且不划算,用中等参数模型训练,性价比高且更擅长;对于问答任务,通过大参数模型 Qwen-Max 和互联网实时检索技术,可以快速且准确地回答这些问题。
通常,采用多个模型组合来保证时延的优化是比较靠谱的做法。大参数的模型,具有广泛的知识面和强大的编程能力,能够获取实时支持;各种加速和缓存技术,包括在端侧使用流式补全也可以降低延时;使用本地缓存、服务端缓存,再加上推理加速等多种技术,可以兼顾实现速度和准确性。这些措施共同作用,能让通义灵码能提供高效、准确的编程辅助。
图 4 通义灵码提升推理性能的方式
3、攻克数据个性化
数据个性化依然针对两个典型场景:代码补全和研发问答。
图 5 在代码补全、研发问答两方面提升推理性能
在代码补全中,对于相似逻辑的编写,可以用企业已写过的优质逻辑代码来生成,避免重复造轮子。在自研框架的使用中,尤其是在前端开发,每个企业的前端框架往往不尽相同,如果直接使用基于开源数据训练的模型,生成的结果可能会有瑕疵,可以通过 RAG 技术,使员工在代码补全过程中实时获取所需的参考范例,从而生成符合企业规范的代码。
而研发问答这一领域相对成熟,文档问答、API 生成代码规范、代码校验等比较简单就能做到,假设开发者选中一段代码并请求模型根据团队规范进行修正,其背后的原理是通过 RAG 技术,模型能够检索团队当前语言的规范,并据此对代码进行校验和生成,这些都属于数据个性化场景应用。
代码补全场景更加关注时延,力求将检索时间降低到 100 毫秒以内,技术实现有一定难度。而研发问答场景更注重精准度,目标是召回率达到 70 %以上甚至 90 %以上,以提高回答效率。尽管优化目标不同,两者在基础设施上都涉及知识库管理、 RAG 流程、推理引擎和向量服务,这也是通义灵码重点优化的方向。
4、代码安全与隐私
为解决代码的安全隐私问题,我们设计了全链路安全防护策略,让企业可以以较低的成本享受到 AI 的能力,每月仅需一两杯咖啡钱。
图 6 通义灵码的全链路安全防护
加密端侧代码,确保即使请求被拦截也无法复原代码;
制定本地向量存储和推理全部在本地完成的策略,除非是主动上传的企业级数据,否则代码不会上传到云端,保证了云端没有代码残留,即使黑客攻破了通义灵码集群,也无法获取用户数据,确保了安全性;
设置敏感信息过滤器,确保所有企业上传的代码都合规,能够放心使用公共云的推理服务,实现极高的性价比。
从简单走向复杂的代码生成,并非一蹴而就
通义灵码在以 Copilot 为代表的代码助手方面已经比较成熟,从满意度调查和替代率两个重要方向来评估它在企业中的满意度。基于 1124 份有效样本,超过 72.5 %的受访者在编码工作效率提高方面给予了四分以上的评分(总分为五分)。针对后端语言,通义灵码生成代码的替代率在 30 %以上,而前端由于存在大量的复制粘贴操作,生成率略低,约为 20 %左右。
那么,在大模型软件研发相关技术演进的第二阶段,我们如何从简单的代码任务逐步走向复杂的代码生成?
2024 年 3 月,Devin 发布,只需一句指令,它可以端到端地进行软件开发和维护。虽然只是一个预览版,但它让我们看到 Multi Agent 方向的可行性。这是从 0 到 1 的突破,Devin 显著提升了 AI 在实际编码任务中的应用能力。同年 4 月,GitHub 发布了 Workspace,它是编码自动化的初步尝试。
以上再次证明了 AI 在代码生成领域的潜力巨大,尽管还有很长的路要走,但这表明我们正在朝着实现更高效、更智能的编程环境迈进。在技术路线上,我认为需要分为四个阶段逐步发展,而非一次性跃迁。
图 7 从单一 Agent,走向多 Agent 架构的四大阶段
第一阶段:单工程问答 Agent
要解决基于单工程的问答需求。典型的功能如代码查询、逻辑查询、工程解释,基于工程上下文的增删改查接口、编写算法,在 MyBatis 文件中增加 SQL 语句等,都属于简单任务,已经充分利用了单库的 RAG 技术以及简单的Agent来实现。这为更复杂的多 Agent 协同系统打下了基础。
第二阶段:编码 Agent
进入能够自主完成编码的阶段。Agent 将具备一定自主任务规划能力,以及使用工具能力,可自主完成单库范围内的编码任务。例如,在集成开发环境(IDE)中遇到编译错误或缺陷报告时,用户可以一键让 AI 生成相应的补丁。
第三阶段:测试 Agent
到达具备自主测试能力的 Agent 阶段,它不仅能够编写单元测试,还能理解任务需求、阅读代码并生成测试。不管是单元测试还是黑盒测试方法。而另一些 Agent 可以用于架构分解、文档编写、辅助阅读等功能。
第四阶段:Multi-Agent
接下来,多 Agent 基于 AI 调度共同完成任务,就可以实现更复杂的任务管理和协作实现,从需求->代码->测试的全流程自主化。我们的终极目标是 AI 程序员的水平,类似于 Devin 项目。这一阶段将涵盖更复杂的编程任务,需要更高级的 AI 调度和协同能力。
Code Agent 落地门槛:问题解决率至少 50 %以上
从整个技术路线图来看,前三步通义灵码已覆盖。它展示了整体工作流,以本地库内检索增强服务为核心,提高了代码和文档的准确检索及重排效率,并结合企业知识库,增强了系统的综合问题解决能力。
这一过程需要不断优化,其过程涉及几个关键点:首先,深入理解需求,这是整个优化流程的基石;其次,提升需求在库内检索的成功率,它直接影响到后续步骤的效率与效果;再者,模型本身的性能提升,将检索到的信息整合并解决问题的能力至关重要,这是 Code Agent 的前身。
接下来要重点攻克的是 Code Agent 技术。SWE-bench-Lite 测试集是业界公认的Code Agent 测试标准,在测试集上,通义灵码 Agent 实现了 33 %的问题解决率,领先业界。然而,要推动这一技术走向实际应用,仍面临诸多挑战。
图 8 灵码 Agent 在 SWE-bench-Lite SOTA 测试集的表现
难点一:当前 Code Agent 的效果高度依赖 GPT-4 等先进基础模型,基础模型的能力可能是整个领域往前走的一大阻碍,这限制了技术的普及与自主可控性。
难点二:上述方案在调优上比较困难,容易牵一发动全身,难以快速迭代;
难点三:长上下文依赖和多轮次复杂 Action 处理仍是技术瓶颈;
难点四:模型调优问题,这是当前的一个重要挑战,即便是使用 GPT-4,我们在SWE-bench-Lite SOTA 测试集上的表现也仅为 30 %以上的问题解决率,这与生产级可落地的标准仍存在较大差距。因为测试集中不仅包含了相对简单的单文件修改任务,还涉及到了更为复杂的多文件和多任务修复场景,这对模型的上下文理解、逻辑推断及代码生成能力提出了更高的要求。要达到生产级可落地的标准,需要至少将问题解决率提升至 50 %以上,继续加大技术研发投入是必要的。
未来的软件研发工具形态
对于通义灵码仍有差距的第四阶段——Multi-Agent 阶段,我们也已经有了清晰的概念架构,其工作流程大概是:用户输入指令后,一个复杂的多 Agent 协同系统随即启动。该系统核心解决三大问题:
首先,通过结构化的任务管理,模拟人类团队分解大型任务的行为,实现高效协作;
其次,简化工作流程,将复杂任务细化为小任务,并借助 Agent 特性逐一执行;
最后,高效执行任务,让每个智能体专注自身任务并协同工作,共同完成复杂任务。
未来的软件研发工具链也将呈现三层架构:
图 9 未来的软件研发工具链架构
底层为 AI 基建层,为中层的通义灵码与AI程序员等提供基础支持,涵盖运行环境、模型推理服务、模型微调 SFT、检索增强 RAG、企业管理功能及核心模型。在 AI 基建层,工具共享、不同模型各司其职,这进一步验证了我们的技术演进路线。
通义灵码与中层的 AI 程序员之间存在递进的技术演进关系,虽然共享同一 AI 基建,但在产品交互及与开发者的连接方式上,两者差异显著。AI 程序员拥有自主化工作区,采用问答式交互方式,这种非传统 IDE 形态却能无缝连接最上层的 IDE 端、开发者门户及 IM 工具,成为开发者主要入口的延伸。
右侧,与现有 DevOps 工具链紧密链接,在不颠覆现有 DevOps 或 CICD 流程的基础上,极大地简化和优化了这些流程。
AI 程序员边界明确,专注于从任务输入到文档编写、测试用例测试完成的全过程,未涉及 CICD 或复杂运维操作,作为现有工具链的有效补充,它将大幅简化工具链交互,优化流程协作,对组织结构和开发者技能产生深远影响,甚至可能引领未来编程软件向 AI+Serverless 的架构转型。
当前的 Serverless 主要由各类 function 构成,并通过 workflow 紧密相连。AI 擅长独立完成单一的 function,但面对庞大、复杂的代码工程,尤其是质量欠佳的代码时,修复能力尚显不足。未来,Serverless 与 AI 融合的编程架构有望成为主流趋势,这并非无稽之谈。我们坚信,随着技术和基础模型的不断演进,预计在未来 3-6 个月内,将有相应产品推出,并有望在部分生产级场景中实现落地应用。
阿里云内部代码助手落地实况
阿里云已经全员推行 AI 辅助编码,同时充分考虑各部门的差异。面对不同部门的框架差异,主要采取两种策略。一种是通过 RAG 来实现,即根据每个部门自身需求建立知识库,用于补全和问答优化。每个部门都能梳理并优化其常用代码样例、框架示例及 API 示例,尽量保持其独特性。这种方式让一个工具能够灵活覆盖所有部门的需求。
另一种是进行模型微调,已在一些企业中尝试过。利用小规模数据集对模型进行微调,结果显示,这种基于个性化业务代码的微调能够显著提升模型的准确率,虽然有效,但其成本较高且过程复杂。
从采纳率和 AI 代码生成占比来看。目前,阿里云内部的 AI 代码生成占比已达到 31%,后端语言如 Java 的占比更高,达到 30 %以上。这些数字表明,基于开源代码训练的模型已经能够在实际应用中发挥重要作用,未来通过 RAG 的进一步优化,我们有信心进一步提升这些指标。
关于前文提到的通过前端工具将上下文学习与后端大模型结合,以在代码补全方面取得更好效果,我们主要根据不同语言的特性来解析代码的依赖关系,以构建整个工程的依赖树。当我们需要为某个文件进行代码补全时,会找到该文件所处的上下文,类似于人类编写代码时的行为。为确保代码补全的准确性,需要将当前文件的所有依赖项都纳入上下文考虑范围,否则模型可能会产生“幻觉”,即生成与上下文不符的代码。
此外,我们还会寻找与当前编写位置相似的代码片段,帮助模型理解工程内部的编写风格,为代码补全提供有价值的参考。以 Spring Boot 等框架为例,许多内部扩展或“胶水层”代码都具有一定的相似性。通过找到这些相似代码,模型能够生成更贴近实际需求的代码,从而提高采纳率。
同时我们会收集跨页面的相似组件信息,以供模型参考。判断哪些上下文对当前位置的代码生成具有更高的采纳概率,再通过算法调优来确保模型能够优先利用最重要的上下文信息,包括优先级排序、筛选和压缩等一系列操作。
一般情况下业务研发部门无需直接参与前端上下文知识的处理工作,这取决于具体的业务需求和项目复杂度。
为了进一步提升效果,我们还需要收集和处理业务单位的反馈。在实际应用中,开发者们可能会遇到一些“ bad case ”,即插件生成的代码不符合他们的期望或需求。为了优化插件的性能和准确性,我们需要基于具体场景进行调优。我们会不断优化通义灵码并持续发布先进的产品,向着大模型赋能软件开发的终极形态坚定地走下去。
向世界级软件开发大师“Bob 大叔”Robert C. Martin 提出你的疑虑!
函数式编程作为一种编程范式,其根源可以追溯到 20 世纪 30 年代,当时数学家们正在探索计算理论的基础。1936 年,阿隆佐·丘奇提出了 λ 演算(Lambda Calculus),这是一种形式系统,用于表达函数抽象、函数应用以及变量绑定。丘奇的 λ 演算为函数式编程奠定了理论基础。
同年,艾伦·图灵提出了图灵机的概念,这是一种理论上的计算模型,能够模拟任何计算机算法的逻辑工作流程。图灵机与 λ 演算在理论上被证明是等价的,即它们具有相同的计算能力。这一发现不仅推动了计算理论的发展,也为后续的编程语言设计提供了理论支持。
如今,函数式编程因其易于理解和维护的特点,以及处理并发问题的能力,开始受到越来越多的关注。许多现代编程语言要么本身就是函数式语言,要么至少提供了一些函数式编程的支持。
针对希望在日常工作中利用函数式编程解决问题的程序员,知名软件匠人 Robert C. Martin(简称 Bob 大叔)撰写了一本新书——《函数式设计:原则、模式与实践》。这本书的标题也致敬了他的经典著作《敏捷软件开发:原则、模式与实践》,旨在帮助程序员理解如何使用函数式编程语言来完成实际任务,而不是深入探讨 Monads、Monoids、Functors 等理论概念。这些理论虽然非常重要,但在大多数情况下已经融入了常见的语言、代码库和框架之中。
CSDN《新程序员》即将采访 Robert C. Martin,向 Bob 大叔讨教最卓越成效的编程技巧,同时询问他对于当今 AI 编程革命的最新观点。在此,CSDN 面向所有开发者征集“你最想问 Robert C. Martin(Bob 大叔)的 1 个问题”,欢迎各位程序员们留言提出自己最为关心的问题!
所有的函数式编程实际上都是 λ 演算。
——《函数式设计》,Robert C. Martin
“Bob 大叔”是谁?
Robert C. Martin 被誉为世界著名编程大师,虽然他现在很欢迎大家叫他“Bob 大叔”(Uncle Bob),但这个绰号的由来却让人哭笑不得。
1988 年,Martin 在伊利诺伊州的一家初创公司上班,当时办公室里有个叫“Billy”的人,是个烦人精,很喜欢给别人取绰号,甚至给办公室里的每个人都取了个绰号。
Billy 给 Martin 取的绰号就叫做“Bob 大叔”,非常无厘头,没人知道他取这个绰号的缘由。随着一天天过去,这个绰号越叫越熟,这个人开始只用“Bob 大叔”称呼 Martin。
后来,Martin 离开了这家公司。所幸的是,他发现当时没有其他人叫他“Bob 大叔”,便自以为可以永远摆脱这个称号了。
结果,某天 Martin 发现,在新公司的会议上,有人看到他并大叫了一句“Bob 大叔!”,把他吓了一跳。一问才发现,原来他自己曾经把 Usenet(这是互联网早期的一款讨论组应用,四十多年前还没有浏览器,程序员们就在这上面交流想法)上的签名设置成了“Bob 大叔”,后面放了一整年没管,这也导致他一年以来的电子邮件签名全都沿用了“Bob 大叔”这个绰号。
随后,Martin 把“Bob 大叔”从电子邮件的签名中删掉,但新公司的人却都开始管他叫“Bob 大叔”。从那一刻开始,他发现自己永远摆脱不了这个绰号了 —— 而且他也发现这个绰号意外的还不错,可以占人便宜。毕竟,谁不想当世界上所有程序员的叔叔呢?
敏捷开发的“活化石”
Bob 大叔是敏捷开发和设计模式的先驱,他从 1970 年开始从事软件专业工作,从事相关工作超过 50 年。知名的“SOLID 五大原则”,即面向对象编程领域的五个设计原则,便出自他的手笔。他在 21 世纪早期提出了 SOLID 五个首字母缩写,便于记忆:
Single Responsibility Principle(单一功能原则)
Open/Closed Principle(开闭原则)
Liskov Substitution Principle(里氏替换原则)
Interface Segregation Principle(接口隔离原则)
Dependency Inversion Principle(依赖反转原则)
除此之外,他也是“敏捷宣言”的联合签署人、“敏捷联盟”的首任主席、C++ Report 杂志前主编。他发表了大量有影响力的文章,并经常受邀在许多国际软件大会上发表演讲。 后来,Bob 大叔还用自己的绰号创立了 Uncle Bob Consulting 有限责任公司,并与儿子 Micah Martin 共同创立了 Clean Coders 有限责任公司。他还是 Clean Code、Clean Architecture 和 The Clean Coder 等多本畅销书籍的作者。
71 岁了,还在网上坚持和人对线?
Bob 大叔从来都不是纯理论派,他和我们熟悉的 Linux 之父林纳斯·托瓦兹一样,混迹各种互联网早期的开发者社区,还都特别擅长在网上和人“唇枪舌战”。
五年前,Bob 大叔现身开发者博客平台 Hashnode,并挑选了一个良辰吉日,发了个帖子,题为《我就是 Robert Martin(也就是你们熟知的 Bob 大叔),你可以问我任何问题》,并欢迎开发者在下面直接开始对他提问,可谓是非常豪迈。
本次 CSDN 采访将会募集广大开发者社区的提问,如果你不知道该问 Bob 大叔哪些问题,不妨来看看五年前的开发者们是怎么做的:
开发者:当前软件工程的哪些趋势被高估了?自 1970 年以来,软件工程的哪些实践发生了根本性的变化?
Bob 大叔:目前是微服务被高估了。
自 1970 年以来有什么改变?那毫无疑问是敏捷。敏捷意味着承认在软件开发中纪律比仪式更重要。
开发者:你对 Node.js 有什么看法?
Bob 大叔:我不怎么写 JavaScript 代码。我从未使用过 node。我希望可以跳过整个 JavaScript 代码,改用 Clojurescript,嘿嘿。
开发者:怎么看待 Reddit 上那些针对你的网络黑子?
Bob 大叔:我不看 Reddit,我知道有些人因为这样或那样的原因不喜欢我。但这没关系,因为我相信思想市场理论,如果他们的想法最终被证明更好,那他们就是对的。
还有一些人不喜欢我,是因为我是保守派和共和党人,因为我投票给川普。但这没关系,因为我相信思想市场理论,如果我的政治观点是错误的,那么它就会失败。
与此同时,我已经当了 48 年的程序员,很少有人能连续 48 年编程。这种经验水平让我处于某种权威地位。我还是个相当不错的作家,这很有帮助。不管怎样,互联网上足够的空间容纳我们所有人。
开发者:程序员要学多少语言?
Bob 大叔:每个程序员都应该了解多种语言。Dave Thomas 和 Andy Hunt 曾经说过(在《程序员修炼之道》中):“每年学习一种新语言。” 这是个很好的建议。
每个程序员都应该了解一种基于 C 的语言,如 C、Go、Java、C# 或 C++。
每个程序员都应该了解一种函数式语言,如 Clojure 或 F#。
每个程序员都应该了解一种基于堆栈的语言,如 Forth。
每个程序员都应该了解一种逻辑语言,如 prolog。
每个程序员都应该了解 LISP。
这仅仅是个开始。
开发者:我知道你离开了 C++ 标准委员会。有鉴于此,您如何看待 Rust 的生命周期和所有权?以及总体而言,Rust 及其在编程语言领域的未来?
Bob 大叔:我从未被邀请加入 C++ 标准委员会。如果有人邀请我,我一定会拒绝。我讨厌官僚主义。我不想为小小的语言特性斤斤计较。我只想写代码。
我对 Rust 一无所知。也许有一天我会去研究一下,但我还有很多其他事情要做。
开发者:您认为计算机科学教育对于软件工程师来说怎么样?它是完全无用的,还是您认为它有一定的价值?
Bob 大叔:这取决于学校。在一些学校,完全有可能不写一行代码就能获得计算机科学硕士学位。这简直是荒谬的。另一方面,有些学校在让你的手指敲击键盘方面做得相当不错。但总体而言,我认为计算机科学学位不是必需的,甚至不值得花钱。软件是一门可以通过良好的计划在工作中学习的行业。
开发者:在大部分 Clean Coders 的视频中,你邀请我们走进你的生活,仿佛是在自家客厅里,你总不忘先为我们上一堂生动的科学课,然后才转入正题。这是否意味着,作为一名软件工程师,你暗示我们可以拥有这样一种生活方式,既充实又自在?
Bob 大叔:没有什么刻意的安排,也没有任何暗示。你所看到的,就是我真实的生活状态。
我没有接受过正规教育,没有大学文凭。1970 年,当我 18 岁的时候,就开始了我的编程之旅。我接触过 COBOL、PL1、FORTRAN 和汇编语言,一路走来,我从未后悔。
如今,48 年后,这些年的积累让我拥有了安逸的生活条件。但在职业生涯的初期,我过着捉襟见肘的日子。
随着经验的增长,我的收入也相应提高,但与此同时,家庭的责任和开支也随之增加。确保财务状况稳定,成了我长达三十多年的挑战。
我尝试创办了自己的企业,一度雇用了许多人。但请不要相信那些说创业是快速致富捷径的人。事实往往并非如此,大多数时候,这条路充满艰辛。最终,我的企业没能幸免于失败的命运,留下的是一笔沉重的债务。
现在,到了人生的暮年,我本可以稍稍放松,享受生活。但我并不打算这样做。我热爱我的工作,而且我做得非常出色,从中获得了巨大的满足感。
我只希望你们每个人都能像我一样,找到属于自己的幸福,无论是在家庭生活,还是在职业生涯中,都能体验到作为丈夫、父亲和程序员的快乐。
向 Bob 大叔提出你的疑问!
2019 年的时候,大模型时代还未开始,ChatGPT 与 GitHub Copilot 没成为程序员的标配,我们也就无法得知 Martin 对此的最新看法。
如今,编程范式出现了巨大变化,对话大师的机会就在眼前,请将你所关心的问题在评论中留下来,CSDN 将精选向 Robert C.Martin 提问!
提问方式:在评论中发出即可,最好详实、具体、有针对性。
大模型刷新一切,让我们有着诸多的迷茫,AI 这股热潮究竟会推着我们走向何方?面对时不时一夜变天,焦虑感油然而生,开发者怎么能够更快、更系统地拥抱大模型?《新程序员 007》以「大模型时代,开发者的成长指南」为核心,希望拨开层层迷雾,让开发者定下心地看到及拥抱未来。
读过本书的开发者这样感慨道:“让我惊喜的是,中国还有这种高质量、贴近开发者的杂志,我感到非常激动。最吸引我的是里面有很多人对 AI 的看法和经验和一些采访的内容,这些内容既真实又有价值。”
一文掌握 Prompt:万能框架+优化技巧+常用指标
随着大模型在 2023 年横空出世,“Prompt 工程” 应运而生,作为用好大模型最重要的武器,Prompt 的好坏对模型效果有着决定性的影响。然而,网络上大量相关文章多是罗列“Prompt 工程” 中的若干技巧,少有体系化的总结,让人看完依然不知道该如何入手。
本文希望结合我们在 “Prompt 工程” 中的实践经验,更加体系化地对 “Prompt 工程” 进行梳理,希望可以一步步地帮助大家用好大模型,人人都是 Prompt 工程师。
写在前面
1.1 Prompt 与 GPT 的前世今生
如今我们所讨论的大语言模型,大多专指2023年 “ChatGPT” 爆发以来出现的众多模型,而非广义的 Transformer 架构下的所有模型。而 Prompt 的概念也正是伴随 “GPT” 模型的发展应运而生的。我们要明白 Prompt 是什么,就要知道 Prompt 的前世今生,这就要从 GPT 的发展开始谈起。
如上图所示,自 2017 年 Transformer 诞生以来,在这个架构的基础上,以 BERT 为代表的模型和以 GPT 为代表的模型便以极快的速度向前发展。在 2018 年 BERT 诞生后,语言模型便开始重塑 NLP 领域,快速在市场中得到广泛应用,时至今日这些语言模型依然是 NLP 领域中最被广泛应用的模型,我们今天看到以 GPT 为代表的各类大模型也是其中之一。
从 GPT 的发展来看,我们可以大致划分为 4 个阶段,” GPT1 – GPT2 – GPT3 – ChatGPT “,我们可以从这个发展过程中了解到 Prompt 是如何诞生的,以此更好的了解 Prompt。
阶段 1:GPT-1 诞生在 Transformer 初期,是最早期基于 Transformer 架构打造的模型之一,其采用了和 BERT 相同的范式,通过 “pretrain + finetune” 的方式,首先让模型在大量未标注的数据上自监督的进行学习,完成预训练,随后在应用时再使用有监督数据进行微调,以此让模型可以适用于各种任务。在这种范式下 BERT 作为双向模型,可以充分的获取上下文信息,这让他在各类任务中都展现出了更精准更稳定的效果,而 GPT 作为单向模型,更擅长生成任务,而由于在这个阶段还处于大模型发展的早期,模型规模和效果还没有成长起来,因此生成的不稳定性使得 GPT 并没有被大规模应用。时至今日,即便 GPT 已经展现出了令人惊艳的效果,但目前 BERT 类的模型依然是各个业务使用更多的模型。
阶段 2:相比 GPT-1,GPT-2 第一次提出了全新的范式,当我们扩大模型规模增加训练数据,让模型在一个称为 WebText 的由数百万个网页组成的数据集上完成预训练后,模型不再需要任何监督数据,就可以完成各类任务。在 OpenAI 的 Blog 中我们可以看到,团队在研究过程中发现,提升模型规模及训练数据的体量,可以让模型在 zero-shot 任务中的效果明显提升,这也在今天被认为是对 scaling law 的第一次发现,虽然当时还没有诞生智能涌现的现象。也有人解读,由于 BERT 在各个领域展现出的优异效果,GPT 被迫找到了新的发展方向,也为如今的智能涌现奠定了基础。由此,GPT 开启了与 BERT 截然不同的范式,并在新的范式下进行研发,专注模型在 zero-shot 中的效果。
阶段 3:沿着 GPT-2 增大模型体量和训练数据规模的思路,GPT-3 使用了 570G 的训练数据,达到了 GPT-2 的15倍,参数量更是达到了惊人的 1750B,是 GPT-2 的 116 倍。参数量的提升让 scaling law 大显神威,让模型在各个领域中都展现出了令人惊艳的效果,尤其是在 zero-shot 方面,发布会上通过手绘 UI 图生成前端代码的例子至今让人印象深刻。GPT-3 在 2020 年底发布,当时 Transformer 已经经过了4年的发展,BERT 类模型已经在各类应用中被广泛使用,成为了绝对的主流。然而在这种情况下,GPT-3 的发布也依然成为了领域中最瞩目的事件,即便还是有很多问题,但其远超预期的效果依然令人震撼。
阶段 4:之后的故事大家都非常熟悉了,OpenAI 在 GPT-3 的基础上针对不同场景进行了优化,在“多轮对话”的优化中诞生了“ChatGPT”,随后成为了世界上最火热的话题,也被认为是 AI 市场化的起点。GPT-3 后的模型不再开源,也没有论文公开发表,我们只能在 Blog 中获取一些信息,此处不再进行展开。
最后我们来做个总结,从领域发展的角度我们可以看到 3 种不同的研发范式:
Transformer 之前:有监督训练(train)
GPT-1 & BERT:无监督预训练(pre-train) + 有监督微调(finetune)
GPT-2 & GPT3:无监督预训练(pre-train) + 提示词(Prompt)
我们可以清晰的看到其中的不同,模型能力的研发越来越不依赖 “训练” 的过程,而是更大程度的依赖 “预训练”,依赖 “模型” 本身的能力。在 BERT 所代表的范式下,我们还可以通过 “微调” 在参数层面影响模型。而到了以 “GPT3” 为代表的范式下,也就是我们现在用的大模型,我们不再借助 “微调” 的方式调试模型,而是通过 “输入” 直接影响 “输出” 的质量,而如何在应用中得到一个好的 “输入” 就是 “Prompt 工程” 需要做的事。
以上,我从发展的角度谈论了 Prompt 的前世今生,Prompt 是从何而来,为什么我们需要 “Prompt 工程”,希望可以更好的帮助大家了解 Prompt,下面我就来具体谈谈 Prompt 是什么。
1.2 Prompt 到底是什么?
Prompt 译为 “提示”,与 “zero-shot” 的概念相辅相成,“zero-shot” 就是不通过训练直接向模型提问的应用方式,而 Prompt 就是指提问的方式。从这个概念上看 “模版” 可能是更合适的称呼,为什么要用 “提示” 这个单词呢?
实际上,在刚刚出现这个概念时并没有 “Prompt” 这样的称呼,在早期的论文中其往往会被称为 “输入形式(format)” 或 “输入模版(template)”,但随着领域的发展,尤其是在 GPT-3 之后,Prompt 的叫法才被逐步确定,大家认同 “提示” 的概念与其作用更加贴切,尤其是在大语言模型的语境下尤为合适,因此逐渐成为了公认的称呼。
那 Prompt 到底在提示什么呢?从前文中对范式的解读来看,模型能力的应用越来越向 “预训练” 的部分倾斜,绝大多数能力应当是在 “预训练” 阶段就构成的,而非通过进一步的训练构建。而在这种思想的基础上,Prompt 则像一把解锁模型能力的钥匙,让这些 “预训练” 阶段构成的能力唯我所用。因此,Prompt 就是在提示模型回忆起自己在预训练时学习到的能力。
我们可以把 “知识” 和 “能力” 进行更进一步的分解,我们更多的是希望使用大模型的能力(理解,总结,生成,推理,e.t.c.),而非知识。与现在越来越火热的 RAG 技术一样,我们更倾向于将知识通过外部注入的方式让模型试用,而能力则完全需要依赖预训练阶段。我们要做的是通过 Prompt 调用大模型的能力去解决问题,让这些能力表现的更精准,而并非把他当成一个知识库。如果与人做对比也一样能得到这个结论,人可以从外部收集信息,并利用自身的智能进行决策,而不是把知识都装到自己脑子里。Sam Altman 在早期采访中也提到,把大模型当成搜索引擎的应用方式是错误的,智能的体现才是大模型的关键。
总结而言,Prompt 就是在提示大模型 “回忆” 起自己的某些能力,在合适的场景下为我们解决问题,这也是 Prompt 工程最核心的理念之一。
1.3 为什么不能依赖训练?微调有什么问题?
除了闭源大模型外,现在小型的开源模型也是应用的主流,也随之诞生了 LoRa 这样的训练技术,可以在较小的成本下完成训练,那是否就意味着我们可以不再依赖 Prompt,而是像以前一样通过 “微调” 的范式调试模型呢?
首先是成本问题,Prompt 这种新范式的诞生是由于大模型超大的体量,导致我们无法在较小的成本下对参数产生足够的影响,即便是开源的较小的模型我们也大多采用 LoRa 这类 “附加参数” 的方式进行微调。因此,对于大模型应用而言,考虑到成本,我们实际上根本无法完成 “训练” 的过程。
其次是效果问题,如果我们利用 LoRa 这样的技术进行微调,对于模型参数的影响是很有限的,目前更倾向认为这是一种“对齐”的过程,且还很有可能引发“遗忘”的问题。而如果你希望通过微调让模型掌握 “知识”,这也不是一个好的思路,这意味着你需要不断的通过训练来保持知识的更新,且需要针对不同领域训练多个不同的模型,同时训练也并不是一个可靠的过程,相比之下现在“超长上下文的模型” 加 “RAG” 被认为是更可靠的方式。
最后,这也不是一个长期可靠的研发思路,大模型现在惊艳的效果是基于 “scaling law” 的智能涌现,本质还是在应用大模型预训练阶段的能力。无论是“开源”还是“闭源”模型,一定是通过参数量的增加或其他方式,让模型本身的能力不断提升,且目前看依然保持指数级的增长。在这种情况下,过于依赖基于任务的训练是不长久的,因为大模型的本质不是通过训练构建能力,而是通过输入调度能力,并在任务维度进行对齐。即便是开源模型的应用,长期来看也不会是以任务维度进行训练。
因此,训练与微调并不能取代 Prompt 的作用,且这种范式在众多方面都展现出了弊端,这也证明了 Prompt 工程的重要性,Prompt 是新范式下应用模型能力的关键。
1.4 为什么要写这篇文章?
自大模型横空出世依赖变成为了世界最大的热点,而 “Prompt 工程” 一直是其中最为火热的方向之一,早在大模型发展之初很多人便开始呼吁设立 “Prompt 工程师” 的职位,似乎在新的时代下写好 Prompt,用好大模型,是各个领域最重要的事情之一。在这样的背景下,Prompt 相关的研究已经积累的十分充足,无论是公司内外都积累了众多的文章和课程,其中最火的 《Prompt Engineering Guide》,和吴恩达老师的《ChatGPT Prompt Engineering for Developers》,都对 “Prompt 工程” 作出了详细的介绍,是非常重要的学习资料。那为什么我还要写这篇文章呢?
这些文章和教程都有一个共通的问题,他们大多是对技巧的罗列,例如《Prompt Engineering Guide》中就罗列了大量技巧,告诉你可以在 Prompt 中 “增加示例”,“增加角色” 等等。但并没有一个体系化的结构,一个标准化的工作流,告诉大家如何一步步的完成一个 “Prompt”,如何从0开始完成 “Prompt 工程” 的工作。
因此本文尝试结合我们的研发经验,体系化的对 “Prompt 工程” 的工作进行总结,得到一些标准化的工作流程,并通过这样结构化的整理,可以更好的对 “Prompt” 进行管理,让“Prompt”作为大模型应用的基石,更加可靠有效可扩展。具体而言,我们把从0到1完成一个 Prompt 的过程拆分为了5个步骤。我们利用一套统一的模版,解决最困难的初始 Prompt 书写的问题,并结合实际应用一步步的进行优化,从而体系化的完成 “Prompt 工程” 的工作。
我们希望通过我们的方法,可以提升 Prompt 工程的工作效率,降低 Prompt 技术的应用成本,并解决 Prompt 难以管理的问题。让大家都可以从0到1的完成大模型的调试,并让大模型在各个领域中被更好的应用。
Prompt 万能框架
在编写 Prompt 时,从0到1的编写出第一版 Prompt 往往是最难的,而基于已有 Prompt 利用各种技巧进行优化则相对简单。善于解决 “数理问题” 的我们在面对这样一个偏 “文理问题” 的任务时,就像小时候写作文一样难以提笔。如上图所示,为了解决这个问题,我们使用了一套 “万能模版”,把一个 Prompt 拆分成了 “立角色 + 述问题 + 定目标 + 补要求” 这四个部分,希望通过结构化的拆分完成这最困难的一步,无论面对什么任务,利用这个模版都可以得到一个“及格”的 Prompt。下面我就具体和大家阐述一下这个模版是如何得到的,为什么他是有效的。
对与 Prompt 的作用和定位已经在第一章中进行了详细的讨论,Prompt 的作用就是根据我们的问题调用模型的能力,我们要通过提问的方式,明确的让模型知道我们想要什么,我们的目标是什么,从这个基本思想出发,Prompt 应该包含以下几点:
问题是什么:首先你要告诉模型你的问题是什么,你的任务是什么,要尽量描述清楚你的需求。
你要做什么:下面你需要告诉大模型具体要做什么,比如做一份攻略,写一段代码,对文章进行优化,等等。
有什么要求:最后我们往往还需求对任务补充一些要求,比如按特定格式输出,规定长度限制,只输出某些内容,等等。
通这 3 部分的描述我们就把 “要大模型做什么” 描述清楚了,这个想法十分自然,即便不是大模型,而是希望其他人为你完成某项任务,往往也需要通过这 3 部分把问题描述清楚。由于这仅仅是第一版 Prompt,你不需要描述的过于详细,也不需要使用技巧,只需要用简练的语言把这几部分描述清晰即可。以下是几个示例:
例1:生成产品摘要问题是什么:你的任务是帮我生成一个产品的简短摘要。你要做什么:我会给你产品的需求文档,及用户对产品的评价,请结合这些信息概括产品的功能及现状,为我生成一份产品摘要。
有什么要求:请尽量概括产品的特点,并用轻松幽默的语言风格进行编写,摘要的字数不要超过50个字。
例2:生成代码注释问题是什么:你的任务是帮我的代码生成注释。
你要做什么:我有一段 python 代码,需要你对代码的内容进行分析,并为代码添加注释。有什么要求:请结合代码内容,尽量详细的补充注释,不要遗漏,每条注释请以 “comment:” 作为前缀。
例3:生成测试用例问题是什么:你的任务是帮我设计一款产品的测试用例。
你要做什么:我会提供给你产品的需求文档,需要你结合需求的功能描述进行测试用例的编写。
有什么要求:请结合需求中功能的结构,对测试点进行梳理,并有层级的输出测试用例,请保证每一个功能的测试点没有遗漏。
以上是 3 个简单的示例,让大家更直观的感受这 3 部分的含义,在实际应用中这 3 部分的内容会比例子中复杂的多,此处仅仅为了说明框架的结构,实际内容没有参考价值,各部分内容的细化会在第三章中详细展开。
在描述清楚任务后,我们就需要调度模型的能力去完成我们的任务,不同的任务需要用到不同的能力,这往往依赖认为的拆分。我们可以想像,当我们让一个小白帮我们完成一项任务时,我们需要对任务进行分解,并告诉他每一步需要怎么做,以此来让他完成一项复杂的任务。对于大模型而言,这当然也是试用的,甚至十分好用,这在第 5 章的 “CoT” 中还会再次提到。
你当然可以人为的完成这种拆分,再一条条的解释给大模型,但这种做法并不通用,每个领域都有自己独特的专项能力,每个任务都有自己的工作流程,因此这种方案并不适合放到一个通用的框架当中。好在大模型能力的调用还存在一条捷径,那就是“角色”,他就像大模型里自带一个“能力包”,可以很容易的对模型能力进行调用。每一个角色,都对应着该角色包含的若干能力,我们可以通过设定角色,“提示”大模型使用该角色对应的能力,这与前文“Prompt 到底是什么” 中介绍的想法极其匹配,充分说明是“Prompt” 提示的作用,通过简单的“提示”调用出大模型预先训练的能力,这也就是“角色”如此有用的原因。
由此我们就最终得到了我们的 “Prompt 模版”,通过这个统一的框架我们可以完成绝大多数 Prompt 初版的编写,让大家在面对各类任务时可以高效的完成从 0 到 1 的尝试,而不必陷入无从下笔的困境。
除了效果之外,对 Prompt 结构化的拆分也对 Prompt 管理提供了很大帮助,我们的 Prompt 库不再是大段的文本,而是拆分成了 4 张表“角色表”,“问题表”,“目标表”,“要求表”。通过这种方式我们可以很大的提升 Prompt 的灵活性,并通过动态组合 4 个元素的方式完成各类任务,这在面对复杂任务,或通过多模型解决问题时,会提供稳定有效的支撑。
框架的细化
在第二章中我们已经明确了 “Prompt 工程” 的第一步,通过我们的框架,在任何任务中我们都可以完成 Prompt 从 0 到 1 的编写,而这个初版的 Prompt 还只是一个雏形,由于各部分信息还不完整,往往不能达到我们的预期,框架提供了 Prompt 的骨架,还需要我们进一步补充血肉,下面我会对框架的每一部分进行更详细的分解,通过内容的补全一步步的提升模型的效果。
3.1 立角色
与第二章中对 “角色” 的理解一致,“角色” 可以被当作大模型的“能力包”或“语法糖”,我们不再需要对每一项能力进行详细的描述,对任务进行更细节的分解,而是可以通过 import “角色” 的方式,使用这个 “角色” 背后对应的各项能力。那我们该如何设立角色,才是这个“能力包”的正确使用方式呢?
大家都有招聘的经历,我们可以想象,大模型就是我们要招的人,我们需要设定一个能力模型,来完成我们指定的工作。我们在招聘时通常都会有明确的要求,在JD中要有清晰的描述,这样才能找到最合适的人选。这与大模型的角色设置一样,我们要清晰明确的描述这个角色,才能充分 “提示” 大模型,让大模型知道该调用哪些能力。
我们不妨试想一下在招聘 JD 中,我们会要求哪些内容。通常会包含:工作年份,教育水平,项目经历,工作技能,荣誉奖项等等。我们完全可以按照这个思路,创建一个语言模版,帮助我们创立角色。
以下是我在使用的角色模版,当然 Prompt 的构造十分灵活,展示的示例仅供参考:
角色模版:
现在你是一位优秀的{{你想要的身份}},拥有{{你想要的教育水平}},并且具备{{你想要的工作年份及工作经历}},你的工作内容是{{与问题相关的工作内容}},同时你具备以下能力{{你需要的能力}}
例:心理咨询师
现在你是一位优秀的 {{心理咨询师}},拥有 {{心理咨询、临床心理学等专业的硕士或博士学位}},并且具备 {{多年的心理咨询工作经验,在不同类型的心理咨询机构、诊所或医院积累了丰富的临床实践经验}},你的工作内容是 {{为咨询者处理各种心理问题,并帮助你的咨询者找到合适的解决方案}},同时你具备以下能力:
{{
专业知识:你应该拥有心理学领域的扎实知识,包括理论体系、治疗方法、心理测量等,可以为你的咨询者提供专业、有针对性的建议。
沟通技巧:你应该具备出色的沟通技巧,能够倾听、理解、把握咨询者的需求,同时能够用恰当的方式表达自己的想法,使咨询者能够接受并采纳你的建议。
同理心:你应该具备强烈的同理心,能够站在咨询者的角度去理解他们的痛苦和困惑,从而给予他们真诚的关怀和支持。
持续学习:你应该有持续学习的意愿,跟进心理学领域的最新研究和发展,不断更新自己的知识和技能,以便更好地服务于你的咨询者。
良好的职业道德:你应该具备良好的职业道德,尊重咨询者的隐私,遵循专业规范,确保咨询过程的安全和有效性。
}}
以上是一个简单的示例,角色的设置往往需要编写者对角色有一定的了解,这可以更好的帮助你补全你的模版,但如果你不了解你要设置的角色,不知道这些信息该如何填写,我们如何可以获取到这部分信息呢?
其实,我们可以沿着 “招聘 JD” 的思路,通过招聘网站上的招聘信息补全我们的数据。例如,我要让大模型帮我完成一个 “财务分析” 相关的任务,而我此前对这个领域毫无了解,此时就可以通过招聘网站的职位信息,完成角色的设置:
例:财务分析
现在你是一位优秀的{{财务分析顾问}},拥有{{财务学、经济学等专业的硕士或博士学位}},并且具备{{八年以上的财务分析工作经验,在不同类型的公司进行过一线基金财务分析,财务报告产出等工作,积累了丰富的实践经验}},你的工作内容是{{对投融资数据进行分析,从管理层的视角设计数据分析框架和汇报体系}},同时你具备以下能力:
{{
专业知识:你拥有较强的数据分析能力和丰富的财务分析与报告能力。
较强的分析问题解决问题能力和框架性思维能力。
具有很强的学习能力,以及很强的自我驱动力。
有好奇心,愿意挑战自己,不断开拓新的领域。
中英文流利,优秀的中英文书写能力,良好的沟通能力。
}}
以上,就是借助 “招聘 JD” 完成一个完全陌生领域角色的示例,而通常而言角色与任务的关联性很大,我们对角色的了解越深入,就越能设定出符合预期的角色,即便我们可以采用这种方案进行兜底,但在 “Prompt 工程” 中人的先验经验依然十分重要。
3.2 述问题 & 定目标
对问题的描述由 “述问题” 和 “定目标” 两部分组成,是 Prompt 中信息含量最大的部分,也是和任务最相关的部分,我们要明确的描述我们希望大模型做的工作,才能让大模型输出最符合预期的结果。
除了要描述的清晰明确外,此部分值得强调的就是对任务的分解,这在复杂任务上尤为重要。如果我们需要大模型完成的任务过于复杂,我们则需要先人工对任务进行拆分,并尽量详细的描述任务中包含的各个部分,这与常用的 “CoT” 的优化方式类似,通过把复杂任务拆分成若干个子部分的方式提升模型的效果。
我们也可以把这种拆分当作一个任务维度的对齐,当我们用概括的语言描述一项任务时,隐含了大量的背景知识和预期。例如,当我们希望大模型帮我们 “制作一份旅游攻略” 时,我们希望他能帮我们 “规划行程”,“收集信息”,“预定酒店” 等等,而这些信息往往都被包含在 “旅游攻略” 当中。如果我们不明确的对任务进行拆分,大模型就不知道我们的任务具体需要包含哪些部分,因此这个任务维度的对齐十分重要。下面我举几个例子:
例1:请帮我制作一份深圳的旅游攻略
请帮我制作一份深圳的旅游攻略,以下是一些基本步骤和思考方式:
研究和收集信息:查找关于深圳的旅游信息,包括主要的旅游景点,当地的文化和历史,美食,交通,住宿等。
规划行程:根据你收集的信息,规划你的行程。考虑你想要去的地方,你有多少时间,你的预算等。确保你的行程是实际和可行的。
预订交通和住宿:一旦你确定了你的行程,你可以开始预订你的交通和住宿。比较不同的选项,找到最适合你的。
准备必要的物品:根据你的行程和新疆的天气,准备你需要的物品,比如衣服,鞋子,相机,地图等。
例2:请根据需求帮我设计测试用例
请根据需求帮助我设计测试用例,测试用例的设计是一个系统化的过程,以下是一些基本步骤和思考方式:
理解需求:首先,你需要深入理解软件的需求和功能。这包括阅读需求文档,理解用户故事,或者与项目经理和开发人员进行讨论。
确定测试范围:确定你需要测试哪些功能和特性。这可能包括正常操作,边缘情况,错误处理等。
设计测试策略:确定你将如何测试这些功能。这可能包括单元测试,集成测试,系统测试,性能测试等。
编写测试用例:对于每个测试,编写一个详细的测试用例。这应该包括预期的输入,预期的输出,以及如何执行测试。
评审测试用例:对测试用例进行评审,以确保它们完整,准确,并且易于理解。
复杂任务的拆解往往十分有效,不仅可以提升大模型的推理能力,也可以让大模型的输出更加贴合你的要求(对齐),但这需要你对当前任务有一定的理解,才可以完成这样的拆分。但如果你并不熟悉你要处理的任务,如何完成这一步呢。正如前文中表达的观念,我们希望得出一套通用的方法,让每个人在面对每个任务时都可以完成 Prompt 的编写,因此一定需要找到更加通用的方法。
其实,这个步骤你完全可以让大模型帮助你完成,这类似 Agent 中的 Planning 的思想,让大模型帮助你拆分一项复杂任务。你可以使用这样简单的 Prompt 完成这个任务:
任务拆分 Prompt:{{你要做的任务}},需要哪些步骤,该如何思考?
例:希望大模型帮我写一份基金财务分析报告
输入:
制作一份基金财务分析报告,需要哪些步骤,该如何思考?
输出:
制作一份基金财务分析报告是一个涉及多个步骤的过程,需要对基金的财务状况、投资策略、市场环境等进行深入的研究和理解。以下是一些主要步骤和思考方式:
收集数据:首先,你需要收集基金的财务数据,包括但不限于基金的净值、收益率、投资组合、费用比率等。这些数据通常可以从基金公司的年度报告或季度报告中获取。
数据分析:对收集到的数据进行分析,包括对基金的收益率、风险、投资组合分布等进行计算和比较。你可以使用一些财务分析工具,如 Excel,或者专门的财务分析软件来进行这些计算。
基金比较:将基金的表现与其同类基金或者基准指数进行比较,看看基金的表现是否超过市场平均水平。这可以帮助你理解基金的相对表现。
市场环境分析:考虑基金的投资环境,包括经济状况、行业趋势、政策变化等。这些因素可能会影响基金的表现。
基金经理分析:研究基金经理的投资策略和历史表现,看看他们是否有能力在不同的市场环境下取得良好的回报。
撰写报告:将你的分析结果整理成一份报告,包括你的主要发现、基金的优点和缺点、以及你对基金未来表现的预测。
在进行这些步骤时,你需要保持客观和批判性的思考。不要只看基金的过去表现,而要尝试理解基金的表现背后的原因。此外,你还需要考虑到市场的不确定性,因此在做出预测时要谨慎。
3.3 补要求
以上我们已经通过 “述问题&定目标” 描述清楚了我们的任务,下面我们往往还需要对我们的任务提出一些要求,告诉大模型希望他做什么以及不做什么,这往往与模型在应用中的准确率息息相关。我们常用的要求可能有如下几种:
字数限制。
输出结构(结构化输出,Json 输出)。
在输出中排除 xxx。
在输出中仅包含 xxx。
让大模型遵循我们的要求,尤其是在“格式”层面让大模型的输出符合我们的规定,对大模型的工业应用十分重要。如何让大模型更听话,让其遵循我们的要求呢?
首先,我们可以把要求放在 Prompt 的最后。大语言模型的本质是在做文本补全,后文的输出会更倾向于依据距离更近的语境,如果利用 “LIME” 这样的模型解释算法分析,距离更近的文本间权重往往更大,这在 Transofrmer 中的 Attention 权重 上也可以清晰的看到。同时,这与大模型在预训练阶段中完成的任务也更加匹配,虽然现在的大模型在 SFT 阶段会进行多种任务的训练,但其本质上还是建立在自监督“文本补全”任务上被训练出来的,因此其天然的更加遵从离得更近的文本。因此,把要求放在 Prompt 的最后可以很有效的帮助大模型变得更“听话”。
其次,我们还可以利用大模型的“编程”能力巧妙的让他更“听话”。在“立角色”的部分中,我们说“角色”时大模型的能力包,我们可以通过设定角色调用大模型的能力,那有什么能力可以让大模型更“听话”呢?我们都知道“大模型”在“编程”方面也展现出了惊人的能力,而这个能力恰好可以将“模糊的文理问题”变成“准确的数理问题”,以此让大模型更加遵守我们的要求。
具体而言,就是把我们的要求转换为一个 “编码” 任务,例如:
请列出 10 个国家,并以列表形式返回
请列出 10 个国家,并以列表形式返回。我需要将这个列表引入到 python 代码中,请严格遵守 python 列表的格式进行输出。
例2:请输出 10 个国家,并包含这 10 个国家的“名称”,“人口”,“位置”。
请列出 10 个国家,并包含这 10 个国家的“名称”,“人口”,“位置”。我需要将这份数据引入到 python 代码中,因此请以 Json 格式进行输出,Json 格式如下:
”’
{“name”: 名称, “population”: 人口, “position”: 位置, }
”’
例3:请为我输出一份产品摘要,字数不要超过 50 个字。
请为我输出一份产品摘要。我需要将这个摘要引入到 python 代码中,该变量的大小为 50,因此摘要内容不要超过 50 个字符通过这样引入大模型“编程”能力的方式,我们可以对模型提出更加精准的要求,并通过将我们的任务转换为更加准确的编程问题的方式,让大模型更 “听话”。
3.4 (补充)格式很重要
除了输入的内容外,输入的格式也很重要,清晰的结构对大模型的效果有很大的影响。除了增加合适的 “空行” 让结构变的清晰外,我们还可以增加一些“标识符”来区分各个部分,例如:#, <>, “`, [], -。同时大模型也具备 MarkDown 解析的能力,我们也可以借助 MarkDown 语法进行 Prompt 结构的整理。
由于“格式”对模型效果的影响,越来越多研究聚焦在了这个方向上,其中 “LangGPT” 得到了广泛的应用。LangGPT 提出了一种结构化的 Prompt 模式,可以通过一套结构化的模版构造出格式清晰的 Prompt。
例:LangGPT 示例
# Role: 设置角色名称,一级标题,作用范围为全局
## Profile: 设置角色简介,二级标题,作用范围为段落
– Author: yzfly 设置 Prompt 作者名,保护 Prompt 原作权益
– Version: 1.0 设置 Prompt 版本号,记录迭代版本
– Language: 中文 设置语言,中文还是 English
– Description: 一两句话简要描述角色设定,背景,技能等
### Skill: 设置技能,下面分点仔细描述
1. xxx
2. xxx
## Rules 设置规则,下面分点描述细节
1. xxx
2. xxx
##Workflow 设置工作流程,如何和用户交流,交互
1. 让用户以 “形式:[], 主题:[]” 的方式指定诗歌形式,主题。
2. 针对用户给定的主题,创作诗歌,包括题目和诗句。
##Initialization 设置初始化步骤,强调 prompt 各内容之间的作用和联系,定义初始化行为。
作为角色 <Role>, 严格遵守 <Rules>, 使用默认 <Language> 与用户对话。然后介绍自己,并告诉用户 <Workflow>。
我们从 “LangGPT” 的示例中可以看到,他用各种分隔符对 Prompt 内容进行了整理,可以很清晰的看到每部分的作用与区分。我们可以借鉴 “LangGPT” 对分隔符的使用,通过对格式的整理让同样的 Prompt 展现出更好的效果。
3.5 总结(框架)
我们把 “框架细化” 分成了 4 步,并在每一步中都提出了通用的实践方法:
角色:通过角色模版和招聘 JD 补全角色。
问题&目标:在大模型的辅助下拆分任务。
要求:借助编码能力,让大模型更好的遵守要求。
格式整理:结合 LangGPT 的思想合理应用分隔符,让 Prompt 结构清晰。
至此,我们已经完成了 Prompt 主体部分的编写,面对任何一个任务都可以通过这套统一的方法完成一个还不错的 Prompt,并且通过我们对 Prompt 结构化的拆分,我们现在也可以更好的管理我们的 Prompt,并为上层应用提供更好的支撑。
在框架上增加更多信息(RAG)
上文中我们已经通过 “Prompt 框架” 和 “框架的细化” 完成了 Prompt 主体部分的编写,如果我们要在这基础上进一步优化我们的 Prompt,我们还能怎么做呢?
大模型的推理,根本上还是基于用户输入的信息进行推理,我们提供的信息越充分,大模型就能越好的完成推进。因此,要想让模型的效果更好,我们就需要提供更多的输入信息。前两章介绍的“框架”,仅仅包含了 Prompt 中“静态”的信息,再进一步扩充这部分信息的同时,我们还需要增加因任务而异的“动态”信息,这两部分信息的补充就是进一步优化 Prompt 的核心思想。
“增加更多信息,让效果变得更好” 这个想法十分自然,但我们要增加什么信息?如何增加这些信息呢?
为了能在合适的场景下增加合适的信息,势必要包含 “检索” 的工作,来根据需要找到合适的信息,而说到 “检索” 就不得不提名声大噪的 “RAG” 了。
4.1 RAG
RAG 技术在近期得到了大量的关注,也渐渐的在各种实际场景中得到了应用。早在 ChatGPT 爆发之初,RAG 就已经得到了不少的关注,大家很早就意识到,想要依赖模型参数注入知识不是可行的做法,要让模型拥有动态获取知识的能力,不光对大模型在专业领域中的应用十分重要,对知识的扩展性和时效性在通用领域中也同样重要。
与人类智能类比,人脑也并不需要把所有知识都放在大脑中,而是可以通过检索的方式获取知识,再利用自身的智能进行推理,最终得到结论。当你使用各大厂商的大模型时,你都会发现其包含检索的步骤,通过检索获取的知识对大模型效果十分重要。
而这个检索背后的技术就是 “RAG”,他可以利用大模型能力通过语义相似度的方式,高效的在文本数据上完成检索,并把其增加到大模型的输入当中。
从技术角度看,上图是 RAG 最原始的结构,也是 RAG 最核心的部分,通过 “Embedding+向量数据库” 的方式,RAG 可以无监督的对文本数据进行语义维度的匹配,这个思想早在 Word2Vec 时代就已经得到了应用,词向量就已经可以进行“词”维度的匹配,而如今大模型则是把这个维度提升到了所有文本数据。
现在已经有了许多可以直接使用的 RAG 框架,如:LangChain, Milvus, LlamaIndex, Pincone 都提供了开箱即用的方案。而真的要让 RAG 变得准确好用,还是有很多值得优化的地方,RAG 框架也已经有了多种优化版本。
如今的 RAG 技术已经得到了充分的发展,已经不仅仅局限于语义匹配本身,而诞生出了多种优化版本,也增加了例如 “Rewrite”, “Memory” 这样的模块,对于 RAG 技术感兴趣的同学可以阅读此篇survey:https://arxiv.org/pdf/2312.10997
如果我们从应用角度重新看看 RAG ,不难发现其本质就是检索技术,只是 RAG 利用大模型能力实现了更强的语义维度的检索。而如果我们不知道怎么做 Embedding,也没有向量数据库,不会使用 RAG,我们还可以完成检索吗?
答案显然是肯定的 ,检索依然是十分成熟的技术模块了,即便利用最传统的 “关键词匹配” 也可以计算文本间的相似度,实现检索的效果。因此,RAG 并不是唯一的技术方案,我们不必困在此处,在条件不足的情况下,我们可以结合场景找到最合适的检索模式,践行 RAG 的思想,在输入中增加更多信息才是最核心的思想。
以上,我结合 RAG 介绍了 “如何增加信息?”,下面我就具体展开 “我们要增加什么信息?”。
4.2 示例(Few-shot)
Few-shot 是无监督学习的一种基本范式,相较于直接提问的方式,One-shot 会提供一条示例,Few-shot 会提供多条量示例再进行提问,以此提升模型的效果。这种提供示例的方法,在不进行专项训练的情况下可以很好的提升模型的准确性和稳定性,在各类大模型的论文中也可以看到这样的对比,在各类任务中均可以表现出更好的效果。
对于 Few-shot 而言,最为人诟病的一点就是,当你提供示例后,模型会更多的参照示例回答,而在某种程度上降低了模型本身的思考能力。Few-shot中的示例很大程度提升了模型结果的确定性,而确定性会影响模型展现出的智能水平,特别是对于基于表征学习的大语言模型(Certainty or Intelligence: Pick One!,Yann Le Cun)。
我们应该如何缓解这个弊端呢?除了通过 Prompt 对模型进行引导外,让示例变得 “少而有效” 也是很好的方式,通过提供更具参考性的示例,提升每条示例的价值,同时降低示例的数量,可以有效的减少大模型的确定性,并通过这种方式尽量减少示例带来的负面影响。
为了达到 “少而有效” 的效果就需要借助 “RAG” 的方式完成。通过提升检索的效果,我们可以更精准的找到与当前任务最相近的示例(或反例),相比静态的示例而言,这可以很大的增强模型对当前任务的理解,以此提升模型在专项任务中的效果。
4.3 记忆(Memory)
除了在输入中增加 “示例” 外,我们还可以增加“历史记录”,为大模型增加 “记忆(memory)” 。“记忆” 可以弥补大模型在知识整合和长期记忆方面存在的明显短板,而这恰恰是人脑的强项。人脑能持续不断地整合知识,形成强大的长期记忆,为我们的思考和决策提供支持。
在一次对话内的上下为可以被称作“短期记忆”,而对于历史的对话内容则可以被称为“长期记忆”,在适当的场景调用这些记忆,可以为当前的对话补充必要的上下文,让模型了解更多必要的背景信息,已在当前任务中表现的更好。这种打破 “上下文长度限制” 的方式,不光在专项任务中发挥效果,在更长的生命周期上,让模型可以调度历史的“对话内容”也被认为是模型不断进化的方式之一。
例如,在上图的例子中,当大模型进行电影推荐任务时,会调取历史记忆,确定用户倾向的电影类型和看电影的时间,这些信息会在模型推理的过程中被加入到输入中,以此推荐出更符合预期的结果。
我们可以根据每一轮对话的输入,利用“RAG”技术,动态的从记忆库中获取合适的内容加入到输入中,让大模型可以跨任务,跨周期的进行历史数据的获取。这在通用领域可以进行知识的打通,建立知识间的关联,在专业领域中面对 “专业概念/专业词汇” 时,除了依赖人工对专业知识的整理,历史数据中沉淀的专业知识也是十分有效的信息,通过历史数据的引入排除对人工的依赖,在使用过程中不断提升模型对专业知识的理解,这也是很多论文中提到的“通过长期记忆让模型自我进化”的思想。
“记忆” 是十分重要的大模型推理模块之一,在 Agent 建设中也扮演了重要的角色,相关的研究还在不断发展,记忆管理框架(MemGPT)也在工业中得到了越来越广泛的应用,诞生了许多令人印象深刻的记忆框架。
例如,来自俄亥俄州立大学和斯坦福大学的科学家们给出了一项有趣的研究,希望让人工智能拥有一个类似人类海马体的”记忆大脑”。从神经科学的角度出发,模仿人脑海马体在长期记忆中的作用,设计出一个名为 HippoRAG 的模型,能够像人脑一样高效地整合和搜索知识。
他们利用大语言模型处理信息,并用一个知识图谱来充当“记忆索引”,引入了检索模型来连接语言模型和知识图谱。当模型接收到一个新的查询时,它先从查询中提取关键概念,然后在知识图谱上应用 “Personalized PageRank” 算法进行概念扩展和检索,模拟海马体的联想记忆能力。最后,模型根据节点的重要性对 passage 进行排序和检索,进行“模式补全”。实验表明,这个“记忆大脑”能够在多跳问答等需要 “知识整合” 的任务上取得大幅提升。
4.4 应对专业领域
大模型擅长回答通用的知识,但对于专业领域内的知识就显得没那么擅长,而对于大模型的工业应用而言,我们往往要处理某个专业领域内的专项任务,这需要大模型理解必要的专业知识和专业方法,并在合适的时候调度它们,以此在工业应用中取得稳定的效果,这也成为了大模型应用最大的问题之一。
专业领域知识的增加对大模型在专业领域上的应用效果至关重要,以我们近一年应用大模型在“测试领域”的实践为例,我们希望大模型帮助测试同学完成测试工作,例如 “编写/检查” 测试用例。
要完成这样一个相对专业的领域任务,就需要大模型了解足够的领域知识,例如测试用例的检查标准,常用的测试方法,各类用例设计方法,以及必要的业务背景知识。为了能让大模型具备这些支持,我们首先需要与领域专家协作,对测试域相关的知识进行整理,管理好这些知识是大模型应用的基础。
同时,专业领域的知识与具体任务息息相关。例如,对 “用例检查” 任务而言,我们的目的是通过用例检查发现用例中存在的问题,以此减少用例原因导致的漏测问题。因此,我们从目的出发,对漏测问题进行分析,在确定检查点的同时,结合用例现状和专业知识进行了问题定义的梳理,通过明确问题定义让大模型更好的贴合我们的专业领域。
除了上述这些对专业知识的整理,我们还希望动态的增加这些信息,利用 RAG 的方法,结合具体任务动态的从知识库中引入必要的知识。例如,当用户的输入中包含某些专业词汇或业务概念时,我们需要动态的识别到他们,并对他们进行解释和补充,这可能需要利用 “插件” 完成,关于“插件”的相关内容我会在“Agent”相关的文章中具体展开,此处不再赘。
无论是 “静态知识” 还是 “动态知识”,都是通过对专业知识的整理,弥补大模型在专业领域上的不足,我们要将”专业知识“翻译成”通用知识“ 告诉模型大模型,让大模型更好的应对专业领域。这一步往往需要领域专家的介入以及对知识的人工整理,这往往是决定大模型效果上限最重要的因素之一。
4.5 总结(增加更多信息)
本章,我们通过进一步增加信息的方式提升模型的效果,并通过两个问题分析了增加信息的方式:
如何增加信息:RAG,或其他检索方式。
增加什么信息:
示例(Few-Shot)
历史记录(记忆)
专业知识,领域知识,业务知识
我们通过框架和额外信息的增加,在输入层面上完成了 Prompt 的调试,接下来就需要让模型根据我们的输入进行推理,而推理本身的效果也是影响模型效果很重要的因此,下面就来展开谈谈,如何在输入的基础上提升模型的推理能力。
让大模型更好的思考(CoT)
5.1 什么是 CoT
2022 年,在 Google 发布的论文《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》中首次提出,通过让大模型逐步推理,将一个复杂问题分解为若干个子问题,并一步一步的进行推理,通过这种方式可以显著提升大模型的性能。这种推理方法就被称为思维链(Chain of Thought)。
区别于传统 Prompt 通过控制输入直接端到端的得到输出,即 input ——> output 的方式,CoT 完成了从输入到思维链再到输出的映射,即 input——> reasoning chain ——> output。
自 CoT 问世以来,CoT 的能力已经被无数工作所验证,如下图所示,可以看到,相较于直接 Prompt, CoT 对所有的推理任务都带来了显著的提升
5.2 CoT 的实现
上图展示了几种不同范式下对CoT的实现。对于 Zero-Shot 而言只需要简单的一句 “Let’s think step by step” 就可以让模型一步步思考;对于 Few-Shot 而言,除了在提问时引入分步的思想,还提供了逐步思考的示例,不仅可以让大模型分步思考,还可以通过示例告诉大模型应该如何分步;对于 Agent 而言,我们不光通过修改输入的方式实现 CoT,而是人为的对任务进行拆分,并通过多轮对话的方式将 CoT 引入到建模过程当中,实现整体任务维度的 CoT。
如上图所示,CoT 的构造主要以线性为主,对任务进行线性拆分,并按先后顺序以此执行。而随着 CoT 相关研究的不断发展,思维链的形式不仅仅局限在线性的形式,而是衍生出了树状,表状,图状等多种类型,其中代表工作有 PoT,Tab-CoT,ToT,GoT-Rationale 等等,下图清晰的展示了这几种方法的异同:
5.3 CoT 的应用
CoT 的本质是将一个高度不确定的复杂任务,拆分成若干个确定性较高的子任务,以此提升整个系统的效果和确定性。从 “zero-shot” 和 “few-shot” 范式中,CoT 这是一种推理技巧,而从 “Agent” 范式看,CoT 则更像一种建模思路,这也是 CoT 更核心的思想。当我们面对一个复杂任务时,仅对输入进行改造是不够的,我们还需要进行任务维度的分解,用 CoT 的方式进行建模。
例如,如果我需要大模型帮我完成一篇文章,我有两种做法:
输入信息 – 输出文章。
输入信息 – 输出大纲 – 完善大纲内容 – 依据要求进行调整 – 输出文章。
这个例子只是一个简单的拆分,但也能在效果上得到很大提升。下面举一个我们实际工作中的例子,我们希望大模型帮助测试同学编写“测试用例”,对于这个任务而言,最直观的做法就是把 “需求” 做为输入,让大模型根据需求进行测试设计,生成“测试用例”,而需求的复杂程度和不确定性对任务造成了极大的阻碍,因此我们引入 CoT 的思想对任务进行了拆分。
如上图所示,我们将这个复杂任务拆分成了3个阶段(实际上每一阶段又会拆分正若干个子步骤)。首先对需求进行分析,整理需求内容,并从需求中抽取功能点及测试对象;然后基于这些功能点进行用例设计,编写用例集的整体结构,以及每条用例的测试点,即用例标题;最后对用例进行补全,根据需求和用例标题编写用例的步骤和预期结果。我们通过这种方式,将任务分为了3个阶段,无论是从“研发”还是从“应用”角度都为我们的任务带来了极大的帮助。
从“研发”角度看,当我们把一个任务分解为多个阶段后,我们很容易的可以找到其中 “最简单” 的阶段。例如,在上图的链路中,对需求的分析相对困难,而 “根据标题生成步骤” 则相对简单,以此做为切入点可以在前期为我们避免最复杂的“需求”数据,让我们可以快速达到可应用的效果。这种研发思路并非仅对这个任务有效,对于前文中提到的 “文章编写” 的例子,“输出大纲” 和 “依据要求进行调整” 显然是更简单的子任务,率先在从这些点切入,也可以帮我们更快的取得成效。
从“应用”角度看,即便大模型展现出了极为惊艳的效果,但在应用中的短板也十分明显,大家也逐渐看到了大模型能力的限制。基于对现有模型能力的判断,“人机协同(copilot)” 被越来越多人认为是更好的方式。而 “人机协同” 是一个共同生产的过程,如果大模型仅仅是端到端的完成一个任务,人很难介入的,而当我们进行了任务维度的拆分后,每一个子任务都可以与人协同。例如,在“用例生成”中,人可以先对需求进行分析,再让大模型进行用例设计,通过这种人机协同的应用模式,我们可以让大模型在应用中更快速的落地。
附加技巧
前文中,我们已经介绍了 Prompt 调试的主要步骤,也是一条标准的工作流,可以帮助我们从 0 到 1 的完成 Prompt 的编写和调试:“Prompt 框架” – “细化框架” – “增加更多信息” – “CoT”。而正如开篇时提到的,Prompt 相关的技巧已多如牛毛,并且一直随着模型的迭代而不断更新,我们前文中讲的是 “Prompt 工程” 的主要步骤和思想,而在其之上,还是有不少技巧可以进行进一步的优化,下面我选择其中最重要的几点展开聊聊。
6.1 用参数控制模型确定性
除了调整模型的输入外,大家一定注意到了大模型还有2个参数可以调节:温度(Temperature),Top-P。这两个参数也与大模型效果息息相关,控制着大模型输出的确定性。大模型的本质是在 Token 的概率空间中进行选择,依据概率选择接下来要输出的 Token,而这 2 个参数就是在控制这个过程。
Temperature(温度)是一个正实数,用于控制生成文本的随机性和多样性。在生成过程中,模型会为每个可能的下一个词分配一个概率,而调整温度,则可以影响这些概率分布的形状。当温度接近 0 时,输出文本会变得更加确定,模型更倾向于选择具有较高概率的词,这可能导
致生成的文本质量较高,但多样性较低。当温度接近 1 时,输出文本的随机性增加,模型会更平衡地从概率分布中选择词汇,这可能使生成的文本具有更高的多样性,但质量可能不如较低温度时的输出。温度大于 1 时,输出文本的随机性会进一步增加,模型更可能选择具有较低概率的词。
Top-p 是一个 0 到 1 之间的实数,表示另一种生成策略,它根据概率分布的累积概率来选择候选词。具体来说,模型将根据词汇的概率对其进行排序,然后选择一个子集,使得这个子集的累积概率至少为 p。当 p 接近 1 时,生成的文本将包含几乎所有可能的词汇,导致较高的随机性和多样性。当 p 较小时,生成的文本将仅包含具有较高概率的词汇,降低随机性并提高输出质量。然而,过低的 p 值可能导致模型过于保守,生成的文本过于重复或单调。
为了了便于理解,我们可以举一个抽象的例子,帮助大家理解。假设我们有一个语言模型,它正在预测句子中的下一个单词。我们输入的句子是我喜欢吃苹果和____,那么模型可能会为香蕉分配 0.4 的概率,为橙子分配 0.2 的概率,为鸭梨分配 0.2 的概率,为白菜分配 0.1 的概率,为萝卜分配 0.1 的概率。
假如我们设定Top-P = 0.8,则我们会按照概率大小选择尽可能多的词,并让概率的总和小于 0.8。因此我们会选择 “香蕉”,“橙子”,“鸭梨”,而如果再加上 “白菜” 则累计概率会超过阈值 0.8。
最后模型会在 “香蕉”,“橙子”,“鸭梨” 中随机选择一个单词。在这个例子中,我们有 50% 的几率会选择 “香蕉”,25% 的几率选择 “橙子”,25% 的几率选择 “鸭梨”。这一步中的概率还会被 “Temperature(温度)” 所影响。
总结而言,温度(Temperature)和 Top-p 是对模型输出确定性的控制,我们可以根据具体的应用场景进行调试,当我们需要模型确定稳定的产出结果是,我们可以设置更高的确定性,以提升模型应用的稳定性。但当我们需要模型提供多种结果,或希望让模型更具想象力时,我们则需要设置更高的多样性。
6.2 让大模型帮你优化 Prompt
我们可以使用各种技巧优化我们的 Prompt,那大模型可不可以帮我们自动优化我们的 Prompt 呢?这个研究方向自 ChatGPT 以来就一直得到大量关注,且在大模型时代得到了越来越多的应用,他不光可以对已有的 Prompt 进行优化,还可以自动找到一些 Prompt 语句,神奇的产生通用的效果。例如,在 “Zero-Shot COT” 里的那句 “Let’s think step by step”,谷歌就曾通过这种方式找到了更好的一句:“Take a deep breath and work on this problem step-by-step”,让 GSM8K 的结果直接从 71.8% 上升到了 80.2%。这个研究方向还在快速的发展当中,已经诞生了多种算法,下文将挑选其中最经典的几个算法,希望可以让大家更好的了解这个领域。
APE 是其中最经典的算法,核心思路是:从候选集中选出若干较好的 Prompt,再在这些 Prompt 附近进行 “试探性搜索”。其过程为,先通过大模型生成若干 Prompt,再在训练集上打分,保留较好若干条的 Prompt,最后在这些高分 Prompt 附近进行采样,模拟 “Monte-Carlo Search” 的过程,优化得到最理想的 Prompt。
APO 算法则是引入了 “梯度下降” 的方法,通过训练集得到当前 Prompt 的梯度,在应用“梯度下降”的方式得到新的 Prompt,最后与 APE 一样进行采样,得到最终的 Prompt。
OPRO 算法则是更复杂的利用 LLMs 作为优化器。与传统的迭代优化技术不同,OPRO 采用自然语言描述和指引优化任务,通过 LLMs 的指导,结合先前找到的解决方案,不断生成更新的策略。
6.3 更多技巧
如本文开篇提到的,本文尝试结合我们的研发经验,体系化的梳理 “Prompt” 相关工作,尝试用一套通用的框架,对 Prompt 工程的相关工作进行梳理和总结。但也正如本章的用意,在统一的框架之外还有各种技巧,可以起到锦上添花的作用,这部分技巧无论是公司内外都积累了很多文章,且由于技巧过多,因此在本文没有展开讨论,此处总结其中的 3 个重要方法,在我们的实践中起到了不小的作用:
自我一致性:多让模型输出多个回答,然后在 LLM 的多次回答中选择出现多次的答案。
反思:通过让大模型评估自己的输出进行调整,得到更优的输出。
知识生成:让大模型生成问题相关的知识,再提出问题,提高大模型回答的准确率。
对于这部分技巧,如果有机会将用一篇单独的文章介绍,本篇文章不再展开,如果大家对这些方法感兴趣可以学习传播最广的 Prompt 知识库,Prompt Engineering Guid。
优化方式及常用指标
本文一直在是希望向大家介绍 “Prompt” 调试的方法,而 “Prompt 调试” 本质上是为了让模型在任务中有更好的效果,而这就涉及到效果的评估,当我们对 “Prompt” 进行了一次更新,我如何判断模型效果是不是变好了呢?对 AI 技术有所了解的同学想必对这部分十分熟悉,但对于没有接触过 AI 技术的同学,还是有必要补充一些和模型调试相关的基本知识,辅助大家更好的完成模型调试的工作。
要判断大模型的效果,首先需要有数据作为支撑,其次还需要确定衡量效果的指标。计算大模型在测试数据上的指标是判断大模型效果的依据,这里我提供一些常用的指标,用来衡量大模型在各类任务中的效果。
分类问题
准确率:分类正确的样本占总样本个数的比例。
精确率(Precision):又称为查准率,分类正确的正样本占判定为正样本个数的比例。
召回率(Recall):又称为查全率,分类正确的正样本占真正的正样本个数的比例。
F1 Score:是精确率和召回率的平衡,最常用的评价指标。
生成问题
BLEU:比较生成数据和标注数据中 n-gram 的重合程度。
METEOR:与 BLEU 相比不仅考虑了精确度和召回率,还考虑了生成结果的词序。
困惑度(Perplexity):所有测试样本的交叉熵损失求平均后取指数,用于衡量模型对测试数据的预测能力。困惑度越低,说明模型的预测能力越好。
采纳率:对于生成任务而言,往往没有明确的预期结果,更多采用人工采纳比例作为评价指标,更细的可以分为“直接可用率”和“修改后可用率”。
对于专项任务而言,每个任务在调试前都需要准备自己独立的数据集,包含与每一个输入对应的预期结果,不同的指标代表用不同方式评估 “预期结果” 和 “实际结果” 的相似度。而对于一些通用的 NLP 能力而言,业内也有一些开源数据集,被用于衡量模型各项通用能力的效果(文本摘要,语义理解,对话,e.t.c.),如果你正在调试一项通用能力,或没有足够的任务数据,就可以利用这些数据集,我在这里也挑选其中一部分做一个简单的介绍:
英文数据集
GLUE Benchmark: 一个集成了九个独立任务的评估工具,用于测量模型对英文句子的理解能力。它包括语义角色标注(SRL)、自然语言推理(NLI)、语义文本相似性(STS)等任务。
SuperGLUE Benchmark: GLUE 的后继者,SuperGLUE 包括更复杂的语言理解任务,如多源自然语言推理、词汇互推任务等。
SQuAD:一个用于机器阅读理解的数据集,包含由维基百科文章生成的问题和答案。
CoQA:一个对话型问答数据集,用于测试模型在对话环境中的理解能力。
MNLI:一个用于自然语言推理(NLI)任务的大规模数据集,包含在多种不同领域和类型的文本中进行推理的任务。
CommonsenseQA:一个问题回答数据集,主要测试模型的常识理解能力。
RACE:一个阅读理解数据集,包含了从英语考试中提取的大量文章和问题。
Winograd Schema Challenge:一个用于测试模型在处理需要常识和推理能力的句子解析问题上的表现。
GSM8K:一个小学数学文字题的数据集。该数据集被创建出来,是为了支持回答那些需要多步推理的基本数学问题的任务。
MAWPS:一个在线的数学词问题仓库,旨在为评估不同的算法提供一个统一的测试平台。它允许自动构建具有特定特征的数据集,提供了调整数据集的词汇和模板重叠以及过滤来自网上语料库的不合语法问题的工具。
SVAMP:一个面向小学级别的数学词问题(MWP)的挑战集。每个 MWP 都包含一个简短的自然语言叙述,描述了世界的状态并提出了一些未知数量的问题。SVAMP 中的例子在解决 MWP 的不同方面测试一个模型,比如问题敏感性和强大的推理能力。
中文数据集
ChineseGLUE: 一个与英文 GLUE 类似的中文 NLP 评估工具,包含了多种中文语言理解任务。
LCQMC: 一个大规模的中文问题匹配数据集,主要用于研究和改进中文的问答系统。
DuConv: 一个中文对话系统数据集,用于构建对话系统的中文数据集,其特点是能够产生多轮对话。
WebQA: 一个大规模的中文问答数据集,主要包括以自然语言形式提出的问题和对应的答案。
CMRC 2018: 一个大规模的中文机器阅读理解数据集,类似于英文的SQuAD。
写在最后
8.1 总结
本文尝试结合我们的研发经验,体系化的对 “Prompt 工程” 的相关工作进行了梳理,得到了一个标准化的工作流,帮助大家可以从 0 到 1 的完成一个 Prompt 的书写和调试,并通过这样结构化的拆分,增强对 Prompt 的管理。我们的工作流可以分为 5 步,对应于文章 “第 2 节-第 6 节” 的 5 个章节:
通过 Prompt 模版写出第一版 Prompt。
细化模版各部分内容,整理 Prompt 格式。
使用 RAG 增加更多信息(few-shot,记忆,专业知识)。
利用 CoT 增强模型推理能力。
利用更多技巧不断优化。
我们认为在一个大模型工程中,“Prompt”应该起到基石般的作用,有效稳定可扩展。对于一个大模型工程师而言,“Prompt” 也是必备的基础技能,希望可以通过这篇文章帮助大家更简单的上手 Prompt 的相关工作,让每个人都能编写 Prompt,人人都能成为 Prompt 工程师。
8.2 后续规划
本文通过对 “Prompt” 工作的拆分和总结,体系化的介绍了 “Prompt 工程” 的工作方法,提出了一套通用的框架和工作流,帮助大家完成 “Prompt” 的编写和调试工作,这套方法也已经在我们的实际工作中应用落地。
从技术角度讲,大模型相关的研发工作可以大体分为3部分 “输入” – “推理” – “训练”,本文聚焦在单模型的 “输入” 部分,对 “Prompt 工程” 相关的技巧进行了探讨。但仅仅在输入层面进行调试是远远不够的,推理部分也是影响大模型效果的关键一环,“Agent 技术”,“多模型协作”,“模型调度” 等等话题对大模型效果有着至关重要的影响。
因此,后续我会聚焦在模型推理的部分,以 “Agent 技术” 作为重点,展开讨论“模型推理”,“模型调度” 相关的话题,对“LangChain”,“Dify” 等推理框架,以及 “Agent” 常用框架进行探讨,依然从应用角度出发,探讨我对这些技术的思考,以及如何在应用中快速落地。
Gemma 2-2B 端侧模型正式发布;扎克伯格:Llama 4 需要十倍以上的算力
一分钟速览新闻点!
Gemma 2-2B 开源端侧模型正式发布
马斯克 xAI 欲收购角色扮演聊天机器人开发商 Character.AI
上海人工智能实验室开源 AI 搜索框架 MindSearch
Salesforce AI 开源大型多模态交织数据集 MINT-1T
苹果发布 Apple Intelligence 开发者预览版
Meta AI 推出视频/图像分割模型 Segment Anything Model (SAM) 2
Meta AI 推出个性化 Agent 平台 AI Studio
扎克伯格:训练 Llama 4 所需算力几乎是 Llama 3.1 的 10 倍
Meta 因未经用户许可使用面部识别技术向德州支付 14 亿美元
每月花费近 2000 万美元,消息称 TikTok 成为微软 AI 服务最大客户之一
Reddit CEO:微软等公司必须付费才能抓取数据,“封锁这些公司真是一件痛苦的事情”
国内外 AI 要闻
Gemma 2-2B 开源端侧模型正式发布
近日,Google DeepMind 正式发布 Gemma 2-2B 模型并开源。该模型具有更小、更安全的特点,性能出色,能与规模大 10 倍的模型相匹敌,超越了 GPT-3.5-Turbo 和 Mistral-8x7b。它基于 NVIDIA TensorRT-LLM 库优化,在 lmsys 榜单中获得第 47 名,超过了 GPT-3.5-Turbo 的第 51 名和 Mistral-8x7b 的第 56 名。
项目链接:https://huggingface.co/collections/google/gemma-2-2b-release-66a20f3796a2ff2a7c76f98f
马斯克 xAI 欲收购角色扮演聊天机器人开发商 Character.AI
据悉,埃隆·马斯克的 xAI 已与人工智能初创公司 Character.AI 就收购展开讨论。Character.AI 去年曾进行估值超 50 亿美元的融资谈判,马斯克为 xAI 筹集约 60 亿美元,其估值达 240 亿美元。Character.AI 由谷歌校友创立于 2021 年,服务特色是允许用户创建定制聊天机器人。目前双方谈判进展不明。
上海人工智能实验室开源 AI 搜索框架 MindSearch
近日,上海人工智能实验室开源了性能匹敌 Perplexity Pro 付费级别的 AI 搜索框架 MindSearch,并提供了 Demo 和代码。MindSearch 能够浏览数百个网页来深入理解和回答问题,动态构建思考图谱,还会将用户查询分解为原子子问题并逐步扩展图。它支持解决生活中的各类问题,在深度、广度、真实性上超越 ChatGPT-Web 和 Perplexity.ai (Pro)。MindSearch 拥有优化的 UI 体验,提供多种接口,能基于多代理反思机制提高可信度和可用性。
代码链接:https://github.com/InternLM/MindSearch
论文链接:https://arxiv.org/abs/2407.20183
Salesforce AI 开源大型多模态交织数据集 MINT-1T
Salesforce AI 开源了名为 MINT-1T 的多模态交织数据集。它规模庞大,包含一万亿个文本标记和 34 亿张图像,比现有开源数据集大 10 倍。其数据来源广泛,涵盖多种文档。在构建中遵循规模和多样性原则,收集处理精细,过滤全面。使用该数据集预训练的模型在评估中表现出色,对其的深入分析也显示出显著优势,有望为相关研究和应用带来重要价值。
代码链接:https://huggingface.co/collections/mlfoundations/mint-1t-6690216ca4d0df7e518dde1c
论文链接:https://arxiv.org/abs/2406.11271
苹果发布 Apple Intelligence 开发者预览版
近日,苹果发布了 Apple Intelligence 的开发者预览版,iPhone 15 Pro、iPhone 15 Pro Max 及部分 Mac 和 iPad 设备可使用,但部分功能暂不可用,欧洲和中国用户设备暂不支持。苹果发布技术报告,称基础模型在 Google 定制 Tensor 处理单元预训练,租用云服务提供商服务器计算。该系统在全球开发者大会发布,深度集成多种系统,有多任务处理等特性,核心模型包括两种主要类型。
Meta AI 推出视频/图像分割模型 Segment Anything Model (SAM) 2
Meta AI 推出新一代的 Segment Anything Model (SAM) 2,在视频和图像对象分割上功能强大。它能实时精确分割,在多个领域有广泛应用,性能卓越,在多数据集上优于以往。其架构先进,引入内存机制保持分割的一致性和准确性。开源代码和权重,提供丰富数据集。在公平性和人机交互效率方面表现出色,大幅减少视频分割的交互时间。
模型下载:https://github.com/facebookresearch/segment-anything-2
论文链接:https://ai.meta.com/research/publications/sam-2-segment-anything-in-images-and-videos/
Meta AI 推出个性化 Agent 平台 AI Studio
近日,Meta AI 推出了基于 Llama 3.1 的 AI Studio 平台。该平台让任何人无需技术技能就能轻松创建定制的 AI 角色,包括创作者 AI 和基于兴趣的角色。用户可创建、自定义,从模板开始或从零设计,设置名字、性格等,还能选择训练内容。创建的角色能分享,也能发现他人的角色并互动。此平台可用于教学、社交管理等领域,有自动回复和个性化互动功能,帮助创作者扩大影响力,相关链接也已给出。
扎克伯格:训练 Llama 4 所需算力几乎是 Llama 3.1 的 10 倍
Meta 第二季度盈利延续良好态势,上季度营收超 390 亿美元,利润约 135 亿美元,用户使用活跃。CFO 表示 AI 投资回报需长期等待,扎克伯格愿提前投资基础设施。Meta AI 助手有望年底成为全球使用最多的助手,未来真正收入将来自商业应用。
值得关注的是,Meta AI 近期已在准备训练 Llama 4,扎克伯格希望其明年推出时成为业内“最先进”模型,但他同时表示,训练 Llama 4 所需计算量几乎是 Llama 3.1 的 10 倍。此外,Quest 3 销售超预期,Threads 即将拥有 2 亿月活用户,Facebook 在年轻人群体中重新增长。
Meta 因未经用户许可使用面部识别技术向德州支付 14 亿美元
Meta(前 Facebook)同意支付 14 亿美元与德克萨斯州和解,此为该州与单一公司达成的最大和解协议,用以解决未授权使用用户生物特征数据的隐私诉讼。此前,该公司已根据类似指控在伊利诺伊州达成 6.5 亿美元和解。德克萨斯州共和党总检察长肯・帕克斯顿表示,这一和解体现了对科技公司违法行为的严肃处理。Meta 表示问题已得到解决,并希望在未来加深在德克萨斯州的投资,包括开发数据中心。诉讼指控 Meta 违反了禁止未经同意获取或出售生物特征信息的州法律。此外,Meta 在 2021 年关闭了人脸识别系统并删除了超过 10 亿人的脸部指纹数据,当时有超过三分之一的使用者选择了面部识别功能。
每月花费近 2000 万美元,消息称 TikTok 成为微软 AI 服务最大客户之一
有消息称,截至今年 3 月份,TikTok 每月向微软支付近 2000 万美元,以通过微软购买 OpenAI 的模型。这笔金额几乎占据了微软 AI 收入的四分之一,也使 TikTok 成为微软 AI 服务的最大客户之一。在全球云计算市场的竞争中,微软通过整合 OpenAI 的人工智能技术,成功地将其云服务转化为一项利润丰厚的业务。微软的云 AI 业务有望实现年收入 10 亿美元(当前约 72.48 亿元人民币),但该报道指出,如果 TikTok 开发出自己的大型语言模型,它可能不再需要如此大量地依赖这些(来自微软的)能力。(The Information)
Reddit CEO:微软等公司必须付费才能抓取数据,“封锁这些公司真是一件痛苦的事情”
Reddit CEO 史蒂夫・霍夫曼近日表示,如果微软等公司希望继续抓取该网站的数据,就必须付费。此前,Reddit 已经与谷歌和 OpenAI 达成协议。霍夫曼指出,如果没有这些协议,Reddit 无法控制或了解其数据的使用方式,这迫使他们不得不屏蔽那些不愿意接受数据使用条件的公司。他特别点名了微软、Anthropic 和 Perplexity 三家公司,称他们拒绝谈判,并称封锁这些公司“非常麻烦”。
大模型产业吸金能力凸显,半年融资超2300亿元;GPT-4o Long Output模型发布,支持超长文本输出
🌟 微软AI服务迎来大客户:TikTok每月花费近2000万美元
微软的AI服务迎来了一个重量级客户——TikTok。据报道,TikTok每月向微软支付近2000万美元,以获取OpenAI的模型。这笔交易几乎占微软AI收入的四分之一,使TikTok成为微软AI服务的最大客户之一。然而,随着字节跳动正在尝试构建自己的AI模型,TikTok可能会减少对微软AI服务的依赖。这一动态反映了AI领域快速发展中的常见现象,即客户在获得必要的技术后,可能会寻求自给自足。
🔎 360安全大模型免费,助力企业提升安全防护
360集团创始人周鸿祎在互联网安全大会上宣布,360安全大模型将免费提供给所有购买360标准产品的用户。此举旨在打破大模型的高价壁垒,让每个企业都 能“用得起、用得好”。360全线安全产品已集成安全大模型的能力,产品加量不加价,体现了360为国家、用户、客户解决问题的决心。
🤖 OpenAI向部分用户开放GPT-4o语音模式 今秋将扩大至所有付费用户
OpenAI宣布,从即日起开始向部分ChatGPT Plus用户推出GPT-4o的语音模式。这一高级语音模式能提供更自然的实时对话体验,允许用户随时打断,并能感知和响应用户的情绪。尽管最初功能有限,如无法使用计算机视觉功能,但GPT-4o语音模式的推出标志着AI技术在语音交互领域的重大进步。OpenAI计划在今年秋季将这一功能扩展至所有付费用户。
🔎 阿里巴巴推出AI对话式采购引擎,助力中小企业采购革新
阿里巴巴国际数字商业集团宣布,将于9月推出人工智能对话式采购引擎,旨在改变中小企业的全球采购流程。这项新服务将整合所有电商平台,通过理解自然语言并转化为专业采购请求,同时预测采购需求并提供建议。此举预计将大幅提升B2B电商的效率和便捷性,为中小企业带来福音。
📊 为测试聊天机器人 Grok,消息称马斯克的 xAI 考虑收购 Character.AI
据The Information报道,马斯克的人工智能初创公司xAI考虑收购聊天机器人制造商Character.AI,以便测试其Grok聊天机器人。尽管讨论可能不会促成交易,但这一消息反映出AI领域资源争夺的激烈程度。xAI与Character.AI的合作谈判,以及Meta与Character.AI的潜在合作,都显示了大型科技公司对AI初创公司的兴趣,以及它们在AI资源上的竞争态势。
📰 巴西政府斥资近41亿美元投资AI,追求技术自主与竞争力提升
巴西政府宣布了一项约40.7亿美元的人工智能投资计划,旨在开发可持续、面向社会的技术,并在AI领域实现技术自主,提高国家竞争力。该计划预计将为公共卫生、农业、环境、商业和教育等多个部门提供资源,支持AI系统的开发,促进消费者服务和其他操作程序的改进。巴西希望通过这一大规模投资,减少对外国AI工具的依赖,推动国内AI技术的发展。
📍大模型产业吸金能力凸显,半年融资超2300亿元
2024年上半年,全球大模型产业相关企业的融资事件达到120起,融资总额超过2300亿元。美国和中国在融资数量和金额上遥遥领先,分别有59起和35起亿元级融资,融资总额分别为1834.38亿元和304.58亿元。大模型应用领域的企业数量最多,而AI Infra领域的企业则在单笔融资金额上表现突出。中国大模型产业虽在融资总额上不及美国,但小额融资活跃,显示出强劲的市场潜力。
🚀 GPT-4o Long Output模型发布,支持超长文本输出
OpenAI推出了GPT-4o Long Output模型,支持高达64k tokens的长文本输出,相当于约200页小说,是原模型输出能力的16倍。然而,输入上限降至64k tokens,用户需在输入和输出长度间做出选择。该模型定价为每百万输入tokens 6美元,输出tokens 18美元,为测试模型,测试时间会维持数周,名为GPT-4o-64k-Output-Alpha。
🌟 Midjourney v6.1发布,图像生成质量大幅提升
Midjourney发布了v6.1版本,带来了八大方面的升级,包括更强的一致性、更高的图像质量、更准确的细节理解等。新版本在人像生成方面表现出色,几乎无可挑剔,生成的物体也更加合理。然而,在多人场景的生成上仍存在挑战,如群像生成时人物的四肢数量和方向会出现错误。Midjourney表示,v6.2版本预计下月发布,将进一步提升文本处理能力。
📂 Kimi联合AiPPT推出-键生成PPT服务
Kimi PPT助手是月之暗面联合AiPPT推出的一键生成PPT服务。用户只需通过语音或文字指令,Kimi就能理解需求,自动生成幻灯片,提供布局和色彩搭配建议,帮助用户快速创建和设计PPT。Kimi还能根据用户反馈进行多轮对话,优化演示内容,确保PPT既专业又个性化。使用KimiPPT助手,用户可以节省大量时间,同时提高演示的专业度和吸引力。
🪙 根据词语使用模式进行判断,日立开发可识别文章是否由 AI 创作的技术
日立制作所开发出了一项新技术,能够根据文章中的词语使用模式判断文章是否由生成式AI创作。这项技术有助于防止AI制造的错误信息传播,并帮助企业在撰写重要文件时规避侵犯著作权等风险。通过分析文章中基于规则的词语使用情况,日立的新技术能够提高判断的准确性,为AI内容的监管提供了有力工具。
🌐 星尘智能获数千万美元Pre-A轮融资,引领AI机器人技术革新
AI机器人公司星尘智能(Astribot)宣布完成数千万美元Pre-A轮融资,由经纬创投领投,道彤投资及清辉投资等产业资本跟投,老股东云启资本跟投。本轮融资将用于顶尖人才招募、研发投入、商业化部署等工作。星尘智能致力于研发“新一代最强AI机器人助理”,能自主完成叠衣、分拣物品、颠锅炒菜等复杂任务,并通过持续学习进化,全面提升智能化和多任务泛化能力,逐步实现通用智能。
💡 英伟达黄仁勋展望AI未来:每个人都将拥有AI助手
在SIGGRAPH 2024大会上,英伟达创始人兼首席执行官黄仁勋与《连线》杂志资深撰稿人探讨了AI增强人类生产力的未来。黄仁勋强调,深度植根于视觉计算的生成式AI正在增强人类的创造力,而加速计算有望显著提高能源效率。他预言,不久的将来,每个人、每家企业、每个岗位都将拥有AI助手,AI技术的进步将在各行各业得到广泛应用。
危!「邪恶版」ChatGPT 出现:每月 60 欧元,毫无道德限制,专为“网络罪犯”而生?
近几个月来,伴随着 ChatGPT 的热度暴涨,OpenAI 也不断因 AI 的道德问题和数据安全隐患遭到多方质疑,甚至上周还受到了美国联邦贸易委员会(FTC)的正式调查——这也是美国监管机构首次正式发起对 AI 聊天机器人风险的审查。
而正当 OpenAI 因 ChatGPT 疲于应对各方审查时,一款“没有道德界限或限制”的「邪恶版 ChatGPT」悄然在网络上蔓延:WormGPT。
(图片来源:Hacking forum)
「邪恶版 ChatGPT」,每月 60 欧元
根据网络安全公司 SlashNext 博客报道,其团队在研究生成式 AI 在网络犯罪方面的潜在风险时,偶然发现了 WormGPT:“我们最近通过一个与网络犯罪有关的著名在线论坛获得了一个名为 ‘WormGPT’的工具,它是一个 GPT 模型的黑帽替代品。”
据了解,WormGPT 的收费标准是每月 60 欧元(约人民币 479 元),而 SlashNext 对 WormGPT 的形容是:“专为恶意活动而设计”,简直是“网络罪犯的武器库”。
WormGPT 由一位胆大的黑客设计,他写道:“这个项目(WormGPT)旨在提供 ChatGPT 的替代方案,让你做各种非法的事情,你能想到的所有与黑帽相关的事情,都可以用 WormGPT 完成。”为了证明他的说法,他还上传了相关截图,显示用户可要求机器人生成用 Python 编码语言编写的恶意软件。
WormGPT 基于 2021 年开源的 LLM GPT-J 模型开发,工作方式与 ChatGPT 大致相同:可处理人类自然语言提出的要求,并输出所要求的任何内容,包括故事、摘要和代码。但与 ChatGPT 或 Bard 不同的是,WormGPT 不用像 OpenAI 或谷歌这样的大型公司那样,必须要承担相关的法律义务。
据 SlashNext 介绍,WormGPT 在各种数据源上进行训练,尤其集中在恶意软件相关的数据上,加上输出没有道德限制,可以被要求执行各种恶意任务,包括创建恶意软件和“一切与黑帽有关的事情”,对于网络犯罪分子而言无疑是一大利器。
对于 WormGPT,NordVPN 网络安全专家 Adrianus Warmenhoven 的评价是“ChatGPT 的邪恶双胞胎”,因为它显然是从 OpenAI 对 ChatGPT 不断施加限制、而攻击者极力规避这些限制才衍生出来的。
为了全面评估 WormGPT 相关的潜在危险,SlashNext 团队进行了以 BEC 攻击(商业电子邮件泄露,一种通过电子邮件进行的社会工程学攻击,攻击者一般会伪造电子邮件消息以诱骗受害者执行某些操作)为重点的测试:“在一次实验中,我们要求 WormGPT 生成一封电子邮件,内容是向毫无戒心的账户经理施压,迫使其支付虚假发票。”
WormGPT 的输出结果令 SlashNext 直呼危险:“结果令人非常不安。WormGPT 生成的电子邮件不仅极具说服力,而且在战略上也非常狡猾,展示了它在复杂的网络钓鱼和 BEC 攻击中的无限潜力。”
AI 加持下,新手将轻易实现诈骗
通过上面这个测试,SlashNext 总结道,类似于 WormGPT 这样的生成式 AI 技术可能会带来巨大威胁,因为有了这类工具的加持后,就连网络犯罪新手都能轻易实现诈骗。
以 BEC 攻击为例,使用生成式 AI 具有以下两大优势:
(1)卓越的语法:生成式 AI 可以创建在语法上无懈可击的电子邮件,使其看起来合法合理,被系统标记为可疑邮件的可能性会大幅降低。
(2)降低犯罪门槛:生成式 AI 的出现,极大简化了原本复杂的 BEC 攻击,即便是技术有限的攻击者也能使用生成式 AI,它将成为越来越多网络犯罪分子可以使用的工具。
不过同时,针对生成式 AI 可能引发的大范围 BEC 攻击,SlashNext 也建议了两种防范策略:
(1)进行 BEC 专项培训:公司应制定广泛的、定期更新的培训计划,以应对 BEC 攻击,尤其是由 AI 增强的攻击,要让员工了解到 BEC 攻击的威胁,以及 AI 将如何加大这种威胁的原理。
(2)强化电子邮件的验证措施:为防范 AI 驱动的 BEC 攻击,企业应执行严格的电子邮件验证流程,例如当有来自组织外部的电子邮件冒充内部高管或供应商时,系统要自动发出警报等。
AI 领域仍存在不少挑战和局限性
而事实上,除了上文提到的 WormGPT 编写恶意软件、助力 BEC 攻击以外,上个月 ChatGPT 的“奶奶漏洞”也证实了一个事实:尽管 OpenAI 等公司都对 AI 技术做出了许多限制措施,但目前还是无法完全避免这类漏洞的出现。
上个月,一位名为 Sid 的用户发现,只要让 ChatGPT 扮演其过世祖母讲睡前故事,就能顺利骗出 Windows 10 Pro 密钥。
经过 Sid 的分享后,越来越多用户发现了这个漏洞,并开始尝试欺骗 ChatGPT 报出 Windows 11 序列号,其中许多人都成功了。据了解,虽然这些密钥大多是无效的,但有少量序列号也确实是真实可用的。
不论是 ChatGPT 的“奶奶漏洞”,还是“网络犯罪分子专用”的 WormGPT 的出现,都证明了至少现阶段 AI 领域仍存在不少挑战和局限性。为此,一方面,研究人员需继续深入相关技术,在提高数据质量、优化算法的同时,充分考虑伦理道德层面的影响。另一方面,作为用户的我们也应时刻保持谨慎,避免对 AI 产生过度依赖。
参考链接:
https://slashnext.com/blog/wormgpt-the-generative-ai-tool-cybercriminals-are-using-to-launch-business-email-compromise-attacks/
https://www.pcgamer.com/chatgpts-evil-twin-wormgpt-is-devoid-of-morals-and-just-dollar60-a-month-on-the-darkweb/
要想赚钱,AI模型该大该小?贾扬清:论AI模型经济学的技巧
作者丨刘洁
编辑丨岑峰
最近的AI社区,关于模型规模的讨论有些活跃。
一方面,此前在大模型开发奉为“圣经”的Scaling Law,似乎正在褪去光环。去年大家还在猜测GPT-5的规模“可能会大到想不到”,现在这种讨论几乎绝迹。大神Andrej Karpathy,则是在感慨大模型规模正在“倒退”。
另一方面,近期市场上性能优秀的小型模型层出不穷,参数规模、任务处理、反应速度、安全性能,各公司在不同方面卷了又卷。
究竟是往大做探索极限,还是往小做迎合市场?
这最终汇总成一个问题:在这样模型快速更迭的市场中,要怎么才能把LLM模型的商业价值最大化?
唯快不破的模型业态
最近发起讨论的是X.ai创始成员之一的Toby Pohlen。他认为如果模型以指数级速度改进,那么训练模型的价值也会以指数级速度折旧。这也导致人们需要赶在模型更迭前就迅速采取行动获取商业价值,一旦模型产生更新,上一代模型就基本一文不值了。
Toby的这番言论深得老板Elon Musk之心,大笔一挥打了一个“100分”。
贾扬清也参与到了这场讨论中来,他用感恩节火鸡做了一个有趣的比喻。他提出,售卖模型就像是感恩节火鸡促销,必须在感恩节前夕抓紧时间售卖,避免在感恩节到来后的贬值。新模型的技术更新就是一个又一个感恩节,只有销售得更快才能赚到更多的利润。
(emmm…如果对火鸡不好了解,换成中秋节前抢月饼的故事大家或许应该容易理解一些?)
评论区也有不少人表达了对此观点的赞同。
有人说只要不断地开发新产品和迭代新模型,就能从中持续获得商业价值。
还有人说,模型改进的频率将直接决定模型本身的商业价值。
但是,模型的商业价值由什么决定,又该如何实现?
模型发展在走CNN老路吗?
模型必须做小,用起来才顺手。
比起大型模型,小型模型成本低应用便利,更能收获商业市场的青睐。贾扬清就发现,行业趋势在于研发和使用尺寸更小性能强大的模型,人们也更愿意把规模参数在7B-70B之间的中小型模型作为商业使用的选择。
作为前大模型时代的亲历者,贾扬清在当下LLM模型市场上嗅到了熟悉的味道,先变大再变小变高效,这和CNN时期的模型发展简直一模一样。
贾扬清还对CNN的发展历程做了一个简单的介绍。
贾扬清还介绍了CNN的一个有趣的应用,Google的MobileNet(2017),占用空间小性能优越,还具有出色的特征嵌入泛化。
最后,贾扬清引用了Ghimire 等人在《高效卷积神经网络和硬件加速调查》里的一张图:
他还进一步发问,LLM模型未来会遵循和CNN一样的发展趋势吗?
大型模型的盈利思考
不过贾扬清也补充道,虽然行业趋势是模型小型化,但并不意味着号召大家放弃尺寸更大的模型。
但这随之而来的是另一个问题:大型模型的成本会更高。
此前也有人提出质疑,对大型模型服务商的运营成本和营运收益做了简单的计算,每天8张H100显卡运营节点的成本约为1000美元,每天可以提供2600万token的服务,但按Llama 405B每一百万token 3美元的价格,怎么算都是亏本的,无法盈利的大型模型不会被市场抛弃吗?
贾扬清表示,哎你说这个我就不困了,我熟我来说:)
贾扬清认为,虽然每个请求大约每秒输出30个token,但通过批量处理(同时处理多个请求)可以显著提高总吞吐量,可以达到比单个请求高出10倍或更高的吞吐量。
同时他还指出,每秒大约30个token指的是输出token,大模型对于输入token的处理速度更快,这也增加了处理的总token数,大模型通常对输入和输出分别计费,也正是这个道理。
在后续的另一个回复,贾扬清做了更详细的量化计算:
收入798.34美元,成本670.08美元,因此通过整合多种技术方法,在合理流量下(像Lepton这样的大模型技术服务商)是可能盈利的。
当然,这只是一个简单的推算,实际的盈利还会受到流量稳定性、计费方式、按需使用GPU的机器成本控制、解码、提示缓存以及其他因素的影响。
但某种程度上说,类似深度学习时代对CNN的不断优化,在大模型时代,也需要技术人员对于模型进行种种优化,来保证性能提高的同时不断降低成本,这正是贾扬清看好的创业路线。
One more thing
我们不妨再多讨论一下,对于贾扬清这样的AI Infra创业者,模型大小的潮流变化对他的商业模式有什么影响?
这个问题,要分不同情况分析。
如果模型参数量越大,提供模型服务的门槛越高(参考Llama 405B),其客单价自然也就越大;
另一方面,由于很多小模型实际是在大模型的基础上蒸馏而得到,模型小了,所需的计算资源并没有等幅度减少;
由于较小的模型更容易部署在不同的设备和平台上,这可能会带来应用场景的增加,虽然客单价可能降低,但在需求数量上的增加反而可能使得总收入增加;
对于贾扬清来说,META的开源路线使得贾扬清的服务对象扩大,因此开源对他来说更有利。
看来不管未来模型规模怎么不变化,贾扬清都有机会凭借技术升级稳坐钓鱼台。这有点像之前的中国股市,不管什么消息,都是“利好茅台”啊。
这恐怕就是贾扬清最近在推特上为什么这么活跃发表看法的原因?你看好贾扬清这种AI Infra的创业路线吗?
参考资料:
https://x.com/jiayq/status/1818902164938670206
https://x.com/TobyPhln/status/1818686287475282260
https://x.com/elonmusk/status/1818686692905435406
https://x.com/jiayq/status/1818703217263624385
https://x.com/jiayq/status/1818699120049311883
https://x.com/jiayq/status/1818704837745557912
https://x.com/jiayq/status/1817092427750269348
头图/封面来源于贾扬清X(https://x.com/jiayq/status/1818907312851169748)
截至今年 6 月底,中央企业智能算力规模翻倍增长;谷歌Gemma 2小模型:iPhone也能运行的AI小钢炮
📊 OpenAI 测试长输出版 GPT-4o:单次 64K tokens,每百万 tokens 输入 6 美元、输出 18 美元
OpenAI正在测试长输出版GPT-4o,该版本每次请求最多可输出64K tokens,为用户提供更长的连续文本生成能力。然而,由于长输出版本的推理成本较高,OpenAI对其定价也相应增加,每百万 tokens输入价格为6美元,输出价格为18美元。这一变化可能会对依赖GPT-4o进行大规模文本生成的用户产生影响。
📰 微软将OpenAI列为人工智能及搜索竞争对手
微软在最新提交的10-K文件中,将OpenAI正式列为竞争对手,这标志着两者在人工智能领域的合作关系出现微妙变化。尽管OpenAI发言人表示双方关系未变,微软仍是其良好合作伙伴,但这一变动无疑反映了人工智能领域竞争格局的新动态。同时,OpenAI近期发布的SearchGPT搜索引擎原型也显示了其在搜索市场的雄心,预示着未来可能与微软在搜索广告领域展开竞争。
🌐 OpenAI与美国人工智能安全研究所合作
OpenAI创始人Sam Altman宣布,公司正在与美国人工智能安全研究所进行合作,这一举措旨在加强人工智能的安全性和可靠性。随着人工智能技术的快速发展,确保其安全性已成为业界关注的重点。OpenAI此举不仅展示了其对人工智能安全性的重视,也为整个行业树立了积极的典范,推动了人工智能安全研究的发展。
📍 欧盟《人工智能法案》正式生效,罚款最高达全球年营业额 7%
全球首部全面监管人工智能的法规——欧盟《人工智能法案》已于8月1日正式生效。该法案旨在确保在欧盟开发和使用的人工智能是值得信赖的,并有保障措施保护人们的基本权利。法案对违反规定的公司设定了高额罚款,最高可达全球年营业额的7%。此外,法案还对不同风险等级的人工智能应用提出了具体要求,包括最小风险、特定透明度风险、高风险和不可接受风险四类。
📰 截至今年 6 月底,中央企业智能算力规模翻倍增长
据央视网报道,截至今年6月底,中央企业智能算力规模实现了翻倍增长。工信部的数据显示,智能算力在全国算力总规模中的比重已经超过30%,显示出中国算力结构的不断优化。上海、呼和浩特等地已建成万卡集群,初步实现多元异构算力调度,为大规模应用落地提供了有力支撑。多地也在加快布局人工智能产业新赛道,如北京市计划到2025年底形成3-5个基础大模型产品、100个行业大模型产品和1000个行业成功案例。
📊 我国生成式AI服务大模型超180个,注册用户突破5.64亿
在第十二届互联网安全大会上,中央网络安全和信息化委员会办公室副主任王京涛透露,我国生成式人工智能服务大模型数量已达180多个,注册用户超过5.64亿,显示出我国在该领域的快速发展和广泛应用。王京涛还提出了推进国家网络安全体系现代化的三点建议,强调要加强协调联动、突出重点防护,并夯实工作基础,以构建教育、技术、产业融合发展的良性生态。
🪙 谷歌Gemma 2小模型:iPhone也能运行的AI小钢炮
谷歌DeepMind近日发布了Gemma 2 2B,一款轻量级的小模型,其参数仅为2.6B,却在LMSYS竞技场上超越了GPT-3.5和Mixtral 8x7B。这款模型在MMLU和MBPP基准测试中分别取得了56.1和36.6的优异成绩,相比前代模型性能提升超过10%。Gemma 2 2B不仅能在手机、笔记本等终端设备上运行,还能在云端的强大支持下完成部署。此外,谷歌还推出了基于Gemma 2的安全内容分类器ShieldGemma和可解释性工具Gemma Scope,进一步推动了负责任AI的发展。
🌟 Midjourney新版本上线即爆火!网友已玩疯:和摄影几乎没区别
Midjourney v6.1的发布引发了热烈反响,其生成的图像在真实性、细节和一致性上都有显著提升。新版本在人像处理上的表现尤为出色,几乎无可挑剔。然而,在多人场景的生成上仍存在挑战,如群像生成时的人物扭曲问题。尽管如此,Midjourney的这一重大更新无疑推动了AI绘画技术的发展,使其更接近于传统摄影艺术。
🚀 AI销售助手Sybill融资1100万美元,帮助销售每周节省5小时以上
Sybill,一家专注于为销售代表提供AI助理的初创公司,近日宣布在A轮融资中成功筹集了1100万美元。Sybill的AI助手通过分析通话和电子邮件记录,提供基于上下文的见解和总结,从而减轻销售人员的行政负担。这一策略帮助Sybill迅速打入市场,并获得了500多个付费客户的青睐。随着科技行业整体放缓,Sybill的业务反而因企业寻求成本削减和效率提升而增长。
🔍 Omdia:人形机器人今年迎来突破之年,2027 年全球出货将破万台
市场研究机构Omdia预测,到2027年全球人形机器人出货量将超过1万台,到2030年将达到3.8万台,复合年增长率高达83%。人形机器人被视为下一个重大技术飞跃的代表,其发展受到生成式AI的推动。尽管目前大多数产品仍处于试验或概念验证阶段,但特斯拉、蔚来等公司已在汽车制造领域率先采用。人形机器人在制造业、物流、零售等多个领域展现出巨大潜力。
知识图谱:解锁数据海洋的钥匙,赋能智能决策的新篇章
在数字化转型的浪潮中,数据已成为企业最宝贵的资产之一。然而,面对海量、异构的数据海洋,如何高效地提取、整合并应用这些信息,成为了摆在我们面前的一大挑战。知识图谱,作为大数据与人工智能融合的重要产物,正逐渐成为连接数据孤岛、挖掘数据价值的桥梁。本文将带您深入了解知识图谱的定义、介绍、基本功能、应用场景,并探讨其竞品分析。
定义
知识图谱,顾名思义,是一种以图的形式表示实体、概念及其之间关系的知识库。它利用节点(代表实体或概念)和边(代表关系)来构建复杂的网络结构,从而实现对现实世界知识的结构化表示和存储。知识图谱不仅包含了丰富的实体信息,还揭示了这些实体之间的内在联系,为智能决策提供了坚实的基础。
介绍
知识图谱的构建是一个复杂而精细的过程,涉及数据采集、实体识别、关系抽取、知识融合等多个环节。通过自动化和半自动化的技术手段,知识图谱能够从各种数据源中提取出有价值的信息,并经过清洗、整合后形成统一的知识库。这些知识库不仅包含了基本的实体属性信息,还涵盖了丰富的语义关系和逻辑推理规则,为后续的查询、推理和应用提供了强大的支持。
基本功能
知识图谱的核心功能在于其强大的查询、推理和可视化能力。
查询功能:用户可以通过自然语言或结构化查询语言(如SPARQL)快速检索知识图谱中的信息,获取所需的数据和关系。
推理功能:基于知识图谱中的实体和关系,系统能够进行逻辑推理和假设验证,从而发现新的知识和规律。
可视化功能:通过图形化的方式展示知识图谱的结构和内容,帮助用户更直观地理解复杂的数据关系。
应用场景
知识图谱的应用场景广泛而多样,涵盖了金融、医疗、教育、电商等多个领域。
金融风控:通过构建企业信用、个人征信等知识图谱,金融机构可以更加准确地评估风险,实现精准营销和风险管理。
医疗诊断:医疗知识图谱能够整合患者的病历、检查报告、药物信息等数据,为医生提供全面的诊疗建议和辅助诊断。
智能客服:基于知识图谱的智能客服系统能够准确理解用户的问题和需求,提供个性化的解答和服务。
电商推荐:通过分析用户的购买历史、浏览行为等数据,构建用户画像和商品知识图谱,实现精准的商品推荐和个性化营销。
网址
虽然本文无法直接提供特定知识图谱产品的官方网址,但您可以访问一些知名的科技公司或数据服务提供商的官网,如百度、阿里巴巴、腾讯等,它们均拥有强大的知识图谱技术和丰富的应用场景案例。
竞品分析
在知识图谱领域,国内外已有多家企业和研究机构推出了自己的产品和解决方案。这些竞品在数据规模、构建技术、应用场景等方面各有千秋。例如,百度的“文心大模型”集成了丰富的知识图谱能力,支持跨模态的语义理解和推理;阿里巴巴的“知识引擎”则专注于电商领域的知识图谱构建和应用;而国外的Google Knowledge Graph则在搜索引擎中广泛应用,为用户提供了更加智能化的搜索体验。
面对众多竞品,企业在选择知识图谱解决方案时,应充分考虑自身的业务需求、数据特点和技术实力,选择最适合自己的产品和服务。同时,随着技术的不断进步和应用场景的不断拓展,知识图谱的未来无疑将更加广阔和充满挑战。