Nghề phần mềm trong làn sóng AI (Phần 1): Cơn sốt đào vàng
Khác với những làn sóng công nghệ trước đây như Big Data, IoT, BlockChain, người người nhà nhà bàn về GenAI còn bức tranh nghề thì hoang mang với AI Hype, hay còn gọi là cơn sốt AI.
Trong một ngày mưa rả rích của Sài Gòn, nhân dịp chém gió với mấy người bạn vẫn còn đang làm trong lĩnh vực phần mềm, tôi muốn viết lại một số suy nghĩ riêng về cơn sốt AI khi mà không thể phủ nhận sức ảnh hưởng của các nghiên cứu về AI tạo sinh gần đây và đặc biệt là sức hút mãnh liệt của nó.
Bài viết hoàn toàn là góc nhìn cá nhân của tác giả, không đại diện cho quan điểm của bất kỳ tổ chức nào.
Đôi nét về góc nhìn của tôi trong suốt chuỗi bài viết này:
- Hâm mộ Andrej Karpathy và bài viết Software 2.0 ngay từ những ngày đầu tiên nhưng mệt mỏi với sự ngáo GenAI của những nhà công nghệ sống ảo.
- Thích thú kiến trúc Transformer và cơ chế Attention nhưng bản chất vẫn là xác suất của từ kế tiếp, là auto complete sau khi huấn luyện trên một tập dữ liệu đồ sộ theo một cách hiện đại hơn và bỏ ngỏ đúng/sai.
- Dòng tiền chảy vào bong bóng AI thổi lời hứa về tương lai AGI như những bộ phim khoa học viễn tưởng mà bỏ qua rất nhiều quan điểm khoa học về bản chất của Turing test, về sự khác nhau của năng lực reasoning và một con vẹt nhái lời chuyên gia.
- Lượng năng lượng tiêu tốn, tranh cãi về bản quyền và nội dung thiên kiến, yếu tố môi trường và cả những công việc giá rẻ để nhập liệu AI gần như được bỏ qua khi hứa hẹn về một tương lai năng suất.
Loay hoay trong ngành phần mềm: Qua rồi thời Vua của mọi nghề?
Trong xu hướng dịch chuyển đầy cạnh tranh, chi phí phần mềm đang ngày càng giảm trong tỉ trọng giải pháp. Làn sóng sa thải liên tục với nhiều lí do đã và đang đẩy nhanh tốc độ đào thải của ngành. Nên nhớ rằng đây vẫn là một ngành non trẻ nếu so với những ngành có bề dày lịch sử trong xã hội loài người. Nhan nhản tin tức hàng ngày xoay quanh AI, ra rả về việc AI code kinh như thế nào và một tương lai khủng khiếp đang chờ đón các lập trình viên đã trở nên quá quen thuộc trong năm 2024.
Tỉ lệ sa thải trong lĩnh vực công nghệ 2023 - 2024. Nguồn: layoffs.fyi
Chỉ tính riêng trong năm 2024, đã có 435 công ty trong lĩnh vực công nghệ tiến hành sa thải, con số thống kê cho thấy có hơn 136,000 kỹ sư đã phải đi tìm việc mới. Gần đây nhất có cả nhân sự thuộc mảng phần cứng về chip cũng được trải nghiệm tái cấu trúc với lý do tất nhiên vẫn thật gượng ép đổ lỗi do AI. Có lẽ trong mắt người ngoài ngành thì phần mềm bây giờ toàn là AI làm, kỹ sư chỉ ngồi kéo kéo thả thả hay viết vài câu prompt mà thôi.
Ở góc độ người trong nghề thì có vẻ các kỹ sư lại chẳng có tí lo lắng hay bận tâm về việc AI sẽ cướp đi công việc gì cả, hay ít nhất là với phần đông các bạn tham gia khảo sát của Stack Overflow.
Stack Overflow Developer Survey 2024
Gần như mọi sản phẩm đang được gắn thêm các tính năng GenAI. Để tiếp tục chạy đua vũ trang thì một lượng lớn công việc vẫn đang được tạo ra, phát triển nhanh hơn các loại Vector DB, tốc độ tăng sao trên GitHub của các thư viện họ Lang, Llama hay việc ngày càng phổ biến các kỹ thuật Graph. Có lẽ ngày nay lập trình viên nói nhiều về Knowledge Graph, Ontology còn nhiều hơn các nhà khoa học làm nghiên cứu.
Lượm lặt tấm hình hài hước trên mạng
Có cần cẩn trọng khi dùng AI cho dev, test?
Là người đang tận hưởng được khá nhiều tính năng của GenAI từ Anthropic, Copilot trong công việc hằng ngày nhưng thật sự tôi vẫn thấy có rất nhiều vấn đề cần cẩn trọng giải quyết. Không chỉ ở khía cạnh pháp lý bản quyền, mà còn vì những vấn đề khác. Một nghiên cứu của Stanford chỉ ra rằng 4 trong 5 lập trình viên sử dụng AI vào việc code sẽ tạo ra nhiều vấn đề bảo mật hơn và năng lực cũng khó phát triển hơn.
Xét về trải nghiệm cá nhân khi còn là thực tập sinh, tôi học được nhiều hơn ở những lần debug, những lần phải mày mò để sửa lỗi của người khác, việc viết mã nguồn chạy tính năng chưa bao giờ là khó cả. Những luồng xử lý bất thường vì nghiệp vụ hay những lần cải thiện hiệu năng của hệ thống mới thật sự dạy cho tôi nhiều kiến thức và kỹ năng của nghề. Tất nhiên, bây giờ tôi làm được điều đó nhanh hơn và tiện hơn với các loại ChatGPT, Gemini, nhưng chưa bao giờ tôi đánh giá cao việc đưa code viết bởi AI vào production. Vì quan trọng là sự thấu hiểu nghiệp vụ để còn bảo trì, thậm chí những đoạn code AI viết ra còn khó debug hơn thông thường khi nó không để lại những lỗi hiển nhiên.
Trên quan điểm cá nhân, nếu không đủ giờ bay với nghề thì rất dễ bị nội dung tạo ra bởi AI đánh lừa về việc thật sự giải quyết được tính năng yêu cầu. Từ bao giờ việc tạo ra code lại là một việc khó khăn đến vậy? Còn việc giao tiếp với người dùng, đưa ra các quyết định phù hợp và hoạch định con đường của sản phẩm liệu có tốt hơn khi chúng ta dùng AI?
Trong cuộc chạy đua vũ trang của làn sóng đào vàng, rất khó phân biệt thật giả. Hype Buzzword không phải xa lạ với dân làm công nghệ nhưng nó vô cùng khó chịu khi làn sóng này bị đẩy cao lên đến đỉnh điểm. Tôi vẫn nhớ như in câu nói giỡn quen thuộc khi tôi còn học đại học về việc làm kỹ sư thì phải lý giải được cơ chế của thứ mình làm ra.
Là một người quan tâm đến thiết kế kiến trúc giải pháp, tôi rất thích tìm hiểu về các giải pháp tối ưu hóa hệ thống, các triết lý về tổ chức đội ngũ, về văn hóa để làm sao vừa có hệ thống tốt, vừa có đội ngũ hạnh phúc. Nhưng thú thật là nhiều lúc tôi ghét cay ghét đắng khi nghe câu giúp lập trình viên làm được việc nhanh hơn.
Đầu tiên là việc tạo ra nhiều thời gian rảnh rỗi hơn mà không chứng minh được việc sử dụng thời gian rảnh rỗi đó để làm gì là một cạm bẫy thường thấy trong tư duy cố quy đổi lợi ích ra thành cost-saving. Trong bối cảnh loay hoay tìm business case khi chi phí AI là một khoản đầu tư không nhỏ thì đôi lúc lợi ích luôn là một vài con số mà nhiều khi cách đo đạc đầy hoài nghi nhưng lại rất hợp lý hóa.
Thứ hai là việc nhanh hơn đó đang ứng dụng sai chỗ.
Ví dụ, dùng AI để tự động viết Unit Test giúp tỉ lệ C0 đạt 100%. Nghe thì rất lý tưởng nhưng bạn nghĩ sao nếu như đây là giải pháp để làm đẹp chỉ số sau khi hàng loạt đoạn code được tạo ra để chạy? Hàng loạt test case, unit test cho có chứ không nhằm vào mục tiêu tư duy về các tình huống bất thường? Kinh dị hơn là mỗi khi sửa code thì xóa béng luôn code test rồi lại generate lại cho đúng...
Một ví dụ khác, dùng AI để tự động fix các lỗi do linter bắt ra, tự động review merge/pull request. Đây là những tính năng rất hay, thậm chí gần đây GitHub Copilot ra mắt tính năng Remediation Fix liên quan đến các vấn đề về security cũng giúp đỡ các đội ngũ đang phát triển các thư viện mã nguồn mở vốn ít người và hạn chế về tài nguyên. Nhưng với tôi, họ là những người đã rất cứng tay nghề và tài năng. Còn với các đội ngũ phát triển gồm nhiều bạn trẻ mới vào nghề, thì việc có pair review từ senior, việc tập tự fix các vấn đề về linter là một cách học để các bạn sau này trở thành người review code của người khác.
Khi dùng AI sai, chúng ta tạo thêm ảo tưởng đóng góp vào bong bóng AI, bỏ qua việc làm giàu cho các công ty đang bán phần cứng AI, đang kinh doanh kiếm tiền từ AI Model thì rất cần quan tâm về khía cạnh tiêu tốn tài nguyên. Không chỉ là những con số khủng khiếp của chi phí huấn luyện các mô hình AI dù đã dùng nguồn lực nhân công nhập liệu giá rẻ mà còn là điện năng và nước.
Đúng vậy, một nghiên cứu chỉ ra với GPT3, cứ khoảng 10 lần trả lời sẽ tiêu tốn 0.5 lít nước, và nếu chúng ta còn nhớ thì Open AI đang giữ kỉ lục về tốc độ thu hút người sử dụng qua mọi thời đại. Điều này không có nghĩa là "đừng dùng AI nữa" để bảo vệ môi trường, mà là phải dùng AI một cách có trách nhiệm. Ví dụ, vấn đề không phải là search Stack Overflow và copy/paste thẳng đoạn code mà là phải thật sự đọc hiểu. Nếu dùng AI, khả năng cao là không cần phải sửa tên biến, code sẽ chạy được ngay, nhưng liệu các kỹ sư sẽ đọc lại hay không?
Bạn có đang thật sự đào vàng?
Mỗi làn sóng công nghệ vẫn có những kỹ thuật hay như Quantization, RAG giúp người làm công nghệ không ngừng làm mới mình với LangChain, LlamaIndex,... Nhưng có rất nhiều sản phẩm mọc lên như nấm sau mưa mà xét cho cùng thì chỉ riêng việc wrapper API vẫn còn làm chưa ra hồn với tiêu chuẩn kỹ sư. Gần đây khi đi dạo trên Reddit, Substack tôi thấy có khá nhiều bài viết mệt mỏi với việc đi dọn rác cho làn sóng ngáo AI hay bỗng chốc có thêm nhiều lời hứa suông về năng suất và hiệu quả mà mỗi lần lập trình viên nghe thấy đều kinh hãi.
Hãy lựa chọn một cách có trách nhiệm trong thời đại GenAI và thử trả lời ba câu hỏi dưới đây:
- Cách để đánh giá kết quả khi mô hình chạy?
- Quy mô hệ thống đáp ứng và các kỹ thuật bên cạnh việc gọi API như thế nào?
- Đâu là yếu tố cạnh tranh của sản phẩm khi không xây dựng model?
Bản thân tôi học được rất nhiều để đưa GenAI vào trong giải pháp, đây vẫn là những việc rất kỹ sư. Với những nhà tư vấn giải pháp, đừng bán một tương lai màu hồng của công nghệ mà hãy giúp doanh nghiệp xây dựng lời giải để giải quyết những thách thức của việc ứng dụng AI một cách thực chất nhất.
Cụ thể đó là gì với ngành dịch vụ phần mềm? Mời bạn đón đọc phần 2: Bí kíp để đào tới vàng.