数据分析师如何利用大语言模型实现工作自动化与效率提升
如果你是一个数据分析师,或者接触过数据分析师的工作日常,你一定知道:
数据分析师作为业务的数据支持者,往往一手握着不同来源的数据,以 SQL 等技术手段提取与处理;另一手握着可视化方法、报表、报告等展现形式,对业务方、合作方、上级领导展示数据的内涵与关系。
如果你了解近几年的 AI 技术,一定知道当下人工智能已经具备非常强大的对话沟通能力(以 ChatGPT 为代表的大语言模型 LLM)、文生图能力、图片理解能力及文生视频能力等。这些模型已经可以让 AI 像人一样去处理许多文字、图片、视频等相关的工作。
AI 将是未来发展的趋势,很多专家学者都提到,AI 将会代替很多人类做的工作。居安思危,未雨绸缪。那么作为一个数据分析师,在 AI 可能替代掉你之前,不妨我们主动出击,先来了解如何用 AI 替代你自己。
本文我们以 LLM 出发,推演 AI 替代一个数据分析师的几个阶段。
第一阶段:数据分析师使用 LLM
使用 LLM 替代你的第一步,是你先要学会使用 LLM。在这一阶段,你只需要有一个和 LLM 可以交互的界面,就可以使用 LLM 强大的功能了。最初火起来的 ChatGPT,或是当前前沿的 GPT-4 都是理想的选项;国内一众大模型在中文方面的表现,于某些评测上已经超过了 GPT-4,故使用国内研发的大模型也是不错的选择,典型如文心一言、通义千问、讯飞星火、智谱清言等。
数据分析师的日常工作可以大致分为:拆解业务模式,制作数据指标体系,制作可视化看板/报表/报告。这几个步骤使用 LLM 均可以非常有效地提升各个环节的效率。
1. 拆解业务模式
对于拆解业务模式,你可以直接从数据分析师的角度,向 LLM 提问,为自己所要分析的行业得到可靠的信息输入。例如,你做为一个电商数据分析师,在不知该如何下手的时候,就可以向 LLM 提问,获取一些分析思路。
Prompt 示例:
我是一名电商数据分析师,最近需要分析 Q3 季度的用户留存情况。请帮我列出分析这个主题需要考虑的关键维度,并给出初步的分析框架。
2. 制作数据指标及其体系
制作数据指标及其体系,最基础的实操部分就是写 SQL。LLM 是可以直接帮助你来写 SQL 的,你的描述足够清晰,写出的 SQL 就可以足够准确。
Prompt 示例:
我有一个订单表 orders,包含字段 order_id, user_id, amount, create_time。请帮我写一个 SQL,查询过去 30 天每个用户的总消费金额,并按金额降序排列,只取前 10 名。
当然,若觉得结果缺一些信息(如没有按照日期升序排列),可以将需求融合到问题中,得到更为精确的答案。
3. 制作报表与可视化
数据分析师的另一个工作,就是制作报表、报告、可视化图表等展示材料。制作这些材料需要一些数据输入,这需要我们在提问时就将这些数据输入带入到问题中,让 LLM 根据这些数据进行扩写。
对于绘制图表,LLM 有时可能无法帮我们直接完成,但可以帮我们生成制作图表的 Python 代码。而在最新一版的模型中,这些代码结果也可以被渲染出来,绘制图表就可以非常轻松地完成。
如果不使用 LLM,完成以上所有步骤,既需要你查找资料,还需要构思 SQL,或是打开文档软件进行各个操作。如今,使用 LLM 可以非常快速完成以上所有工作,大大提升一个数据分析师的工作效率。
第二阶段:让 AI 学会使用工具
完成了第一阶段,有些分析师可能会说:AI 虽然功能强大,但也并不是什么事都会做的,比如它写出了 SQL,但没法读数据库吧?是的,一个崭新的 LLM 是不会读数据库,但如果你教会了它呢?这就需要提到一个非常著名的开源项目:LangChain。
LangChain 是一个用于开发由语言模型驱动的应用程序的框架。它专注于将 LLM 与其他数据源连接起来,并允许语言模型与其环境进行交互。LangChain 框架提供了两个主要的价值主张:
组件:LangChain 为处理语言模型所需的组件提供模块化的抽象。它为所有这些抽象提供了实现的集合,旨在易于使用。
Chain:这些链可以被看作是以特定方式组装这些组件,以便最好地完成特定用例。这旨在成为一个更高级别的接口。
LangChain 可以以 Tool 的形式,将一些 LLM 不能直接操作的功能工具化,再将使用这些工具的时机、输入输出分析到位,就可以进行调用了。甚至,LangChain 可以将上网检索集成为一个原装工具,这也构成当下很火的 RAG(Retrieval Augmented Generation)LLM 应用方案的主要依赖。别说是数据库了,整个互联网都会是 LLM 的'数据库'。
有了 LangChain 这类工具,LLM 就可以被看作一个'大脑',各种 Tools 就如同外设或四肢,AI 也即可以真正被看作是一个'人'了。
代码实践:函数调用
做为数据分析师,可以借助 LangChain 将一些常用的操作(如读数据库)加入到 Tool 集合中。你需要将所谓的 AI 所暂时不会的'操作'代码化。
以下是一个使用 Python 和 LangChain 风格伪代码的示例,展示如何定义一个工具供 LLM 调用:
from langchain.agents import initialize_agent, Tool
from langchain.llms import OpenAI
import sqlite3
def get_flight_info(date, from_city, to_city):
"""查询航班信息"""
conn = sqlite3.connect('flights.db')
cursor = conn.cursor()
query = f"SELECT flight_no FROM flights WHERE date='{date}' AND origin='{from_city}' AND dest='{to_city}'"
result = cursor.execute(query).fetchone()
conn.close()
return f"航班号为 {result[0]}" if result else "未找到航班"
tools = [
Tool(
name="FlightSearch",
func=get_flight_info,
description="用于查询指定日期和起止城市的航班号"
)
]
agent = initialize_agent(tools, llm=OpenAI(), agent="zero-shot-react-description")
response = agent.run("帮我查一下 2022 年 1 月 23 日从北京到广州的航班号")
print(response)
可见,LLM 无法得知航班号,但通过函数调用的方式,即可以知道航班号,并进行阐述表达。做为数据分析师,可以把常用的像是查询数据、AB 实验等做成'接口',并在 description 字段中详细描述该接口的用途,LLM 会分析该字段来决定是否需要调用该接口。
第三阶段:管理你的 AI
有时我们向 LLM 提问,可以看到 AI 给出的答案说得是头头是道,但仔细验证会发现是有问题的。这种现象就是大模型的幻觉现象。
解决幻觉现象的方法有两个主要的方向:一是把 LLM 训练得更加聪明,二是用多个 AI 配合(一个出结果,一个负责检查和质疑),以避免这种情况的发生。
因此,我们在实际使用 LLM 时,可以实例化多个 LLM 助手。此时你就像一个老板,给自己的不同的 LLM 助手部署任务,让 AI 高效并且可靠地完成你的工作。
多智能体协作架构
例如,在一个数据分析项目中:
- 一个 AI 负责分析需求报告;
- 一个 AI 负责将需求转成提数语句;
- 一个 AI 负责取数据、清洗数据;
- 一个 AI 负责制作报表或报告;
- 另创造三个 AI,一个负责需求与提数的检查,一个负责提取逻辑与取数结果的核对,一个负责数据与报表或报告的一致性校验。
整个过程就可以如同你多了七个助手帮你在做事,而你只需要将需求输入即可。有一个开源项目 ChatDev,以大模型为中心,构建了一个虚拟软件开发公司,在这个公司里,也有像是开发人员、测试人员、项目经理等角色,这些角色也均为 AI。通过该项目我们可以见识到 AI 让软件开发变成了多么容易的一件事。
当然,有一点是不能忘记的。你理解 AI 可以为你做什么时,做为一个数据分析师同样也需要了解自己想要什么,只有将自己想要的清楚地表达出来,AI 才可以理解到你的所求。
第四阶段:最后一步
如果你通过 AI 替代了你,最后一步就是:不要告诉你的老板。
但这只是一个玩笑。实际上,当 AI 能够承担大部分重复性工作后,数据分析师的价值将转移到更高阶的领域:
- 业务洞察深度:AI 能提供数据,但无法完全理解复杂的商业背景和人性因素。
- 策略制定:基于数据提出可落地的商业建议,而不仅仅是报表。
- AI 系统维护:成为那个设计、监控和优化 AI 工作流的人。
掌握 AI 工具不是为了被淘汰,而是为了让自己从繁琐的执行中解放出来,专注于更有创造性的决策支持工作。