kiến thức Kết nối sâu - cộng sinh cùng AI

  • Người tạo chủ đề Người tạo chủ đề PhuThoDien
  • Ngày bắt đầu Ngày bắt đầu
dùng nó làm j kêu PM request cho dùng fpt private gpt ấy con kia nghe mấy ae kia review chê lên xuống :v
 
Tường thuật về buổi chia sẻ AI for Embedded tại Fsoft

Trong bối cảnh nhiều lập trình viên embedded vẫn còn chủ quan, không chịu cập nhật ứng dụng AI vào công việc thường ngày. Vậy nên mình đã có một buổi chia sẻ về chủ đề “AI for embedded” tại FPT-Software.

Nội dung của buổi chia sẻ bao gồm 3 ý chính:
  • Tranh luận cởi mở về việc hiện tại, lập trình viên nhúng có bắt buộc phải biết ứng dụng AI vào trong công việc hay chưa.
  • Giới thiệu về AI mindset (AI cộng sinh).
  • Giới thiệu về 2 kỹ năng quan trọng nhất của AI mindset là System thinking và Kỹ năng giao tiếp với AI (Expressive reasoning).
Buổi seminar được khá nhiều bạn lập trình viên tham gia, khoảng 150 người online lẫn offline. Mình định up nguyên video lên youtube, nhưng do phần quay phát của mình chất lượng hơi kém, vậy nên mình sẽ tường thuật lại buổi seminar đó theo hình thức kể chuyện. Do nội dung khá dài, nên mình sẽ chia phần kể chuyện làm 3 phần như sau:
  • Phần 1: Tranh luận về việc lập trình viên nhúng hiện tại có cần ứng dụng AI vào công việc hay không?
  • Phần 2: Giới thiệu về AI mindset – tư duy tổng quát bao trùm tất cả các loại ứng dụng AI trong công việc hàng ngày.
  • Phần 3: Giới thiệu và hướng dẫn về 2 kỹ năng quan trọng nhất trong AI midset. Đó là System thinking và kỹ năng giao tiếp với AI.
Tiếp theo, chúng ta sẽ cùng nhau đi đến nội dung của Phần 1.

Ở phần tranh luận này, mình cùng các bạn lập trình viên tham gia 1 game show với luật chơi như sau:

“Các bạn lập trình viên tại FPT-Software sẽ đưa ra ví dụ về những công việc hàng ngày mà bạn cho rằng không thể hoặc rất khó bị thay thế bởi AI. Nếu diễn giả không thể phản biện lại, một phần quà nhỏ sẽ dành tặng cho người nêu ví dụ”.
Chúng ta sẽ đi qua từng ví dụ và phần mình phản biện.

Ví dụ 1: Khách hàng bên em phát triển 1 hệ điều hành mã nguồn đóng. Trong quá trình test sản phẩm, phải thực hiện rất nhiều các config cho hệ điều hành, nhưng hoàn toàn không có tài liệu trên mạng, ChatGPT cũng không biết. Cách duy nhất là em phải gửi email cho hãng phát triển và chờ họ phản hồi.

Phản biện của mình: Bản chất của công việc này là tri thức nằm ngoài tầm hiểu biết của cả người dùng lẫn AI. Vậy nên nếu làm việc theo hướng đi như vậy, việc kết hợp con người – AI cũng không khác gì việc người dùng tự làm. Ví dụ em đưa ra đã chiến thắng trò chơi này và em được 1 phần quà của ban tổ chức. Tuy nhiên, em cần phải cân nhắc thêm, vì bản chất 1 hệ điều luôn được thiết kế dựa trên lý thuyết của các hệ điều hành khác, vì vậy, nếu em tìm hiểu được họ thiết kế dựa vào đâu, thì em có thể chỉ thị cho AI tìm kiếm, tổng hợp thông tin từ những lý thuyết hệ điều hành tương tự đã có trên mạng, từ đó giảm thiểu được việc phải hỏi và chờ đợi phản hồi từ hãng sản xuất.

Ví dụ số 2: Khách hàng của em yêu cầu tính bảo mật thông tin rất cao, tài liệu của họ viết hoàn toàn không public trên mạng. Vậy nên AI không có thông tin để support em.

