Categories
Dev's Corner

Cách trở thành iOS Developer: Kỹ năng, tài nguyên và mạng lưới

Trong bài viết này, tôi sẽ hướng dẫn bạn những điều mà tôi nghĩ cần có để trở thành 1 iOS Developer. Tôi muốn nhắm vào 2 nhóm người:

  • Những người mới bắt đầu làm quen với Swift – những người chưa từng xây dựng bất kỳ thứ gì cho iOS trước giờ – và
  • Những người được gọi là false beginner, bạn đã cố gắng học Swift trước đây nhưng chưa bao giờ thực sự đạt được mục tiêu kiếm việc làm toàn thời gian.

Bất kể bạn hiện đang ở cấp độ nào, mục tiêu ở đây đều giống nhau: Đưa bạn vào đúng nợi để ứng tuyển vào vị trí Junior iOS Developer tại một công ty.


Dừng lại chút nào, nếu bạn đang #open_to_work, thử nghía qua các công việc đang tuyển trên Gamba nhé. Vào LINK NÀY để xem các job cần đến kỹ năng iOS hoặc scan QR Code ở bên dưới nhé.

Xem và ứng tuyển các job iOS
Xem và ứng tuyển các job iOS

Làm thế nào để trở thành 1 iOS Developer
Làm thế nào để trở thành 1 iOS Developer. Ảnh: ArrowHiTech

Chúng ta sẽ xem xét các kỹ năng bạn nên học, các khóa học bạn có thể tham gia, cách kết nối với cộng đồng, những lỗi thường gặp của mọi người,… mà không phải bỏ ra xu nào để học.

Nghiêm túc mà nói, có quá nhiều người nghĩ rằng tiêu tiền là con đường nhanh nhất để đạt được công việc mơ ước của họ, trong khi điều thực sự quan trọng nhất là sự quyết tâm và ý chí.

Có 7 phần trong bài viết này:

  • Những kỹ năng cốt lõi bạn nhất thiết phải biết để có 1 công việc.
  • Các kỹ năng mở rộng – những kỹ năng sẽ khiến bạn trở nên khác biệt, nếu bạn có thời gian để học chúng
  • Những sai lầm phổ biến mọi người mắc phải khi họ cố gắng học hỏi.
  • Các tài nguyên (miễn phí) để học Swift.
  • Cách kết nối với cộng đồng phát triển iOS.
  • Ý tưởng về việc mất bao lâu để đạt được mục tiêu.
  • Chuẩn bị nộp đơn cho công việc đầu tiên

Những kỹ năng cốt lõi để trở thành iOS Developer

Bộ kỹ năng tối thiểu bạn cần để có được công việc trong lĩnh vực phát triển iOS là gì? Tôi nghĩ tổng cộng có 5 món:

  • Swift
  • SwiftUI
  • Làm việc với dữ liệu
  • Kết nối mạng
  • Kiểm soát phiên bản

Hết rồi. Và danh sách đó là siêu ngắn có chủ đích, vì một số lý do:

Bạn càng học nhiều, bạn càng nhận ra rằng còn nhiều thứ phải học, vì vậy bạn rất dễ dành nhiều thời gian cho việc học và thực hành đến mức đánh mất mục tiêu thực tế – đó là kiếm một công việc với tư cách là iOS developer chứ không phải chỉ ngồi học tùm lum thứ.

Gần như chắc chắn bạn sẽ tham gia một nhóm đã có sẵn ứng dụng mà họ muốn bạn giúp phát triển, vì vậy trừ khi bạn cực kỳ may mắn, họ sẽ cần dạy bạn rất nhiều thứ bất kể – nếu bạn cố gắng và nhồi nhét về các chủ đề bổ sung trước đó, rất có thể bạn đang lãng phí thời gian của mình.

2 trong số 5 thứ đó thực sự lớn và thực sự phức tạp, và bạn có thể mất hàng tháng trời chỉ để cố gắng quấn lấy chúng mà không muốn mạo hiểm ở bất kỳ nơi nào khác.

Nhưng quan trọng nhất, nếu bạn làm đúng năm điều đó, bạn có thể xây dựng một loạt các ứng dụng.

Chắc chắn, code của bạn sẽ không hoàn hảo nhưng điều đó không sao – cách duy nhất để viết code xuất sắc là viết một loạt mã tệ trước đó.

Để nói chi tiết 5 cái này hơn nhé.

Học Swift

Đầu tiên trong danh sách là Swift.

Học Swift
Học Swift. Ảnh: Pinterest

Đây là ngôn ngữ lập trình cốt lõi của Apple – nó không có khái niệm hiển thị thông tin trên màn hình iPhone hoặc tải xuống dữ liệu từ internet, nó chỉ là một ngôn ngữ như JavaScript hoặc Python.

Bạn sử dụng nó để tạo biến, viết hàm,… nó chỉ là mã thuần túy.

Swift chỉ mới được vài năm tuổi, có nghĩa là nó sử dụng hầu hết mọi tính năng ngôn ngữ tiên tiến hiện có.

Một mặt, điều này nghĩa là bạn có thể tránh tất cả các hành vi cũ kỹ thường gặp trong các ngôn ngữ cũ hơn như C ++ và Java, nhưng nó cũng có nghĩa là nó có một số tính năng nâng cao hơn có thể khiến bạn hơi choáng lúc đầu.

Và điều đó không sao cả: nhiều phần của Swift tương đối đơn giản và một số phần sẽ khiến bạn mất nhiều thời gian hơn để thực sự hiểu ra, vì vậy chỉ cần dành thời gian và tiếp tục – bạn sẽ đạt được điều đó!

Học SwiftUI

Kỹ năng cốt lõi thứ hai mà tôi liệt kê là SwiftUI, đây là một framework của Apple cho phép chúng ta viết ứng dụng cho iOS, macOS, tvOS và thậm chí watchOS bằng Swift.

Học SwiftUI
Học SwiftUI

Vì vậy, trong khi Swift là ngôn ngữ lập trình, SwiftUI cung cấp các công cụ tạo ứng dụng – cách hiển thị ảnh, văn bản, nút, hộp văn bản, bảng dữ liệu,…

Cần nói rõ là, SwiftUI không phải để thay thế Swift – nó là một khung được xây dựng dựa trên Swift cho phép chúng ta tạo ứng dụng, vì vậy bạn cần cả Swift và SwiftUI để thành công.

Nếu bạn nghĩ Swift là mới, thì bạn vẫn chưa thấy gì – vì SwiftUI này chưa được hai năm tuổi! Nhưng mặc dù mới, nhưng cộng đồng iOS đã hết lòng đón nhận nó vì làm việc trên đó rất tuyệt.

Apple có một framework cũ hơn cho việc xây dựng ứng dụng iOS được gọi là UIKit và nếu bạn hỏi rằng bạn nên học SwiftUI trước hay UIKit trước, bạn sẽ nhận được nhiều câu trả lời.

Trên thực tế, bạn sẽ thấy nhiều người nói rằng họ không biết tôi đang nói về điều gì và UIKit nên được ưu tiên.

Trong trường hợp bạn thắc mắc, đây là lý do tại sao tôi nghĩ bạn nên tập trung vào SwiftUI như một kỹ năng cốt lõi:

  1. Nó dễ dàng so với UIKit, và ý tôi là dễ hơn đáng kể – có thể chỉ mất 1/4 code trên SwiftUI để nhận được kết quả tương tự như trên UIKit, ngoài ra bạn có ít thứ phải học hơn. Điều này nghĩa là bạn sẽ có rất nhiều động lực vì xây dựng mọi thứ nhanh hơn, xem kết quả của mình nhanh hơn và lặp lại các kết quả đó nhanh hơn.
  2. SwiftUI được xây dựng cho Swift, sử dụng các tính năng ngôn ngữ để giúp bạn tránh các vấn đề và đạt được hiệu suất tối đa. Ví dụ: nếu bạn thay đổi một số dữ liệu trên một màn hình của ứng dụng, SwiftUI sẽ tự động đảm bảo dữ liệu mới được cập nhật ở bất kỳ nơi nào khác trong ứng dụng của bạn sử dụng dữ liệu đó – bạn không cần phải viết mã đồng bộ hóa, chỉ làm mọi thứ thêm phức tạp. Trong khi đó, UIKit được viết cho ngôn ngữ cũ hơn của Apple, Objective-C, và kết quả là có đủ thứ kỳ quặc và rắc rối xuất hiện do tuổi tác của nó.
  3. SwiftUI hoạt động trên tất cả các nền tảng của Apple, vì vậy bạn có thể tận dụng những gì đã học trên iOS và sử dụng nó để tạo ứng dụng macOS hoặc watchOS với code gần như giống hệt nhau. Một số thứ như Digital Crown chỉ tồn tại trên một thiết bị, nhưng phần lớn những gì bạn học được sẽ chạy được ở mọi nơi.
  4. Nhưng quan trọng nhất, SwiftUI là nơi mọi thứ diễn ra. Nếu lúc này bạn đang nộp đơn ứng tuyển thì vẫn sẽ ổn nếu bạn cần biết UIKit. Đúng là UIKit hiện đã phổ biến hơn, nhưng vào thời điểm bạn học xong 6, 9 hoặc thậm chí 12 tháng kể từ bây giờ, SwiftUI sẽ là UI framework thống trị.

Nghiêm túc mà nói, các công ty lớn nhất thế giới đang chọn SwiftUI, bao gồm cả chính Apple, và khi Apple mới ra mắt các widget trong iOS 14, họ đã đưa ra yêu cầu rằng bạn phải sử dụng SwiftUI – UIKit không thể thực hiện được ở đó.

Mạng và dữ liệu

Kỹ năng thứ ba và thứ tư mà tôi đã đề cập là kết nối mạng và làm việc với dữ liệu. So với Swift và SwiftUI, thì nó khá dễ, hoặc ít nhất chúng ở cấp độ bạn cần để có được vị trí Junior iOS developer.

Mạng lươi và dữ liệu
Mạng lưới và dữ liệu

Kết nối mạng (networking) là hoạt động tìm nạp dữ liệu từ internet hoặc gửi dữ liệu từ thiết bị cục bộ đến máy chủ ở đâu đó.

Có nhiều cách để thực hiện việc này, nhưng thành thật mà nói thì điều tối thiểu bạn cần biết là cách tìm nạp một số JSON từ máy chủ.

Và đó là lúc một kỹ năng cốt lõi khác xuất hiện: làm việc với dữ liệu.

Có rất nhiều cách để bạn có thể tải và lưu dữ liệu, nhưng điều tối thiểu nhất bạn cần làm là chuyển đổi dữ liệu bạn nhận được từ máy chủ sử dụng mã mạng (network code) của bạn thành một số thông tin mà ứng dụng của bạn có thể hiển thị.

Vì vậy, thực sự kỹ năng cốt lõi thứ ba và thứ tư đi đôi với nhau: tìm nạp dữ liệu từ máy chủ, sau đó chuyển đổi nó thành thông tin mà bạn có thể hiển thị trong ứng dụng của mình.

Một số developer nói đùa rằng loại mã này là một nửa công việc của các iOS Developer và chắc chắn là chúng ta sử dụng những kỹ năng này rất nhiều.

Và cuối cùng: kiểm soát phiên bản

Kỹ năng cuối cùng hoàn toàn không phải là mã hóa: đó là kiểm soát phiên bản, sử dụng một cái gì đó như Git.

Kiểm soát phiên bản
Kiểm soát phiên bản

Bạn thực sự không cần nhiều ở đây, nhưng điều quan trọng là bạn có thể xuất bản code của mình ở một nơi nào đó như GitHub để các nhà tuyển dụng có thể xem công việc của bạn một cách công khai.

Tôi không nghĩ rằng bất kỳ ai trên đời này thực sự hiểu mọi thứ về cách hoạt động của Git, nhưng không sao – bạn chỉ cần biết đủ kiến ​​thức cơ bản để lưu trữ dữ liệu của mình một cách an toàn và có thể làm việc với những người khác.

Vì vậy, gộp 5 cái đó lại với nhau thì có 2 cái lớn – Swift và SwiftUI – cộng với 3 cái nhỏ nhưng quan trọng.

Thành thật mà nói, nếu bạn có thể chỉ tập trung vào 5 cái đó mà không bị phân tâm, bạn sẽ có những bước tiến lớn đối với công việc iOS Developer đầu tiên của mình.

Đó là 5 kỹ năng cốt lõi mà tôi nghĩ bạn cần để trở thành một nhà phát triển iOS.

Có hàng nghìn người ngoài kia chỉ có những kỹ năng đó và có thể xây dựng và đưa ra các ứng dụng tuyệt vời trên App Store.

Còn gì sau các kỹ năng cốt lõi của iOS Developer?

Khi bạn đã thực sự nắm chắc 5 kỹ năng cốt lõi, bạn hoàn toàn có thể tự vận hành các ứng dụng của riêng mình và làm việc với tư cách là một nhà phát triển độc lập, đồng thời cũng có thể ứng tuyển vào các vị trí Junior iOS developer và làm việc cho công ty bạn muốn.

Không có bằng cấp đặc biệt nào khác mà bạn cần – hãy học những kỹ năng cốt lõi đó.

Nhưng nếu bạn đã làm việc theo cách của mình thông qua các kỹ năng đó và muốn tiến xa hơn, thì có năm kỹ năng mở rộng mà tôi khuyến khích bạn học.

Đây là những kỹ năng sẽ đưa bạn từ nơi tốt sang nơi tuyệt vời – bạn thậm chí còn trở nên dễ được tuyển hơn và phạm vi ứng dụng bạn có thể xây dựng sẽ còn phát triển hơn nữa.

Các kỹ năng là:

  • UIKit
  • Dữ liệu lõi (Core Data)
  • Kiểm thử 
  • Kiến trúc phần mềm
  • Đa luồng

Tôi muốn giải thích chi tiết hơn từng cái để bạn có thể hiểu tại sao chúng quan trọng – và tại sao tôi coi chúng là kỹ năng mở rộng hơn là kỹ năng cốt lõi.

Chuyển sang UIKit

Đây là khung giao diện người dùng cũ hơn của Apple và đã được sử dụng để xây dựng ứng dụng từ năm 2008 – nó đã 13 năm tuổi khi tôi viết bài này, theo thuật ngữ phần mềm thì đã cũ.

UIKit
UIKit

Nhưng độ tuổi đó không có nghĩa là UIKit tệ, và thực tế là khi bạn cảm thấy thoải mái với cách thức hoạt động của nó, bạn sẽ ngạc nhiên bởi vẻ đẹp của nó.

Có rất nhiều điều khiến UIKit đáng học hỏi, bao gồm:

  • Hàng trăm nghìn ứng dụng đã được viết trong UIKit, vì vậy nếu bạn đang gia nhập một công ty có ứng dụng lớn, được thiết lập tốt, bạn gần như chắc chắn sẽ cần viết mã UIKit để duy trì ứng dụng đó.
  • UIKit mạnh hơn đáng kể so với SwiftUI – có nhiều điều bạn có thể làm trong UIKit mà SwiftUI không thể thực hiện được tại thời điểm này.
  • Bạn có thể tạo các bố cục cực kỳ chính xác bằng cách sử dụng công nghệ có tên là Bố cục Tự động (Auto Layout).
  • Nếu bạn gặp sự cố với mã của mình, có nhiều giải pháp có sẵn trong UIKit hơn SwiftUI, đơn giản vì nó đã tồn tại lâu hơn nhiều.

Bạn có thể nghĩ rằng tất cả những điều đó làm cho UIKit trở nên tuyệt vời, vậy tại sao tôi lại biến nó thành một kỹ năng mở rộng thay vì một kỹ năng cốt lõi?

Chà, vì UIKit cũng có vấn đề:

  • Hầu hết mọi thứ trong UIKit đều khó thực hiện hơn SwiftUI, với một số thứ tốn nhiều mã gấp hàng trăm lần nếu không muốn nói là nhiều hơn. SwiftUI được tạo ra đặc biệt cho phát triển iOS hiện đại, vì vậy nó thực hiện rất nhiều công việc cho bạn.
  • Vì UIKit không được viết cho Swift, bạn sẽ thấy nó có nhiều tính năng mà bạn có thể quên với SwiftUI – rất nhiều tùy chọn không được bao bọc ngầm, đánh dấu mã bằng thuộc tính @objc đặc biệt để làm cho nó có sẵn cho Objective-C của UIKit, cần sử dụng giao thức và đại biểu để hiển thị dữ liệu đơn giản.
  • Không có gì về Bố cục Tự động là “tự động” – trên thực tế, nếu bạn cố gắng tạo một bố cục phức tạp, rất có thể bạn sẽ gặp ác mộng về Bố cục Tự động. Nó cực kỳ thông minh, nhưng nó cũng cực kỳ khó khăn.

Và đó là lý do tại sao tôi coi UIKit là một kỹ năng mở rộng: cần nhiều thời gian và nỗ lực để học so với SwiftUI, điều này có nghĩa là cần phải quyết tâm hơn rất nhiều – bạn phải thực sự muốn học nó, nếu không thì bạn sẽ bối rối, buồn chán, tức giận, hoặc có thể là cả ba.

Chắc chắn, SwiftUI không có tất cả các tính năng của UIKit, nhưng ít nhất bạn có thể đạt được tiến bộ nhanh chóng và cảm thấy có động lực cũng như thành công trước khi chuyển sang UIKit.

Xử lý dữ liệu lõi

Kỹ năng mở rộng thứ hai mà tôi đã đề cập là Dữ liệu lõi, là framework của Apple để làm việc với dữ liệu ứng dụng.

Dữ liệu lõi
Dữ liệu lõi

Trong phần kỹ năng lõi, tôi đã liệt kê cả kết nối mạng và làm việc với dữ liệu và đúng là như vậy: với những kỹ năng đó, bạn có thể tìm nạp bất cứ thứ gì bạn muốn từ máy chủ và hiển thị nó trong ứng dụng của mình.

Những gì Core Data thực hiện còn tiến xa hơn một bước: nó cho phép bạn thao tác dữ liệu đó khi bạn có nó, chẳng hạn như tìm kiếm các giá trị cụ thể, sắp xếp kết quả, v.v., tất cả đều rất hiệu quả.

Nó cũng có thể liên kết rất dễ dàng với iCloud, có nghĩa là dữ liệu của người dùng của bạn được đồng bộ hóa trên tất cả các thiết bị của họ.

Dữ liệu lõi có rất nhiều nhược điểm, trong đó nhược điểm lớn nhất thường không được thoải mái cho lắm khi làm việc.

Core Data có tuổi đời tương đương với UIKit, và mặc dù nó hoạt động tốt với Objective-C nhưng nó không thoải mái bằng Swift.

Nó có tích hợp tốt với SwiftUI, điều này làm cho nó đỡ lạ hơn một chút, nhưng nó vẫn là một chủ đề phức tạp tới mức kinh ngạc.

Vì vậy, tại sao tôi lại liệt kê nó như một kỹ năng mở rộng? Bởi vì giống như UIKit, Dữ liệu lõi cũng cực kỳ phổ biến – hàng trăm nghìn ứng dụng đã được xây dựng bằng cách sử dụng nó và nó được sử dụng ở nhiều công ty lớn và nhỏ.

Cũng giống như UIKit, Core Data thực sự mạnh mẽ và mặc dù bạn có thể tạo lại những phần quan trọng nhất của nó trong mã của riêng mình, nhưng tại sao bạn lại muốn như thế chứ?

Chứng minh mã của bạn hoạt động

Kỹ năng thứ ba trong danh sách mở rộng của tôi là kiểm thử: viết mã đặc biệt để kiểm tra mã ứng dụng chính của bạn có hoạt động theo cách bạn mong đợi hay không.

Kiểm thử
Kiểm thử

Các kiểm thử cho phép chúng ta đảm bảo mã của mình hoạt động chính xác và quan trọng hơn cho phép chúng ta tiếp tục đảm bảo mã hoạt động chính xác ngay cả sau khi chúng ta đã thực hiện các thay đổi quan trọng đối với nó – nếu bạn thay đổi 500 dòng mã để triển khai một tính năng mới và tất cả bài kiểm thử đều qua, thì cứ thế mà đi.

Vì vậy, kiểm thử rất quan trọng, và sẽ giúp bạn viết phần mềm có chất lượng tốt hơn. Vậy tại sao nó là một kỹ năng mở rộng thay vì một kỹ năng cốt lõi? Có ba lý do:

  • Vì bất kỳ lý do lịch sử nào, cộng đồng iOS nói chung rất tệ khi nói đến kiểm thử. Ý tôi là thực sự rất tệ – nhiều ứng dụng khổng lồ hầu như không có bất kỳ bài kiểm thử nào và tôi đã không đếm được bao nhiêu senior iOS developer mà mình từng gặp, những người gần như tự hào rằng họ không bao giờ viết kiểm thử. 
  • Khi bạn nghĩ về tất cả những thứ đáng chú ý mà bạn có thể xây dựng bằng các công cụ và framework của Apple, thành thật mà nói, viết kiểm thử có vẻ không thú vị lắm. Cá nhân tôi thích viết các bài kiểm thử giống như cách tôi thích xỉa răng, nhưng tôi biết nhiều người không cảm thấy hứng thú với chúng, đặc biệt là đối với các dự án cá nhân.
  • Khi bạn đang ứng tuyển, việc có kiến ​​thức về Swift và các framework chính của Apple sẽ luôn có lợi hơn kiến ​​thức về các bài kiểm thử. Các công ty thà rằng bạn biết cách sử dụng SwiftUI, UIKit hoặc một trong những cái tên nổi tiếng khác, bởi vì kiểm thử là một chủ đề nhỏ hơn đáng kể – gần như không có nhiều thứ để tìm hiểu.

Vì vậy, kiểm thử là quan trọng, và tôi rất muốn bạn học cách viết các bài kiểm thử tuyệt vời.

Nhưng hãy làm điều đó sau khi bạn đã nắm được những kiến ​​thức cơ bản về xây dựng ứng dụng – hãy đạt được một số thành công nhất định, cảm nhận sự phấn khích tuyệt đối khi ứng dụng của bạn xuất hiện trên App Store, sau đó bắt đầu kiểm thử.

Xây dựng thông minh hơn

Kỹ năng mở rộng thứ tư mà tôi muốn nói đến là kiến ​​trúc phần mềm (software infrastructure), nó là về cách chúng ta tạo code của mình.

Kiến trúc phần mềm
Kiến trúc phần mềm

Khi bạn chỉ mới học, bạn sẽ viết mã tệ tới nỗi nó có thể phá vỡ hiệp định Geneva.

Và điều đó không sao cả, bởi vì đó là cách bạn học: bạn khởi đầu không tốt – bạn trở nên giỏi khi đã dở trong một thời gian dài, giống như LeBron James sinh ra không phải là một nhà vô địch bóng rổ.

Vấn đề là bạn phải kiên trì với đoạn mã kém của mình, cho đến khi bạn học cách làm nó tốt hơn.

Và đó là lúc kiến ​​trúc phần mềm xuất hiện: áp dụng các kỹ thuật đã được chứng minh để cấu trúc mã của bạn để giúp dễ đọc hơn, dễ sử dụng hơn, dễ sửa đổi hơn và dễ chăm sóc về lâu dài hơn.

Đôi khi những kỹ thuật này dựa trên cách Swift hoạt động – các tính năng ngôn ngữ mà bạn có thể sử dụng để viết mã tốt hơn.

Nhưng có nhiều kỹ thuật khác hoạt động với bất kỳ ngôn ngữ lập trình nào, và chúng ta thường gọi là các mẫu thiết kế (design patterns).

Một điểm chính mà bạn nên bắt đầu tìm hiểu như một phần của kỹ năng này là cách chia nhỏ mã.

Ví dụ:

Nếu bạn đang tạo một màn hình trong ứng dụng của mình, bạn có thể có nút đăng nhập, thư viện hình ảnh và danh sách bạn bè trên màn hình đó.

Nhưng lý tưởng nhất là bạn nên tạo từng thành phần riêng biệt – thành phần nút đăng nhập, thành phần thư viện hình ảnh và thành phần danh sách bạn bè – để bạn có thể sử dụng lại bất kỳ thành phần nào trong số các thành phần đó trong các phần khác của ứng dụng.

Kiến trúc phần mềm mang tính chủ quan hơn nhiều so với các kỹ năng khác mà tôi đã đề cập cho đến nay.

Đối với những thứ khác – ví dụ như SwiftUI – bạn có thể tự nghĩ: “Chà, tôi biết cách thực hiện X, Y và Z, vì vậy tôi cảm thấy tự tin rằng mình là một nhà phát triển SwiftUI giỏi.”

Kiến trúc phần mềm là một chủ đề rất rộng và thành thật mà nói, không có cách nào rõ ràng là “đúng” để giải quyết vấn đề, vì vậy tôi nghĩ điểm chuẩn tốt nhất cho nó là: nếu bạn nhìn lại mã của mình từ sáu tháng trước, hoặc một năm trước, hoặc ba năm trước,… bạn có nghĩ “wow, mã đó tệ quá!”

Một lần nữa, code xấu cũng không sao miễn là nó đưa bạn đến con đường trở nên tốt hơn.

Tôi chắc chắn nhìn lại đoạn mã mà tôi đã viết cách đây 5 năm và nhăn mặt ở nhiều chỗ, bởi vì bây giờ tôi biết nhiều hơn những gì tôi đã làm hồi đó – và đó là một điều tốt.

Đa luồng (multithreading)

Kỹ năng mở rộng cuối cùng mà tôi muốn nói đến là đa luồng, nói một cách đơn giản là kỹ thuật làm cho mã của bạn làm nhiều việc cùng một lúc.

Đa luồng
Đa luồng

Đa luồng có thể là một vấn đề thực sự đau đầu, vì bộ não của chúng ta khó hiểu – khi code của bạn thực hiện một việc tại một thời điểm, chúng ta có thể suy nghĩ một cách tuyến tính, nhưng khi hai hoặc ba điều xảy ra cùng một lúc, có khả năng chồng chéo lên nhau, nó thực sự có thể uốn cong bộ não của bạn.

Vì vậy, mặc dù đa luồng là một điều tuyệt vời để có như một kỹ năng mở rộng, bạn cần phải cẩn thận – mục tiêu của bạn phải là hiểu vừa đủ các khái niệm và mã để làm cho nó hoạt động tốt mà không cần phải đi xa hơn.

Thành thật mà nói, nhiều nhà phát triển nghĩ rằng đa luồng sẽ làm cho mã của họ chạy nhanh hơn ba hoặc bốn lần ngay lập tức, và trong một số trường hợp thì sẽ như vậy, nhưng trong nhiều trường hợp khác, mã của bạn sẽ chạy chậm hơn và rồi bạn có một mớ phức tạp cần giải quyết.

Vì vậy: hãy tìm hiểu một chút về cách hoạt động của đa luồng trong Swift để bạn có thể hiểu được các khái niệm và cách triển khai, nhưng hãy cố gắng đừng đi quá đà!

Những sai lầm thường gặp của iOS Developer

Tại thời điểm này, tôi đã phác thảo tất cả các kỹ năng cốt lõi và mở rộng mà tôi nghĩ bạn cần để làm việc với tư cách là iOS Developer fulltime.

Nhưng tôi cũng muốn nói về một số sai lầm phổ biến nhất mà mọi người mắc phải khi học, bởi vì tôi thấy những lỗi này rất nhiều và tôi biết nó khiến mọi người phải lùi bước.

Có 7 vấn đề chính mà mọi người gặp phải, và tôi muốn trình bày chúng theo thứ tự. Chúng là:

  1. Ghi nhớ mọi thứ
  2. Hội chứng đồ vật sáng bóng (shiny object syndrome)
  3. Sói cô đơn
  4. Sử dụng phần mềm beta
  5. Dựa vào tài liệu của Apple
  6. Bị lạc trong Objective-C
  7. Thèm thuồng ngôn ngữ khác

Hãy cùng tìm hiểu từng cái.

Cố gắng ghi nhớ mọi thứ

Vấn đề đầu tiên và cho đến nay là vấn đề phổ biến nhất mà mọi người gặp phải là cố gắng ghi nhớ mọi thứ – đọc qua một hướng dẫn và nghĩ rằng họ phải ghi nhớ mọi thứ trong đó.

Xin đừng làm vậy: đó là công thức của thảm họa và sẽ hút hết ý chí ra khỏi bạn cho đến khi bạn không bao giờ muốn lập trình nữa.

Không ai ghi nhớ tất cả mọi thứ.

Không ai thậm chí đến gần việc ghi nhớ tất cả mọi thứ.

Ngay cả khi bạn chỉ nghĩ về các API mà Apple xuất bản, đó là những đoạn mã mà chúng ta có thể sử dụng để xây dựng ứng dụng của mình, thì cũng phải có hơn một trăm nghìn người ở đó.

Nếu bạn chỉ giới hạn điều đó ở các thành phần cốt lõi của xây dựng ứng dụng, thì có thể bạn vẫn đang xem xét hàng trăm – tất cả đều hoạt động theo một cách rất chính xác đòi hỏi nhiều học hỏi để sử dụng.

Thay vào đó, điều xảy ra là bạn học cách làm điều gì đó mới, sau đó nhanh chóng quên nó đi.

Vì vậy, bạn tra cứu nó và sử dụng nó một lần nữa, sau đó kịp thời quên nó đi. Vì vậy, bạn tra cứu nó lần thứ ba và sử dụng nó, và lần này bạn hầu như chỉ quên nó – một số bộ phận vẫn còn trong não của bạn.

Điều này lặp đi lặp lại, mỗi lần bạn phải tham khảo một hướng dẫn hoặc một số hướng dẫn tham khảo khác, cho đến khi cuối cùng những điều thực sự cốt lõi đã bám vào đầu bạn đến mức bạn có thể làm được mà không cần tham khảo ở nơi khác.

Nếu bạn chưa biết, thì quên là một thành phần quan trọng của việc học. Mỗi khi bạn quên điều gì đó và học lại nó, nó sẽ đi vào não bạn sâu hơn và kỹ lưỡng hơn một chút.

Mỗi khi bạn học lại, não của bạn tạo ra những kết nối mới với những thứ khác bạn đã học được, giúp bạn hiểu thêm về bối cảnh của những gì bạn đang cố gắng làm.

Và mỗi khi bạn học lại, bạn sẽ làm cho bộ não của bạn rõ ràng rằng chủ đề cụ thể này đáng ghi vào bộ nhớ dài hạn của nó.

Nhưng nếu bạn bắt đầu cố gắng ghi nhớ mọi thứ, bạn sẽ gặp khó khăn.

Thay vào đó, đừng lo lắng về việc quên mọi thứ: biết nơi để tra cứu chúng quan trọng hơn nhiều so với việc ghi nhớ mã Swift cụ thể để hoàn thành một việc gì đó.

Khi bạn quên điều gì đó và phải học lại, tôi khuyến khích bạn nghĩ đó là một điều tốt – thông tin đó sẽ chìm sâu hơn vào lần thứ hai, thứ ba và thứ mười khi bạn học nó, vì vậy bạn đang giúp ích cho bộ não của mình.

Đừng màng tới SOS

Vấn đề thứ hai mà tôi thấy mọi người gặp phải là cái mà tôi gọi là hội chứng vật thể sáng bóng (shiny object syndrome) – họ tìm thấy một loạt hướng dẫn phù hợp với mình và bắt đầu đạt được một số tiến bộ, nhưng sau một hoặc hai tuần họ thấy một số loạt hướng dẫn khác mà họ muốn làm theo và nhảy qua đó.

Đã có người gửi email cho tôi nói rằng họ đã thử 4, 5 hoặc thậm chí 6 hướng dẫn khác nhau và – vì một số lý do kỳ lạ – nhận thấy rằng họ không học được gì.

Vấn đề ở đây thường là phần lớn việc học bất cứ thứ gì không thú vị.

Đó hoàn toàn không phải lỗi của giáo viên, đó chỉ là thực tế của việc học code – một số thứ mang lại cho bạn kết quả tuyệt vời mà hầu như không có tác dụng nào, và những thứ khác cần nhiều thời gian hơn để hiểu, không mang lại kết quả tốt hoặc chỉ là một phần của một khái niệm lớn hơn.

Khi bạn đạt được những đường cong học tập dốc này, SOS trở nên mạnh mẽ – với rất nhiều hướng dẫn miễn phí hiện nay, bạn có thể chuyển đến bất kỳ hướng dẫn nào trong số đó và bắt đầu lại, và ngay lập tức bạn sẽ quay lại đáy hồ một lần nữa, bao gồm các phần dễ hơn bạn đã học.

Nhưng trừ khi khóa học ban đầu chọn dạy về một chủ đề đặc biệt kỳ lạ, bạn kiểu gì rồi sẽ phải học nó và bạn chỉ đang trì hoãn một điều không thể tránh khỏi.

Vì vậy, không bắt buộc bạn luôn chống lại hội chứng vật thể sáng bóng, vì tôi biết điều đó rất khó.

Thay vào đó, ít nhất hãy ý thức về nó: khi bạn gặp vấn đề, hãy thử nhờ người khác giúp đỡ và vượt qua thay vì đổi đi đổi lại.

Đừng là một con sói đơn độc

Nói về việc hỏi người khác, vấn đề thứ ba mà tôi thấy mọi người gặp phải là khi họ hoàn toàn đơn độc với việc học của mình – họ nghĩ trong đầu rằng họ hoàn toàn có khả năng học cách tự xây dựng các ứng dụng iOS bằng Swift, và không cần sự giúp đỡ của người khác.

Cách tiếp cận này thực sự hiệu quả với một số lượng rất nhỏ người, thường là những người có nhiều kinh nghiệm với các ngôn ngữ lập trình hoặc nền tảng khác.

Nhưng đối với phần lớn mọi người, cố gắng học hỏi như thế này là một trải nghiệm khủng khiếp – mỗi sai lầm hoặc hiểu lầm mất gấp năm lần để tìm ra, cực kỳ dễ mất động lực và bạn đang bỏ lỡ rất nhiều cảm hứng từ việc nhìn thấy người khác thành công.

Nếu bạn tự nhiên thích phong cách học “sói đơn độc” này, hãy để tôi khuyến khích bạn thay đổi: chia sẻ những gì bạn đang học, tìm những người khác cũng đang học và tập thói quen đặt câu hỏi.

Bạn không chỉ khám phá ra có một cộng đồng tuyệt vời gồm những người học sẽ bao quanh bạn với sự hỗ trợ và khuyến khích, mà bạn còn được truyền cảm hứng từ công việc của họ và lần lượt truyền cảm hứng cho họ với công việc của bạn.

Tin tôi đi, tôi đã thấy điều này xảy ra hàng trăm lần và nó hoàn toàn biến đổi.

Chạy theo phiên bản beta

Vấn đề lớn thứ tư mà tôi thấy mọi người gặp phải là khi họ khăng khăng sử dụng phiên bản beta các công cụ phát triển của Apple.

Tôi hiểu: mỗi năm Apple đều giới thiệu iOS mới, macOS mới,… luôn mang đến những điều mới thú vị để chúng ta thử.

Hoàn toàn tự nhiên khi mọi người muốn tìm hiểu những gì mới nhất, tuyệt vời nhất ngoài kia, đặc biệt nếu họ biết rằng Swift có một lịch sử thay đổi lâu dài.

