Các phương pháp hay nhất để học sâu của Google và Uber

Có nhiều thứ để xây dựng một giải pháp Deep Learning bền vững hơn những gì được cung cấp bởi các khung Deep Learning như TensorFlow và PyTorch. Những khung này đủ tốt để nghiên cứu, nhưng chúng không tính đến các vấn đề nảy sinh khi triển khai sản xuất. Tôi đã viết trước đây về nợ kỹ thuật và sự cần thiết từ các kiến ​​trúc sinh học thích ứng hơn. Để hỗ trợ một doanh nghiệp khả thi bằng Deep Learning, bạn hoàn toàn cần một kiến ​​trúc hỗ trợ cải thiện bền vững trước sự thay đổi thường xuyên và bất ngờ trong môi trường. Khung Deep Learning hiện tại chỉ cung cấp một phần duy nhất của một giải pháp hoàn chỉnh.

May mắn thay, Google và Uber đã cung cấp một cái nhìn thoáng qua về kiến ​​trúc nội bộ của họ. Kiến trúc của hai người khổng lồ này có thể là hai trại căn cứ tuyệt vời nếu bạn cần xây dựng giải pháp Deep Learning sẵn sàng sản xuất của riêng bạn.

Động lực chính của hệ thống của Uber có tên Michelangelo là vì không có hệ thống nào để xây dựng các đường ống đáng tin cậy, thống nhất và có thể tái tạo để tạo và quản lý dữ liệu đào tạo và dự đoán theo quy mô. các vấn đề triển khai và quản lý nợ kỹ thuật. Bài viết có đủ lý lẽ để thuyết phục mọi người hoài nghi rằng các khung hiện có là không đủ cho sản xuất.

Tôi sẽ không đi qua toàn bộ bài viết của Uber. Thay vào đó, tôi sẽ chỉ nêu bật một số điểm quan trọng về kiến ​​trúc của họ. Hệ thống Uber không phải là một hệ thống Deep Learning hoàn toàn, mà là một hệ thống Machine Learning có thể sử dụng nhiều phương thức ML tùy theo sự phù hợp. Nó được xây dựng trên các thành phần nguồn mở sau: HDFS, Spark, Samza, Cassandra, MLLib, XGBoost và TensorFlow. Vì vậy, nó là một hệ thống BigData thông thường kết hợp các thành phần Machine Learning cho các phân tích của nó:

Michelangelo được xây dựng dựa trên cơ sở hạ tầng dữ liệu và tính toán của Uber, cung cấp một hồ dữ liệu lưu trữ tất cả dữ liệu giao dịch và nhật ký của Uber, các nhà môi giới Kafka tổng hợp các tin nhắn đã đăng nhập từ tất cả các dịch vụ của Uber, công cụ tính toán phát trực tuyến Samza, cụm Cassandra được quản lý và Uber công cụ cung cấp và triển khai nhà.

Kiến trúc hỗ trợ quy trình làm việc sau:

  1. Quản lý dữ liệu
  2. Mô hình xe lửa
  3. Đánh giá mô hình
  4. Triển khai, dự đoán và giám sát

Các kiến ​​trúc Uber Uber Michaelangelo được mô tả như sau:

Tôi sẽ bỏ qua các mối quan tâm về kiến ​​trúc Dữ liệu lớn thông thường và chỉ ra một số ý tưởng đáng chú ý liên quan nhiều hơn đến học máy.

Michaelangelo phân chia việc quản lý dữ liệu giữa các đường ống trực tuyến và ngoại tuyến. Ngoài ra, để cho phép chia sẻ kiến ​​thức và tái sử dụng trên toàn tổ chức, một cửa hàng tính năng của Google đã được cung cấp:

Hiện tại, chúng tôi có khoảng 10.000 tính năng trong Cửa hàng tính năng được sử dụng để tăng tốc các dự án máy học và các nhóm trên toàn công ty luôn bổ sung các tính năng mới. Các tính năng trong Cửa hàng tính năng được tự động tính toán và cập nhật hàng ngày.

Uber đã tạo ra một ngôn ngữ cụ thể miền (DSL) để các nhà lập mô hình lựa chọn, chuyển đổi và kết hợp tính năng trước khi gửi một mô hình để đào tạo và dự đoán. Các phương thức ML được hỗ trợ hiện tại là cây quyết định, mô hình tuyến tính và logistic, phương tiện k, chuỗi thời gian và mạng nơ ron sâu.

