Connect with us

通用人工智能

大型语言模型与 Scikit-learn:Scikit-LLM 的综合指南

mm
SCIKIT LLM

通过将像 ChatGPT 这样的模型的复杂语言处理能力与多功能且广泛使用的 Scikit-learn 框架相结合,Scikit-LLM 提供了一个无与伦比的工具箱,用于深入探索文本数据的复杂性。 Scikit-LLM 可在其官方 GitHub 仓库 中访问,代表了高级 AI 大型语言模型(LLM)如 OpenAI 的 GPT-3.5 和 Scikit-learn 的用户友好环境的融合。这款专为文本分析设计的 Python 包使高级自然语言处理变得可访问和高效。

为什么选择 Scikit-LLM?

对于那些熟悉 Scikit-learn 景观的人来说,Scikit-LLM 感觉像是一个自然的进步。它保持了熟悉的 API,允许用户使用像 .fit().fit_transform().predict() 这样的函数。其将估计器集成到 Sklearn 管道中的能力体现了其灵活性,使其成为那些希望用最先进的语言理解增强其机器学习项目的人的福音。 在本文中,我们将探索 Scikit-LLM,从其安装到其在各种文本分析任务中的实际应用。你将学习如何创建有监督和零次文本分类器,并深入探索高级功能,如文本向量化和分类。

Scikit-learn:机器学习的基石

在深入探索 Scikit-LLM 之前,让我们先介绍其基础——Scikit-learn。Scikit-learn 是机器学习领域的家喻户晓的名字,以其全面的算法套件、简单性和用户友好性而闻名。从回归到聚类,Scikit-learn 是许多数据科学家的首选工具。 建立在 Python 科学库(NumPy、SciPy 和 Matplotlib)的基础上,Scikit-learn 以其与 Python 科学栈的集成以及其对 NumPy 数组和 SciPy 稀疏矩阵的高效性而突出。 在其核心,Scikit-learn 是关于统一性和易用性。无论选择哪种算法,步骤保持一致——导入类,使用“fit”方法与数据一起使用,并应用“predict”或“transform”来利用模型。这种简单性降低了学习曲线,使其成为机器学习新手的理想起点。

设置环境

在深入探索具体细节之前,设置工作环境至关重要。对于本文,我们将选择 Google Colab 作为平台,提供一个可访问且强大的环境来运行 Python 代码。

安装

 %%capture !pip install scikit-llm watermark %load_ext watermark %watermark -a "your-username" -vmp scikit-llm 

获取和配置 API 密钥

Scikit-LLM 需要 OpenAI API 密钥来访问底层语言模型。

 from skllm.config import SKLLMConfig OPENAI_API_KEY = "sk-****" OPENAI_ORG_ID = "org-****" SKLLMConfig.set_openai_key(OPENAI_API_KEY) SKLLMConfig.set_openai_org(OPENAI_ORG_ID) 

零次 GPT 分类器

ZeroShotGPTClassifier 是 Scikit-LLM 的一个显著功能,它利用 ChatGPT 根据描述性标签对文本进行分类的能力,而无需传统的模型训练。

导入库和数据集

 from skllm import ZeroShotGPTClassifier from skllm.datasets import get_classification_dataset X, y = get_classification_dataset() 

准备数据

将数据分割为训练和测试子集:

 def training_data(data): return data[:8] + data[10:18] + data[20:28] def testing_data(data): return data[8:10] + data[18:20] + data[28:30] X_train, y_train = training_data(X), training_data(y) X_test, y_test = testing_data(X), testing_data(y) 

模型训练和预测 定义和训练 ZeroShotGPTClassifier

 clf = ZeroShotGPTClassifier(openai_model="gpt-3.5-turbo") clf.fit(X_train, y_train) predicted_labels = clf.predict(X_test) 

评估

评估模型的性能:

 from sklearn.metrics import accuracy_score print(f"Accuracy: {accuracy_score(y_test, predicted_labels):.2f}") 

使用 Scikit-LLM 进行文本摘要 文本摘要是 NLP 领域的一个关键功能,Scikit-LLM 通过其 GPTSummarizer 模块利用 GPT 在此领域的能力。这个功能因其适应性而突出,允许它既可以作为独立工具用于生成摘要,也可以作为更广泛工作流程中的预处理步骤。 GPTSummarizer 的应用:

  1. 独立摘要: GPTSummarizer 可以独立地从冗长的文档中创建简洁的摘要,这对于快速内容分析或从大量文本中提取关键信息至关重要。
  2. 其他操作的预处理: 在涉及多个文本分析阶段的工作流程中,GPTSummarizer 可以用于压缩文本数据。这减少了计算负担,并简化了后续分析步骤,而不会失去基本信息。

实现文本摘要: 在 Scikit-LLM 中实现文本摘要的过程包括:

  1. 导入 GPTSummarizer 和相关数据集。
  2. 创建 GPTSummarizer 的实例,指定参数,如 max_words,以控制摘要长度。
  3. 应用 fit_transform 方法来生成摘要。

需要注意,max_words 参数作为指南而不是严格限制,确保摘要保持连贯性和相关性,即使它们稍微超过指定的字数。 Scikit-LLM 的更广泛影响 Scikit-LLM 的功能范围,包括文本分类、摘要、向量化、翻译,以及其处理无标签数据的适应性,使其成为多种文本分析任务的综合工具。这种灵活性和易用性适合初学者和经验丰富的从业者。 潜在应用:

  • 客户反馈分析: 将客户反馈分类为积极、消极或中立类别,可以为客户服务改进或产品开发策略提供信息。
  • 新闻文章分类: 将新闻文章分类为各种主题,用于个性化新闻源或趋势分析。
  • 语言翻译: 翻译文档用于多国运营或个人使用。
  • 文档摘要: 快速理解冗长文档的本质或创建较短的版本用于出版。

Scikit-LLM 的优势:

  • 准确性: 在零次文本分类和摘要等任务中已证实其有效性。
  • 速度: 适合实时处理任务,因为其效率高。
  • 可扩展性: 能够处理大量文本,使其适合大数据应用。

结论:拥抱 Scikit-LLM 进行高级文本分析 总之,Scikit-LLM 是文本分析领域的一种强大、多功能且用户友好的工具。其将大型语言模型与传统机器学习工作流结合的能力,加上其开源性质,使其成为研究人员、开发人员和企业的宝贵资产。无论是改进客户服务、分析新闻趋势、促进多语言交流还是从大量文档中提取基本信息,Scikit-LLM 都提供了强大的解决方案。

我过去五年一直沉浸在令人着迷的机器学习和深度学习世界中。我的热情和专业知识使我能够为超过50个不同的软件工程项目做出贡献,特别注重人工智能/机器学习。我的持续好奇心也使我对自然语言处理产生了兴趣,这是一个我渴望进一步探索的领域。