跳到主要内容

12 篇博文 含有标签「数据分析」

数据分析和数据科学

查看所有标签

POML:结构化提示工程的兴起与AI应用架构的“新三驾马车”展望

· 阅读需 12 分钟
Marvin Zhang
软件工程师 & 开源爱好者

引言

在人工智能(AI)飞速发展的今天,提示工程(Prompt Engineering)正从一门依赖直觉的“艺术”转型为系统化的“工程”实践。微软于2025年推出的POML(Prompt Orchestration Markup Language)作为一种结构化标记语言,为这一变革注入了新动力。POML不仅解决了传统提示工程的混乱与低效,还预示着AI应用架构可能迎来类似Web开发的“HTML/CSS/JS三驾马车”范式。本文基于一份深入研究报告,详细剖析POML的核心技术、与Web架构的类比、实际应用场景以及未来潜力,为开发者与企业提供可操作的洞见。

POML开启提示工程新纪元

POML由微软研究院推出,其设计灵感源自HTML和XML,旨在通过模块化、语义化的标签(如<role>、<task>)将复杂的提示分解为清晰的组件,解决传统“提示意面”(Prompt Spaghetti)的痛点。它通过以下特性重塑提示工程:

  • 语义化标签:提升提示的可读性、可维护性和可重用性。
  • 多模态支持:无缝整合文本、表格、图像等数据。
  • 样式系统:受CSS启发,分离内容与呈现,简化A/B测试。
  • 动态模板:支持变量、循环和条件,实现自动化和个性化。

POML不仅是一门语言,更是AI应用架构的结构层,与优化工具(如PromptPerfect)和编排框架(如LangChain)共同构成“新三驾马车”。这一架构与学术界提出的“提示分层架构”(Prompt-Layered Architecture, PLA)理论高度契合,将提示管理提升为与传统软件开发同等重要的“第一公民”。

未来,POML有望成为多智能体系统(Multi-Agent Systems)的“通信协议”和“配置语言”,为构建可扩展、可审计的AI应用奠定基础。尽管社区对其复杂性存在争议,但其潜力不可忽视。本文将为开发者提供实用建议,助力企业拥抱这一变革。

斯坦福大学研究揭示AI对开发者生产力的真实影响:并非万能灵丹

· 阅读需 10 分钟
Marvin Zhang
软件工程师 & 开源爱好者

本文内容基于斯坦福大学研究员 Yegor Denisov-Blanch 在 AIEWF 2025 大会上的演讲,该研究分析了来自数百家公司的近10万名开发者的真实数据。感兴趣并有条件的可以去 YouTube 观看全部演讲内容。

最近,“AI将取代软件工程师”的论调甚嚣尘上。Meta的马克·扎克伯格(Mark Zuckerberg)甚至在今年年初表示,他计划在年底前用AI取代公司所有中级工程师。这种愿景无疑能鼓舞人心,但也给全球的技术决策者带来了压力:“我们离用AI取代所有开发者还有多远?”

斯坦福大学软件工程生产力研究团队的最新发现,为这个问题提供了一个更现实、更细致的答案。经过对近10万名软件工程师、600多家公司、数千万次提交以及数十亿行私有代码库数据的深入分析,这项大规模研究表明:人工智能确实可以提升开发者生产力,但它绝非一个“一劳永逸”的万能解决方案,其影响是高度情境化且充满细微差别的。虽然平均生产力提升了约20%,但在某些情况下,AI甚至可能适得其反,降低生产力。

Crawlab AI: 借助大语言模型 (LLM) 打造智能爬虫

· 阅读需 6 分钟
Marvin Zhang
软件工程师 & 开源爱好者

“如果我当年去问顾客他们想要什么,他们肯定会告诉我:一匹更快的马” -- 亨利•福特

前言