Tuy nhiên, mọi người gặp phải tất cả các loại vấn đề khi họ cố gắng học với phần mềm beta:

  • Các bài học chưa được cập nhật cho phiên bản beta, vì vậy, việc làm theo các bài học không phải lúc nào cũng có thể thực hiện được hoặc có thể hoạt động không chính xác.
  • Beta thường có rất nhiều lỗi, đặc biệt là đối với những phiên bản được phát hành cho các bản cập nhật iOS lớn.
  • Các framework beta của Apple cần thời gian để ổn định, có nghĩa là code hoạt động trong phiên bản beta 1 có thể không tồn tại trong phiên bản beta 3.

Vì vậy, tôi biết thật thú vị khi tìm hiểu những thứ mới và tôi nhận ra rằng bạn có thể nghĩ rằng bạn đang dẫn đầu trò chơi với các tính năng mới, nhưng hãy tin tôi: điều đó không đáng.

Hãy luôn bám vào các bản phát hành công khai mới nhất của các công cụ dành cho nhà phát triển của Apple, ít nhất là cho đến khi bạn cảm thấy thoải mái với chúng.

Dựa vào các tài liệu chính thức

Vấn đề lớn thứ năm mà mọi người gặp phải khi cố gắng tìm hiểu là dựa vào tài liệu của Apple.

Nhóm xuất bản dành cho nhà phát triển của Apple làm việc chăm chỉ để ghi tài liệu nhiều nhất có thể từ rất nhiều framework của công ty, nhưng công việc của họ phần lớn là viết tài liệu tham khảo – những thứ bạn đọc khi đang cố gắng sử dụng một phần cụ thể trong công cụ của họ, thay vì tạo một khóa học có cấu trúc để giúp bạn học cách xây dựng ứng dụng iOS.

Tôi đã không nghe không biết bao nhiêu lần mọi người hỏi “làm thế nào tôi có thể học Swift?” chỉ để được trả lời “chỉ cần đọc hướng dẫn tham khảo Swift của Apple.”

Cách tiếp cận này thực sự hiệu quả với một số người và tôi biết điều đó vì nó phù hợp với tôi – tôi đã đọc nó từ đầu đến cuối khi Swift được công bố lần đầu tiên.

Tuy nhiên, đối với hầu hết mọi người, nó giống như cố gắng học ngôn ngữ của con người bằng cách đọc từ điển: nó được thiết kế để bao gồm mọi thứ bằng ngôn ngữ đó, thay vì dạy bạn những phần quan trọng nhất và cách áp dụng chúng.

Vì vậy, nếu bạn có nhiều kinh nghiệm với các ngôn ngữ khác, bạn có thể thấy việc đọc hướng dẫn tham khảo của Apple là hữu ích, nhưng nếu bạn mới bắt đầu thì có thể quay lại với chúng sau một vài tháng.

Bị lạc trong Objective-C

Vấn đề lớn thứ sáu mà mọi người gặp phải là cố gắng học Objective-C.

Đây là ngôn ngữ phát triển chính của Apple trước khi Swift được giới thiệu và mặc dù bạn sẽ tìm thấy tàn dư trong một số cơ sở mã cũ nhưng phần lớn mã hiện có hiện tại là Swift và hầu như tất cả mã mới cũng là Swift.

Tôi đã dành nhiều năm để viết Objective-C trước khi Swift xuất hiện và thực sự yêu thích nó, nhưng nó có quá trình học tập cực kỳ khó khăn so với Swift và bỏ lỡ hầu hết các tính năng quan trọng của Swift.

Tôi nhớ lần đầu tiên tôi dùng thử SDK iPhone khi Apple công bố nó, và cảm thấy kinh hoàng với Objective-C vì nó hoàn toàn không giống bất cứ thứ gì khác mà tôi đã thấy cho đến nay.

Đối với người học, Objective-C và Swift hầu như không có điểm chung.

Đúng vậy, cả hai đều có chung khuôn khổ của Apple, nhưng trừ khi bạn thực sự định làm việc tại Apple – công ty duy nhất trên thế giới vẫn sản xuất một lượng lớn Objective-C – thì bạn nên để Objective-C một bên và tập trung hoàn toàn vào Swift.

Biết một chút các ngôn ngữ khác

Và sai lầm lớn cuối cùng mà tôi thấy mọi người mắc phải khi học Swift là đổ lỗi cho các ngôn ngữ khác như thể chúng kém hơn Swift theo cách nào đó.

Mục tiêu thông thường là JavaScript, nhưng bạn cũng sẽ thấy mọi người nói cả Python, Java, Ruby, Go,… và để làm gì?

Đó không phải là một cuộc thi, các bạn ạ – những ngôn ngữ đó không cần phải thua thì Swift mới có thể chiến thắng.

Trên thực tế, Swift và SwiftUI lấy cảm hứng từ các ngôn ngữ và framework khác – bất cứ khi nào các tính năng ngôn ngữ mới được cân nhắc, cộng đồng sẽ nhìn vào các triển khai tương tự trong Rust, Python, Haskell và các ngôn ngữ khác, và bản thân SwiftUI được lấy cảm hứng từ framework React trong JavaScript.

Vì vậy, khi tôi thấy mọi người trong cộng đồng của chúng ta nói SwiftUI là không có JavaScript hoặc tương tự, tôi chỉ chùn tay – không có gì có thể đi xa hơn sự thật.

Các khóa học và tài nguyên dành cho nhà phát triển iOS

Bây giờ, phần mà hầu hết mọi người sẽ quan tâm nhất: tôi nghĩ bạn nên sử dụng tài nguyên thực tế nào để học Swift, SwiftUI và hơn thế nữa – để đạt được mục tiêu trở thành iOS Developer?

Có rất nhiều thứ ngoài kia, và tôi thực sự đánh giá cao thực tế là cộng đồng Swift có rất nhiều người chia sẻ kinh nghiệm của họ.

Tài nguyên và khóa học dành cho iOS Developer
Tài nguyên và khóa học dành cho iOS Developer

Tuy nhiên, ở đây tôi đặc biệt sẽ xem xét các tài nguyên miễn phí – những nơi bạn có thể đến và học cách xây dựng các ứng dụng tuyệt vời mà không phải trả một xu.

Có hai lý do cho việc này:

  • Một số người tin rằng một khóa học Swift càng tốn kém thì càng tốt, vì vậy họ sẽ phải trả những cái giá quá đắt mà không nhận được đủ lợi ích từ nó.
  • Nhiều trang web như Udemy dựa vào việc bán nhiều khóa học giá rẻ, tin rằng nếu bạn không thích một khóa học, bạn sẽ mua một khóa học khác. Họ cũng có mô hình kinh doanh tương tự như Steam’s – luôn có doanh số bán hàng, khuyến khích mọi người xây dựng nhiều khóa học mà họ sẽ học “một ngày nào đó”.

Vì vậy, tôi chỉ liệt kê các tài nguyên miễn phí ở đây bởi vì tôi không muốn bạn rơi vào những cái bẫy đó – đừng vung một trăm đô trở lên cho khóa học đầu tiên của bạn và đừng mua một tá khóa học rẻ tiền vì bạn nghĩ điều đó khiến bạn trở thành nhà phát triển.

Hướng dẫn có cấu trúc

Đầu tiên, Apple có hai tài nguyên lớn có thể giúp bạn.

Đầu tiên là trang Teaching Code, nơi liệt kê các tài nguyên dành cho sinh viên và giáo viên để học Swift từ cơ bản cho đến chứng chỉ chuyên nghiệp.

Chương trình học của họ rất lớn, vì vậy bạn có thể mất một chút thời gian để tìm ra điểm đầu vào tốt nhất cho mình, tuy nhiên khi bạn đã ở đó, bạn sẽ tìm thấy rất nhiều điều để khám phá.

Thứ hai, Apple có một loạt các hướng dẫn SwiftUI nhập môn giúp bạn xây dựng các ứng dụng thực tế.

Tuy nhiên, những cái này không dạy bạn Swift, vì vậy trước tiên bạn cần phải tuân theo chương trình giảng dạy tập trung vào Swift của họ.

Giống như tôi đã nói trước đó, Apple cũng tạo ra một hướng dẫn dành riêng cho ngôn ngữ lập trình Swift, nhưng rất có thể nó sẽ không phù hợp với bạn – nó được thiết kế như một tài liệu tham khảo chứ không phải là một hướng dẫn có cấu trúc, vì vậy nó khá dày đặc.

YouTube

Có một số video YouTube tuyệt vời hướng dẫn bạn về các nguyên tắc cơ bản của SwiftUI, bao gồm:

  • Một từ Chris Ching, anh ấy hướng dẫn bạn xây dựng một trò chơi đánh bạc từ đầu.
  • Một từ Mark Moeykens, anh ấy giải thích 5 khái niệm SwiftUI mà mọi người nên học khi bắt đầu lập trình.
  • Và một từ tôi, tôi dạy cả Swift và SwiftUI cùng lúc, trong khi lấy câu hỏi từ khán giả.

Mặc dù chúng không có cấu trúc, nhưng vẫn có những trang web khác có hướng dẫn Swift và SwiftUI chất lượng cao, gồm BLCKBIRDS, Ray Wenderlich, Donny Wals, Antoine van der Lee,…

Tôi thực sự khuyến khích mọi người truy cập nhiều tài nguyên và tìm những gì phù hợp với mình.

Học từ ứng dụng

Nếu bạn thích học bằng cách sử dụng các ứng dụng, tôi muốn giới thiệu hai ứng dụng, cả hai đều hoàn toàn miễn phí.

Đầu tiên là ứng dụng Swift Playgrounds của Apple, cho phép bạn học Swift ngay trên iPad hoặc Mac của mình.

Có rất nhiều bài học tương tác dành cho trẻ em, nhưng cũng có một số bài học nâng cao hơn sẽ giúp thúc đẩy các kỹ năng của bạn hơn nữa.

Ứng dụng còn lại là do tôi tự tạo và có tên là Unwrap.

Unwrap hoạt động trên tất cả iPhone và iPad, đồng thời cho phép bạn tìm hiểu, đánh giá và thực hành các nguyên tắc cơ bản của Swift bằng cách sử dụng video, bài kiểm tra và hơn thế nữa.

Nó bao gồm tất cả các nguyên tắc cơ bản của Swift.

Tìm câu trả lời

Cuối cùng, bạn sẽ cần học cách tìm câu trả lời trực tuyến.

Điều này có thể có nghĩa là đến Stack Overflow, nhưng thành thật mà nói, tôi hy vọng không phải vì đó không phải là một nơi quá dễ chịu.

Thay vào đó, hãy đặt câu hỏi trên diễn đàn Hacking với Swift, trên nhóm Slack yêu thích của bạn, trong các phiên Giờ hạnh phúc dành cho iOS Developer, trên Twitter, v.v. – chúng ta thực sự là một cộng đồng rất nồng nhiệt, thân thiện với rất nhiều người sẵn sàng giúp bạn tiếp cận mục tiêu của bạn.

Kết nối với cộng đồng

Nói về cộng đồng của chúng tôi, tôi muốn chuyển sang một chủ đề thực sự quan trọng sẽ giúp gặp gỡ những người ở vị trí tương tự như bạn, giúp bạn học hiệu quả hơn và cũng giúp bạn tìm được cơ hội việc làm – tất cả chỉ là một chiến thắng.

Chủ đề là thế này: kết nối với cộng đồng phát triển iOS. Điều này nghĩa là học nơi tìm kiếm tin tức và những ý tưởng thú vị, đi đâu khi bạn muốn gặp gỡ mọi người và chia sẻ mẹo cũng như những nơi hữu ích để bạn có thể đặt câu hỏi.

Theo dõi ai trên Twitter?

Hãy bắt đầu với cách dễ nhất trước tiên, đó là sử dụng Twitter.

Twitter là một cách thực sự tuyệt vời để theo dõi những thứ bạn quan tâm và trong trường hợp phát triển iOS, tôi thực sự muốn giới thiệu một số người.

Những người này tweet về công việc của họ, nhưng lý do tôi nghĩ họ rất tuyệt khi theo dõi là vì họ cũng tweet rất nhiều về công việc của người khác – họ sẽ giúp bạn thấy nhiều góc nhìn về một chủ đề cụ thể và họ chia sẻ tất cả các loại ý tưởng thú vị và những điều để thử.

Có 10 người mà tôi khuyên bạn nên theo dõi trên Twitter:

  • Sean Allen dành nhiều thời gian để tạo video trên YouTube về phát triển Swift và iOS, nhưng anh ấy cũng rất chăm chỉ truyền bá tin tức về những thứ mà những người khác đã tạo ra – anh ấy thực sự làm rất tốt việc giúp mọi người khám phá điều gì đó mới mỗi tuần.
  • Antoine van der Lee điều hành một trang web dành riêng cho phát triển iOS tại https://www.avanderlee.com, nhưng anh ấy cũng chia sẻ một số liên kết tuyệt vời đến các tài nguyên hữu ích mà anh ấy tìm thấy trên GitHub, bản tin, v.v.
  • Novall Khan làm việc tại Apple, nhưng điều đó không ngăn cản cô ấy tạo video thường xuyên về những gì cô ấy đang làm, những gì cô ấy đang học, những gì cô ấy gặp khó khăn và hơn thế nữa – cô ấy thực sự truyền cảm hứng.
  • Steve Troughton-Smith nổi tiếng với công việc trước đây của anh ấy đã thử nghiệm trên iOS, nhưng thực sự bạn nên theo dõi anh ấy để biết về một loạt các dự án tuyệt vời mà anh ấy chia sẻ. Cá nhân tôi thích cách anh ấy chia sẻ tiến trình phát triển trên các ứng dụng của riêng mình, vì vậy bạn có thể thấy chúng phát triển từ đầu đến cuối.
  • Kaya Thomas là một trong những nhà phát triển indie (độc lập) nổi tiếng nhất trong cộng đồng của chúng ta và đã được Apple giới thiệu nhiều lần hơn tôi có thể nhớ được. Cô ấy tweet rất nhiều về công việc và bài thuyết trình của mình, nhưng cũng chia sẻ các liên kết đến những cuốn sách mà cô ấy đang học, các bài báo cô ấy đã đọc và hơn thế nữa.
  • Majid Jabrayilov viết một blog tuyệt vời về Swift và SwiftUI, nhưng anh ấy cũng là người quảng bá không mệt mỏi cho những người khác.
  • Donny Wals viết blog Swift, cũng như gần đây viết sách Combine & Core Data, nhưng trên Twitter, anh ấy cũng khuyến khích mọi người chia sẻ những gì họ đang làm. Thậm chí chỉ cần đọc chủ đề đó mỗi tuần sẽ giúp bạn có nhiều thứ để thử, vì vậy bạn chắc chắn nên theo dõi Donny.
  • Sommer Panage làm việc tại Apple trong nhóm hỗ trợ tiếp cận, vì vậy mặc dù cô ấy hơi bị hạn chế bởi những gì cô ấy có thể nói, cô ấy tweet ra rất nhiều mẹo hạng nhất từ ​​bản thân và những người khác mà mọi người có thể sử dụng để xây dựng các ứng dụng tốt hơn.
  • Natascha Fadeeva viết blog về sự phát triển của Swift và iOS, bao gồm các bài viết về Dữ liệu cốt lõi, câu hỏi phỏng vấn, v.v., nhưng cô ấy cũng tweet về những điều mà cô ấy đã khám phá được ở những nơi khác.
  • cuối cùng là tôi. Tôi tweet rất nhiều về tất cả những thứ tôi đang làm với Swift, SwiftUI và hơn thế nữa, nhưng cũng cố gắng chia sẻ các bài báo, video và ứng dụng tuyệt vời mà những người khác đã làm – tôi nghĩ đó là một trong những điều quan trọng nhất tôi làm cộng đồng.

Bản tin

Tất nhiên, Twitter không phải là nơi duy nhất mà bạn có thể cập nhật cộng đồng – có các bản tin, nhóm Slack, buổi họp mặt Zoom, diễn đàn, hội nghị,…

Tôi không muốn làm phiền bạn quá nhiều, vì vậy tôi sẽ liệt kê một trong số những điều đó ở đây:

  • Đối với bản tin, bạn không thể làm sai với iOS Dev Weekly. Khi tôi viết điều này, nó chỉ vượt qua 500 số báo, một số mỗi tuần, vì vậy tôi nghĩ rằng điều đó cho bạn biết tất cả những gì bạn cần biết về tầm quan trọng của nó.
  • Nếu bạn muốn đăng trên một diễn đàn web, tôi tự tổ chức một diễn đàn tại https://www.hackingwithswift.com/forums – có rất nhiều danh mục để lựa chọn và mọi người đều có thể tham gia bất kể mức độ kinh nghiệm của bạn là gì. Hãy tin tôi, bạn được hoan nghênh đăng các câu hỏi dành cho người mới bắt đầu của bạn ở đây!
  • Mỗi tháng Happy Hour dành cho iOS Developer diễn ra trên một cuộc gọi Zoom nhóm với hơn 300 người, nhưng điều thú vị thực sự ở đây là các phòng đột phá, nơi bạn có thể trò chuyện với các nhóm từ 6 đến 8 người cùng một lúc. Thật là vui và bạn sẽ kết bạn được.
  • Việc tham dự các hội nghị trở nên khó khăn do Covid, nhưng WWDC của Apple đã gây được tiếng vang lớn vào năm ngoái và cũng có nhiều sự kiện cộng đồng diễn ra cùng với đó. Một nhóm bạn và tôi đã điều hành một kho lưu trữ GitHub để giúp liệt kê tất cả các sự kiện, bài báo khác và hơn thế nữa đã xảy ra – hãy kiểm tra!
  • Và cuối cùng, nếu bạn muốn trò chuyện trên Slack nơi bạn có thể nhận được câu trả lời nhanh hơn, bạn có thể tham gia nhóm Hacking miễn phí với Swift Slack và tham gia một trong các kênh dành cho Swift, SwiftUI, giáo trình 100 Ngày của tôi, v.v.

Mất bao lâu?

Đây là một câu hỏi mà tôi nhận được rất nhiều câu hỏi: mất bao lâu để từ khi không biết gì về Swift để có thể có được vị trí nhà phát triển iOS cấp độ đầu vào.

Rõ ràng câu trả lời là “còn tùy”, nhưng đó sẽ là một cảnh sát ở đây, vì vậy hãy để tôi giải quyết nó theo một vài cách khác nhau.

Quy tắc vàng: đừng vội vàng

Đầu tiên, điều bạn không thể làm là vội vàng học nhiều khóa học cùng một lúc. Còn nhớ những gì tôi đã nói về hội chứng vật thể sáng bóng?

Vâng, điều đó – nhiều người thực sự nghĩ rằng họ có thể tăng gấp đôi với hai khóa học cùng lúc, sau đó gấp rút học qua bốn, năm, hoặc thậm chí nhiều giờ hơn mỗi ngày và vẫn có được sự hiểu biết chất lượng cao về các chủ đề mà họ đã đề cập.

Nói rõ hơn, tôi đã thấy mọi người thử điều đó rất nhiều lần và lần nào nó cũng thất bại.

Mỗi lần – nó không bao giờ hoạt động, và tôi thấy mọi người nói rằng đó là do hướng dẫn không tốt, hoặc vì Swift quá khó, hoặc vì bất kỳ lý do nào khác ngoài việc họ cố gắng chạy nhanh qua một thứ gì đó phức tạp.

Theo nghĩa đen, hôm nay tôi nhận được một email có nội dung “Xin chào Paul! Nếu tôi dành bốn hoặc năm giờ mỗi ngày để học Swift, tôi có thể hoàn thành nhanh đến mức nào? ”

Và đó không chỉ là cách học tập – không phải học Swift, không học chơi piano, không học trượt băng hay bất cứ điều gì.

Học Swift thực sự rất khó và học xây dựng ứng dụng cần rất nhiều lần thử và sai, rất nhiều lần mắc lỗi và rất nhiều lần sai.

Và điều đó không sao cả – tốt hơn cả không sao, mà là tuyệt!

Bởi vì mỗi lần bạn thử điều gì đó, mỗi lần bạn mắc lỗi và mỗi lần bạn đi sai, bạn sẽ học được điều gì đó trên đường đi và khi cuối cùng bạn đi đến giải pháp, bạn sẽ hiểu sâu hơn về nó.

Vì vậy, đừng cố gắng và vội vàng – hãy dành thời gian của bạn, đừng ngại khám phá những tiếp tuyến đi kèm, đừng ngại thử nghiệm với các dự án của bạn và đừng ngại đi quay lại điều gì đó bạn đã học trước đây và học lại nếu cần.

Nền tảng của bạn là gì?

Thứ hai, bạn nên cân nhắc xem bạn đã có nền tảng gì trước khi đến với Swift.

Bạn thấy đấy, học cách xây dựng ứng dụng đòi hỏi nhiều kỹ năng khác nhau và nếu bạn đang nắm bắt được nhiều kiến ​​thức hiện có như kiểm soát phiên bản, cấu trúc dữ liệu, thuật toán,… thì bạn có một khởi đầu thực sự so với những người mới làm quen với khoa học máy tính nói chung cùng với việc mới biết tới Swift và các framework khác của Apple.

Vì vậy, chúng ta có thể nghĩ về một vài nơi khác nhau mà bạn có thể đang ở ngay bây giờ:

  • Nếu bạn có bằng khoa học máy tính (Computer Science – CS), bạn đã nắm bắt nhiều nguyên tắc cơ bản về CS cần thiết để bắt đầu sử dụng Swift. Những thứ như biến, mảng, vòng lặp, tập hợp, hàm, OOP… đều sẽ hữu ích trong Swift, cũng như tất cả công việc của bạn với cấu trúc dữ liệu và thuật toán. Điều này có thể giảm được 4-6 tháng lộ trình học tập của bạn tùy vào môn bạn đã học, và cũng mang lại lợi thế cho bạn khi ứng tuyển tại nhiều công ty.
  • Nếu bạn không có bằng CS nhưng đã tham gia khóa đào tạo về mã hóa, một lần nữa, bạn sẽ có nhiều nguyên tắc cơ bản cần thiết để bắt đầu sử dụng Swift. Điều này sẽ không mang lại cho bạn lợi thế tương tự khi nộp đơn xin việc tại các công ty đó, bởi vì thường họ mong đợi một tấm bằng theo đúng nghĩa đen để họ có thể kiểm tra danh sách các yêu cầu tùy ý của họ, nhưng nó vẫn có thể khiến bạn mất ba hoặc bốn tháng lộ trình học tập.
  • Nếu bạn không có bằng CS và không tham gia bootcamp, nhưng bạn vẫn code trong thời gian rỗi, một lần nữa điều đó sẽ giúp bạn tiết kiệm được 1 khoảng thời gian trên lộ trình học tập – có thể là hai tháng hoặc lâu hơn, tùy thuộc vào ngôn ngữ hoặc framework nào bạn sử dụng.

Và điều gì sẽ xảy ra nếu bạn không có bằng CS, không có bootcamp và không có kinh nghiệm code trước đó?

Tôi muốn nói rằng bạn sẽ cần 9 đến 12 tháng để từ không có gì trở thành một công việc mới bắt đầu.

Vâng, đó có thể là cả năm làm việc cùng với bất kể công việc toàn thời gian hiện tại của bạn và đó chỉ là để bạn có được công việc đầu tiên với tư cách là iOS developer.

Có phải nó luôn luôn là một năm?

Không. Như tôi đã nói, bạn có thể giảm được từ 1 đến 6 tháng nếu bạn đã có kinh nghiệm trước đó.

Nếu bạn tính toán những con số tốt nhất cho cả hai bên – 9 tháng từ con số không cho đến một công việc đầu việc, cộng với giảm bớt 6 tháng để có bằng CS – và điều đó có nghĩa là bạn có thể được tuyển dụng chỉ trong 3 tháng, điều này thật đáng kinh ngạc.

Bây giờ, bạn có thể nghĩ rằng việc kiếm được công việc đầu tiên sau ba tháng là không thể, nhưng thực tế không phải vậy.

Tôi đã gặp một người đang theo khóa học của tôi, người đã kiếm được việc làm trước khi họ bước sang ngày thứ 50 – họ đã học đủ về phát triển ứng dụng trong vòng chưa đầy hai tháng, bởi vì họ đã nỗ lực để mỗi ngày đều có giá trị.

Vì vậy, bạn không cần bằng CS và bạn không cần bootcamp, mà bạn cần chuẩn bị để làm việc chăm chỉ.

Đừng quá nghiêm khắc với bản thân

Điều thứ ba tôi muốn giải quyết trước khi chúng ta tiếp tục là nói rằng “nhanh hay chậm thì đều được cả.”

John Lennon có một ca từ tuyệt vời mà tôi yêu thích, đó là “cuộc sống là những gì xảy ra khi bạn bận rộn với những kế hoạch khác”.

Thật là tuyệt vời nếu bạn có những kế hoạch lớn cho việc học và khát vọng lớn cho công việc mà bạn muốn có, nhưng đôi khi bạn mệt mỏi, đôi khi bạn căng thẳng, đôi khi mái nhà của bạn bắt đầu bị dột hoặc con chó của bạn cần phải đến bác sĩ thú y hoặc con bạn cần thêm trợ giúp để làm bài tập về nhà, hoặc bất cứ điều gì, và đó chỉ là cuộc sống.

Vì vậy, xin đừng gục ngã nếu bạn bị tụt lại với lịch trình học tập của mình, hoặc nếu bạn thấy mình thiếu một vài ngày hoặc thậm chí một vài tuần, v.v. – miễn là bạn kiên cường, bạn sẽ đạt được điều đó.

Nếu bạn làm việc cực kỳ chăm chỉ và có được công việc sau 50 ngày, điều đó thật tuyệt vời – bạn hoàn thành tốt!

Nếu bạn mất 500 ngày, điều đó cũng thật tuyệt vời và bạn cũng nên tự hào như vậy.

Rất tiếc, nếu bạn mất 5 năm, tôi biết có thể đó không phải là điều bạn muốn, nhưng kết quả cuối cùng vẫn như cũ và đó mới là điều quan trọng.

Chuẩn bị nộp đơn

Cuối cùng nhưng không kém phần quan trọng, nếu bạn tiến xa hơn một chút đến lộ trình học tập iOS của mình và bắt đầu nghĩ đến việc kiếm được công việc đầu tiên đó, tôi muốn hướng dẫn bạn đến một bộ sưu tập khổng lồ các tài nguyên mà tôi đã tập hợp để giúp bạn.

Trên trang web của tôi, bạn có thể nhấp vào Tuyển dụng > Bắt đầu tại đây hoặc chỉ cần truy cập trực tiếp vào https://www.hackingwithswift.com/career-guide.

Ở đó, bạn sẽ tìm thấy một bộ sưu tập tài nguyên hoành tráng sẽ giúp bạn bất kể bạn ở đâu, tất cả đều miễn phí:

  • Đánh giá kỹ năng tương tác để kiểm tra kiến ​​thức của bạn về các chủ đề cốt lõi.
  • Các bài kiểm tra mã hóa được sử dụng trên khắp thế giới trong các cuộc phỏng vấn việc làm thực tế.
  • Hơn 200 câu hỏi phỏng vấn thường được sử dụng, cùng với các gợi ý về cách bạn có thể trả lời chúng.
  • Các bài viết về cách tìm việc làm, cách làm tốt nhất của bạn trong các cuộc phỏng vấn và hơn thế nữa.
  • Chỉ cần truy cập URL và bạn sẽ tìm thấy các liên kết đến tất cả những thứ đó và hơn thế nữa ở một nơi.

Tôi cũng muốn hướng bạn đến loạt video về mẹo phỏng vấn Swift của Sean Allen – anh ấy có toàn bộ danh sách phát để bạn có thể làm việc thông qua các cuộc thảo luận riêng lẻ, chẳng hạn như lớp học so với cấu trúc, lập trình chức năng, xử lý lỗi,…

Không có video nào là quá dài, nhưng mỗi video đều nhằm cung cấp cho bạn những kỹ năng cần thiết để thực hiện tốt một kịch bản phỏng vấn.

Bây giờ đang ở đâu?

Được rồi, vậy là tôi đã điểm qua các kỹ năng cốt lõi và mở rộng mà bạn cần, những sai lầm phổ biến mà mọi người thường mắc phải khi học, những khóa học nào bạn có thể theo, cách kết nối với cộng đồng iOS và cách chuẩn bị cho cuộc phỏng vấn xin việc của bạn – đó là một số lượng lớn để vượt qua và tôi hy vọng nó hữu ích.

Hơn nữa, tôi hy vọng tôi đã cho bạn thấy có bao nhiêu là hoàn toàn miễn phí.

Vâng, tôi biết sự cám dỗ rất mạnh mẽ khi vung ra một trăm đô trở lên cho một khóa học, nhưng hãy thư giãn – trước tiên hãy di chuyển, tìm động lực và cũng có thể tìm một người dạy Swift theo cách phù hợp với bạn.

Và sau đó, khi bạn đang ở một nơi tốt và cảm thấy sẵn sàng: hãy tiếp tục và chi tiêu một số tiền nếu bạn muốn.

Chúc bạn may mắn với hành trình của mình!

Nguồn: Hackingwithswift

Categories
Dev's Corner

Unity Developer là gì? Tại sao Unity Development là công việc đáng theo đuổi?

Trong khi lập trình truyền thống phục vụ nhiều mục đích khác nhau, thì khi nói tới làm game, có nhiều lựa chọn thiết thực hơn.

Game engine (phần mềm game) là môi trường phát triển được thiết kế để đơn giản hóa quá trình làm game. Đây cũng là cách thiết thực nhất để làm game.

Sử dụng Unity, một game engine phổ biến nhất thế giới sẽ là một quyết định thiết thực khác cho doanh nghiệp của bạn.

Unity là gì?

Unity là một phần mềm game đa nền tảng, nơi các nhà phát triển (developer) có thể thực hiện các dự án 3D thời gian thực thuộc hầu hết mọi loại. Một số trường hợp sử dụng phổ biến cho các dự án Unity bao gồm:

  • Trò chơi
  • Phim ảnh
  • Hoạt hình
  • Ô tô
  • Vận chuyển
  • Kiến ​​​​trúc
  • Sản xuất & Xây dựng
Unity là một game engine. Ảnh: Medium
Unity là một game engine. Ảnh: Medium

Bạn có thể so sánh các phần mềm game như Unity với các IDE (môi trường phát triển tích hợp) cho các ngôn ngữ lập trình. Trên thực tế, chúng đồng dạng với nhau.

Khác biệt ở đây là game engine không dựa trên coding theo cách mà bạn nghĩ từ bất kỳ nhà phát triển phần mềm nào. Unity tự xử lý phần đó, còn Unity Developer tập trung vào chính trò chơi.

Mặc dù không cần phải code toàn bộ chương trình, nhưng bạn có thể sửa đổi code của Unity thông qua MonoCode, trình soạn thảo văn bản Unity hoặc Visual Studio. Để làm được điều này, bạn cần có hiểu biết cơ bản về C #.

Unity sử dụng C#, một ngôn ngữ do Microsoft phát triển. C# là ngôn ngữ hướng đối tượng, có mục đích chung và được trang bị nhiều tính năng khác nhau từ strong typing cho tới lexical scoping.

Nó cũng là đa mô hình, nghĩa là các nhà phát triển có thể sử dụng nhiều mô hình lập trình trong ngôn ngữ. Phạm vi và tính linh hoạt của ngôn ngữ C # khiến nó trở thành lựa chọn phổ biến cho các nhà phát triển trò chơi.

Unity Developer là gì?

Dừng lại chút nào, nếu bạn đang #open_to_work, thử nghía qua các công việc đang tuyển trên Gamba nhé. Vào LINK NÀY để xem các job dành cho Unity hoặc scan QR Code ở bên dưới nhé.

Ứng tuyển ngay các job Unity hiện có trên Gamba
Scan QR code để Ứng tuyển ngay các job Unity hiện có trên Gamba

Unity Developer là nhà phát triển phần mềm đã quen thuộc với Unity. Thông thường, các Unity Developer sẽ là nhà phát triển trò chơi (game developer) vì phát triển game là mục đích sử dụng chính của nền tảng.

Unity Developer không nhất thiết phải là nhà phát triển C# nhưng kinh nghiệm lập trình trước đó bằng ngôn ngữ này chắc chắn sẽ hữu ích.

Các nhà phát triển sử dụng Unity có thể có một vai trò không thể thiếu trong phần còn lại của quá trình phát triển game. Một vai trò như vậy có thể không chỉ bao gồm thiết kế trò chơi mà còn tạo ra cốt truyện và phát triển nhân vật.

Tại sao sử dụng Unity?

Có một số lý do tại sao việc sử dụng Unity sẽ là một lựa chọn mang tính xây dựng cho việc phát triển game của doanh nghiệp. Dưới đây, bạn sẽ thấy một số lý do thuyết phục nhất.

Unity meme

Tự do

Lý do đầu tiên là nó miễn phí. Đối với các doanh nghiệp chỉ mới bắt đầu tham gia vào thế giới phát triển game, Unity là lựa chọn hoàn hảo cho người mới bắt đầu vì bạn sẽ không tốn một xu nào – ít nhất là lúc đầu.

Nếu bạn tạo một trò chơi trong Unity và cuối cùng kiếm được hơn $100K, thì khi Unity phát triển cùng bạn và nó bắt đầu yêu cầu một thứ gì đó để đổi lại cũng là điều hợp lý. Cụ thể, Unity yêu cầu trả 150 đô la một tháng cho Unity Pro.

Xuyên nền tảng

Bạn sẽ trải nghiệm từ ít cho tới không giới hạn khi muốn phát hành game của mình từ nền tảng này sang nền tảng khác. Android, iOS, Mac, PC, Steam, Playstation, Xbox và bất kỳ nền tảng nào khác mà bạn có thể nghĩ đến đều được Unity hỗ trợ một cách vui vẻ.

So với toàn bộ cuộc tranh luận về ứng dụng gốc so với đa nền tảng đang diễn ra trong lĩnh vực phát triển ứng dụng dành cho thiết bị di động, tính linh hoạt này chắc chắn là một lợi ích.

Đương nhiên, bạn sẽ phải tính đến các tính năng độc đáo của từng nền tảng nhưng tính di động nói chung thì trơn tru hơn so với các nền tảng khác.

Cộng đồng

Unity có hàng triệu nhà phát triển chuyên tâm cho phần mềm của mình. Do đó, nếu bạn quyết định tự mình sử dụng Unity, bạn sẽ truy cập được vào một cộng đồng hỗ trợ cực kỳ lớn.

Có rất nhiều diễn đàn Unity để bạn tìm được những con người cùng chí hướng và thậm chí cộng tác với các chuyên gia. Unity cũng tổ chức một hội nghị hàng năm được gọi là Unite.

Ưu điểm khi sử dụng Unity

Cho dù bạn không hoàn toàn bị thuyết phục rằng việc sử dụng Unity phù hợp với bạn ngay từ đầu, thì sẽ không có hại gì khi nghe về một số lợi thế nội của việc sử dụng nền tảng này.

Tài sản

Một trong những lợi thế chính của việc sử dụng Unity là bạn không phải tạo bất cứ thứ gì con số 0. Bạn có thể duy trì một số tính nguyên bản trong khi vẫn sử dụng Unity Asset Store để thu thập một số vật phẩm lựa chọn, một nhân vật hoặc một tòa nhà chẳng hạn.

Ngoài ra, bạn có thể kiếm tiền bằng cách xây dựng tài sản của riêng mình và bán chúng trên cửa hàng. Bạn sẽ nhận được tới 70% tiền bán sản phẩm.

Ngôn ngữ kịch bản

