六位一线AI工程师总结大模型应用摸爬滚打一年的心得,网友:全程高能!

news2024/11/25 1:04:45

线AI工程师和创业者,把在大模型应用开发上摸爬滚打一整年的心得,全!分!享!了!

(奇怪的六一儿童节大礼包出现了)

这篇干货长文,一时间成为开发者社区热议的话题。

图片

有网友评价为,大模型领域少有的**“有操作性”**的实用见解,非常值得一读。

图片

这6位作者来自不同背景,比如有大厂工程师,也有独立开发者,还有咨询顾问。

但他们的共同之处,是过去一年里一直在大模型之上构建真实应用程序,而不只是炫酷的Demo演示,他们认为:

现在正是非机器学习工程师或科学家,也能把AI构建到产品中的时候。

在他们的一系列分享中,网友热议的亮点包括但不限于:

-何时用长上下文、何时RAG、何时微调模型

  • 多样化输出不止提高温度,改变提示词中示例的顺序也影响结果
  • 长上下文不会让RAG过时
  • “实习生测试”:如果大学生能根据提示词完成任务,说明比较完善了
  • 每个大模型都有自己的偏好,Claude更喜欢XML格式,GPT系列更喜欢Markdown和JSON
  • 如果靠提示词已完成了90%的任务,微调可能就不值得投资
  • 大模型当裁判评估结果可能起作用,但不是万能的
    ……

总之,无论是大厂工程师、创业者还是参加个人开发者,都值得一看。

全程高能干货分享

提示词、RAG和微调都是改善大模型输出结果的有效方法。

但是何时该用何种方法,还没有定论。

作者们认为,需要根据具体的应用场景、任务需求、成本效益和性能目标来做出决策:

  • 建议在开发新应用程序时从提示词开始
  • 需要大模型掌握新知识时优先使用RAG
  • 当需要针对特定任务优化时再考虑微调

最后,他们还重点讨论了对大模型应用的评估和监测,认为是应该贯穿开发全流程的重要环节。

提示词篇

很多开发者都陷入了一个误区:以为设计一个**涵盖一切的“终极提示词”**就能完美解决问题。

就像过去软件开发中也有希望一个类或函数可以完成所有事情的误区。

实际情况恰恰相反,随着需求的复杂化,这样的Prompt会越来越臃肿,性能反而每况愈下。

图片

那么正确的做法是什么呢?提示词也应该像代码一样保持简洁,以会议记录总结场景来说,可以分解为以下步骤:

  • 将关键决策、待办事项和执行者提取为结构化格式
  • 检查提取的详细信息与原始会议记录的一致性
  • 从结构化详情生成简明摘要

图片

通过拆分,每个提示词都简单、突出重点且易于理解,更重要的是接下来可以单独迭代和评估每个提示词。

比如思维链鼓励AI在最终回答之前写下思维过程,除了“一步一步思考”之外,还可以用一些技巧显著降低幻觉。

还以会议记录总结场景为例,迭代后的提示词示例为:

- 首先,在草稿中列出关键决策、待办事项和相关执行者。- 然后,检查草稿中的细节是否与文字记录相符。- 最后,根据要点合成简洁的总结。

图片

在提示词方面,作者们还提出了更多具体经验。

对于给大模型提供示例的上下文学习:

  • 提示词中的示例数量追求≥5(也不要害怕用上几十个)。太少会让模型过度遵循特定示例、损害泛化能力。
  • 示例应该反映预期的输入分布。比如做电影剧情总结,示例中不同类型电影的比例大致应与实践中期望看到的相同。
  • 不一定需要提供完整的输入-输出对。在许多情况下,只有输出的示例就足够了。
  • 如果所用的大模型支持工具调用,则示例也应包含希望AI使用的工具

对于结构化输入输出:

  • 优化上下文结构,让模型更容易理解和处理。单纯打包一堆文件人类看着头疼,AI看着也费劲。
  • 只保留必要信息,像雕刻艺术家一样剔除冗余、自相矛盾和格式化错误
  • 每个大模型都有自己的偏好,Claude更喜欢xml格式GPT系列更喜欢Markdown和JSON

比如给Claude的提示词,甚至可以用xml tag来预填充输出模板。

图片

RAG(检索增强生成)篇

不要忘记关键词搜索

基于Embedding的RAG演示很多,让人们容易忘记信息检索领域数十年来积累的经验。

作者认为向量检索无疑是强大的工具,但不是全部。虽然擅长捕获高级语义相似性,但它们可能难以处理更具体的关键字,比如人名、首字母缩略词或者ID。

