paint-brush
如何仅用几行代码就可以使法学硕士更加准确经过@FrederikBussler
7,015 讀數
7,015 讀數

如何仅用几行代码就可以使法学硕士更加准确

经过 Frederik Bussler5m2023/08/14
Read on Terminal Reader

太長; 讀書

随着 ChatGPT 等大型语言模型 (LLM) 的出现,人工智能革命发生了转变,这表明人工智能革命已经战胜了数据复杂性。由于海量数据集(高达 PB)和人类语言的复杂性,这些法学硕士面临着挑战。 Cleanlab 等以数据为中心的工具彻底改变了人工智能数据处理、自动化数据改进流程和民主化进步。由于现实数据集中的注释错误 (7-50%),以数据为中心的人工智能至关重要,这阻碍了训练。 OpenAI 和 Cleanlab 等工具优先考虑数据质量,从而显着提高模型准确性。 Python 演示展示了 Cleanlab 如何检测标签问题、过滤数据和重新训练模型,从而将准确率从 63% 显着提高到 66% 以上。这种以数据为中心的方法为 GPT-5 等未来的法学硕士带来了希望。
featured image - 如何仅用几行代码就可以使法学硕士更加准确
Frederik Bussler HackerNoon profile picture
0-item
1-item
2-item

人工智能革命已经酝酿了数十年。这是一个充满兴奋的领域,但也时常充满失望和“人工智能寒冬”。但最近,情况发生了变化。 ChatGPT、Claude 和 Bard 等大型语言模型 (LLM) 将人工智能从实验室的好奇心推向了主流


这种转变不仅是人工智能的胜利,也是对错综复杂的庞大而混乱的数据的胜利。俗话说“垃圾进来,垃圾出去”。新工具不断涌现,专注于改善基础数据,从而改善法学硕士。


法学硕士的双重挑战

“大型语言模型”一词包含两个巨大的挑战。首先,数据量巨大。我们谈论的 GPT-4 数据量高达PB (一百万千兆字节),其中包括数百万本书、博客、社交媒体帖子、视频记录等。这种巨大的规模提供了巨大的潜力,但也带来了重要的后勤考虑。


其次,自然语言的复杂性。依赖于上下文、模糊性和多样性的语言数据是一头野兽,即使是最好的算法也难以驯服。准确地标记所有这些数据是不可能的,这不可避免地意味着即使是最先进的法学硕士也要接受大量错误标记数据的训练。


面对这些挑战,新的以数据为中心的工具和方法出现了,实现了人工智能能力的真正飞跃。 Cleanlab 等解决方案开始提供收集各种数据、自动化质量控制以及将语言处理为适合人工智能模型的形式的方法。


这些工具不仅提供了渐进式改进,而且还提供了改进。他们从根本上重塑了人工智能数据处理的方法。他们将处理大规模语言数据的任务从容易出错的手动过程转变为自动化、精确的过程,使该领域民主化并以前所未有的速度取得进步。


为什么需要以数据为中心的人工智能(带有 Python 演示)

在 AI 中,现实世界的数据集包含7-50% 的注释错误。这些缺陷极大地阻碍了培训和评估。以数据为中心的人工智能强调提高数据集本身的质量。


例如,OpenAI 的策略就说明了这一重点:“我们优先考虑过滤掉所有不良数据,而不是保留所有良好数据。这是因为我们总是可以在以后用更多的数据来微调我们的模型,以教它新的东西,但让模型忘记它已经学到的东西要困难得多。”


然而,手动过滤数据的方法既耗时又昂贵。 Cleanlab 包是当今流行的以数据为中心的人工智能实践的开源框架。它允许您在经过训练的 ML 模型的输出上运行数据质量算法,以检测常见的数据集问题,例如标签错误、异常值、漂移等。


只需几行代码,您就可以自动查找和识别图像、文本、表格和音频等各种类型数据中的问题。通过使用 Cleanlab 包,您可以决定如何改进数据集和模型、重新训练 ML 模型,并在不对现有代码进行任何更改的情况下查看其性能的提高。


