如何用诗歌构建抹布评估器Python包
介绍
想象一下,您将生产一个Python软件包,该软件包有可能完全改变开发人员和数据分析师评估其模型的方式。这次旅行始于直接的概念:一种灵活的破布评估工具,可以管理各种指标和边缘情况。您将从用诗歌初始化包裹到创建可靠的评估师类,并在潜入本文时测试代码。您将获得有关如何创建软件包,计算BLEU和Rouge分数并在线发布的知识。最终,除了拥有一个可以使用公众使用的工作工具之外,您还将对Python包装和开源贡献有更多的了解。
学习成果
- 学会使用诗歌初始化并构建Python软件包。
- 为多个指标开发和实施评估者类。
- 计算和评估诸如BLEU和Rouge分数之类的指标。
- 编写和执行测试以确保代码功能和鲁棒性。
- 将Python软件包构建并发布给PYPI,包括处理分销和许可。
本文作为数据科学博客马拉松的一部分发表。
目录
- 用诗歌初始化包裹
- 设计核心评估员类
- 定义评估者类
- 实施评估指标
- 计算BLEU分数
- 测量胭脂分数
- 测试您的包裹
- 建立车轮
- 创建源和二进制分布
- 发布软件包
- 常见问题
用诗歌初始化包裹
现在,我们已经有了可以使用诗歌初始化新的Python软件包开始的要求。选择诗歌的原因是:
- 它消除了管理多个虚拟环境的需求。
- 它支持所有类型的Python软件包格式,包括本机和旧软件包。
- 它即使通过``poetry.lock''文件确保了依赖项的正确版本。
- PYPI准备单个命令。
使用命令安装诗歌几乎所有操作系统:
1 |
|
然后,我们可以使用以下命令使用样板来创建一个新的存储库。
1 |
|
您可以将ENTER按ENTER并将其保留为默认情况下的通用问题。然后,您将降落在类似的文件夹结构中。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
尽管结构很好,但我们可以使用``src''布局与官方Python文档中所讨论的`flat'布局。我们将遵循博客其余部分中的“ SRC”布局。
设计核心评估员类
包装的核心包含所有源代码,以供电Python评估器软件包。它包含了我们希望拥有的所有指标将继承的基类。因此,这堂课必须是在施工期间必须最强大,最大的谨慎。此类将具有基本初始化所需的必要逻辑,一种从度量标准获得结果的方法,以及一种容易消耗的用户输入的方法。
所有这些方法必须具有自己的范围和适当的数据类型。更多地关注数据类型的原因是因为Python是动态键入的。因此,我们必须确保正确使用变量,因为这些变量仅在运行时会导致错误。因此,必须有测试套件来捕获这些微小的错误,而不是使用专用的类型检查编译器。如果我们在Python中使用适当的键入,就很好。
定义评估者类
现在,我们看到了所有评估者类都必须包含的内容,以及为什么我们最重要的是相同的实现。对于构建此类,我们正在继承Python提供的ABC - 抽象基类。选择此类的原因是它包含我们可以构建评估者基类的所有具体功能。现在,让我们定义评估器类的输入和输出。
- 输入:候选人[字符串列表],引用[字符串列表]
- 方法:``填充'(确保候选人和参考的长度相同),“ get_score”(计算评估指标的最终结果的方法)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
|
在这里,我们可以发现“ __init()__”方法包含所需的参数,即对任何评估者指标的基本要求IE候选者和参考。
然后,确保“候选”和“参考”所需的填充包含定义为静态方法的长度相同的长度,因为我们每次调用时都不需要初始化此内容。因此,静态装饰器包含所需的逻辑。
最后,对于`get_score()`我们使用AbstrackMethod Decorator,这意味着所有继承基本评估器类的类都必须包含此方法。
实施评估指标
现在是图书馆实施的核心,即对指标的评估。目前,用于计算,我们使用执行任务并显示度量分数的各个库。我们主要使用``候选人'ie llm生成的响应和``参考''即地面真相,我们分别计算了价值。为简单起见,我们计算BLEU和胭脂分数。这种逻辑可扩展到市场上可用的所有指标。
计算BLEU分数
作为双语评估研究的缩写是机器翻译(候选人)的常见评估指标之一,它是快速,廉价且无关紧要的。与手动评估相比,它具有边际错误。它比较了机器翻译与专业人类反应(参考)的亲密关系,并将评估作为度量得分范围为0-1,而任何方向的评分都被称为1次接近匹配。他们在候选人的句子中考虑了n-gram(n个单词的块)。例如。 Unigram(1克)考虑了候选人和参考文献中的每个单词,并将标准的得分返回被称为精度得分。
但是,考虑到是否多次出现相同的单词,它是每个外观的最终得分,这并不总是很好,这通常是不正确的。因此,BLEU使用修改后的精度分数,其中将单词匹配的数量剪辑并用候选人中的单词数将其归一化。这里的另一个收获是,它不会考虑订购一词。因此,BLEU得分考虑了多个N-gram,并用其他参数显示1-4克的精确得分。
优势
- 更快的计算和简单的计算。
- 广泛使用且易于基准的结果。
缺点
- 不考虑翻译的含义。
- 不考虑句子格式。
- 尽管它是双语的,但它仍在非英语语言中挣扎。
- 当人类翻译已经被象征化时,很难计算得分。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
|
测量胭脂分数
缩写为以召回式评估为导向的研究,是将模型生成的摘要与多个人类摘要进行比较的常见评估指标之一。它以一种天真的方式比较了机器和人类生成的摘要的n克。这称为Rouge-n召回分数。为了确保与人类摘要的机器生成的摘要相关性,我们可以计算精度分数。由于我们具有精度和召回分数,因此我们可以计算F1得分。通常建议考虑`n`的多个值。 Rouge中的一个小变体是Rouge-L分数,它考虑了单词的顺序并计算LCS(最长的常见子序列)。以同样的方式,我们可以获得精度和召回得分。这里有一个略有优势,它考虑了句子的分子性并产生相关结果。
优势
- 通过比较n克和最长的共同子序列来评估自动文本摘要的质量非常有效。
- Rouge可以应用于任何语言,使其用于多语言文本分析和评估。
缺点
- Rouge专注于表面级文本匹配(N-Grams),这可能无法捕获更深的语义含义和连贯性。
- 胭脂的准确性在很大程度上取决于参考摘要的质量和代表性
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
|
测试您的包裹
现在,在实际用法之前,我们已经准备好源文件,我们必须验证代码的工作。这就是测试阶段进入图片的地方。在Python库格式/惯例/最佳实践中,我们在名为`tests/'的文件夹下编写所有测试。这个命名惯例使开发人员可以轻松了解该文件夹具有其意义。尽管我们有多个开发工具,我们可以使用类型检查,错误处理等限制库。这迎合了第一轮检查和测试。但是,为了确保边缘案例和例外,我们可以使用Unitest,Andpytestas进行首选框架。话虽如此,我们只是使用“ UnitTest”库来设置基本测试。
编写有效的单元测试
关于“ UnitSest”的关键术语是测试案例和测试套件。
- 测试案例:测试的最小单元,我们在其中评估一组输出的输入。
- 测试套件:测试案例,套房或两者的集合。用于汇总测试以合作。
- 命名约定:必须在文件名和函数名称上以`tests_'的前缀。原因是解析器将检测到它们并将其添加到测试套件中。
建立车轮
当我们运行命令`pip slotstance
1 |
|
它在文件夹根部的`dist/`文件夹中生成了轮子和zip文件。
1 2 3 |
|
等效Python命令Aliter正在安装`build''软件包,然后从文件夹的根部运行构建命令。
1 2 |
|
创建源和二进制分布
现在,让我们展望创建源和二进制分布。
源分布(SDIST)
`sdist`是包含源代码和元数据的软件包的源分布,以根据PIP或POETRY等外部工具构建。必须在“ bdist”之前构建`sdist`。如果“ PIP”找不到构建分布,则源分布充当后备。然后,它从中构建一个轮子,然后安装包装要求。
二元分布(BDIST)
`bdist`包含需要移动到目标设备正确位置的必要文件。最佳支持的格式之一是`.whl'。要注意的是,它没有编译Python文件。
执照
在将包裹开放给外部世界时,始终建议拥有一个许可证,以显示您的代码可以重复使用的程度。在Github创建存储库时,我们可以选择在此处选择许可证。它创建一个具有使用选项的“许可证”文件。如果您不确定要选择哪种许可证,那么此外部资源是营救的理想选择。
发布软件包
现在,我们已经有所有要求将包裹发布给外部世界的所有要求。因此,我们使用的是Publish命令,该命令将所有步骤用单个命令抽象。
test.pypi.org
如果您不确定包裹的执行方式或用于测试目的,建议将其发布到test.pypi.org而不是直接上传到官方存储库中。这使我们可以灵活地测试包装,然后再与所有人共享包裹。
pypi.org
Python官方包装包含Python社区发布的所有私人和公共软件。对于作者和组织来说,通过官方的中央存储库共享包裹很有用。将您的软件包发布到世界上所需的只是这个单个命令。
1 |
|
结论
到本文结尾,您已经成功发布了一个python软件包,该软件包准备被数百万使用。我们已经使用诗歌初始化了一个新的软件包,在用例中工作,编写了测试,构建了软件包并将其发布到PYPI存储库中。这将为自己增加更多价值,还可以帮助您了解有关它们的结构方式的各种开源Python软件包存储库。最后但并非最不重要的一点是,这只是开始,我们可以使其尽可能扩展。我们可以参考开源Python软件包和发行版,并从同一包装中获得灵感。
关键要点
- Python大师包装和诗歌的管理。
- 实施和自定义评估指标,以适用于不同的用例。
- 使用单元测试框架构建和测试可靠的Python软件包。
- 将您的软件包发布到PYPI并了解分销格式。
- 了解开源软件包开发和许可实践的见解。
常见问题
Q1。本文的目的是什么?答:本文可帮助您创建和发布Python软件包,重点关注社区可以用于各种评估指标的破布评估器工具。
Q2。为什么我要使用诗歌来管理我的Python套餐?A.诗歌通过将版本控制,虚拟环境和将任务发布到单个工具中来简化依赖关系管理和包装,从而使开发和分发更加容易。
Q3。本文涵盖了哪些评估指标?答:本文详细介绍了如何计算BLEU和Rouge分数,这些分数是通常用于评估机器生成文本质量的指标,与参考文本相比。
Q4。如何测试Python软件包的功能?答:您可以使用UNITSEST或PYTEST等框架来测试软件包,以确保代码按预期工作并处理边缘案例,并在发布前提供信心。
Q5。发布Python软件包的步骤是什么?答:使用诗歌或构建构建软件包,在test.pypi.org上进行测试,然后使用诗歌出版命令将其发布到官方的pypi.org存储库中,以使其向公众使用。
本文所示的媒体不由Analytics Vidhya拥有,并由作者酌情使用。
以上是如何用诗歌构建抹布评估器Python包的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Meta的Llama 3.2:多模式和移动AI的飞跃 Meta最近公布了Llama 3.2,这是AI的重大进步,具有强大的视觉功能和针对移动设备优化的轻量级文本模型。 以成功为基础

