Làm công việc data máy cấu hình khủng long không?

Mình nhận được câu hỏi này từ nhiều anh em làm chung ngành, sẵn tiện chia sẻ kinh nghiệm của mình lên Tinh tế để nhiều người có thể xem được nhất. Mời các bạn khác cùng chia sẻ nhé. Khái niệm máy tính mà mình nói ở đây là máy tính cá nhân, là cái laptop, desktop mà bạn sẽ dùng nha.
Nói về việc làm data thì tạm thời mình sẽ nói đến 3 vai trò chính mà ở Việt Nam thường thấy nhất:
  • Data Engineer: các bạn làm việc kĩ thuật về dữ liệu, xây luồng dữ liệu, xây hạ tầng, đảm bảo dữ liệu chạy tốt, đủ, đều
  • Data Analyst / Business Analyst: các bạn này làm việc nghiên cứu về số, xây dựng báo cáo, dashboard, trả lời các câu hỏi về mặt kinh doanh, đưa ra lời khuyên, phân tích…
  • Data Scientist: các bạn này thường sẽ làm luôn cả việc của analyst, nhưng điểm khác biệt chính là các bạn làm về mô hình, về các thuật toán machine learning, AI này kia nhiều hơn, nặng hơn và có thể sẽ cần tích hợp mô hình đó vào một hệ thống khác

Lưu ý rằng tùy công ty mà các định nghĩa về 3 vai trò này có thể được hoán chuyển, đảm đương công việc của nhau. Cái đó không quan trọng lắm, cái quan trọng là bạn làm việc gì, thế nên mình sẽ không chia máy theo vai trò, mà theo việc bạn hay thực hiện khi đi làm nhé.

Việc lấy số, làm báo cáo, xây dựng dashboard

Với công việc này, thường bạn sẽ dùng một “client” trên máy tính của mình và kết nối vào hệ thống dữ liệu của công ty, ví dụ như dùng SQL để lấy dữ liệu ra và hiển thị thành biểu đồ, hoặc dùng các phần mềm như Tableau, Microstrategy, Power BI… để kết nối dữ liệu từ data warehouse / database / data lake… của công ty và vẽ nó lên thành hình thù để theo dõi và tìm hiểu ý nghĩa. Một số công ty thì có thể dùng thẳng trên trình duyệt web, bạn không cần phải cài bất kì phần mềm nào thêm, ví dụ như bạn nào dùng Superset, Redash, Metabase, Google Data Studio, AWS QuickSight…

Với những việc này, cách mình hay làm (và cũng là cách mình cho là cách tối ưu) đó là để việc nặng cho data warehouse / database / data lake… xử lý, gọi chung là đẩy việc cho server. Bạn không nên đưa phần tính toán, ghép nối dữ liệu, làm sạch dữ liệu… về máy tính laptop / desktop của mình. Các hạ tầng dữ liệu hiện nay đang làm rất tốt chuyện này, và nó chạy nhanh hơn cái máy của bạn rất nhiều nên hãy để việc cho các hạ tầng đó xử lý.
Mình đã từng thấy một số người sử dụng Tableau, PowerBI nhưng lại kéo hết dữ liệu thô (raw data) về lưu trên máy cá nhân của mình để ngồi phân tích, giai đoạn này tốn nhiều thời gian chờ load dữ liệu về, máy tính chạy thì cực, và nhiều lúc đứng luôn đâu có chạy nổi. Trong khi đẩy cho data warehouse làm thì 3 giây là xong rồi, bạn chỉ cần lấy kết quả đó đưa vô Tableau để làm biểu đồ là xong. Phần nào bạn aggregate được từ trên nơi lưu data thì nên làm trên đó, chứ kéo hết chục triệu dòng về mà máy tính chạy không được thì cũng uổng.Như vậy, quan điểm của mình đó là nếu bạn làm các việc lấy số, báo cáo, dashboard thì không cần máy mạnh làm gì. Gần như mọi chiếc máy tính trên thị trường đều có thể làm tốt việc đó, vì phần nặng không nằm trong máy của bạn, Nếu muốn chạy nhanh mượt này kia… thì mua các máy trên 20 triệu là an tâm, còn không thì vẫn không sao. Tiền để làm việc khác, hoặc đầu tư vô một cái máy đẹp, mỏng nhẹ pin trâu gì đó cũng được ????

Việc làm hạ tầng, xây dựng data pipeline, làm những thứ của data engineering