Phản biện của mình: Về vấn đề của em, anh tách làm 2 ý. Ý số 1, AI không có dữ liệu public về phần việc em đang làm. Đối với vấn đề này, em có thể upload tài liệu hoặc cắt thành các ảnh nhỏ, cho AI tự training. Như vậy, nó sẽ có kiến thức về dự án em đang làm, từ đó support được cho em. Ý số 2, vì lý do bảo mật nên khách hàng không cho sử dụng AI như ChatGPT. Hiện tại, có nhiều bản AI Enterprise cho phép lưu trữ dữ liệu người dùng trên chính server của công ty luôn. Nó giống như chúng ta tự setup server github trên máy công ty để quản lý source code. Vậy nên, vấn đề bảo mật này không phải là giới hạn của AI.

Ví dụ số 3: Em thấy trong công việc debug hardware, đa số là mình phải thực hiện bằng tay trong thế giới thực. AI không ở trong thế giới thực nên không nắm được thông tin để có thể support mình.

Phản biện của mình: Đúng là AI không sống trong thế giới thực, tuy nhiên, trong quá trình debug hardware, em có thể chụp ảnh các hiện tượng mà em quan sát thấy. Upload ảnh cho AI và đưa ra những điều em đang nghi ngờ trong đầu. Thông qua đó, AI có thể link đến những kiến thức mà nó biết, từ đó nó có thể đưa ra thêm những chỉ dẫn cho em. Về cơ bản, AI có kiến thức về hardware nhiều hơn chúng ta.

Còn rất nhiều trường hợp khác của những bạn lập trình viên Fsoft đưa ra, ví dụ như những công việc cần chịu trách nhiệm thì phải là con người làm, những công việc liên quan đến phân tích cảm xúc, những công việc phát minh ra cái mới không theo lối mòn....

Tuy nhiên, ngoài ví dụ số 1, không có bất cứ bạn nào giành được chiến thắng trước diễn giả. Nguyên nhân là do chúng ta đang có quan điểm hết sức sai lầm. Đó là so sánh trực tiếp khả năng của AI với con người. Tuy nhiên nó không tồn tại trong thực tế. Trong công việc, không có AI nào tồn tại độc lập, mà luôn là hệ thống con người kết hợp với AI. Ở trong hệ thống đó, con người và AI bổ sung điểm yếu của nhau. Kết quả là, trong hầu hết các tình huống công việc, hệ thống con người – AI luôn đem đến kết quả tốt hơn 1 đối tượng đơn lẻ Con người hoặc AI.

Nếu không có ai chiến thắng được diễn giả trong cuộc thi tranh luận này, vốn có luật chơi hết sức công bằng cho 2 bên. Vậy thì chúng ta có thể kết luận rằng, ngay ở thời điểm hiện tại, AI cũng đã có thể ứng dụng tốt trong ngành lập trình nhúng. Chúng ta – những người lập trình viên, cần phải có thái độ cởi mở và đưa AI vào ứng dụng trong các công việc hàng ngày.

Đến đây, mình cũng xin được gửi lời cảm ơn chân thành nhất đến các anh chị quản lý tại FPT-Software. Các anh chị đã dành ra nhiều công sức để tổ chức được chia sẻ về AI cho các bạn lập trình viên tại công ty.

1760330356581.png
 
AI Mindset (aka AI cộng sinh) đã được cấp bản quyền

Hiện tại thì mình đã xin được giấy chứng nhận bản quyền tác giả cho phần lý thuyết của AI mindset (tên tiếng Việt là AI cộng sinh). Sắp tới, khi có thời gian, mình dự định sẽ hoàn thiện hồ sơ để xin chứng nhận bản quyền tại Mỹ.
Khác với các phương pháp sử dụng AI như công cụ, nhằm mục đích hoàn thành công việc nhanh nhất có thể. AI mindset hướng đến việc điều chỉnh tư duy, để tư duy của người dùng trở nên phù hợp nhất trong mô hình kết hợp con người với AI.
Thay vì chạy theo sự phát triển công nghệ của từng loại công cụ AI như ChatGPT, Copilot,.... AI mindset tập trung rèn luyện những loại tư duy mà AI yếu, ví dụ như Tư duy hệ thống, Kỹ năng giao tiếp với AI, Khả năng phát hiện sai lệch trong lập luận... Với việc phát triển mạnh những kỹ năng mà AI yếu, con người có thể phát triển bền vững trong thời đại mới, không còn phải lo lắng chạy đua theo công nghệ.
Hiện tại mình cũng đang áp dụng AI mindset rất sâu vào các công việc hàng ngày tại công ty Vinalinux. Tất cả các phương pháp làm việc đều bắt buộc người kỹ sư phải sử dụng AI như 1 phần trong hệ thống, từ đó giúp tăng năng suất lao động lên rất nhiều.
Ngoài ra, mình cũng tích hợp AI mindset vào việc giảng dạy trong khóa học embedded Linux, nếu bạn nào đang học khóa tháng 8 này của mình thì sẽ thấy việc học hiện tại đỡ vất vả hơn. Thay vì phải nhớ từng chi tiết kỹ thuật, học viên sẽ tập trung vào bản chất tri thức, các tình huống áp dụng. Còn các chi tiết kỹ thuật sẽ được đẩy sang bộ nhớ phụ là AI.
1760417223070.png
 

