Bài viết chuyên sâu

Kỹ thuật gia công dữ liệu số

Kỹ thuật gia công dữ liệu số

by Admin Dathoc -
Number of replies: 0

Đặt vấn đề

Trong công cuộc đổi mới và với sự hỗ trợ tốt nhất của CNTT lên muôn mặt đời sống xã hội, cùng với sự bùng nổ của CNTT, Cách mạng công nghệ 4.0, dữ liệu số, và bài toán xử lý dữ liệu số dần trở nên phổ biến, và áp dụng cho nhiều ngành nghề dự đoán, phân tích, cảnh báo, nhận diện. Bài toán trở nên việc phải xử lý, cập nhật một lượng thông tin vô cùng lớn đang được truyền tải trên các mạng viễn thông, internet sau mỗi giây thời gian, và việc các kỹ sư gia công muốn thu thập cũng như xử lý cần các hệ thống lớn, kiến trúc lớn để xử lý.


Các bài toán được phân bổ ra các dạng:

  • Thu thập xử lý thông tin hình ảnh, video, để nhận dạng, dự đoán, phân tích thông tin

  • Thu thập xử lý thông tin dữ liệu text


Bài viết này mô tả các kiến thức cơ bản khi bạn mong muốn xử lý dữ liệu số nói chung, cần qua những bước cơ bản nào. Bạn cần sử dụng kỹ thuật gì. Các vai trò nào trong toàn bộ quy trình cần lưu tâm.


Quy trình xử lý

2MWmXreSyRepVgnZxFNht-gkjYW4hrP6IYQOz1nhr-rkYHPvV-gIru9tMAwyuxLA3KMyr2ezuoK84bSr78PUvFo6_vA9sSSyKmRZgHei0kXEcgfRcDxTrurZ9EsfvduIgHXN41AT


Hiểu rõ hơn một số khái niệm trong quy trình, tóm lược như sau:

  • Data source: nơi lấy, cung cấp cho quy trình về dữ liệu các loại: text, ảnh, log, âm thanh…Thông thường là những đầu cuối của hệ thống khác, hoặc output của hệ khác

  • Ingestion layer, collector: tạm hiểu là những công cụ, phương thức để lấy: cụ thể: nếu nguồn là db MS SQL, tôi sẽ dùng Sqoop; nếu là log file , tôi sẽ dùng Nifi; nếu là ảnh từ camera, rôi sẽ dùng AWS Kinesis

  • Visualization layer: đây là phân tầng thể hiện dữ liệu sau khi phân tích, xử lý xong. Thông thường là những thành quả công thức, hoặc biểu đồ chart, hoặc true false khi nhận diện, nhận dạng

  • Security layer: tất nhiên trong mọi hệ thống lớn nhỏ đều phải quy định ai làm gì và xác nhận action đó có quyền đc làm gì, phạm vi gì

  • Monitoring layer: phần kiểm soát theo dõi các tiến trình; có thể gắn thêm những quy định để cảnh báo một số activity quá mức cho phép; cảnh báo quá tải; tình trạng activity

  • Storage layer: không thể không có vì đây là nơi lưu tạm hoặc bể chứa các dữ liệu thu thập. Có thể là chưa gán nhãn hoặc chưa phân loại. Có thể là nơi chứa tạm các dữ liệu trong quá trình phân loại; đầu ra của các thuật toán

  • Processing: có 3 công đoạn rất quan trọng: preprocessing, processing, post-processing

  • Query layer: các cơ chế truy vấn map reduce hoặc sql hoặc cơ chế cluster query

  • Analytic engine: các cơ chế chứa các thuật toán phân tích sẵn có; thuật toán tự tạo


Ví dụ cụ thể mã nguồn và công nghệ một số bài toán:

https://www.pyimagesearch.com/2017/04/10/detect-eyes-nose-lips-jaw-dlib-opencv-python/

  • Phân tích dáng người phát hiện người quen, hay là trộm đột nhập:

