Interview with Tiep Huu Vu, MLE at Google, Founder of MLCB by Vietnam Tech Society

Henry Le
13 min readJun 19, 2020

Giới thiệu về bản thân

Tôi tốt nghiệp Đại học Bách Khoa Hà Nội năm 2012 và bắt đầu chương trình PhD ngành Electrical Engineering tại Penn State University năm 2013. Năm 2018 tôi tốt nghiệp và đi làm tại một công ty startup nhỏ trước khi bắt đầu làm việc tại Google từ tháng 12 năm 2019 tới nay.

Tại Penn State, tôi làm nghiên cứu về ứng dụng machine learning trong các bài toán xử lý ảnh, đặc biệt là các bài toán nhận dạng ảnh y tế và ảnh được tạo bởi tín hiệu radar. Trong thời gian này, tôi được học thêm rất nhiều kiến thức và kỹ năng mới. Tôi cũng rất may mắn có được sự giúp đỡ nhiệt tình từ giáo sư hướng dẫn nên con đường học PhD tương đối thuận lợi.

Trong thời gian cuối học PhD, sau khi biết mình đã đủ điều kiện tốt nghiệp, tôi bắt đầu viết blog Machine Learning cơ bản (MLCB) và thu hút được nhiều sự chú ý từ cộng đồng.

Nếu bạn muốn nghe thêm các câu chuyện trong quá trình học PhD của tôi, bạn có thể đọc thêm bài “Con đường học PhD của tôi” trên blog.

Con đường đến với Google

Tôi được nhận vào làm việc tại Google sau hai lần phỏng vấn.

Năm 2018, nhờ blog MLCB mà tôi có dịp làm quen với anh Thắng Lương tại Google Brain. Nhờ anh Thắng refer mà tôi có cơ hội được phỏng vấn với Google năm đó. Lần đó tôi đã đến onsite nhưng không thành công. Tôi cũng đến onsite ở Facebook và Microsoft cùng thời gian đó nhưng cũng không thành công. Tôi cuối cùng bắt đầu sự nghiệp tại một startup nhỏ ở vị trí Machine Learning Research Engineer về Computer Vision cho xe tự lái. Một năm sau đó, Google recruiter gọi điện mời tôi phỏng vấn lần hai. Tôi đồng ý, và lần này tôi đã may mắn hơn.

Quá trình phỏng vấn của hai lần tương đối khác nhau.

Trong lần thứ nhất, sau khi nói chuyện với recruiter, tôi phỏng vấn qua điện thoại về lập trình trước khi đến onsite. Câu hỏi ở vòng phỏng vấn qua điện thoại này khá mới, nhưng tôi có làm một vài bài gần tương tự trên leetcode nên trả lời được. Có năm vòng phỏng vấn onsite, mỗi vòng 45 phút: một vòng về câu hỏi hành vi cộng với những thông tin liên quan đến việc nghiên cứu và bốn vòng lập trình. Các câu hỏi lập trình thực sự khó, khó nhất trong tất cả những lần tôi đi phỏng vấn onsite từ trước tới giờ. Hai vòng tôi lập trình được gần trọn vẹn, hai vòng còn lại tôi gần như không làm được gì. Các câu hỏi lập trình của Google thực sự khó hơn và lạ hơn những câu hỏi ở các công ty khác. Kết quả của lần đầu tiên này như các bạn đã biết: tôi không thành công.

Sau đó tôi nhận được offer từ hai công ty startup ở Bay Area. Cả hai đều làm về ứng dụng Computer Vision vào các bài toán ứng dụng thực tế. Tôi chọn một công ty nhỏ hơn (helm.ai) vì tại đây tôi được làm việc với vị trí Research Engineer. Tại đây tôi học hỏi được rất nhiều từ đồng nghiệp về tiêu chuẩn triển khai code trong industry cũng như cách một công ty vận hành.