当我初入职场时,作为数据分析师的我,偶然体验到了网络爬虫(Web Crawler)自动化提取网页数据的能力,自此我一直对这个神奇的技术充满好奇。随着后来我不断钻研爬虫技术,逐渐了解到网络爬虫的核心技术,其中就包括网页解析(Parsing),即通过分析网页 HTML 结构而构建基于 XPath 或 CSS Selector 数据提取规则的过程。这个过程长期以来都需要人工介入,虽然对于爬虫工程师来说相对简单,但如果需要大规模抓取,这个过程是非常消耗时间的,而且随着网页结构变化会增加爬虫维护成本。本篇文章将介绍我开发的基于**大语言模型(LLM)**的智能爬虫产品:Crawlab AI。虽然它还处于早期开发阶段,但已经展现出强大的潜力,有望让数据从业者轻松获取数据。

相关工作

作为爬虫管理平台 Crawlab 的创始人,一直都热衷于让数据获取变得简单和轻松。跟数据从业者不断交流,我意识到智能爬虫(或通用爬虫)的大量需求,即不用人工编写解析规则就可以抓取任何网站的目标数据。当然,也不止我一个人在研究和试图解决这个问题:2020年1月,青南大佬发布了基于标点密度的通用文章解析库 GeneralNewsExtractor,可以 4行代码实现通用新闻爬虫;2020年7月,崔庆才大佬发布了 GerapyAutoExtractor,基于 SVM 算法实现了列表页数据抓取;2023年4月,我通过高维度向量聚类算法,开发了 Webspot,同样可以自动提取列表页。这些开源软件的主要问题在于,识别的精准度与人工编写的爬虫规则有一定差距。

此外,商业爬虫软件 Diffbot八爪鱼 通过自研的机器学习算法,也实现了部分通用数据抓取的功能。但可惜的是它们的使用成本相对较高。例如,Diffbot 的最低套餐就需要每月支付 299 美元的订阅费。

探索Crawlab:您的企业级爬虫管理新选择

· 阅读需 3 分钟
Marvin Zhang
软件工程师 & 开源爱好者

引言

在现代的数据驱动时代,获取和管理网上信息变得至关重要。为企业和开发者提供强大支持的,Crawlab出现了,它是一个企业级的爬虫管理平台,特点是开箱即用。无论您的团队规模大小,Crawlab都能为您提供专业和高效的爬虫管理解决方案。

核心功能

Crawlab的核心功能包括分布式系统管理、爬虫任务管理和调度、文件编辑、消息通知、依赖管理、Git集成以及性能监控等多方面。其中,它的分布式节点管理让爬虫程序能够在多台服务器上高效运行。再也不用担心手动上传、监控和部署的麻烦,Crawlab将这一切全部自动化,确保您能轻松调度爬虫任务,并实时查看爬虫程序的运行状态以及任务日志。

爬虫列表

特色亮点

特别值得一提的是,Crawlab提供在线编辑爬虫代码的功能,支持主流编程语言高亮显示,让您轻松调试爬虫程序。此外,它还提供了Crontab风格的定时任务设置,让您能在指定时间自动执行爬虫任务,极大提高了工作效率。

代码编辑

浅谈生成式 AI 技术:检索增强生成 RAG

· 阅读需 4 分钟
Marvin Zhang
软件工程师 & 开源爱好者

引言

如今,生成式 AI (Generative AI)的应用雨后春笋的涌现出来,让人应接不暇。而大型语言模型(LLM,Large Language Model),随着 ChatGPT 的发布而变得异常火热,是生成式 AI 应用的一个典型。但是,LLM 存在缺陷。其中一个比较大的问题在于幻觉(Hallucination):对于不熟悉的问题,LLM 会瞎编乱造,编造出看似专业却没有任何事实依据的答案。而为了解决这个问题,很多基于 AI 的知识问答系统采用了**检索增强生成(RAG)**技术,从而让 LLM 能够做出基于事实的回答,从而消除幻觉。本篇文章将简单介绍 RAG 是如何在知识问答系统中发挥作用的。

LLM