https://www.pyimagesearch.com/2015/05/25/basic-motion-detection-and-tracking-with-python-and-opencv/

  • Phân tích nhu cầu mua ô tô dựa trên nhu cầu mua xe máy của Honda Vĩnh Phúc tại Việt Nam: xem clip:

  • Các bài toán dự đoán, phân tích điển hình: sách kèm mã nguồn, kèm dữ liệu tham khảo: https://1drv.ms/b/s!AoMt1NVPO04zgq9qiAXWnyhrfvEKCA?e=tgeh6m

  • Thu thập dữ liệu facebook, ra quyết định kinh doanh: xem clip:

  • Series video nổi tiếng về bài học làm chatbot qua 1.7 tỷ câu thoại tiếng Anh (giờ không dùng kiểu này nữa. Dùng các framework mới tiện hơn cho một phạm trù, tốn ít bộ nhớ cho mô hình hơn):


Như vậy qua phần này chúng ta đã hiểu một quy trình chung , từ lý thuyết tới bài toán thực tiễn, cho việc phân tích dữ liệu, kèm thuật toán để dự đoán cũng như ra quyết định, đặc biệt cho máy học, học sâu và cho ngành trí tuệ nhân tạo sau này. 


Vậy cũng qua đây, một loạt các activity và câu hỏi đặt ra: ai làm gì ở đâu:

  • Mỗi layer trên, cần có những hoạt động gì

  • Mỗi layer trên đầu vào là gì đầu ra là gì

  • Công nghệ tiên tiến áp dụng từng layer

(Chúng ta sẽ tìm hiểu ở những bài viết tiếp theo)

Các công nghệ nổi trội hiện tại giải quyết vấn đề

Sau khi quy trình đã rõ ràng, chúng ta bàn tới công nghệ và năng suất của nó giải quyết các layer trên. Qua nhiều năm cải tiến, chúng ta cần tập trung tìm hiểu những công nghệ sau. Đây đưa ra đề xuất. Các bạn cần tìm hiểu thêm để rõ hơn, đây là những kinh nghiệm của mình khi đã trải qua:


  1. Ingestion, collection:

Kafka, Nifi, Sqoop, Flume, AWS kinesis, Spark stream, Webdriver crawling, hacking… rất nhiều, tức là những công nghệ chuyển đổi, thu thập. Tùy từng loại dữ liệu bạn dùng.

Hiện tại chủ yếu phổ biến nhất là: Nifi và việc crawling dùng webdriver


  1. Data query

Bạn chưa biết sẽ dùng: SQL hoặc Key-Value, JSON

Bạn đã biết hoặc chuyên nghiệp hơn sẽ dùng: map/reduce, n1ql, distributed query .. nó phụ thuộc bạn dùng db nào


  1. Analytic engine

Bạn chưa biết thì dùng tool sẵn: Power BI, Tableau, Canvas.JS, SPSS, Elastic search, Seq2Seq

Bạn chuyên nghiệp dùng: R lib, Spark Mllib, Tensorflow, CNN, RNN, BRNN, Rasa, Wit.AI

Bạn là chuyên gia: sẽ tự nghĩ ra thuật toán cơ chế phân tích riêng


Một bài viết chi tiết về các thuật toán nổi trội: https://www.phamduytung.com/blog/2019-04-19-deep-learning-view/


  1. Processing

Stream, Batch, Live processing

Bạn chưa biết: máy tính lớn, ram-hdd processing, cpu processing

Bạn chuyên nghiệp: gpu computing, cluster computing, in-memory computing


  1. Storage

Bạn chưa biết: MS SQL, Oracle, My SQL, maria db

Bạn chuyên nghiệp: parquet, orc, avro, kudu, couchbase


Một kinh nghiệm nhỏ làm bigdata với db/storage với loại data nào, xem clip:


  1. Security

Chủ yếu secure protocol: SSL

Session secure: JWT, SAML

Encryption qua mạng: sha 256


  1. Monitor

Bạn chưa biết: MS SQL, Oracle, My SQL, Maria db

