36 điểm bởi xguru 2024-06-10 | 4 bình luận | Chia sẻ qua WhatsApp
  • Tổng hợp nội dung từ những người đã trả lời câu hỏi

schmookeeg

  • Phần tôi thích nhất khi hiện làm kỹ sư machine learning là được cộng tác với những người không có nền tảng kỹ thuật
    • Ngay cả những người không mở nổi MS Outlook quá 3 lần trên 5 lần thử cũng có chiều sâu và góc nhìn đáng kinh ngạc về lĩnh vực chuyên môn của họ
    • Điều đó khiến tôi rất khiêm tốn
  • Những người không có nền tảng kỹ thuật nhìn tôi như một phù thủy, còn tôi nhìn họ như các pháp sư voodoo
    • Khi chúng tôi huấn luyện và dự đoán những thứ mình quan tâm, điều đó rất đáng giá cho cả hai phía
  • Phần lớn công việc mô hình hóa liên quan đến y tế
    • Rút ra insight từ các data lake khổng lồ gồm yêu cầu thanh toán, đơn thuốc, ghi chú của bác sĩ, dấu hiệu sinh tồn, ảnh chẩn đoán và nhiều thứ khác
    • Việc có thể truy cập thông tin này quá dễ dàng cũng là điều rất ghê gớm (bỏ qua HIPAA)
  • Thực tế về mặt thời gian
    • Khoảng 3 giờ họp mỗi tuần
    • Khoảng 3 giờ dành cho việc chuẩn bị công việc, xử lý sự cố ETL, chạy các truy vấn ad-hoc cho business
    • Thời gian còn lại là khám phá dữ liệu để tìm ra một lợi thế nhỏ trong việc dự đoán doanh thu trị giá hàng triệu đô
      • Nó giống như chơi tìm Wally bằng toán học
      • Màn tìm Wally đó có kích thước khoảng 50TB :D

burnedout_dc4e3

  • Đã làm machine learning từ giữa những năm 2000
  • Một nửa thời gian dành để dọn dẹp dữ liệu và "giữ cho data pipeline luôn chạy" để huấn luyện và sử dụng mô hình
  • Nửa còn lại dành cho hỗ trợ kỹ thuật cho các "nhà khoa học AI" gần như không biết code
    • Họ dành thời gian copy/paste nội dung vào nhiều dịch vụ chatbot khác nhau
      • Công việc chính là chỉ cho họ cách cài package Python, cách dùng Git, v.v.
    • Không có kế hoạch nào về việc công việc của họ sẽ áp dụng vào dự án chúng tôi đang làm ra sao
      • Nhưng họ vẫn khẳng định mô hình transformer sẽ giải quyết mọi vấn đề xử lý dữ liệu của chúng tôi
  • Đang cân nhắc nghỉ việc và không làm gì mới cho đến khi chu kỳ cường điệu này kết thúc

tambourineman88

  • Thực tế trái ngược với những gì từng kỳ vọng khi học machine learning
    • 95% công việc này là dọn dữ liệu, ghép dataset và feature engineering
    • Việc fit model và test chỉ chiếm 5%
  • Trả lời cho bình luận này #1
    • Từ đầu tới giờ luôn là vậy, và sau này cũng sẽ vậy, amen
    • Điểm quan trọng ở cấp staff/principal
      • Điều quan trọng là duy trì "data impedance" giữa các tính năng sản phẩm phụ thuộc vào mô hình suy luận và việc thu thập dữ liệu
      • Mục đích là để dù sản phẩm hay tính năng thay đổi thì việc đo lường và độ chi tiết dữ liệu dùng để cấp dữ liệu cho kho dữ liệu và training corpus không bị hỏng
    • Điểm quan trọng trong các bài toán reinforcement learning (RL)
      • Điều quan trọng là bảo đảm các biến phù hợp được ghi nhận cho các bộ tuple không gian trạng thái và hành động
      • Tiếp theo là tìm cách điều chỉnh giao diện hoặc mô hình môi trường để có phản hồi phần thưởng

davedx

  • Chạy pip install pytorch
  • Môi trường bị hỏng
  • Mất 4 tiếng để sửa môi trường Python
  • Chạy pip install Pillow
  • Gặp lỗi không khớp với kiến trúc CPU của MacBook
  • Mất thêm 4 tiếng để gỡ sạch mọi thứ liên quan đến Python rồi cài lại từ đầu
  • Định chạy pip install ... thì đến giờ tan làm!

Xenoamorphous

  • Là một lập trình viên phần mềm thông thường nhưng vì nhu cầu nên phải làm việc với ML
  • Tò mò không biết các chuyên gia ML "thật sự" xử lý thế nào với kết quả xác suất/gradient descent và kỳ vọng của con người
  • Trong công việc phần mềm thông thường thì hoặc là chạy hoặc là không, và nếu không chạy thì có thể giải thích lý do và hy vọng sửa được
  • Nhưng trong ML, người ta lại hỏi "Vì sao bộ phân loại văn bản này không phân loại đúng đoạn văn bản này?"
    • Và tôi chỉ có thể trả lời kiểu như "Nó thiếu 0.004 điểm để đạt ngưỡng" hoặc "Vì cách chọn từ hay thứ tự từ nên không đạt"
    • Điều đó dường như khiến tất cả mọi người đều không hài lòng

