Lợi nhuận:
- Khả năng quyết định trên thiết bị hoặc đám mây và chọn công cụ phù hợp (ML Kit, Core ML, TensorFlow Lite) dựa trên quyền riêng tư, nhu cầu ngoại tuyến, kích thước kiểu máy và tiêu chí pin
- Khả năng ngăn chặn các lỗi thầm lặng bằng cách xác minh quá trình xử lý trước đầu vào (kích thước và chuẩn hóa) từ tài liệu của mô hình trong tích hợp mô hình
- Khả năng đánh giá điểm tin cậy và đo lường kết quả với sự chấp thuận của người dùng và trên thiết bị thực mà không đưa ra những dự đoán có độ tin cậy thấp là sự thật tuyệt đối.
Cho đến nay, chúng tôi đã sử dụng AI như một công cụ hỗ trợ để tăng tốc quá trình phát triển. Bây giờ chúng ta chuyển sang vai trò thứ hai của AI: nhân tài gắn liền với ứng dụng. Điện thoại hiện đại có khả năng chạy các mô hình AI như nhận dạng hình ảnh, dịch văn bản, phiên âm giọng nói, v.v. trực tiếp trên thiết bị (on-device - trong bộ xử lý riêng của điện thoại mà không cần đến máy chủ). AI trên thiết bị; Nó mang lại những lợi thế lớn so với các giải pháp đám mây về tốc độ, quyền riêng tư và hoạt động ngoại tuyến. Trong phần này, chúng ta sẽ tìm hiểu cách nhúng AI vào ứng dụng với Core ML của iOS, TensorFlow Lite đa nền tảng (hiện được gọi là LiteRT) và bộ giải pháp ML Kit có sẵn của Google cũng như cách sử dụng AI làm trợ lý trong quá trình tích hợp này.
Trên thiết bị hay đám mây?
Đây là quyết định kiến trúc đầu tiên và quan trọng nhất. AI trên thiết bị không xóa dữ liệu khỏi điện thoại – một lợi ích to lớn cho quyền riêng tư. Nó cũng hoạt động tức thời và hoạt động ngoại tuyến vì không có độ trễ mạng. Tuy nhiên, nó bị hạn chế bởi khả năng xử lý và bộ nhớ của thiết bị; Các mẫu có kích thước rất lớn (ví dụ: các mẫu có lưỡi khổng lồ) sẽ không vừa với điện thoại hoặc sẽ làm hao pin. Mặt khác, Cloud AI cung cấp sức mạnh vô hạn nhưng gửi dữ liệu đến máy chủ, yêu cầu mạng và tạo ra độ trễ.
tiêu chí
Trên thiết bị
Đám mây (API đám mây)
Quyền riêng tư
Dữ liệu vẫn còn trên thiết bị, mạnh mẽ
Dữ liệu đi đến máy chủ, cần chú ý
tốc độ
Tức thì, không có mạng
Phụ thuộc vào độ trễ mạng
ngoại tuyến
Nó hoạt động
không hoạt động
Kích thước mô hình
Hạn chế (tài nguyên điện thoại)
không giới hạn
pin/nhiệt
Hiệu ứng khi sử dụng nhiều
Máy chủ đang tải, thiết bị đang thư giãn
Chi phí
Miễn phí (nguồn thiết bị)
Phí mỗi lần sử dụng
Quy tắc quyết định: Chọn trên thiết bị nếu dữ liệu cá nhân/nhạy cảm đang được xử lý, cần hoạt động ngoại tuyến hoặc phản hồi tức thì là cần thiết. Nếu bạn cần một mô hình rất lớn, hãy chuyển sang đám mây. Đơn vị này tập trung vào thiết bị; Chúng tôi sẽ đề cập đến AI trên đám mây trong bài tiếp theo.
Mẹo: Luôn đặt tính năng xử lý dữ liệu nhạy cảm (sức khỏe, sinh trắc học, vị trí) làm mặc định trên thiết bị. Cụm từ “dữ liệu không rời khỏi thiết bị” là vô giá đối với cả việc tuân thủ quyền riêng tư và sự tin tưởng của người dùng, đồng thời tạo ra sự khác biệt lớn trong nhãn quyền riêng tư của cửa hàng.
Ba cách: ML Kit, Core ML, TensorFlow Lite
ML Kit (Google) là cách dễ nhất để bắt đầu: nó cung cấp các khả năng có sẵn như nhận dạng văn bản (OCR - đọc văn bản trong hình ảnh), nhận diện khuôn mặt, đọc mã vạch, dịch trong một vài dòng. Bạn không cần phải đào tạo mô hình của riêng mình. Core ML (Apple) là cách hiệu quả nhất để chạy mô hình của riêng bạn hoặc mô hình làm sẵn trên iOS; Nó sử dụng phần cứng Neural Engine (bộ xử lý mạng thần kinh nhân tạo) của Apple. TensorFlow Lite/LiteRT là một giải pháp đa nền tảng cho phép bạn chạy mô hình được đào tạo của riêng mình trên cả Android và iOS.
Luồng tích hợp chung với AI diễn ra như sau:
- Định nghĩa tài năng. Mục tiêu rõ ràng, chẳng hạn như "Tôi muốn đọc văn bản trong ảnh".
- Lựa chọn đường đi. Nếu đã sẵn sàng tài năng, ML Kit; Core ML/TF Lite nếu có model đặc biệt.
- Định dạng mô hình. .mlmodel (Core ML), .tflite (TF Lite). Giải thích các bước chuyển đổi AI.
- Mã tích hợp Đang tải mô hình, xử lý trước đầu vào, diễn giải đầu ra.
- Kiểm tra hiệu suất. Đo tốc độ, bộ nhớ, pin trên thiết bị thật.
Thận trọng: Lỗi AI phổ biến nhất trong tích hợp mô hình trên thiết bị là tiền xử lý đầu vào — chuyển đổi hình ảnh sang định dạng kích thước và màu sắc mà mô hình mong đợi. Nếu mô hình mong đợi 224x224 pixel và bạn cung cấp cho nó 300x300, kết quả sẽ vô nghĩa nhưng bạn sẽ không nhận được thông báo lỗi. Xác minh các giá trị tiền xử lý từ tài liệu của mô hình.
Biết giới hạn của mô hình
Mô hình trên thiết bị đưa ra quyết định dựa trên dữ liệu đã được đào tạo. Một mô hình nhận dạng đối tượng chỉ được đào tạo trên ảnh chụp vào ban ngày sẽ sai trên ảnh ban đêm. Mô hình có điểm tin cậy (độ tin cậy - mức độ tự tin của mô hình về câu trả lời của nó, thường là từ 0 đến 1); Sẽ rất nguy hiểm nếu trình bày kết quả có độ tin cậy thấp cho người dùng nhưng lại chính xác. Ví dụ: một ứng dụng quét đốm da không nên nói "chắc chắn lành tính", mà nên nói "dự đoán của mô hình là thế này, vui lòng tham khảo ý kiến bác sĩ". Kết quả của mô hình là một khuyến nghị, không phải là một chẩn đoán.
ba trường hợp nhỏ
Trường hợp 1 - Tăng tốc bằng OCR. Một ứng dụng theo dõi chi phí đã loại bỏ gánh nặng nhập biên lai theo cách thủ công bằng tính năng nhận dạng văn bản ML Kit. Người dùng chụp ảnh biên lai, số tiền và ngày tháng sẽ được điền tự động. Thời gian nhập thủ công giảm từ 40 giây xuống 8 giây cho mỗi lần nhận. Nhóm luôn yêu cầu người dùng xác nhận số lượng AI đã đọc; bởi vì biên lai nhăn nheo có tỷ lệ sai sót là 6%. Tự động hóa + sự phê duyệt của con người là sự cân bằng phù hợp.
Trường hợp 2 - Lỗi tiền xử lý. Một nhóm đã tích hợp mô hình nhận dạng thực vật với TensorFlow Lite; Trên máy thử, kết quả là ngẫu nhiên. Vấn đề là mã mà AI tạo ra đã không chuẩn hóa hình ảnh về phạm vi [0,1] như mô hình mong đợi (giá trị pixel được để ở mức 0-255). Khi thêm tính năng chuẩn hóa, độ chính xác tăng từ 30% lên 89%. Bài học: quá trình tiền xử lý diễn ra thầm lặng nhưng nguy hiểm.
Trường hợp 3 - Đạt được quyền riêng tư. Một ứng dụng sức khỏe đã phát hiện sự bất thường từ dữ liệu nhịp tim bằng mô hình Core ML trên thiết bị. Dữ liệu không bao giờ đến máy chủ. Lựa chọn này đã giúp ứng dụng nhận được cụm từ "không thu thập dữ liệu" trong nhãn quyền riêng tư của App Store và tăng tốc độ tải xuống so với các đối thủ. Sự lựa chọn trên thiết bị vừa có lợi về mặt đạo đức vừa có lợi về mặt thương mại.
Dấu nhắc yếu / Dấu nhắc mạnh
Lời nhắc yếu: "Thêm nhận dạng hình ảnh vào ứng dụng của tôi."
Lời nhắc mạnh mẽ: "Thêm tính năng đọc số lượng và ngày tháng vào ứng dụng Android/Kotlin của tôi. - Sử dụng Nhận dạng văn bản Google ML Kit (trên thiết bị, ngoại tuyến) - Chụp ảnh từ máy ảnh hoặc thư viện - Trích xuất số lượng và ngày tháng từ văn bản được nhận dạng bằng biểu thức chính quy - Trình bày kết quả cho người dùng phê duyệt trong trường CÓ THỂ CHỈNH SỬA, tự động lưu - Xử lý luồng cấp phép và từ chối của máy ảnh. Viết ra các tình huống xử lý trước và lỗi, giải thích các bước."
Mẫu có thể sao chép
Mẫu lựa chọn đường dẫn: "Tôi muốn tạo tính năng sau: [tính năng]. Nên sử dụng trên thiết bị hay đám mây? So sánh dựa trên: quyền riêng tư, nhu cầu ngoại tuyến, kích thước kiểu máy, pin, chi phí. Đề xuất công cụ thích hợp (ML Kit / Core ML / TF Lite) và căn chỉnh."
Mẫu tích hợp:"Viết tích hợp [mô hình/khả năng] cho [nền tảng]:1) Tải mô hình2) Xử lý trước đầu vào (kích thước và chuẩn hóa dự kiến)3) Lệnh gọi suy luận4) Giải thích đầu ra và kiểm tra điểm tin cậy5) Cảnh báo cho người dùng về kết quả có độ tin cậy thấpNhắc tôi xác minh các giá trị tiền xử lý từ tài liệu của mô hình."
Mẫu điểm tin cậy:"Xem xét điểm tin cậy trong mã suy luận này:- Trình bày kết quả 'chính xác' dưới ngưỡng (ví dụ: 0,6) - Hiển thị ghi chú 'đây là ước tính' cho người dùng- Tham khảo chuyên gia nếu lĩnh vực quan trọng (sức khỏe, an toàn)[code]"
Mẫu xác minh hiệu suất: "Liệt kê các số liệu tôi cần đo trên thiết bị thực tế để tích hợp mô hình trên thiết bị này: thời gian suy luận, mức tăng bộ nhớ, tác động của pin, độ nóng. Cho biết phương pháp đo cho từng số liệu."
Những lỗi thường gặp
- Bỏ qua quá trình tiền xử lý hoặc thực hiện không chính xác. Kích thước/chuẩn hóa sai âm thầm tạo ra kết quả sai.
- Bỏ qua điểm tin cậy. Việc trình bày một ước tính có độ tin cậy thấp là chính xác sẽ đánh lừa người dùng.
- Kiểm tra mô hình trong trình mô phỏng. Tốc độ thực tế của thiết bị và pin rất khác nhau; luôn đo trên phần cứng thực.
- Gửi dữ liệu nhạy cảm lên đám mây một cách không cần thiết. Việc chọn đám mây khi có thể thực hiện được trên thiết bị là một rủi ro về quyền riêng tư.
- Bỏ qua kích thước mô hình. Các ứng dụng mô hình lớn làm tăng kích thước tải xuống và gặp sự cố trên phần cứng thấp.
- Quên giới hạn đào tạo của mô hình. Mô hình bị nhầm lẫn trong tình trạng không nhìn thấy (ban đêm, ngôn ngữ khác); Hãy làm rõ điều này với người dùng.
Tóm lại
AI trên thiết bị mang lại sự riêng tư, tốc độ và hoạt động ngoại tuyến bằng cách lưu giữ dữ liệu trên điện thoại; Giới hạn là sức mạnh của thiết bị và kích thước mô hình. ML Kit được sử dụng cho các khả năng vượt trội, Core ML (iOS) và TensorFlow Lite (đa nền tảng) được sử dụng cho các mô hình tùy chỉnh. Kẻ giết người thầm lặng của sự tích hợp là quá trình tiền xử lý không đúng cách; Kích thước đầu vào và chuẩn hóa được xác minh từ tài liệu của mô hình. Mỗi kết quả đều có điểm tin cậy và những dự đoán có độ tin cậy thấp không được coi là sự thật tuyệt đối. Các quyết định được đo lường trên thiết bị thực chứ không phải trên trình mô phỏng.
Nhiệm vụ ứng dụng
Để có tính năng “đọc văn bản từ ảnh” hoặc “đọc mã vạch”, hãy hỏi AI xem nó nên ở trên thiết bị hay đám mây với “Mẫu chọn đường dẫn”, sau đó yêu cầu bản thiết kế dựa trên ML Kit với “Mẫu tích hợp”. Xác minh rằng bước tiền xử lý và luồng phê duyệt/chỉnh sửa của người dùng có trong mã. Đặt ngưỡng điểm tin cậy và viết những gì bạn sẽ làm nếu kết quả có độ tin cậy thấp.
danh sách kiểm tra
- [ ] Tôi đã đưa ra quyết định trên thiết bị/đám mây dựa trên tiêu chí
- [ ] Tôi đã chọn đúng công cụ (ML Kit / Core ML / TF Lite)
- [ ] Tôi đã xác minh kích thước tiền xử lý và chuẩn hóa từ tài liệu của mô hình
- [ ] Tôi đã kiểm tra điểm tin cậy và cảnh báo về kết quả có độ tin cậy thấp
- [ ] Tôi đã trình bày kết quả cho người dùng phê duyệt/chỉnh sửa, tôi không lưu nó một cách mù quáng
- [ ] Tôi đã đo hiệu suất trên thiết bị thật chứ không phải trên trình mô phỏng