另一方面,Cleanlab Studio 不仅仅是 Cleanlab 软件包的扩展;它是一个无代码平台,旨在查找和修复现实数据集中的问题。它不仅仅停留在检测问题上,还进一步处理数据管理和纠正,甚至自动化将原始数据转化为可靠的机器学习或分析的几乎所有困难部分。


让我们使用 Cleanlab 包来演示以数据为中心的 AI 的强大功能。


1. 准备数据和微调

我们从斯坦福礼貌数据集开始。确保您已加载训练集测试集。在此演示中,我们将针对 3 类分类对 Davinci LLM 进行微调,首先不使用 Cleanlab,然后了解如何通过以数据为中心来提高准确性。我们可以运行一个简单的 bash 命令来训练模型。


!openai api fine_tunes.create -t "train_prepared.jsonl" -v "test_prepared.jsonl" --compute_classification_metrics --classification_n_classes 3 -m davinci --suffix "baseline"


完成后,我们可以查询fine_tunes.results端点来查看测试准确性。


!openai api fine_tunes.results -i ft-9800F2gcVNzyMdTLKcMqAtJ5 > baseline.csv

`df = pd.read_csv('基线.csv')

基线_acc = df.iloc[-1]['分类/准确度']`


我们得到的结果准确率为 63%。让我们看看是否可以改进这一点。


2. 获取预测类别概率

现在,让我们使用 OpenAI 的 API 来计算嵌入并拟合逻辑回归模型以获得样本外预测类别概率。


# Get embeddings from OpenAI. from openai.embeddings_utils import get_embedding

embedding_model = "text-similarity-davinci-001" train["embedding"] = train.prompt.apply(lambda x: get_embedding(x, engine=embedding_model)) embeddings = train["embedding"].values

# Get out-of-sample predicted class probabilities via cross-validation.

from sklearn.linear_model import LogisticRegression

model = LogisticRegression() labels = train["completion"].values pred_probs = cross_val_predict(estimator=model, X=embeddings, y=labels, cv=10, method="predict_proba")


只需一行代码,Cleanlab 就能估算出训练数据集中哪些示例存在标签问题。


from cleanlab.filter import find_label_issues

现在我们可以获得估计有标签问题的示例索引:


issue_idx = find_label_issues(labels, pred_probs, return_indices_ranked_by='self_confidence') # sort indices by likelihood of label error


3. 过滤标签问题并重新训练

现在,我们已经自动提取了可能被错误标记的示例的索引,因此我们可以删除它们并训练新的分类器。


# Remove the label errors

train_cl = train.drop(issue_idx).reset_index(drop=True) format_data(train_cl, "train_cl.jsonl")


现在让我们用更好的数据训练一个更强大的分类器。


!openai api fine_tunes.create -t "train_cl_prepared.jsonl" -v "test_prepared.jsonl" --compute_classification_metrics --classification_n_classes 3 -m davinci --suffix "dropped"


# Evaluate model on test data

!openai api fine_tunes.results -i ft-InhTRQGu11gIDlVJUt0LYbEx > cleanlab.csv df = pd.read_csv('cleanlab.csv') dropped_acc = df.iloc[-1]['classification/accuracy']


我们获得了超过 66% 的准确率,改进了最先进的可微调模型(GPT-3,因为你无法微调 GPT-4),只需自动改进数据集,无需任何更改到模型。


借助 Cleanlab Studio,还可以自动修复不正确的标签,而不是直接删除它们,从而进一步提高准确性。 Cleanlab 的指南显示,这需要高达 77% 的准确率。


要点

使用 Cleanlab 等以数据为中心的工具,您可以有效地查找并修复数据和标签问题,从而显着提高 Davinci 等法学硕士的表现。这种方法不会改变模型架构或超参数,仅专注于提高训练数据的质量。


本指南中概述的方法可能是提高 AI 模型准确性和鲁棒性的关键,即使对于未来的高级法学硕士(如 GPT-5)也是如此。