GenAI提速省钱绝招!告别直接上传大数据,用Prompt描述数据集Schema,让LLM生成代码本地执行!巧用Hugging Face Transformers API和Gradio,轻松构建AI应用Web前端,省Tokens防泄露,数据分析效率翻倍!
译自:Save Valuable GenAI Tokens With This One Simple Trick
作者:Joab Jackson
基于大型语言模型 (LLM) 的生成式 AI 服务,例如 OpenAI 或 Google Gemini,在某些任务上比其他任务更擅长。正如技术专家和 Developer Learning Solutions 创始人 Wei-Meng Lee 在上个月的 ACM TechTalk 中所建议的那样,该讲座题为“Unlock Hugging Face: Simplify AI with Transformers, LLMs, RAG, Fine-Tuning”。
例如,令人惊讶的是,LLM 不擅长执行分析任务。即使你想使用 LLM 来完成这项任务,考虑到你的数据集的大小,它的成本也可能高得令人望而却步。
假设你有一个包含 20 列和 500 万行的 CSV 文件。它可能包括交易记录以及客户数据。你想问一个问题,例如这个客户在某一天购买了什么。你这个月赚了多少钱?这对 LLM 来说是简单的工作吗?
“问题是,不是的,”Wei Meng 解释说。“LLM 非常不擅长分析任务。”
当然,LLM 非常擅长基于文本的问题,以及从大型非结构化文本中提取信息。然而,数值分析仍然是一个挑战。
但是,有一种方法仍然可以使用 LLM 来完成此类任务。
用户提供的信息以及与 GenAI 聊天服务交互时收到的答案被称为“上下文窗口大小”。这通常以 tokens 衡量。
粗略地说,一个 token 大约等于 3/4 个英语单词。单词的部分可以是完整的 token,前缀和后缀构成它们自己的 token。
来自 Hugging Face 关于构建 AI Agents 的课程中的 tokenization 示例。
不同的服务具有不同的上下文大小窗口。OpenAI 的 GPT-40-mini 的内容窗口大小为 128,000 个 tokens,或大约 96,000 个单词和相关字符,包括问题和答案。
因此,你必须将整个问题以及所有支持数据塞入上下文窗口。
“对于正常的聊天,这不是问题,”Wei Meng 说。
但是,如果你使用非常大的数据集,这将花费你很多钱!
一个 20 列 500 万行的 CSV 值文件将迅速消耗掉该 token 窗口。
超过上下文窗口大小,你将收到错误消息或产生额外费用。
此外,将你的数据运送到外部会使你的数据隐私面临风险。
不要发送整个数据集,而是将数据保留在你的服务器上。然后,通过包含数据集格式的描述(可能带有 schema 本身),甚至可能包含一些示例(已匿名化)来制定提示。
然后,不要要求 GenAI 回答你的问题,而是要求 GenAI 生成必要的代码或查询来回答这些问题。
然后,你在本地环境中执行代码。
“你不会违反上下文窗口大小。你不会牺牲数据的隐私,”他说。
在一个例子中,Wei Meng 展示了如何使用 OpenAI 和 LM Studio 分析泰坦尼克号灾难性航行中所有乘客的数据集。包含数据的 CVS 文件(有 891 行和 12 列)被加载到 Python DataFrame 中。
这是他随后给 OpenAI 的提示:
{
'role':'userf',
'content':'''
Here is the schema of my data:
PassengerID,Survived,Pclass,Name,Sex,Age,Sib5p,Parch,Ticket,Fare,Cabin,Embarked
Note that for Survived, 0 means dead, 1 means alive
Return the answer in Python code only
For your info, I have already loaded the CSV file into a dataframe named df
'''
}
总的来说,提示越详细,你得到的答案就越好,Wei Meng 建议道。
加载所有提示后,你可以提出你的问题,例如
- 男女乘客的比例是多少?
- 你能可视化每个乘客舱位等级 (Pclass) 的生存率吗?
- 你能可视化单独旅行与与家人一起旅行的乘客的生存率吗? 请注意,如果您手头有 Python 可视化工具,则答案不需要基于文本。
使用 Jupyter Notebook 或 LM Studio,您甚至可以自动执行查询,结果会在返回后立即显示在工作区中。
“好处是您不必上传数据,也不必学习数据分析,”他说。
来自 Wei-Meng Lee 的 Hugging Face 演示文稿。
Wei-Meng Lee 的演讲主要关注如何使用 Hugging Face,这是一个协作平台,供开发人员和研究人员使用机器学习模型、数据集和应用程序并进行协作。
在演示中,Wei-Meng 展示了如何通过该公司的 Transformers API 使用 Hugging Face 的预训练模型。Hugging Face 的 pipeline 对象 可以简化使用这些模型的任务,然后他继续演示。他还展示了如何使用 Gradio library 轻松运行基于 LLM 的 Python 应用程序。
“Gradio 允许您仅用几行代码构建一个非常好的 Web 前端,”Wei-Meng 说。