General AI (AI tạo sinh) dành cho Lập trình viên

14:50 20/05/2024

AI tạo sinh hoạt động bằng cách sử dụng các mô hình học máy để tạo ra dữ liệu mới có tính sáng tạo. Các mô hình này thường được huấn luyện trên dữ liệu đã có và sau đó có khả năng tạo ra các dữ liệu mới mà có thể không thể phân biệt được với dữ liệu thực sự.

  1. AI Tạo sinh là gì?

Thuật ngữ này đề cập đến AI, hoặc hệ thống trí tuệ nhân tạo có thể tạo ra nội dung chất lượng cao, cụ thể là nội dung văn bản, hình ảnh và âm thanh. Một trong những hệ thống AI tạo sinh hoặc AI tổng quát nổi tiếng nhất là ChatGPT của OpenAI, có thể làm theo hướng dẫn để thực hiện các nhiệm vụ như viết nội dung truyền thông cho một bài đăng trên mạng xã hội và tạo ra nhiều kết quả sáng tạo khác nhau như sáng tác bài văn theo chủ đề yêu cầu hoặc sáng tác thơ thậm chí có thể là giúp lập trình viên viết đoạn code đơn giản nhanh chóng hoặc sửa đoạn code lỗi hoặc code thiếu.

Ngoài ra AI tạo sinh tạo ra hình ảnh và âm thanh, video, và trong ba loại nội dung này, tác động lớn nhất cho đến nay là việc tạo kịch bản truyền thông hoặc nhiều mục đích makerting hiệu quả.

Mô tả về AI tạo sinh (AI tạo sinh)

Cách hoạt động của AI tạo sinh

AI tạo sinh hoạt động bằng cách sử dụng các mô hình học máy để tạo ra dữ liệu mới có tính sáng tạo. Các mô hình này thường được huấn luyện trên dữ liệu đã có và sau đó có khả năng tạo ra các dữ liệu mới mà có thể không thể phân biệt được với dữ liệu thực sự. Dưới đây là một số phương pháp và cách hoạt động cụ thể của AI tạo sinh:

  • Generative Adversarial Networks (GANs): Generator Tạo ra dữ liệu mới từ dữ liệu ngẫu nhiên đầu vào. Nhiệm vụ của Generator là tạo ra dữ liệu sao cho giống với dữ liệu thật nhất có thể. Discriminator phân biệt giữa dữ liệu thật và dữ liệu được tạo ra bởi Generator. Nhiệm vụ của Discriminator là đánh giá xem dữ liệu đầu vào có phải là dữ liệu thật hay không.
  • Variational Autoencoders (VAEs): VAEs là một loại mô hình học sâu sử dụng biến đổi và tái tạo dữ liệu. Chúng tạo ra dữ liệu mới bằng cách lấy mẫu từ một không gian tiềm ẩn, trong đó mỗi điểm tương ứng với một biểu diễn khác nhau của dữ liệu.
  • Neural Style Transfer: Mô hình này tạo ra dữ liệu mới bằng cách kết hợp hai hình ảnh hoặc nội dung khác nhau để tạo ra một hình ảnh mới có phong cách của hình ảnh một và nội dung của hình ảnh khác.
  • Neural Text Generation: Các mô hình học máy, như Recurrent Neural Networks (RNNs) hoặc Transformers, có thể được sử dụng để tạo ra văn bản mới dựa trên dữ liệu huấn luyện từ các nguồn khác nhau như sách, bài báo, hoặc trang web.
  • Generative Models for Images, Audio, and Video: Các mô hình đặc biệt được thiết kế để tạo ra dữ liệu mới trong các lĩnh vực như hình ảnh, âm thanh và video. Các mô hình này có thể tạo ra hình ảnh phong phú, âm thanh nhạc cụ, hoặc video phim hoạt hình từ dữ liệu đầu vào.

AI tạo sinh được sử dụng để làm gì?

