好多朋友问我在美国做MLE到底是啥体验,今天摸鱼写一篇,把typical day、技术栈、还有感受都掏出来聊聊。
我的节奏基本跟着项目和on-call走,但大概可以拆成这样:早上到公司第一件事不是写代码,是看Dashboard。我们用的Grafana + Datadog,先扫一遍所有线上模型的关键指标,系统层面得盯prediction latency有没有飙,我们某个推荐模型的P99要求是100ms以内,干到200ms那就是P0事故;模型层面得看prediction distribution稳不稳。
10点左右如果一切正常,就开始干Code Review。我们组任何代码合并都得至少俩人点头。11点daily stand-up,每人快速过一遍昨天干了啥、今天打算干啥、有没有blocker,15分钟搞定,需要深聊的会后再拉小会。
下午是我的deep work时间,戴降噪耳机埋头搞项目。先去Data Lake里扒数据,用SQL或Spark写query探一下原始log长啥样、数据质量咋样、有没有missing value。然后开始写特征处理pipeline,用Python + PySpark把用户行为序列转成定长向量。
特征搞定就开始训模型。我们会有个baseline,得证明新模型离线指标有明显提升。用PyTorch提交training job到Kubernetes集群,大模型可能得好几个GPU跑十几个小时。所有实验用MLflow或W&B跟踪,不然几周后你根本记不清那个神级模型是咋训出来的。训完看报告,这些分析能告诉下一步该往哪使劲。
5点左右开始看A/B测试结果。跟DS一起撸实验数据,算p-value,看离线指标的提升有没有转化成点击率、转化率、停留时长的上涨。很多时候离线看着很美的模型,上线一测啥也不是,甚至反向优化。这时候就得硬着头皮分析,虽然虐,但也正是这行的魅力所在。
6点以后没啥急事的话,会花点时间读paper。刷刷arXiv,看看NeurIPS、ICML上新出的架构。
想当MLE,工具链基本是SWE+DS的合体:Python是命,NumPy、Pandas、Scikit-learn得玩溜;深度学习框架PyTorch现在是主流,但很多老项目还在用TensorFlow,最好都懂点;Docker + K8s必须会,打包模型、写deployment.yaml都是日常;云平台AWS/GCP/Azure至少熟一个,S3、EC2、SageMaker这些经常用;Spark处理大数据,Airflow或Kubeflow串pipeline,MLflow或W&B管实验。