首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

初学者指南:如何在数据科学项目中集成 LLM

学习如何在数据项目中最佳利用 LLM

简介

大型语言模型(LLM)已经改变了我们的工作方式。通过利用这些模型的能力,我们可以大幅提高工作效率,让它们为特定任务生成所需的文本。

在数据科学项目中,LLM 可以提供许多过去未曾考虑过的帮助。因此,本文将指导你如何将 LLM 集成到数据科学项目中。尽管这个过程可能不是线性的,但每个步骤都会对你的项目有所帮助。

好奇如何操作?让我们开始吧!

数据探索

数据科学家的一项重要工作是数据探索(Data Exploration)。然而,这通常是一个繁琐且重复的过程。

我们可以通过集成 LLM 来辅助数据探索。例如,可以直接使用 ChatGPT 或 Gemini 等工具,并复制代码来执行命令。

不过,我们将采用更简单的方法,即使用 PandasAI 库,通过 LLM 来辅助数据探索,而无需复杂的设置。

安装 PandasAI

pip install pandasai

设置 LLM

我们有许多 LLM 选项可供选择,本教程将使用 OpenAI 的 LLM,并使用 Kaggle 上的泰坦尼克号(Titanic)示例数据集。

from pandasai import SmartDataframefrom pandasai.llm import OpenAI

llm = OpenAI(api_token="YOUR-API-KEY")sdf = SmartDataframe("titanic.csv", config={"llm": llm})

进行数据探索

数据集加载到 SmartDataframe 对象后,我们就可以使用 PandasAI 进行数据探索。例如,我们可以让 LLM 解释数据的内容:

sdf.chat("Can you explain to me what is the dataset about?")

输出示例

数据集包含有关泰坦尼克号乘客的信息,包括他们的生存状态、舱位等级、姓名、性别、年龄、登船地点等。

我们还可以查询数据的缺失值比例:

sdf.chat("What's the missing data percentage from the data?")

输出示例

Age 20.57% Fare 0.23% Cabin 78.23%

此外,还可以直接让 PandasAI 生成数据可视化图表,例如绘制票价与生还情况的关系图:

sdf.chat("Plot a chart of the fare by survived")

你可以尝试不同的提示(prompt),LLM 将帮助你快速探索数据。

特征工程(Feature Engineering)

LLM 还可以帮助我们讨论并生成新的特征。例如,我们可以使用 PandasAI 让 LLM 为数据集提出新的特征:

sdf.chat("Can you think about new features coming from the dataset?")

如果需要更专业的领域特征工程,我们可以向 LLM 询问应如何创建特征,甚至应该收集哪些数据。

生成文本数据的向量嵌入(Vector Embedding)

LLM 还可以用于生成文本数据的向量嵌入,以便进行后续的机器学习任务。例如,我们可以使用 OpenAI 生成文本嵌入:

from openai import OpenAIimport pandas as pd

client = OpenAI(api_key="YOUR-API-KEY")

data = { "review": [ "The product is excellent and works as expected.", "Terrible experience, the item broke after one use.", "Average quality, not worth the price.", "Great customer service and fast delivery.", "Poor build quality, but it does the job." ]}

df = pd.DataFrame(data)

def get_embedding(text, model="text-embedding-3-small"): text = text.replace("\n", " ") response = client.embeddings.create(input=[text], model=model) return response.data[0].embedding

df["embeddings"] = df["review"].apply(lambda x: get_embedding(x, model="text-embedding-3-small"))

生成的嵌入向量可用于后续的机器学习任务,如分类、聚类等。

模型构建(Model Building)

LLM 还可以用作分类器来对数据进行分类。例如,我们可以使用 Scikit-LLM(Scikit-learn 的 LLM 扩展库)来进行文本分类。

安装 Scikit-LLM

pip install scikit-llm

进行情感分析

from skllm.config import SKLLMConfigfrom skllm.models.gpt.classification.zero_shot import ZeroShotGPTClassifierfrom skllm.datasets import get_classification_dataset

SKLLMConfig.set_openai_key("YOUR-API-KEY")

# 训练数据集(标签:Positive, Neutral, Negative)X, y = get_classification_dataset()

clf = ZeroShotGPTClassifier(openai_model="gpt-3.5-turbo")clf.fit(X, y)labels = clf.predict(X)

输出示例

array(['positive', 'positive', 'positive', ..., 'neutral', 'negative'], dtype='<U8')

LLM 可以直接用于文本分类,而无需额外的模型训练。如果想提高准确率,可以使用**少样本学习(Few-shot Learning)**来提供示例数据。

生成合成数据(Synthetic Data)

LLM 还可以用于生成合成数据,以增强数据集的多样性,帮助机器学习模型更好地泛化。例如,我们可以使用 OpenAI 生成类似但不完全相同的合成数据:

这种方法可以生成多样化的训练数据,以提高模型的泛化能力。

总结

LLM 正在改变我们的工作方式,尤其是在数据科学领域。本文介绍了如何在数据科学项目中集成 LLM,包括:

数据探索(Data Exploration)

特征工程(Feature Engineering)

模型构建(Model Building)

合成数据生成(Synthetic Data Generation)

希望这篇文章对你有所帮助!

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OCM8TMa7tyThs7eOW6PkVjIQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券