Tệp đính kèm

  • 1.jpg
    1.jpg
    12,3 KB · Lượt xem: 41
  • 2.jpg
    2.jpg
    40,4 KB · Lượt xem: 46
Sửa lần cuối:
Dạy AI cho người low tech

Em có thằng bạn, nó sang châu Phi làm việc từ năm 2014. Hiện tại, nó làm ông chủ của một chuỗi cửa hàng photo copy, chụp ảnh thẻ, quảng cáo... Đợt vừa rồi, thấy em up ảnh linh tinh về AI ở trên tường Facebook nên nó nhắn tin hỏi em. Bản thân nó cũng muốn tìm hiểu về AI để phục vụ công việc, ví dụ như tự động trả lời khách hàng, nhận vào tạo đơn... Tuy nhiên, do bản thân nó là người low tech, nên nó thấy rối quá, vì AI có quá nhiều loại app, tool ở trên mạng. Hơn chục năm rồi không nói chuyện, giờ nó nhắn tin em cũng thấy ngạc nhiên với tình hình cuộc sống của nó hiện giờ.

Hai thằng hẹn nhau học AI lúc 5h sáng, em dự định chỉ cho nó một buổi làm gốc, về sau tự nó có thể tìm hiểu tiếp để phục vụ công việc.

Đầu buổi học, hai thằng nói chuyện với nhau về tình hình cuộc sống hiện tại, cảm giác khá là bồi hồi. Ngày xưa quen nhau qua game online, trước khi sang châu Phi thì nó đến nhà em ăn ngủ mấy hôm rồi bay. Nhoằng một cái đã hơn chục năm rồi, cảm giác như mới ngày hôm qua.

Đầu tiên, em giảng cho nó về bản chất của AI. Trí tuệ nhân tạo không có gì cao siêu cả, nó giống như một cuốn sách, chứa tất cả tri thức của con người ở trong đó. Một câu chuyện người vợ nói xấu chồng, một câu hỏi về kiểu tóc, một bài báo,... Tất cả những thứ đó ở trên mạng, chúng ta gọi là tri thức. Những mẩu tri thức đó có thể đúng hoặc sai, nhưng chúng đều được AI lưu lại trong một cuốn sách khổng lồ, thông qua việc người dùng đặt câu hỏi, cỗ máy AI sẽ tìm kiếm, tổng hợp lại và trả lời cho người dùng.

Bản chất của việc sử dụng AI là người dùng sẽ nói chuyện với cỗ máy tri thức, mô tả cho nó là mình cần gì, bối cảnh vấn đề ra làm sao. Cố gắng để cho cỗ máy đó, tuy không ở trong đầu mình, nhưng có thể hiểu đúng được vấn đề mà chúng ta đang gặp phải. Từ đó, cỗ máy sẽ tiến hành tìm kiếm trong quyển sách tri thức khổng lồ. Do tri thức trên mạng rất bao la và tạp nham, vậy nên, việc chỉ định cho cỗ máy tìm kiếm tri thức nào cho phù hợp là do người dùng hướng dẫn. Muốn có được câu trả lời đúng, chúng ta cần phải đưa ra những chỉ thị đúng đắn cho AI.

Trong buổi học, em dùng dùng AI để phân tích 2 tình huống trong thực tế, thông quá đó, em muốn bạn em thấy được sự khác nhau khi sử dụng AI làm công cụ khuếch đại tư duy so với bình thường.