不要忘记传统的关键词匹配(如BM25算法),在大多数情况下,混合关键字匹配和向量搜索效果最好:

先匹配最明显的关键词,再对同义词、上位概念和拼写错误做向量查询,以及多模态向量查询。

图片

RAG输出的质量取决于检索文档的质量

具体来说,检索文档的质量又取决于几个因素。

第一个也是最明显的指标是相关性。与传统推荐系统一样,检索到的项目的排名对大模型输出产生重大影响,要衡量这种影响,可以试试打乱顺序并观察大模型行为变化。

第二个是信息密度。如果两份文档同样相关,应该选择更简洁、无关细节更少的那个。

最后是信息的详细程度,附加的详细信息可以帮助大模型更好地理解。

图片

优先RAG,而不是对新知识微调

RAG和微调都可让大模型掌握新知识并提高特定任务的性能。那么,应该优先选择哪一个呢?

微软一篇论文比较RAG与无监督微调(又叫持续预训练),发现对于新知识RAG性能始终优于微调

图片arxiv.org/abs/2312.05934

除了改进性能之外,RAG容易更新而且成本更低。如果知识库中发现错误,RAG方法只需简单删除有问题的文档即可。

RAG还可以给文档权限提供更细粒度的控制,确保每个用户只能访问自己有权限的文档,不会泄露信息。

长上下文不会让RAG过时

首先,即使上下文窗口达到一千万tokens,仍然需要一种方法来选择要输入模型的信息。

其次,除了简单大海捞针评估之外,还没有看到令人信服的数据表明模型可以在如此大的上下文进行有效的推理。

如果没有良好的检索和排名,干扰因素可能淹没模型,甚至可能用完全不相关的信息填满了上下文窗口。

最后还有成本问题,ransformer的推理成本随上下文长度二次增长,过度依赖长上下文可能不划算。

图片

微调篇

当最巧妙的提示词设计也无法完成一些任务时,可能就需要考虑微调了

虽然微调可能是有效的,但它会带来巨大的成本。必须注释微调数据、执行微调和评估模型,并最终自行部署模型。因此,请考虑较高的前期成本是否值得。

作者们的经验是:

  • 如果提示词已完成了**90%**的任务,那么微调可能不值得投资。
  • 如果确定要微调,可以考虑合成数据或开源数据集,降低人工收集注释数据的成本。
Agent与工作流

最成功的Agent开发者可能也是工程师团队的管理者,因为给AI制定计划的过程和管理初级员工的方式类似

我们给人类新手明确的目标和具体的计划,而不是模糊的开放式指示,对Agent也应该这样做。

优先考虑确定性工作流程

Agent被期待动态对用户请求做反应,但随着执行步数增加,失败的可能性指数增加,并且从错误中恢复的机会很小。

一种有前途的方法是使用Agent系统来生成确定性计划,然后以结构化、可重复的方式执行这些计划,好处包括:

  • 生成的计划可以作为提示词中的少数样本,或微调数据。
  • 使系统更加容易测试和调试,失败可以追溯到计划中的具体步骤。
  • 生成的计划可以表示为有向无环图 (DAG),相对于静态提示词,它更容易理解和适应新情况。

图片

多样化输出不止提高温度

如果任务需要输出的多样性,比如根据用户之前购买过的产品推荐新产品,简单增加大模型的温度参数可能会产生问题。

如果温度太高,可能会生成不存在的产品,甚至输出乱码。

其他增加输出多样性的方法包括:

最简单的是调整提示词内的元素顺序,打乱用户历史购买记录的顺序,就可能产生显著差异。

还可以在上下文中保留前几轮的输出,并要求大模型避免重复最近推荐过的产品。

另一个策略是改变提示词的措辞,比如“选择用户喜欢经常使用的产品”和“选择用户可能会推荐给朋友的产品”。

图片

评估与监测

大模型的输入和输出是任意文本,要完成的任务是多种多样的。尽管如此,严格且深思熟虑的评估仍至关重要。

从真实的输入/输出样本中创建基于断言的单元测试

作者建议创建由生产中的输入和输出样本组成的单元测试,并基于至少3个指标测试。

3个指标是实践中总结出来的,更少可能表明任务没有充分定义,或过于开放。

这些单元测试应该由工作流的任何更改触发,无论是编辑提示词、通过RAG添加新上下文还是其他修改。

图片

大模型当裁判可能起作用,但不是万能的

