Làm thế nào để trở thành một ML Engineer

kaggle
ml-engineer

#1

Chào các mọi người trong diễn đàn ạ. Em hiện nay đang là sinh viên năm nhất khoa Điện - Điện Tử của ĐH BK HCM. Em dự định năm 2 sẽ cố gắng vô chuyên ngành Điện Tử Viễn Thông.

Em tạo topic này mong muốn các anh có thể cho em một số gợi ý để có phương hướng mà cố gắng. Hi vọng của em là trở thành một Machine Learning Engineer.

Em cám ơn ạ.


#2

Thực sự thì Điện Tử Viễn Thông không có liên quan nhiều đến Machine Learning Engineer. Anh chưa hiểu rõ ý em lắm. Cũng có thể em mới là năm 1 nên chưa hình dung rõ, đang bị phân vân giữa các định hướng. Có lẽ em nên tìm đọc để hiểu rõ trước, xem mình có thích không. Tuy nhiên những thứ cơ bản như Toán, Tiếng Anh thì cái gì cũng cần.


#3

Chào bạn,

Cách đây 6 tháng mình cũng có câu hỏi giống bạn: Muốn trở thành Machine learning engieer thì cần những gì?

Có khá nhiều người trả lời và cho mình lời khuyên. Trong đó có một người đang là Deep Learning Solution Architecture ở NVIDA khuyên mình những bước nhỏ sau đây:

  • Chuẩn bị kiến thức toán tốt
  • Tham gia khóa học của Andrew Ng trên Coursera.
  • Tham gia khóa học của fastai
  • Tham gia khóa học về DL của Udemy
  • Tham gia thi đấu Kaggle.

Ngoài ra bạn có thể tham khảo tài liệu ở topic này nhé.

Mình thực hiện gần hết những điều trên. Đến giờ mình nghĩ mình tự tin đi phỏng vấn vị trí Machine Learning Engineer.

Trong những việc trên, cái mình làm nhiều nhất đó là tham gia thi đấu Kaggle. Theo mình nghĩ, bạn chỉ cần trở thành Competition Expert trên Kaggle là đủ kiến thức, kỹ năng trở thành ML Engineer rồi.

Việc trở thành Expert mình nghĩ không có. Bạn cần 2 huy chương đồng trở lên. Để đạt huy chương đồng thì đơn giản lắm. Có khá nhiều bài viết, phương pháp được public chia sẻ ở các cuộc thi. Bạn chỉ cần làm theo hướng dẫn là cố gắng improve một chút là chắc chắn được huy chương đồng :slight_smile:. Việc tham gia thi đấu giúp bạn học hỏi nhiều kiến thức và vân dụng, thực hành được nó.

Bạn đặt câu hỏi này năm bạn 20 tuổi, mình thì đặt câu hỏi này năm mình 25 tuổi. Bạn có định hướng sớm như vậy là rất tốt vì bạn có nhiều thời gian chuẩn bị hơn mình. Chúc bạn thành công nhé.

Cheers,


#4

Mình đang học đến fastai rồi :))) bạn cho xin link cụ thể DL trên Udemy với ạ, tìm trên Udemy nhiều kết quả quá


#5

Udemy kiếm mấy khoá top thôi. Giải thích khá Ok. Riêng cá nhân mình thì mình anti khoá cua đồng chí lazyprogrammer.

Ngoài ra khoá DL của Google trên udacity cũng khá hay :smile:


#6

Trong những bước trên thì mình k thực hiện bước học Udemy bạn ạ :rofl:. Mình thấy học hành tốn thời gian quá, thực tập lên trình nhanh hơn :thinking:


#7

Vậy là không học DL mà vẫn thi Kaggle luôn hả anh


#8

Mình có học bạn nhé. Đầu tiên mình đọc quyển Deep learning của Goodfellow. Sau đó mình bắt đầu thi Kaggle. Cuộc thi đầu tiên mình tham gia giành cho beginner là:

Những bài này đơn giản, data nhẹ nên dễ thực hành. Mình đọc hết những bài post ở mỗi cuộc thi nhiều nhất có thể. Cảm giác như đọc mấy cái đó hay hơn đọc quyển sách kia :joy: , bởi vì nó rất thực tế.

Sau đó mình có tham gia mấy cuộc thi trình độ nâng cao hơn như là:

  • Avito Demand Prediction Mình cực kì thích cuộc thi này. Ở đây mình sử dụng deep learning rất nhiều bao gồm xử lý tarbular data, ảnh và đặc biệt là NLP (phần mình làm nhiều nhất). Sau cuộc thi này mình tự tin rất nhiều :smile:. Tiếc là mình bị disqualified không thì cũng đạt HCB :sweat:

  • Imaterialist Challenge Furniture 2018 Những gì mình học được chủ yếu từ cuộc thi này là các finetune model và blend :smiley:. Trong cuộc thi Zalo Landmark, mình có dùng lại baseline model của cuộc thi này.

  • Ngoài ra mình có tham gia một vài cuộc thi về Machine learning nữa (liên quan đến banking, financial) nhưng k tập trung nhiều vì k có thời gian.