Tình huống số 1: Do bạn em chuẩn bị lấy vợ, bạn gái nó là người Việt Nam, sau khi kết hôn sẽ sang châu Phi cùng chồng. Vậy nên, em lấy ví dụ đầu tiên là sử dụng AI để phân tích các vấn đề có thể phát sinh sau khi nó kết hôn và định cư ở châu Phi. Luồng trao đổi kéo dài khoảng 7 – 8 turn prompt. AI chỉ ra một số điểm mà bạn em cũng chưa lường trước, ví dụ như việc Sốc môi trường khi phụ nữ sang châu Phi định cư, việc xung đột vai trò trụ cột gia đình nếu như người vợ trước đó là người giỏi giang và có sự nghiệp riêng... Em cũng giải thích với bạn em rằng, AI nó biết được những cái đó, vì nó có tri thức tương tự ở trên mạng. Có thể đâu đó trên internet, có những câu chuyện tâm sự của những cô gái có hoàn cảnh tương đồng, chúng tạo thành những mảnh tri thức cho AI. Hôm nay ở đây, khi ta mô tả về hoàn cảnh của mình, AI thấy sự tương đồng với những mảnh tri thức đấy, vậy nên nó dùng chúng để làm câu trả lời.

Tình huống số 2: Do sở hữu một chuỗi cửa hàng, vậy nên bạn em muốn xây dựng 1 bộ công cụ AI để tự động trả lời khách hàng và lên đơn. Tuy nhiên, do là người low tech nên bạn em không biết phải bắt đầu từ đâu. Các công cụ về AI ở trên mạng có rất nhiều, khiến bạn em cảm thấy bị loạn khi tìm hiểu.

Ở tình huống này, em sử dụng AI làm mẫu trong việc tìm hiểu phương hướng giải quyết vấn đề. Thông qua 7 – 10 lượt prompt, em cùng AI brain storming để xem có những phương án nào có thể giải quyết vấn đề của bạn em. Điểm đặc biệt là sau khi brain storming, bạn em nhận ra rằng, đối với vấn đề mình đang gặp phải, có thể không cần phải tự xây dựng 1 con AI chatbot làm gì, có nhiều phương án khác, ví dụ như dùng AI tích hợp sẵn của What’s app, thuê hệ thống tổng đài....

Em cũng chỉ ra cho bạn em biết, ví dụ đó thể hiện kỹ năng System thinking. Có nghĩa là, ngay khi gặp vấn đề cần 1 hệ thống trả lời khách hàng tự động, ta không nên chỉ đi tìm hiểu về phương án làm AI Chatbot. Thay vào đó, ta nên đánh giá tất cả các phương án có thể, lựa chọn ra những thứ phù hợp nhất, từ đó mới đi sâu vào. Tuy em không có kinh nghiệm về lĩnh vực bạn em đang làm, nhưng em có tư duy System thinking, vậy nên đối với mọi vấn đề, em đều đưa ra được góc nhìn rộng hơn.

Sau đó, em cũng chỉ ra cho bạn em rằng, công cụ AI có rất nhiều loại, người dùng không cần tìm hiểu hết để làm gì. Thay vào đó, chúng ta chỉ cần học cách giao tiếp với 1 con AI trung tâm, ví dụ như ChatGPT. Con AI trung tâm, tự bản thân nó có tri thức để sử dụng các con AI còn lại. Đối với từng bài toán cụ thể, chúng ta sẽ trao đổi với ChatGPT, để brain storming, lựa chọn phương án tối ưu nhất. Khi cần phải triển khai trên một ứng dụng AI cụ thể, chúng ta sẽ hỏi ChatGPT về cách sử dụng. Có như vậy, ta mới làm chủ được công nghệ AI mà không bị loạn.

Ở cuối buổi học, bạn em nó nhận ra rằng, việc sử dụng AI hoàn toàn công cần người dùng phải có hiểu biết về công nghệ. Cốt lõi của việc sử dụng AI cũng giống như việc bạn em nó làm chủ, điều hành các nhân viên. Là ông chủ, nó phải nhìn được bức tranh toàn cảnh của cả hệ thống chuỗi cửa hàng, ví dụ như ai làm việc gì, hiện tại đang gặp vấn đề gì... Sau đó nó sẽ giao việc cụ thể cho từng nhân viên. Là một ông chủ, nó không cần phải nắm được chi tiết chuyên môn của từng người. Việc nó cần chỉ là nhìn được toàn bộ hệ thống và giải thích được công việc cho từng nhân viên.