angarg12

  • Chức danh là kỹ sư ML nhưng công việc thực tế gần như là software engineering thuần túy
  • Công việc chính là xây dựng các hệ thống hỗ trợ hệ thống ML trong môi trường production
    • Như những người khác đã nói, chủ yếu gồm biến đổi dữ liệu, huấn luyện mô hình, model serving, v.v.
  • Công việc cũng bao gồm xây công cụ hoặc chỉnh sửa hệ thống hiện có để giúp các nhà khoa học làm việc
  • Nhưng nhìn bên ngoài thì có vẻ công ty của tôi là trường hợp khá khác biệt
  • Trong ngành, kỳ vọng dành cho kỹ sư ML dường như gần với công việc của data scientist/applied scientist hơn (ví dụ: xây và kiểm thử mô hình)
    • Điều này gây ra rất nhiều mơ hồ về kỳ vọng với từng vai trò ở mỗi công ty

runban

  • Lao công lương cao
    • Dữ liệu bẩn thì không thể cho ra kết quả tốt
    • Nhân tiện, việc này Perl tốt hơn Python rất nhiều
  • Người xử lý sự cố bo mạch chủ lương cao
    • H100 thật sự rất nóng kể cả khi dùng làm mát bằng nước
    • Vì không có ai chuyên trách phần cứng
  • Chiến đấu với các phụ thuộc bên thứ ba thất thường như mọi người khác

primaprashant

  • Đã làm MLE 5 năm qua và như các bình luận khác đã nói, phần lớn công việc giống SWE
  • Tùy theo giai đoạn dự án, công việc hằng ngày sẽ khác nhau, nhưng thường rơi vào một trong các việc sau:
    • Cộng tác với stakeholder và TPM, dùng phân tích dữ liệu để xây dựng giả thuyết nhằm giải quyết các vấn đề business ưu tiên cao
    • Cấu trúc hóa vấn đề business thành bài toán ML và tạo metric phù hợp cho mô hình ML lẫn bài toán business
    • Xây PoC và prototype để xác minh tính khả thi về mặt kỹ thuật của tính năng và ý tưởng mới
    • Viết tài liệu thiết kế cho kiến trúc và các quyết định kỹ thuật
    • Làm việc với đội platform để thiết lập và duy trì data pipeline theo yêu cầu của các dự án ML mới và hiện có
    • Xây dựng, triển khai và bảo trì microservice ML cho suy luận
    • Chạy A/B test và viết tài liệu thiết kế cho phân tích sau thử nghiệm
    • Thiết lập pipeline để huấn luyện lại mô hình ML

jackspawn

  • Dành hơn 50% thời gian cho backend engineering
    • Vì ML được dùng bên trong một API lớn hơn
  • Chịu trách nhiệm cho trải nghiệm end-to-end của API đó
    • Vì thế sẽ làm bất cứ điều gì mang lại giá trị tốt nhất theo thời gian bỏ ra
    • Và điều đó thường chẳng liên quan gì đến mô hình ML

mardifoufs

  • Làm tối ưu hóa mã suy luận và công việc "đưa vào sản phẩm" các mô hình đã huấn luyện
  • Hiện đang làm huấn luyện và suy luận cục bộ vì làm trong một ngành mà dịch vụ cloud vẫn chưa được dùng phổ biến
    • Vì không phải LLM nên không có quá nhiều công cụ dựng sẵn, điều này khá thú vị
    • Phải tự xây rất nhiều thứ
  • Làm đủ thứ từ đánh giá chất lượng dữ liệu (phần cục bộ này khá thách thức) đến dùng trực tiếp CUDA
    • Vì đã có các thư viện xử lý tín hiệu xây trên CUDA để có thể tận dụng
  • Đôi khi cũng bao gồm xây công cụ nội bộ cho đội (đội pha trộn giữa researcher/MLE)
    • Vì là lĩnh vực rất ngách nên phải tự xây để trực quan hóa dữ liệu và suy luận
  • Có toàn quyền tự do liên quan đến công cụ và thiết kế phần mềm nội bộ, nên đã có thể tạo ảnh hưởng lớn trong tổ chức
  • Một trong những công cụ làm ngẫu hứng giờ sắp được đưa vào cả sản phẩm chủ lực

hirako2000

  • Không phải nhiệm vụ chính, nhưng phần lớn thời gian dành cho việc "nối ghép đủ thứ"
    • Tinh chỉnh mã nguồn mở sẵn có
    • Tìm cách tối ưu tài nguyên
    • Huấn luyện lại mô hình trên các dataset khác
    • Cố chạy các đoạn mã Python viết cẩu thả
    • Thêm các file requirements còn thiếu
    • Dọn dữ liệu
  • Suy nghĩ xem có gì thật sự hữu ích có thể giải quyết bằng ML mà lẽ ra chưa được làm từ nhiều năm trước
  • Xem giá GPU mới nhất và tính xem mua GPU có đáng hơn thuê thời gian đắt đỏ từ nhà cung cấp hosting hay không
  • Đọc paper đến đau đầu
    • Mất thời gian đọc abstract và lướt vài sơ đồ ở giữa bài