Khoảng một năm sau lần phỏng vấn thất bại tại Google, tôi được một bạn recruiter liên hệ lại và nói rằng Google muốn mời tôi phỏng vấn. Lần này tôi không cần phỏng vấn qua điện thoại nữa mà trực tiếp đến onsite. Lần này cũng có năm vòng: hai vòng lập trình, hai vòng chuyên sâu machine learning, và một vòng câu hỏi mở. Điều bất ngờ là các câu hỏi ở lần này đều ở mức độ dễ hơn những câu hỏi năm trước rất nhiều. Kinh nghiệm một năm tập trung lập trình ở Helm và việc luyện tập trên leetcode.com trong nhiều tuần giúp tôi trả lời được mọi câu hỏi. Tôi khá tự tin sau khi phỏng vấn và nhận được tin vui một tuần sau đó.

Sau khi qua được vòng phỏng vấn onsite, tôi cần phải tìm được team phù hợp với mình và cần phải được team đó chấp nhận trước khi được chính thức nhận. Quá trình này kéo dài gần hai tháng. Cuối cùng tôi chọn team Display Ads Prediction, là một team khá mạnh về ứng dụng machine learning trong quảng cáo. Ở đây, công việc của tôi là xây dựng các mô hình dự đoán lượng tương tác của người với quảng cáo trên các trang web.

Tôi rời công ty startup đúng một năm sau khi vào công ty. Mặc dù chỉ trong thời gian ngắn, tôi tự hào vì mình đóng góp được nhiều phần trong sự phát triển của công ty, đặc biệt là việc triển khai mô hình semantic segmentation cho nhiều lớp đối tượng và việc xây dựng một hệ thống validation cho cả công ty.

Kỳ vọng so với thực tế làm việc tại Google

Trước khi vào làm việc tại Google, tôi biết công ty có rất nhiều người tài và là một trong những công ty có hệ thống infrastructure tốt nhất. Tôi thực sự muốn biết các hệ thống machine learning ở đây hoạt động như thế nào.

Sau sáu tháng làm việc, tôi thấy những gì tôi tưởng tượng ra đều đúng.

Cho tới tận bây giờ, tôi vẫn có cảm giác rằng mình là người yếu nhất trong team. Mặc dù đã được nhắc kỹ trong những ngày đầu rằng đây là tâm lý thường thấy của những người mới vào làm, tôi vẫn không khỏi thán phục những người xung quanh mình. Từ anh mentor, sếp, sếp của sếp, tới các đồng nghiệp chưa gặp ngoài đời nhưng biết thông qua trao đổi qua trang chat nội bộ hoặc các buổi thuyết trình, mọi người đều rất giỏi và khiêm tốn. Đồng nghiệp nhìn chung đều bận nhưng rất nhiệt tình nếu mình có câu hỏi.

Về infrastructure, Google thực sự có một hệ thống rất mạnh phục vụ cho các mô hình machine learning đặc thù. Từ cách lưu dữ liệu, quản lý dự liệu, xây dựng mô hình tới deploy, tất cả đều thực sự phát triển và có đội ngũ đông đảo hỗ trợ. Có một công cụ rất quan trọng khi làm việc là Code Search, là nơi tìm kiếm code liên quan đến công việc của mình trong số hàng tỷ dòng code trong công ty mà tôi được quyền truy cập.

Có một điều trái với dự đoán của tôi trước khi vào công ty là việc lập trình. Tôi từng nghĩ sẽ phải lập trình rất nhiều khi làm việc ở đây. Nhưng thực sự là thời gian tìm hiểu những thứ mình đang làm chiếm phần lớn thời gian làm việc. Lập trình chỉ ở giai đoạn cuối và chỉ chiếm khoảng 30% thời gian làm việc. Không như ở công ty cũ khi mà gần như bất kỳ ý tưởng nào cũng cần phải lập trình từ đầu, ở Google gần như mọi phần đã được hỗ trợ. Tôi thường chỉ phải đọc tài liệu và code xem các tham số cần được cấu hình như thế nào để đạt được mục đích. Về ngôn ngữ lập trình, tôi chỉ có một vài task nhỏ phải dùng python hoặc C++ còn phần lớn thời gian dùng ngôn ngữ lập trình nội bộ để thiết lập các tham số.