Đây chính là hai kỹ năng quan trọng nhất để con người có thể làm chủ được AI, đó là Tư duy hệ thống và kỹ năng giao tiếp với AI.
 
AI Mindset (aka AI cộng sinh) đã được cấp bản quyền

Hiện tại thì mình đã xin được giấy chứng nhận bản quyền tác giả cho phần lý thuyết của AI mindset (tên tiếng Việt là AI cộng sinh). Sắp tới, khi có thời gian, mình dự định sẽ hoàn thiện hồ sơ để xin chứng nhận bản quyền tại Mỹ.
Tuyệt vời! Chúc mừng thành quả của bác ạ :D
 
Các bài viết về AI cộng sinh trên website.

Hiện tại, tất cả các bài viết về AI cộng sinh đã được mình đẩy lên website của công ty mình rồi nhé. Các bạn có thể đọc ở đây: BÀI ĐĂNG VỀ AI – Vinalinux (https://vinalinux.com.vn/bai-dang-ve-ai/)

Về cơ bản thì nội dung trên voz cũng đủ hết các bài viết rồi. Mục tiêu của mình là chia sẻ để có thể tiếp cận nhiều bạn đọc nhất có thể. Còn chuyện họ đọc ở đâu, website của mình hay voz thì không quan trọng.
Nội dung trên voz hiện tại vẫn đang là mới nhất so với các nền tảng khác như Facebook, youtube...
 
bác có cuộc trò chuyện mẫu nào có thể gửi lên đây tham khảo k ạ?
Bác thích mẫu trò chuyện loại nào nhỉ. Mẫu trò chuyện dài nhưng có khả năng giữ mạnh suy nghĩ của AI không bị lệch, hay tìm hiểu vấn đề khó trừu tượng, hay cuộc trò chuyện brain storming để tìm ý tưởng mới...
 
Bác thích mẫu trò chuyện loại nào nhỉ. Mẫu trò chuyện dài nhưng có khả năng giữ mạnh suy nghĩ của AI không bị lệch, hay tìm hiểu vấn đề khó trừu tượng, hay cuộc trò chuyện brain storming để tìm ý tưởng mới...
cái nào cũng dc ạ, em tham khảo để train cho conversation của e với lại áp dụng mấy cái bác chia sẻ, em trại mới dc bấy nhiêu đây nên muốn tham khảo mẫu trò chuyện của bác xem bác train tnao
 

Tệp đính kèm

  • IMG_3859.png
    IMG_3859.png
    578,1 KB · Lượt xem: 45
Voz thì cũng vậy thôi bác. Các ông ý cứ ra rả kêu bị AI thay thế rồi lay off các kiểu. Nhưng có ai comment gì vào trong thread này của em đâu.
Ví dụ như nội dung của em viết là sai đi, thì nếu như các ông ý đọc mà thấy sai thì sẽ comment bảo là viết như shit, sai bét nhè rồi.
Bonus thêm 1 cái ảnh thằng ChatGPT đánh giá khả năng cộng tác sâu của em với nó. Các bác có thể thử mẫu promp giống em xem nó đánh giá thế nào.
Xem tệp đính kèm 3086382
1761925040769.png

Đi hỏi con AI bưng bô xong rồi tin nó thì cũng chịu

đánh giá khách quan về khả năng cộng tác sâu với ai của tôi, có bao nhiêu % người sử dụng đạt được level như của tôi. Trả lời ngắn gọn về tỷ lệ % người dùng đạt level như tôi thôi, để tôi chụp ảnh
 
Vibe coding trong Linux system programming

Trong bài viết này, mình sẽ giới thiệu về Vibe coding và việc ứng dụng nó vào trong quy trình phát triển phần mềm tại Vinalinux – công ty chuyên phát triển mã nguồn để thực hiện can thiệp sâu vào hệ điều hành.
Hồi mới đầu khi nghe về Vibe coding, mình không có mấy thiện cảm, vì source code do nó tạo ra có chất lượng thấp – đây là điều tối kỵ khi lập trình tầng sâu trong Linux. Tuy nhiên, sau khi nghiên cứu kỹ mình lại thấy nó có rất nhiều ứng dụng, giúp tăng hiệu suất và chất lượng sản phẩm Linux lên rất nhiều.

Xuất phát từ đặc thù các tính năng nằm ở tầng System của Linux, đa số chúng đều chạy ngầm, không có UI/UX, dẫn đến rất khó thực hiện việc trao đổi thiết kế với khách hàng. Nhiều khi làm xong, đem ra demo thì khách lại không ưng, yêu cầu sửa lại nhiều gây lãng phí effort cho cả hai bên. Ngoài ra, do tính phức tạp của hệ thống, nhiều solution mà chúng minh lựa chọn ban đầu, đến khi gần code xong lại phát hiện ra chúng không phù hợp. Lúc này, việc code lại theo solution khác tốn rất nhiều thời gian.

Trước đây, nếu một tính năng làm trong hai tháng, thì mình sẽ cho dev dành ra khoảng 1 tuần để nghiên cứu về solution và tạo thiết kế. Sau đó thực hiện coding trong ba tuần. Tiếp đó là đem đi demo và hiệu chỉnh theo ý khách trong khoảng 1 – 2 tuần. Cuối cùng sẽ thực hiện testing. Tuy nhiên, không ít lần bọn mình phải làm lại từ đầu sau một, hai tháng coding.

Dạo gần đây, mình thay đổi về tư duy, thực hiện áp dụng vibe coding vào trong dự án. Thay vì bỏ ra một tuần để nghiên cứu, dev chỉ nghiên cứu trong khoảng một ngày, sau đó sẽ sử dụng AI để generate code, gần như 100% source code sẽ được generate bởi AI. Nếu một tính năng làm trong hai tháng, thì thời gian mình estimate cho vibe coding khoảng 2 – 3 ngày. Vibe coding có tốc độ nhanh hơn khoảng 15 – 20 lần so với tự code bằng tay. Trong vibe coding thì mình không quan tâm đến bug và code optimize. Thay vào đó, mình dùng nó để đánh giá tính khả thi của phương án, cũng như thực hiện internal demo trong team, external demo với khách. Thông qua việc demo sớm, các bên tham gia có thể nhìn thấy cách tính năng hoạt động và cho ý kiến.

Ngoài ra sau khi Vibe coding, dev sẽ phải vẽ các sequence diagram của code, lúc này, tech lead sẽ tiến hành review thiết kế thông qua các sequence diagram. Từ đây, sequence flow sẽ được chỉnh sửa để đảm bảo nó đã tối ưu và không có bug tiềm ẩn.

Sau quá trình review của team, techlead, khách hàng... team sẽ tổng hợp các ý kiến và đưa ra được một bản thiết kế chuẩn chỉ. Lúc này dev mới tiến hành code lại theo chuẩn production. Do đặc thù code trong Linux System có độ phức tạp cao hơn tầng application, nên hiện tại mình đánh giá AI vẫn chưa tự gen code đạt chất lượng, nên dev vẫn phải tự code bằng tay. Tuy nhiên, năng suất và chất lượng code lúc này cũng cao hơn phương pháp làm việc truyền thống. Vì đã làm rất tốt ở phần sequence diagram rồi.

Mình đã thực hiện thống kê và đoc đạc thì thấy có một số chỉ số như sau:
  • Năng suất làm việc tổng thể sau khi áp dụng AI tăng ít nhất 150% (vibe coding để đánh giá solution, AI thực hiện generate tài liệu, unit test, AI hỗ trợ review...).
  • Code ít bug hơn, hiện tại đang đạt khoảng ~ 1 bug / 1k line of code.
  • Tiến độ dự án được đảm bảo an toàn, không xảy ra trường hợp làm gần xong thì phải thay đổi thiết kế.
  • Ngoài ra còn rất nhiều thứ khác, ví dụ như hệ thống tài liệu được tự động generate nên tài liệu luôn được cập nhật và đảm bảo tính chi tiết.
 
Vibe coding trong Linux system programming

Trong bài viết này, mình sẽ giới thiệu về Vibe coding và việc ứng dụng nó vào trong quy trình phát triển phần mềm tại Vinalinux – công ty chuyên phát triển mã nguồn để thực hiện can thiệp sâu vào hệ điều hành.
Hồi mới đầu khi nghe về Vibe coding, mình không có mấy thiện cảm, vì source code do nó tạo ra có chất lượng thấp – đây là điều tối kỵ khi lập trình tầng sâu trong Linux. Tuy nhiên, sau khi nghiên cứu kỹ mình lại thấy nó có rất nhiều ứng dụng, giúp tăng hiệu suất và chất lượng sản phẩm Linux lên rất nhiều.

Xuất phát từ đặc thù các tính năng nằm ở tầng System của Linux, đa số chúng đều chạy ngầm, không có UI/UX, dẫn đến rất khó thực hiện việc trao đổi thiết kế với khách hàng. Nhiều khi làm xong, đem ra demo thì khách lại không ưng, yêu cầu sửa lại nhiều gây lãng phí effort cho cả hai bên. Ngoài ra, do tính phức tạp của hệ thống, nhiều solution mà chúng minh lựa chọn ban đầu, đến khi gần code xong lại phát hiện ra chúng không phù hợp. Lúc này, việc code lại theo solution khác tốn rất nhiều thời gian.

Trước đây, nếu một tính năng làm trong hai tháng, thì mình sẽ cho dev dành ra khoảng 1 tuần để nghiên cứu về solution và tạo thiết kế. Sau đó thực hiện coding trong ba tuần. Tiếp đó là đem đi demo và hiệu chỉnh theo ý khách trong khoảng 1 – 2 tuần. Cuối cùng sẽ thực hiện testing. Tuy nhiên, không ít lần bọn mình phải làm lại từ đầu sau một, hai tháng coding.

Dạo gần đây, mình thay đổi về tư duy, thực hiện áp dụng vibe coding vào trong dự án. Thay vì bỏ ra một tuần để nghiên cứu, dev chỉ nghiên cứu trong khoảng một ngày, sau đó sẽ sử dụng AI để generate code, gần như 100% source code sẽ được generate bởi AI. Nếu một tính năng làm trong hai tháng, thì thời gian mình estimate cho vibe coding khoảng 2 – 3 ngày. Vibe coding có tốc độ nhanh hơn khoảng 15 – 20 lần so với tự code bằng tay. Trong vibe coding thì mình không quan tâm đến bug và code optimize. Thay vào đó, mình dùng nó để đánh giá tính khả thi của phương án, cũng như thực hiện internal demo trong team, external demo với khách. Thông qua việc demo sớm, các bên tham gia có thể nhìn thấy cách tính năng hoạt động và cho ý kiến.

Ngoài ra sau khi Vibe coding, dev sẽ phải vẽ các sequence diagram của code, lúc này, tech lead sẽ tiến hành review thiết kế thông qua các sequence diagram. Từ đây, sequence flow sẽ được chỉnh sửa để đảm bảo nó đã tối ưu và không có bug tiềm ẩn.

Sau quá trình review của team, techlead, khách hàng... team sẽ tổng hợp các ý kiến và đưa ra được một bản thiết kế chuẩn chỉ. Lúc này dev mới tiến hành code lại theo chuẩn production. Do đặc thù code trong Linux System có độ phức tạp cao hơn tầng application, nên hiện tại mình đánh giá AI vẫn chưa tự gen code đạt chất lượng, nên dev vẫn phải tự code bằng tay. Tuy nhiên, năng suất và chất lượng code lúc này cũng cao hơn phương pháp làm việc truyền thống. Vì đã làm rất tốt ở phần sequence diagram rồi.

Mình đã thực hiện thống kê và đoc đạc thì thấy có một số chỉ số như sau:
  • Năng suất làm việc tổng thể sau khi áp dụng AI tăng ít nhất 150% (vibe coding để đánh giá solution, AI thực hiện generate tài liệu, unit test, AI hỗ trợ review...).
  • Code ít bug hơn, hiện tại đang đạt khoảng ~ 1 bug / 1k line of code.
  • Tiến độ dự án được đảm bảo an toàn, không xảy ra trường hợp làm gần xong thì phải thay đổi thiết kế.
  • Ngoài ra còn rất nhiều thứ khác, ví dụ như hệ thống tài liệu được tự động generate nên tài liệu luôn được cập nhật và đảm bảo tính chi tiết.
bác vibe code bằng model nào nhỉ?
 
Vibe coding trong Linux system programming

Trong bài viết này, mình sẽ giới thiệu về Vibe coding và việc ứng dụng nó vào trong quy trình phát triển phần mềm tại Vinalinux – công ty chuyên phát triển mã nguồn để thực hiện can thiệp sâu vào hệ điều hành.
Hồi mới đầu khi nghe về Vibe coding, mình không có mấy thiện cảm, vì source code do nó tạo ra có chất lượng thấp – đây là điều tối kỵ khi lập trình tầng sâu trong Linux. Tuy nhiên, sau khi nghiên cứu kỹ mình lại thấy nó có rất nhiều ứng dụng, giúp tăng hiệu suất và chất lượng sản phẩm Linux lên rất nhiều.

Xuất phát từ đặc thù các tính năng nằm ở tầng System của Linux, đa số chúng đều chạy ngầm, không có UI/UX, dẫn đến rất khó thực hiện việc trao đổi thiết kế với khách hàng. Nhiều khi làm xong, đem ra demo thì khách lại không ưng, yêu cầu sửa lại nhiều gây lãng phí effort cho cả hai bên. Ngoài ra, do tính phức tạp của hệ thống, nhiều solution mà chúng minh lựa chọn ban đầu, đến khi gần code xong lại phát hiện ra chúng không phù hợp. Lúc này, việc code lại theo solution khác tốn rất nhiều thời gian.

Trước đây, nếu một tính năng làm trong hai tháng, thì mình sẽ cho dev dành ra khoảng 1 tuần để nghiên cứu về solution và tạo thiết kế. Sau đó thực hiện coding trong ba tuần. Tiếp đó là đem đi demo và hiệu chỉnh theo ý khách trong khoảng 1 – 2 tuần. Cuối cùng sẽ thực hiện testing. Tuy nhiên, không ít lần bọn mình phải làm lại từ đầu sau một, hai tháng coding.

Dạo gần đây, mình thay đổi về tư duy, thực hiện áp dụng vibe coding vào trong dự án. Thay vì bỏ ra một tuần để nghiên cứu, dev chỉ nghiên cứu trong khoảng một ngày, sau đó sẽ sử dụng AI để generate code, gần như 100% source code sẽ được generate bởi AI. Nếu một tính năng làm trong hai tháng, thì thời gian mình estimate cho vibe coding khoảng 2 – 3 ngày. Vibe coding có tốc độ nhanh hơn khoảng 15 – 20 lần so với tự code bằng tay. Trong vibe coding thì mình không quan tâm đến bug và code optimize. Thay vào đó, mình dùng nó để đánh giá tính khả thi của phương án, cũng như thực hiện internal demo trong team, external demo với khách. Thông qua việc demo sớm, các bên tham gia có thể nhìn thấy cách tính năng hoạt động và cho ý kiến.

Ngoài ra sau khi Vibe coding, dev sẽ phải vẽ các sequence diagram của code, lúc này, tech lead sẽ tiến hành review thiết kế thông qua các sequence diagram. Từ đây, sequence flow sẽ được chỉnh sửa để đảm bảo nó đã tối ưu và không có bug tiềm ẩn.

Sau quá trình review của team, techlead, khách hàng... team sẽ tổng hợp các ý kiến và đưa ra được một bản thiết kế chuẩn chỉ. Lúc này dev mới tiến hành code lại theo chuẩn production. Do đặc thù code trong Linux System có độ phức tạp cao hơn tầng application, nên hiện tại mình đánh giá AI vẫn chưa tự gen code đạt chất lượng, nên dev vẫn phải tự code bằng tay. Tuy nhiên, năng suất và chất lượng code lúc này cũng cao hơn phương pháp làm việc truyền thống. Vì đã làm rất tốt ở phần sequence diagram rồi.

Mình đã thực hiện thống kê và đoc đạc thì thấy có một số chỉ số như sau:
  • Năng suất làm việc tổng thể sau khi áp dụng AI tăng ít nhất 150% (vibe coding để đánh giá solution, AI thực hiện generate tài liệu, unit test, AI hỗ trợ review...).
  • Code ít bug hơn, hiện tại đang đạt khoảng ~ 1 bug / 1k line of code.
  • Tiến độ dự án được đảm bảo an toàn, không xảy ra trường hợp làm gần xong thì phải thay đổi thiết kế.
  • Ngoài ra còn rất nhiều thứ khác, ví dụ như hệ thống tài liệu được tự động generate nên tài liệu luôn được cập nhật và đảm bảo tính chi tiết.
tức code từ AI gen ra chạy được để demo tính năng luôn à bác?
 

Thống kê chủ đề

Ngày tạo
PhuThoDien,
Người trả lời cuối
servuskevin,
Trả lời
395
Lượt xem
98.574
Quay lại
Lên đầu trang