Với các việc này, bạn sẽ cần một cái máy mạnh hơn một chút vì đôi lúc bạn sẽ phải chạy thêm các docker container, phải chạy nhiều tool song song với nhau để phát triển giải pháp trước khi chính thức đưa lên server. Nhưng cũng không cần phải gọi là max cấu hình hay gì, một cấu hình vừa đủ là đã chơi được rồi, bạn không cần đổ quá nhiều tiền cho con PC nếu chỉ dùng cho việc của data engineer.

Một con CPU Core i7 dòng H, RAM tầm 16GB, có khi không cần GPU mạnh, vậy là đủ. Bạn có thể dễ dàng tìm được một con laptop với cấu hình như thế này với giá tầm 20 triệu trở lên.

Việc thử nghiệm các thuật toán machine learning, xây dựng, huấn luyện model

Các bạn data scientist trong team mình, cũng như trong các công ty mình đã từng làm, không cần một con laptop quá mạnh để có thể làm được những việc như train model, lọc số, làm sạch dữ liệu, hay xây dựng model để chuẩn bị tích hợp vào các hệ thống vận hành. Nhiều anh em vẫn dùng MacBook Air, nhiều bạn xài MacBook Pro 2015, có bạn xài một con Dell Gaming… nhưng không có máy nào gọi là cấu hình khủng hay cấu hình trăm triệu cả.

Vậy khi cần chạy lâu, chạy nặng thì sao? Việc train các model có thể kéo dài nhiều (chục) tiếng, kéo dài lên đến vài ngày. Việc đưa cho con máy tính cá nhân của bạn chạy việc này không hợp lý vì bạn sẽ cần phải mang đi đâu đó, và trong thời gian đấy thì để máy tính chạy liên tục có khi không phải ý hay, rồi còn phải lo về việc pin cho nó nữa. Chưa kể nếu đang chạy ở máy local của bạn mà bị cúp điện, bị hết pin thì phiền lắm.

Thế nên ở các công ty mình từng làm qua, cũng như công ty đang làm, thì bọn mình chọn giải pháp mua Google Colab với giá chỉ $10 / tháng, xài tẹt ga, thoải mái, đáp ứng đầy đủ nhu cầu công việc. Nếu không thích dùng Google Colab Pro, có thể dùng các dịch vụ khác của AWS, Microsoft Azure.. với giá cũng rất cạnh tranh, và số tiền bạn chi ra có khi rẻ hơn số tiền trăm triệu bạn đầu tư cho cái máy tính của mình, mà hiệu quả thì cao hơn vì có thể chạy trong thời gian dài, dễ dùng, linh hoạt. Nếu cần dùng GPU để train, có luôn.
Cũng có một số công ty mình thấy mua máy tính về đặt trong công ty với cấu hình rất cao để phục vụ cho việc train các model AI, tuy nhiên cái máy họ mua là để cho cả team dùng và nó được thiết lập để chạy như một server, chứ không phải để dùng như máy tính riêng của ai đó.

Tóm lại, bạn không cần cấu hình quá mạnh để làm việc data

Một số sai lầm mình thường thấy đó là các bạn mới bắt đầu học data thì đã đi đầu tư nhiều chục triệu để mua những dàn máy cực đỉnh, rồi những bạn chỉ làm phân tích mà chơi hẳn một con desktop Core i9, GPU GTX các thứ. Trừ khi bạn dùng luôn con máy đó để thực hiện phản xạ tốc độ cao với PUBG, COD, thực hiện khảo sát hành vi của con người trong đô thị với hệ thống GTA V hoặc tìm hiểu về khả năng vận hành của xe hơi với Forza Horizon thì ok, mua hẳn một con thật xịn về để học tập nghiên cứu cho sướng

Bạn hãy dùng chính cái máy tính mà bạn đang có để làm việc, rồi khi nào thấy cần thì hãy nâng cấp, chứ đừng vội vàng nâng cấp mà uổng tiền, lại không khai thác hết cái số tiền bạn đã bỏ ra cho việc làm data. Ngoài ra, cũng không nên nghe ai xúi bậy rằng làm việc data thì bắt buộc phải có máy tính đắt tiền nhé.

Theo thời gian, khi bạn đã làm việc, làm thực chiến, bạn sẽ biết mình cần gì, khi đó từ từ nâng cấp máy cũng không muộn. Hãy chi tiền một cách hiệu quả nhé.