机器总结-一个开源数据科学项目雷竞技技官网下载
博士TL;
我们建立了一个总结文本的机器学习模型。我们用它来总结本文的内容是有意义的。
模型生成的文章摘要:
深度学习技术可以用于与语言相关的学习任务,如翻译、分类、实体识别或在这种情况下,总结。我们想要建立一个可以很容易地复制和定制的项目,使它对社区有用。文本摘要包可以作为一个包下载。使用DAGsHub允许我们跟踪和管理所有不同运行的指标。在某种意义上,这是更多汇总项目的模板。训练模型的代码是用PyTorch lightning编写的。该脚本还允许我们训练T5、mT5和byT5模型。
该项目可以在这里找到://www.kkolawyers.com/gagan3012/summarization
添加到这个自动总结-两个额外的有趣的方面的项目是:
- 它很容易定制——更改数据集和模型体系结构很容易,这意味着你可以很容易地适应你的需要。
- 它集成了许多最好的开源工具——DVC, MLflow, Hug雷竞技技官网下载gingFace和Streamlit。这是一个端到端开源栈和工作流的例子,这意味着它可以适用于许多其他ML项目雷竞技技官网下载。

机汇总
自然语言处理是机器学习非常有效的关键领域之一。事实上,尽管NLP传统上需要大量的人工干预,但今天,这已不再是事实。具体来说,深度学习技术可以用于与语言相关的学习任务,如翻译、分类、实体识别或在这种情况下,总结。
借用任务的定义这篇优秀的文章Luís Gonçalves:
摘要是将一段文本压缩为更短的版本,减少初始文本的大小,同时保留关键信息元素和内容的含义。由于人工文本摘要是一项费时费力的工作,自动化的工作越来越受欢迎,因而成为学术研究的强大动力。
文本摘要在各种与自然语言处理相关的任务中有重要的应用,如文本分类、问题回答、法律文本摘要、新闻摘要和标题生成。此外,摘要的生成可以作为一个中间阶段集成到这些系统中,这有助于减少文件的长度。
挑战-使修改数据集和模型变得容易
通常情况下,当我们为总结构建或微调模型时,我们需要加载模型、下载数据、编写微调脚本,然后我们需要定义管道。整个过程是非常密集的,而且使用管道的其他人通常无法复制结果。在传统的git存储库中,很难跟踪大型数据集和模型,这使得跟踪模型更加困难。
没有现成的管道可以用不同的数据集轻松地修改来训练相同的模型(或者自定义模型的能力,就此而言)。每次我们必须更改数据集或使用数据集的不同分割时,我们将不得不重新运行管道的所有步骤,这将进一步占用系统上的资源。
通常,如果您想要构建一个定制的摘要模型,您必须从头开始完成我们上面描述的所有工作,但是我们想要构建一个可以容易地复制和定制的项目,以使它对社区可用。在某种意义上,这是更多汇总项目的模板
该项目可以在这里找到://www.kkolawyers.com/gagan3012/summarization
我们甚至为文本摘要创建了一个包,供下载使用皮普
:
PIP安装t5
一旦我们下载了软件包,我们就可以使用培训管道了。但是在讨论这个包是如何工作的之前,让我们先解释一下管道的每个阶段是做什么的。
管道——为我们的项目提供结构
我们管道的第一阶段是从“拥抱脸”中心下载数据。在这里我们用的是训练CNN_dailymail
数据集。为了下载数据集,我们使用名为data_params.yml
它定义了我们想要训练数据的数据集和分割。我们运行download_data
阶段下载数据,然后将其存储为原始数据,然后进行处理。
保存了原始数据之后,我们继续使用我们的脚本来处理原始数据。我们更改列名并修改数据以配合我们的训练脚本。现在数据也被分成三个不同的文件:train.csv
,validation.csv
而且test.csv
分别表示训练集、验证集和测试集。
现在我们可以继续训练模型了。训练模型的代码是用pytorch lightning编写的。剧本允许我们进行训练T5
,mT5
而且byT5
还有模型。控件可以控制所有脚本参数model_params.yml
文件。训练阶段返回可保存的模型以及使用MLflow和DAGsHub记录的训练指标。
接下来我们需要评估已经创建的模型,为此我们需要使用rouge度量,它使用测试数据集来评估模型。ROUGE是一套用于评估自然语言处理中的自动摘要和机器翻译软件的指标和软件包。这些指标将自动生成的摘要或翻译与引用或一组引用(人工生成)的摘要或翻译进行比较。评估指标也使用DAGsHub保存。一旦我们将所有的模型提交给git,我们就可以从DAGsHub回购中评估我们的模型。
我们还可以使用流照明应用程序来可视化和测试模型的结果,该应用程序可以使用拥抱脸空间访问。我们还可以选择运行上传脚本并将模型上传到hug Face Hub。
最难的部分是使产品具有可重复性和可定制性
我们在这个项目中面临的最大挑战之一是建立一个可复制的、易于评估的数据管道。使用DAGsHub使这成为可能。DAGsHub允许我们跟踪和管理所有不同运行的度量,并允许我们有一个可复制的管道。将指标记录到DAGsHub就像提交文件到git repo一次推送一样简单,我们已经准备好分析运行了。
为了在pytorch lightning中使用DAGsHub记录器,我们必须在代码中的日志系统中做一些更改。由于pytorch lightning是一个实时项目,它一直在改进,我们需要找到更好的方法来实时记录。我们尝试使用多个日志服务,这些服务也可以按需在管道中使用。我们实现了权重和偏差、张量板和MLFlow测井。我们发现MLFlow是这里最好的日志记录方法,因为它与DAGsHub无缝集成。
t5包装,包装得很好
为了运行管道,我们设置了一个CLI应用程序来帮助我们运行管道
为了安装管道,我们需要首先安装t5使用:
PIP安装t5
现在,我们需要克隆包含代码的回购文件。
t5克隆
然后,我们必须创建运行管道所需的目录
t5 dirs
为了定义运行的参数,我们将使用以下命令:
t5s start [-d DATASET] [-s SPLIT] [-n NAME] [-mt MODEL_TYPE] [-m MODEL_NAME] [-e epoch] [-lr LEARNING_RATE] [-b BATCH_SIZE]
这将设置所有必要的参数,以便自动化剩下的过程,包括数据和模型检索,以及为训练步骤设置超参数。
然后我们需要从我们的DVC回购中拉出我们选择的模型:
t5拉
现在要运行我们可以运行的培训管道:
t5运行
在按下之前,确保DVC遥控器设置正确:
DVC remote modify origin url //www.kkolawyers.com/{user_name}/summarization.dvc DVC remote modify origin——local auth basic DVC remote modify origin——local user {user_name} DVC remote modify origin——local password {your_token}
最后将模型推至DVC
t5推
要将这个模型推到hug Face Hub进行推断,可以运行:
t5上传
最后,如果我们想要测试模型并将结果可视化,我们可以运行:
t5可视化
这将打开我们的Streamlit应用程序,它将让我们用一些自定义示例来测试我们的模型。
总结
总之,我们构建了一个可复制和可重用的机器摘要管道。这个项目是独特的,因为它结合了很多开源工具,如DAGsHub, DVC, PyTorch Lightni雷竞技技官网下载ng, HuggingFace Hub和Streamlit来构建模型。我们希望您能亲自尝试我们的机器总结项目,并给我们反馈。这将真正帮助我们优先考虑未来的功能,所以请投票或创建问题!如果你想更积极地参与,我们有一些不错的第一期的想法,你可以从这些想法开始。我们很乐意为您提供最佳的指导。