
大型语言模型(LLM)提升您机器学习工作流程的 5 种关键方式
图片由 Editor | ChatGPT 提供
引言
实验、微调、扩展等是推动机器学习开发工作流程发展的关键环节。然而,尽管机器学习领域已经相当成熟,但从业者如今仍面临诸多挑战。这些挑战包括数据日益复杂和混乱、工具集错综复杂、资源和文档零散,当然还有不断变化的问题定义和业务目标。
大型语言模型(LLM)不仅能解决问答、翻译或创意文本生成等常见用例,如果使用得当,它们还能应对机器学习工作流程中前述的挑战,并彻底改变设计、构建和部署机器学习系统的整个方法。本文将阐述 LLM 将机器学习开发工作流程提升到新水平的五种变革性(且颇具创意)的方法,重点介绍它们在实践中的应用方式,以及如何缓解常见的难题和痛点。
1. 通过合成数据和增强数据为数据准备工作提速
机器学习系统,无论其性质和目标任务如何,都以数据为驱动力。然而,数据收集和整理往往是一个代价高昂的瓶颈,因为训练这些系统所需的高质量数据不足。幸运的是,LLM 可以通过模拟现有真实世界样本的分布和其他统计特性来帮助生成合成数据集。此外,它们还可以缓解数据稀疏或缺失值过多的问题,并对原始特征进行特征工程,赋予其更多的语义和与待训练模型的相关性。
示例:考虑这个使用 Hugging Face 的 GPT-2 这样一个非常易于上手且相对简单的 LLM 进行文本生成的简化示例。如果我们之后想训练一个情感分类器,该分类器不仅能识别正面或负面情绪,还能识别多种类别,那么像下面这样的提示可以帮助我们获得具有讽刺语气的代表性评论样本。
1 2 3 4 5 6 7 |
from transformers import pipeline generator = pipeline("text-generation", model="gpt2") examples = generator("Write 100 sarcastic movie reviews about a variety of superhero films:", max_length=50, num_return_sequences=5) for e in examples: print(e["generated_text"]) |
当然,你总是可以求助于市场上现有的 LLM 解决方案,而不必通过编程方式访问。无论哪种情况,关键在于 LLM 在数据收集和准备中的实际影响:标注成本大幅降低,如果操作得当还能减轻数据偏差,最重要的是,训练出的模型在处理以往代表性不足的案例时会表现良好。
2. 有据可依的特征工程
特征工程可能更像一门手艺而非纯粹的科学,在从原始特征中派生出新的、有用的特征的过程中,假设和试错往往是自然而然的一部分。LLM 在这个阶段可以成为宝贵的资产,因为它们可以帮助基于原始数据分析提出新特征的建议。它们可以提出特征转换、聚合以及对非数值特征进行编码的领域特定推理等方面的建议。总之,手动头脑风暴可以转变为从业者与 LLM 的协作,从而加快这一过程。
示例: 基于 LLM 驱动的分析和建议,一组基于文本的客户服务记录可以生成:(i) 用于指示事件升级的二进制标志;(ii) 涉及多轮对话或多份记录的客户对话的聚合情感分数;以及 (iii) 从文本嵌入中获取的主题集群,例如产品质量、支付、配送等。
3. 通过代码生成和调试简化实验流程
在机器学习工作流程中,编写样板代码相当普遍,无论是定义多个模型、预处理管道还是评估方案。虽然大多数 LLM 并非专门为构建复杂软件而设计,但它们是生成骨架代码片段的绝佳选择,这些代码片段可以被实例化和完善,从而不必“从零开始”,并将更多时间投入到真正重要的事情上,如设计创新和结果的可解释性。另一方面,可以利用它们的分析推理能力来检查实验性代码片段,并识别从业者可能忽略的潜在问题——例如数据泄露、数据划分不当等。
示例: 一个 LLM 可以为我们提供以下代码框架,我们可以从这里继续设置优化器、数据加载器以及训练我们的基于 PyTorch 神经网络模型所需的其他关键元素。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# LLM 辅助的 PyTorch 训练循环快速入门 import torch from torch import nn, optim class SimpleNet(nn.Module): def __init__(self, input_dim, hidden_dim, output_dim): super().__init__() self.fc = nn.Sequential( nn.Linear(input_dim, hidden_dim), nn.ReLU(), nn.Linear(hidden_dim, output_dim) ) def forward(self, x): return self.fc(x) |
4. 跨团队高效知识转移
沟通可能是一种不容小觑的隐性成本,尤其是在机器学习项目中,数据科学家、工程师、领域专家和利益相关者必须交换信息,而每个团队可以说都有自己的“语言”。LLM 可以帮助弥合词汇上的差距,拉近技术和非技术观点。这样做的影响不仅是技术上的,也是文化上的,它能实现更高效的决策,减少分歧,并促进共同的主人翁意识。
示例: 用于欺诈检测的分类模型可能会以训练日志和混淆矩阵的形式返回结果和性能指标。为了让决策者等其他团队能够理解这些信息,你可以向你的 LLM 请求一份面向业务的结果摘要,提示语可以是:“用简单、面向业务的术语解释为什么该模型可能会错误分类某些交易。” 没有了技术术语的障碍,利益相关者就能更好地理解模型的行为和权衡。
5. 自动化研究推动持续创新
机器学习模型在不断发展,我们的系统无论多么稳健和有效,迟早都需要改进或替换。因此,跟上研究和创新的步伐至关重要,但随着新方法和新范式每天都在涌现,这可能会让人应接不暇。LLM 可以通过查找和总结最新的研究论文、为我们的场景提出最相关的方法,甚至建议如何将新技术应用到我们的工作流程中,从而减轻这种负担。因此,采纳新研究的阻力显著降低,使您的机器学习解决方案更容易保持在创新的前沿。
示例: 假设一篇图像分类论文中提出了一种新的注意力机制变体。通过向 LLM 提问,例如“我如何能以最小的改动将这个创新组件集成到我的 PyTorch ResNet 基线模型中?”,并附上当前的相关代码,LLM 可以在几秒钟内为您起草一份实验计划。
总结
本文讨论并强调了 LLM 在应对机器学习开发工作流程中常见但重要的挑战(如数据可用性、跨团队沟通、特征工程等)方面的作用、影响和价值。
暂无评论。