作者认为,让最强大的模型当裁判、给其他模型的输出打分,用于定性比较优劣可能有用,但具体输赢的幅度就没什么参考价值了

  • 不要让大模型在量表上对单个输出进行评分,而是提供两个选项,要求选择更好的一个,这往往会带来更稳定的结果。
  • 提供的选项顺序可能会影响结果,为了缓解这种情况,请将每个成对比较进行两次,每次交换顺序
  • 在某些情况下,两种选择可能同样好。因此允许大模型宣布平局,这样就不会武断地选一个胜者。
  • 使用思维链:要求大模型在给出最终偏好之前解释其决定,可以提高评估的可靠性,还可以让更小的模型获得与大模型类似的结果。
    (这部分流程通常处于并行批处理模式,思维链带来的额外延迟并不造成问题。)
  • 大模型往往偏向于较长的回答,为减少这种情况,请确保成对的回答长度相似。

图片

“实习生测试”

如果将提示词(包括上下文)作为一项任务,交给相关专业的普通大学生,他们能成功吗?需要多长时间?

如果大学生都做不到,就该考虑如何给大模型提供更丰富的上下文资料了。

如果根本无法通过改进上下文来解决这个问题,那么这就是对当代大模型来说太难的任务。

如果大学生能做到,但需要一段时间。可以尝试降低任务的复杂性。分解任务,或某些方面是否可以更加模板化。

如果大学生能做到,而且很快,但大模型不行。那么就该深入研究大模型反馈的数据了。尝试找到失败的模式,让模型在输出之前或之后解释自己。

图片

过分强调某些指标可能影响整体

著名的古德哈特定律表示,“当一项指标成为目标时,它就不再是一项好指标”

比如针对长上下文的**“大海捞针”测试最早是网友提出的,迅速成为行业通用方法之后,就很容易针对性优化、刷榜**。

更好的指标可能正是复杂的实际任务,比如“给定一个小时的会议记录,大模型能否总结出关键决策、待办事项和相关负责人”。

这项任务更切合实际,超越了死记硬背的范畴,还考虑到了解析复杂讨论、识别相关信息和归纳总结的能力。

在总结中强调事实一致性可能会导致摘要不那么具体(因此不太可能与事实不一致),也可能不那么相关。

反之,如果强调写作风格和口才,则可能导致更多花哨的话术,从而造成与事实不符的情况。

图片

LLMs甚至会在不应该返回输出时返回输出

大模型经常会在不应该生成输出的情况下生成输出。可能是无害但无意义的输出,也可能是更严重有害输出。

例如,当被要求从文档中提取特定属性或元数据时,大模型可能会自信地返回不存在的结果。可以尝试让大模型回答“不适用”或“不知道”,但也并非万无一失。

虽然谨慎的提示工程可以在一定程度上起作用,但还应辅之以强大的“护栏”机制,以检测和过滤/重新生成不受欢迎的输出。

例如,OpenAI提供了一个内容过滤API,可识别不安全的响应,如仇恨言论、自残或性内容。同样,还有许多用于检测个人身份信息 (PII) 的软件包。这样做的好处之一是,”护栏”在很大程度上与场景无关,因此可广泛应用于特定语言的所有输出。

此外,通过精确检索,如果没有相关文档,系统也可以确定地回答 “我不知道”。

在实际应用中,最好持续记录输入和输出,以便进行调试和监控。

图片

幻觉很难彻底解决

与安全问题不同,幻觉可能很难被发现

根据作者们从大模型供应商那里了解到的情况,要将幻觉率降低到2%以下是非常困难的,即使是在摘要等简单任务中也是如此。

为了解决这个问题,可以将提示工程(生成的上游)和事实不一致护栏(生成的下游)结合起来。

对于提示词工程,思维链等技术可以让大模型在最终返回输出之前解释其推理,从而帮助减少幻觉。然后,可以应用事实不一致护栏来评估摘要的事实性,并过滤或重新生成。

图片

技术篇结束,还有运营、战略篇

对于这篇精彩的实战经验分享,沃顿商学院教授Ethan Molick推荐并感慨:

这篇文章显示了从传统软件角度来看,使用大模型是多么奇怪,以及人们还有多少东西需要学习。

图片

事实上这只是六位作者完整分享的三分之一:战术篇。

第二部分运营篇也刚刚发布,围绕数据、模型、产品、团队发展四个话题展开分享。

图片

接下来还有最后一部分战略篇,也是狠狠期待了。

最后,不妨再来认识一下六位作者。

Eugene Yan

图片

他目前是亚马逊高级应用科学家,负责构建服务全球数百万客户的推荐系统,并应用大语言模型来更好地服务客户。

