Phân vân giữa con đường Research và Engineer

career
research
ml-engineer

#1

Xin chào các anh chị ở diễn đàn.

Như ở đầu đề, em đang có rất nhiều băn khoăn về việc lựa chọn giữa 2 career path này, nhất là sau khi đọc một số bài viết trên subreddit /csmajor hay là /MachineLearning.

Nói về background, hiện em đang học năm 2 ở Ecole Polytechnique, Pháp, bằng kép kĩ sư + master. Trong hệ thống giáo dục Pháp thì chương trình này tương đương với năm 3/4 của Bachelor ở các nước khác. Tức là, về cơ bản thì em đang đứng trước việc lựa chọn chương trình học cho 2 năm Master và có thể là PhD sau này nữa. (Ở Pháp thì mọi người học 2 năm Master rồi nếu muốn thì có thể tiếp tục làm PhD trong 3 năm - tập trung vào nghiên cứu chứ ko cần phải đi học nữa). Em không dám nói mình giỏi toán nhưng ở trường em thì sinh viên được trang bị rất đầy đủ các môn Toán ứng dụng như xstk, markov, optimisation v.v… Em dự định học về CV, NLP hay nói chung chung là AI.

Hiện tại em đang phân vân giữa việc :

  1. Học xong master và làm việc ở vị trí ML Engineer
  2. Tất nhiên là vẫn phải hoàn thành master, và tiếp tục làm PhD để có cơ hội làm ở R&D của các công ty top.

Vì vậy, em có một số câu hỏi cụ thể mong anh/chị trả lời :

  1. Thực tế thì công việc của 1 ML Engineer là gì? Đọc paper và áp dụng các model hay là các công việc từa tựa như Swe?
  2. Research Engineer là gì? Và research engineer thì có cần bằng PhD không?
  3. Các anh chị có thể cho em lời khuyên về việc lựa chọn giữa 2 career path được không ạ? Em có cơ hội được tiếp xúc nhiều với các anh đang làm PhD và postdoc, mọi người đều khuyên là nên làm PhD nếu muốn thực sự làm cutting-edge technology và đặc biệt là CV vì ngành này hiện nay vẫn còn khó. Cơ mà em vẫn chưa có cơ hội xin ý kiến từ những người làm engineer.

Mong mọi người giúp đỡ em. Merci :smiley:


#2

Hi bạn, mình đang làm PhD, trường Evry val d’Essonne. Chúng ta khá gần nhau đấy :joy:. Đề tài của mình theo dạng CIFRE nên mình nghiên cứu trong team R&D của một cty startup. Vì có vài điểm liên quan nên mình chia sẻ những quan sát trong môi trường làm việc của mình để bạn tham khảo, cũng đc lắng nghe từ bạn và nhiều anh chị em trong forum.

Trong team mình làm việc vs nhiều bạn Research Engineer / ML engineer và tất cả đều có bằng Master hoặc có bằng Engineer. Chưa có ai có bằng PhD nhưng đều làm việc rất ok. Mình thấy có vài yếu tố quan trọng trong công việc. Thứ nhất là có khả năng hiểu nhanh các thuật toán SOTA. Thứ hai là nắm rõ các problems của doanh nghiệp, từ đó xem liệu algorithm nào giải quyết đc problem nào.

Bên cạnh kinh nghiệm training neural nets thì mình thấy kỹ năng data engineering cũng rất cần thiết vì SOTA trên paper thì thường đc test trên data rất đẹp, nhưng vào doanh nghiệp thì data ko đc hoàn hảo như thế nên phải làm preprocessing thường xuyên.

Được đào tạo ở Polytechnique mình tin là bạn có nền tảng mạnh đấy, nên bạn có thể mạnh dạn apply vào vị trí ML Engineer cho các cty đc rồi. Đấy là về năng lực. Còn việc có bằng cao hơn thì mình nghĩ nó tạo ra lợi thế cho bạn trong việc đề xuất mức lương cao hơn, cũng như cơ hội thăng tiến sau này.

Nếu bạn muốn tạo ra một method mới, đột phá trong cộng đồng ML thì mình nghĩ PhD là cần thiết. Nhưng để trở thành một Research Engineer tốt thì thú thực là mình tin nhiều bạn có nền tảng toán, lập trình tốt, đọc hiểu thuật toán tốt hoàn toàn đáp ứng được.