Bạn đã nghe những chia sẻ công bằng về C # thực sự là gì. Nhưng hãy tưởng tượng một ngôn ngữ có khả năng thích ứng đó có thể cải thiện tốt hơn việc lập trình của các nhà phát triển tốt hơn đến mức nào. Dù mô hình lập trình ưa thích của bạn là gì, C# là một lựa chọn vững chắc.

Nhiều người chơi

Xây dựng video game nhiều người chơi không phải là nhiệm vụ dễ dàng. Mọi người đều muốn chơi với bạn bè của họ và chia sẻ niềm vui cùng nhau, nhưng về mặt lập trình, điều đó là vô cùng khó khăn.

Unity cung cấp một bộ công cụ để giúp bạn vượt qua nó. Nếu không có Unity, sẽ có rất ít game nhiều người chơi để mà thưởng thức ngày nay.

Học tập

Bắt đầu với Unity khá dễ dàng. Bạn có thể thấy kết quả những gì bạn làm gần như ngay lập tức và không giống như lập trình truyền thống, bạn không cần trình biên dịch bất để xem được nó.

Ngoài ra, có rất nhiều lớp học và hướng dẫn miễn phí trực tuyến với các hướng dẫn siêu cụ thể về cách hoàn thành công việc. Youtube là bạn của bạn. Ít nhất, nó có thể là một người bạn tốt đối với mỗi developer..

Các games được làm bằng Unity

  • Cuphead
  • Ori and the Blind Forest
  • Hearthstone
  • Temple Run
  • Tàu điện ngầm Surfers
  • Slender: Tám trang
  • Angry Birds 2

Lý do cần thuê một nhà phát triển Unity

Dễ sử dụng chắc chắn là một lợi thế để xây dựng trong Unity nhưng không có nghĩa là bạn nên tự mình xây dựng toàn bộ trò chơi.

Quá trình phát triển trò chơi thường mất nhiều thời gian hơn so với phát triển web hoặc di động. Các trò chơi phong phú nhất cần ít nhất ba năm để phát triển.

Bạn có thể chọn làm game 2D đơn giản để tiết kiệm thời gian. Unity thậm chí có khả năng đáp ứng một dự án như vậy. Nhưng thời gian của bạn sẽ không được sử dụng một cách khôn ngoan. Các nhà phát triển chuyên nghiệp theo định nghĩa là đủ tiêu chuẩn và hiệu quả.

Hãy nhớ rằng, Unity cũng có nhiều cách sử dụng khác. Và việc thuê các nhà phát triển cho những mục đích sử dụng đó cũng quan trọng không kém.

Nên tìm kiếm điều gì ở một Unity Developer?

Các Unity Developer ở trình độ cao phải có các kỹ năng và khả năng sau:

  • Lên ý tưởng và triển khai gameplay trong môi trường phát triển
  • Sử dụng thành thạo Unity Asset Store và thực hiện các sửa đổi để có sự độc đáo
  • Thể hiện hiểu biết cơ bản về C# và các kỹ năng sử dụng nó
  • Có thể cung cấp portfolio trong Unity thể hiện kiến ​​thức chuyên môn và kinh nghiệm trước đây của họ khi sử dụng phần mềm game.

Mức lương của Unity Developer

Mức lương trung bình hàng năm cho một Unity Developer ở Mỹ là 98.214 đô, theo dữ liệu của ZipRecruiter. Nhìn chung, mức lương năm cho các Unity Developer sẽ nằm trong khoảng $11,000 đến $132,000.

Mức lương của Unity Developer
Mức lương của Unity Developer

Nguồn: Trio

Categories
Dev's Corner

Data Engineer là gì? Mọi thứ bạn cần biết về kỹ sư dữ liệu

Chúng ta rất dễ bỏ qua lượng dữ liệu được tạo ra hàng ngày – từ điện thoại thông minh, cuộc gọi Zoom cho đến máy rửa bát có kết nối Wi-Fi.

Người ta ước tính rằng thế giới sẽ tạo và lưu trữ 200 Zettabyte dữ liệu vào năm 2025. Mặc dù việc lưu trữ lượng dữ liệu này là một thách thức, nhưng việc rút lấy giá trị từ đó còn phức tạp hơn.

Từ năm 2020 đến năm 2022, tổng khối lượng dữ liệu doanh nghiệp sẽ tăng từ 1 lên 2,02 petabyte (PB). Tăng trung bình hàng năm 42,2% trong hai năm.

Có thể bạn đã quen với thuật ngữ “Dữ liệu lớn” (big data) – và quy mô của thị trường này đang tiếp tục tăng lên.

Thị trường phân tích big data dự kiến ​​đạt 103 tỷ đô vào năm 2023, với chất lượng dữ liệu kém khiến nền kinh tế Mỹ thiệt hại lên tới 3,1 nghìn tỷ đô la mỗi năm.

Các công ty trong danh sách Fortune 1000 có thể kiếm thêm thu nhập ròng hơn 65 triệu đô, chỉ bằng cách tăng khả năng truy cập dữ liệu của họ lên 10%.

Điều này nghĩa là điều quan trọng trong kinh doanh là các công ty có thể thu được giá trị từ dữ liệu của họ nhằm cung cấp thông tin tốt hơn cho các quyết định kinh doanh, bảo vệ doanh nghiệp và khách hàng cũng như phát triển doanh nghiệp.

Để làm được điều này, doanh nghiệp phải tuyển những người có bộ kỹ năng cụ thể phù hợp với chiến lược và quản trị dữ liệu, chẳng hạn như data engineer, data scientistML engineer.

Bài viết này sẽ trình bày tất cả những điều cơ bản về data engineer bao gồm các vai trò, chức năng và trách nhiệm chung.

Bạn cũng sẽ hiểu rõ hơn về tầm quan trọng của data engineer và tìm hiểu cách bắt đầu thu được nhiều giá trị hơn từ dữ liệu của mình.


Dừng lại chút nào, nếu bạn đang #open_to_work, thử nghía qua các công việc đang tuyển trên Gamba nhé. Vào LINK NÀY để xem các job Data hoặc scan QR Code ở bên dưới nhé.

Xem và ứng tuyển các 'data' job
Xem và ứng tuyển các ‘data’ job

Data Engineering là gì?

Khi nói đến việc tăng thêm giá trị cho dữ liệu, có nhiều điều bạn phải tính đến – cả bên trong và bên ngoài công ty.

Công ty của bạn có thể tạo dữ liệu từ các hệ thống hoặc sản phẩm nội bộ, tích hợp với các ứng dụng và nhà cung cấp bên thứ ba, đồng thời phải cung cấp dữ liệu ở định dạng cụ thể cho những người dùng (nội bộ và bên ngoài) và các trường hợp sử dụng khác nhau.

Dữ liệu được tạo và thu thập từ doanh nghiệp của bạn có thể có các yêu cầu tuân thủ như SOC2 hoặc Thông tin nhận dạng cá nhân (PII) mà bạn bắt buộc phải bảo vệ về mặt pháp lý.

Trong trường hợp này, bảo mật trở thành ưu tiên hàng đầu đối với dữ liệu, điều này dẫn đến những thách thức kỹ thuật đối với dữ liệu đang chuyển và ở trạng thái nghỉ. 

Dữ liệu của bạn không chỉ phải an toàn mà còn phải có sẵn cho người dùng cuối, tuân thủ các yêu cầu kinh doanh và có tính toàn vẹn (tính chính xác và nhất quán).

Nếu dữ liệu được bảo mật nhưng không sử dụng được, nó không thể tăng thêm giá trị cho công ty. Có nhiều khía cạnh đối với một chiến lược quản trị dữ liệu đòi hỏi các kỹ năng chuyên biệt.

Đây là lúc data engineer (kỹ sư dữ liệu) phát huy tác dụng.

Vai trò của Data Engineer

Một kỹ sư dữ liệu giống như một con dao đa năng Thụy Sĩ trong không gian dữ liệu. Data Engineer có nhiều vai trò và trách nhiệm, thường phản ánh một hoặc nhiều phần quan trọng của data engineering, đã đề cập bên trên.

Vai trò của một kỹ sư dữ liệu sẽ thay đổi tùy thuộc vào nhu cầu cụ thể của tổ chức của bạn.