Mục đích của AI tạo sinh là tạo ra dữ liệu mới, đa dạng và sáng tạo từ dữ liệu đã có, thông qua việc sử dụng các mô hình học máy và mạng nơ-ron. AI tạo sinh có thể được sử dụng trong nhiều lĩnh vực và có một số mục đích chính:

  • Tạo ra nội dung sáng tạo: AI tạo sinh có khả năng tạo ra các loại nội dung mới như hình ảnh, video, âm nhạc, văn bản và nhiều loại nội dung sáng tạo khác. Điều này mở ra nhiều cơ hội trong lĩnh vực nghệ thuật, thiết kế và truyền thông.
  • Tạo dữ liệu mẫu: AI tạo sinh có thể tạo ra dữ liệu mẫu tự động, giúp trong việc huấn luyện và kiểm thử các mô hình học máy. Điều này có thể hữu ích trong nhiều lĩnh vực như phát triển trò chơi, thị giác máy tính, xử lý ngôn ngữ tự nhiên và nhiều lĩnh vực khác.
  • Mở rộng khả năng sáng tạo của máy tính: AI tạo sinh giúp máy tính có khả năng tạo ra dữ liệu mới và có thể được sử dụng để học các khái niệm sáng tạo và phát triển kỹ năng tạo ra nội dung.
  • Ứng dụng trong thiết kế và truyền thông: AI tạo sinh có thể được sử dụng để tạo ra các hình ảnh và video mới cho các sản phẩm thiết kế, quảng cáo và truyền thông, giúp tăng cường sự sáng tạo và thu hút sự chú ý của khách hàng.
  • Tạo ra mô hình và đồ họa máy tính: AI tạo sinh có thể tạo ra các mô hình 3D và đồ họa máy tính mới, giúp trong việc phát triển trò chơi, thực tế ảo, thiết kế sản phẩm và nhiều ứng dụng khác.

AI tạo sinh có thể hỗ trợ lập trình viên như thế nào?

  • Tạo dữ liệu mẫu: AI tạo sinh có thể tạo ra dữ liệu mẫu tự động, giúp lập trình viên có dữ liệu để huấn luyện và kiểm thử mô hình của họ. Điều này có thể hữu ích trong các lĩnh vực như học máy, thị giác máy tính, xử lý ngôn ngữ tự nhiên và nhiều lĩnh vực khác.
  • Tạo mã tự động: AI tạo sinh có thể được sử dụng để tạo mã tự động, giúp lập trình viên tăng tốc quá trình phát triển phần mềm và giảm thiểu công sức tập trung vào việc viết mã cơ sở hoặc các phần mã lặp lại. Điều này có thể áp dụng trong việc tạo mã Python, JavaScript, HTML/CSS và nhiều ngôn ngữ lập trình khác.
  • Tạo hình ảnh và đồ họa: AI tạo sinh có thể được sử dụng để tạo ra hình ảnh và đồ họa tự động, giúp lập trình viên trong việc tạo ra các giao diện người dùng, trang web, trò chơi và ứng dụng trực quan.
  • Tạo nội dung sáng tạo: AI tạo sinh có thể tạo ra văn bản, âm nhạc, hình ảnh và nhiều loại nội dung sáng tạo khác, giúp lập trình viên trong việc tạo ra nội dung đa dạng và hấp dẫn cho ứng dụng, trang web và sản phẩm của họ.
  • Giải quyết vấn đề và tối ưu hóa: AI tạo sinh có thể được sử dụng để tạo ra các giải pháp hoặc các biến thể của một vấn đề nhất định, giúp lập trình viên trong việc tối ưu hóa các quy trình và giải quyết các vấn đề phức tạp.

