Courses
Kể từ khi ChatGPT ra mắt cuối năm 2022 (sự kiện mở đầu cho cuộc cách mạng AI đang diễn ra), các mô hình AI tạo sinh đã trở nên mạnh mẽ và đa dạng hơn. Mỗi ngày đều có những mô hình mới với kích thước, tính năng, phương thức và mục đích sử dụng khác nhau xuất hiện trên thị trường, khiến việc xác định giới hạn của những điều có thể trở nên khó khăn.
Nhìn chung, có một xu hướng rõ ràng hướng đến việc phát triển các mô hình lớn hơn và phức tạp hơn. Việc tăng số lượng tham số của mô hình và lượng dữ liệu huấn luyện được cho là chiến lược tốt nhất để cải thiện hiệu năng của các mô hình ngôn ngữ lớn (LLM) — công nghệ nền tảng đằng sau các mô hình AI tạo sinh. Hãy xem bài viết riêng của chúng tôi để biết chi tiết LLM là gì.
Tuy nhiên, trước những lo ngại ngày càng tăng về tài nguyên cần thiết để huấn luyện và vận hành các mô hình lớn này (cũng như dấu chân môi trường của chúng), hiệu quả trong phát triển và triển khai AI đang nhanh chóng được chú trọng.
Bài viết này sẽ giới thiệu Stable Code 3B, mô hình mới nhất do Stability AI phát hành, được thiết kế chuyên biệt cho việc viết mã chính xác và phản hồi nhanh. Là một mô hình cực kỳ chính xác cho các tác vụ lập trình, LLM này mang lại hiệu năng ngang với các LLM tiên tiến nhất trong khi giảm đáng kể kích thước.
Stable Code 3B là gì?
Được phát hành vào tháng 1 năm 2024 bởi Stability AI, Stable Code 3B là một LLM với 3 tỷ tham số được phát triển cho mục đích lập trình. Đây là phiên bản nâng cấp của người tiền nhiệm Stable Code Alpha 3B.
Stable Code 3B vượt trội trong các tác vụ tự động hoàn thành mã và có thể dùng như một công cụ giáo dục xuất sắc cho lập trình viên mới. Mô hình được phát hành miễn phí cho mục đích nghiên cứu hoặc sử dụng cá nhân. Với các ứng dụng thương mại, người dùng cần đăng ký một trong các gói Membership của Stability AI.
Stable Code 3B là một trong những sản phẩm tốt nhất trong nhóm các LLM cùng kích thước (xem thêm chi tiết về chỉ số hiệu năng ở phần tiếp theo), đạt kết quả ấn tượng với kích thước thấp hơn đáng kể. Nhờ thiết kế gọn nhẹ và hiệu quả, Stable Code 3B có thể vận hành ngoại tuyến trên các máy tính xách tay phổ biến, kể cả máy không có GPU rời như MacBook Air.
Stable Code 3B hoạt động như thế nào?
Stable Code 3B là một mô hình gọn nhẹ với 2,7 tỷ tham số. Đây là một transformer chỉ giải mã (decoder-only) tương tự LLaMA mã nguồn mở của Meta. Hãy xem bài viết riêng của chúng tôi để biết mọi chi tiết về LLaMA.
Quy trình huấn luyện của Stable Code 3B rõ ràng lấy cảm hứng từ CodeLLaMA của Meta. Mô hình xuất phát từ LLM đã được tiền huấn luyện của Stability AI, StableLM-3b-4e1t, đóng vai trò là mô hình nền tảng.
Mô hình này trải qua quy trình tinh chỉnh gồm hai bước. Ở bước đầu, mô hình được huấn luyện trên nhiều bộ dữ liệu mã và liên quan đến mã, bao gồm CommitPack, GitHub Issues, StarCoder và các bộ dữ liệu Toán khác. Dữ liệu huấn luyện bao gồm mã từ 18 ngôn ngữ lập trình được sử dụng rộng rãi, trong đó có Python, R, Java và C.
Sau đó, mô hình được tinh chỉnh thêm với các chuỗi dài 16.384 token bằng kỹ thuật fill-in-the-middle, như được đề xuất trong bài báo nghiên cứu của CodeLLaMA. Bước thứ hai cho phép mô hình hỗ trợ cửa sổ ngữ cảnh dài lên đến 100.000 token. Điều này đặc biệt phù hợp cho các tác vụ lập trình. Nhờ khả năng nhập chuỗi dài hơn, nhà phát triển có thể cung cấp cho mô hình nhiều ngữ cảnh và các đoạn mã dài hơn từ codebase của họ để tạo ra đầu ra liên quan và chính xác hơn.
Chỉ số hiệu năng của Stable Code 3B
Các nhà phát triển của Stability AI đã tạo ra một mô hình đạt hiệu năng hàng đầu so với các mô hình cùng kích thước trên thước đo MultiPL-E, qua nhiều ngôn ngữ lập trình được kiểm thử. So sánh được minh họa trong hình sau:

So sánh hiệu năng Multi-PL của các mô hình dưới 3B. Nguồn: Stability AI
Stable Code 3B cũng vượt trội khi so với các mô hình lớn hơn nhiều. Ví dụ, mô hình đạt mức hiệu năng tương đương CodeLLaMA 7B, nguồn cảm hứng chính của nó, với việc giảm 60% kích thước.