此前,他曾在Lazada(被阿里巴巴收购)和一家健康科技初创公司领导机器学习团队。他在eugeneyan.com和ApplyingML.com上撰写并发表关于机器学习、推荐系统、大语言模型及工程方面的文章和演讲。

Bryan Bischof

图片

Bryan Bischof是Hex的AI负责人,领导工程师团队开发了Magic——数据科学和分析助手。

他在数据领域有丰富的工作经验,曾创建了Blue Bottle Coffee、Weights and Biases的数据团队,领导了Stitch Fix的多个项目,还曾与O’Reilly合写了“Building Production Recommendation Systems”一书,并在罗格斯大学教授数据科学和分析课程。他拥有纯数学博士学位。

Charles Frye

图片

Charles Frye在加州伯克利获得了神经网络优化方面的博士学位。

他通过在Weights and Biases、Full Stack Deep Learning和Modal的教育和咨询工作,教授了数千人从线性代数基础到GPU奥秘以及构建可行商业模式的整个AI应用开发过程。

Hamel Husain

图片

Hamel Husain是一位拥有超过25年经验的机器学习工程师。

他曾就职于Airbnb和GitHub等,参与了OpenAI用于代码理解的早期大语言模型研究,还领导许多受欢迎的开源机器学习工具。Hamel目前是一名帮助公司将LLM投入运营加速其AI产品开发的独立顾问。

Jason Liu

图片

Jason Liu是一位知名的机器学习顾问,在个性化算法、搜索优化、合成数据生成和MLOps系统方面拥有技术专长。

他曾在Stitchfix创建了一个处理每日3.5亿次请求的推荐框架和可观测性工具,还曾在Meta、纽约大学以及Limitless AI和Trunk Tools等初创公司担任重要角色。

Shreya Shankar

图片

Shreya Shankar是加州伯克利计算机科学博士生和机器学习工程师。

她曾是两家初创公司的首席机器学习工程师,从零开始构建AI产品。她的工作重点是通过以人为中心的方法解决生产级机器学习系统中的数据挑战,研究成果发表在VLDB、SIGMOD、CIDR和CSCW等顶级数据管理和人机交互会议上。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

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

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

相关文章

2024年几款优秀的SQL IDE优缺点分析

SQL 工具在数据库管理、查询优化和数据分析中扮演着重要角色。 以下是常见的 SQL 工具及其优缺点。 1. SQLynx 优点: 智能代码补全和建议:采用AI技术提供高级代码补全、智能建议和自动错误检测,大幅提高编写和调试SQL查询的效率。跨平台和…

蓝桥杯物联网竞赛_STM32L071_19_输出方波信号(PWM)

国赛考了一个方波,第一次考这个,连个示波器都没有 CUBMX配置: 按上述配置刚好是32MHZ / 32 / 100 10KHZ 理论: 频率:就是一秒钟能产生多少个脉冲,如下图: 这算是一个脉冲,1KHZ说明一秒钟产生…

源码发布Quantlab4.2,Deap因子挖掘|gplearn做不到的咱们也能做。(代码+数据)

原创文章第552篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由"。 又到了星球发布代码的日子: 更新说明:1、Deap做因子挖掘的框架使用。值得说明的是,源码级别,并非产品级,不能指望输入一堆…

降噪是什么意思?视频如何降噪?一文了解全部

在视频制作的过程中,我们经常会遇到噪音问题,这些噪音可能来自拍摄环境、录制设备或其他源头。然而,对于初学者来说,降噪是什么意思,以及如何有效地在视频中进行降噪可能是一些疑惑的问题。本文将深入解释降噪的概念&a…

Mat的lambda方式像素高效遍历(C++11)

Mat的lambda方式像素高效遍历(C11) 文章目录 Mat的lambda方式像素高效遍历(C11)前言一、Mat的lambda方式像素高效遍历二、代码实现总结 前言 图像遍历是图像处理中的经典操作,快速高效的进行像素遍历对性能的提升至关…

[AI OpenAI] 提取GPT-4中的概念

总结: 研究人员采用新的可扩展方法,将GPT-4的内部表示分解为1600万个通常可解释的模式,这些模式被称为“特征”,目的是提高语言模型的透明度和可解释性。通过使用稀疏自编码器,研究人员能够识别与特定概念相关的特征&…

《今日科技》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答 问:《今日科技》是不是核心期刊? 答:不是,是知网收录的正规学术期刊 问:《今日科技》是什么级别的? 答:省级。主管单位:浙江省科学技术厅 主办单位:浙江省…

免费分享一套SpringBoot+Vue校园论坛(微博)系统【论文+源码+SQL脚本】,帅呆了~~