Đấy là những quan sát của mình. Có thể nó ko giống hệt như các cty khác nhưng hy vọng có ích cho bạn.

P/s: Mình làm ở trong Paris nhưng thỉnh thoảng xuống hay phải xuống Evry họp với professor. Hy vọng có dịp tiện thì hangout với bạn :grin:


#3

Cảm ơn anh. Câu trả lời của anh thực sự giúp ích cho em rất nhiều. Có thể trước tiên em sẽ định hướng cho ML/Research Engineer trước, còn Researcher để sau hãn tính vậy :joy:

Noel này em vẫn đang ở trên Polytechnique. Nếu rảnh thì anh cứ ới em 1 câu nhé. Loanh quanh khu Massy, Palaiseau này nọ chắc ổn. Vì giờ này thì tàu bus hơi khó kiếm anh ah :rofl:


#4

École polytechnique có học bổng cử nhân à anh? Hay a học hệ kỹ sư 3 năm rồi chuyển sang ạ


#5

Chào em. X hiện có 2 hệ liên quan đến bậc đại học: hệ Bachelor (kiểu Mỹ, học bằng tiếng Anh, tương đương 4 năm ĐH), hệ Kỹ sư (kiểu “truyền thống”, học bằng tiếng Pháp, tương đương 2 năm cuối ĐH và 2 năm Master). Cả 2 hệ đều hỗ trợ học bổng và hỗ trợ tài chính.

Anh ở hệ Kỹ sư. Trước khi sang đây anh học 2 năm ĐH ở VN.

Nếu em muốn hỏi chi tiết hơn thì gửi mail vào địa chỉ mail của anh như ở trên. Hỏi ở đây thì sẽ lạc đề mất :rofl: Merci em.


#6

A ở Gif, cũng ko xa trường X lắm, sếp của anh là một anh chef data scientist từ trường X ra. Theo anh thì tốt nghiệp trường X, e có nhiều cơ hội kiếm post Data scientist hoặc ML engnieer mà ko cần làm PhD


#7

Mình đã có bằng PhD và hiện đang làm postdoc, sắp tới sẽ làm senior researcher ở ngoài công ty hay engineer cũng vậy. Mình có dùng ML, DL cho công việc của mình, nhưng mình không phát triển ML/DL, chỉ ép nó phục vụ cho miền ứng dụng của mình.

Nói qua để em biết background và lời khuyên của mình về việc có theo học PhD hay không.

Thứ nhất, research engineering không nhất thiết cần bằng PhD. Nhưng nhiều người có bằng PhD.

Thứ hai, em cần xác định mục tiêu của em là gì? Em muốn đi làm industry hay academic?

Hãy chọn PhD nếu em muốn giải quyết những vấn đề khó, có thể dành cả 3-4 năm giải quyết một vấn đề, đào sâu nó - dù vấn đề tưởng chừng rất nhỏ.

Mình không phủ nhận PhD có thể cho em nhiều cơ hội nếu topic nghiên cứu của em đặc biệt và dính tới quan tâm của công ty đó. Nhưng kể cả các công ty lớn, tỷ lệ người có bằng PhD vẫn nhỏ hơn nhiều với số lượng người không có bằng PhD. Tuy nhiên vị trí PhD thường tuyển theo topic và kinh nghiệm có sẵn không hẳn là fresh hoàn toàn. Nó có thể dẫn tới việc em nghiên cứu cái gì đó quá lý thuyết và bên ngoài công ty họ không dùng, hoặc kỹ thuật quá ít người quan tâm. Dẫn đến ra trường xin việc ở công ty rất khó.

Ngược lại, vị trí software engineering thì các công ty lớn cũng tuyển rất nhiều, tất nhiên cần qua được vòng hồ sơ rồi, phỏng vấn code review và các cái khác nữa.