Nhiều công việc tại đây thực sự phức tạp, ngay cả anh mentor và sếp cũng nhiều khi không biết những gì tôi đang làm để giúp. Họ thường giúp tôi biết ai là người có thể hỏi và tôi cần nói chuyện trực tiếp với người đó. Đồng nghiệp của tôi thường rất nhiệt tình trả lời các câu hỏi và thường phản hồi trong thời gian ngắn. Ngoài ra, có một trang hỏi đáp nội bộ rất hữu ích, ở đó sau khi bạn đặt câu hỏi, hệ thống có thể tự động gợi ý những ai mà bạn có thể hỏi.

Cuốn sách Machine Learning Cơ Bản

Trong thời gian học ở Penn State, tôi học được rất nhiều thứ mà trước đó tôi không hiểu được tầm quan trọng của chúng. Có những lúc tôi nghĩ về quá trình học của mình ở Việt Nam và thấy rằng tôi đã lãng phí nhiều thời gian học những thứ không phục vụ cho công việc của mình. Tôi cũng cảm thấy thiệt thòi cho sinh viên Việt Nam nói chung và sinh viên ngành Công nghệ thông tin cũng như Điện tử viễn thông nói riêng. Thiệt thòi lớn nhất của họ là không có định hướng đúng đắn và không có tài liệu sẵn có bằng tiếng Việt. Mặc dù tài liệu tiếng Anh rất nhiều, sinh viên Việt Nam, đặc biệt là sinh viên công nghệ còn yếu về việc đọc các tài liệu này. Vì vậy, tôi luôn có ý tưởng viết lại những gì mình học được để phổ biến cho bạn bè cũng như những người quan tâm.

Hè năm 2016, tôi tạo một Youtube channel về Latex cơ bản. Latex rất quan trọng cho những người làm nghiên cứu về khoa học kỹ thuật nhưng lại không được dùng nhiều ở Việt Nam. Tuy nhiên, tôi chỉ upload video lên channel này trong một thời gian ngắn vì lượng khán giả không nhiều và việc chỉnh sửa video mất khá nhiều thời gian.

Đó cũng là khoảng thời gian mà Deep Learning, Machine Learning bùng nổ khắp thế giới và bắt đầu được bạn bè ở Việt Nam nhắc tới nhiều. Tôi có tham gia một nhóm đọc và tìm hiểu cuốn Deep Learning, tuy nhiên tôi rời nhóm sớm vì thấy việc đọc/dịch đó không thực sự tiến triển tốt.

Tôi tự thấy rằng việc tổng hợp lại kiến thức về ngành này là thực sự cần thiết. Một là để tôi có cơ hội tổng hợp lại những thứ mình đã học chuẩn bị cho xin việc, hai là để chia sẻ với bạn bè quan tâm về lĩnh vực này. Sau một vài ngày lên kế hoạch, blog MLCB ra đời và sớm nhận được sự ủng hộ của bạn bè. Thời gian đầu tôi viết rất nhiều vì thấy blog được nhiều người hưởng ứng. Sau một vài tháng, độc giả bắt đầu gợi ý tôi viết sách vì nội dung blog chi tiết và có hệ thống. Tôi lưỡng lự trong thời gian đầu nhưng tự tin hơn sau tám tháng viết blog. Lúc đó là khoảng tháng 8/2017.