tenache

  • Đã học machine learning và ban đầu được tuyển cho vai trò đó, nhưng công ty đổi hướng nên hiện giờ đang làm việc với LLM
  • Dành phần lớn thời gian cho những việc như:
    • Tìm hiểu cách các LLM khác nhau hoạt động
    • Tìm tham số tối ưu
    • Cách làm RAG(Retrieval-Augmented Generation)
    • Cách tích hợp với các bot khác

trybackprop

  • Trong một tuần điển hình, tôi thường làm các việc sau:
  • 15%: Họp thảo luận kỹ thuật hoặc 1:1
    • Thường thảo luận về ý tưởng cho mô hình, kế hoạch hoặc hỗ trợ sản phẩm ML
  • 40%: Phát triển ML
    • Ở giai đoạn đầu dự án, tìm hiểu yêu cầu sản phẩm
    • Thảo luận với đội về các mô hình ML hoặc thuật toán có thể giúp đạt mục tiêu sản phẩm/business
    • Thu thập dataset hiện có từ analyst và data scientist
    • Tạo pipeline để dùng các dataset này sinh ra dataset huấn luyện và xác thực
    • Trong lúc chờ dataset huấn luyện/xác thực được lấp đầy (có thể mất đến 2 tuần), đồng thời làm các dự án khác đang ở giai đoạn phát triển sớm hơn hoặc muộn hơn
    • Cũng làm việc trên các mô hình mới (viết bằng PyTorch), thử với một lượng dữ liệu nhỏ để đánh giá hiệu năng offline và xem chúng có hoạt động như kỳ vọng không
    • Chạy một vài kiểm thử thủ công dùng mô hình để điền thông tin sản phẩm nhằm kiểm tra tính hợp lý của mô hình (nếu không có thí nghiệm quy mô lớn thì chỉ còn cách dựa vào trực giác của bản thân và đồng đội)
    • Khi dataset huấn luyện/xác thực đã đầy đủ, huấn luyện mô hình trên lượng dữ liệu lớn, xem kết quả offline, và nếu có vấn đề thì tinh chỉnh mô hình hoặc đổi kiến trúc
    • Nếu kết quả offline ổn hoặc trông có vẻ tốt, triển khai mô hình lên production để làm thí nghiệm
    • Đồng thời có thể thay đổi mã sản phẩm/hạ tầng để kiểm thử mô hình mới đã xây
    • Chạy thí nghiệm và tăng traffic từ từ để đạt mức phân bổ 1-5%, rồi duy trì trong vài tuần hoặc một tháng
    • Trong khi đó, theo dõi kết quả và giám sát mọi pipeline liên quan để bảo đảm mô hình được huấn luyện đúng cách, tránh việc kết quả thí nghiệm bị thay đổi bởi các yếu tố hạ tầng/bug/sản phẩm ngoài dự kiến
    • Nếu kết quả trông đúng như mong đợi và khớp với giả thuyết ban đầu, cả đội sẽ thảo luận về việc phát hành, và nếu quyết định phát hành thì phát hành!
      • (Lưu ý: phát triển mô hình bao gồm viết feature, chuẩn bị dataset, phân tích, tạo chính mô hình ML, triển khai thay đổi cho mã sản phẩm/hạ tầng, v.v.)
  • 20%: Bảo trì
    • Việc đang phát triển mô hình mới không có nghĩa là bỏ mặc mô hình hiện tại
    • Kiểm tra hằng ngày để bảo đảm hiệu năng không suy giảm hoặc thay đổi theo cách bất ngờ
    • Ngoài ra còn sửa pipeline và làm chúng hiệu quả hơn
  • 15%: Đọc paper nghiên cứu và học kỹ năng
    • Thế giới AI/ML thay đổi quá nhanh nên liên tục đọc paper mới và thử các kỹ thuật mới ở nhà để luôn cập nhật
    • Vì thấy vui nên không cảm thấy là gánh nặng
    • Không xem đó là công việc để theo kịp xu hướng
  • 10%: Nghiên cứu nội bộ
    • Dùng thời gian này để tìm hiểu thêm về các sản phẩm khác trong đội hoặc trong công ty, xem đội chúng tôi có thể giúp gì hoặc có thể mượn kỹ thuật/phương pháp nào từ họ
    • Cũng dùng thời gian này để nhìn lại công việc trong 6 tháng/1 năm qua và ghi lại những insight đã rút ra

4 bình luận

 
ohyecloudy 2024-06-17

Cách diễn đạt “Những người không có nền tảng kỹ thuật xem tôi như một phù thủy, còn tôi xem họ như các thầy cúng voodoo” thật thú vị.

 
nutella 2024-06-12

Dữ liệu... dữ liệu... thấy đồng cảm thật đấy

 
halfenif 2024-06-10

Đúng y như những gì tôi vẫn mơ hồ nghĩ là họ sẽ làm.

 
tttttaa 2024-06-10

Nội dung thú vị đấy!