Cấu hình mô hình chỉ định loại, siêu tham số, tham chiếu nguồn dữ liệu, các biểu thức DSL tính năng và tính toán các yêu cầu tài nguyên (ví dụ: cpus, bộ nhớ, sử dụng GPU, v.v.). Đào tạo được thực hiện trong cụm YARN hoặc Mesos.

Sau khi đào tạo mô hình, số liệu hiệu suất được tính toán và cung cấp trong báo cáo đánh giá. Tất cả thông tin, đó là cấu hình mô hình, mô hình đã học và báo cáo đánh giá được lưu trữ trong kho lưu trữ mô hình được phiên bản để phân tích và triển khai. Thông tin mô hình chứa:

  • Ai đào tạo người mẫu
  • Thời gian bắt đầu và kết thúc công việc đào tạo
  • Cấu hình mô hình đầy đủ (các tính năng được sử dụng, các giá trị siêu tham số, v.v.)
  • Tham khảo các tập dữ liệu huấn luyện và kiểm tra
  • Phân phối và tầm quan trọng tương đối của từng tính năng
  • Số liệu chính xác của mô hình
  • Biểu đồ và đồ thị tiêu chuẩn cho từng loại mô hình (ví dụ: đường cong ROC, đường cong PR và ma trận nhầm lẫn cho phân loại nhị phân)
  • Thông số đầy đủ của mô hình
  • Thống kê tóm tắt cho trực quan hóa mô hình

Ý tưởng là dân chủ hóa truy cập vào các mô hình ML, chia sẻ nó với người khác để cải thiện kiến ​​thức tổ chức. Tính năng độc đáo của cách tiếp cận Uber, là sự xuất hiện của một cửa hàng tính năng trực tuyến, cho phép nhiều bên khác nhau chia sẻ dữ liệu của họ trên các mô hình ML khác nhau.

Mọi người tại Google có một bài báo gần đây về TFX: Một nền tảng học máy quy mô sản xuất dựa trên nền tảng TensorFlow có chi tiết hệ thống nội bộ của họ.

Bài viết này có cấu trúc tương tự như bài viết Uber Uber ở chỗ chúng bao gồm cùng một quy trình công việc:

  1. Quản lý dữ liệu - Phân tích dữ liệu, chuyển đổi và xác nhận
  2. Mô hình đào tạo - Đào tạo mô hình: Khởi động ấm áp và Đặc điểm kỹ thuật mô hình
  3. Đánh giá mô hình - Đánh giá và xác nhận mô hình
  4. Triển khai, dự đoán và giám sát - Phục vụ người mẫu

Kiến trúc Google Google được điều khiển bởi các nguyên tắc cấp cao đã nêu sau đây:

  • Nắm bắt dữ liệu bất thường sớm.
  • Tự động xác thực dữ liệu.
  • Xử lý lỗi dữ liệu với sự nghiêm ngặt tương tự như mã.
  • Hỗ trợ đào tạo liên tục.
  • Cấu hình đồng phục để cải thiện việc chia sẻ.
  • Triển khai và phục vụ sản xuất đáng tin cậy và có thể mở rộng.

Hãy để sâu hơn một chút vào các khả năng độc đáo của Google ED TFX. Có rất nhiều thông tin bổ ích cũng như giới thiệu một số khả năng độc đáo.

TFX cung cấp một số khả năng trong phạm vi quản lý dữ liệu. Phân tích dữ liệu thực hiện số liệu thống kê trên mỗi tập dữ liệu cung cấp thông tin về phân phối giá trị, lượng tử, giá trị trung bình, độ lệch chuẩn, v.v. Ý tưởng là điều này cho phép người dùng nhanh chóng hiểu rõ hơn về hình dạng của tập dữ liệu. Phân tích tự động này được sử dụng để cải thiện môi trường đào tạo và phục vụ liên tục.

TFX xử lý dữ liệu sắp xếp và lưu trữ các biến đổi để duy trì tính nhất quán. Hơn nữa, hệ thống cung cấp là khung thống nhất và nhất quán để quản lý ánh xạ tính năng-số nguyên.

