丹尼尔·罗德里格斯
在Anaconda,我们开发了一种严格的人工智能开发新方法——评估驱动开发(EDD)。通过使用真实案例和用户反馈,不断测试人工智能模型,评估驱动开发使我们能够创建可靠、相关且真正对用户有影响的人工智能助手。
我们的Anaconda助手是数据科学家的人工智能编码伴侣,它充分体现了评估驱动开发的强大功能。Anaconda助手根据真实代码示例、错误和修复进行训练,提供上下文建议和调试帮助,优化您的Python工作流程。得益于评估驱动开发,Anaconda助手每次更新都会变得更加智能。
我们相信,评估驱动开发是人工智能开发的未来。它能确保人工智能工具不仅能很好地演示,还能带来真正的价值。如果您对人工智能的潜力感兴趣,但担心其炒作,那么请继续阅读,了解评估驱动开发的工作原理,以及它为什么能改变游戏规则,构建出与众不同的人工智能应用程序。
作为使用Python的数据科学家,您一定深知在代码中遇到障碍时的苦恼。这就是Anaconda助手能帮助解决的问题。
通过在实际Python代码、错误和解决方案中训练出的先进语言模型,该助手实现了一系列简化工作流程的功能:
但到目前为止,助手最受欢迎的功能还是智能调试。遥测数据显示,60%的用户互动都需要请求帮助,解决麻烦的错误。
只需向助手描述您的错误,几秒钟内,您就会得到简单明了的问题解释和修复建议。不用再花几个小时搜索Stack Overflow!
最重要的是,得益于我们的“评估驱动开发”(EDD)流程,助手变得越来越智能。与同意数据收集的用户进行的每一次互动,都是我们改进提示和查询的机会,让我们从底层语言模型中获得相关、可靠的支持。
在下一节中,我们将探讨评估驱动开发如何使我们能够持续改进Anaconda助手,而无需耗费大量成本和时间重新训练模型。
我们的 “评估驱动开发”(EDD)方法由内部 “llm-eval”框架提供支持,包括严格测试及改进提示和查询。我们通过这些提示和查询来从底层语言模型中获得相关、可靠的输出。我们不只是针对抽象基准进行优化,而是根据数据科学家在日常工作中面临的实际挑战,来评估Anaconda助手的处理能力。
这就是 “llm-eval ”的作用。它是一个全面的测试框架,允许我们模拟成千上万个真实的用户交互,并评估助理在各种情况下的反应,从调试复杂的错误到生成可读的、文档齐全的代码。
以下是其工作原理的简要介绍:
为了更具体地说明这一点,让我们仔细看看我们如何将评估驱动开发应用于Anaconda助手最重要的功能之一:错误处理。
错误处理是助手功能的一个重要方面,因为数据科学家在遇到代码错误时需要清晰、可操作的指导。为了评估助手在这方面的性能,我们使用了 “llm-eval”框架,来系统地测试助手在各种实际调试场景中诊断和修复错误的能力。
一个特别有启发性的案例研究涉及以下代码,在向' create_person '函数传递无效年龄后,会引发' ValueError ':
我们向助手提供了该代码片段和相应的错误信息,并根据准确性对其响应进行了评估:它能否正确识别根本原因,并提供解决问题的修复方法?
为了评估助手的性能,我们使用不同的语言模型、版本和温度设置测试了它的反应。在类似Anaconda助手的人工智能模型中,温度设置决定了生成文本的随机性和创造性。温度越低,文本越确定,但也越保守;温度越高,文本越多样化,但也可能牺牲连贯性或事实准确性。找到合适的平衡点是获得可靠、高质量文本的关键。
初步评估结果令人吃惊:
在这些条件下,Anaconda助手最多只能在13%的测试执行中正确识别错误,并提供可行的解决方案。然而,我们并没有因为这些结果而气馁,而是将其视为一个宝贵机会,利用“llm-eval ”框架中获得的洞察力,推动助手性能有意义的改进。通过精心设计引出错误解释和修复的提示和查询,并根据评估结果对这些提示进行迭代,我们相信,我们可以显著提升助手的错误处理能力。下一节,我们将探讨如何应用这些提示工程技术,将助手转变为强大可靠的调试工具。
提示工程是指设计输入给人工智能模型的文本(“提示”),引导其产生所需的输出结果。正如一个用词得当的问题可以帮助人类给出更相关、更有用的答案,一个经过有效设计的提示可以显著提高人工智能的响应质量。这可能涉及到提供示例,将复杂任务分解为多个步骤,或指定格式要求等技术。
为了提高Anaconda助手处理错误的准确性,我们采用了几种提示工程技术。事实证明,这些技术能有效地引导语言模型做出更准确、更相关的响应:
以下是所用原始提示的简化版本:
为了严格评估生成响应的准确性,我们在“llm-eval”中开发了一个综合测试框架,可在受控环境中执行生成的代码片段。该框架可获取执行过程的详细信息,包括遇到的任何错误或异常,并将输出结果与预期结果进行比较。
通过在数百个生成的代码片段中运行此评估流程,我们系统地测量了Anaconda助手在解释和修复真实Python错误方面的准确性。由此产生的评估数据提供了关于助手性能的大量信息,包括:
这些信息正在成为提示工程的宝贵指南。下一节,我们将仔细分析这一评估驱动的优化过程的结果,并探讨我们能够实现的一些具体改进。
作为评估驱动开发(EDD)框架的一部分,我们正在采用一种名为 “代理反馈迭代”的创新技术,以进一步完善Anaconda助手中使用的提示和查询。这一过程利用大型语言模型的先进功能,根据评估结果提供有针对性的反馈和改进建议。
工作原理如下:
通过利用大型语言模型的高级语言理解和生成能力,代理反馈迭代让我们能以数据驱动的、有针对性的方式快速优化提示和查询。
通过此流程对提示和查询所做的具体更改,直接解决了我们最初评估时确定的关键挑战和机遇。例如:
用户提示修改:
系统提示更改:
通过多轮代理反馈迭代,我们显著提高了Anaconda助手响应的准确性,尤其是在最具挑战性和最具细微差别的错误场景中。下一节,我们将深入探讨这一优化过程的详细结果,并探讨取得的一些重要改进。
为了评估提示工程和代理反馈迭代流程的影响,我们使用改进后的提示,进行了新一轮评估。我们将重点放在相同的错误处理场景上,运行数百次,以检查生成的代码是否仍包含原始错误,是否提供了成功的修复。
结果表明,与我们最初的评估相比,所有型号和设置都有了显著改善。Mistral 7B型号的改进最为明显,在温度设置为1的情况下,成功率达到了100%。这意味着,在以上条件下,Anaconda助手能够正确识别错误,并在每次测试执行中都生成可行的解决方案。
这些结果有效证明了“评估驱动开发”的威力,以及高级语言模型与严格测试、提示工程和代理反馈迭代等技术相结合的变革潜力。我们相信,通过不断完善我们的方法,并扩大其应用范围,我们会为Anaconda助手,以及多个领域的人工智能工具带来更高水平的性能和多功能性。
下一节,我们将探讨评估驱动开发和Anaconda助手的令人振奋的未来发展方向,以及您如何参与塑造人工智能辅助数据科学的未来。
我们的 “评估驱动开发”(EDD)流程代表了一种模式转变,它正在彻底改变我们在各行各业构建、测试和部署人工智能工具的方式。通过评估驱动开发,我们正在将信任、可靠性和前所未有的能力融入到人工智能开发的结构中。
评估驱动开发的成功大幅提高了Anaconda助手的性能和可靠性,这仅仅是一个开始。展望未来,我们很高兴能在此基础上探索新机遇,推动创新和影响力。
未来评估驱动开发的首要任务包括:
无论您是数据科学家、开发人员还是人工智能爱好者,都可以通过多种方式参与进来,为评估驱动开发和Anaconda助手的未来做出贡献。您可以在自己的项目中试用助手并提供反馈,并在我们发布“llm-eval”框架后为其开发提出想法。您的意见和专业知识对于塑造人工智能驱动创新的未来非常宝贵。
想象一下未来,像Anaconda助手这样由人工智能驱动的工具将不仅仅是好帮手,而且是数据科学工作流程中不可或缺的合作伙伴,使用户能够专注于高层次问题解决,而人工智能则负责处理重复性任务。人工智能驱动的代码分析和生成工具帮助开发人员编写更可靠、更高效、更安全的软件。
这就是评估驱动开发要实现的未来。通过将严格的数据驱动测试与有针对性的提示工程和代理反馈迭代等技术相结合,我们不仅能改进人工智能模型,还能从根本上改变我们开发和部署人工智能的方式。
人工智能驱动开发的未来是光明的。以“评估驱动开发”作为指路明灯,我们很高兴看到这段旅程将把我们带向何方。让我们一起拥抱这一新模式,释放人工智能的全部潜能,让我们的世界变得更美好。