要理解 RAG,我们首先需要简单理解一下 LLM。其实,LLM 在大量的参数训练下,已经可以完成很多难以置信的 NLP 任务,例如问答、写作、翻译、代码理解等等。但是,由于 LLM 的“记忆”停留在预训练时刻,肯定会存在它不知道的知识和问题。例如,OpenAI 开发的 ChatGPT 就不能回答 2021 年 9 月之后的问题。此外,由于幻觉的存在,LLM 会显得很有想象力且缺乏事实依据。因此,我们可以将 LLM 比做一个知识渊博且全能的智者,可以干很多事情,但却失忆了,记忆只停留在某一时间之前,而且不能形成新的记忆

而为了让这个智者能够在现代试题考试中得到高分,我们该怎么做呢?答案就是 RAG。

实战数据科学: 如何利用 sklearn 轻松上榜 Kaggle 入门 NLP 竞赛

· 阅读需 7 分钟
Marvin Zhang
软件工程师 & 开源爱好者

引子

Kaggle 是一个面向数据科学家、机器学习工程师和数据分析师的在线社区和数据科学竞赛平台,上面有很多带有奖励的数据科学竞赛(Competition)以及数据集(Dataset)。Kaggle 社区在数据科学领域非常出名,很多互联网业界大厂也在上面发布有奖竞赛,竞赛金额从几万到百万美元不等。本文介绍的是最近参与的 Kaggle 一个入门 NLP 竞赛,没有现金奖励,但可以学习到 NLP 相关的机器学习知识。

Kaggle Competition

竞赛简介

这个数据科学竞赛是希望竞赛参与者通过给定 Twitter 上的一条推文(Tweet),来判断推文是否是关于一场真实的灾害(Disaster)。下图是某一条推文的情况,推文中有 "ABLAZE"(燃烧的)关键词,预示着该推文是说有房子燃起来了。

Disater Tweet

实战数据分析: 开源的自动化数据探索神器 Rath

· 阅读需 5 分钟
Marvin Zhang
软件工程师 & 开源爱好者

引子

探索性数据分析(Exploratory Data Analysis,EDA)是数据分析师或数据科学家面对数据集(Dataset)时经常需要完成的任务。利用 Pandas、Seaborn 之类的 Python 工具可以很轻松的完成单变量分析(Univariate Analysis)、双变量分析(Bi-variate Analysis)、多变量分析(Multi-variate Analysis),但使用这些它们做数据探索不仅有一定技术门槛,而且还需要人工编写脚本来进行数据操作和分析。本篇文章将介绍一个非常酷的自动化数据探索开源工具 Rath,可以自动化的完成 EDA,成为数据分析界的 Autopilot 或 Copilot。

Rath

安装 Rath

由于 Rath 还在高速迭代中,文档也不是很齐全,要较快的体验只能到官网提供的演示网址

不过,如果会一些前端技术的话,还是可以本地安装,只是步骤稍微繁琐一些。

在开始之前,保证你安装了 Node.js 16 以及 Yarn。

实战数据分析: 利用开源项目 Superset 搭建自助数据分析平台

· 阅读需 7 分钟
Marvin Zhang
软件工程师 & 开源爱好者

引子

数据分析(Data Analytics)以及商业智能(Business Intelligence)是很多企业实现数字化战略的重要业务模块。我们之前在《浅谈数据:数据领域需要掌握些什么?》中介绍过数据领域中不可获取的部分,也就是架构流程方面的软件工具辅助服务。本文将介绍的数据分析开源平台 Apache Superset 就能提供这样的服务。本文将简单介绍如何安装部署以及使用 Superset。

Superset Official Site

Superset 简介

Superset 是 Apache 基金会孵化的开源自助数据分析平台,可以看成开源版的 Power BITableau,不过 Superset 的交互界面仅限于 Web。整个系统基于 Python Flask,集成了 MySQL、Postgres、SQL Server 等主流关系性数据库,以及 ElasticSearch、ClickHouse、Snowflake 等现代数据库。前端可视化分析界面跟 Power BI 和 Tableau 非常类似,操作也相对简便。因此,如果需要搭建一个类似 Power BI 或 Tableau 这样的企业级数据分析平台,在不氪金的情况下,Superset 是个非常不错的选择。

Superset Dashboard

浅谈数据:聊一聊数据分析中的一些基础统计学知识