Tôi thông báo kế hoạch viết sách và nhận được rất nhiều sự ủng hộ, rất nhiều đơn đặt hàng đã tới trong khi tôi còn chưa bắt đầu tạo file Latex để viết sách. Ban đầu tôi nghĩ rằng việc chuyển blog ra ebook đơn giản vì nội dung đã sẵn có. Nhưng sự thực không phải vậy. Tôi phải chỉnh sửa lại ngôn ngữ, bố trí lại nội dung và chỉnh sửa một cách tỉ mỉ các hình vẽ, công thức, code mẫu để cuốn sách có hệ thống hơn. Bốn tháng sau đó tôi mới hoàn thành được bản đầu tiên của ebook.

Sau đó tôi lại bị “sức ép” phải xuất bản sách giấy. Nếu bạn nghĩ rằng từ ebook ra sách giấy thì chỉ cần in ra là được thì bạn cũng sai lầm như tôi từng nghĩ. Tôi cần chuyển hết nội dung màu trong ebook ra nội dung đen trắng để tiết kiệm chi phí in ấn. Tôi cũng cần chỉnh sửa nội dung, văn phòng theo yêu cầu của NXB. Việc này kéo dài tới bảy tháng. Lúc đó cũng là thời gian tôi tập trung xin việc trước khi tốt nghiệp nên dự án bị kéo dài hơn kế hoạch. Ba tháng sau đó sách giấy mới được in ấn xong và được chuyển tới độc giả.

Điều lớn nhất tôi học được trong thời gian này là phải biết chia nhỏ các công việc ra và thực hiện từ từ. Nếu không phải bắt đầu từ blog, tôi không thể ngồi viết liền ra được cuốn ebook và sách giấy. Nhờ việc lên kế hoạch cho từng phần mình định viết, công bố trên blog và nhận được những phản hồi tích cực mà tôi có động lực hoàn thành từng phần và cuối cùng có cuốn sách. Việc thứ hai tôi học được từ dự án này là nếu có kế hoạch làm một việc gì đó lớn, nên chia sẻ nó với người khác để mình có động lực hoàn thành. Lúc đó thì tôi bắt buộc phải hoàn thành vì đã nhận được rất nhiều đơn đặt hàng từ độc giả.

Một điều nữa tôi học được là bớt để ý những lời gièm pha trên mạng. Có những người không nghĩ rằng tôi có khả năng cũng như độ tin cậy để viết một cuốn sách như thế. Ban đầu tôi để bụng, nhưng về sau bỏ những chuyện đó ngoài tai vì biết rằng mình làm bất cứ gì cũng có những kẻ ghét mình. Quan trọng là việc mình làm vẫn có ích với nhiều người.

Cộng đồng 42.000 thành viên của Forum MLCB

Forum này cũng là một phần của blog MLCB. Sau khi xây dựng blog và có một facebook page riêng cho blog, tôi nhận được rất nhiều câu hỏi từ bạn đọc mà không có thời gian trả lời. Phần nhiều những câu hỏi đó bị lặp và khá là cơ bản nên tôi muốn tạo một group để trả lời cho tất cả bạn đọc cùng thấy, và cũng để các bạn đọc có môi trường trao đổi về những bài trên blog cũng như các vấn đề liên quan.

Tôi nghĩ việc xây dựng MLCB là công sức của cả cộng đồng. Tôi chỉ tham gia trả lời nhiều câu hỏi trong thời gian đầu. Sau đó, một điều đáng mừng là số lượng các thành viên chia sẻ kiến thức và trả lời các câu hỏi ngày một nhiều nên Group ngày đông.

Một điều quan trọng nữa khiến đây trở thành một trong những cộng đồng về ML lớn nhất là vì nó có từ khá sớm và hướng tới các bạn sinh viên. Tôi chọn từ “Cơ Bản” cũng là để hướng tới nhóm độc giả mới bắt đầu vào ngành khi chưa có nhiều kiến thức. ML cần khá nhiều kiến thức toán, có thể MLCB thu hút được nhiều người vì cách giải thích bằng toán của tôi gần gũi với bạn đọc. Tôi học chuyên toán nhiều năm ở VN nên cách xây dựng và giải quyết các bài toán ML có phần giống với nhiều độc giả có cách học tương tự. Và cái gì gần gũi với nhiều người thì sẽ thu hút được họ.