Ví dụ cụ thể về Chat GPT hỗ trợ lập trình viên

  • Viết code: Việc viết code bằng AI tạo sinh được thực hiện thông qua kỹ thuật “neural code generation”, ở đó mạng thần kinh nhân tạo được đào tạo trên một tập dữ liệu lớn gồm các code mẫu, sau đó sử dụng fine tuned network để tạo code có cấu trúc và chức năng tương tự với các mẫu mà nó đã được đào tạo.Ví dụ: sử dụng ChatGPT nhờ viết giúp đoạn code trên ngôn ngữ Python
Chat GPT viết kịch bản python giải bài toán tính n!
  • Hoàn thiện code: Một trong những cách sử dụng đơn giản nhất của AI tạo sinh trong lập trình là hoàn thiện đoạn code dựa trên prompt. Sự hỗ trợ của AI tạo sinh trong trường hợp này giúp tiết kiệm thời gian và giảm thiểu sai sót, đặc biệt đối với các tác vụ lặp đi lặp lại hàng ngày. Ví dụ dưới đây là tôi đang thực hiện đoạn code nhưng chư hoàn thiện tô nhờ Chat GPT giúp tôi viết phần lệnh còn lại
Đoạn code lệnh Python còn thiếu chưa viết hoàn thiện

Và sau đây là kết quả của Chat GPT

Kết quả sau khi gợi ý và sửa lỗi của Chat GPT
  • Đánh giá code: AI tạo sinh cũng có thể được sử dụng trong việc kiểm tra chất lượng của code hiện có, từ đó tối ưu hóa nó bằng cách đề xuất cải tiến hoặc tạo code mới thay thế hiệu quả hơn hoặc dễ đọc hơn.
Cơ chế của Amazon CodeWhisperer trong đánh giá code.
  • Sửa lỗi: AI tạo sinh có thể giúp xác định và sửa lỗi trong code bằng cách phân tích các đoạn code đầu vào, xác định các sự cố tiềm ẩn và đề xuất cách khắc phục.
Sử dụng ChatGPT trong sửa code Python
  • Tái cấu trúc code: AI tạo sinh có thể tự động hóa quá trình tái cấu trúc code, từ đó giúp việc bảo trì và cập nhật theo thời gian dễ dàng hơn.
  • Cải thiện việc tuân thủ quy tắc lập trình: AI tạo sinh có thể phân tích code sao cho phù hợp với quy tắc lập trình (coding style), đảm bảo tính nhất quán và dễ đọc trên toàn bộ codebase.

Một số công cụ Gen AI hỗ trợ cho coder

Copilot: Copilot là một công cụ AI hỗ trợ tạo và gợi ý code được phát triển bởi Microsoft phối hợp cùng OpenAI. Copilot sử dụng các mô hình học máy được đào tạo trên một hệ thống khối lượng khổng lồ các đoạn code nhằm đề xuất các đoạn code, thậm chí là toàn bộ tính năng mà nhà phát triển yêu cầu.

ChatGPT: Do OpenAI phát triển, ChatGPT không có tính năng chuyên sâu về lập trình. Tuy nhiên, là một mô hình ngôn ngữ được đào tạo trên kho dữ liệu văn bản lớn, ChatGPT có thể tạo văn bản bằng ngôn ngữ tự nhiên, bao gồm code snippets hoặc ví dụ code mẫu như ví dụ tôi đã đề cập phần trên.

CodeWhisperer: CodeWhisperer của Amazon là một công cụ tạo code sử dụng nguồn dữ liệu đa dạng, bao gồm Amazon.com và các mã nguồn mở khác. CodeWhisperer có thể hiểu các nhận xét được viết bằng ngôn ngữ tự nhiên, từ đó tạo code dựa trên yêu cầu của các nhà phát triển và tuân thủ quy tắc lập trình (coding style). Bên cạnh đó, CodeWhisperer đưa ra các đề xuất phù hợp với prompt. Người dùng có tùy chọn chấp nhận đề xuất hoặc tiếp tục viết code theo cách riêng.