Bạn chuyên nghiệp: parquet, orc, avro, kudu, couchbase


  1. Visualize:

Bạn chưa biết thì dùng tool sẵn: Power BI, Tableau, Canvas.JS, SPSS

Bạn chuyên nghiệp dùng: Zeppelin, mapbox, Spark graphx

Các trở ngại khó khăn

Vậy nếu nhìn các kiến thức trên thì trở ngại khó khăn gì với người mới học:

  • Cơ man nào là tool và ngôn ngữ

  • Có quá nhiều cái cần học, ko biết sắp xếp time

  • Rộng và sẽ ngại bước đầu


Trở ngại khó khăn gì với người ĐÃ TRẢI NGHIỆM một thời gian: 1 năm, 2 năm:

  • Rất khó đổi, chuyển sang công nghệ khác

  • Ngôn ngữ khác làm rào cản

  • Ít đọc hiểu và so sánh hiệu năng từng công đoạn trong mỗi layer

  • Không chịu phát minh thêm thuật toán để tối ưu hơn, ỉ lại những gì sẵn có

Ngành nghề cần kỹ sư, chuyên gia tại Việt Nam và Thế Giới

Các này chỉ cần 15 phút search trên internet và việc làm bạn sẽ thấy những nghề như sau, bạn nên chọn và học hỏi những cái tổ chức cần. Tôi hy vọng nó không vượt qua quy trình nói trong bài viết này:


Nghề phân tích dữ liệu đơn giản

  • Thông thường cho các bạn trái nghề, các bạn bên kinh tế, dân amatuer cần. Nhưng từ 7tr tới 12 triệu là ..rất nhiều công nhân nhí cần việc này. Và các doanh nghiệp vừa và nhỏ cũng chỉ cần tới thế thôi

Nghề phân tích indicator cho chứng khoán, đặt lệnh giám sát gian lận

  • Thu nhập từ 20-25 triệu.

Nghề thu thập và phân tích dữ liệu theo mạng xã hội

  • Mức lương ở VN trong khoảng 15-20 triệu. Bài toán khá đơn giản là ai lập trình cũng thu thập được. Xong cần sáng suốt hơn các đối thủ khác bằng cách tự phân tích thu thập và ra được insight từ dữ liệu

Nghề phân tích text nlp

  • Cho các bạn nghiên cứu ý nghĩa insight từ text. Thông thường là nhà nghiên cứu ngôn ngữ. Các tổ chức làm chatbot. Thu nhập từ 20-25 triệu.

Nghề tạo ứng dụng chatbot

  • Tương tự như bạn làm NLP

Nghề phân tích ảnh, đồ vật, chữ viết trên ảnh

  • Lương có thể lên 15-20 triệu. Thường là những bạn suốt ngày cắt ảnh, phân loạt chạy CNN kèm gpu. Công việc khá nhàm nhưng cần overtime liên tục

Nghề phân tích nhận dạng mặt người 2D, 3D

  • Mức cao cấp hơn của phân tích hình ảnh, cần dùng và tối ưu nhiều thuật toán. Lương có thể từ 25-30 tr.

Nghề lập trình điều khiển ra lệnh robot thông minh

  • Thông thường các viện lab, tập đoàn lớn mới đủ đầu tư cái này. Lương có thể từ $2k-5k tùy hàm bậc học hành

Nghề tạo hub cho ngôi nhà thông minh

  • Hiện tại có nhiều quỹ đầu tư đầu tư cái này, mức thu nhập từ 20-30tr vnd.

Kết luận

Vậy đấy, thế giới AI và quy trình cũng như nghề nghiệp của nó tại Việt Nam đã trong lòng bàn tay của các bạn. Mình hy vọng qua bài viết này, phần nào cho các bạn cảm nhận và thấy trước những kiến thức, đường đi nước bước để các bạn tham gia học hỏi, và đi đúng hướng, tìm đúng kiến thức mình cần.


Hy vọng các bạn thấy bổ ích từ bài viết này.