by Dian Xu, Joel Hawkins, Alak Eswaradass, and Sajjan AVS on 21 FEB 2025 in Advanced (300), Amazon Athena, Amazon EC2, Amazon Elastic Kubernetes Service, Amazon EMR, Amazon Redshift, Amazon SageMaker, Amazon SageMaker AI, Amazon SageMaker Studio, Amazon Simple Storage Service (S3), Amazon VPC, Architecture, AWS Glue, AWS Lake Formation, AWS Lambda, AWS PrivateLink, Compute, Customer Solutions, Financial Services, Migration Acceleration Program (MAP)
Bài đăng này được viết cùng với Dian Xu và Joel Hawkins của Rocket Companies.
Rocket Companies là một công ty FinTech có trụ sở tại Detroit với sứ mệnh “Giúp Mọi Người Có Nhà”. Trong bối cảnh thiếu hụt nhà ở và lo ngại về khả năng chi trả hiện nay, Rocket đơn giản hóa quy trình sở hữu nhà thông qua trải nghiệm trực quan được hỗ trợ bởi AI. Framework toàn diện này tối ưu hóa mọi bước trong hành trình sở hữu nhà, giúp người tiêu dùng dễ dàng tìm kiếm, mua và quản lý tài chính nhà ở. Rocket tích hợp tìm kiếm nhà, tài chính và dịch vụ trong một môi trường duy nhất, mang đến trải nghiệm liền mạch và hiệu quả.
Thương hiệu Rocket là biểu tượng cho việc cung cấp giải pháp kỹ thuật số đơn giản, nhanh chóng và đáng tin cậy cho các giao dịch phức tạp. Rocket cam kết giúp khách hàng hiện thực hóa ước mơ sở hữu nhà và tự do tài chính. Kể từ khi thành lập, Rocket đã phát triển từ một công ty cho vay thế chấp đơn lẻ thành mạng lưới doanh nghiệp tạo cơ hội mới cho khách hàng.
Rocket biến quy trình phức tạp thành đơn giản hơn thông qua công nghệ. Việc đăng ký vay thế chấp có thể phức tạp và tốn thời gian. Đó là lý do chúng tôi sử dụng công nghệ tiên tiến và data analytics để tối ưu hóa mọi bước trong trải nghiệm sở hữu nhà, từ đăng ký đến hoàn tất. Bằng cách phân tích nhiều điểm dữ liệu, chúng tôi có thể đánh giá nhanh chóng và chính xác rủi ro liên quan đến khoản vay, cho phép đưa ra quyết định cho vay sáng suốt hơn và giúp khách hàng nhận được tài chính cần thiết.
Mục tiêu của Rocket là mang đến trải nghiệm cá nhân hóa cho cả khách hàng hiện tại và tiềm năng. Các sản phẩm đa dạng của Rocket có thể tùy chỉnh để đáp ứng nhu cầu cụ thể của khách hàng, trong khi đội ngũ chuyên viên ngân hàng của chúng tôi phải phù hợp với cơ hội khách hàng tốt nhất phù hợp với kỹ năng và kiến thức của họ. Duy trì mối quan hệ tốt với cơ sở khách hàng lớn, trung thành và các vị thế phòng ngừa rủi ro để đảm bảo nghĩa vụ tài chính là chìa khóa thành công của chúng tôi. Với khối lượng kinh doanh hiện tại, ngay cả những cải tiến nhỏ cũng có thể tạo tác động đáng kể.
Trong bài viết này, chúng tôi chia sẻ cách chúng tôi hiện đại hóa giải pháp data science của Rocket trên AWS để tăng tốc độ triển khai từ 8 tuần xuống dưới 1 giờ, cải thiện độ ổn định hoạt động và hỗ trợ bằng cách giảm 99% số ticket sự cố trong 18 tháng, hỗ trợ 10 triệu quyết định data science và AI tự động hàng ngày, đồng thời mang lại trải nghiệm phát triển data science liền mạch.
Thách thức môi trường data science cũ của Rocket
Giải pháp data science trước đây của Rocket được xây dựng xung quanh Apache Spark và kết hợp sử dụng phiên bản cũ của môi trường Hadoop cùng các công cụ phát triển Data Science Experience do nhà cung cấp cung cấp. Môi trường Hadoop được lưu trữ trên máy chủ Amazon Elastic Compute Cloud (Amazon EC2), được quản lý nội bộ bởi đội ngũ công nghệ của Rocket, trong khi cơ sở hạ tầng trải nghiệm data science được lưu trữ tại chỗ. Giao tiếp giữa hai hệ thống được thiết lập thông qua kết nối Kerberized Apache Livy (HTTPS) qua AWS PrivateLink.
Khám phá dữ liệu và phát triển mô hình được thực hiện bằng các công cụ machine learning (ML) nổi tiếng như Jupyter hoặc Apache Zeppelin notebooks. Apache Hive được sử dụng để cung cấp giao diện bảng cho dữ liệu được lưu trữ trong HDFS và tích hợp với Apache Spark SQL. Apache HBase được sử dụng để cung cấp quyền truy cập dữ liệu theo khóa thời gian thực. Việc huấn luyện và chấm điểm mô hình được thực hiện thông qua Jupyter notebooks hoặc thông qua các công việc được lên lịch bởi công cụ điều phối Apache Oozie, một phần của triển khai Hadoop.
Mặc dù có những lợi ích từ kiến trúc này, Rocket đã gặp phải những thách thức hạn chế hiệu quả của nó:
- Hạn chế về khả năng truy cập: Data lake được lưu trữ trong HDFS và chỉ có thể truy cập từ môi trường Hadoop, cản trở việc tích hợp với các nguồn dữ liệu khác. Điều này cũng dẫn đến tồn đọng dữ liệu cần được nạp vào.
- Đường cong học tập dốc cho data scientist: Nhiều data scientist của Rocket không có kinh nghiệm với Spark, vốn có mô hình lập trình phức tạp hơn so với các giải pháp ML phổ biến khác như scikit-learn. Điều này tạo ra thách thức cho data scientist trong việc làm việc hiệu quả.
- Trách nhiệm bảo trì và xử lý sự cố: Đội DevOps/Technology của Rocket chịu trách nhiệm cho tất cả việc nâng cấp, mở rộng và xử lý sự cố của cụm Hadoop, được cài đặt trên các instance EC2 trần. Điều này dẫn đến tồn đọng các vấn đề với cả hai nhà cung cấp chưa được giải quyết.
- Cân bằng nhu cầu phát triển và sản xuất: Rocket phải quản lý hàng đợi công việc giữa phát triển và sản xuất, luôn cạnh tranh cùng nguồn lực.
- Thách thức triển khai: Rocket muốn hỗ trợ thêm các trường hợp sử dụng suy luận thời gian thực và streaming, nhưng bị giới hạn bởi khả năng của MLeap cho mô hình thời gian thực và Spark Streaming cho các trường hợp streaming, vốn vẫn đang trong giai đoạn thử nghiệm tại thời điểm đó.
- Bảo mật dữ liệu và hỗ trợ DevOps không đầy đủ – Giải pháp trước đây thiếu các biện pháp bảo mật mạnh mẽ, và có hỗ trợ hạn chế cho việc phát triển và vận hành công việc data science.
Kiến trúc data science cũ của Rocket được thể hiện trong sơ đồ sau.
Sơ đồ mô tả luồng công việc; các thành phần chính được chi tiết dưới đây:
- Data Ingestion: Dữ liệu được đưa vào hệ thống sử dụng Attunity data ingestion trong Spark SQL.
- Data Storage and Processing: Tất cả tính toán được thực hiện dưới dạng Spark jobs trong cụm Hadoop sử dụng Apache Livy và Spark. Dữ liệu được lưu trữ trong HDFS và được truy cập thông qua Hive, cung cấp giao diện dạng bảng cho dữ liệu và tích hợp với Spark SQL. HBase được sử dụng để cung cấp truy cập dữ liệu theo khóa thời gian thực.
- Model Development: Khám phá dữ liệu và phát triển mô hình được thực hiện bằng các công cụ như Jupyter hoặc Orchestration, giao tiếp với máy chủ Spark qua kết nối Kerberized Livy.
- Model Training and Scoring: Huấn luyện và chấm điểm mô hình được thực hiện thông qua Jupyter notebooks hoặc qua các jobs được lên lịch bởi công cụ điều phối Apache Oozie, một phần của triển khai Hadoop.
Hành trình chuyển đổi của Rocket
Tại Rocket, chúng tôi tin tưởng vào sức mạnh của cải tiến liên tục và không ngừng tìm kiếm cơ hội mới. Một trong những cơ hội đó là sử dụng giải pháp khoa học dữ liệu, nhưng để làm được điều này, chúng tôi cần có một môi trường khoa học dữ liệu mạnh mẽ và linh hoạt.
Để giải quyết các thách thức của môi trường khoa học dữ liệu cũ, Rocket quyết định chuyển các workload ML sang Amazon SageMaker AI suite. Điều này cho phép chúng tôi cung cấp trải nghiệm cá nhân hóa hơn và hiểu khách hàng tốt hơn. Để thúc đẩy sự thành công của việc chuyển đổi này, chúng tôi đã hợp tác với đội ngũ AWS để tạo ra trải nghiệm kỹ thuật số tự động và thông minh thể hiện sự hiểu biết của Rocket về khách hàng và giữ họ kết nối.
Chúng tôi đã triển khai chiến lược đa tài khoản AWS, thiết lập Amazon SageMaker Studio trong một tài khoản build sử dụng Amazon VPC cách ly mạng. Điều này cho phép chúng tôi tách biệt môi trường phát triển và sản xuất, đồng thời cải thiện tư thế bảo mật.
Chúng tôi đã chuyển công việc mới sang SageMaker Studio và các workload Hadoop cũ sang Amazon EMR, kết nối với cụm Hadoop cũ sử dụng Livy và SageMaker notebooks để dễ dàng chuyển đổi. Điều này cho chúng tôi quyền truy cập vào nhiều công cụ và công nghệ hơn, cho phép chọn lựa những công cụ phù hợp nhất cho từng vấn đề cần giải quyết.
Ngoài ra, chúng tôi đã chuyển dữ liệu từ HDFS sang Amazon Simple Storage Service (Amazon S3), và hiện đang sử dụng Amazon Athena và AWS Lake Formation để cung cấp kiểm soát truy cập phù hợp đến dữ liệu sản xuất. Điều này giúp dễ dàng truy cập và phân tích dữ liệu hơn, cũng như tích hợp với các hệ thống khác. Đội ngũ cũng cung cấp tích hợp tương tác an toàn thông qua Amazon Elastic Kubernetes Service (Amazon EKS), tiếp tục cải thiện tư thế bảo mật của công ty.
SageMaker AI đã đóng vai trò quan trọng trong việc trao quyền cho cộng đồng khoa học dữ liệu của chúng tôi với khả năng linh hoạt lựa chọn công cụ và công nghệ phù hợp nhất cho từng vấn đề, dẫn đến chu kỳ phát triển nhanh hơn và độ chính xác mô hình cao hơn. Với SageMaker Studio, các nhà khoa học dữ liệu của chúng tôi có thể phát triển, huấn luyện và triển khai mô hình một cách liền mạch mà không cần quản lý cơ sở hạ tầng bổ sung.
Nhờ nỗ lực hiện đại hóa này, SageMaker AI đã cho phép Rocket mở rộng giải pháp khoa học dữ liệu trên toàn bộ Rocket Companies và tích hợp sử dụng mô hình hub-and-spoke. Khả năng của SageMaker AI trong việc tự động cung cấp và quản lý instances đã cho phép chúng tôi tập trung vào công việc khoa học dữ liệu thay vì quản lý cơ sở hạ tầng, tăng số lượng mô hình trong sản xuất lên gấp năm lần và năng suất của các nhà khoa học dữ liệu lên 80%.
Các nhà khoa học dữ liệu của chúng tôi được trao quyền sử dụng công nghệ phù hợp nhất cho vấn đề cần giải quyết, và tư thế bảo mật của chúng tôi đã được cải thiện. Rocket giờ đây có thể phân chia dữ liệu và tính toán, cũng như phân chia môi trường phát triển và sản xuất. Ngoài ra, chúng tôi có thể cung cấp theo dõi mô hình và lineage sử dụng Amazon SageMaker Experiments và các artifacts có thể khám phá được sử dụng SageMaker model registry và Amazon SageMaker Feature Store. Tất cả công việc khoa học dữ liệu giờ đã được chuyển sang SageMaker, và tất cả công việc Hadoop cũ đã được chuyển sang Amazon EMR.
Nhìn chung, SageMaker AI đã đóng vai trò quan trọng trong việc hỗ trợ hành trình hiện đại hóa của Rocket bằng cách xây dựng framework ML có khả năng mở rộng và linh hoạt hơn, giảm gánh nặng vận hành, cải thiện độ chính xác mô hình và tăng tốc thời gian triển khai.
Việc hiện đại hóa thành công đã cho phép Rocket vượt qua những hạn chế trước đây và hỗ trợ tốt hơn cho nỗ lực khoa học dữ liệu. Chúng tôi đã có thể cải thiện tư thế bảo mật, làm cho công việc dễ theo dõi và khám phá hơn, và cho phép các nhà khoa học dữ liệu linh hoạt lựa chọn công cụ và công nghệ phù hợp nhất cho từng vấn đề. Điều này đã giúp chúng tôi phục vụ khách hàng tốt hơn và thúc đẩy tăng trưởng kinh doanh.
Kiến trúc giải pháp khoa học dữ liệu mới của Rocket trên AWS được thể hiện trong sơ đồ sau.
Giải pháp bao gồm các thành phần sau:
- Data ingestion: Dữ liệu được đưa vào tài khoản dữ liệu từ các nguồn on-premises và bên ngoài.
- Data refinement: Dữ liệu thô được tinh chỉnh thành các lớp có thể sử dụng được (thô, đã xử lý, phù hợp và phân tích) sử dụng kết hợp AWS Glue extract, transform, và load (ETL) jobs và EMR jobs.
- Data access: Dữ liệu đã tinh chỉnh được đăng ký trong AWS Glue Data Catalog của tài khoản dữ liệu và được hiển thị cho các tài khoản khác thông qua Lake Formation. Dữ liệu phân tích được lưu trữ trong Amazon Redshift. Lake Formation làm cho dữ liệu này có sẵn cho cả tài khoản build và compute. Đối với tài khoản build, quyền truy cập vào dữ liệu sản xuất bị giới hạn ở chế độ chỉ đọc.
- Development: Phát triển khoa học dữ liệu được thực hiện bằng SageMaker Studio. Phát triển kỹ thuật dữ liệu được thực hiện bằng AWS Glue Studio. Cả hai lĩnh vực đều có quyền truy cập vào Amazon EMR để phát triển Spark. Các nhà khoa học dữ liệu có quyền truy cập vào toàn bộ hệ sinh thái SageMaker trong tài khoản build.
- Deployment: Các mô hình được huấn luyện bằng SageMaker phát triển trong tài khoản build được đăng ký với một instance MLFlow. Code artifacts cho cả hoạt động khoa học dữ liệu và kỹ thuật dữ liệu được lưu trữ trong Git. Việc khởi tạo triển khai được kiểm soát như một phần của CI/CD.
- Workflows: Chúng tôi có một số trigger workflow. Đối với online scoring, chúng tôi thường cung cấp endpoint hướng ra bên ngoài sử dụng Amazon EKS với Istio. Chúng tôi có nhiều jobs được khởi chạy bởi AWS Lambda functions mà lần lượt được kích hoạt bởi bộ hẹn giờ hoặc sự kiện. Các quy trình chạy có thể bao gồm AWS Glue ETL jobs, EMR jobs cho các chuyển đổi dữ liệu bổ sung hoặc hoạt động huấn luyện và chấm điểm mô hình, hoặc SageMaker pipelines và jobs thực hiện hoạt động huấn luyện hoặc chấm điểm.
Tác động của việc chuyển đổi
Chúng tôi đã phát triển rất xa trong việc hiện đại hóa cơ sở hạ tầng và workloads. Chúng tôi bắt đầu hành trình hỗ trợ sáu kênh kinh doanh và 26 mô hình trong sản xuất, với hàng chục mô hình đang phát triển. Thời gian triển khai kéo dài trong nhiều tháng và cần một đội gồm ba kỹ sư hệ thống và bốn kỹ sư ML để giữ cho mọi thứ hoạt động trơn tru. Mặc dù có sự hỗ trợ của đội ngũ DevOps nội bộ, backlog vấn đề của chúng tôi với nhà cung cấp lên tới hơn 200.
Ngày nay, chúng tôi đang hỗ trợ chín tổ chức và hơn 20 kênh kinh doanh, với hơn 210+ mô hình trong sản xuất và nhiều mô hình khác đang phát triển. Thời gian triển khai trung bình của chúng tôi đã giảm từ nhiều tháng xuống còn vài tuần—đôi khi chỉ còn vài ngày! Với chỉ một kỹ sư ML bán thời gian để hỗ trợ, backlog vấn đề trung bình với nhà cung cấp gần như không tồn tại. Chúng tôi hiện hỗ trợ hơn 120 nhà khoa học dữ liệu, kỹ sư ML và vai trò phân tích. Sự kết hợp framework của chúng tôi đã mở rộng bao gồm 50% mô hình SparkML và nhiều framework ML khác đa dạng, như PyTorch và scikit-learn. Những tiến bộ này đã mang lại cho cộng đồng khoa học dữ liệu của chúng tôi sức mạnh và sự linh hoạt để giải quyết các dự án phức tạp và thách thức hơn một cách dễ dàng.
Bảng sau so sánh một số chỉ số của chúng tôi trước và sau khi chuyển đổi.
Bài học kinh nghiệm
Trong suốt hành trình hiện đại hóa giải pháp data science của chúng tôi, chúng tôi đã học được những bài học quý giá mà chúng tôi tin rằng có thể giúp ích cho các tổ chức khác đang lên kế hoạch thực hiện những nỗ lực tương tự.
Đầu tiên, chúng tôi nhận ra rằng managed services có thể là yếu tố quyết định trong việc tối ưu hóa hoạt động data science của bạn.
Việc tách biệt môi trường phát triển vào tài khoản riêng trong khi chỉ cung cấp quyền truy cập read-only vào dữ liệu production là cách hiệu quả để cho phép các data scientist thử nghiệm và cải tiến mô hình mà không gây rủi ro cho môi trường production. Đây là điều chúng tôi đã đạt được thông qua việc kết hợp SageMaker AI và Lake Formation.
Một bài học khác chúng tôi học được là tầm quan trọng của việc đào tạo và onboarding cho các team. Điều này đặc biệt đúng với các team đang chuyển sang môi trường mới như SageMaker AI. Việc hiểu rõ best practices trong việc sử dụng tài nguyên và tính năng của SageMaker AI, cũng như có hiểu biết vững chắc về cách chuyển từ notebooks sang jobs là rất quan trọng.
Cuối cùng, chúng tôi nhận thấy mặc dù Amazon EMR vẫn cần một số tinh chỉnh và tối ưu hóa, nhưng gánh nặng quản trị nhẹ hơn nhiều so với việc hosting trực tiếp trên Amazon EC2. Điều này làm cho Amazon EMR trở thành giải pháp có khả năng mở rộng và hiệu quả về chi phí hơn cho các tổ chức cần quản lý khối lượng xử lý dữ liệu lớn.
Kết luận
Bài viết này cung cấp tổng quan về sự hợp tác thành công giữa AWS và Rocket Companies. Thông qua sự hợp tác này, Rocket Companies đã có thể migrate nhiều ML workload và triển khai ML framework có khả năng mở rộng. Tiếp tục với AWS, Rocket Companies vẫn cam kết đổi mới và duy trì vị trí hàng đầu về sự hài lòng của khách hàng.
Đừng để legacy systems cản trở tiềm năng của tổ chức bạn. Khám phá cách AWS có thể hỗ trợ bạn hiện đại hóa giải pháp data science và đạt được những kết quả đáng chú ý, tương tự như những gì Rocket Companies đã đạt được.