Chúc bạn thành công, Cheers


#10

Mình đọc quyển Deep learning mà ko hiểu. Thấy yếu toán nên giờ phải lôi mấy quyển toán ra đọc lại!


#11

Em học trên trường gồm mấy môn liên quan đến toán như giải tích, đại số, xác suất thống kê, phương pháp tính, toán kĩ thuật. Có một môn mà bên điện e không được học là toán rời rạc, cái đó bắt buộc phải có để trở thành MLE không ạ?


#12

Mình thấy xác suất thống kê và đại số tuyến tính là hai phần toán quan trọng nhất của ML. Cho nên bạn không cần phải lăn tăn về môn toán rời rạc lắm đâu. Bạn có thể tham khảo phần toán mà anh @Tiep đã chia sẻ ở đây

Just for fun: Có những nguời rất giỏi về DL mà k cần giỏi toán :party_parrot:

Chuc ban thanh cong


#13

Về cơ bản thì mình nghĩ bạn cũng không nên quá lo về toán rời rạc đâu. Khi mình đọc một số thuật toán cơ bản mà a Tiep có đăng trên Machine Learning thì đa phần là rơi vào Đại số tuyến tính, giải tích và Xác suất thống kê.

Thật ra thì mình đang bắt đầu học về ML từ những bước cơ bản nhất. 3 môn toán kia mình quên gần như hết sạch, hiện tại mình đang tự học lại cả 3 môn trên, mình học được khoảng 1 tuần rồi. Mình nghĩ sẽ tốt nếu như mình cứ tiếp tục kiên trì, chịu khó và không bỏ cuộc. Mình hy vọng bạn cũng vậy, cố lên. :smiley:


#14

Ở trên thì các bạn đã giới thiệu khá nhiều về việc chuẩn bị cho việc học và thực hành về ML/DL. Nhưng với cá nhân mình thì bạn có thể bắt đầu từ:

  1. Coding: nên có sự hiểu rõ về cấu trúc dữ liệu và thuật toán, cách thiết kế thuật toán. OOP, Database, API, System Design (Mình thấy khá nhiều bạn biết về ML/AI nhưng khi hỏi các kiến thức nền thì hầu hết ko biết hoặc đã quên)
  2. Chuẩn bị các kiến thức về toán
  3. Kiến thức về Machine Learning: Hiểu về logistic regression, SVM, Decision Trees, K-means, PCA … Có thể join vào các khoá học của Andrew Ng trên Coursera
  4. Deep Learning : Có thể học course deeplearning.ai, fastai
  5. Thực hành: Tham gia thi đấu trên Kaggle
  6. Cập nhật thông tin mới về ML/AI: Lên reddit https://www.reddit.com/r/MachineLearning/ hoặc follow một số expert trên twitter

#15

Mình nghĩ là ko giỏi toán và xác suất thì vẫn làm ML engineer được. Thực ra theo mình công việc của ML engineers cũng khá rộng và khác với ML scientists. ML engineers có lẽ chỉ cần toán cơ bản, hiểu rõ bản chất từng mô hình ML và các parameters, giỏi lập trình và các framework ML, có khả năng thực hiện các giải pháp.


#16

Các bước mà anh list ở trên thì anh cho em hỏi là anh tâm đắc bước nào nhất? Bước nào giúp a học được nhiều nhất ạ?


#17

Chào bạn,

Trong các bước trên mình thích nhất bước thi Đấu Kaggle :smiley:. Cám giác tiến thêm một chút trên bảng xếp hạng nó thú vị lắm. Được vị trí cao nữa thì càng sướng :party_parrot: . Cuối cuộc thi, các cao thủ top1 lần lượt trình bày solution, đấy là lúc tổng hợp kiến thức và nhìn lại những gì mình làm trong cuộc thi. Đấy là cách học mà minh nghĩ là nhanh và thiết thực nhất với một ML engineer.

Cheers


#18

Em cảm ơn a đã chia sẻ. chúc anh thành công!!!


#19

Mình có đọc về 1 số role trong ngành ML, và bản thân hiên cũng đang được coi là 1 ML engineer, mình nghĩ vai trò chính của ML engineer là tổ chức, truy vấn dữ liệu, xây dựng hệ thống. Tất nhiên là engineer cũng cần phải biết cả phân tích, nhưng đó ko phải nhiệm vụ chính(nhiệm vụ đó đâ phần của data analysis, và data scientist). Về những thứ phải biết sẽ bao gồm biết Hadoop và hệ sinh thái của nó(Spark, MapReduce, Hbase, Phoenix, Hive), kiến thức về lập trình(OOP, Data structure), 1 chút kiến thức về ML cơ bản(các thuật toán cơ bản) và biết dùng 1 số thư viện ML của Python(Tensorflow, Pandas, Numpy).


#20

A ơi, giờ em đang là sinh viên năm nhất, và e mới đang học về C++ (theo chương trình trường) và Python là tự học. Vậy nếu muốn tiến dần đến mảng ML/DL thì nên học những gì và cần những gì ạ?