公司:lyft
来福车(英语:Lyft)是一家交通网络公司,总部位于美国加利福尼亚州旧金山,以开发移动应用程序连结乘客和司机,提供载客车辆租赁及媒合共乘的分享型经济服务。乘客可以通过发送短信或是使用移动应用程序来预约车辆,利用移动应用程序时还可以追踪车辆位置。
Lyft 拥有 30% 的市场份额,是美国仅次于优步的第二大的叫车公司。
Beyond A/B Testing: Using Surrogacy and Region-Splits to Measure Long-Term Effects in Marketplaces
Lyft通过两步骤方法评估资源分配决策的长期市场效应。第一步,利用残差化回归模型分析政策变化对短期负面用户体验的影响,并通过切换实验验证;第二步,采用双重稳健观测法将负面体验转化为未来行为预测,并通过用户分割实验校准。最后,结合直接和间接效应,通过区域分割实验验证整体长期效果,优化决策。
Predicting Rider Conversion in Sparse Data Environments with Bayesian Trees
Lyft面临乘客转化率预测的数据稀疏难题,传统模型易过拟合。为此,团队创新性地构建了贝叶斯树模型:通过分层树结构细分场景(如城市区域、时间段等),并利用高斯先验进行贝叶斯平滑——子节点参数受父节点约束,数据越少则越依赖父节点先验。该方法在稀疏场景下实现稳健预测,同时通过简单参数模型保障逻辑一致性(如强制历史转化率与当前概率单调相关),兼顾实时性与可解释性。
Migrating Lyft’s Android Codebase to Kotlin
Lyft安卓团队耗时7年完成Java到Kotlin的全量迁移,2022年后重点攻克剩余15%代码。通过自研迁移追踪工具和自动化脚本,日均处理2个模块,最终覆盖20+团队的150+模块。迁移中遇到空类型泛滥、循环语句冗余等编译器缺陷,还处理了历史遗留的INullable接口和特定设备API兼容问题。现通过CI检查彻底杜绝Java回退,全面拥抱Kotlin特性如协程和Compose框架。(138字)
Lyft’s Feature Store: Architecture, Optimization, and Evolution
Lyft的特征存储是其数据平台的核心基础设施,专为大规模机器学习特征的管理和部署优化。该系统通过批处理、在线和流式处理三种方式,简化了特征的生命周期管理,确保特征的一致性和高效访问。在线服务层结合DynamoDB和ValKey缓存,实现低延迟特征检索。系统还支持特征发现、版本控制和数据质量管理,显著提升了ML模型的开发效率和用户体验。
Trusting the Untestable: Validation and Diagnostics for the Doubly Robust Models
Lyft工程团队探讨了在无法进行随机实验时,如何通过准实验方法评估政策和产品变化的因果效应。重点介绍了双重稳健模型(AIPW),该模型通过拟合结果模型和倾向得分模型,在至少一个模型正确的情况下,能够一致估计平均处理效应(ATE)。文章还强调了验证的重要性,尤其是在处理选择偏差和协变量平衡时,提出了严格的诊断和验证机制,以确保结果的可靠性。通过实验与观察数据的对比,验证了AIPW模型的准确性,并探讨了其在实际应用中的局限性。
Scaling Localization with AI at Lyft
Lyft通过AI重构翻译流程,结合LLM生成与评估,实现从多天到分钟的翻译速度,同时保障质量。系统分三个阶段:草稿生成、早期发布和最终审核。LLM处理上下文,生成多种翻译候选,评估模型筛选最优方案,并通过反馈迭代优化。引入术语表和防护机制,确保品牌术语和格式一致性。实验配置和多模型支持进一步提升效率和准确性,满足全球市场快速扩展需求。
From Python3.8 to Python3.10: Our Journey Through a Memory Leak
在Python 3.10升级过程中,Lyft团队遇到内存泄漏问题,导致服务延迟飙升。通过内存分析工具tracemalloc和内部库,团队发现pynamodb与gevent的兼容性问题引发了连接池未释放的现象。最终通过降级urllib3版本解决了问题。调试内存泄漏需关注未释放资源、全局缓存及库升级等因素,且无通用解决方案。
LyftLearn Evolution: Rethinking ML Platform Architecture
Lyft的机器学习平台LyftLearn从全Kubernetes架构演变为混合架构,采用AWS SageMaker处理离线计算任务,保留Kubernetes用于在线模型服务。通过SageMaker,Lyft简化了复杂的离线任务管理,减少了基础设施维护负担,同时保持了与Kubernetes环境的兼容性。这一转变提升了系统可靠性,降低了成本,并释放了团队资源,专注于平台能力的扩展。
Intern Experience at Lyft
两位Lyft数据科学家分享了从实习生到全职员工的成长经历。Morteza通过EDF Climate Corps项目加入Lyft,专注于可持续发展和电动车推广,利用因果模型评估电动车对司机生产力的影响。他强调在快节奏环境中平衡执行速度与质量的重要性,并建议实习生主动寻求指导,全面负责项目。他的工作不仅推动了内部策略,还在学术期刊上发表,展现了数据科学在实际问题中的价值。
Solving Dispatch in a Ridesharing Problem Space
匹配司机与乘客的问题可通过图论建模为二分图,利用加权边表示匹配收益。匹配问题可转化为整数线性规划,目标为最大化总权重。实际应用中,需实时更新权重以反映动态变化,选择合适的批次间隔以平衡计算效率与服务质量。优化算法如匈牙利法用于求解最优匹配,但需兼顾长期效率,避免短视决策导致的次优结果。
How science inspires our ETA models
在交通中,看似随机的红绿灯和拥堵事件实际上隐藏着规律。长距离行驶中,尽管短期延误不同,但整体到达时间趋于一致。通过分析多段行程的平均行驶时间,发现随着距离增加,时间波动逐渐平滑,趋于正态分布。这一现象类似于中心极限定理,表明交通模式在长期统计上具有稳定性。
Beyond Query Optimization: Aurora Postgres Connection Pooling with SQLAlchemy & RDSProxy
使用RDS Proxy时,需注意会话固定和语句超时问题。会话固定会减少连接池复用,可通过监控和日志排查原因。语句超时可通过用户级别设置解决。此外,代理会增加网络延迟,但对大多数API影响不大。建议优化查询模式,减少会话固定行为,以充分利用连接池优势。
Real-Time Spatial Temporal Forecasting @ Lyft
实时时空预测用于高精度预测市场信号,如网约车供需。动态定价和司机激励是主要应用场景。高维高频数据带来计算和噪声挑战,影响模型选择和准确性。时间序列模型和神经网络模型各有优劣,前者在短期预测和低延迟场景表现更佳,后者在长期预测中更准确。模型选择需权衡精度与工程成本,简单模型在现实应用中更具优势。
From manual fixes to automatic upgrades — building the Codemod Platform at Lyft
借助jscodeshift库,我们构建了自动化代码转换平台,支持TS、JS、YAML等文件处理,简化了依赖升级和代码迁移。通过标准化命名、可复用的辅助函数及第三方工具集成,平台提升了开发效率,减少了手工操作。未来计划引入AI辅助,进一步优化本地开发和CI流程,推动代码现代化。
FacetController: How we made infrastructure changes at Lyft simple
Lyft通过FacetController优化Kubernetes部署流程,将微服务拆解为多个可部署的组件(Facet)。FacetController基于Kubernetes自定义资源定义(CRD)管理这些组件,自动生成相关资源并处理更新,大幅简化了基础设施变更和回滚操作。此举减少了大规模部署的需求,提升了开发效率和系统稳定性,尤其在自动扩展、集群升级和资源管理方面表现显著。
Using Marketplace Marginal Values to Address Interference Bias
本文探讨了在资源有限的情况下,边际价值(MMV)如何影响骑手和司机的匹配,以及如何通过影子价格和优化问题来计算MMV。通过MMV方法,可以有效调整实验中的效果大小,特别是在用户分割实验中解决干扰问题。Lyft的实践表明,MMV校正可导致实验结果更符合市场实际情况,并在某些情况下改变产品发布决策。