TFX chứng minh một lược đồ là phiên bản chỉ định các kỳ vọng về dữ liệu. Lược đồ này được sử dụng để gắn cờ bất kỳ sự bất thường nào được tìm thấy và cũng cung cấp các đề xuất về các hành động như chặn các tính năng đào tạo hoặc phản đối. Công cụ này cung cấp tự động tạo lược đồ này để giúp dễ sử dụng cho các dự án mới. Đây là một khả năng độc đáo lấy cảm hứng từ kiểm tra kiểu tĩnh được tìm thấy trong các ngôn ngữ lập trình.

TFX sử dụng TensorFlow làm mô tả mô hình của nó. TFX có khái niệm về ’khởi đầu ấm áp được lấy cảm hứng từ kỹ thuật học chuyển giao được tìm thấy trong Deep Learning. Ý tưởng là giảm số lượng đào tạo bằng cách tận dụng đào tạo hiện có. Không giống như học chuyển giao sử dụng một mạng được đào tạo sẵn, khởi động có chọn lọc xác định một mạng các tính năng chung là điểm khởi đầu của nó. Mạng được đào tạo về các tính năng chung được sử dụng làm cơ sở để đào tạo các mạng chuyên biệt hơn. Tính năng này dường như được áp dụng trong TF-Slim.

TFX sử dụng thông số kỹ thuật TensorFlow mức cao phổ biến (xem: Công cụ ước tính TensorFlow: Quản lý tính đơn giản so với tính linh hoạt trong Khung học máy cấp cao) để cung cấp tính đồng nhất và mã hóa các thực tiễn tốt nhất qua các triển khai khác nhau. Xem bài viết này trên Dự toán để biết thêm chi tiết.

TFX sử dụng khung Phục vụ TensorFlow để triển khai và phục vụ. Khung cho phép các mô hình khác nhau được phục vụ trong khi vẫn giữ nguyên kiến ​​trúc và API. Dịch vụ TensorFlow phục vụ cho một mô hình cách ly mô hình mềm, cho phép triển khai mô hình nhiều người thuê. Khung này cũng được thiết kế để hỗ trợ các suy luận có thể mở rộng.

Bài viết của TFX đã đề cập đến sự cần thiết phải tối ưu hóa quá trình khử lưu huỳnh của các mô hình. Rõ ràng, một phân tích bộ đệm giao thức tùy chỉnh đã được tạo để cải thiện hiệu suất lên tới 2 Lần5.

Phân tích kiến ​​trúc nội bộ của Uber và Google, cung cấp cái nhìn sâu sắc về các điểm đau và giải pháp để xây dựng nền tảng nội bộ của riêng bạn. So với các khung DL nguồn mở có sẵn, có một sự nhấn mạnh lớn hơn trong việc quản lý và chia sẻ thông tin meta. Phương pháp tiếp cận Google Google cũng đòi hỏi nỗ lực bổ sung để đảm bảo tính đồng nhất cũng như xác thực tự động. Đây là những thực tiễn mà chúng ta đã thấy trước đây trong các dự án kỹ thuật phần mềm thông thường.

Các thực hành kỹ thuật phần mềm như Phát triển hướng thử nghiệm (TDD), tích hợp liên tục, khôi phục và khôi phục, kiểm soát thay đổi, vv đang được đưa vào thực tiễn học máy tiên tiến. Nó không đủ để một chuyên gia phát triển trên máy tính xách tay Jupyter và ném nó lên tường để một nhóm thực hiện. Các thực hành sùng đạo từ đầu đến cuối mà chúng ta thấy ngày nay trong các công ty kỹ thuật tốt nhất cũng sẽ được yêu cầu trong các nỗ lực học máy. Chúng tôi thấy điều này ngày hôm nay ở cả Uber và Google, và do đó chúng tôi nên mong đợi điều đó trong bất kỳ hoạt động ML / DL bền vững nào.

Cập nhật: https://www.linkedin.com/pulse/ai-layer-diego-oppenheimer, https://arxiv.org/abs/1804.09997v1

Khám phá Deep Learning: Trực giác nhân tạo: Cuộc cách mạng Deep Learning có thể cải thiệnKhai thác Deep Learning: Playbook AI học sâu