嘿,编码忍者!您当天计划哪些与编码有关的任务?在您进一步研究此博客之前,我希望您考虑所有与编码相关的困境,这是将其列出的。 完毕? - 让&#8217

本周的AI景观:进步,道德考虑和监管辩论的旋风。 OpenAI,Google,Meta和Microsoft等主要参与者已经释放了一系列更新,从开创性的新车型到LE的关键转变

Shopify首席执行官TobiLütke最近的备忘录大胆地宣布AI对每位员工的基本期望是公司内部的重大文化转变。 这不是短暂的趋势。这是整合到P中的新操作范式

介绍 Openai已根据备受期待的“草莓”建筑发布了其新模型。这种称为O1的创新模型增强了推理能力,使其可以通过问题进行思考

介绍 想象一下,穿过美术馆,周围是生动的绘画和雕塑。现在,如果您可以向每一部分提出一个问题并获得有意义的答案,该怎么办?您可能会问:“您在讲什么故事?

对于那些可能是我专栏新手的人,我广泛探讨了AI的最新进展,包括体现AI,AI推理,AI中的高科技突破,及时的工程,AI培训,AI,AI RE RE等主题

Meta's Llama 3.2:多式联运AI强力 Meta的最新多模式模型Llama 3.2代表了AI的重大进步,具有增强的语言理解力,提高的准确性和出色的文本生成能力。 它的能力t