Ngoài MLCB thì tôi và một vài người bạn cũng lập thêm hai trang web FundaML.com và AIviVN.com. FundaML là trang web dạy về lập trình với numpy. Khi còn hoạt động, nó có tới hơn 5000 thành viên. Hiện FumdaML không còn hoạt động nữa vì chi phí duy trì khá cao. AIviVN ra đời sau đó nhằm tạo một sân chơi để tổ chức các cuộc thi về ML và Data Science. AIviVN cũng là nơi các công ty đưa bài toán và dữ liệu của họ lên để nhận được những giải pháp từ cộng đồng và cũng giúp họ tìm được các ứng viên tiềm năng cho công ty. Hiện AIviVN đã tổ chức được 10 cuộc thi và chúng tôi sẽ tiếp tục tổ chức thêm trong thời gian tới.

Ngoài ra, hiện tôi đang kêu gọi các bạn trong group dịch một số tài liệu tiếng Anh chuyên ngành ra tiếng Việt. Cuốn “Machine Learning Yearning” của Andrew Ng đã được dịch xong; cuốn “Dive into Deep Learning” của nhóm tác giả ở Amazon cũng đã gần được một nửa. Đây đều là các tài liệu rất tốt mà tôi mong muốn chúng đến được với nhiều độc giả hơn. Sinh viên Việt Nam hiện tại có tiếng Anh tốt hơn cách đây 10 năm khi tôi học đại học nhiều, tuy nhiên tôi vẫn nghĩ rằng có một lượng lớn sinh viên kỹ thuật vẫn bị rào cản về ngôn ngữ, khiến họ gặp nhiều khó khăn khi bắt đầu nghiên cứu lĩnh vực này. Về lâu dài, đọc hiểu tiếng Anh vẫn là điều rất quan trọng trong ngành kỹ thuật, vì sự đa dạng, sự đúng đắn và tính cập nhật. Các tài liệu tiếng Việt, hiện đang rất ít, chỉ có thể giúp các bạn tiến bước đầu tiên vào ngành. Tuy nhiên, bước đầu tiên này rất quan trọng.

Quá khứ và tương lai

Trước khi tốt nghiệp Ph.D., tôi dành khá nhiều thời gian để viết blog, viết sách và điều hành group. Tôi không nghĩ việc dành thời gian quá nhiều cho MLCB trong thời gian đầu ảnh hưởng nhiều tới công việc của tôi. Tôi học được nhiều thứ, biết thêm nhiều người và có thêm nhiều niềm vui.

Hiện tại công việc cá nhân khá bận, tôi chỉ dành thời gian khoảng dưới 30 phút một ngày cho MLCB. Tôi nghĩ cộng đồng này có thể tự duy trì được trong một thời gian dài. Dự án dịch sách hiện cũng đã tự hoạt động được khi có một đội ngũ hỗ trợ rất nhiệt tình và ngày càng có nhiều bạn tham gia, tôi không phải tham gia dịch và review nhiều như thời gian đầu nữa.

Tôi không có kế hoạch cụ thể nào với MLCB, nhưng nếu tôi thấy việc nào có ích cho cộng đồng này thì tôi sẽ làm. Đây là lĩnh vực quan trọng trong tương lai nên tôi luôn muốn các bạn sinh viên trong nước được tiếp xúc nhiều hơn.

Thank you anh for your inspirational story. Hope to see you another day.

Exclusive interview by Vietnam Tech Society (VTS)

Follow us https://www.facebook.com/VietnamTechSociety

--

--

Henry Le

I write about Product, Startup, Management, and my life