在数字化转型浪潮中,数据中台作为企业核心资产的“枢纽站”,却长期面临“建而难用”的尴尬境地 —— 业务团队抱怨数据获取门槛高、技术团队困于复杂的数据治理任务,如何打通数据价值落地的“最后一公里”始终是行业痛点。
PowerData 社区主理人李奇峰给出了一个充满技术想象力的答案:通过深度结合 DeepSeek 大模型的逻辑推理与结构化数据处理能力,重构数据中台的技术栈。
3 月 22 日,PowerData 社区主理人李奇峰将出席 OSC 源创会南京站,并发表《使用 DeepSeek 拯救数据中台》主题分享
,探讨如何借助大模型通用化与生成式的数据处理能力,结合数据中台中的落地痛难点,对其进行针对性的优化改造。
在活动正式开始前,我们也和李奇峰聊了聊一些“入门级”问题,感兴趣的开发者可周六到活动现场,与李奇峰交流探讨关于数据中台的建设问题。
报名链接:
https://www.oschina.net/event/2423811
OSCHINA:
在众多大模型中为何选择 DeepSeek 作为数据中台改造的核心技术?与其他开源模型相比,DeepSeek 在数据处理场景下有哪些优势?
李奇峰:
我作为一个数据中台的从业者,核心诉求还是提升数据中台本身的能力。对于大模型的了解并不深入,其只是我的一个工具而已。所以从工具的属性来说,我选择 deepseek 主要有以下几点原因:
成本:无论是训练成本、还是推理成本,相较于其他模型都有显著降低。同时支持国产化硬件,在合规性方面也有保证。
热度:在风口到来的时候,不说乘风而飞,但是至少还是需要蹭一下的。
能力:DeepSeek R1 是 LMSYS Chinese 榜单最强的 from China 的模型,V3 是上面榜单中开源的最强非 Reasoner 模型,基础能力优越。同时相较于其他模型,DeepSeek 在逻辑推理 + 结构化数据解析处理的能力优秀,同时其支持的上下文窗口较大,在数据血缘解析、数据分类分级、数据质量治理等任务中,其准确性较其他模型都有显著提升。
OSCHINA:
开发者最关心的部署成本问题:在私有化部署场景下,DeepSeek 模型针对数据中台做了哪些轻量化改造?是否支持量化压缩后的模型在常规 GPU 服务器集群运行?
李奇峰:
Deepseek 不会为企业应用场景训练各种量化模型的,市面上的量化模型都是社区和开发者上传的。如果为了降低部署成本,采购算力服务器之前先测试各个量化模型的能力能否满足应用场景,确定好使用哪版量化模型后,根据显存去采购性价比最高算力服务器,推理服务器建议买 Nvdia 游戏卡。
OSCHINA:
能否用具体代码片段说明 DeepSeek 如何与数据中台组件集成?例如如何通过 API 调用实现“自然语言转数据服务接口”这类典型场景,过程中需要哪些中间件做适配?
李奇峰:
下面是一个非常简单的通过大模型进行数据自动标注的代码:
import openai
import pandas as pd
import json
from typing import List, Dict
class MetadataAutoTagger:
def __init__(self, api_key: str, business_context: str):
self.client = openai.OpenAI(api_key=api_key)
self.business_context = business_context # 公司业务背景说明
def generate_prompt(self, table_name: str, columns: List[str]) -> str:
"""构造大模型提示词"""
return f"""
# 任务说明
根据提供的元数据和业务背景,生成数据资产的业务标注信息,要求:
1. 业务名称:体现数据在业务中的核心作用
2. 业务类型:交易型/分析型/主数据/日志型...
3. 业务实体:对应业务对象(客户/订单/产品...)
4. 分类分级:按公司数据分类分级标准
5. 字段说明:用业务语言解释字段含义
# 业务背景
{self.business_context}
# 待标注元数据
表名:{table_name}
字段列表:{', '.join(columns)}
请用JSON格式返回结果,结构如下:
{{
"table_name": "{table_name}",
"business_name": "",
"business_type": "",
"business_entity": "",
"data_classification": "",
"columns": {{
"column1": "业务说明",
"column2": "业务说明"
}}
}}
"""
def tag_metadata(self, metadata_df: pd.DataFrame) -> pd.DataFrame:
"""批量处理元数据"""
results = []
for _, row in metadata_df.iterrows():
response = self._call_llm(row['table_name'], row['columns'])
if response:
results.append(response)
return pd.DataFrame(results)
def _call_llm(self, table_name: str, columns: List[str]) -> Dict:
"""调用大模型API"""
try:
prompt = self.generate_prompt(table_name, columns)
response = self.client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}],
temperature=0.2,
response_format={"type": "json_object"}
)
return json.loads(response.choices[0].message.content)
except Exception as e:
print(f"Error processing {table_name}: {str(e)}")
return None
# 示例用法
if __name__ == "__main__":
# 初始化配置
config = {
"api_key": "your_openai_key",
"business_context": "某电商公司,主要业务包含商品交易、用户画像、订单履约等..."
}
# 示例元数据(实际从数据库或文件读取)
sample_data = {
"table_name": ["user_info", "order_detail"],
"columns": [
["user_id", "registration_date", "last_login"],
["order_id", "product_sku", "payment_amount"]
]
}
metadata_df = pd.DataFrame(sample_data)
# 执行自动标注
tagger = MetadataAutoTagger(**config)
result_df = tagger.tag_metadata(metadata_df)
# 保存结果
result_df.to_csv("tagged_metadata.csv", index=False)
print("标注结果示例:")
print(result_df.head())
典型输出结果如下:
{
"table_name": "user_info",
"business_name": "用户基本信息表",
"business_type": "主数据",
"business_entity": "用户",
"data_classification": "PII/LEVEL-2",
"columns": {
"user_id": "用户唯一标识符,用于跨系统用户识别",
"registration_date": "用户注册电商平台的具体日期",
"last_login": "记录用户最近一次登录平台的时间"
}
}
OSCHINA:
在处理非结构化数据场景中(如日志解析 / 图片 OCR),DeepSeek 与传统 ETL 工具的结合方案是怎样的?