· 阅读需 5 分钟
Marvin Zhang
软件工程师 & 开源爱好者

引子

“所有模型都是错的,但有些很有用。”--George Box

数据分析对于很多人来说既熟悉又陌生。数据小白们觉得各种五颜六色的图表仪表盘看起来很酷炫,运营管理者们认为统计数字和时间趋势图可以帮助他们做业务决策,程序员们认为数据分析无非就是从数据库中将目标字段的数据按照一定要求捞取出来。这些看法都没错,但真正有用的数据分析,除了将数字呈现出来,还将发现的数据洞见与业务充分结合起来,实际为业务创造价值才有意义。了解一些基础统计学知识,很可能会对发现洞见有帮助。

平均值并不可靠

我们经常可以看到很多数据报表中会呈现出按照每天、每周、每月的平均数,例如当月每日平均销售额、去年每月平均访问次数,等等。平均值统计对某些特定的情况会有所帮助,例如每天起床的时间、瞄中射击靶心的偏移量。但更多的时候,你很可能会对平均值产生怀疑,因为平均数很多时候会上下波动,而且波动幅度还会很大。这里的根本原因来自于真实世界中的非线性分布(Non-Linear Distribution)。对于网站的响应时间、网页访问次数、股票走势的分布,都属于非线性分布。在这些非线性分布中,平均值就失效了,因为有大量的异常值(Outlier)让平均值产生了严重偏离(Skewed)。就像下图一样,对于自然分布(Normal Distribution)或高斯分布(Gaussian Distribution)来说,它是线性分布(Linear Distribution)的,因此平均值在其分布的正中间的峰值位置;但对于 Gamma 分布来说,因为它是一个非线性分布,其平均值严重偏离其峰值,而且当离群值越来越多,其平均值会进一步偏离其中心位置。

Gaussian and Gamma Distributions

因此对于这些非线性分布来说,平均值就不是一个合理的判断指标,而咱们可以采用中位数(Medium)来表示其大致的中心位置。咱们有很多种处理这种非线形分布的工具,其中一种就是箱线图(Box Plot)。如下图,两个分布被抽象为了一个箱和几条线,其中箱中心线就是中位数,而边缘是四分之一和四分之三分位线。这样不需要做过多复杂的分析就可以在一张图上一目了然的看出大致的分布情况。

浅谈数据:为什么数据治理在企业数字化转型中扮演重要角色?

· 阅读需 5 分钟
Marvin Zhang
软件工程师 & 开源爱好者

引子

“生命是靠负熵来维持的。”--《何为生命》埃尔温·薛定谔

在如今的互联网时代,数据是企业重要的资产。我们无时无刻不在产生数据:每一次打开手机应用,每一次网购下单,甚至每一次驾车穿过红绿灯,都会产生数据。数据无处不在。在企业中也更是如此。如此之多的原始数据,加上日渐成熟的数据分析技术,让企业家们大为兴奋,因为这就是企业堆积如山的金矿啊。然而,事情并没有想象中的这么简单,要从这些杂乱无章的酷似垃圾堆的所谓 “金矿” 中提取有价值的宝贝,并不容易。笔者之前的文章《浅谈数据:数据领域需要掌握些什么?》也稍微提到了数据治理(Data Governance)这个概念。本篇文章将从企业数据管理的角度,介绍数据治理是如何在混乱的企业数据中创造价值的。

数据孤岛问题

中大型企业(一般超过 100 人,且有多个职能部门)在快速发展业务的同时,也会遭遇管理混乱的问题。销售部门有着自己的销售统计数据,通常是庞大而分散的 Excel 或者简单的在线表单;IT 部门自己建立且管理一套资产和库存系统;HR 部门又维护着一整个人员统计名单。而这样的情况会导致不少头疼的事情:大老板抱怨每周才能收到整个公司运营的管理报表;经理们看着报表中忽上忽下的数据,怀疑着真实性;基层员工加班加点整理好老板要的数据,却被质疑数据有问题。熟悉么?这些都是企业中经常发生的问题,其直接原因就是所谓的数据孤岛(Isolated Data Island)问题。

Isolated Data Island