So sánh Stable Code Completion 3B với CodeLLama 7B. Nguồn: Stability AI
Ứng dụng của Stable Code 3B
Các trợ lý lập trình dùng AI như Stable Code 3B mang đến nhiều cơ hội trong phát triển phần mềm và phân tích dữ liệu. Dưới đây là một số cách mà lập trình viên đã và đang sử dụng AI:
Tự động hóa tác vụ
Stable Code 3B có thể tự động hóa trơn tru các tác vụ lặp lại và nhàm chán, như thực hiện các truy vấn SQL cơ bản, phân tích khám phá dữ liệu và tinh gọn các dự án khoa học dữ liệu. Điều này giúp lập trình viên bỏ qua các công việc tốn thời gian để tập trung vào những nhiệm vụ phức tạp và thách thức hơn. Để tìm hiểu cách hoạt động trong thực tế, hãy xem hướng dẫn minh họa về cách dùng ChatGPT cho khoa học dữ liệu của chúng tôi.
Sửa lỗi (bug)
Gỡ lỗi thường tốn nhiều thời gian và có thể đầy thách thức, đặc biệt khi làm việc trên các dự án phức tạp với hàng trăm dòng mã. Stable Code 3B là trợ lý hoàn hảo để tăng tốc quá trình này bằng cách quét mã của bạn trong vài giây và cung cấp gợi ý về mã và cấu trúc để khắc phục. Nhờ cửa sổ ngữ cảnh dài, người dùng có thể cung cấp cho mô hình các script lớn và Stable Code 3B sẽ tìm ra các lỗi tiềm ẩn và điểm yếu trong mã của bạn.
Tối ưu hóa mã
Khi làm việc trên các dự án phức tạp đòi hỏi nhiều tài nguyên tính toán, hiệu suất là điều bắt buộc. Cách viết mã có thể ảnh hưởng nghiêm trọng đến hiệu suất. Stable Code 3B có thể giúp viết lại mã của bạn để cải thiện hiệu quả, từ đó tiết kiệm thời gian, tài nguyên và chi phí.
Diễn giải mã
Đôi khi, việc hiểu mã của người khác có thể khó, đặc biệt với người mới. Stable Code 3B không chỉ gợi ý cải tiến mã mà còn cung cấp các giải thích chi tiết về một đoạn mã nhất định, từ đó giúp bạn học nhanh hơn.
Để học cách sử dụng AI tạo sinh cho mục đích học tập, chúng tôi rất khuyến nghị bạn thử DataCamp Workspace. Chúng tôi sử dụng các mô hình GPT 3.5 và GPT-4 để vận hành IDE khoa học dữ liệu và giúp bạn hiểu cú pháp phức tạp. Hãy xem hướng dẫn riêng để bắt đầu với DataCamp Workspace.
Cách tải mô hình Stable Code 3B
Cách tốt nhất để bắt đầu với Stable Code 3B là thông qua HuggingFace API. Bạn có thể dễ dàng nhập mô hình vào môi trường Python và bắt đầu sinh văn bản bằng đoạn mã sau:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("stabilityai/stable-code-3b", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
"stabilityai/stable-code-3b",
trust_remote_code=True,
torch_dtype="auto",
)
model.cuda()
inputs = tokenizer("import torch\nimport torch.nn as nn", return_tensors="pt").to(model.device)
tokens = model.generate(
**inputs,
max_new_tokens=48,
temperature=0.2,
do_sample=True,
)
print(tokenizer.decode(tokens[0], skip_special_tokens=True))
Cách sử dụng Stable Code 3B cho các ứng dụng thương mại
Như đã đề cập, Stable Code 3B được phát hành miễn phí cho mục đích nghiên cứu hoặc sử dụng cá nhân. Với các ứng dụng thương mại, người dùng phải đăng ký một trong các gói Membership của Stability AI.
Hiện tại, Stability AI cung cấp hai loại gói thành viên ngoài gói phi thương mại, như minh họa trong hình sau:

Gói Professional có giá 20 USD mỗi tháng và cung cấp cho người dùng quyền truy cập và quyền sử dụng thương mại Core Models của Stability AI, bao gồm các mô hình tạo ảnh, video, 3D, văn bản và mã. Gói Enterprise được thiết kế cho các công ty lớn, có mức giá tùy chỉnh và một bộ tính năng dành cho doanh nghiệp.
Tìm hiểu thêm
Chúng ta đang sống trong thời điểm đầy hứng khởi để trở thành những người làm dữ liệu. Ngành công nghiệp đang đứng trước bờ vực thay đổi sâu rộng nhờ việc ứng dụng rộng rãi các công cụ AI tạo sinh như Stable Code 3B.
Cách tốt nhất để định hướng trong cuộc cách mạng AI đang diễn ra là luôn theo dõi và cập nhật. DataCamp có bạn đồng hành. Hãy xem các bài viết chuyên đề của chúng tôi về những công cụ AI tạo sinh mạnh mẽ khác:
Tôi là một chuyên viên phân tích dữ liệu tự do, hợp tác với các công ty và tổ chức trên toàn thế giới trong các dự án khoa học dữ liệu. Tôi cũng là giảng viên khoa học dữ liệu với hơn 2 năm kinh nghiệm. Tôi thường xuyên viết bài về khoa học dữ liệu bằng tiếng Anh và tiếng Tây Ban Nha; một số bài đã được đăng trên các trang uy tín như DataCamp, Towards Data Science và Analytics Vidhya. Là một nhà khoa học dữ liệu có nền tảng khoa học chính trị và luật, mục tiêu của tôi là làm việc tại giao điểm giữa chính sách công, pháp luật và công nghệ, tận dụng sức mạnh của ý tưởng để thúc đẩy các giải pháp và cách tiếp cận mới nhằm giúp chúng ta đối mặt với những thách thức cấp bách, đặc biệt là khủng hoảng khí hậu. Tôi xem mình là người tự học, không ngừng trau dồi và là một người ủng hộ vững chắc cho tính đa ngành. Không bao giờ là quá muộn để học điều mới.