Google Bard: Bard là mô hình AI tạo sinh do Google phát triển nhằm đối trọi với ChatGPT. Đối với tác vụ lập trình, Bard có thể viết code bằng 20 ngôn ngữ khác nhau, bao gồm Python, Java, C++ và Javascript. Nó có thể tạo code từ prompt hoặc nhận xét của người dùng trước đó đã phản hồi,  nó giải thích code bạn nhập vào và giúp lập trình viên cấu trúc lại các đoạn code đã viết.

IBM Watsonx Code Assistant: Được hỗ trợ bởi các mô hình nền tảng Granite của IBM, bao gồm các mô hình ngôn ngữ lớn và được thiết kế đặc thù cho code. Watsonx Code Assistant giúp các nhóm lập trình viên tạo code tốt nhất bằng cách sử dụng các đề xuất do AI đưa ra dựa trên yêu cầu ngôn ngữ tự nhiên hoặc mã nguồn hiện có từ dữ liệu lớn mà học máy được huấn luyện.

Code Llama: Llama 2 đã được Meta tinh chỉnh để lập trình và có 3 phiên bản:

  • Code Llama cho các ngôn ngữ lập trình khác nhau
  • Code Llama – Python cho Python.
  • Code Llama – Instruct nâng cao khả năng hiểu các hướng dẫn được viết bằng ngôn ngữ tự nhiên.

Tabnine: Là một trợ lý lập trình khác sử dụng OpenAI Codex để tạo đề xuất code. Nó có thể tự động hoàn thành toàn bộ dòng code hoặc đầy đủ tính năng, sao cho phù hợp với phong cách và quy ước của codebase hiện có. Điểm nổi bật của Tabnine là ở tính sẵn có. Copilot và Amazon CodeWhisperer chỉ có sẵn trong một số IDE chính, như VS Code, trong khi Tabnine có thể được truy cập trong nhiều ứng dụng hơn, bao gồm Sublime, Emacs, Vim và Android Studio.

CodeWP: WordPress như chúng ta đã biết nó là hệ thống công cụ để phát triển và quản lý nội dung (CMS) phổ biến nhất thế giới, hỗ trợ khoảng hơn 40% trang web hiện có trên toàn cầu. Nếu coder là một trong những nhà phát triển chuyên về WordPress hoặc bất kỳ plugin phổ biến nào của nó như WooC Commerce, thì CodeWP có thể chính xác là những gì bạn đang tìm kiếm. CodeWP được thiết kế và đào tạo rõ ràng để tạo PHP, Javascript và jQuery tương thích với WordPress, các plugin và cơ sở dữ liệu của nó. 

CodeSquire: CodeSquire sử dụng Chrome Extension để đưa các tính năng AI lên như: Google Colab, BigQuery và JupyterLab. Nhắm đến việc hỗ trợ các nhà phân tích về khoa học dữ liệu, CodeSquires cho phép đưa nhận xét thành code, tạo các truy vấn SQL dựa trên prompt được viết bằng ngôn ngữ tự nhiên, hoàn thiện code cũng như tạo ra các hàm mới phức tạp hơn và giúp gợi ý phưong pháp hay thuật toán cho kết quả bài toán tốt hơn.

AI Query: Hỗ trợ lập trình viên viết truy vấn dữ liệu (database queries), nó có thể biến các yêu cầu bằng tiếng Anh thành các truy vấn SQL, cũng như dịch các truy vấn SQL phức tạp sang tiếng Anh. Hiện tại, AI Query hỗ trợ PostgreSQL, MySQL, MariaDB, Microsoft SQL Server và tương lai có thể hỗ trợ Google BigQuery, Amazon Aurora, MongoDB và các công cụ cơ sở dữ liệu khác.

Giảng viên Tạ Đăng Chí
Bộ môn Ứng dụng phần mềm
FPT Polytechnic Hà Nội

Cùng chuyên mục

Đăng Kí học Fpoly 2024

  • Max. file size: 50 MB.
  • Max. file size: 50 MB.
  • Max. file size: 50 MB.