Vai trò của một kỹ sư dữ liệu là lưu trữ, trích xuất, chuyển đổi, tải, tổng hợp và xác thực dữ liệu. Điều này bao gồm:

  • Xây dựng quy trình dữ liệu (data pipeline và lưu trữ dữ liệu hiệu quả cho các công cụ cần truy vấn dữ liệu.
  • Phân tích dữ liệu, đảm bảo dữ liệu tuân thủ các quy tắc và quy định quản trị dữ liệu.
  • Hiểu ưu và nhược điểm của các phương án lưu trữ và truy vấn dữ liệu.

Ví dụ: một doanh nghiệp có thể đang sử dụng Amazon Web Services (AWS) làm nhà cung cấp dịch vụ đám mây và bạn muốn lưu trữ và truy vấn dữ liệu từ các hệ thống khác nhau.

Phương án tốt nhất sẽ khác nhau tùy thuộc vào việc dữ liệu của bạn có cấu trúc hay không có cấu trúc (hoặc thậm chí bán cấu trúc), chuẩn hóa hay không chuẩn hóa và liệu bạn cần dữ liệu ở định dạng dữ liệu hàng hay cột.

Dữ liệu của bạn có quan trọng / dựa trên giá trị không? Có các mối quan hệ phức tạp giữa các dữ liệu không? Dữ liệu có cần được xử lý hoặc kết hợp với các tập dữ liệu khác không?

Tất cả những quyết định này ảnh hưởng đến cách một data engineer nhập, xử lý, quản lý và lưu trữ dữ liệu.

Data Team gồm những ai? Ảnh: phData
Data Team gồm những ai? Ảnh: phData

Cách data engineer gia tăng giá trị

Thay vì mô tả trừu tượng, đây là kịch bản: CEO muốn biết doanh nghiệp của bạn có thể tiết kiệm được bao nhiêu tiền bằng cách mua hàng loạt nguyên vật liệu và phân phối chúng đến các địa điểm khác nhau.

Bạn cần có khả năng xác định cách tính phí lại bất kỳ vật liệu không sử dụng nào cho các đơn vị kinh doanh khác nhau.

Điều này có thể cần bạn tổng hợp dữ liệu từ hệ thống ERP, hệ thống chuỗi cung ứng, các nhà cung cấp bên thứ ba và dữ liệu xung quanh cấu trúc doanh nghiệp nội bộ.

Trước đây, một số công ty có thể đã cố gắng tạo báo cáo này trong Excel, nhờ nhiều nhà phân tích kinh doanh và kỹ sư đóng góp vào việc khai thác và thao tác dữ liệu.

Kỹ sư dữ liệu cho phép một tổ chức thu thập dữ liệu một cách hiệu suất và hiệu quả từ nhiều nguồn khác nhau, nói chung là lưu dữ liệu đó vào một hồ dữ liệu (data lake) hoặc thành một số chủ đề Kafka.

Khi dữ liệu đã được thu thập từ mỗi hệ thống, data engineer có thể xác định cách kết hợp tối ưu các bộ dữ liệu.

Với điều đó, các kỹ sư dữ liệu có thể xây dựng các quy trình dữ liệu cho phép dữ liệu chảy ra khỏi hệ thống nguồn.

Kết quả của quy trình dữ liệu này sau đó được lưu ở một vị trí riêng biệt – thường ở định dạng mà các công cụ thông minh kinh doanh khác nhau có thể truy vấn.

Các kỹ sư dữ liệu cũng chịu trách nhiệm đảm bảo rằng các quy trình dữ liệu này có đầu vào và đầu ra chính xác. Điều này thường liên quan đến việc đối chiếu dữ liệu hoặc các quy trình dữ liệu bổ sung để xác nhận đối với các hệ thống nguồn.

Các kỹ sư dữ liệu cũng phải đảm bảo rằng các quy trình dữ liệu lưu chuyển liên tục và thông tin luôn được cập nhật, sử dụng các công cụ giám sát và thực hành SRE (Site Reliability Engineering – kỹ thuật quản lý độ tin cậy) khác nhau.

Nói một cách dễ hiểu, data engineer gia tăng giá trị khi họ tự động hóa và tối ưu hóa các hệ thống phức tạp, biến dữ liệu thành một tài sản kinh doanh có thể truy cập và sử dụng được.

ELT và ETL

Quy trình dữ liệu có nhiều loại khác nhau và vai trò của data engineer là biết nên sử dụng chiến lược nào và tại sao.

Hai chiến lược phổ biến nhất xoay quanh các khái niệm trích xuất, tải và chuyển đổi (ELT) dữ liệu. Trước tiên, dữ liệu luôn phải được trích xuất theo cách nào đó từ một nguồn dữ liệu, nhưng những gì sẽ xảy ra tiếp theo không đơn giản như vậy.

ELT thường thấy trong các kiến ​​trúc hồ dữ liệu hoặc hệ thống cần dữ liệu trích xuất thô từ nhiều nguồn. Điều này cho phép các quy trình và hệ thống khác nhau xử lý dữ liệu từ cùng trích xuất.

Nếu bạn kết hợp dữ liệu từ nhiều hệ thống và nguồn khác nhau, sẽ có lợi khi đồng định vị dữ liệu đó và lưu trữ ở một nơi trước khi thực hiện chuyển đổi sang dữ liệu.

MẸO CHUYÊN NGHIỆP: Nói chung, luồng công việc loại ELT chính là một quy trình ELT-L, nơi dữ liệu đã chuyển đổi sau đó được tải vào một vị trí khác để tiêu thụ như Snowflake, AWS Redshift hoặc Hadoop.

Ngược lại, quy trình ETL (trích xuất, chuyển đổi, tải) đặt việc tính toán nặng khi chuyển đổi trước khi tải kết quả vào tệp hệ thống, cơ sở dữ liệu hoặc kho dữ liệu.

Kiểu cách này thường không hiệu quả so với quy trình ELT, vì dữ liệu cho mỗi lô hoặc luồng thường được yêu cầu từ các hệ thống phụ thuộc hoặc liên quan.

Điều này nghĩa là trên mỗi lần thực thi, bạn sẽ phải truy vấn lại dữ liệu từ các hệ thống cần thiết, thêm tải cho các hệ thống đó và thêm thời gian chờ dữ liệu có sẵn.

Tuy nhiên, trong trường hợp các chuyển đổi đơn giản được áp dụng cho một nguồn dữ liệu duy nhất, ETL có thể thích hợp hơn vì nó làm giảm độ phức tạp của hệ thống, nhưng có khả năng phải trả giá bằng khả năng trao quyền dữ liệu (data enablement)

Khuyến nghị chung là sử dụng các quy trình ELT khi có thể để tăng hiệu suất, tính khả dụng và khả năng trao quyền của dữ liệu.

Hiệu suất

Việc có dữ liệu chính xác và sẵn có cho data engineer không đơn giản. Dữ liệu cũng phải hiệu quả.

Khi xử lý gigabyte, terabyte hoặc thậm chí petabyte dữ liệu, các quy trình và kiểm tra phải được thực hiện để đảm bảo dữ liệu đáp ứng các thỏa thuận mức dịch vụ (SLA) và gia tăng giá trị cho doanh nghiệp nhanh nhất có thể.

Điều quan trọng nữa là xác định ý nghĩa của hiệu suất đối với dữ liệu của bạn.

Các data engineer cần tính đến tần suất họ nhận được dữ liệu mới, thời gian chạy quá trình chuyển đổi và mất bao lâu để cập nhật điểm đến đích của dữ liệu.

Các đơn vị kinh doanh thường muốn thông tin cập nhật càng sớm càng tốt, đồng thời có những điểm dừng và chuyển động trong hành trình của dữ liệu mà các data engineer phải tính đến.

Ví dụ:

Hãy tưởng tượng nếu công ty của bạn là một hãng hàng không và bạn muốn cung cấp giá cho khách hàng dựa trên đầu vào từ nhiều hệ thống khác nhau để đưa ra mức giá cho khách hàng.

Nếu giá của bạn quá cao, khách hàng sẽ đặt vé với các hãng hàng không khác. Nếu giá của bạn quá thấp, tỷ suất lợi nhuận của bạn sẽ bị ảnh hưởng.

Đột nhiên, kênh đào Suez bị tắc nghẽn và các tàu vận tải vận chuyển dầu không thể đi ra khỏi Ả-rập Xê-út, làm gián đoạn chuỗi cung ứng toàn cầu và khiến giá dầu và khí đốt tăng cao.

Máy bay thương mại sử dụng rất nhiều nhiên liệu, lên tới gần 20 tỷ gallon mỗi năm. Điều này sẽ ảnh hưởng đáng kể đến chi phí vận hành doanh nghiệp của bạn và phải được phản ánh nhanh nhất có thể trong việc định giá của bạn.

Để điều này xảy ra, các kỹ sư dữ liệu phải thiết kế và triển khai các quy trình dữ liệu hiệu quả và hoạt động tốt.

Tích hợp liên tục và phân phối liên tục

Code không bao giờ là một giải pháp kiểu “lên và quên”. Các yêu cầu về quản trị dữ liệu, công cụ, thực hành tốt nhất, quy trình bảo mật và các yêu cầu kinh doanh luôn nhanh chóng thay đổi và thích ứng; môi trường sản xuất của bạn cũng phải như vậy.

Điều này có nghĩa là việc triển khai cần phải được tự động hóa và có thể xác minh được.

Các kiểu triển khai phần mềm cũ hơn thường dẫn đến việc chạy bản dựng, sao chép và dán kết quả vào máy chủ sản xuất của bạn và thực hiện “smoke test” thủ công để xem ứng dụng có hoạt động như mong đợi hay không.

Việc này không thể mở rộng và gây rủi ro cho doanh nghiệp của bạn.

Nếu bạn đang thử nghiệm trực tiếp trên môi trường sản xuất, bất kỳ lỗi hoặc vấn đề nào mà bạn có thể đã bỏ qua trong quá trình kiểm thử (hoặc bất kỳ ảnh hưởng nào của môi trường cụ thể lên mã của bạn), sẽ dẫn đến trải nghiệm khách hàng kém vì những lỗi hoặc lỗi này sẽ xảy ra với người dùng cuối.

Thực tiễn tốt nhất để đẩy code lên là thiết lập các quy trình tự động để xác minh code hoạt động như mong đợi trong các tình huống khác nhau.

Điều này thường được thực hiện với các bài kiểm thử đơn vị và kiểm thử tích hợp.

Các kiểm thử đơn vị xác minh rằng các đoạn mã riêng lẻ sẽ tạo ra các đầu ra mong đợi một cách độc lập với mã khác sử dụng đoạn mã đó.

Những điều này là để xác minh logic phức tạp trong từng đoạn mã, cũng như cung cấp bằng chứng rằng mã thực thi đúng như mong đợi.

Một cấp độ khác từ đó là kiểm tra tích hợp. Việc này đảm bảo rằng các đoạn mã hoạt động cùng nhau và tạo ra (các) đầu ra mong đợi cho một tập hợp các đầu vào nhất định.

Đây thường là lớp kiểm tra quan trọng hơn, vì nó đảm bảo rằng các hệ thống tích hợp với nhau như mong đợi.

Bằng cách kết hợp các bài kiểm thử đơn vị và kiểm thử tích hợp với các chiến lược triển khai hiện đại như triển khai xanh lam-xanh lá (blue – green deployment), xác suất tác động đến khách hàng và doanh nghiệp của bạn bằng mã mới sẽ giảm đáng kể.

Mọi thứ đều được xác thực dựa trên các bài kiểm thử đã thiết lập trước khi các thay đổi được đưa vào môi trường.

Phục hồi sau thảm họa

Nhiều doanh nghiệp tập trung vào việc cung cấp càng nhiều giá trị cho khách hàng càng nhanh càng tốt, nhưng điều quan trọng là đảm bảo rằng bạn có kế hoạch trong trường hợp hệ thống gặp sự cố.

Trong khi nhiều công ty phụ thuộc rất nhiều vào các nhà cung cấp đám mây để giảm thiểu thời gian ngừng hoạt động và đảm bảo SLA, thất bại chắc chắn sẽ xảy ra.

Điều này có nghĩa là các hệ thống phải được thiết kế để chịu được lỗi hệ thống nghiêm trọng.

Khôi phục sau thảm họa trong data engineering thường rơi vào chỉ số:

  • Mục tiêu thời gian khôi phục (RTO)
  • Mục tiêu điểm phục hồi (RPO)

Trong trường hợp xảy ra tình huống khôi phục thảm họa, các doanh nghiệp cần phải có các tiêu chuẩn để hiểu tác động đến khách hàng của họ và hệ thống của họ sẽ không hoạt động trong bao lâu.

Các kỹ sư dữ liệu chịu trách nhiệm đưa các quy trình vào đúng vị trí để đảm bảo rằng các quy trình dữ liệu, cơ sở dữ liệu và kho dữ liệu đáp ứng các chỉ số này.

Ví dụ:

Hãy tưởng tượng nếu công ty của bạn là một hãng hàng không và bạn cần cung cấp cho khách hàng khả năng đặt vé máy bay, nhưng đột nhiên, trung tâm dữ liệu của bạn phát nổ.

Doanh nghiệp của bạn đã thiết lập quy trình đồng bộ hóa dữ liệu để sao chép dữ liệu sang một trung tâm dữ liệu khác, nhưng quy trình đó đã bị gián đoạn và xảy ra mất mát dữ liệu.

Bạn cần thiết lập lại cơ sở dữ liệu chính trong bộ ứng dụng của mình từ cơ sở dữ liệu được sao chép.

RPO thể hiện lượng dữ liệu bị mất trong khoảng thời gian đó và RTO thể hiện thời gian khách hàng không thể đặt chuyến bay.

Các kỹ sư dữ liệu thường xuyên phải đánh giá, thiết kế và triển khai các hệ thống để giảm thiểu tác động đến khách hàng trong trường hợp hỏng hóc.

Data Governance là gì?

Một chiến lược quản trị dữ liệu (data governance) là điều cần thiết cho sự thành công của tổ chức và dữ liệu của nó.

Đây là một chủ đề rất phức tạp mà chúng tôi đã đề cập ở những nơi khác, nhưng ở cấp độ cao, quản trị dữ liệu được cấu trúc như sau:

Data Governance là gì? Ảnh: phData
Data Governance là gì? Ảnh: phData

Để dữ liệu của bạn cung cấp giá trị cho doanh nghiệp đồng thời giảm thiểu rủi ro và chi phí, bạn sẽ cần xác định và thực thi câu trả lời cho khá nhiều câu hỏi:

  • Ai có quyền truy cập vào dữ liệu của tôi?
  • Làm cách nào để kiểm tra và cung cấp quyền truy cập?
  • Dữ liệu được lưu trữ vật lý như thế nào trong một hệ thống và trên các hệ thống?
  • Công ty của tôi tuân theo các tiêu chuẩn và thông lệ mã hóa dữ liệu nào?
  • Làm cách nào để xác thực dữ liệu trong các báo cáo khác nhau đến từ đâu?
  • Làm cách nào để xác thực tính đúng đắn của một báo cáo mà tôi đang đưa ra quyết định kinh doanh quan trọng?
  • Làm cách nào để người dùng tìm thấy dữ liệu trong hệ thống của tôi?

Đây là những câu hỏi rất phức tạp thường có câu trả lời phức tạp và đòi hỏi kiến ​​thức từ các lĩnh vực kinh doanh và công nghệ khác nhau:

  • Doanh nghiệp của bạn cần xác định cách dữ liệu làm tăng giá trị cho tổ chức.
  • Nhân viên bảo mật của bạn cần xác định các tiêu chí để mã hóa và quản lý truy cập.
  • Các kỹ sư dữ liệu của bạn cần có khả năng liên kết dữ liệu với nhau và làm chủ các kho dữ liệu cho người dùng cuối.
  • Tất cả điều này cần được quản lý và thực thi bởi các thành viên đa chức năng trong tổ chức.

Data Governance khác với Data Engineering như thế nào?

Quản trị dữ liệu tập trung hơn vào quản trị dữ liệu và kỹ thuật dữ liệu tập trung vào thực thi dữ liệu.

Mặc dù kỹ sư dữ liệu là một phần của chiến lược quản trị dữ liệu tổng thể, nhưng quản trị dữ liệu bao gồm nhiều thứ hơn là thu thập và quản lý dữ liệu.

Khó mà nói một tổ chức có một thực tiễn quản trị dữ liệu hiệu quả nếu không có các kỹ sư dữ liệu thực hiện nó.

Ví dụ: hãy xem một số câu hỏi của chúng tôi ở trên, lưu ý các kỹ sư dữ liệu và cách họ hoàn thành từng nhiệm vụ.

Ai có quyền truy cập vào dữ liệu?

Trong thực tiễn quản trị dữ liệu, các quy tắc và quy định xác định ai nên có quyền truy cập vào các phần thông tin cụ thể trong tổ chức.

Nếu là công ty vận chuyển, bạn có thể cần tách biệt dữ liệu mà nhà cung cấp và khách hàng có thể xem tại bất kỳ thời điểm nào hoặc đảm bảo rằng các nhà cung cấp khác nhau không thể xem thông tin về các nhà cung cấp khác.

Điều này yêu cầu các ràng buộc về phân loại, gắn thẻ và truy cập dữ liệu.

Nếu bạn đang thu thập dữ liệu từ các hệ thống khác nhau, kỹ sư dữ liệu chịu trách nhiệm áp dụng các quy tắc phân loại và gắn thẻ khi thu thập.

Điều này có thể bao gồm việc thêm các điểm dữ liệu bổ sung vào dữ liệu đã thu thập hoặc lưu trữ dữ liệu riêng biệt trên đĩa. 

Sau đó, khi dữ liệu được tổng hợp hoặc chuyển đổi, kết quả cuối cùng phải bao gồm cùng thông tin này. Khi thiết lập các ràng buộc truy cập đối với dữ liệu, kỹ sư dữ liệu cũng phải thực thi các chính sách được yêu cầu.

Làm cách nào điều chỉnh và cung cấp quyền truy cập?

Để được coi là tuân thủ nhiều quy định bắt buộc của doanh nghiệp, bạn phải có khả năng theo dõi ai có quyền truy cập vào dữ liệu của bạn và những thay đổi đối với quyền truy cập đó.

Điều này cũng bao gồm việc thông báo cho người dùng dữ liệu về những thay đổi đối với dữ liệu.

Nếu bạn là người tiêu dùng của một tập hợp dữ liệu và nó thay đổi mà bạn không biết, hệ thống có thể bị hỏng. Điều này có nghĩa là việc có thể theo dõi ai và ai nên sử dụng dữ liệu là rất quan trọng.

Mặc dù các thực tiễn quản trị dữ liệu xác định những quy tắc đó nên là gì, nhưng trách nhiệm của các kỹ sư dữ liệu là đưa những quy tắc đó vào đúng vị trí.

Điều này có nghĩa là thiết lập các quy tắc IAM trong AWS hoặc Microsoft Azure để đảm bảo rằng một số vai trò nhất định chỉ có thể đọc dữ liệu từ các nguồn và hệ thống khác nhau.

Sau đó, nhóm bảo mật có trách nhiệm xác thực rằng người dùng chỉ có quyền truy cập vào các vai trò thích hợp.

Làm thế nào dữ liệu được lưu trữ vật lý trong một hệ thống và trên toàn hệ thống?

Kỹ sư dữ liệu chịu trách nhiệm lưu trữ dữ liệu được thu thập và chuyển đổi ở nhiều vị trí khác nhau tùy thuộc vào yêu cầu của doanh nghiệp.

Mỗi bộ công cụ và vị trí sẽ có các cách khác nhau để dữ liệu được lưu trữ và truy cập, và kỹ sư dữ liệu phải tính đến các giới hạn, lợi ích và trường hợp sử dụng cho từng vị trí và tập hợp dữ liệu.

Ví dụ:

Giả sử doanh nghiệp của bạn đang nhập một triệu bản ghi mỗi ngày cho một nguồn dữ liệu cụ thể.

Nếu bạn đang lưu trữ tệp này trên đĩa, bạn không thể chỉ thêm vào một tệp đơn lẻ, (Nó giống như mò kim đáy bể!)

Nếu bạn đang cố gắng tạo báo cáo hoặc cung cấp cho người dùng cuối một phần thông tin cụ thể, bạn sẽ không bao giờ có thể tìm thấy nó.

Các kỹ sư dữ liệu sẽ:

  • Biết rằng dữ liệu này cần được phân vùng trên các tệp và thư mục khác nhau trong hệ thống tệp của bạn để tách dữ liệu.
  • Đánh giá dữ liệu và cách dữ liệu được tải và sử dụng để xác định cách thích hợp để chia nhỏ dữ liệu.
  • Xác định cách cập nhật các phần dữ liệu cụ thể khi các thay đổi được áp dụng cho nguồn dữ liệu.

Quản trị dữ liệu và các quy tắc xung quanh nó có thể xác định quyền truy cập dữ liệu vào các phân vùng đó và có thể yêu cầu các chỉ số hiệu suất của dữ liệu đó.

Tuy nhiên, các thành viên của nhóm quản trị dữ liệu sẽ không có bộ kỹ năng để thiết lập các vai trò truy cập đó hoặc lấy các chỉ số đó.

Data Science là gì?

Nếu bạn đang cố gắng tìm kiếm giá trị từ các tập dữ liệu khác nhau, bạn sẽ bắt đầu từ đâu?

Ví dụ: nếu bạn có dữ liệu về khách hàng và đơn hàng của họ, bạn có thể cố gắng tìm ra những mặt hàng bổ sung nào bạn có thể bán cho họ dựa trên các đơn hàng khác. Nếu bạn có thể biết tương quan giữa khách hàng và việc mua hàng của họ, bạn có thể bán thêm cho các đơn hàng trong tương lai.

Điều này có thể đơn giản nếu bạn có một nhóm khách hàng và đơn hàng nhỏ.

Bạn có thể thuê các nhà phân tích kinh doanh (business analyst) là chuyên gia trong công ty của bạn và đã làm việc với khách hàng trong nhiều năm để có thể suy ra những gì khách hàng muốn.

Nhưng…

  • Điều gì sẽ xảy ra nếu bạn có hàng triệu khách hàng và hàng triệu giao dịch?
  • Điều gì sẽ xảy ra nếu bạn có các nhà cung cấp bên ngoài cung cấp cho bạn thông tin bổ sung về khách hàng của bạn?
  • Điều gì sẽ xảy ra nếu dữ liệu của bạn không có cấu trúc và không thể dễ dàng kết hợp với các tập dữ liệu khác?
  • Làm thế nào để bạn biết rằng các phần thông tin cụ thể thực sự có mối tương quan và đưa ra quyết định dựa trên dữ liệu chứ không phải cảm tính?

Đây là lúc khoa học dữ liệu (data science) đi vào bức tranh.

Các nhà khoa học dữ liệu được giao nhiệm vụ sử dụng các phương pháp, quy trình, thuật toán và hệ thống khoa học để trích xuất những hiểu biết kinh doanh có giá trị từ dữ liệu có cấu trúc và phi cấu trúc.

Mô hình hóa dữ liệu là gì?

Để hiểu kết quả công việc của nhà khoa học dữ liệu trông như thế nào, chúng ta phải hiểu mô hình dữ liệu là gì.

Mô hình hóa dữ liệu là quá trình dữ liệu được xác định, phân tích và cấu trúc để tạo ra một đầu ra có ý nghĩa.

Điều này thường có nghĩa là nhập dữ liệu từ nhiều nguồn khác nhau, cấu trúc nó thành các thực thể và mối quan hệ khác nhau, thực hiện các phép tính đối với dữ liệu và xác thực đầu ra.

Data Modeling là gì? Ảnh: phData
Data Modeling là gì? Ảnh: phData

Mục tiêu của mô hình hóa dữ liệu là để minh họa hoặc tính toán các kết nối giữa các điểm và cấu trúc dữ liệu.

Quay trở lại ví dụ về khách hàng và giao dịch của chúng ta, mô hình dữ liệu sẽ cho chúng ta thấy các khách hàng và giao dịch khác nhau liên quan với nhau như thế nào, vì vậy chúng tôi có thể bắt đầu thực hiện một số phân tích thống kê về mức độ liên quan chặt chẽ của chúng.

Một đầu ra tiềm năng của mô hình dữ liệu này là những khách hàng đã mua tã có khả năng mua nước rửa tay cao hơn 80% so với những khách hàng không mua.

Ngoài ra còn có các loại mô hình dữ liệu khác nhau:

  • Mô hình vật lý: lược đồ hoặc khuôn khổ về cách dữ liệu được lưu trữ vật lý trên đĩa hoặc trong cơ sở dữ liệu.
  • Mô hình khái niệm: cấu trúc và khái niệm kinh doanh cấp cao.
  • Mô hình dữ liệu logic: các kiểu thực thể, kiểu dữ liệu và thuộc tính, mối quan hệ giữa các thực thể.

Cách nhà khoa học dữ liệu gia tăng giá trị

Các nhà khoa học dữ liệu thường có nền tảng toán học, thống kê và lập trình vững chắc.

Khi làm việc với Dữ liệu lớn, rất khó xác định giá trị theo cách thủ công. Còn nhớ “mò kim đáy bể” chứ?

Thay vào đó, các nhà khoa học dữ liệu phải làm việc với dữ liệu để xác thực các lý thuyết và mô hình thống kê.

Trong ví dụ về mô hình dữ liệu của chúng ta, chúng ta có thể xác định rằng những khách hàng đã mua tã có khả năng mua nước rửa tay cao hơn 80% so với những khách hàng không mua.

Mặc dù đây là một kết luận đơn giản và hợp lý, nhưng đôi khi các tổ chức có những mối quan hệ phức tạp hơn giữa dữ liệu của họ và giá trị kinh doanh.

Cũng có thể là tổ chức của bạn có quá nhiều dữ liệu mà bạn thậm chí không biết bắt đầu từ đâu.

Các công ty trong danh sách Fortune 1000 có thể kiếm thêm thu nhập ròng hơn 65 triệu đô la bằng cách tăng khả năng truy cập dữ liệu của họ lên 10%.

Đây là lý do tại sao các công ty cần có các nhà khoa học dữ liệu tạo mô hình dữ liệu và thực hiện phân tích trên dữ liệu – giúp các đơn vị kinh doanh có thể truy cập được.

Rất thực tế là doanh nghiệp của bạn có thể bán kèm hoặc bán thêm các dịch vụ cho khách hàng hiệu quả hơn hoặc doanh nghiệp của bạn có thể tiết kiệm tiền bằng cách sử dụng các mô hình dữ liệu để dự đoán việc sử dụng tài nguyên.

Phân tích dự đoán (Predictive analysis) là gì?

Mặc dù bán chéo và bán thêm (cross sell và up sell) dịch vụ là một khái niệm bình thường đối với hầu hết các doanh nghiệp bán sản phẩm hoặc dịch vụ, nhưng phân tích dự đoán sẽ bổ sung một lớp giá trị kinh doanh khó hình thành hơn.

Giả sử bạn là một công ty vận chuyển và bạn đã được CEO giao nhiệm vụ tối đa hóa lợi nhuận và giảm thiểu chi phí hoạt động. Đây là mục tiêu của mọi doanh nghiệp, phải không?

Bạn sẽ bắt đầu từ đâu?

Bạn có thể cố gắng xác định các tuyến đường vận chuyển thường xuyên được sử dụng và đảm bảo rằng bạn có xe tải thường xuyên giao hàng qua lại mà không phải chờ đợi giữa các chuyến hàng quá lâu.

Tuy nhiên:

  • Làm thế nào để bạn xác định thời tiết sẽ ảnh hưởng đến điều kiện lái xe như thế nào?
  • Làm thế nào để bạn tối ưu hóa các tuyến đường trong trường hợp một cây cầu bị sập?
  • Làm thế nào để bạn biết được thời điểm lý tưởng để lái xe qua từng thành phố mà không gặp phải lượng lớn giao thông?

Đây là một ví dụ tuyệt vời khác về việc một mô hình dữ liệu và các nhà khoa học dữ liệu bổ sung thêm rất nhiều giá trị.

Nhà khoa học dữ liệu chịu trách nhiệm lập mô hình từng điểm dữ liệu có thể ảnh hưởng đến tuyến đường vận chuyển, tính toán các rủi ro và tác động của từng điểm theo chương trình và tính toán các kết luận để thông báo cho doanh nghiệp về cách hoạt động.

Với phân tích dự đoán, doanh nghiệp của bạn có khả năng tìm thấy mối tương quan giữa các dữ liệu mà trước đây được cho là vô dụng hoặc không có khả năng ảnh hưởng đến các tình huống khác nhau.

Data Engineer khác với Data Scientist ra sao?

Đối với các nhà khoa học dữ liệu để có thể mô hình hóa dữ liệu một cách hiệu quả, các thực tiễn quản trị dữ liệu phải được áp dụng để đảm bảo chất lượng và độ chính xác của dữ liệu.

Sau đó, các kỹ sư dữ liệu chịu trách nhiệm ban hành các chính sách này và giám sát chất lượng và hiệu suất dữ liệu. Các kỹ sư dữ liệu cũng cung cấp nguồn dữ liệu mà các nhà khoa học dữ liệu sử dụng để tạo mô hình dữ liệu.

Mặc dù các kỹ sư dữ liệu có thể thực hiện các chuyển đổi và tổng hợp quy mô lớn trên dữ liệu, nhưng cần phải có một phân tích để xác định cách dữ liệu nên được xử lý.

Kỹ sư dữ liệu phải biết dữ liệu có liên quan như thế nào và nó nên được thao tác như thế nào để tạo ra kết quả mong muốn.

Trong các ví dụ cơ bản, một kỹ sư dữ liệu có thể hợp tác với doanh nghiệp để vạch ra điều này, nhưng trong các hệ thống phức tạp hơn, một nhà khoa học dữ liệu cần phải phân tích thêm.

Trong một số trường hợp, mô hình dữ liệu có thể yêu cầu một thuật toán và quy trình biến đổi phức tạp hơn so với một kỹ sư dữ liệu tổng quát có thể xử lý.

Có thể có các phương trình toán học phức tạp và phân tích thống kê phải được lấy từ một mẫu thử nghiệm hoặc ví dụ quy mô nhỏ và được sản xuất hóa.

Đây là lúc bạn cần tuyển một ML Engineer (kỹ sư học máy).

Kỹ sư học máy (Machine Learning Engineer) là gì?

Kỹ sư học máy là giao điểm của kỹ thuật dữ liệu và khoa học dữ liệu.

Những kỹ sư này thường có nền tảng toán học vững chắc hơn một kỹ sư dữ liệu điển hình, nhưng không đến mức như một nhà khoa học dữ liệu.

Các kỹ sư này có thể tận dụng các khuôn khổ và công cụ kỹ thuật dữ liệu trong hệ sinh thái dữ liệu lớn, áp dụng các mô hình dữ liệu do các nhà khoa học dữ liệu tạo ra cho dữ liệu đó và sản xuất hóa quá trình triển khai các mô hình này.

Đây không phải là một nhiệm vụ đơn giản.

Các kỹ sư học máy cần phải thành thạo về cấu trúc dữ liệu và thuật toán, cả từ góc độ toán học và tính toán.

Để mô hình dữ liệu được sản xuất, dữ liệu phải được nhập vào mô hình và các tính toán chạy trong môi trường hiệu suất cao.

Điều này có nghĩa là có khả năng xử lý hàng terabyte dữ liệu thời gian thực để thúc đẩy các quyết định kinh doanh.

Các kỹ sư học máy làm việc với các nhà khoa học dữ liệu như thế nào?

Khi các nhà khoa học dữ liệu làm việc với dữ liệu để chứng minh các mô hình, công việc thường được thực hiện trong các môi trường như Python hoặc R, bên trong một sổ ghi chép phân tích như Jupyter.

Sổ này này chạy với một cụm để dịch các truy vấn thành một công cụ dành riêng cho nền tảng dữ liệu lớn như Spark.

Mặc dù cách tiếp cận này giảm thiểu kinh nghiệm phát triển và thời gian cần thiết để thu được giá trị, nhưng nó đòi hỏi thêm nhiều việc để sản xuất hóa. Thường bao gồm:

  • Kiểm tra chất lượng dữ liệu
  • Tối ưu hóa hiệu suất truy vấn
  • Tạo hệ sinh thái CI / CD xung quanh những thay đổi đối với mô hình
  • Đưa dữ liệu từ nhiều nguồn khác nhau vào mô hình dữ liệu
  • Học máy và các kỹ thuật khoa học dữ liệu cho các hệ thống phân tán

Mặc dù một số kỹ năng này trùng lặp với kỹ sư dữ liệu (nhập dữ liệu, kiểm tra chất lượng dữ liệu, v.v.), các trách nhiệm và kỹ năng cần thiết được tập trung đáng kể vào một số lĩnh vực kỹ thuật dữ liệu.

Những kỹ năng cần thiết của Data Engineer?

Không có câu trả lời đơn giản cho câu hỏi này – nhưng hãy cùng tìm hiểu một số điều cơ bản

Lưu trữ và tính toán dữ liệu

Dữ liệu có thể được lưu trữ ở nhiều định dạng tệp khác nhau trong hệ thống tệp và theo những cách khác nhau trong cơ sở dữ liệu và kho dữ liệu.

Mỗi định dạng khác nhau này được tối ưu cho một trường hợp sử dụng cụ thể và các kỹ sư dữ liệu chịu trách nhiệm tìm hiểu công cụ phù hợp cho công việc.

Ví dụ: nếu bạn đang lưu trữ dữ liệu trên đĩa trong một hồ dữ liệu, có một số tùy chọn phổ biến cho các định dạng dữ liệu:

  • Parquet
  • Avro
  • ORC

Các định dạng dữ liệu này thường được điều khiển bởi một trung tâm theo dõi vị trí của dữ liệu để truy vấn dữ liệu.

Tùy thuộc vào công cụ bạn đang sử dụng, cú pháp truy vấn, mẫu truy cập, hiệu suất và khả năng sẽ khác nhau. Các ví dụ phổ biến bao gồm:

  • Apache Hive
  • Databricks Delta Lake
  • AWS Glue Catalog

Dữ liệu cũng có thể được lưu trữ trong các nền tảng dựa trên luồng cho phép các hệ thống phân tán cao.

Đây thường là một kiến ​​trúc pub / sub cho phép nhiều người tiêu thụ dữ liệu nhận các bản cập nhật từ một nhà xuất bản dữ liệu. Các ví dụ phổ biến bao gồm:

  • Apache Kafka
  • AWS Kinesis và AWS Kinesis Firehose
  • RabbitMQ

Khi dữ liệu đã được lưu trữ, thông thường nó sẽ cần được xử lý để đạt được trạng thái mong muốn.

Điều này có thể liên quan đến việc lấy dữ liệu từ nhiều nguồn khác nhau, kết hợp dữ liệu đó với nhau, thực hiện tổng hợp trên đó và sau đó đưa kết quả vào vị trí cuối cùng.

Có nhiều phương án tính toán thường được sử dụng trong quy trình dữ liệu:

  • Apache Spark
  • Databricks
  • AWS Glue

Đầu ra của các quy trình dữ liệu này sau đó thường sẽ được đưa trở lại vào một hồ dữ liệu, sử dụng các định dạng dữ liệu và vị trí truyền dữ liệu được đề cập bên trên.

Trong một số trường hợp, khách hàng muốn đưa dữ liệu này vào cơ sở dữ liệu hoặc kho dữ liệu như Snowflake hoặc AWS Redshift.

Các công cụ này cho phép điều chỉnh hiệu suất dữ liệu hơn nữa, trao quyền dữ liệu và tích hợp với công cụ của bên thứ ba.

Hiểu biết về Cloud và On-Premises

Nhiều công ty có hệ thống on-premises (tại chỗ) và đang chuyển sang các giải pháp dựa trên đám mây như Amazon Web Services (AWS) và Microsoft Azure.

Điều này đòi hỏi một tập hợp các kỹ năng khác nhau và các kỹ sư phải có khả năng hiểu được sự khác biệt trong cách các hệ thống này hoạt động.

Nói chung, khi làm việc với khối lượng công việc tại chỗ, các kỹ sư không tập trung vào thời gian thực thi và mức sử dụng bộ nhớ cho đến khi chúng trở thành những người hàng xóm xấu tính với các quy trình khác trên cùng một máy chủ hoặc cụm.

Vì công ty trả tiền cho phần cứng chứ không phải theo mô hình dựa trên mức tiêu thụ, nên việc cho phép các quy trình chạy lâu hơn một chút sẽ dễ dàng hơn là dành nhiều thời gian để tối ưu hiệu suất.

Tuy nhiên, khi làm việc trên nền tảng đám mây, nhiều giải pháp chạy trên mô hình dựa trên mức tiêu thụ được gắn với những thứ như sử dụng bộ nhớ, thời gian thực thi và yêu cầu lưu trữ.

Điều này có thể dẫn đến chi phí đáng kể khi chuyển trực tiếp khối lượng công việc tại chỗ lên đám mây.

Kỹ sư dữ liệu cần có khả năng hiểu các mô hình định giá khác nhau và điều chỉnh các giải pháp cho phù hợp.

Điều này có nghĩa là hiểu biết cơ bản về các chiến lược bán hàng, các khoản phí mà một công ty sẽ phải chịu và cách thực hiện các giải pháp trong cả hai hệ sinh thái.

Toán học

Đối với nhiều kỹ sư dữ liệu, quá trình chuyển đổi dữ liệu thành siêu thị data và các tập dữ liệu được sắp xếp không đơn giản như việc kết hợp một vài tập dữ liệu.

Trong nhiều trường hợp, việc tổng hợp cần được thực hiện dựa trên dữ liệu nguồn để tính toán những thứ như các giá trị thống kê như trung vị, độ lệch chuẩn và phương sai.

Toán học cũng rất quan trọng khi xem xét các cấu trúc dữ liệu khác nhau để lưu trữ dữ liệu hoặc các thuật toán để xử lý dữ liệu.

Điều quan trọng là phải hiểu các tác động về hiệu suất của việc lưu trữ dữ liệu trong một cấu trúc cụ thể hoặc thực hiện các thuật toán nhất định dựa trên một tập dữ liệu nhất định.

Ví dụ:

Bạn biết rằng dữ liệu của mình được lưu trữ và phân vùng theo ngày tải, nhưng bạn cần kết hợp dữ liệu đó dựa trên khóa doanh nghiệp (business key). Đối với một kỹ sư dữ liệu, đây là một tín hiệu đáng báo động.

Bằng sự hiểu biết về cấu trúc dữ liệu và thuật toán, kỹ sư sẽ hiểu rằng họ sẽ phải quét toàn bộ bảng trên dữ liệu, đọc từng phân vùng và tệp riêng lẻ để thực hiện hành động đó.

Điều này có thể ổn đối với các tập dữ liệu nhỏ, nhưng chắc chắn là không khả thi khi bạn đang ở trong hệ sinh thái Dữ liệu lớn.

Tập trung vào Chất lượng

Ngay cả khi quá trình nhập và quản lý dữ liệu của bạn được tối ưu hóa 100% và có hiệu suất cao, sẽ không ý nghĩa gì nếu dữ liệu không chính xác.

Một kỹ sư dữ liệu phải có khả năng hiểu kết quả cuối cùng là gì, cũng như các phương pháp và công cụ cho phép xác nhận dữ liệu.

Các kỹ sư dữ liệu có thể sử dụng các công cụ như Deequ và Great Expectations để cung cấp khuôn khổ và công cụ cho chất lượng dữ liệu và phát hiện lỗi dữ liệu.

Các bài kiểm thử phải được viết dựa trên dữ liệu để đảm bảo dữ liệu là như mong đợi và được giám sát về sự sai lệch trong dữ liệu.

Một data engineer lành nghề có thể lập hồ sơ, giám sát và cảnh báo khi dữ liệu nằm ngoài phạm vi và thông số có thể chấp nhận được.

Tại sao Kỹ thuật Dữ liệu lại Quan trọng hơn Bao giờ hết?

Kiến thức là sức mạnh – và nó không thể đúng hơn trong xã hội ngày nay. Các công ty lớn đang tạo, nhập và xử lý nhiều dữ liệu hơn bao giờ hết.

Dữ liệu là một thành phần quan trọng đối với tri thức và như chúng ta đã chứng minh qua các ví dụ khác nhau, quá trình biến dữ liệu thành tri thức có thể rất phức tạp.

Có nhiều cấp độ xử lý và phân tích dữ liệu khác nhau và có thể có những trường hợp trong tổ chức của bạn nơi mà kinh nghiệm trong lĩnh vực và thực tiễn kinh doanh cụ thể có thể cung cấp cho một cá nhân mức độ hiểu biết mà dữ liệu có thể sao lưu.

Tuy nhiên, lượng kiến ​​thức mà Dữ liệu lớn có thể tạo ra về doanh nghiệp của bạn và tác động của nó đối với doanh nghiệp của bạn thường bị bỏ qua (và áp đảo).

Trong suốt bài viết này, chúng ta đã nói về các kỹ sư dữ liệu, nhà khoa học dữ liệu, kỹ sư học máy và cách mỗi người trong số họ có một vị trí cụ thể trong hệ sinh thái dữ liệu lớn.

Những chuyên gia này thường là những nguồn lực có kinh nghiệm và đắt tiền mà một tổ chức tuyển vào, tạo ra một rào cản gia nhập khó có thể vượt qua.

Tuy nhiên, chưa bao giờ có thời điểm quan trọng hơn để đầu tư vào các nguồn lực này.

Hãy cùng xem một số ví dụ về những gì các phương pháp này đã cho phép các công ty thực hiện.

Định giá động

Các nhà bán lẻ lớn như Amazon và các hãng hàng không thường sử dụng giá động cho hàng hóa của họ.

Điều này cho phép định giá cập nhật nhất dựa trên các mô hình dữ liệu được tạo bởi các nhà khoa học dữ liệu, được thực hiện bởi các kỹ sư học máy và được cung cấp bởi các kỹ sư dữ liệu.

Bạn có thể đã thường xuyên kiểm tra giá của các hãng hàng không để thử và kiếm được một món hời hoặc kiểm tra Amazon để xem liệu một mặt hàng cụ thể mà bạn quan tâm có được giảm giá hay ở mức giá tốt hơn so với các đối thủ cạnh tranh hay không.

Điều có thể bạn chưa biết là Amazon cập nhật giá lên đến 2.500.000 lần một ngày.

Điều này được hỗ trợ bởi mô hình dữ liệu do Amazon xây dựng để tối đa hóa lợi nhuận và duy trì tính cạnh tranh trong thị trường thương mại điện tử khổng lồ. Đây là cách công ty kiếm được 35% doanh thu hàng năm.

Một ví dụ khác về định giá động là các khách sạn Marriott.

Là một trong những chuỗi khách sạn lớn nhất trên thế giới, họ có hơn 6.500 khách sạn trên toàn cầu và giá phòng bị ảnh hưởng bởi nhiều yếu tố khác nhau.

Để định giá phòng khách sạn của mình một cách cạnh tranh, họ sẽ phải thuê hàng trăm đến hàng nghìn nhà phân tích để kiểm tra những thứ như tình hình kinh tế địa phương và toàn cầu, thời tiết, tình trạng sẵn có và hành vi đặt phòng, hủy đặt phòng,…

Điều này không khả thi trên quy mô lớn. Thay vào đó, họ sử dụng tính năng định giá động được xây dựng dựa trên các mô hình dữ liệu, dẫn đến doanh thu mỗi phòng tăng 5%.

Tiếp thị kỹ thuật số và phát triển sản phẩm

Trong nền kinh tế toàn cầu, điều quan trọng là phải hiểu rằng tiếp thị không phải là một động lực phù hợp với tất cả. Các chiến dịch tiếp thị và quảng cáo thành công sẽ trông khác ở Mỹ khi so sánh với Trung Quốc.

Ngay cả trong một quốc gia cụ thể, có thể có các khu vực của quốc gia có tín ngưỡng, kiểu thời tiết và sở thích khác nhau.

Để thúc đẩy doanh số bán hàng, thông thường trong tiếp thị là có một chiến dịch nhắm mục tiêu đến một đối tượng cụ thể.

Một ví dụ tuyệt vời về điều này là Airbnb, vào năm 2014 đã muốn điều chỉnh trải nghiệm tìm kiếm theo nhân khẩu học và địa lý.

Họ nhận thấy rằng các quốc gia châu Á nhất định thường có tỷ lệ thoát cao khi truy cập trang chủ.

Phân tích thêm dữ liệu, họ phát hiện ra rằng người dùng sẽ nhấp vào liên kết “Vùng lân cận”, bắt đầu duyệt ảnh và sau đó không bao giờ quay lại để đặt chỗ.

Để giải quyết vấn đề này, công ty đã tạo ra một phiên bản được thiết kế lại cho người dùng ở các quốc gia đó, thay thế các liên kết vùng lân cận bằng các điểm đến du lịch hàng đầu.

Điều này dẫn đến tăng 10% chuyển đổi.

Một ví dụ tuyệt vời khác là Coca-Cola, vào năm 2017 đã tiết lộ rằng hương vị Cherry Sprite được lấy cảm hứng từ dữ liệu thu thập từ các vòi nước uống tự phục vụ, nơi khách hàng tự pha chế đồ uống của họ.

Những chiếc máy này được thiết lập để theo dõi hương vị mà khách hàng đang trộn ở các khu vực khác nhau trên thế giới.

Sau đó, công ty chỉ cần tổng hợp các biến thể của sự kết hợp đồ uống và biến nó thành một mặt hàng có thể mua được.

Kết

Hy vọng rằng bạn sẽ rời khỏi hướng dẫn này với sự hiểu biết tốt hơn về những gì một data engineer làm và cách họ có thể giúp tổ chức của bạn đưa ra quyết định tốt hơn với dữ liệu.

Nguồn: phData

Categories
Dev's Corner

DApps là gì? Mọi thứ về ứng dụng phi tập trung

Các ứng dụng phi tập trung (decentralized application), hay DApps, về cơ bản là các phiên bản dựa-trên-hợp-đồng-thông-minh-chạy-trên-blockchain của các ứng dụng được mạng Ethereum phổ biến. Chúng hoạt động giống như các ứng dụng truyền thống – người dùng thậm chí không nhận thấy sự khác biệt – nhưng cung cấp nhiều hơn về mặt bộ tính năng.

DApps đại diện cho một cách mới để tương tác với tài chính cá nhân. Khi người ta nghĩ đến tài chính truyền thống, người ta thường nghĩ đến hoạt động cho vay, đi vay, gửi tiết kiệm và các thực thể tương tự. Mỗi thứ trong số này được cung cấp bởi một cơ quan trung ương như ngân hàng hoặc các tổ chức tài chính khác.

Khác biệt giữa app truyền thống và dapps
Khác biệt giữa app truyền thống và dapps

Nhưng khi nói đến tương lai của tài chính, nhiều người coi tiền điện tử và blockchain là những đại diện của điều đó. Nếu đúng như vậy, làm thế nào để các nhiệm vụ tài chính đơn giản như cho vay diễn ra ở trạng thái phi tập trung?

Lịch sử của DApps

Khi Bitcoin (BTC) là mạng blockchain đầu tiên, công nghệ này đã phát triển vượt xa so với một giao dịch tài chính đơn giản. Khi Vitalik Buterin và các đồng nghiệp của mình đề xuất Ethereum (ETH) vào năm 2013, họ đã đặt mục tiêu vào một thứ lớn lao hơn – một cách sống phi tập trung.

Buterin đã hình dung ra một mạng internet dựa trên blockchain, nơi người dùng có quyền kiểm soát thay vì các tập đoàn.

Để làm như vậy, Ethereum sẽ cung cấp năng lượng cho những gì về cơ bản là các câu lệnh if-then tự động được gọi là hợp đồng thông minh (smart contract). Các hợp đồng này là bất biến, vì các quy tắc và giới hạn đã được đưa vào mã của chúng. Điều này nghĩa là bất kỳ bên nào cũng có thể giao dịch mà không cần trung gian, loại bỏ nhu cầu về các nền tảng tập trung.

Năm 2014 chứng kiến ​​việc phát hành một báo cáo định nghĩa DApp, có tên là “Lý thuyết chung về các ứng dụng phi tập trung, Dapps”, được viết bởi nhiều tác giả có kinh nghiệm trong lĩnh vực như David Johnston và Shawn Wilkinson.

Bài báo định nghĩa DApps là các thực thể có các đặc điểm sau:

DApp phải có mã nguồn mở và hoạt động mà không có sự can thiệp của bên thứ ba. Nó phải được người dùng kiểm soát, vì họ đề xuất và bỏ phiếu cho những thay đổi được thực hiện tự động.

Tất cả thông tin phải được lưu trữ trong một mạng lưới blockchain có thể truy cập công khai. Phi tập trung là chìa khóa, vì không có điểm tấn công trung tâm.

DApps phải có một số loại token mật mã (cryptographic token) để truy cập và họ phải thưởng cho những người đóng góp trong token nói trên, chẳng hạn như người khai thác (miner) và cổ đông (staker).

DApp phải có phương pháp đồng thuận tạo ra token, chẳng hạn như bằng chứng công việc (PoW) hoặc bằng chứng cổ phần (PoW).

Từ đó, bài báo phân loại ba “loại” hoặc “lớp” DApp dựa trên cách người dùng tương tác với chúng.

  1. DApp lớp một tự tồn tại trên blockchain của riêng chúng. Các dự án phổ biến nhất là loại DApp này, chẳng hạn như Bitcoin. Chúng yêu cầu một thuật toán đồng thuận và các quy tắc tích hợp.
  2. DApps lớp hai thường được xây dựng trên lớp một, khai thác sức mạnh của blockchain đã nói. Thường được coi là giao thức, chúng sử dụng token cho các tương tác. Giải pháp mở rộng được xây dựng trên Ethereum là một ví dụ điển hình về DApp lớp hai. Các giao dịch có thể xử lý trên lớp thứ hai này trước khi thực hiện với lớp đầu tiên, loại bỏ một số tải khỏi chuỗi chính.
  3. DApp lớp ba được xây dựng trên lớp hai, thường chứa thông tin cần thiết để hai lớp kia tương tác. Nó có thể lưu trữ các giao diện lập trình ứng dụng (API) và các tập lệnh cần thiết cho lớp một và lớp hai hoạt động. Ví dụ: giao thức lớp ba có thể chứa các DApp lớp hai khác nhau, tạo điều kiện thuận lợi cho trải nghiệm người dùng thông qua tất cả chúng.

Nói một cách đơn giản, bài báo định nghĩa DApp là các ứng dụng khác nhau được cung cấp bởi một blockchain lõi. Một số có thể xây dựng trên lớp ban đầu đó, nhưng tất cả chúng đều được coi là DApp nếu đáp ứng các tiêu chí đã đề cập ở trên.

Tại sao sử dụng DApps?

Phi tập trung mang lại nhiều lợi ích khác nhau so với các ứng dụng chạy trên mạng tập trung.

Chủ yếu là việc thiếu đi bên thứ ba, nhờ vào hợp đồng thông minh sáng tạo.

Một ứng dụng như Venmo cho phép một người gửi tiền cho bất kỳ ai, tuy nhiên, việc chuyển những khoản tiền đó vào tài khoản ngân hàng đều sẽ mất một khoản phí.

Thêm vào đó, việc chuyển tiền thường mất nhiều ngày mới đến nơi.

Tại sao sử dụng Dapps
Tại sao sử dụng Dapps

Còn gửi tiền qua ứng dụng phi tập trung có nghĩa là không có hoặc rất ít chi phí phải trả.

Điều này giúp người dùng tiết kiệm tiền cho các khoản phí và việc xem xét các giao dịch phi tập trung là gần như ngay lập tức, giúp họ tiết kiệm thời gian.

Tất nhiên, DApp cũng không chạy trên các máy chủ tập trung.

Một lợi thế của các nền tảng phi tập trung là chúng không thể bị hủy hoại trước tất cả các loại tấn công, vì không có thiết bị vật lý nào để nhắm mục tiêu.

Điều này không chỉ làm cho mạng an toàn hơn mà còn không có thời gian chết. Luôn có thể truy cập các ứng dụng này.

DApp cũng có thể áp dụng cho hầu hết mọi ngành, chẳng hạn như trò chơi, y tế, quản trị và thậm chí là lưu trữ tệp.

Kết quả là, việc sử dụng DApp gần như không khác so với các ứng dụng truyền thống. Mặc dù người dùng hưởng lợi từ tất cả các thay đổi đằng sau đó, nhưng trải nghiệm thực tế sẽ giống nhau.

Cách tương tác với các ứng dụng này được coi là Web 3.0, cũng liên quan đến phi tập trung thông tin.

Khi web bắt đầu, đó là một không gian chứa đầy thông tin mà bất kỳ ai cũng có thể truy cập. Theo thời gian, các công ty lớn đã khai thác hoặc tập trung hóa nó.

Mặc dù các tổ chức này cung cấp dữ liệu đó “miễn phí”, nhưng chúng ta trả giá bằng cách cung cấp dữ liệu của chúng ta, sau đó họ bán dữ liệu này để thu lợi nhuận.

Sau đó, các công ty có quyền kiểm soát thông tin đó, biết người dùng của họ thích mua gì, họ có bao nhiêu tiền và họ biết ai. Sự kiểm soát đó cũng có nghĩa là họ có thể lấy nó đi.

Hãy đến với Web 3.0, nơi việc sử dụng DApp không phải trả giá bằng quyền riêng tư.

Thay vào đó, người dùng có thể chọn chỉ chia sẻ thông tin được yêu cầu, chẳng hạn như một cuộc kiểm tra y tế hoặc một khoản vay, và chọn ai sẽ nhìn thấy nó và trong thời gian bao lâu.

Các công ty cũng có thể trả tiền cho quyền truy cập này, đảm bảo rằng người dùng cũng thu được lợi nhuận từ nó. Ngoài ra còn có vấn đề về lòng tin.

Trong thế giới mà các công ty lớn được gọi là bảo mật cao đang làm rò rỉ tên người dùng, email và mật khẩu, thật khó để tin tưởng hoàn toàn vào bất kỳ ai.

Nhược điểm của DApps

Mặc dù các ứng dụng phi tập trung có thể cho thấy một tương lai không còn các tập đoàn, nhưng hiện tại có một số vấn đề lớn mà ngành đang nỗ lực giải quyết.

Đầu tiên, việc thiếu cơ quan trung tâm có thể đồng nghĩa với việc cập nhật và thay đổi nền tảng chậm hơn. Rốt cuộc, một bên có thể chỉ cần cập nhật ứng dụng của họ khi họ muốn.

Tuy nhiên, một DApp đòi hỏi sự đồng thuận của đa số từ ban quản trị – ngay cả đối với một bản sửa lỗi nhỏ.

Quá trình này có thể mất vài tuần hoặc thậm chí vài tháng khi người dùng tranh luận về ưu và nhược điểm của bất kỳ cải tiến nào.

Ngoài ra, DApps yêu cầu cơ sở người dùng có quy mô hợp lý để hoạt động bình thường. Họ cần các nút, ban quản trị và người dùng chỉ để tương tác với nó.

Tuy nhiên, việc truy cập DApp có thể khá khó khăn trong giai đoạn đầu này và nhiều người không nhận thấy sự hỗ trợ mà họ cần.

Trong tương lai, việc truy cập DApp có thể chỉ cần tải xuống. Nhưng hiện tại, người dùng phải tải xuống trình duyệt hỗ trợ DApp, gửi tiền điện tử được yêu cầu đến ví và tương tác từ đó.

Mặc dù người dùng hiểu biết về công nghệ sẽ không gặp vấn đề gì với điều này, nhưng đại đa số mọi người sẽ không biết bắt đầu từ đâu.

DApps trên thế giới

DApps trong thế giới tài chính dường như không có trí tuệ, nhưng chúng thực sự có thể đổi mới trong tất cả các ngành. Hãy cùng xem xét ở qua một số lợi ích trong các ngành như tài chính, truyền thông xã hội, trò chơi….

Tài chính

Những người cho vay và đi vay có thể sử dụng DApps để thực hiện công việc kinh doanh của họ.

Với ngân hàng, người cho vay kiếm mức lãi suất nhất định dựa trên số tiền họ tiết kiệm được. Một người tiết kiệm càng nhiều thì ngân hàng cho vay càng nhiều và cả hai bên càng có lãi về mặt tiền lãi.

Dapps tài chính (nguồn: Cointelegraph)
Dapps tài chính (nguồn: Cointelegraph)

Tuy nhiên, ngân hàng, hoạt động như một thực thể tập trung, thực hiện một khoản cắt giảm lớn hơn những gì người cho vay có thể muốn, chỉ đơn giản là cung cấp không gian để lưu trữ tiền.

Trên DApp, người cho vay hưởng 100% tiền lãi vì không có trung gian thanh toán.

Ngoài có quyền kiểm soát nhiều hơn đối với các khoản vay, họ còn đồng thời kiếm được token từ nền tảng mà họ chọn để cho vay.

Đối với người đi vay, họ có nhiều quyền lợi hơn về lãi suất phải trả cũng như thời gian trả.

Thật vậy, một số nền tảng cho phép người vay mất vài tháng hoặc thậm chí nhiều năm để trả lãi, giả sử họ đáp ứng ngưỡng thanh toán tối thiểu.

Người đi vay cũng có thể thảo luận về tỷ lệ với người cho vay, đảm bảo đưa ra quyết định công bằng cho cả hai bên liên quan.

Khi tất cả được nói và thực hiện, giao dịch được có thể xảy ra ngay lập tức nhờ công nghệ hợp đồng thông minh.

Không cần phải có sự tham gia của luật sư và các bên thứ ba khác làm cho quá trình xác nhận mất nhiều thời gian hơn và với chi phí lớn hơn cho cả hai bên.

Truyền thông xã hội

Người dùng được hưởng lợi rất nhiều từ các DApp mạng xã hội. Trước hết, không có ai kiểm duyệt các bài đăng, nghĩa là có quyền tự do ngôn luận.

Tuy nhiên, nếu một số bài đăng trở thành vấn đề, cộng đồng có thể bỏ phiếu yêu cầu gỡ chúng xuống.

Những người có ảnh hưởng (influencer) cũng có thể kiếm được nhiều tiền hơn.

Trên các nền tảng truyền thống như Twitter, công ty kiếm được nhiều lợi nhuận nhất từ ​​các dòng tweet phổ biến.

Nó thu được doanh thu quảng cáo từ tất cả các lượt truy cập trang web và tác giả không nhận được gì đồng bạc nào cả.

Các DApp mạng xã hội có thể có hệ thống tính tiền tích hợp sử dụng token của mình và người dùng có thể chạy quảng cáo và kiếm đầy đủ các khoản thanh toán của họ, thay vì một công ty ăn mất một phần.

Gaming

Gaming luôn là một trường hợp sử dụng DApp thú vị. Hiện tại, các trò chơi yêu cầu hàng chục giờ đầu tư để phát triển một nhân vật – có thể đầu tư bằng tiền thật – chỉ để nhân vật ngồi đó và mục rữa khi người chơi tiếp tục.

Dapps Gaming (ảnh: Cointelegraph)
Dapps Gaming (ảnh: Cointelegraph)

DApps mang đến một giải pháp thú vị hơn về mặt giá trị. Lấy một trò chơi như CryptoKitties chẳng hạn.

Người chơi có được một tài sản mã hóa (tokenized asset), trong trường hợp này là một con mèo. Con mèo đó sau đó lớn lên theo thời gian, tăng giá trị nếu được nuôi dạy đúng cách.

Sau đó, người dùng có thể bán con mèo đó với bất kỳ giá nào họ muốn, giả sử sẽ có người trả tiền cho nó.

Thêm vào đó, một số con mèo có khả năng sinh sản với những con mèo khác, tạo ra một con mèo thậm chí còn hiếm hơn, có giá trị hơn.

Người chơi có thể buôn bán hoặc thu thập mèo, làm bất cứ điều gì họ muốn với những vật nuôi được mã hóa này. Đầu tư thời gian của họ trở nên thực sự có giá trị.

Bây giờ không có nhiều, nhưng hãy tưởng tượng khái niệm đó trong một tiêu đề hấp dẫn hơn với hàng giờ chơi. Chơi game toàn thời gian có thể là tương lai của chúng ta.

Bầu chọn và quản trị

Trong hầu hết các trường hợp, bỏ phiếu là một quá trình đau đớn. Nó thường bao gồm các bước xác nhận khác nhau – một số không thể tiếp cận được đối với những công dân không có nhà ở hoặc những người đang gặp vấn đề khác.

Đó là chưa kể đến hoạt động giả mạo và bất hợp pháp tương tự.

DApp bầu chọn có thể mở ra quy trình cho tất cả mọi người nhờ vào hợp đồng thông minh.

Về cơ bản, cộng đồng có thể bầu chọn cho một danh sách các đề xuất. Sau đó, họ có thể thiết lập khung thời gian, chẳng hạn như 24 giờ, để người dùng “đặt” phiếu bầu của họ bằng token. Điều này mở ra sự tham gia cho tất cả mọi người, cho phép mọi người bỏ phiếu ẩn danh tại đó.

Các phiếu bầu được lưu trữ trong một mạng phi tập trung, làm cho chúng không thể thay đổi và không thể làm giả.

Ngoài ra, các hợp đồng thông minh có thể thưởng cho những người bỏ phiếu bằng một token phù hợp cho những nỗ lực của họ, khuyến khích nhiều người bỏ phiếu hơn bao giờ hết.

Gây quỹ và quảng cáo

Nhiều người dùng sử dụng trình chặn quảng cáo khi duyệt web. Đây rõ ràng là một nỗi đau đối với các trang web đang cố gắng tạo ra doanh thu, nhưng có thể hiểu được ở một số khía cạnh vì quảng cáo đã trở nên khá khó chịu theo nhiều cách.

DApp trình duyệt có thể sửa chữa điều này.

Khi người dùng duyệt web, họ làm như vậy với trình chặn quảng cáo và trình theo dõi tích hợp trình duyệt, kiếm tiền điện tử trong quá trình đó.

Giờ đây, khi người dùng tìm thấy người sáng tạo và trang web mà họ muốn ủng hộ, họ có thể chọn cho phép đóng góp.

Điều này có nghĩa là người dùng duyệt web càng lâu thì họ càng trả nhiều tiền hơn cho trang web đó theo thời gian. Người dùng thậm chí có thể bật quảng cáo cho các trang web cụ thể đó, giúp họ nhiều hơn về lâu dài.

Quyền riêng tư là tên của trò chơi ở đây. Người dùng chọn người có thể theo dõi họ, bảo vệ thông tin của họ và vẫn đóng góp cho các nền tảng cần tiền. Đó là một tình huống đôi bên cùng có lợi.

Nguồn: Cointelegraph

Categories
Dev's Corner

Future of Work là gì? 14 Lý do cho thấy Future of Work đang diễn ra

Tất cả chúng ta đều đang chờ đợi future of work (tương lai công việc) sẽ xảy đến, và nó đã đến nhanh hơn dự kiến. Đại dịch vừa qua đã định hình lại hoàn toàn cách chúng ta thực hiện công việc và giao tiếp với đồng nghiệp.

Trong bài này, bạn sẽ tìm hiểu thêm về các yếu tố chính đang thúc đẩy Future of Work, cũng như học cách thích nghi với cách làm việc mới.

Remote Work ở Mỹ tăng từ 31 lên 62%
Remote Work ở Mỹ tăng từ 31 lên 62%

“Future of Work” rốt cuộc nghĩa là gì?

Ngày càng nhiều các nghiên cứu về future of work đã và đang xuất hiện trong thế giới kinh doanh. Các nhà tuyển dụng trên khắp thế giới đang cố gắng dự đoán future of work sẽ như thế nào và họ có thể thích ứng với nó ra sao.

Thị trường lao động có thể sẽ trải qua những biến đổi lớn trong những năm và thập kỷ tới.

Tuy nhiên, bất chấp sự phổ biến của chủ đề này, vẫn chưa có định nghĩa được chấp nhận rộng rãi về “future of work” bao gồm chính xác điều gì và những động lực phù hợp nhất là gì.

Nhìn chung, các doanh nghiệp đang cố gắng hiểu rõ hơn về sự trỗi dậy của công nghệ và toàn cầu hóa sẽ tác động như thế nào đến cách nhân viên của họ làm việc, cách thức nó sẽ định hình lại hoạt động Quản lý nguồn nhân lực và những thay đổi sẽ có tác động như thế nào đến cách hoạt động của các công ty.

Sự thay đổi cấp tốc hướng tới Future of Work

Chỉ vài tháng trước, mọi người đều bàn tán về việc future of work sẽ hoàn toàn là kỹ thuật số.

Ngày nay, kỹ thuật số là một bình thường mới đối với các tổ chức trên toàn cầu buộc phải chuyển đổi hoàn toàn và số hóa các quy trình kinh doanh của họ.

Đại dịch đã có tác động to lớn đến môi trường làm việc trực tuyến và do đó, thúc đẩy sự chuyển dịch nhanh hơn hướng tới tương lai của công việc.

Hơn nữa, một số chuyên gia tin rằng thế giới việc làm sẽ không còn như trước nữa.

Virus coronavirus đã thay đổi cơ bản mọi khía cạnh của hoạt động kinh doanh – từ việc loại bỏ tuyến đường đi làm đến cách chúng ta tương tác và cộng tác với đồng nghiệp của mình.

Nghiên cứu từ Hiệp hội Quản lý Nguồn nhân lực (SHRM) cho thấy:

  • 71% người sử dụng lao động đang gặp khó khăn trong việc điều chỉnh theo remote work (làm việc từ xa)
  • 65% nói rằng duy trì tinh thần của nhân viên là một thách thức và hơn một phần ba đang gặp khó khăn với văn hóa công ty.
71% nhà tuyển dụng gặp khó khi điều chỉnh sang remote work
71% nhà tuyển dụng gặp khó khi điều chỉnh sang remote work

14 Xu hướng ảnh hưởng đến Future of Work

Mặc dù chúng ta không mong đợi future of work đến nhanh như vậy, nhưng việc chuyển sang làm việc từ xa và sự trỗi dậy của các không gian làm việc ảo đang buộc chúng ta phải thích ứng với những thay đổi này.

Đối với những người sử dụng lao động quyết định duy trì không gian làm việc tập trung của họ, văn phòng của tương lai sẽ được thiết kế để giữ mọi người kết nối trong khi họ ở xa nhau.

Chúng ta đang kỳ vọng chứng kiến ​​sự gia tăng của các không gian làm việc ảo để tạo điều kiện cho nhân viên đạt được thành công và duy trì mức năng suất của họ cao.

Giờ hãy xem xét một số xu hướng mới nổi đã thúc đẩy future of work diễn ra nhanh hơn dự kiến.

1. Remote work là phương thức làm việc bình thường mới

Bạn có nhớ câu nói: “Tương lai công việc là làm việc từ xa!” Thật không thể tin được khi thấy tương lai công việc thực sự trở thành bình thường mới nhanh như thế nào, phải không?

Lúc ban đầu của cuộc khủng hoảng, nhiều tổ chức nghĩ rằng họ không thể xử lý công việc từ xa vì các hoạt động Quản lý nhân tài đã hoàn toàn bị gián đoạn. Tuy nhiên, điều này không đúng vì nhiều trong số họ đang cân nhắc duy trì phương án làm việc từ xa sau đại dịch.

68% giám đốc tài chính cho biết việc chuyển đổi do khủng hoảng sang làm việc từ xa sẽ giúp công ty của họ tốt hơn về lâu dài. Hiện tại, 40% công ty cho biết họ đang có kế hoạch đẩy nhanh việc áp dụng các phương thức làm việc mới.

Ngoài ra, nhiều tổ chức hiểu rằng, với việc quay trở lại nơi làm việc, cách chúng tôi làm việc vẫn sẽ khác đáng kể so với cách đây vài tháng.

Điều quan trọng là người sử dụng lao động phải thích ứng với các hành vi mới của nhân viên và phương thức làm việc mới phù hợp nhất với nơi làm việc của họ.

2. Chuyển đổi số tăng tốc

Nhiều tổ chức sẽ nhớ năm 2020 là năm của chuyển đổi kỹ thuật số (digital transformation). Ngày nay, số hóa cả quy trình bên trong và bên ngoài là điều cần thiết để các doanh nghiệp duy trì hoạt động trơn tru nhất có thể.

Các công cụ và giải pháp phần mềm dành cho giao tiếp của nhân viên luôn đứng đầu danh sách khi nói đến việc triển khai các giải pháp kỹ thuật số mới tại nơi làm việc. Các giải pháp như vậy là cần thiết để giữ cho nhân viên được kết nối và thông báo những điều quan trọng và hơn bao giờ hết, các thông tin cập nhật thường xuyên của công ty cũng như từ chính quyền địa phương.

Tuy nhiên, vì chuyển đổi kỹ thuật số chưa bao giờ là một quá trình dễ dàng, nhiều tổ chức đang vật lộn để điều chỉnh nơi làm việc của họ và nhận được sự ủng hộ của nhân viên khi áp dụng các công nghệ mới tại nơi làm việc. Vì vậy, giao tiếp đúng mực với nhân viên đóng một vai trò cực kỳ quan trọng trong quá trình này.

Chuyển đổi số trong những tổ chức có sự giao tiếp tốt giữa nhân viên có khả năng thành công gấp 3 lần
Chuyển đổi số trong những tổ chức có sự giao tiếp tốt giữa nhân viên có khả năng thành công gấp 3 lần

3. Tầm quan trọng ngày càng tăng của truyền thông nội bộ

Khi nói đến future of work, cách nhân viên giao tiếp luôn là một chủ đề quan trọng.

Điều này thậm chí còn phù hợp hơn vào thời điểm hiện tại khi chúng ta đã chuyển sang làm việc từ xa.

Các tổ chức đã nhận thức được tầm quan trọng của giao tiếp nội bộ trong việc giữ cho nhân viên an toàn, năng suất và có động lực để hoàn thành công việc của mình.

Do đó, các chuyên gia truyền thông nội bộ hiện được coi là một trong những đối tác kinh doanh chiến lược quan trọng nhất.

5 Cách tăng năng suất trên không gian làm việc số bằng giao tiếp nội bộ
5 Cách tăng năng suất trên không gian làm việc số bằng giao tiếp nội bộ

Khả năng cung cấp thông tin liên quan đến đúng nhân viên vào đúng thời điểm đã trở thành điều bắt buộc.

Có một cách thức thông báo cho nhân viên về các cập nhật quan trọng theo thời gian thực là một điều hoàn toàn cần thiết.

Việc đảm bảo các nhân viên có cách để duy trì kết nối với nhau dù họ đang ở đâu hiện là một trong những ưu tiên chính của người sử dụng lao động.

Tạo một nơi tập trung để nhân viên có thể truy cập tất cả các tin nhắn, thông tin liên lạc, cập nhật và tài liệu quan trọng là cách duy nhất để đảm bảo nhân viên không bao giờ bỏ lỡ các cập nhật quan trọng của công ty và không mất thời gian vào các nhiệm vụ không cần thiết.

Nhân viên mong đợi tìm thấy thông tin họ quan tâm trên các kênh truyền thông xã hội yêu thích của họ và tương tự như vậy đối với giao tiếp tại nơi làm việc.

Họ muốn thông tin tìm thấy họ, chứ không phải ngược lại. Mặc dù đây có thể được coi là cách làm việc của tương lai, nhưng đây là hiện thực!

Nhân viên trung bình mất 2.5 tiếng mỗi ngày để tìm thông tin
Nhân viên trung bình mất 2.5 tiếng mỗi ngày để tìm thông tin, tức là phí hoài 1 tuần mỗi tháng

4. Vai trò thay đổi của lãnh đạo

Trước đó, không nhiều tổ chức đã coi lãnh đạo là một chủ đề quan trọng của future of work.

Chúng tôi chủ yếu tập trung vào cách AI và công nghệ khác sẽ thay thế một số công việc của con người.

Tuy nhiên, giờ đây, chúng ta có thể thấy rằng vai trò của lãnh đạo trong việc tạo ra không gian làm việc lành mạnh là vô cùng quan trọng.

Trong vài tháng qua, chúng ta đã nghe và đọc rất nhiều về tầm quan trọng của khả năng lãnh đạo trong những thời khắc đầy thử thách.

Khi các nhà lãnh đạo đóng vai trò then chốt trong việc xây dựng niềm tin ở nơi làm việc và gắn kết nhân viên với các mục tiêu kinh doanh, vai trò của họ đã trở nên cực kỳ quan trọng trong thời kỳ chưa từng có này.

85% nhân viên thấy có động lực khi được cập nhật thông tin về công ty thường xuyên
85% nhân viên thấy có động lực khi được cập nhật thông tin về công ty thường xuyên

Do đó, chúng ta mong đợi được thấy các công ty tái khẳng định sự cần thiết của sự lãnh đạo mạnh mẽ để giảm thiểu hậu quả của đại dịch và các mối đe dọa trong tương lai.

Một nhà lãnh đạo tuyệt vời, thông qua giao tiếp cởi mở, minh bạch và chân thành, có thể giúp nhân viên và các bên liên quan khác vượt qua những thời điểm chẳng hạn như khủng hoảng.

Các tổ chức đã nhận ra tầm quan trọng của giao tiếp lãnh đạo cũng đã xoay sở để thích ứng tốt hơn với tương lai công việc.

5. Sự trỗi dậy của cộng tác xã hội

Sự cộng tác xã hội giờ đây trở nên quan trọng hơn bao giờ hết. Nhân viên muốn duy trì kết nối, họ mong đợi sự minh bạch hoàn toàn.

Họ muốn có thể tham gia vào các cuộc trò chuyện hai chiều hàng ngày của công ty, họ muốn được nghe và chia sẻ những ý tưởng của riêng mình với người khác.

3 Điều mà thế hệ Millenials muốn
3 Điều mà thế hệ Millenials muốn

Hiện nay, khi chúng ta đang có khoảng cách về mặt xã hội, nhu cầu về các công cụ cộng tác xã hội tại nơi làm việc đã tăng lên đáng kể.

Sự tương tác giữa các nhân viên từ tất cả các bộ phận cần phải liền mạch, trực quan và dễ dàng. Nếu không, nhân viên của bạn có thể cảm thấy mất kết nối, bị cô lập và do đó, ít có động lực và sự gắn bó trong công việc.

6. Đào tạo lại kỹ năng và chia sẻ kiến ​​thức

Theo Forbes, các ứng dụng doanh nghiệp ngày nay có thể có độ chính xác dự đoán từ 80% trở lên. Chúng ta cần quan tâm đến 20% còn lại và bao quát cho “dặm đường cuối cùng” – quyết định thực tế.

Do đó, con người làm việc cùng với máy móc sẽ rất quan trọng, gia tăng sự đồng cảm, khả năng giải quyết vấn đề sáng tạo và khả năng phán đoán dựa trên kết quả đầu ra của AI.

Đây là lý do tại sao các nhà lãnh đạo doanh nghiệp cần bắt đầu phát triển các chức năng công việc và đào tạo lại nhân viên để họ chuẩn bị cho future of worki.

Tuy nhiên, một nghiên cứu cho thấy vẫn còn nhiều việc phải làm liên quan đến việc đào tạo lại kỹ năng trong các tổ chức.

53% giám đốc điều hành cấp cao nói rằng công ty của họ cung cấp các chương trình đào tạo lại kỹ năng cho người lao động.

Tuy nhiên, chỉ có 35% nhân viên cho biết các lựa chọn như vậy có sẵn trong tổ chức của họ.

Chỉ 35% nhân viên cho biết công ty họ có chương trình Reskilling
Chỉ 35% nhân viên cho biết công ty họ có chương trình Reskilling

Với những chương trình đào tạo lại kỹ năng như vậy, điều rất quan trọng là nhân viên phải có khả năng dễ dàng chia sẻ kiến ​​thức với đồng nghiệp. Kết quả là hợp tác và thành công hơn.

Nhân viên học hỏi tốt hơn từ các đồng nghiệp, những người có thể học thông qua ngữ cảnh công việc hàng ngày.

7. Sự tập trung của các kênh truyền thông

Giao tiếp kinh doanh đã phát triển vượt bậc trong vài năm qua. Các công nghệ mới đã được giới thiệu và chúng đã hoàn toàn cách mạng hóa giao tiếp kinh doanh.

Nhắn tin tức thì, ứng dụng trò chuyện, phần mềm hội nghị video, mạng nội bộ, chia sẻ tài liệu và những thứ khác đã xuất hiện, giúp cho việc giao tiếp trở nên nhanh chóng và hiệu quả.

Tuy nhiên, mặc dù công nghệ đã thúc đẩy giao tiếp kinh doanh một cách hiệu quả, nó cũng đi cùng với những thách thức riêng.

Mặc dù những hình thức giao tiếp hiện đại có thể nâng cao hiệu quả, nhưng hệ sinh thái giao tiếp tại nơi làm việc đang trở nên phức tạp đến mức có thể trở nên phản tác dụng.

Có quá nhiều các kênh giao tiếp khác nhau có thể gây ra sự nhầm lẫn giữa nhân viên và làm giảm năng suất của họ vì họ đang sử dụng nhiều ứng dụng giao tiếp khác nhau.

Điều này thúc đẩy nhu cầu về một phương tiện liên lạc tập trung và hợp lý hơn. Nhà tuyển dụng nên chọn các giải pháp phần mềm liên lạc nội bộ hợp nhất các kênh liên lạc khác nhau.

8. Không gian làm việc thân thiện với thiết bị di động

Lấy ví dụ, ngành bán lẻ và chăm sóc sức khỏe.

Vào thời điểm bắt đầu đại dịch, người sử dụng lao động trong những ngành đó không thể thông báo ngay lập tức cho nhân viên làm việc từ xa của họ về những tin tức quan trọng và cập nhật của công ty, biết rằng sức khỏe của nhân viên của họ đang gặp nguy hiểm.

Vì lý do đó, việc tạo ra những nơi làm việc thân thiện với thiết bị di động không được coi là future of work nữa, nó là present of work (hiện tại của công việc). Nó là bình thường mới.

Ngày nay, hầu hết các tổ chức, đặc biệt là những tổ chức có nhân viên làm việc từ xa, biết rằng hỗ trợ nơi làm việc thân thiện với thiết bị di động là cách duy nhất để đảm bảo an toàn và năng suất cho nhân viên của họ.

9. Tinh thần và sức khỏe của nhân viên được đặt lên hàng đầu

Theo nghiên cứu của SHRM, trên thang điểm “không bao giờ”, “hiếm khi”, “thỉnh thoảng” và “thường xuyên”, gần một phần tư nhân viên cho biết họ “thường xuyên” cảm thấy thất vọng, chán nản hoặc tuyệt vọng.

Vì những kết quả này đang khiến các nhà tuyển dụng trên toàn thế giới lo lắng, các chủ đề xung quanh tinh thần và sức khỏe của nhân viên hiện đã vượt qua những chủ đề liên quan đến động lực, sự gắn bó và năng suất.

Hơn nữa, gần một nửa số người lao động nói rằng nơi làm việc của họ có tác động tiêu cực đến sức khỏe tâm thần tổng thể.

Do dịch bệnh mà chúng ta đang trải qua, các tổ chức đang cố gắng tìm cách để giới thiệu các sáng kiến ​​về phúc lợi cho nhân viên mới tại nơi làm việc.

Xu hướng này là điều mà không nhiều người mong đợi trở thành một trong những xu hướng future of work quan trọng nhất.

10. Ý nghĩa công việc

Một nghiên cứu của PwC cho thấy 79% các nhà lãnh đạo nghĩ rằng mục đích là trọng tâm của sự thành công trong kinh doanh và Gallup phát hiện ra rằng 41% nhân viên muốn biết công ty đại diện cho điều gì.

41% nhân viên muốn biết công ty đại diện cho điều gì
41% nhân viên muốn biết công ty đại diện cho điều gì

Nhân viên được thúc đẩy bởi ý thức về mục đích chung, nghĩa là họ cần có ý thức mạnh mẽ về phần của mình trong “bức tranh lớn hơn” để mang lại kết quả tốt nhất cho nơi làm việc.

Nhân viên muốn trở thành một phần của một cái gì đó lớn hơn. Họ muốn đóng góp cho thế giới và là những người đang thay đổi nó.

Điều này đặc biệt đúng đối với những nhân viên thuộc thế hệ GenZ, những người mà ý nghĩa của công việc là hàng đầu trong sự nghiệp và lựa chọn công việc của họ.

Tuy nhiên, thật đáng buồn khi thấy rằng nhiều nhân viên vẫn không biết tổ chức của họ đại diện cho điều gì và họ không hiểu công việc của chính họ đóng góp như thế nào vào sự thành công của công ty.

Nhiều người trong số họ không nhận thức được các hành động trách nhiệm xã hội và doanh nghiệp khác nhau mà tổ chức của họ thực hiện.

Điều này cần phải thay đổi và ở đây vai trò của lãnh đạo và truyền thông nội bộ là rất quan trọng. Họ là những người nên liên tục nhắc nhở nhân viên về những sáng kiến ​​có ý nghĩa của công ty cũng như về tầm quan trọng của những đóng góp của nhân viên.

11. Kỹ năng cứng so với kỹ năng mềm

Theo ước tính của McKinsey, chỉ có 5% công việc có thể được tự động hóa hoàn toàn bằng công nghệ.

Do đó, người ta tin rằng, trong tương lai, người lao động sẽ dành nhiều thời gian hơn cho các hoạt động mà máy móc không có khả năng thực hiện, chẳng hạn như quản lý con người, áp dụng kiến ​​thức chuyên môn và giao tiếp với người khác.

Nhờ công nghệ, con người sẽ dành ít thời gian hơn cho các hoạt động vật lý, lặp đi lặp lại và có thể dự đoán được cũng như thu thập và xử lý dữ liệu.

Đây là lý do tại sao chúng tôi đã nhận thấy một sự thay đổi lớn về nhu cầu về các kỹ năng con người khác nhau.

Các kỹ năng xã hội và tình cảm cũng như khả năng nhận thức nâng cao hơn, chẳng hạn như suy luận logic và sáng tạo đang được yêu cầu nhiều hơn bao giờ hết.

91% nhân viên cho biết lãnh đạo của họ thiếu kỹ năng truyền đạt
91% nhân viên cho biết lãnh đạo của họ thiếu kỹ năng truyền đạt

12. Tự kinh doanh và kinh tế gig hay sự an toàn công việc

Tất cả chúng ta đều biết rằng sự phát triển của nền kinh tế gig đã kéo theo sự gia tăng của trào lưu tự kinh doanh (self-employment), điều này đã và đang định hình lại future of work.

Chúng ta đang ở năm 2022. Vậy tình hình hiện tại là gì?

Công việc được thực hiện bởi những người lao động độc lập hầu như có liên quan đến sự an toàn công việc thấp đáng kể cũng như khả năng linh hoạt cao cho phép người lao động kiểm soát sự cân bằng giữa công việc và cuộc sống của họ.

Chúng ta đang thấy gì hôm nay? Các nhà tuyển dụng đang giới thiệu các điều kiện làm việc linh hoạt hơn nhiều, và an toàn việc làm đang trở thành một trong những đặc điểm lớn nhất mà nhà tuyển dụng có thể cung cấp. Vì vậy, hãy xem nền kinh tế gig tiếp tục phát triển như thế nào.

13. Quản lý thay đổi liên tục, linh hoạt (agile) và đổi mới

Các cuộc khủng hoảng như COVID-19 đòi hỏi các công ty phải nhanh nhẹn và sáng tạo hơn để có thể nhanh chóng thích ứng với sự thay đổi của môi trường làm việc.

Chúng ta từng nói rằng future of work sẽ linh hoạt hơn rất nhiều. Đúng là thế.

Không thể thích ứng với sự thay đổi và đưa ra quyết định nhanh chóng có thể ảnh hưởng nghiêm trọng đến năng suất của tổ chức và nhân viên.

Hơn nữa, để linh hoạt hơn, nhiều nhà tuyển dụng cũng đã bắt đầu trao quyền nhiều hơn cho nhân viên của họ với hy vọng thúc đẩy tinh thần khởi nghiệp.

Lý do thất bại của những thay đổi mang tính tổ chức
91% nhân viên cho biết lãnh đạo của họ thiếu kỹ năng truyền đạt

Để linh hoạt hơn, các tổ chức cần phải suy nghĩ lại về truyền thông nội bộ và thay đổi các chiến lược quản lý.

Việc trở thành một tổ chức linh hoạt không thể xảy ra trong các công ty có cấu trúc bậc thang, thông tin sai lệch hoặc thiếu liên lạc nội bộ, cũng như trong các tổ chức không biết cách thúc đẩy thay đổi.

14. Hoạt động xã hội của nhân viên gia tăng

Ngày nay, mọi người không muốn im lặng mà muốn chia sẻ tiếng nói của mình.

Vì lý do đó, chúng ta có thể thấy xu hướng hoạt động xã hội ngày càng tăng của nhân viên, nơi các nhân viên hiện đang cùng nhau biểu tình và phản đối công ty dựa trên các giá trị chính trị và xã hội của họ.

38% nhân viên cho biết họ đã lên tiếng ủng hộ hoặc chỉ trích hành động của người sử dụng lao động về một vấn đề gây tranh cãi ảnh hưởng đến xã hội.

Vậy, các tổ chức có thể làm gì?

Người sử dụng lao động cần hiểu rằng các nhà hoạt động xã hội cực kỳ ồn ào và họ có khả năng làm tổn thương nghiêm trọng hoặc nâng cao danh tiếng của tổ chức.

Các tổ chức cần liên tục nỗ lực xây dựng lòng tin ở nơi làm việc, tăng tính minh bạch, khuyến khích nhân viên sống theo các giá trị cốt lõi của công ty và tất nhiên, điều chỉnh các nỗ lực giao tiếp bên trong và bên ngoài.

Khi bạn làm điều này, bạn sẽ có nhiều nhà hoạt động ủng hộ, họ có thể trở thành đại sứ thương hiệu có giá trị nhất của bạn.

Làm thế nào để chuẩn bị cho Future of Work?

Không có câu trả lời đơn giản nào cho câu hỏi này cả. Nếu có, mọi người sẽ làm theo cùng một công thức và thành công. Điều mà các tổ chức cần hiểu và không bao giờ được lơ là, đó là future of work đã ở ngay đây.

Điều quan trọng nhất mà các nhà tuyển dụng cần nhớ là việc tạo ra và hình thành trải nghiệm tích cực cho nhân viên đang trở thành điều bắt buộc.

Các tổ chức cần tìm cách thích ứng với nhu cầu và mong muốn của nhân viên vì nhân viên là người lựa chọn người sử dụng lao động của họ.

Khi tạo ra một nền văn hóa lấy con người làm trung tâm như vậy, hãy ghi nhớ:

  • Tạo văn hóa minh bạch và giao tiếp cởi mở
  • Làm cho công việc có ý nghĩa hơn đối với nhân viên
  • Tạo điều kiện cho nhân viên thành công, phát triển và thăng tiến sự nghiệp
  • Triển khai các công nghệ cho phép nhân viên duy trì kết nối và làm việc hiệu quả
  • Có kế hoạch đào tạo lại kỹ năng và chia sẻ kiến ​​thức trong tổ chức
  • Khuyến khích các nhà lãnh đạo xây dựng mối quan hệ chặt chẽ với đội nhóm
  • Tập trung vào sức khỏe nhân viên
  • Tạo môi trường làm việc linh hoạt

Nguồn: Haiilo

Categories
Dev's Corner

AI Engineer là gì? Cách bắt đầu sự nghiệp AI Engineer

Các doanh nghiệp có thể sử dụng một lượng lớn dữ liệu mà họ tạo ra mỗi ngày để cải thiện và đơn giản hóa các tác vụ thường xuyên, diễn ra mỗi ngày. Với hệ thống A.I chuẩn chỉnh, các công ty có thể đem những tác vụ này ra khỏi đội ngũ của mình để họ có thể tập trung vào công việc quan trọng hơn. Các công nghệ như nhận dạng giọng nói, quản lý quy trình kinh doanh và xử lý hình ảnh chỉ là một số trong những công nghệ A.I thay đổi thế giới.

Các công ty cần AI Engineer (kỹ sư AI) để thiết lập các hệ thống này, duy trì và điều chỉnh chúng theo những thay đổi trong hoạt động kinh doanh. Trong bài viết này, chúng ta sẽ khám phá những gì AI Engineer làm, loại kỹ năng họ cần và cách bạn có thể bắt đầu con đường sự nghiệp AI Engineer của mình.

AI Engineer là gì?
AI Engineer là gì?

A.I là gì?

A.I (artificial intelligence), hay trí tuệ nhân tạo, sử dụng máy tính và máy móc để mô phỏng cách trí óc con người vận hành để hoàn thành các tác vụ giải quyết vấn đề và ra quyết định.

Nó kết hợp các tập dữ liệu mạnh mẽ mà chúng ta tạo ra hàng ngày với khoa học máy tính để đạt được mục tiêu này ở dạng đơn giản nhất.

Trong A.I, máy móc học hỏi kết quả của các hành động cụ thể bằng cách thu thập hàng núi dữ liệu quá khứ.

Sau đó, chúng sử dụng những hiểu biết sâu sắc có được từ quá trình này để đưa ra quyết định về các hành động trong tương lai và giải quyết vấn đề.

Đồng thời, dữ liệu về các quyết định của máy cũng được thu thập và được sử dụng để sửa chữa và hoàn thiện các hành động và quyết định trong tương lai.

Khác biệt giữa AI và Machine learning

Học máy (machine learning) và trí tuệ nhân tạo thường được gộp chung vào cùng một định nghĩa, nhưng chúng không nhất thiết giống nhau.

“Trí tuệ nhân tạo có thể được mô tả là khi máy móc thực hiện các nhiệm vụ theo cách thông minh, dựa trên các quy tắc đã đặt ra để giải quyết các vấn đề nhất định. Trí tuệ nhân tạo, hay A.I., đưa ra quyết định, học hỏi và giải quyết các vấn đề tương tự như cách con người làm.

Mặt khác, machine learning là tập hợp con của A.I. Đó là khi chúng ta cung cấp dữ liệu cho máy móc và để chúng tự học từ dữ liệu đó mà không được lập trình rõ ràng. Các mô hình học máy học hỏi từ dữ liệu và cố gắng cải thiện các dự đoán của nó theo thời gian”.

Vì vậy, học máy là một tập hợp con của A.I nhưng không phải tất cả A.I đều là học máy. A.I. là một lĩnh vực rộng hơn.

AI Engineer làm gì?

Các kỹ sư A.I phát triển các ứng dụng và hệ thống mới để:

  • Nâng cao hiệu suất và hiệu quả của các quy trình kinh doanh
  • Giúp doanh nghiệp đưa ra quyết định tốt hơn
  • Giảm chi phí
  • Tăng doanh thu và lợi nhuận

Đơn giản mà nói, họ sử dụng kỹ thuật phần mềm và khoa học dữ liệu để nối liền hoạt động kinh doanh với tự động hóa.

AI Engineer làm gì?
AI Engineer làm gì?

Nhiều nhiệm vụ của kỹ sư A.I trùng lặp với nhiệm vụ của Kỹ sư học máy (Machine learning engineer). Một số trách nhiệm của A.I. Kỹ sư bao gồm:

  • Phối hợp với lãnh đạo doanh nghiệp và đội ngũ phát triển phần mềm để xác định những quy trình kinh doanh nào có thể được cải thiện bằng A.I.
  • Tạo và duy trì quá trình phát triển A.I và cơ sở hạ tầng mà nó chạy trên đó.
  • Áp dụng các kỹ thuật máy học để nhận dạng hình ảnh.
  • Áp dụng các kỹ thuật xử lý ngôn ngữ tự nhiên (NLP) vào đọc văn bản và bản ghi âm để lấy thông tin chi tiết và phân tích từ dữ liệu này.
  • Xây dựng và duy trì chatbot tương tác với khách hàng.
  • Phát triển các giải pháp dựa trên trí tuệ nhân tạo bắt chước hành vi của con người để hoàn thành các tác vụ lặp đi lặp lại mà con người hiện đang thực hiện.
  • Xây dựng, đào tạo và hoàn thiện các mô hình học máy.
  • Đơn giản hóa quy trình học máy để các ứng dụng kinh doanh khác có thể tương tác với chúng bằng cách sử dụng API.
  • Xây dựng công cụ đề xuất cho các trang web mua sắm, dịch vụ phát trực tuyến và các ứng dụng khác.
  • Phát triển quy trình dữ liệu giúp quá trình chuyển đổi dữ liệu thô thành dữ liệu có cấu trúc cần cho các quy trình A.I được mượt mà.

Các kỹ năng cần thiết cho AI Engineer

Kỹ năng của AI Engineer
Kỹ năng của AI Engineer

A.I là một lĩnh vực rộng lớn và kỹ sư A.I đòi hỏi các kỹ năng của Kỹ sư phần mềm lẫn kỹ năng của Nhà khoa học dữ liệu. Thậm chí biết toán và thống kê cũng là điểm cộng.

Một kỹ sư A.I cần biết ít nhất một ngôn ngữ lập trình và thường sẽ học nhiều ngôn ngữ trong suốt sự nghiệp của họ. Nhiều công cụ mà các kỹ sư A.I sử dụng để hỗ trợ cho công việc sẽ cần kiến ​​thức về Python, R hoặc Java.

Để xây dựng và làm việc với các mô hình học máy, kỹ sư A.I sư cũng sẽ cần biết các nguyên tắc cơ bản của các framework học máy khác nhau, như TensorFlow, Theano, PyTorch và Caffe. Họ cũng sẽ cần biết cách biến dữ liệu thô thành các đặc tính mà mô hình học máy sử dụng.

Ngoài ra, một kỹ sư A.I phải có kinh nghiệm với nhiều loại mô hình học máy và loại công việc nào họ phù hợp nhất. Các loại này bao gồm:

  • Mạng nơron
  • Mạng nơron lặp lại
  • Thuật toán KNN (K-Nearest Neighbor)
  • GAN (General adversarial neighbor – mạng đối nghịch tạo sinh)
  • Học tập có giám sát
  • Học tập không giám sát
  • Random forest
  • Học tăng cường

Để thực sự tạo ra các mô hình mới và hiểu cách chúng hoạt động, chuyên gia A.I có thể phải biết đại số tuyến tính, xác suất thống kê thay vì sử dụng các mô hình dựng sẵn.

Các chủ đề này giúp bạn hiểu các mô hình Markov ẩn, Naive Bayes, mô hình hỗn hợp Gaussian và phân tích phân biệt tuyến tính – các kỹ thuật được sử dụng trong học máy.

Dữ liệu cũng là một phần quan trọng trong công việc của kỹ sư A.I. Rất nhiều dữ liệu được lưu trữ trong các hệ quản trị cơ sở dữ liệu quan hệ, vì vậy việc có kiến ​​thức cơ bản về SQL, ngôn ngữ của cơ sở dữ liệu là rất hữu ích.

Tuy nhiên, một số dữ liệu này sẽ được lưu trữ trong các kho dữ liệu phi cấu trúc hoặc bán cấu trúc – vì vậy việc biết các công nghệ dữ liệu lớn như Apache Spark, Apache Hadoop, Cassandra và MongoDB là một điểm cộng lớn.

Tuy nhiên, các kỹ sư A.I đòi hỏi nhiều hơn kỹ năng kỹ thuật. Họ cũng phải:

  • Tỉ mỉ và hướng đến chi tiết vì những bất đồng nhỏ trong dữ liệu có thể gây ra sự khác biệt lớn trong các mô hình học máy.
  • Có kỹ năng giao tiếp xuất sắc vì nhiều người mà họ làm việc cùng sẽ không hiểu nhiều về những gì họ làm. Họ sẽ phải giải thích kết quả nhiệm vụ của mình theo cách mà ai cũng có thể hiểu.
  • Tư duy bức tranh lớn đủ giỏi để hiểu nhu cầu kinh doanh và xây dựng các hệ thống A.I mang lại lợi ích cho công ty.

Mức lương của kỹ sư AI

Kỹ sư A.I có thu nhập khá tốt. Mức lương trung bình cho một kỹ sư A.I ở Mỹ là hơn $160,000. Ở các bang như California, mức trung bình lên tới gần 200.000 đô.

Nhu cầu về kỹ sư A.I luôn ở mức cao, vì vậy, kỳ vọng cơ hội việc làm và mức lương sẽ tăng trong tương lai. Cục Thống kê Lao động Hoa Kỳ dự kiến ​​tất cả các công việc của Software Developer sẽ tăng 22% trong thập kỷ tới và bao gồm cả kỹ sư A.I.

Làm thế nào để trở thành AI Engineer?

Đã qua rồi cái thời mà bằng cấp khoa học máy tính hoặc thậm chí bất kỳ bằng cấp đại học nào là điều kiện bắt buộc để trở thành kỹ sư A.I. Đang có nhu cầu rất lớn đối với kỹ sư A.I và các nhà tuyển dụng biết rằng rất nhiều A.I tay nghề cao thậm chí không có lấy tấm bằng nào. Họ làm điều đó vì họ yêu thích công việc.

Lộ trình trở thành AI Engineer
Lộ trình trở thành AI Engineer

Dưới đây là một số bước để bạn tiến nhập vào lĩnh vực này

1. Học hỏi kỹ năng thông qua chương trình đại học, coding bootcamp hoặc tự học

Kỹ sư AI là lĩnh vực thu hút rất nhiều chuyên gia từ nhiều nền tảng giáo dục khác nhau. Mặc dù hầu hết các vị trí ở cấp độ mới vào nghê đều đòi hỏi bằng cử nhân, thế nhưng chuyên ngành cũng tương đối linh hoạt chẳng hạn từ kỹ sư máy tính, hệ thống thông tin máy tính, khoa học dữ liệu và khoa học máy tính. 

Ngoài bằng cấp, bạn có thể phát triển bộ kỹ năng kỹ sư AI qua các bootcamp, như AI / Machine learning bootcamp, data science bootcamp hoặc coding bootcamp. Những chương trình cô đọng này thường rất tốt cho người mới vào nghề và không quá 1 năm là học xong.

Bạn còn có thể phát triển kỹ năng AI bằng cách tự học. Hãy tự mình nghiên cứu về AI và tham gia các lớp machine learning và deep learning. Bạn cũng nên cân nhắc học luôn các ngôn ngữ lập trình phổ biến như Python, Java, C++, R, Prolog, Lisp, Julia.

2. Nhận dự án, thực hành nâng cao kỹ năng và xây dựng portfolio

Nhà tuyển dụng luôn muốn tìm các ứng viên với hồ sơ và portfolio ‘thâm hậu’. Thậm chí lúc ở trường bạn cũng làm được portfolio từ các chương trình hoặc dự án nội bộ.

Portfolio sẽ làm nổi bật nhiều kỹ năng nhưng bạn cũng nên thể hiện khả năng tư duy khỏi khuôn khổ và tạo giá trị cho cộng đồng.

Ngoài hoàn thiện portfolio và gia tăng kinh nghiệm cho mình, hãy tham gia những dự án giúp phát huy ra nhiều kỹ năng. Ví dụ, bạn có thể tìm những dự án chuyên sâu về phân tích, chuyển ngữ…

3. Thực tập

Thực tập rất hữu ích với sinh viên AI engineering. Nhưng cơ hội như thế này là môi trường tốt để có bước chuẩn bị cho sự nghiệp, đào tạo thực tiễn, xây dựng hồ sơ, và kết nối tạo quan hệ. Ngoài phát triển các mối quan hệ mà có thể chuyển thành công việc toàn thời gian, thực tập sinh sẽ có thể thử qua nhiều loại công việc, công ty và chuyên ngành khác nhau.

Cơ hội thực tập tốt nhất trong lĩnh vực AI engineering còn tùy vào từng sinh viên và mục tiêu nghề nghiệp cụ thể của họ. Ví dụ, người học có thể cân nhắc đi sâu vào những chuyên môn phổ biến như smart technology, automotive system, và cybersecurity.

Hãy tập trung vào các kỹ năng AI engineering bạn cần để thỏa mãn mục tiêu dài hạn như lập trình, machine learning và deep learning, xử lý ngôn ngữ hay hình ảnh.

4. Xác định lộ trình sự nghiệp AI scientist

Khi số lượng ứng dụng Ai ngày càng tăng, số lượng công ty và lĩnh vực tuyển kỹ sư AI cũng tăng theo. Không chỉ ngành IT, kỹ sư AI còn làm việc ở cả sản xuất, vận chuyển, chăm sóc sức khỏe, kinh doanh và xây dựng. Họ đi sâu vào các ngành như Rô bốt, Chẩn đoán bệnh, Bảo mật và xe tự hành.

Thậm chí trong những ngành và chuyên môn đó, vai trò kỹ sư Ai cũng có thể khác nhau. Họ có thể làm việc như nhà khoa học nghiên cứu (research scientist) trong AI, kỹ sư rô bốt, lập trình viên hay nhà khoa học machine learning. Họ còn có thể đi sâu vào tương tác con người máy tính, tầm hình con người, hay business intelligence. 

5. Đạt chứng chỉ AI Engineer

Mặc dù bằng cấp hay chứng chỉ không nhất thiết phải có đối với kỹ sư AI, nhưng một chứng chỉ chuyên môn có thể cải thiện đáng kể cơ hội tuyển dụng và thăng tiến. Chúng chứng minh rằng người được chứng nhận đã được đào tạo bài bản, có kinh nghiệm.

Hầu hết các chứng chỉ đều thỏa mãn yêu cầu tối thiểu về giáo dục và kinh nghiệm. Ứng viên cần vượt qua bài kiểm tra để chứng minh trình độ của mình.

Đây là một số chứng chỉ khá tốt dành cho chuyên gia AI

6. Tạo hồ sơ và ứng tuyển

Nhà tuyển nào cũng tìm điều gì đó đặc biệt trong hồ sơ, nhưng luôn có biện pháp để khiến hồ sơ của bạn được chú ý. Các kỹ sư AI cần sửa đổi hồ sơ cho phù hợp với vị trí và công ty mà họ ứng tuyển. Họ nên nhấn mạnh các vai trò phù hợp, nhưng giới hạn nội dung chỉ trong 2 trang thôi.

Các kỹ sư AI nổi bật cũng chỉ nhất mạnh các kỹ năng kỹ thuật thích hợp, như ngôn ngữ lập trình, kinh nghiệm làm mô hình và thuật toán, kiến thức về data engineering và phân tích, kinh nghiệm với các dịch vụ và nền tảng. Ứng viên mới vào nghề thường ứng tuyển các vị trí junior, trợ lý hay điều phối.

Quy trình phỏng vấn cũng khác nhau tùy vị trí và nhà tuyển dụng. Người phỏng vấn thường kiểm tra kinh nghiệm làm việc trước đây của ứng viên. Các buổi phỏng vấn sẽ bao gồm câu hỏi về coding và thuật toán để kiểm tra kiến thức ứng viên.

Tham khảo: Codecademy, Zdnet

Categories
Dev's Corner

Metaverse là gì? Metaverse có ý nghĩa như thế nào đối với bạn?

Trong bài viết này, chúng ta sẽ cùng bàn tổng quan về các khả năng (và cạm bẫy) tương lai của metaverse trong 5-10 năm nữa khi các nhà lãnh đạo cân nhắc khả năng theo đuổi thứ mà một số người tin rằng sẽ là thế giới mới tiếp theo cho hầu hết doanh nghiệp.

Metaverse là gì?

Metaverse là thuật ngữ phổ biến được sử dụng để mô tả thứ mà nhiều người kỳ vọng sẽ trở thành hình thái tiếp theo về cách chúng ta sử dụng công nghệ và mạng kỹ thuật số để tương tác và cộng tác với người khác và có trải nghiệm ảo với mọi hình thức.

Đó không phải là một công nghệ hay thiết bị riêng lẻ, và cũng không phải là dịch vụ của bất kỳ công ty nào. Mà đó là sự hội tụ của một số công nghệ riêng biệt, tất cả đều nhanh chóng hoàn thiện để sử dụng phổ biến.

Cùng nhau, những công nghệ đó có thể tạo ra trải nghiệm môi trường ba chiều, nhập vai, trong đó người dùng tương tác với môi trường xung quanh và với những người dùng khác như thể họ đang ở trong một không gian chung.

Nhưng một metaverse được phát triển đầy đủ không chỉ đơn thuần là một không gian ảo. Nó có ít nhất 2 đặc điểm quan trọng khác giúp nó có tiềm năng trở thành một nền tảng mới với đa dạng mục đích sử dụng.

  • Đầu tiên, nó đưa thế giới vật lý và kỹ thuật số / ảo vào trải nghiệm của người dùng.
  • Thứ hai, metaverse dự kiến ​​sẽ có một nền kinh tế bản địa, bao gồm tài sản thuần kỹ thuật số và thương mại.

Mặc dù Internet ngày nay có một mối quan hệ quan trọng đối với nền kinh tế, nhưng metaverse có thể có nền kinh tế riêng của nó.

Metaverse - Một thế giới hoàn toàn mới
Metaverse – Một thế giới hoàn toàn mới

Các yếu tố thúc đẩy tương lai của metaverse là gì?

Sự tiến hóa của metaverse sẽ phụ thuộc vào phản ứng của người tiêu dùng cũng như kết quả của ít nhất bốn ẩn số chính:

Chuẩn hóa

Các tiêu chuẩn và giao thức hội tụ ở mức độ nào? Mức độ tương kết giữa các nền tảng khác nhau là gì?

  • Có một nền kinh tế thống nhất các nền tảng không?
  • Liệu hàng hóa kỹ thuật số được mua trong một metaverse có tồn tại trong một metaverse khác?
  • Danh tính có nhất quán trên các nền tảng không?
  • Có các tiêu chuẩn thiết kế và lập trình có nhất quán không?

Phân mảnh thì trường

Có bao nhiêu nhà lãnh đạo thị trường nổi lên và họ phục vụ đối tượng khách hàng nào và trong những tình huống thương mại nào?

  • Có bao nhiêu sự cạnh tranh trên thị trường, và điều này ảnh hưởng đến sự đổi mới như thế nào?
  • Chúng ta sẽ thấy (hoặc sẽ được phép thấy) M&A / hợp nhất thị trường ở mức độ nào?
  • Các nền tảng khác nhau có phục vụ các tình huống sử dụng khác nhau không? (ví dụ: một nền tảng chỉ dành cho người tiêu dùng và một nền tảng chỉ dành cho doanh nghiệp)

Giao diện người dùng

Giao diện người dùng trực quan và tích hợp mạch lạc với cuộc sống hàng ngày ở mức độ nào?

  • Giao diện chủ đạo sẽ thân thiện với người dùng và thiết bị di động như thế nào?
  • Giao diện có cho phép chuyển đổi giữa thế giới vật lý và kỹ thuật số một cách mạch lạc không?

Quản trị

Nội dung và hành vi được quy định hiệu quả và nhất quán ra sao? IP và tài sản kỹ thuật số có được bảo vệ một cách đáng tin cậy?

  • Có cơ quan quản lý mạnh mẽ không hay các nền tảng chủ yếu dựa trên sự tự trị?
  • Các tương tác và giao dịch an toàn và đáng tin cậy ở mức độ nào?
  • Có quy trình hiệu quả để quản lý vấn đề thuế và trách nhiệm pháp lý không?

Tương lai của Metaverse có thể xảy ra theo hướng nào?

Có ba kịch bản tiềm năng dành cho tương lai của metaverse vào đầu những năm 2030:

Low orbit

Metaverse vượt trội về những thứ nó giỏi nhưng không trở thành nền tảng chung:

  • Thị trường phân mảnh, không có người chơi thống trị và sự lựa chọn áp đảo của người tiêu dùng
  • Giao diện người dùng hoạt động tốt trong một số tình huống nhất định nhưng khó hòa nhập vào cuộc sống hàng ngày
  • Sự đón nhận của người tiêu dùng với trò chơi, thể thao, giải trí và một số hoạt động bán lẻ ở mức cao
  • Sự đón nhận của doanh nghiệp bị giới hạn ở mức độ hợp tác nhóm, hội nghị ảo, đào tạo / học tập tăng cường và công nghệ bản sao kỹ thuật số
  • Quy định không nhất quán giữa các quốc gia và khu vực

Kết quả: Một thị trường đặc biệt cho các tình huống sử dụng cụ thể, giúp hoàn thiện chứ không thay thế các công nghệ khác.

Double star

Không có một metaverse đơn độc, mà là một số ít anh lớn tranh giành thị phần trong một thị trường năng động.

  • Thiếu khả năng tương kết đòi hỏi người dùng cam kết với một nền tảng gốc
  • Nguồn vốn dồi dào và M&A tích cực dẫn đến một thị trường tập trung cao độ
  • Cạnh tranh thúc đẩy đổi mới công nghệ phần cứng và phần mềm
  • Các hệ sinh thái cạnh tranh để giành được sự chú ý của người dùng thông qua nội dung độc quyền và quan hệ đối tác
  • Các nền tảng có sự tự trị mạnh mẽ và hiệu quả

Kết quả: Một thị trường lớn cho nhiều ứng dụng nhưng phân chia giữa các nhà lãnh đạo công nghệ thế hệ tiếp theo.

Big bang

Một metaverse mở, có tính tương kết trở thành giao diện chủ đạo mà qua đó chúng ta tiến hành hầu hết hoạt động hàng ngày. 

  • Giao diện người dùng dung hợp mượt mà giữa thế giới thực và thế giới số
  • Nhận dạng trong metaverse không khác gì trong thế giới thực
  • Không có nhà cung cấp đơn nhất, với nhiều nhà đổi mới và một hệ thống mở, có tính tương kết
  • Áp dụng rộng rãi trong các tình huống sử dụng của người tiêu dùng và doanh nghiệp
  • Quản trị mạnh mẽ, với các quy tắc nghiêm ngặt về quyền sở hữu kỹ thuật số và quyền riêng tư / bảo mật

Kết quả: Internet chuyển dịch hoàn toàn vào một thế giới ảo mà hầu hết doanh nghiệp và người tiêu dùng hoạt động.

Các nhà lãnh đạo có thể làm gì?

Trong khi tương lai của metaverse vẫn còn là ẩn số, có một số hành động mà các nhà điều hành có thể thực hiện ngay bây giờ:

  • Đừng đánh giá thấp tiềm năng: Hãy định hình chiến lược metaverse nhưng đủ linh hoạt để thích ứng với những thay đổi trong công nghệ và sở thích của người tiêu dùng. Áp dụng phương thức “thử nghiệm và học hỏi” cho cả khi đối diện với khách hàng lẫn các hoạt động trong doanh nghiệp.
  • Nhìn xa trông rộng: Trường hợp metaverse trở thành chủ đạo và việc tạo doanh thu tương ứng có thể sẽ diễn ra trong vài năm, các công ty nên có cái nhìn xa về các khoản đầu tư và xem xét các KPI xung quanh mức độ tương tác của người tiêu dùng và nhân viên bên cạnh ROI. Hãy xem xét các khoản đầu tư trong bối cảnh các chương trình chuyển đổi số rộng lớn hơn.
  • Tập trung vào nhu cầu và động lực của người dùng: Các tổ chức nên tập trung vào cách tạo nội dung và trải nghiệm hấp dẫn (ví dụ: quan hệ đối tác độc quyền, công cụ nội dung do người dùng tạo, thu thập dữ liệu và thông tin mạnh mẽ) để thiết lập chia sẻ và duy trì tính cạnh tranh.
  • Cam kết một “metaverse có trách nhiệm”: Các tổ chức sẽ cần quản lý một loạt các phức tạp và rủi ro trong metaverse (ví dụ: quyền riêng tư / bảo mật, khả năng tiếp cận, tiêu thụ năng lượng bền vững) và đảm bảo họ đang chủ động xây dựng một metaverse có trách nhiệm và duy trì lòng tin của người tiêu dùng và nhân viên một cách hiệu quả.

Nguồn: https://www2.deloitte.com/

Categories
Dev's Corner

Data Labeling là gì? Hướng dẫn cơ bản Data Labeling cho Machine Learning

Hiểu biết về Data Labeling có hữu ích cho bạn?

Nếu bạn có một lượng lớn dữ liệu muốn sử dụng trong học máy (machine learning) hoặc học sâu (deep learning), bạn sẽ cần tới các công cụ và con người để làm giàu cho dữ liệu đó nhằm đào tạo, đánh giá và điều chỉnh mô hình của mình.

Hướng dẫn này sẽ hữu ích nhất nếu bạn có dữ liệu mà bạn có thể gắn nhãn và bạn đang đối mặt với một hoặc nhiều thách thức dưới đây.

1. Bạn có rất nhiều dữ liệu chưa được gắn nhãn

Hầu hết dữ liệu không được gắn nhãn và đó là thách thức đối với hầu hết các nhóm dự án AI.

Theo công ty phân tích Cognilytica, toàn bộ 80% thời gian dự án AI được dành cho việc thu thập, sắp xếp và gắn nhãn dữ liệu (data labeling), và đây là thời gian mà các nhóm không muốn bỏ ra vì họ đang trong cuộc chạy đua tới dữ-liệu-có-thể-sử-dụng được, tức là dữ liệu được cấu trúc và dán nhãn phù hợp để đào tạo và triển khai các mô hình.

Phân bổ thời gian cho các tác vụ dự án Machine Learning
Phân bổ thời gian cho các tác vụ dự án Machine Learning

2. Các nhãn dữ liệu của bạn có chất lượng thấp

Có rất nhiều lý do khiến dữ liệu được gắn nhãn của bạn có chất lượng thấp, nguyên nhân thường ở con người, quy trình hoặc công nghệ được sử dụng trong quy trình data labeling.

3. Quá trình gắn nhãn dữ liệu của bạn không hiệu quả hoặc tốn kém

Nếu bạn đang trả tiền cho các nhà khoa học dữ liệu (data scientist) để xử lý dữ liệu, thì tốt hơn bạn nên tìm cách thức khác.

Mức lương cho các nhà khoa học dữ liệu có thể lên tới 190.000 đô / năm. Thật phí phạm khi để những nhân sự được trả lương cao này dành thời gian vào công việc cơ bản, lặp đi lặp lại.

4. Bạn cần bổ sung QA (quality assurance) vào quy trình gắn nhãn dữ liệu của mình hoặc cải tiến quy trình QA đã thực hiện

Đây là nơi mà data labeling thường bỏ sót và có thể cung cấp giá trị đáng kể, đặc biệt là trong giai đoạn thử nghiệm và đánh giá mô hình học máy.


Dừng lại chút nào, nếu bạn đang #open_to_work, thử nghía qua các công việc đang tuyển trên Gamba nhé. Vào LINK NÀY để xem các job Data hoặc scan QR Code ở bên dưới nhé.

Xem và ứng tuyển các 'data' job
Xem và ứng tuyển các ‘data’ job

Dữ liệu được gắn nhãn (Labeled Data) và sự thật cơ bản

Dữ liệu được gắn nhãn là gì?

Trong học máy (machine learning), nếu bạn có dữ liệu đã được gắn nhãn, điều đó có nghĩa là dữ liệu của bạn được đánh dấu hoặc được chú thích, để hiển thị mục tiêu, là câu trả lời mà bạn muốn mô hình machine learning của mình dự đoán.

Nói chung, data labeling có thể hiểu là các tác vụ bao gồm gắn thẻ dữ liệu, chú thích, phân loại, kiểm duyệt, phiên âm hoặc xử lý.

Chú thích dữ liệu (data annotation) là gì?

Chú thích dữ liệu thường để nói về quá trình gắn nhãn dữ liệu. Chú thích dữ liệu và gắn nhãn dữ liệu thường được sử dụng thay thế cho nhau, mặc dù chúng có thể được sử dụng khác nhau tùy theo ngành hoặc tình huống sử dụng.

Dữ liệu được gắn nhãn làm nổi bật các đặc tính của dữ liệu – thuộc tính, đặc điểm hoặc phân loại – mà có thể được phân tích để tìm ra các hình mẫu giúp dự đoán mục tiêu.

Ví dụ: trong tầm nhìn máy tính dành cho xe tự hành, một người gắn nhãn dữ liệu có thể sử dụng công cụ gắn nhãn video từng khung hình để chỉ ra vị trí của biển báo đường phố, người đi bộ hoặc các phương tiện khác.

Data Labeling là gì?
Data Labeling là gì?

‘Human-in-the-Loop’ (HITL) là gì?

HITL (bán tự hành) tận dụng trí thông minh của con người và máy móc để tạo ra các mô hình học máy.

Trong cấu hình HITL, con người tham gia vào một vòng tròn cải tiến trong đó khả năng phán đoán của con người được sử dụng để đào tạo, điều chỉnh và kiểm tra một mô hình dữ liệu cụ thể.

Các nhãn trong học máy là gì?

Nhãn là thứ mà HITL sử dụng để xác định và gọi ra các đặc tính có trong dữ liệu.

Việc lựa chọn các đặc tính có tính thông tin, phân biệt và độc lập để gắn nhãn là cực kỳ quan trọng nếu bạn muốn phát triển các thuật toán trong nhận dạng hình mẫu, phân loại và hồi quy một cách hiệu quả.

Dữ liệu được gắn nhãn chính xác có thể cung cấp sự thật nền tảng để thử nghiệm và lặp lại các mô hình của bạn.

“Sự thật nền tảng” trong học máy là gì?

Trong học máy, “sự thật nền tảng” (ground truth) nghĩa là kiểm tra độ chính xác trong kết quả của các thuật toán ML so với thế giới thực. Về bản chất, đó là kiểm tra thực tế về độ chính xác của các thuật toán.

Thuật ngữ này được mượn từ khí tượng học, trong đó “sự thật nền tảng” đề cập đến thông tin thu được trên mặt đất nơi một sự kiện thời tiết xảy ra, dữ liệu đó sau đó được so sánh với các mô hình dự báo để xác định độ chính xác của chúng.

“Dữ liệu đào tạo” trong học máy là gì?

Dữ liệu đào tạo là dữ liệu đã được làm giàu (enriched data) mà bạn sử dụng để đào tạo mô hình hoặc thuật toán machine learning.

Ngày nay, các công ty thực hiện data labeling ra sao?

Các tổ chức sử dụng sự kết hợp giữa phần mềm, quy trình và con người để làm sạch, tạo cấu trúc hoặc gắn nhãn dữ liệu.

Nói chung, bạn có 4 phướng án đối với nhân sự làm data labeling:

  • Nhân viên – Họ thuộc biên chế của bạn, toàn thời gian hoặc bán thời gian. Mô tả công việc của họ có thể không bao gồm data labeling.
  • Các nhóm được quản lý – Bạn sử dụng các nhóm nhân viên gắn nhãn dữ liệu đã được kiểm tra, đào tạo và quản lý.
  • Nhà thầu – Họ là người lao động tạm thời hoặc tự do.
  • Crowdsourcing – Bạn sử dụng nền tảng của bên thứ ba để tiếp cận nhiều người lao động cùng một lúc.
Các phương án lực lượng lao động Data Labeling
Các phương án cho nhân sự Data Labeling

Data Labeling bao gồm một loạt các nhiệm vụ:

  • Sử dụng công cụ để làm giàu dữ liệu
  • Đảm bảo chất lượng cho việc gắn nhãn dữ liệu
  • Lặp lại quy trình, chẳng hạn như các thay đổi trong lựa chọn đặc tính dữ liệu, tiến trình tác vụ hoặc QA
  • Quản lý nhân viên gắn nhãn dữ liệu
  • Đào tạo thành viên mới trong nhóm
  • Lập kế hoạch dự án, vận hành quy trình và đo lường thành công

Dưới đây là 5 yếu tố cần thiết bạn cần xem xét khi cần làm data labeling cho machine learning:

1. Chất lượng và độ chính xác của dữ liệu – Điều gì ảnh hưởng đến chất lượng và độ chính xác?

Mặc dù các thuật ngữ thường được sử dụng thay thế cho nhau, nhưng chúng ta cần hiểu rằng độ chính xácchất lượng là hai thứ khác nhau.

  1. Độ chính xác đo lường mức độ sự sai biệt giữa việc gắn nhãn với sự thật nền tảng, hoặc các đặc tính được gắn nhãn trong dữ liệu nhất quán ra sao với các điều kiện trong thế giới thực. Điều này đúng cho dù bạn đang xây dựng mô hình thị giác máy tính (ví dụ: đặt các hộp giới hạn xung quanh các đối tượng trên cảnh đường phố) hay mô hình xử lý ngôn ngữ tự nhiên (NLP) (ví dụ: phân loại văn bản theo cảm tính xã hội).
  1. Chất lượng là độ chính xác trên toàn bộ tập dữ liệu. Công việc của tất cả nhân viên dán nhãn của bạn có giống nhau không? Việc gắn nhãn có luôn chính xác trên các tập dữ liệu của bạn không? Có chính xác dù bạn có 29, 89 hoặc 999 nhân viên gắn nhãn dữ liệu làm việc cùng một lúc không?

Dữ liệu chất lượng thấp có thể phản tác dụng hai lần: lần đầu tiên trong quá trình đào tạo mô hình và lần nữa khi mô hình của bạn sử dụng dữ liệu được gắn nhãn để thông tin cho các quyết định trong tương lai.

Để tạo, đánh giá và duy trì các mô hình học máy hiệu suất cao, bạn phải đào tạo và xác thực chúng bằng cách sử dụng dữ liệu đáng tin cậy và có thể tin cậy.

4 đặc điểm của Lực lượng lao động ảnh hưởng đến Chất lượng trong Data Labeling

Điều gì ảnh hưởng đến chất lượng dữ liệu trong việc gắn nhãn?

1. Kiến thức và bối cảnh

Trong data labeling, kiến ​​thức lĩnh vực cơ bản và hiểu ngữ cảnh là điều cần thiết để lực lượng lao động của bạn tạo bộ dữ liệu có cấu trúc, chất lượng cao cho học máy. 

Nhân viên gắn nhãn dữ liệu sẽ có chất lượng cao hơn khi họ hiểu ngữ cảnh hoặc biết về mục đích hoặc mức độ liên quan của dữ liệu mà họ gắn nhãn. 

Ví dụ: những người gắn nhãn dữ liệu văn bản của bạn phải hiểu khi nào một số từ nhất định có thể được sử dụng theo nhiều cách, tùy thuộc vào ý nghĩa của văn bản.

Để gắn thẻ từ “bass” một cách chính xác, họ sẽ cần biết liệu văn bản đó có liên quan đến cá hay âm nhạc. Họ có thể cần hiểu cách các từ có thể được thay thế cho những từ khác, chẳng hạn như “Kleenex” cho “khăn giấy”.

Để có dữ liệu chất lượng cao nhất, người gắn nhãn nên biết các chi tiết chính về ngành bạn phục vụ và công việc của họ liên quan như thế nào đến vấn đề bạn đang giải quyết. 

Thậm chí còn tốt hơn nữa khi một thành viên trong nhóm gắn nhãn của bạn có kiến ​​thức chuyên môn hoặc hiểu biết cơ bản về ngành mà dữ liệu của bạn phục vụ, vì vậy họ có thể quản lý nhóm và đào tạo các thành viên mới về các quy tắc liên quan đến ngữ cảnh, hoạt động kinh doanh hoặc sản phẩm và các trường hợp đặc thù. 

Ví dụ: từ vựng, định dạng và phong cách của văn bản liên quan đến chăm sóc sức khỏe có thể thay đổi đáng kể đối với ngành luật.

2. Linh hoạt (Agility)

Học máy là một quá trình lặp đi lặp lại.

Việc gắn nhãn dữ liệu phát triển khi bạn kiểm tra và đánh giá các mô hình của mình cũng như học hỏi từ kết quả của chúng, vì vậy, bạn cần chuẩn bị các tập dữ liệu mới và làm phong phú thêm các tập dữ liệu hiện có để cải thiện kết quả thuật toán của mình.

Nhóm data labeling của bạn phải linh hoạt trong việc kết hợp các thay đổi theo nhu cầu của người dùng cuối, các thay đổi trong sản phẩm của bạn hoặc bổ sung các sản phẩm mới.

Một nhóm data labeling linh hoạt có thể phản ứng với những thay đổi về khối lượng dữ liệu, độ phức tạp tác vụ và thời lượng tác vụ. Nhóm gắn nhãn của bạn càng dễ thích ứng, bạn càng có thể thực hiện nhiều dự án máy học hơn.

Khi bạn phát triển các thuật toán và đào tạo mô hình của mình, người gắn nhãn dữ liệu có thể cung cấp thông tin có giá trị (insight) về các đặc tính của dữ liệu – tức là thuộc tính, đặc điểm hoặc phân loại – sẽ được phân tích để tìm ra các hình mẫu giúp dự đoán mục tiêu hoặc trả lời những gì bạn muốn mô hình của mình dự đoán.

3. Mối quan hệ

Trong học máy, quy trình làm việc của bạn thay đổi liên tục.

Bạn cần những người gắn nhãn dữ liệu có thể phản ứng nhanh chóng và thực hiện các thay đổi trong quy trình làm việc của mình, dựa trên những gì bạn học được trong giai đoạn kiểm tra và đánh giá mô hình.

Để thực hiện loại công việc linh hoạt đó, bạn cần sự linh hoạt trong quy trình của mình, những người quan tâm đến dữ liệu của bạn và sự thành công của dự án và kết nối trực tiếp tới người lãnh đạo trong nhóm data labeling để bạn có thể lặp lại các đặc tính dữ liệu, thuộc tính và quy trình làm việc dựa trên những gì bạn học trong giai đoạn thử nghiệm và đánh giá.

4. Giao tiếp

Bạn sẽ cần trao đổi trực tiếp với nhóm gắn nhãn của mình.

Vòng phản hồi khép kín là một cách rất tốt để tạo dựng sự giao tiếp và cộng tác đáng tin cậy giữa nhóm dự án và những người gắn nhãn dữ liệu.

Người gắn nhãn có thể chia sẻ những gì họ rút ra được khi làm data labeling, vì vậy bạn có thể sử dụng thông tin này để điều chỉnh cách tiếp cận của mình.

Chất lượng được đo lường như thế nào trong data labeling?

Có bốn cách để đo lường chất lượng data labeling từ góc độ lực lượng lao động:

  1. Tiêu chuẩn vàng – Có một câu trả lời chính xác cho tác vụ. Đo lường chất lượng dựa trên các tác vụ đúng và sai.
  2. Đánh giá mẫu – Chọn một mẫu ngẫu nhiên của các tác vụ đã hoàn thành. Một nhân viên nhiều kinh nghiệm, chẳng hạn như trưởng nhóm hoặc quản lý dự án, sẽ xem xét độ chính xác của mẫu.
  3. Sự đồng thuận – Chỉ định một số người làm cùng một tác vụ và câu trả lời đúng là câu trả lời từ phần lớn các nhân viên gắn nhãn.
  4. IoU (Intersection over Union) – Đây là một mô hình đồng thuận thường được sử dụng để phát hiện đối tượng trong ảnh. Nó kết hợp con người và tự động hóa để so sánh các hộp giới hạn (bounding box) của hình ảnh thực được dán nhãn thủ công với các hộp giới hạn được dự đoán từ mô hình.

Hãy thoải mái lựa chọn một trong số các phương pháp đảm bảo chất lượng này thay vì bị bó buộc vào một mô hình đo lường chất lượng duy nhất.

2. Quy mô – Điều gì xảy ra khi khối lượng data labeling tăng lên?

Điều cần thiết thứ hai để gắn nhãn dữ liệu cho học máy là quy mô. Những gì bạn muốn là khả năng mở rộng hoặc giảm lực lượng lao động theo dự án và nhu cầu kinh doanh của bạn mà không ảnh hưởng đến chất lượng dữ liệu.

Gắn nhãn dữ liệu là một quá trình tốn thời gian và thậm chí còn nhiều hơn thế khi làm machine learning, đòi hỏi bạn phải lặp lại và phát triển các đặc tính dữ liệu khi bạn đào tạo và điều chỉnh mô hình của mình để cải thiện chất lượng dữ liệu và hiệu suất của mô hình. 

Khi độ phức tạp và khối lượng dữ liệu của bạn tăng lên, nhu cầu gắn nhãn của bạn cũng vậy. 

Chú thích video đặc biệt tốn nhiều công sức: mỗi giờ dữ liệu video được thu thập mất khoảng 800 giờ công (manhour) để chú thích. Một video dài 10 phút chứa khoảng 18.000 đến 36.000 khung hình, khoảng 30-60 khung hình mỗi giây.

Thời điểm cần mở rộng quy mô và thuê dịch vụ gắn nhãn dữ liệu?

Nếu tài nguyên đắt tiền nhất của bạn (nhà khoa học dữ liệu hoặc kỹ sư dữ liệu) đang dành thời gian đáng kể để xử lý dữ liệu cho machine learning hoặc phân tích dữ liệu, thì đó là lúc bạn nên xem xét mở rộng quy mô với dịch vụ gắn nhãn dữ liệu. 

Việc gia tăng khối lượng gắn nhãn dữ liệu, cho dù chúng xảy ra trong nhiều tuần hoặc nhiều tháng, sẽ ngày càng khó khăn hơn nếu tự quản lý.

Chúng cũng tiêu hao thời gian và sự tập trung của một số nguồn nhân lực đắt giá nhất : các nhà khoa học dữ liệu (data scientist) và kỹ sư machine learning. Nếu nhà khoa học dữ liệu của bạn đang gắn nhãn hoặc quấn dữ liệu, bạn sẽ phải trả tới 90 đô la một giờ.

Tốt hơn nên giải phóng một nguồn tài nguyên có giá trị cao như vậy cho các công việc phân tích và có tính chiến lược hơn, là trích xuất giá trị kinh doanh từ dữ liệu của bạn.

5 Bước mở rộng Data Labeling

1. Thiết kế cho năng lực của lực lượng lao động

Dịch vụ gắn nhãn dữ liệu có thể cung cấp quyền truy cập vào một nhóm lớn nhân sự. Crowdsourcing (nhân viên tuyển từ cộng đồng) cũng vậy, nhưng nghiên cứu của nhà phát triển công nghệ khoa học dữ liệu Hivemind cho thấy những nhân viên ẩn danh (từ crowdsourcing) cung cấp dữ liệu có chất lượng thấp hơn so với các nhóm được quản lý nếu so về các tác vụ gắn nhãn dữ liệu giống hệt nhau.

Tốt nhất là bạn nên làm việc với cùng một đội nhân viên gắn nhãn, vì khi mức độ quen thuộc của họ với các quy tắc kinh doanh, ngữ cảnh và các trường hợp đặc thù tăng lên, chất lượng dữ liệu sẽ cải thiện theo thời gian. 

Họ cũng có thể đào tạo khi có người mới khi họ tham gia nhóm. Điều này đặc biệt hữu ích với việc gắn nhãn dữ liệu cho các dự án machine learning, nơi chất lượng và tính linh hoạt để lặp lại là điều cần thiết.

2. Tìm sự linh hoạt

Hãy tìm kiếm sự linh hoạt trong việc mở rộng hoặc thu hẹp quy mô gắn nhãn. Bạn có thể phải gắn nhãn dữ liệu theo thời gian thực, dựa trên khối lượng dữ liệu đến được tạo ra.

Có thể doanh nghiệp của bạn có lượng mua hàng tăng đột biến theo mùa trong những tuần nhất định trong năm. Việc ra mắt sản phẩm có thể tạo ra lượng dữ liệu gắn nhãn tăng đột biến. Bạn hẳn sẽ muốn có một lực lượng lao động có thể điều chỉnh quy mô dựa trên nhu cầu của bạn.

3. Chọn dụng cụ thông minh

Cho dù bạn mua hay tự xây dựng, công cụ làm giàu dữ liệu bạn chọn sẽ ảnh hưởng đáng kể đến khả năng mở rộng gắn nhãn dữ liệu của bạn. 

Xin lưu ý rằng đó là một quá trình liên tục: các nhiệm vụ gắn nhãn dữ liệu của bạn ngày hôm nay có thể khác sau một vài tháng, vì vậy, bạn sẽ cần tránh các quyết định khiến bạn phải đi theo một hướng duy nhất có thể không phù hợp với nhu cầu của bạn trong tương lai gần.

Cho dù bạn đang phát triển hay đang hoạt động trên quy mô lớn, bạn sẽ cần một công cụ cho phép bạn linh hoạt để thực hiện các thay đổi đối với các đặc tính dữ liệu, quy trình gắn nhãn và dịch vụ gắn nhãn dữ liệu. 

Các công cụ có sẵn trên thị trường cung cấp cho bạn nhiều quyền kiểm soát hơn đối với quy trình làm việc, tính năng, bảo mật và tích hợp so với các công cụ được tích hợp sẵn. Chúng cũng cung cấp cho bạn sự linh hoạt để thực hiện các thay đổi.

4. Đo lường năng suất nhân viên

Năng suất có thể được đo lường theo nhiều cách khác nhau, có ba thước đo cụ thể cung cấp một cái nhìn hữu ích về năng suất của người lao động

  1. khối lượng công việc đã hoàn thành
  2. chất lượng công việc (độ chính xác cộng với tính nhất quán), và 
  3. sự gắn kết của nhân viên

Về phía người lao động, các quy trình mạnh mẽ dẫn đến năng suất cao hơn. Kết hợp công nghệ, công nhân và huấn luyện giúp rút ngắn thời gian gắn nhãn, tăng kết quả đầu ra và giảm thiểu thời gian chết. 

Chất lượng dữ liệu cao hơn khi đặt người gắn nhãn dữ liệu trong các nhóm nhỏ, đào tạo họ về các tác vụ và quy tắc kinh doanh của bạn, đồng thời cho họ thấy chất lượng công việc như thế nào.

Các trưởng nhóm khuyến khích cộng tác, học hỏi đồng đẳng, hỗ trợ và xây dựng cộng đồng. 

Các kỹ năng và điểm mạnh của người lao động được các trưởng nhóm của họ biết đến và đánh giá cao, những người này tạo cơ hội cho người lao động phát triển về mặt chuyên môn. 

Phương pháp tiếp cận theo nhóm nhỏ này, kết hợp với môi trường công cụ thông minh, đưa đến việc gắn nhãn dữ liệu chất lượng cao.

5. Giao tiếp hiệu quả giữa dự án của bạn và nhóm gắn nhãn dữ liệu

Giao tiếp có tổ chức, dễ dàng với nhóm gắn nhãn dữ liệu của bạn giúp mở rộng quy trình dễ dàng hơn. 

Dựa trên kinh nghiệm, chúng tôi đề xuất một vòng phản hồi khép kín để liên lạc với nhóm gắn nhãn của bạn để bạn có thể thực hiện các thay đổi có tác động nhanh chóng, chẳng hạn như thay đổi quy trình gắn nhãn hoặc lặp lại các đặc tính dữ liệu.

Khi việc gắn nhãn dữ liệu trực tiếp cung cấp cho các tính năng sản phẩm hoặc trải nghiệm khách hàng của bạn, thì thời gian phản hồi của người gắn nhãn cần phải nhanh và thông tin giao tiếp là chìa khóa.

Các nhà cung cấp dịch vụ gắn nhãn dữ liệu phải có thể làm việc trên các múi giờ và tối ưu hóa giao tiếp của bạn cho múi giờ ảnh hưởng đến người dùng cuối của dự án machine learning.

3. Định giá – Nên trả theo giờ hay theo tác vụ?

Dịch vụ gắn nhãn dữ liệu có giá bao nhiêu?

Thông thường, các dịch vụ gắn nhãn dữ liệu tính phí theo tác vụ hoặc theo giờ và mô hình bạn chọn có thể tạo ra các động cơ khác nhau cho các nhân viên gắn nhãn.

Nếu bạn trả tiền cho mỗi tác vụ, điều đó có thể khuyến khích họ thực hiện nhiều tác vụ nhất có thể, dẫn đến dữ liệu chất lượng kém sẽ làm trì hoãn việc triển khai và lãng phí thời gian quan trọng.

Ngược lại, những nhân viên được quản lý được trả lương cho thời gian của họ và được khuyến khích hoàn thành đúng nhiệm vụ, đặc biệt là những công việc phức tạp hơn và đòi hỏi tính khách quan. 

Sự khác biệt này có ý nghĩa quan trọng đối với chất lượng dữ liệu và tiếp theo, chúng tôi sẽ trình bày bằng chứng từ một nghiên cứu gần đây nêu bật một số điểm khác biệt chính giữa hai mô hình.

Nghiên cứu về chất lượng và chi phí gắn nhãn dữ liệu

Nhà phát triển công nghệ khoa học dữ liệu Hivemind đã tiến hành một nghiên cứu về chất lượng và chi phí gắn nhãn dữ liệu.

Họ đã tiến hành trên lực lượng lao động được quản lý, được trả lương theo giờ và nhân viên tự do hàng đầu của nền tảng dịch vụ hàng đầu, được trả lương theo tác vụ, để hoàn thành một loạt các tác vụ giống hệt nhau.

Mục tiêu của Hivemind là hiểu chi tiết hơn về những động cơ này – để xem nhóm nào phân phối dữ liệu chất lượng cao nhất và với chi phí tương đối.

Cùng một nhiệm vụ, hai nhóm gắn nhãn dữ liệu

Các công việc dựa trên văn bản và từ cơ bản đến phức tạp. Hivemind đã gửi các tác vụ cho các nhân viên tự do với hai mức hưởng khác nhau, trong đó một nhóm nhận nhiều hơn, để xác định xem chi phí ảnh hưởng như thế nào đến chất lượng dữ liệu.

Nhiệm vụ A: Phiên âm

Trong 7% trường hợp, nhân viên tự do đã phiên âm sai ít nhất một trong các số.

Khi họ được trả gấp đôi, tỷ lệ lỗi giảm xuống chỉ còn dưới 5%, đây là một sự cải thiện đáng kể.

Các nhân viên được quản lý chỉ mắc lỗi trong 0,4% trường hợp, một sự khác biệt quan trọng do hàm ý của nó đối với chất lượng dữ liệu.

Nhìn chung, đối với nhiệm vụ này, nhân viên tự do có tỷ lệ sai sót cao hơn 10 lần so với lực lượng lao động được quản lý.

Easy Transcription
Easy Transcription

Nhiệm vụ B: Phân tích cảm tính

Người lao động đã nhận được văn bản đánh giá của công ty từ một trang web đánh giá và phải xếp hạng tình cảm của bài đánh giá từ 1 đến 5. Xếp hạng thực tế, hay sự thật cơ bản, đã bị xóa. 

Nhân viên được quản lý có độ chính xác nhất quán, nhận được xếp hạng chính xác trong khoảng 50% trường hợp. 

Nhân viên tự do thì gặp vấn đề, đặc biệt là với những đánh giá kém.

Độ chính xác gần như là 20%, về cơ bản giống như phỏng đoán, đối với các bài đánh giá 1 và 2 sao. Đối với các đánh giá 4 và 5 sao, có rất ít sự khác biệt giữa các nhóm nhân viên.

Nhiệm vụ C: Trích xuất thông tin từ văn bản không có cấu trúc

Các nhân viên đã sử dụng tiêu đề và mô tả về đợt thu hồi sản phẩm để phân loại đợt thu hồi theo loại nguy cơ, chọn một trong 11 tùy chọn, bao gồm “khác” và “không đủ thông tin”.

Độ chính xác của nhân viên tự do là 50% đến 60%, bất kể số lượng từ. 

Nhân viên được quản lý đạt độ chính xác cao hơn, 75% đến 85%. Độ chính xác của nhân viên được quản lý cao hơn 25% so với độ chính xác của nhóm nhân viên tự do.

Định giá Gắn nhãn Dữ liệu: 3 Cân nhắc Quan trọng

Hãy tìm một dịch vụ gắn nhãn dữ liệu với các điều khoản và điều kiện thực tế, linh hoạt. Cụ thể:

  1. Cấu trúc chi phí có thể dự đoán, nhờ vậy bạn biết việc dán nhãn dữ liệu sẽ có giá như thế nào khi mở rộng quy mô và thông lượng tăng lên
  2. Định giá phù hợp với mục đích của bạn, chỉ trả cho những gì bạn cần để có được bộ dữ liệu chất lượng cao
  3. Linh hoạt thực hiện các thay đổi khi các tính năng dữ liệu và yêu cầu gắn nhãn của bạn thay đổi. Tránh các hợp đồng dịch vụ kéo dài nhiều tháng, phí nền tảng hoặc các điều khoản hạn chế khác.

4. Bảo mật – Dữ liệu của tôi sẽ được bảo vệ như thế nào?

Các rủi ro bảo mật của việc gắn nhãn dữ liệu thuê ngoài là gì?

Dịch vụ gắn nhãn dữ liệu có thể xâm phạm bảo mật của bạn khi nhân viên của họ:

  1. Truy cập dữ liệu của bạn từ một mạng không an toàn hoặc sử dụng thiết bị không có phần mềm bảo vệ
  2. Tải xuống hoặc lưu một số dữ liệu của bạn (ví dụ: ảnh chụp màn hình, ổ đĩa flash)
  3. Thực hiện gắn nhãn dữ liệu ở nơi công cộng
  4. Không được đào tạo, bối cảnh hoặc trách nhiệm liên quan đến các quy tắc bảo mật cho công việc
  5. Làm việc trong môi trường vật lý hoặc kỹ thuật số không được chứng nhận tuân thủ các quy định về dữ liệu mà doanh nghiệp của bạn phải tuân theo (ví dụ: HIPAA, SOC 2).

Bảo mật và nhân viên Data Labeling

Nếu bảo mật dữ liệu là một yếu tố trong quy trình machine learning, thì dịch vụ gắn nhãn dữ liệu phải có một cơ sở để công việc được thực hiện một cách an toàn, đào tạo chính sách và quy trình phù hợp – và phải có chứng chỉ để cho thấy quy trình của họ đã được đánh giá.

Quan trọng nhất là, dịch vụ gắn nhãn dữ liệu phải tôn trọng dữ liệu theo cách bạn và tổ chức của bạn làm. Họ cũng nên lập văn bản bảo mật dữ liệu cho cả 3 hạng mục sau:

  • Con người và Lực lượng lao động: Điều này bao gồm việc kiểm tra lý lịch đối với người lao động và có thể yêu cầu các nhà gắn nhãn ký thỏa thuận không tiết lộ (NDA) hoặc tài liệu tương tự nêu rõ các yêu cầu bảo mật dữ liệu của bạn. Lực lượng lao động có thể được quản lý hoặc đo lường mức độ tuân thủ. Nó có thể bao gồm đào tạo nhân viên về các giao thức bảo mật liên quan đến dữ liệu.
  • Công nghệ và Mạng: Người lao động có thể được yêu cầu sử dụng các thiết bị mà họ mang đến nơi làm việc, chẳng hạn như điện thoại di động hoặc máy tính bảng. Các tính năng tải xuống hoặc lưu trữ có thể bị tắt trên các thiết bị mà nhân viên sử dụng để gắn nhãn dữ liệu. Có khả năng an ninh mạng được nâng cao đáng kể.
  • Cơ sở vật chất và Không gian làm việc: Người lao động có thể ngồi trong một không gian ngăn người khác xem công việc của họ. Họ có thể làm việc ở một vị trí an toàn, với quyền truy cập chỉ cho phép những người được ủy quyền vào tòa nhà hoặc văn phòng nơi dữ liệu đang được dán nhãn. Giám sát video có thể được sử dụng để tăng cường an ninh vật lý cho tòa nhà và văn phòng.

Những lo ngại về bảo mật sẽ không ngăn bạn sử dụng dịch vụ gắn nhãn dữ liệu, dịch vụ này sẽ giúp bạn và nhóm của bạn tập trung vào phần chiến lược và sáng tạo nhất của machine learning là đào tạo mô hình, điều chỉnh và phát triển thuật toán.

5. Công cụ – Có cần một nền tảng công cụ để gắn nhãn dữ liệu không?

Điều cần thiết thứ 5 để gắn nhãn dữ liệu trong machine learning là công cụ, bạn sẽ cần công cụ cho dù bạn tự xây dựng hay mua từ bên thứ ba. Tại sao? 

Bởi vì việc gắn nhãn dữ liệu cấp độ sản xuất cho machine learning đòi hỏi các công cụ phần mềm thông minh và con người có kỹ năng. 

Một dịch vụ gắn nhãn dữ liệu phải có thể cung cấp các đề xuất và thực tiễn tốt nhất trong việc lựa chọn và làm việc với các công cụ gắn nhãn dữ liệu. Lý tưởng nhất là họ sẽ có quan hệ đối tác với nhiều nhà cung cấp công cụ khác nhau để cho bạn nhiều sự lựa chọn và làm cho trải nghiệm của bạn được mạch lạc.

Họ cũng sẽ cung cấp kiến ​​thức chuyên môn cần thiết để giao cho con người những tác vụ đòi hỏi bối cảnh, sự sáng tạo và khả năng thích ứng trong khi giao cho máy móc những nhiệm vụ đòi hỏi tốc độ, khả năng đo lường và tính nhất quán.

Tiến trình công việc

Giao việc cho con người và máy móc dễ dàng thực hiện hơn với các công cụ thân thiện với người dùng giúp chia nhỏ công việc gắn nhãn dữ liệu thành các tác vụ nguyên tử hoặc nhỏ hơn. 

Bằng cách chuyển đổi các nhiệm vụ phức tạp thành một loạt các thành phần nhỏ hơn, bạn có thể giao các tác vụ máy móc mà các công cụ đang thực hiện với chất lượng cao và để con người thực hiện các nhiệm vụ mà các công cụ này chưa thành thạo.

Việc chia nhỏ công việc thành các thành phần nguyên tử cũng giúp dễ dàng hơn trong việc đo lường, định lượng và tối đa hóa chất lượng cho mỗi tác vụ.

Mỗi loại nhiệm vụ có thể có lớp đảm bảo chất lượng (QA) riêng và quy trình đó cũng có thể được chia thành các nhiệm vụ nguyên tử.

Task Progression
Task Progression

Mọi tác vụ lập mô hình machine learning đều khác nhau, nên bạn có thể thực hiện vài lần chạy đơn giản để đưa ra các định nghĩa tốt và một bộ hướng dẫn, ngay cả trước khi bạn bắt đầu thu thập dữ liệu của mình.

Nếu bạn có thể chuyển đổi kiến ​​thức về mô hình của mình thành dữ liệu được gắn nhãn một cách hiệu quả, bạn đã giải quyết được một trong những vấn đề khó nhất trong học máy.

Sau một thập kỷ cung cấp các nhóm gắn nhãn dữ liệu, chúng tôi biết rằng đó là một quá trình cải tiến. Các nhiệm vụ gắn nhãn mà bạn bắt đầu có thể sẽ thay đổi sau một vài tháng. 

Đồng thời, bạn và nhóm gắn nhãn dữ liệu của bạn có thể điều chỉnh quy trình gắn nhãn của mình nhằm đạt được chất lượng cao và hiệu suất mô hình.

5 Bước chọn công cụ gắn nhãn dữ liệu

5 bước dưới đây rất quan trọng trong việc lựa chọn công cụ gắn nhãn dữ liệu để tối đa chất lượng dữ liệu và tối ưu đầu tư vào lực lượng lao động của bạn:

1. Thu hẹp công cụ dựa trên trường hợp sử dụng của bạn

Loại dữ liệu của bạn sẽ xác định các công cụ cần sử dụng. Các công cụ khác nhau ở các tính năng làm giàu dữ liệu, khả năng đảm bảo chất lượng (QA), loại tệp được hỗ trợ, chứng nhận bảo mật dữ liệu, tùy chọn lưu trữ, v.v.

Các tính năng để gắn nhãn có thể bao gồm hộp giới hạn, đa giác, điểm 2-D và 3-D, phân đoạn ngữ nghĩa, v.v.

2. So sánh lợi ích của tự xây và đi mua

Việc xây dựng công cụ của riêng bạn có thể mang lại những lợi ích có giá trị, bao gồm kiểm soát nhiều hơn quy trình gắn nhãn, thay đổi phần mềm và bảo mật dữ liệu.

Bạn cũng có thể dễ dàng giải quyết và giảm thiểu sự thiên vị ngoài ý muốn trong việc gắn nhãn của mình.

Tuy nhiên, việc mua một công cụ có sẵn trên thị trường thường ít tốn kém hơn về lâu dài vì nhóm của bạn có thể tập trung vào nhiệm vụ cốt lõi của họ hơn là hỗ trợ và mở rộng khả năng phần mềm, giải phóng nguồn lực quý giá cho các khía cạnh khác của dự án.

Khi mua, bạn có thể cấu hình công cụ cho các tính năng bạn cần và có sự hỗ trợ người dùng.

Có nhiều công cụ cho bất kỳ khối lượng công việc gắn nhãn dữ liệu nào và các nhóm luôn phát triển các công cụ mới và các tính năng nâng cao.

Khi bạn mua, về cơ bản bạn đang thuê quyền truy cập vào các công cụ, có nghĩa là:

  • Có các thực thể được tài trợ được trao cho sự thành công của công cụ đó
  • Có thể linh hoạt sử dụng nhiều hơn một công cụ, dựa trên nhu cầu của bạn; và
  • Nhà cung cấp công cụ hỗ trợ sản phẩm, vì vậy bạn không phải chi tiêu các nguồn lực kỹ thuật có giá trị cho việc tạo công cụ.

3. Xem xét quy mô và giai đoạn phát triển của tổ chức bạn

Chúng tôi nhận thấy giai đoạn công ty là một yếu tố quan trọng trong việc lựa chọn công cụ.

Bắt đầu

Có một số cách để bắt đầu trên con đường lựa chọn công cụ phù hợp. 

Đây là lúc mà câu hỏi quan trọng về việc xây dựng hay mua xuất hiện. Bạn sẽ muốn đánh giá các phương án có sẵn trên thị trường, bao gồm cả mã nguồn mở và xác định sự cân bằng hợp lý giữa các tính năng và chi phí để bắt đầu quy trình. 

Các nhà cung cấp rộng rãi cho cộng đồng thường bị tụt lại phía sau về mặt hoàn thiện tính năng so với các nhà cung cấp thương mại, những người tập trung 100% vào các công cụ gắn nhãn dữ liệu tốt nhất trong năng lực cốt lõi của họ. 

Ngoài ra, hãy nhớ rằng những người gắn nhãn dữ liệu có nguồn gốc từ cộng đồng sẽ không tiết lộ danh tính, vì vậy bối cảnh và chất lượng có thể là những điểm khó khăn.

Mở rộng quy trình

Nếu bạn đang trong giai đoạn phát triển, các công cụ thương mại có thể là lựa chọn tốt nhất của bạn. 

Bạn có thể tùy chỉnh, cấu hình và triển khai các tính năng một cách nhẹ nhàng với ít hoặc không cần tài nguyên phát triển. 

Nếu thích, các công cụ nguồn mở có thể cung cấp cho bạn nhiều quyền kiểm soát hơn đối với bảo mật, tích hợp và tính linh hoạt để thực hiện các thay đổi.

Lưu ý rằng, xây dựng một công cụ là một cam kết lớn: bạn sẽ đầu tư vào việc duy trì nền tảng đó theo thời gian và điều đó rất tốn kém.

Duy trì quy mô

Nếu bạn đang hoạt động ở quy mô lớn và muốn duy trì sự tăng trưởng đó theo thời gian, bạn có thể cân nhắc các công cụ thương mại, được tùy chỉnh đầy đủ và yêu cầu ít tài nguyên phát triển. 

Nếu bạn đi theo con đường mã nguồn mở, hãy đảm bảo tạo các quy trình dài hạn và tích hợp ngăn xếp sẽ cho phép bạn tận dụng bất kỳ lợi thế bảo mật hoặc linh hoạt nào mà bạn muốn tận dụng.

Quy mô và giai đoạn phát triển
Quy mô và giai đoạn phát triển

4. Đừng để sự lựa chọn lực lượng lao động của bạn khóa bạn vào một công cụ

Để có sự linh hoạt nhất và kiểm soát quá trình của bạn, đừng ràng buộc lực lượng lao động với công cụ.

Lựa chọn lực lượng lao động của bạn có thể làm giảm hoặc phá vỡ chất lượng dữ liệu, đây là trọng tâm của hiệu suất mô hình của bạn, vì vậy, điều quan trọng là phải giữ cho các lựa chọn công cụ của bạn luôn cởi mở. 

Các nhóm gắn nhãn dữ liệu tốt nhất có thể nhanh chóng áp dụng bất kỳ công cụ nào và giúp bạn điều chỉnh công cụ đó để đáp ứng tốt hơn nhu cầu gắn nhãn của mình.

5. Yếu tố trong yêu cầu chất lượng dữ liệu của bạn

Các tính năng đảm bảo chất lượng được tích hợp sẵn trong một số công cụ và bạn có thể sử dụng chúng để tự động hóa một phần của quy trình QA. 

Tuy nhiên, các tính năng QA này có thể sẽ không đủ, vì vậy, hãy tìm đến các nhà cung cấp lực lượng lao động được quản lý, những người có thể cung cấp nguồn nhân sự được đào tạo và có nhiều kinh nghiệm về các tác vụ gắn nhãn, để tạo ra dữ liệu đào tạo chất lượng cao hơn.

Cẩn thận với việc ký hợp đồng dài hạn

Một số nhà cung cấp dịch vụ gắn nhãn dữ liệu yêu cầu bạn ký hợp đồng nhiều năm cho lực lượng lao động hoặc công cụ của họ. 

Nếu nhà cung cấp dịch vụ gắn nhãn dữ liệu không đáp ứng các yêu cầu chất lượng của bạn, bạn cần sự linh hoạt khi kiểm tra hoặc chọn nhà cung cấp khác mà không bị phạt.

Nguồn: CloudFactory

Categories
Dev's Corner

Vũ trụ ảo Metaverse – Thực tế hay phi thực tế?

Metaverse là chủ đề nóng hổi kể từ khi ông chủ Meta đưa ra các tuyên bố liên quan và chính thức đổi tên từ Facebook sang Meta. Các startup công nghệ tại Việt Nam cũng sớm sôi nổi và rục rịch gia nhập cuộc chơi này.

Trong bài này, cùng nghe anh Trịnh Nguyễn Thiên Phước, CTO tại Gianty Việt Nam chia sẻ góc nhìn về Metaverse trong một video trên kênh ANTV.

Ông Phước - CTO công ty Gianty Việt Nam
Anh Trịnh Nguyễn Thiên Phước, hiện là CTO của GIANTY Vietnam. Anh Phước có 15 năm kinh nghiệm trong lĩnh vực công nghệ, đặc biệt là về AI, Big Data và gần nhất là Blockchain.

1. Metaverse đem lại những lợi ích gì? 

Anh Phước 🗣️:

Trước tiên là phải định nghĩa Metaverse là gì, thì mới biết lợi ích mà nó mang lại cho những người tham gia.

Metaverse theo định nghĩa ngắn gọn nhất là “Internet với biểu hiện dưới dạng 3D“. Metaverse là một xu hướng của tương lai và không thể tránh khỏi.

Lấy ví dụ về 1 sự kiện diễn ra trên Metaverse là concert của Ariana Grande trên nền tảng Fortnite đã nhanh chóng thu hút hơn 1 triệu người tham gia.

Lợi ích của Metaverse
Lợi ích của Metaverse

Nhìn vào ví dụ trên ta thấy lợi ích lớn nhất mà Metaverse mang lại chính là khả năng truy cập (accessibility).

Gần như tất cả mọi người với 1 chiếc điện thoại hoặc trình duyệt web hiện đại, đều có thể tham gia vào sự kiện của Ariana, với chỉ 1 cú click.

Ngoài ra, Metaverse được thiết kế cho thế giới ảo, nên không có giới hạn về số lượng người tham gia và sức chứa của khán đài. Để dễ so sánh với thế giới thực thì có chưa đến 10 khán đài trên khắp thế giới có sức chưa hơn 1M như vậy.

Đứng từ vai trò của người tổ chức sự kiện, các hoạt động, tương tác diễn ra trên Metaverse cũng dễ dàng được thu thập, phân tích và cải thiện hơn.

Avatar đại diện người dùng có thể đi bộ, nói chuyện, nhảy, bắt tay, chia sẻ, thích, bình luận và tương tác trong suốt một sự kiện ảo, có nghĩa là mức độ tương tác có thể được ghi lại một cách chi tiết. 

Dưới góc nhìn xã hội thì Metaverse cũng giúp tạo ra những cộng đồng có chung hệ giá trị (hay gọi là DAOs) và cũng giúp thể hiện bản thân theo cách chân thực hơn thông qua 3D Avatar.

Hãy nhìn cách các fans hâm mộ chạy theo sát từng bước chân của Ariana trong sự kiện đó, bạn có thể hiểu Metaverse đã phá bỏ những rào cản về mặt không gian, thời gian và cả cảm xúc.

2. Metaverse có nhiều vấn đề đáng lo ngại?

PV 🎙:

Ở góc độ công nghệ thì Metaverse là xu hướng và cũng là bước tiến lớn trong quá trình phát triển. Tuy nhiên, một số chuyên gia cho rằng có nhiều vấn đề đáng lo ngại. Ông có phân tích gì về vấn đề này?

Anh Phước 🗣️:

Mọi công nghệ đều trải qua 3 giai đoạn trong sự phát triển của nó, nó cũng phản ánh thông qua các giai đoạn người dùng tiếp cận công nghệ đó. Đối với một người dùng, bạn sẽ phải đi vào (Enter) thế giới Metaverse, sống và làm việc (Live and Work) và cuối cùng là rời đi và để lại một loại di sản nào đó (Legacy).

Hiện nay, các công ty vẫn đang tập trung xây dựng cơ sở hạ tầng và các ứng dụng nền tảng cho Metaverse, nên đứng ở góc độ người dùng, ta thấy vẫn còn những trở ngại ngay từ giai đoạn đầu tiên, đó là làm sao đưa người dùng (onboard) đi vào thế giới Metaverse nào đó một cách mượt mà và đơn giản nhất.

5G hay các công nghệ 3D Avatar, sinh trắc học đang là những vấn đề cần giải quyết về mặt công nghệ trước khi người dùng có thể gặp phải các vấn đề ở các giai đoạn sau này.

Thỉnh thoảng chúng ta quá lo lắng về những vấn đề của những giai đoạn phía sau nên chúng ta để lỡ những cơ hội ngay trước mắt.

3. Metaverse có làm suy giảm trầm trọng việc giao tiếp trong đời thực

PV 🎙:

Hiện nay điện thoại thông minh và mạng xã hội đã làm nhiều người đắm chìm vào đó, giảm đi những hoạt động, giao tiếp đời thực. Với Metaverse, vấn đề này có thể còn nghiêm trọng hơn nếu mọi người sống trong thế giới đó nhiều hơn thế giới thực.

Anh Phước 🗣️:

Đúng là ở giai đoạn cao trào, “tính nghiện” đã khiến Smart Phone và MXH ảnh hưởng tiêu cực đến chất lượng cuộc sống của một bộ phận người dùng.

Nhưng cũng như bất kỳ giải pháp nào, việc giải quyết một vấn đề đa phần sẽ tạo ra những vấn đề khác.

Metaverse chắc chắn cũng sẽ tạo ra những vấn đề mới khi cố gắng mô phỏng thế giới thực.

Tuy nhiên, ở góc độ xã hội, điểm mấu chốt là không phải một, mà rất nhiều thế giới ảo sẽ giúp mọi người tương tác tốt hơn và qua đó cũng tạo ra những mối quan hệ xã hội chất lượng hơn.

Điều này được thực hiện bằng cách thêm lớp ba chiều, mang tính đắm chìm vào web, tạo ra trải nghiệm chân thực và tự nhiên hơn.

Giải quyết các bài toán liên quan đề giai đoạn Sống trong Metaverse sẽ tạo ra những cuộc cạnh tranh khốc liệt về mặt công nghệ và kinh doanh.

NFT Games có lẽ là những ứng dụng nổi trội đầu tiên khiến người ta dễ suy đoán việc sống cho Metaverse chỉ là chơi games nhưng sẽ còn rất nhiều các ứng dụng và mô hình kinh doanh độc đáo sẽ xuất hiện.

4. Thông tin sai lệch trong thế giới Metaverse được xử lý thế nào?

Metaverse với sự kết hợp với các công nghệ Web3 tạo ra một đặc tính quan trọng của thời đại thông tin mới: tính sở hữu (ownership).

Biết được chủ sở hữu thông tin, sự tương quan giữa họ và thông tin họ đưa ra có thể hạn chế những thông tin sai lệch.

5. Metaverse kích thích sự phát triển của các ngành khác

PV 🎙:

Theo nhận định của các chuyên gia công nghệ trên thế giới, metaverse hứa hẹn sẽ trở thành ngành công nghiệp nghìn tỷ USD trong tương lai, bởi nó sẽ  kích thích sự phát triển của các ngành công nghiệp sản xuất thiết bị như chip, linh kiện điện tử, các thiết bị thực tế ảo tăng cường…, tương ứng hệ thống cơ sở hạ tầng.  Điều này có thực sự chính xác?

Anh Phước 🗣️:

Chính xác thì Metaverse sẽ thâm nhập vào mọi lĩnh vực trong những năm sắp tới, với một cơ hội thị trường siêu lớn, ước tính mang lại lợi nhuận hằng năm hơn 1 nghìn tỷ đô la.

Cuộc đua tạo ra Metaverse lớn nhất đang là cuộc đua song mã giữa Microsoft và Meta. Với thông tin gần đây về việc Google đầu tư nghiêm túc vào Web3 cũng tạo ra sức nóng cho cuộc đua này. 

Ngoài ra, những nền tảng nổi trội khác có thể kể đến như Decentraland và The Sandbox. Với một thị trường mới và siêu bự, thật dễ dàng để nhận ra sự cạnh tranh khốc liệt thời gian tới.

Ngoài ra còn có các chính phủ Hàn Quốc và ngân hàng rất lớn JP Morgan cũng đã bắt đầu triển khai xây dựng Metaverse của riêng họ.

6. Tương lai Metaverse tại Việt Nam

PV 🎙:

Điều gì sẽ xảy ra nếu ở một thời điểm trong tương lai khi chúng ta sống trong thế giới kỹ thuật số nhiều hơn sống trong thế giới thực? Metaverse mở ra cơ hội và thách thức như thế nào đối với Việt Nam?

Anh Phước 🗣️:

Việt Nam là một thị trường mới nổi, tuy nhiên cũng đã có một vài sản phẩm giải quyết các bài toán ở các giai đoạn khác nhau của Metaverse.

Cơ hội thì như tôi có trình bày ở trên, cái quan trọng nhất không phải là nhìn vào những thách thức ở những giai đoạn đầu như này để nhụt chí.

Mà cái quan trọng nhất là tâm thế, một tâm thế sẵn sàng, hội nhập, đóng góp mang tính giá trị sẽ giúp các công ty xây dựng các giải pháp Metaverse ở Việt Nam vững tin và vươn ra xa hơn. 

Ngoài ra, Metaverse cũng mở ra nhiều cơ hội cho việc làm, những ngành nghề mới sẽ xuất hiện như chuyên gia thiết kế trải nghiệm ảo, quản trị cộng đồng, chuyên gia an ninh ảo, quản lý tài sản ảo và kinh doanh nội dung ảo.

Cá nhân tôi nghĩ nhiều về thợ mã nguồn mở (open source engineers), nó giống thợ sửa máy tính nở rộ khi Internet mới vào Việt Nam. Ngày nay, đa phần các hệ thống, framework lớn đều xây dựng theo hướng open source để tận dụng sự đóng góp to lớn từ cộng đồng.

Từ góc độ doanh nghiệp, chúng ta có cơ hội để mở rộng quy mô một cách ồ ạt. Thay vì có các cửa hàng ở mọi thành phố, một nhà bán lẻ lớn có thể xây dựng một trung tâm toàn cầu trong metaverse để có thể phục vụ hàng triệu khách hàng.

Các doanh nghiệp Việt Nam có thể bắt đầu thử nghiệm các chương trình liên quan đến branding và services trên các Metaverse hiện có.

Metaverse cũng sẽ thay thế các thiết bị thịnh hành ngày nay như điện thoại thông minh, thế nên các thiết bị mới cần được nghiên cứu và triển khai nhanh hơn sẽ tạo đà tốt để phát triển sau này.

Tiềm năng của Metaverse cũng rất lớn trong lĩnh vực giáo dục. Sẽ rất nhiều nguồn lợi nhuận và các mô hình giáo dục tương tác mới được tạo ra.

Học mà chơi, chơi mà học cũng sẽ là xu hướng tất yếu trong Metaverse, thay cho mô hình truyền tải kiến thức một chiều và thiếu tính tương tác như truyền thống.

7. Con người sẽ ra sao trong Metaverse

PV 🎙:

Mối lo ngại con người có trở nên phụ thuộc hoặc sống trong thế giới ảo nhiều hơn thế giới thực?

Anh Phước 🗣️:

Đó là một câu hỏi hay. Metaverse không phải là một, mà sẽ là rất nhiều thế giới ảo. Mỗi thế giới sẽ có hệ giá trị, những điểm đặc trưng riêng và phục vụ các mục đích rất khác nhau như công việc, giải trí, học hành.

Các nền tảng tạo ra các thế giới ảo đó sẽ phải cân nhắc yếu tố an toàn cho người dùng (user safety). An toàn ở đây bao gồm cả việc bảo đảm sức khoẻ, tính cân bằng giữa tinh thần và thể chất. Là một cư dân của một thế giới ảo, bạn hãy chọn những nền tảng nào đảm bảo yếu tố an toàn đó nhé. 

Như Apple, họ tạo ra Screen Time để giúp người dùng quản lý thời gian sử dụng điện thoại của mình dễ dàng hơn và qua đó cân bằng các hoạt động khác để tạo ra một cuộc sống chất lượng hơn.

Categories
Dev's Corner

MLOps là gì? Tại sao MLOps lại quan trọng? Và cách triển khai nó

“Cái thứ MLOps này là gì?”

Đó là câu hỏi mà tôi trăn trở, nhưng cho đến gần đây, tôi mới chỉ nghe nói về MLOps một vài lần tại các hội nghị lớn về AI, tôi thấy một số đề cập trong các bài báo tôi đã đọc trong nhiều năm, nhưng tôi không biết bất cứ điều gì cụ thể.

Vào khoảng thời gian đó, tôi có cuộc trò chuyện với một người bạn làm Chuyên gia khai thác dữ liệu (Data Mining Specialist) ở Mozambique, Châu Phi. Gần đây, họ bắt đầu tạo quy trình Machine Learning (ML) nội bộ của mình, và tình cờ là tôi bắt đầu viết bài này khi đang tự nghiên cứu về lĩnh vực MLOps bí ẩn để quy mọi thứ về một mối.

Bên lề: Bạn có thể tham khảo video dưới đây để hiểu thêm về MLOps. Đây là video buổi chia sẻ tại Gambaru Technical Event #11 của anh Quân Đặng, Senior ML Engineer.

Chia sẻ chủ đề MLOps tại Technical Event #11

Trong lần trao đổi này, tôi biết thêm về những khó khăn mà cả các công ty cũ (và nhiều công ty công nghệ làm ML thương mại) mắc phải:

  • Di chuyển lên đám mây
  • Tạo và quản lý quy trình ML
  • Mở rộng quy mô
  • Xử lý dữ liệu nhạy cảm trên quy mô lớn
  • Và khoảng một triệu vấn đề khác

Và vì vậy, tôi có nhiệm vụ đi sâu và thực hiện các nghiên cứu sâu rộng và học hỏi nhiều nhất có thể khi tôi viết ra các ghi chú và ý tưởng của riêng mình.

Kết quả là bài viết này.

Nhưng tại sao tôi lại nghiên cứu về MLOps?

Theo techjury, mỗi người tạo ra ít nhất 1,7 MB dữ liệu mỗi giây vào năm 2020. Đối với các nhà khoa học dữ liệu, điều đó giống như Giáng sinh sớm vì có rất nhiều lý thuyết / ý tưởng để khám phá, thử nghiệm và nhiều khám phá được thực hiện và các mô hình được phát triển.

Nhưng nếu chúng ta trở nên nghiêm túc và thực sự để những mô hình đó chạm đến các vấn đề kinh doanh trong đời thực và con người thực, chúng ta phải giải quyết các yếu tố cần thiết như:

  • thu thập & làm sạch một lượng lớn dữ liệu
  • thiết lập theo dõi và lập phiên bản cho các thử nghiệm và chạy huấn luyện mô hình
  • thiết lập các quy trình triển khai và giám sát cho các mô hình đi vào sản xuất.

Và chúng ta cần tìm cách mở rộng quy mô hoạt động ML của mình theo nhu cầu của doanh nghiệp và / hoặc người dùng các mô hình ML.

Trước đây cũng có những vấn đề tương tự khi chúng tôi cần mở rộng các hệ thống phần mềm thông thường để nhiều người có thể sử dụng chúng hơn.

Giải pháp của DevOps là một tập hợp các phương pháp phát triển, thử nghiệm, triển khai và vận hành các hệ thống phần mềm quy mô lớn. Với DevOps, chu kỳ phát triển trở nên ngắn hơn, tốc độ triển khai tăng lên và các bản phát hành hệ thống trở nên dễ kiểm soát và đáng tin cậy.

Điều đó đưa chúng ta đến MLOps. Nó được sinh ra tại nơi giao thoa của DevOps, Data Engineering và Machine Learning và nó có khái niệm tương tự như DevOps, nhưng cách thực thi thì khác.

Các hệ thống ML có bản chất là thử nghiệm và có nhiều thành phần rất phức tạp để xây dựng và vận hành.

Nào, cùng nói sâu hơn!

MLOps là gì?

MLOps là một tập hợp các phương pháp để hợp tác và giao tiếp giữa các nhà khoa học dữ liệu và các chuyên gia vận hành.

Việc áp dụng các thực hành này sẽ làm tăng chất lượng, đơn giản hóa quy trình quản lý và tự động hóa việc triển khai các mô hình Machine Learning và Deep Learning trong môi trường sản xuất quy mô lớn. Liên kết các mô hình với nhu cầu kinh doanh cũng như các quy định bắt buộc cũng dễ dàng hơn.

Chu trình MLOps
Chu trình MLOps

MLOps đang dần phát triển thành một phương pháp độc lập để quản lý vòng đời ML. Nó áp dụng cho toàn bộ vòng đời – thu thập dữ liệu, tạo mô hình (vòng đời phát triển phần mềm, CI/CD), điều phối, triển khai, sức khỏe, chẩn đoán, quản trị và các chỉ số kinh doanh.

Các giai đoạn chính của MLOps là:

  • Thu thập dữ liệu
  • Phân tích dữ liệu
  • Chuyển đổi / chuẩn bị dữ liệu
  • Huấn luyện & phát triển mô hình
  • Đánh giá mô hình 
  • Dịch vụ hóa mô hình
  • Giám sát mô hình
  • Huấn luyện lại mô hình.

DevOps vs. MLOps

DevOps và MLOps có những điểm tương đồng cơ bản vì MLOps được bắt nguồn từ các nguyên tắc của DevOps. Nhưng chúng khá khác nhau về cách thực hiện:

1. Không giống như DevOps, MLOps mang bản chất thử nghiệm hơn

Các nhà khoa học dữ liệu (data scientist) và kỹ sư ML/DL (Machine Learning/Data Labeling) phải tinh chỉnh các tính năng khác nhau – siêu tham số, thông số và mô hình – đồng thời theo dõi và quản lý dữ liệu cũng như cơ sở mã (code base) để có kết quả có thể phục dựng được.

Bên cạnh những nỗ lực và công cụ, ngành ML/DL vẫn phải vật lộn với khả năng phục dựng lại các thí nghiệm.

2. Đội nhóm hỗn hợp

Đội nhóm cần để xây dựng và triển khai các mô hình vào sản xuất không chỉ gồm các kỹ sư phần mềm (software engineer).

Trong dự án ML, đội nhóm thường gồm các nhà khoa học dữ liệu hoặc nhà nghiên cứu ML (Machine learning researcher), những người tập trung vào phân tích dữ liệu khám phá, phát triển mô hình và thử nghiệm.

Họ không nhất thiết phải là những kỹ sư phần mềm giàu kinh nghiệm để có thể xây dựng các dịch vụ ở cấp sản xuất.

3. Kiểm thử

Kiểm thử một hệ thống ML bao gồm đánh giá mô hình, huấn luyện mô hình,… ngoài các kiểm thử thông thường, chẳng hạn như kiểm thử đơn vị và kiểm thử tích hợp.

4. Triển khai tự động

Bạn không thể chỉ triển khai mô hình ML được huấn luyện ngoại tuyến (offline-trained ML model) như một dịch vụ dự đoán (prediction service). Bạn sẽ cần quy trình gồm nhiều bước để tự động huấn luyện lại và triển khai mô hình.

Quy trình tăng tính phức tạp vì bạn cần tự động hóa các bước mà các nhà khoa học dữ liệu thực hiện thủ công trước khi triển khai huấn luyện và đánh giá các mô hình mới.

5. Sự suy giảm kết quả trong môi trường sản xuất của hệ thống do hồ sơ dữ liệu thay đổi hay đơn giản là Chênh lệch Huấn luyện – Thực tế (Training – Serving Skew).

Các mô hình ML trong môi trường sản xuất có thể bị giảm hiệu suất không chỉ do việc lập trình không tối ưu mà còn do hồ sơ dữ liệu liên tục thay đổi.

Các mô hình có thể phân rã theo nhiều cách hơn so với các hệ thống phần mềm thông thường và bạn cần phải lên kế hoạch cho nó. 

Điều này có thể xảy ra bởi:

  • Sự khác biệt giữa cách bạn xử lý dữ liệu trong quy trình huấn luyện và chạy thực tế.
  • Sự thay đổi dữ liệu giữa khi bạn huấn luyện và khi bạn chạy thực tế.
  • Vòng lặp phản hồi – khi bạn chọn sai giả thuyết để tối ưu, điều này khiến bạn thu thập dữ liệu sai lệch khi huấn luyện mô hình của mình. Sau đó, không hề hay biết, bạn thu thập các điểm dữ liệu mới hơn bằng cách sử dụng giả thuyết này, nó được phản hồi để huấn luyện lại / tinh chỉnh các phiên bản mô hình trong tương lai, làm cho mô hình trở nên sai lệch hơn và hiệu ứng hòn tuyết lăn xảy ra.

6. Giám sát

Các mô hình trong môi trường sản xuất cần được giám sát. Tương tự, cần theo dõi các thống kê tóm tắt dữ liệu đã xây dựng mô hình để làm mới mô hình khi cần.

Các thống kê này có thể và sẽ thay đổi theo thời gian, bạn cần thông báo hoặc một quy trình khôi phục khi các giá trị đi chệch hướng so với mong đợi.

MLOps và DevOps tương tự nhau khi nói tới việc tích hợp liên tục kiểm soát nguồn, kiểm thử đơn vị, kiểm thử tích hợp và phân phối liên tục mô-đun hoặc gói phần mềm.

Tuy nhiên, trong ML có một số điểm khác biệt đáng chú ý:

  • Tích hợp liên tục (CI) không còn là về kiểm thử và đánh giá code và các thành phần, mà còn kiểm thử và thẩm định dữ liệu, lược đồ CSDL và mô hình.
  • Triển khai liên tục (CD) không còn là về một gói phần mềm hoặc dịch vụ đơn lẻ, mà là một hệ thống (quy trình huấn luyện ML) sẽ tự động triển khai một dịch vụ khác (dịch vụ dự đoán mô hình) hoặc khôi phục các thay đổi từ một mô hình.
  • Kiểm thử liên tục (CT) là một thuộc tính mới, duy nhất đối với các hệ thống ML, liên quan đến việc tự động huấn luyện lại và chạy thực tế mô hình.
Nền tảng Machine Learning End-to-End
Nền tảng Machine Learning End-to-End

MLOps vs. Theo dõi thử nghiệm vs. Quản lý mô hình ML

Chúng ta đã định nghĩa MLOps là gì, còn theo dõi thử nghiệm và quản lý mô hình ML thì sao?

Theo dõi thử nghiệm (Experiment tracking)

Theo dõi thử nghiệm là một phần (hoặc một quy trình) của MLOps, tập trung vào việc thu thập, tổ chức và theo dõi thông tin huấn luyện mô hình qua nhiều lần chạy với các cấu hình khác nhau (siêu tham số, quy mô mô hình, phân tách dữ liệu, tham số, v.v.).

Như đã đề cập trước đó, vì ML/DL có bản chất là thử nghiệm, chúng ta sẽ sử dụng các công cụ theo dõi thử nghiệm để so sánh các mô hình khác nhau được tạo bởi các công ty, đội nhóm hoặc thành viên khác nhau.

Quản lý mô hình

Để đảm bảo rằng các mô hình ML nhất quán và tất cả các yêu cầu kinh doanh được đáp ứng ở quy mô lớn, một chính sách hợp lý, dễ thực hiện đối với Quản lý mô hình là điều cần thiết.

Phương pháp luận MLOps bao gồm một quy trình để phối hợp việc huấn luyện mô hình, đóng gói, thẩm định, triển khai và giám sát. Bằng cách này, bạn có thể chạy các dự án ML một cách nhất quán từ đầu đến cuối.

Bằng cách thiết lập một phương pháp luận Quản lý mô hình rõ ràng, nhất quán, các tổ chức có thể:

  • Chủ động giải quyết các mối quan tâm kinh doanh chung (chẳng hạn như tuân thủ quy định);
  • Cho phép các mô hình có thể tái tạo bằng cách theo dõi dữ liệu, mô hình, mã và lập phiên bản mô hình;
  • Đóng gói và cung cấp các mô hình theo cấu hình có thể lặp lại để hỗ trợ khả năng tái sử dụng.

Tại sao MLOps lại quan trọng?

MLOps là nền tảng. Machine Learning giúp các cá nhân và doanh nghiệp triển khai các giải pháp giúp mở khóa những nguồn doanh thu chưa khai thác, tiết kiệm thời gian và giảm chi phí bằng cách tạo quy trình làm việc hiệu quả hơn, tận dụng phân tích dữ liệu để ra quyết định và cải thiện trải nghiệm khách hàng.

Những mục tiêu này khó có thể hoàn thành nếu không có một khuôn khổ vững chắc để tuân theo. Tự động hóa việc phát triển và triển khai mô hình với MLOps có nghĩa là thời gian thâm nhập thị trường nhanh hơn và chi phí vận hành thấp hơn. Nó giúp các nhà quản lý và nhà phát triển trở nên linh hoạt và có tính chiến lược hơn trong các quyết định.

MLOps đóng vai trò như bản đồ hướng dẫn các cá nhân, nhóm nhỏ và thậm chí cả doanh nghiệp đạt được mục tiêu của họ bất kể các ràng buộc như dữ liệu nhạy cảm, ít tài nguyên, ngân sách nhỏ…

Bạn quyết định bản đồ của mình sẽ lớn tới mức nào vì MLOps không phải là những thực tiễn cứng nhắc. Bạn có thể thử nghiệm với các thiết lập khác nhau và chỉ giữ lại những gì hiệu quả.

Các thực hành  MLOps tốt nhất

Lúc đầu, tôi chỉ muốn liệt kê 10 thực hành tốt nhất, nhưng sau một số nghiên cứu, tôi đã đi đến kết luận rằng tốt nhất nên đưa vào các thực hành tốt nhất cho các thành phần khác nhau của một quy trình ML, đó là: Đội nhóm, Dữ liệu, Mục tiêu, Mô hình, Mã và Triển khai.

Đội nhóm

Dữ liệu 

Mục tiêu (Thang đo và KPI)

Model 

Code

Triển khai

Các thực hành tốt nhất này sẽ đóng vai trò nền tảng để bạn xây dựng các giải pháp MLOps.

Cách triển khai MLOps

Có 3 cách triển khai MLOps:

  • MLOps cấp 0 (Quy trình thủ công)
  • MLOps cấp 1 (tự động hóa quy trình ML)
  • MLOps cấp 2 (tự động hóa quy trình CI / CD)

MLOps cấp 0

Điển hình cho các công ty mới bắt đầu với ML. Quy trình ML hoàn toàn thủ công và quy trình dựa trên nhà khoa học dữ liệu là đủ nếu các mô hình hiếm khi được thay đổi hoặc huấn luyện.

Đặc trưng

  • Quy trình thủ công, theo hướng kịch bản và tương tác: mọi bước đều thủ công, bao gồm phân tích dữ liệu, chuẩn bị dữ liệu, huấn luyện mô hình và đánh giá. Yêu cầu thực hiện thủ công từng bước và chuyển đổi thủ công từ bước này sang bước khác.
  • Không kết nối giữa ML và các hoạt động: quy trình tách biệt giữa các nhà khoa học dữ liệu tạo ra mô hình với các kỹ sư chạy thực tế mô hình. Các nhà khoa học dữ liệu chuyển giao một mô hình đã huấn luyện như một tạo tác (artifact) để nhóm kỹ sư triển khai trên cơ sở hạ tầng API của mình.
  • Phát hành không thường xuyên: giả định ở đây là nhóm khoa học dữ liệu quản lý một số mô hình không thường xuyên thay đổi (triển khai mô hình hoặc huấn luyện lại mô hình bằng dữ liệu mới). Một phiên bản mô hình mới chỉ được triển khai một vài lần mỗi năm.
  • Không tích hợp liên tục (CI): vì có ít thay đổi trong triển khai, nên bỏ qua CI. Thông thường, kiểm thử là một phần trong việc thực thi kịch bản.
  • Không triển khai liên tục (CD): vì không có triển khai phiên bản mô hình thường xuyên, nên CD không được cân nhắc.
  • Triển khai liên quan đến dịch vụ dự đoán (tức là một microservice với REST API)
  • Thiếu chủ động giám sát hiệu suất: quy trình không theo dõi hoặc ghi lại các dự đoán và hành động của mô hình.

Đội ngũ kỹ sư có thể có thiết lập phức tạp khi cấu hình API, kiểm thử và triển khai, bao gồm bảo mật, hồi quy và thử nghiệm tải + canary.

Các thách thức

Trong thực tế, các mô hình thường bị hỏng khi chúng được triển khai trong thế giới thực. Mô hình không thích ứng với những thay đổi của môi trường hoặc trong dữ liệu mô tả môi trường.

Để giải quyết những thách thức của quy trình thủ công này, bạn nên sử dụng các phương pháp MLOps cho CI / CD và CT. Bằng cách triển khai quy trình huấn luyện ML, bạn có thể kích hoạt CT và có thể thiết lập hệ thống CI / CD để kiểm thử, xây dựng và thực thi các triển khai mới của quy trình ML một cách nhanh chóng.

MLOps cấp độ 1

Mục tiêu của MLOps cấp 1 là thực hiện huấn luyện liên tục (CT) mô hình bằng cách tự động hóa quy trình ML. Bằng cách này, bạn có thể cung cấp liên tục dịch vụ dự đoán mô hình.

Kịch bản này có thể hữu ích cho các giải pháp hoạt động trong môi trường thay đổi liên tục và cần chủ động giải quyết những thay đổi trong hành vi của khách hàng, tỷ giá và các chỉ số khác.

Đặc trưng

  • Thử nghiệm nhanh: Các bước thử nghiệm ML được sắp xếp và thực hiện tự động.
  • CT của mô hình trong môi trường sản xuất: mô hình được huấn luyện tự động trong môi trường sản xuất, sử dụng dữ liệu mới dựa trên các live pipeline trigger.
  • Cân xứng giữa vận hành – thử nghiệm: triển khai quy trình được sử dụng trong môi trường phát triển hoặc thử nghiệm được sử dụng trong môi trường tiền sản xuất và sản xuất, đây là một khía cạnh chính của thực hành MLOps để thống nhất DevOps.
  • Mã được mô-đun hóa cho các thành phần và quy trình: để xây dựng quy trình ML, các thành phần cần phải tái sử dụng được, kết hợp được và chia sẻ được ở các quy trình ML (tức là sử dụng các container).
  • Phân phối liên tục các mô hình: tự động hóa bước triển khai mô hình, tức là chạy thực tế mô hình đã được huấn luyện và công nhận như một dịch vụ dự đoán cho các dự đoán online.
  • Triển khai quy trình: ở cấp độ 0, bạn triển khai một mô hình được huấn luyện như một dịch vụ dự đoán vào môi trường sản xuất. Đối với cấp độ 1, bạn triển khai quy trình huấn luyện tổng thể (một cách tự động và thường xuyên) để chạy thực tế mô hình đã được huấn luyện như một dịch vụ dự đoán.

Các thành phần bổ sung

  • Xác thực dữ liệu và mô hình: quy trình kỳ vọng dữ liệu sống, mới nhằm tạo ra một phiên bản mô hình mới được huấn luyện dựa trên dữ liệu mới. Do đó, các bước xác thực dữ liệu và xác thực mô hình tự độnglà bắt buộc trong quy trình sản xuất.
  • Kho tính năng: kho tính năng là một kho lưu trữ tập trung, nơi chuẩn hóa định nghĩa, lưu trữ và truy cập của các tính năng để huấn luyện và phục vụ.
  • Quản lý metadata: thông tin về mỗi lần thực thi quy trình ML được ghi lại, hữu ích cho dòng đời dữ liệu và tạo tác, khả năng tái tạo và so sánh. Nó cũng giúp bạn gỡ lỗi và các bất thường
  • Kích hoạt quy trình ML: bạn có thể tự động hóa quy trình sản xuất ML để huấn luyện lại các mô hình bằng dữ liệu mới, tùy thuộc vào tình huống của bạn:
    • Theo nhu cầu
    • Theo lịch trình
    • Theo tính sẵn có của dữ liệu huấn luyện mới
    • Theo sự suy giảm hiệu suất của mô hình
    • Theo những thay đổi đáng kể trong phân phối dữ liệu (hồ sơ dữ liệu đang thay đổi).

Những thách thức

Thiết lập này phù hợp khi bạn triển khai các mô hình mới dựa trên dữ liệu mới, thay vì dựa trên các ý tưởng ML mới.

Tuy nhiên, bạn cần thử các ý tưởng ML mới và nhanh chóng triển khai các thành phần ML. Nếu bạn quản lý nhiều quy trình ML trong môi trường sản xuất, bạn cần thiết lập CI / CD để tự động hóa việc xây dựng, kiểm tra và triển khai các quy trình ML.

MLOps cấp độ 2

Với 1 cập nhật nhanh chóng và đáng tin cậy các quy trình trong môi trường sản xuất, bạn cần có một hệ thống CI/CD tự động mạnh mẽ.

Với hệ thống CI/CD tự động này, các data scientist sẽ sớm khám phá nhiều ý tưởng mới quanh feature engineering (kỹ thuật loại bỏ thuộc tính dư thừa), kiến ​​trúc định hướng mô hình và siêu tham số.

Cấp độ này phù hợp với các công ty hoạt động trong lĩnh vực công nghệ phải huấn luyện lại mô hình của họ hàng ngày, thậm chí hàng giờ, cập nhật chúng trong vài phút và triển khai lại trên hàng nghìn máy chủ đồng thời.

Nếu không có chu trình MLOps từ đầu đến cuối, các tổ chức như vậy sẽ không tồn tại được.

Thiết lập MLOps này bao gồm các thành phần sau:

  • Kiểm soát nguồn
  • Dịch vụ kiểm thử và xây dựng 
  • Dịch vụ triển khai
  • Sổ đăng ký mô hình
  • Kho thuộc tính
  • Kho siêu dữ liệu ML
  • Bộ điều phối quy trình ML

Đặc trưng

  • Phát triển và thử nghiệm: bạn liên tục thử các thuật toán ML và mô hình mới, trong đó các bước thử nghiệm được điều phối. Đầu ra của giai đoạn này là mã nguồn của các bước quy trình ML, sau đó được đẩy đến một kho lưu trữ nguồn.
  • Tích hợp liên tục theo quy trình: bạn xây dựng mã nguồn và chạy các bài kiểm thử khác nhau. Đầu ra của giai đoạn này là các thành phần quy trình (gói, tệp thực thi và tạo tác) sẽ được triển khai trong giai đoạn sau.
  • Phân phối liên tục theo quy trình: bạn triển khai các tạo tác được tạo ra bởi giai đoạn CI tới môi trường mục tiêu. Đầu ra của giai đoạn này là một quy trình được triển khai với việc triển khai mô hình mới.
  • Kích hoạt tự động: quy trình được thực hiện tự động trong quá trình sản xuất dựa trên lịch trình hoặc phản ứng với trình kích hoạt. Đầu ra của giai đoạn này là một mô hình mới được huấn luyện được đẩy vào sổ đăng ký mô hình.
  • Phân phối liên tục mô hình: bạn chạy thực tế mô hình đã được huấn luyện như một dịch vụ dự đoán cho các dự đoán. Đầu ra của giai đoạn này là một dịch vụ dự đoán mô hình đã triển khai.
  • Giám sát: bạn thu thập thống kê hiệu suất của mô hình dựa trên dữ liệu sống. Đầu ra của giai đoạn này là một trigger để thực thi quy trình hoặc thực thi một chu kỳ thử nghiệm mới.

Bước phân tích dữ liệu vẫn là một quy trình thủ công đối với các data scientist trước khi quy trình bắt đầu lặp lại thử nghiệm mới. Bước phân tích mô hình cũng là một quy trình thủ công.

Cơ sở hạ tầng MLOps: Xây dựng, mua hay kết hợp (hydrid)?

Các công ty điện toán đám mây đã đầu tư hàng trăm tỷ đô la vào cơ sở hạ tầng và quản lý.

Để cung cấp cho bạn một chút bối cảnh, một báo cáo của canalys nói rằng chi tiêu cho cơ sở hạ tầng đám mây công cộng đạt 77,8 tỷ đô vào năm 2018 và đã tăng lên 107 tỷ đô vào năm 2019.

Theo một nghiên cứu khác của IDC, với tốc độ tăng trưởng kép hàng năm (CAGR) là 22,3%, chi tiêu cho cơ sở hạ tầng đám mây ước tính sẽ tăng lên gần 500 tỷ đô vào năm 2023.

Chi tiêu cho các dịch vụ cơ sở hạ tầng đám mây đạt mức kỷ lục 30 tỷ đô trong quý 2 năm 2020, với Amazon Web Services (AWS), Microsoft và Google Cloud chiếm một nửa chi tiêu của khách hàng.

Từ góc độ nhà cung cấp, thị phần AWS vẫn ở mức “lâu đời” là khoảng 33% trong quý 2 năm 2020, tiếp theo là Microsoft với 18% và Google Cloud là 9%.

Trong khi đó, các nhà cung cấp đám mây Trung Quốc hiện chiếm hơn 12% thị trường toàn thế giới, dẫn đầu là Alibaba, Tencent và Baidu.

Các công ty này đầu tư vào nghiên cứu và phát triển phần cứng, phần mềm và các ứng dụng SaaS chuyên dụng, cũng như phần mềm MLOps. Hai ví dụ tuyệt vời xuất hiện trong tâm trí tôi:

  • AWS với Sagemaker, một nền tảng ML đám mây được quản lý từ đầu chí cuối, cho phép các nhà phát triển tạo, huấn luyện và triển khai các mô hình học máy trong đám mây, hệ thống nhúng và thiết bị tiên tiến.
  • Google với AI Platform Pipelines gần đây để xây dựng và quản lý các quy trình ML, tận dụng các thành phần và mẫu được tạo sẵn của TensorFlow (TFX’s) thực hiện rất nhiều công việc triển khai mô hình.

Vậy bạn nên xây dựng hay mua cơ sở hạ tầng hay kết hợp đây?

Các công ty công nghệ muốn tồn tại lâu dài thường có đội ngũ nội bộ và xây dựng các giải pháp tùy chỉnh. Nếu họ có kỹ năng, kiến ​​thức và công cụ để giải quyết các vấn đề phức tạp, thì không có gì sai với cách tiếp cận đó. Nhưng có những yếu tố khác đáng được tính đến, như:

  • thời gian và nỗ lực
  • nguồn nhân lực
  • thời gian để thu lợi nhuận
  • chi phí cơ hội.

Thời gian và nỗ lực

Theo một cuộc khảo sát của cnvrg.io, các data scientist thường dành thời gian xây dựng các giải pháp để bổ sung vào cơ sở hạ tầng hiện có của họ nhằm hoàn thành các dự án.

65% thời gian của họ dành cho các nhiệm vụ nặng về kỹ thuật, phi khoa học dữ liệu như theo dõi, giám sát, cấu hình, quản lý tài nguyên tính toán, cơ sở hạ tầng chạy thực tế, khai thác tính năng và triển khai mô hình.

Thời gian lãng phí này thường được gọi là “nợ kỹ thuật ẩn” và là một nút thắt cổ chai phổ biến đối với các đội nhóm machine learning.

Việc xây dựng một giải pháp nội bộ hoặc duy trì một giải pháp hoạt động kém hiệu quả có thể mất từ ​​6 tháng đến 1 năm.

Ngay cả khi bạn đã xây dựng cơ sở hạ tầng đang hoạt động, chỉ để duy trì cơ sở hạ tầng và cập nhật công nghệ mới nhất, bạn cần phải có quản lý vòng đời và một đội nhóm chuyên tâm.

Nguồn nhân lực

Việc vận hành machine learning đòi hỏi rất nhiều kỹ thuật. Để có một quy trình làm việc machine learning trôi chảy, mỗi đội nhóm data science phải có một nhóm vận hành hiểu được các yêu cầu riêng biệt của việc triển khai các mô hình machine learning.

Bằng việc đầu tư vào nền tảng MLOps end-to-end, các quy trình này có thể hoàn toàn tự động, sẽ giúp các nhóm vận hành tập trung vào việc tối ưu hóa cơ sở hạ tầng của họ dễ dàng hơn.

Phí tổn

Việc có một nhóm vận hành chuyên tâm để quản lý các mô hình có thể tốn kém. Nếu muốn mở rộng quy mô thử nghiệm và triển khai, bạn cần thuê thêm kỹ sư để quản lý quy trình này. Đó là một khoản đầu tư lớn và một quá trình chậm chạp để tìm được nhóm phù hợp.

Giải pháp MLOps có sẵn được xây dựng tính đến khả năng mở rộng, với chi phí thấp. Sau khi tính toán tất cả các chi phí khác nhau liên quan đến việc thuê và giới thiệu toàn bộ đội ngũ kỹ sư, lợi tức đầu tư của bạn giảm xuống, điều này đưa chúng ta đến yếu tố tiếp theo.

Thời gian sinh lời

Có thể mất hơn một năm để xây dựng cơ sở hạ tầng machine learning hoạt động được. Có thể mất nhiều thời gian hơn nữa để xây dựng một quy trình dữ liệu có thể tạo ra giá trị cho tổ chức của bạn.

Các công ty như Uber, Netflix và Facebook đã dành nhiều năm và nỗ lực kỹ thuật lớn để mở rộng quy mô và duy trì nền tảng học máy của họ để duy trì tính cạnh tranh.

Đối với hầu hết các công ty, một khoản đầu tư như thế này là không thể, và cũng không cần thiết. Lĩnh vực machine learning đã phát triển kể từ khi Uber, Netflix và Facebook xây dựng các giải pháp nội bộ của họ.

Ngày càng nhiều giải pháp có sẵn cung cấp tất cả những gì bạn cần ngay lập tức, với chi phí thấp hơn.

Chi phí cơ hội

Như đã đề cập ở trên, một cuộc khảo sát cho thấy 65% ​​thời gian của một nhà khoa học dữ liệu được dành cho các nhiệm vụ không liên quan đến khoa học dữ liệu. Việc sử dụng nền tảng MLOps sẽ tự động hóa các tác vụ kỹ thuật và giảm tắc nghẽn DevOps.

Các nhà khoa học dữ liệu có thể dành thời gian làm nhiều việc hơn – cung cấp các mô hình có ý nghĩa – trong khi nhà cung cấp đám mây lo phần còn lại.

Việc áp dụng nền tảng MLOps end-to-end có một lợi thế cạnh tranh đáng kể cho phép sự phát triển machine learning của bạn mở rộng quy mô lớn.

Còn về cơ sở hạ tầng MLOps kết hợp?

Một số công ty được tin tưởng giao phó với dữ liệu riêng tư và nhạy cảm. Nó không thể rời khỏi máy chủ của họ vì nếu có một lỗ hổng nhỏ, hiệu ứng gợn sóng sẽ rất thảm khốc. Đây là lúc cơ sở hạ tầng đám mây MLOps kết hợp ra đời.

Hiện tại, cơ sở hạ tầng đám mây tồn tại song song với các hệ thống tại chỗ trong hầu hết các trường hợp.

Quản lý đám mây lai rất phức tạp, nhưng thường cần thiết. Theo báo cáo Cơ sở hạ tầng đám mây năm 2020 của Cloudcheckr, cơ sở hạ tầng ngày nay là sự kết hợp giữa đám mây và tại chỗ (cloud và on-premise)

Cơ sở hạ tầng đám mây ngày càng phổ biến, nhưng vẫn hiếm khi tìm thấy một công ty lớn từ bỏ hoàn toàn cơ sở hạ tầng tại chỗ (hầu hết đều vì những lý do rõ ràng, chẳng hạn như dữ liệu nhạy cảm).

Một nghiên cứu khác của RightScale cho thấy rằng tỷ lệ áp dụng đám mây lai đã tăng 58% vào năm 2019 từ 51% trong năm 2018. Điều này có thể hiểu được vì có nhiều lý do để tiếp tục duy trì cơ sở hạ tầng tại chỗ.

Nền tảng On-prem
Tại sao công ty của bạn tiếp tục duy trì cơ sở hạ tầng tại chỗ?

Quản lý cơ sở hạ tầng hydrid là một thách thức

Quản lý bất kỳ loại cơ sở hạ tầng công nghệ doanh nghiệp nào không phải việc dễ dàng. Luôn có những vấn đề liên quan đến bảo mật, hiệu suất, tính khả dụng, chi phí và nhiều vấn đề khác.

Môi trường đám mây lai tạo thêm một lớp phức tạp khiến việc quản lý CNTT thậm chí còn trở nên khó khăn hơn.

Phần lớn các bên liên quan đến đám mây (96%) phải đối mặt với những thách thức trong việc quản lý cả cơ sở hạ tầng tại chỗ và đám mây.

Thách thức nào trong việc quản lý cơ sở hạ tầng tại chỗ lẫn đám mây?

Thách thức trong quản lý hạ tầng on prem và cloud
Thách thức trong quản lý hạ tầng on prem và cloud

Các vấn đề “khác” được báo cáo bao gồm nhu cầu về một bộ kỹ năng hoàn toàn khác, thiếu khả năng tiếp cận với máy tính và lưu trữ chuyên dụng.

Ngoài ra, phải thay đổi vai trò của nhân viên hiện tại để giao cho họ quản lý các hệ thống tại chỗ và cuối cùng là giải quyết các vấn đề về độ tin cậy đang diễn ra (như Timeout, Thiếu tài nguyên dữ liệu, Thiếu tài nguyên máy tính, Lỗi phần mềm, Lỗi cơ sở dữ liệu, Lỗi phần cứng và Lỗi mạng)..

Việc xây dựng nền tảng và cơ sở hạ tầng của riêng bạn sẽ ngày càng chiếm nhiều sự tập trung và chú ý của bạn khi nhu cầu tăng lên.

Thời gian có thể dành cho R&D mô hình và thu thập dữ liệu sẽ do quản lý cơ sở hạ tầng đảm nhận. Điều này không hay chút nào trừ khi nó là một phần của hoạt động kinh doanh cốt lõi của bạn (nếu bạn là nhà cung cấp dịch vụ đám mây, PaaS hoặc IaaS).

Mua một nền tảng được quản lý hoàn toàn mang lại cho bạn tính linh hoạt và khả năng mở rộng cao, nhưng sau đó bạn phải đối mặt với các vấn đề về tuân thủ, quy định và bảo mật.

Cơ sở hạ tầng MLOps đám mây kết hợp là tốt nhất lúc này, nhưng nó đặt ra những thách thức riêng, vì vậy, bạn có thể quyết định xem nó có phù hợp với mô hình kinh doanh của mình hay không.

Kết

Giờ đây bạn đã xác định được công ty của mình đang ở cấp độ nào, bạn có thể sử dụng một trong hai giải pháp MLOps:

  • End-to-end
  • Giải pháp MLOps được xây dựng tùy chỉnh (hệ sinh thái các công cụ)

Giải pháp MLOps end-to-end

Đây là những dịch vụ được quản lý hoàn toàn cung cấp cho các nhà phát triển và nhà khoa học dữ liệu khả năng xây dựng, huấn luyện và triển khai các mô hình ML một cách nhanh chóng. Các giải pháp thương mại hàng đầu là:

  • Amazon Sagemaker, bộ công cụ để xây dựng, huấn luyện, triển khai và giám sát các mô hình học máy
  • Bộ Microsoft Azure MLOps:
    • Azure Machine Learning để xây dựng, huấn luyện và xác thực các quy trình ML có thể tái tạo
    • Azure Pipelines để tự động triển khai ML
    • Azure Monitor để theo dõi và phân tích các chỉ số
    • Dịch vụ Azure Kubernetes và các công cụ bổ sung khác.
  • Bộ MLOps của Google Cloud:
    • Luồng dữ liệu để trích xuất, xác thực và chuyển đổi dữ liệu cũng như để đánh giá các mô hình
    • AI Platform Notebook để phát triển và huấn luyện các mô hình
    • Cloud Build để xây dựng và kiểm tra các quy trình học máy
    • TFX để triển khai quy trình ML
    • Kubeflow Pipelines để sắp xếp triển khai ML trên Google Kubernetes Engine (GKE).

Giải pháp MLOps tùy chỉnh

Các giải pháp end-to-end là tuyệt vời, nhưng bạn cũng có thể tự xây dựng bằng các công cụ yêu thích của mình, bằng cách chia quy trình MLOps thành nhiều microservices.

Cách tiếp cận này có thể giúp bạn tránh một điểm lỗi duy nhất (SPOF) và giúp quy trình của bạn trở nên mạnh mẽ – điều này làm cho quy trình của bạn dễ kiểm tra, gỡ lỗi và tùy chỉnh hơn. Trong trường hợp nhà cung cấp microservice gặp sự cố, bạn có thể dễ dàng thay thế bằng một nhà cung cấp dịch vụ mới.

Ví dụ gần đây nhất về SPOF là AWS ngừng hoạt động, điều này rất hiếm nhưng có thể xảy ra. Ngay cả Goliath cũng có thể gục ngã.

Microservices đảm bảo rằng mỗi dịch vụ được kết nối với nhau thay vì nhúng với nhau. Ví dụ, bạn có thể có các công cụ riêng biệt để quản lý mô hình và theo dõi thử nghiệm.

Cuối cùng, có rất nhiều công cụ MLOps có sẵn, tôi xin đề xuất 7 lựa chọn hàng đầu của tôi:

  • Project Jupyter
  • Nbdev
  • Airflow
  • Kubeflow
  • MLflow
  • Optuna
  • Cortex
  • Neptune

Bằng cách tận dụng những công cụ này và nhiều công cụ khác, bạn có thể xây dựng một giải pháp end-to-end bằng cách kết hợp các microservice lại với nhau.

MLOps là một lĩnh vực mới đang phát triển nhanh chóng, với các công cụ và quy trình mới luôn ra đời. Nếu bạn tham gia chương trình đào tạo MLOps ngay bây giờ, bạn đang đạt được lợi thế cạnh tranh rất lớn.

Tham khảo: Neptune.ai