Mình nhắc lại một chút là có sự khác biệt rõ ràng giữa người phát triển và ứng dụng ML/DL. Như bên NLP hay CV cũng phần lớn là sửa đổi kỹ thuật, kiến trúc, mạng nó không hoàn toàn là phát triển AI nói chung mà thiên về ứng dụng nhiều hơn. Em nên chọn cho mình một domain expert nhất định. Đừng tham cái gì cũng biết một ít. Vì những người như vậy đã có rất nhiều rồi, họ tuyển em không vì cái gì em cũng biết mà vì expert hoặc tốt hẳn về một chủ đề nào đó.

Việc nhảy một phát vào các công ty lớn ngay có thể cũng khó, và đôi khi hên xui, nên có thể bắt đầu từ công ty nhỏ trước.

Nên chung quy lại, lựa chọn an toàn và cho em cái “vị” của nghiên cứu thì hãy học Master trước. Vì 2 năm sẽ trôi qua rất nhanh, và cố gắng thu thập kỹ năng cần thiết, và cảm nhận việc nghiên cứu vấn đề rất nhỏ xem em có hợp với nó không. Đồng thời cũng thử tìm kiếm cơ hội thực tập cũng như xin việc công ty bên ngoài.


#8

Em chào anh/chị. Trước tiên em xin cảm ơn vì anh/chị đã góp ý rất chi tiết và kĩ lưỡng ạ.

Em thì nghiêng về bên industry nhiều hơn. Lúc đầu em hiểu sai, thì nghĩ industry chỉ có engineering, nhưng bây giờ em lại thấy thực chất R&D của các công ty cũng tuyển rất nhiều người làm research, và việc nghiên cứu SOTA thì chắc chắn là thú vị rồi. Nên bây giờ em hơi bối rối chút vì khi mà cái trực giác của mình bị sai thì thường mình hay bối rối, nghi ngờ những thứ mình nghĩ mình biết :rofl:

Theo như anh/chị nói, thì em hiểu là các công ty sẽ tuyển PhD dựa trên kinh nghiệm nghiên cứu của họ trong lĩnh vực liên quan phải không ạ? Vậy nếu có một chương trình làm PhD được finance bởi 1 công ty thì chắc là sẽ ổn hơn? Theo như anh @Tai_DOAN1 nói thì anh ấy đang làm PhD dạng CIFRE, theo em hiểu thì là kiểu PhD finance bởi 1 công ty và được tính là hợp đồng lao động với họ. Theo kiểu vậy thì chắc mình sẽ chọn 1 chủ đề liên quan đến project của công ty và bắt đầu nghiên cứu, em nghĩ vậy.

Anh/chị cũng nói là nên chọn cho mình một domain expert nhất định. Ý này em không hiểu cho lắm. Ở đây là mình nói về việc làm Software engineer thì nên chọn 1 domain cụ thể hay là sao ạ?

Về việc thử “vị” nghiên cứu, em cũng thấy may mắn vì trong chương trình học của trường em có tích hợp 2 năm học Master. Em nghĩ là kể cả làm Software Engineer hay Research Engineer mà có bằng Master thì cũng đều tốt hơn. Ngoài ra cũng có 2 chương trình thực tập bắt buộc là thực tập trong công ty và thực tập research. Em sẽ cố gắng thử cả hai dạng intern này để nếm tí mùi nghiên cứu xem sao :joy:

Cảm ơn lời khuyên và góp ý của anh/chị ạ.


#9

Domain expert ở đây là một ngành mà em có kinh nghiệm hơn hẳn. Đơn cử như trong học máy em làm về thị giác máy, và đặc biệt là mạng convolutional neural network, và đặc biệt là các thị giác máy về video như nhận diện cảm xúc hay nhận diện hành động. Mức độ expert thì cần hướng tới là như vậy chứ không phải là cái gì em cũng biết một chút chút và chẳng có gì biết sâu cả.

Nếu em nên thử các vị trí trên linkedin sẽ thấy rõ là Software engineering … cho cái gì đó. Và sẽ có các skill set cho tương ứng. Chứ không chỉ biết mỗi lập trình không. Em biết thêm domain expert thì em sẽ unique hơn, và cơ hội cao hơn. Vì đó là điểm cộng.

Khi nhắc tới chuyên gia, người ta thường nói tới chuyên gia ở một lĩnh vực cụ thể, chứ không nói chung chung.