大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue校园论坛(微博)系统,分享下哈。 项目视频演示 【免费】SpringBootVue校园论坛(微博)系统 Java毕业设计_哔哩哔哩_bilibili【免费】SpringBootVue校园论坛(微博)系统 Java毕业设计…

Cesium401 (Unauthorized)https://api.cesium.com/v1/assets/2/endpoint未授权问题

目录 前言1.原因分析2.解决问题1.禁用默认的imageryProvider2.禁用图层切换3.移除所有默认图层4.使用自己的地形(可选) 3.最终解决方案4.总结 前言 在初始化Cesium的Viewer以后,Viewer会自动去访问Cesium官网的资源,如果访问不到官网的资源,就…

parseInt函数

貌似遇到问题了,在Java中,parseInt方法是java.lang.Integer类的一个静态方法,它用来将字符串转换为基本数据类型int。如果字符串不能被解析为有效的整数,parseInt会抛出一个NumberFormatException。 原来是取整串转换,…

Lab_ Exploiting an API endpoint using documentation

https://portswigger.net/web-security/learning-paths/api-testing/ 开局一个页面 打开代理和burp,查看功能点,然后看HTTPhistory 然后使用题目已知的账号去登录一下 My account 登录 然后发现 /api 路径 那么我们访问一下 URL/api ,发现…

宋仕强论道 之 AI(人工智能)

《宋仕强论道 之 AI(人工智能)如何赋能新质生产力》于6月3日由新华瞭望网首发后,被环球科技新闻网等多家媒体转载;随后又分别以《宋仕强论道 之 AI如何赋能新质生产力》《宋仕强:AI赋能新质生产力的理论探索与实践路径…

有关大学的搜题软件?六个不限次的公众号和软件分享啦 #其他#职场发展

有些同学虽然喜欢刷题,但是如果参考答案遗失、找不到参考答案,导致做好的题目无法校对,就会比较烦恼了。不过不用担心,今天就给大家分享一些超好用的搜题工具 1.彩虹搜题 这是个老公众号了 它不仅可以查到大学题目,…

【机器学习】朴素贝叶斯算法及其应用探索

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 朴素贝叶斯算法及其应用探索引言1. 朴素贝叶斯基本概念1.1 贝叶斯定理回顾1.2 朴…

【Unity实战篇 】 | Unity实现UGUI颜色渐变,支持透明渐变

前言 【Unity实战篇 】 | Unity实现UGUI颜色渐变,支持透明渐变一、双层颜色渐变1.1 组件属性面板1.2 效果及代码 二、多层颜色渐变2.1 组件属性面板2.2 效果及代码 总结 前言 在Unity中UGUI的实现图片和文字颜色渐变效果是一个很常见的需求。下面就来看一下颜色渐变…

【微前端实战总结篇】

微前端现有的落地方案可以分为三类,自组织模式、基座模式以及模块加载模式。 一、为什么需要微前端? 这里我们通过3W(what,why,how)的方式来讲解什么是微前端: 1.What?什么是微前端? 微前端就是将不同的功能按照不同的维度拆分成多个子应用。通过主应…

面向AI应用开发实战分享 - 基础篇

“前端转AI,第一讲来了” 引言 如果你是一名前端开发,同时又对AI开发很感兴趣,那么恭喜你,机会来了。 如果不是也没关系,同样能帮大家了解AI应用的开发思路。 本文将带大家从面向AI开发的基础知识开始,再…

1、旋转在三维空间中的表现形式

有4种表达方式:旋转矩阵SO(3)、四元数、旋转向量和欧拉角。 一、旋转矩阵SO(3) 定义:旋转矩阵是一个33的正交矩阵,且行列式为1。表示:可逆矩阵,逆矩阵和转置矩阵相同,表示相反的旋转。优点:可…

卫星通信频段有哪些

卫星通信使用到的频段涵盖L, S, C, Ku, Ka等,而最常用的频段是C(4~8GHz)和Ku(12~18GHz)频段,而Ka(27-40GHz)频段是后起之秀。目前地球赤道上空有限的地球同步卫星轨位几乎已被各国占满,C和Ku频段内的频率资源被大量使用,而Ka频段的…

1347:【例4-8】格子游戏

【解题思路】 该题为判断无向图是否有环。可以使用并查集来完成。学习并查集时,每个元素都由一个整数来表示。而该问题中每个元素是一个坐标点,由(x, y)两个整数构成。 将二维坐标变为一个整数,通过一个公式将二维坐标换算为一个整数&…