Nội dung trên trang web này đã được dịch bằng trí tuệ nhân tạo (AI) hoặc công nghệ dịch máy và có thể có lỗi.

Skip to content

ControlNet và StarCoder: Những tiến bộ trong nghiên cứu của Roblox về Trí tuệ nhân tạo tạo sinh

Chúng tôi cam kết sâu sắc trong việc theo đuổi các nghiên cứu có trách nhiệm và gắn kết với cộng đồng trong mọi lĩnh vực, bao gồm trí tuệ nhân tạo (AI). Chúng tôi thực hiện điều này thông qua tính minh bạch, xác nhận từ bên ngoài và hỗ trợ các cơ sở giáo dục thông qua hợp tác và tài trợ. Phương pháp này giúp chúng tôi đẩy nhanh việc đạt được những tiến bộ lớn nhất trong ba lĩnh vực trọng tâm của mình: trí tuệ nhân tạo tạo sinh, mở rộng trung tâm dữ liệu và an toàn trực tuyến. Hôm nay, chúng tôi chia sẻ những hiểu biết và kết quả từ hai dự án nghiên cứu AI tạo sinh của mình. ControlNet là một mạng thần kinh mã nguồn mở bổ sung khả năng kiểm soát có điều kiện cho các mô hình tạo hình ảnh, giúp tạo ra các kết quả hình ảnh chính xác hơn. StarCoder là một mô hình ngôn ngữ lớn (LLM) mã nguồn mở tiên tiến nhất dành cho việc tạo mã. 

Cả hai dự án đều là sự hợp tác giữa giới học thuật và ngành công nghiệp. Cả hai cũng tập trung vào việc tạo ra các công cụ mạnh mẽ hơn đáng kể cho các nhà sáng tạo của chúng tôi: nghệ sĩ 3D và lập trình viên. Quan trọng nhất và phù hợp với sứ mệnh của chúng tôi là đầu tư vào tầm nhìn dài hạn thông qua nghiên cứu mang tính chuyển đổi, các dự án này cho thấy những dấu hiệu tiến bộ trong hiểu biết khoa học cơ bản và khả năng kiểm soát AI cho nhiều ứng dụng. Chúng tôi tin rằng công việc này có thể có tác động đáng kể đến tương lai của Roblox và toàn bộ lĩnh vực này, và chúng tôi tự hào được chia sẻ nó một cách cởi mở.

ControlNet

Các đột phá gần đây trong AI — đặc biệt là các phương pháp học máy (ML) dựa trên dữ liệu sử dụng mạng nơ-ron sâu — đã thúc đẩy những tiến bộ mới trong các công cụ sáng tạo. Những tiến bộ này bao gồm các tính năng Code AssistMaterial Generator của chúng tôi, hiện có sẵn công khai trong công cụ miễn phí Roblox Studio. Các hệ thống AI tạo sinh hiện đại chứa các cấu trúc dữ liệu gọi là mô hình, được tinh chỉnh qua hàng tỷ lần huấn luyện. Các mô hình mạnh mẽ nhất hiện nay là đa phương thức, nghĩa là chúng được huấn luyện trên sự kết hợp của các loại phương tiện như văn bản, hình ảnh và âm thanh. Điều này cho phép chúng tìm ra ý nghĩa chung ẩn sau các phương tiện thay vì bị quá khớp với các yếu tố cụ thể của tập dữ liệu, như bảng màu hoặc cách viết. 

Các hệ thống AI mới này có sức mạnh biểu đạt đáng kể, nhưng sức mạnh đó chủ yếu được điều hướng thông qua “kỹ thuật gợi ý”. Điều này đơn giản là thay đổi văn bản đầu vào, tương tự như việc tinh chỉnh truy vấn trên công cụ tìm kiếm nếu kết quả không như mong đợi. Mặc dù đây có thể là cách thú vị để khám phá công nghệ mới như chatbot không được hướng dẫn, nhưng nó không phải là phương pháp hiệu quả hay hiệu quả để tạo nội dung. Thay vào đó, các nhà sáng tạo cần những công cụ mạnh mẽ mà họ có thể tận dụng hiệu quả thông qua sự kiểm soát chủ động thay vì phỏng đoán.

Dự án ControlNet là một bước tiến hướng tới giải quyết một số thách thức này. Nó cung cấp một cách hiệu quả để khai thác sức mạnh của các mô hình AI được huấn luyện sẵn quy mô lớn như Stable Diffusion, mà không phụ thuộc vào kỹ thuật tối ưu hóa lời nhắc. ControlNet tăng cường khả năng kiểm soát bằng cách cho phép nghệ sĩ cung cấp các điều kiện đầu vào bổ sung ngoài các lời nhắc văn bản. Nhà nghiên cứu Roblox và Giáo sư Đại học Stanford Maneesh Agrawala cùng nhà nghiên cứu Stanford Lvmin Zhang đã xác định mục tiêu cho dự án ControlNet chung của chúng tôi như sau:

  1. Phát triển giao diện người dùng tốt hơn cho các công cụ AI tạo ra nội dung. Vượt ra khỏi việc thao tác lời nhắc khó hiểu và xây dựng dựa trên những cách tự nhiên hơn để truyền đạt ý tưởng hoặc khái niệm sáng tạo.
  2. Cung cấp khả năng kiểm soát không gian chính xác hơn, vượt ra ngoài việc tạo ra “một hình ảnh giống” hoặc “một hình ảnh theo phong cách…” để giúp hiện thực hóa chính xác hình ảnh mà người sáng tạo có trong đầu.
  3. Chuyển đổi quá trình đào tạo AI tạo sinh thành một quy trình hiệu quả hơn về mặt tính toán, thực thi nhanh hơn, yêu cầu ít bộ nhớ hơn và tiêu thụ ít năng lượng điện hơn.
  4. Mở rộng AI tạo hình ảnh thành một khối xây dựng có thể tái sử dụng. Sau đó, nó có thể được tích hợp với các quy trình xử lý hình ảnh và kết xuất 3D tiêu chuẩn. 

Bằng cách cho phép người sáng tạo cung cấp một hình ảnh bổ sung để kiểm soát không gian, ControlNet mang lại khả năng kiểm soát tốt hơn đối với hình ảnh được tạo ra cuối cùng. Ví dụ, một lời nhắc “hươu đực có sừng” trên một trình tạo hình ảnh từ văn bản hiện có đã tạo ra nhiều hình ảnh khác nhau, như được hiển thị dưới đây:

Những hình ảnh được tạo ra bằng các giải pháp AI trước đây rất hấp dẫn, nhưng tiếc là về cơ bản chúng chỉ là kết quả ngẫu nhiên — không có sự kiểm soát nào cả. Trên các hệ thống tạo hình ảnh trước đây, không có cách nào để điều khiển kết quả đầu ra, ngoại trừ việc sửa đổi lời nhắc văn bản.

Với ControlNet, người sáng tạo giờ đây có nhiều quyền kiểm soát hơn. Một cách sử dụng ControlNet là cung cấp cả lời nhắc và hình ảnh nguồn để xác định hình dạng chung cần tuân theo. Trong trường hợp này, các hình ảnh kết quả vẫn sẽ đa dạng nhưng, điều quan trọng là, vẫn giữ nguyên hình dạng đã chỉ định:

Người tạo cũng có thể chỉ định một tập hợp các cạnh, một hình ảnh hoàn toàn không có lời nhắc, hoặc nhiều cách khác để cung cấp đầu vào biểu cảm cho hệ thống.

Để tạo ControlNet, chúng tôi sao chép các trọng số trong mạng của một mô hình khuếch tán lớn thành hai phiên bản. Một là mạng có thể huấn luyện (cung cấp khả năng điều khiển; đây là “ControlNet”) và phiên bản còn lại là mạng bị khóa. Mạng bị khóa giữ nguyên khả năng đã học được từ hàng tỷ hình ảnh và có thể là bất kỳ trình tạo hình ảnh nào trước đó. Sau đó, chúng tôi huấn luyện mạng có thể huấn luyện trên các tập dữ liệu dành riêng cho nhiệm vụ để học điều khiển có điều kiện từ hình ảnh bổ sung. Các bản sao có thể huấn luyện và bị khóa được kết nối thông qua một loại lớp convolution đặc biệt mà chúng tôi gọi là "zero convolution", nơi các trọng số convolution tăng dần từ 0 lên các thông số tối ưu theo cách học được, nghĩa là ban đầu chúng không có ảnh hưởng và hệ thống tự xác định mức độ điều khiển tối ưu để áp dụng lên mạng bị khóa.

Vì các trọng số ban đầu được bảo toàn thông qua mạng bị khóa, mô hình hoạt động tốt với các tập dữ liệu đào tạo có kích thước đa dạng. Và lớp "zero convolution" làm cho quá trình này nhanh hơn nhiều — gần giống với việc tinh chỉnh một mô hình khuếch tán hơn là đào tạo các lớp mới từ đầu. 

Chúng tôi đã thực hiện kiểm chứng rộng rãi kỹ thuật này cho việc tạo hình ảnh. ControlNet không chỉ cải thiện chất lượng hình ảnh đầu ra. Nó còn giúp việc huấn luyện mạng cho một tác vụ cụ thể trở nên hiệu quả hơn và do đó thực tế để triển khai quy mô lớn cho hàng triệu nhà sáng tạo của chúng tôi. Trong các thí nghiệm, ControlNet mang lại hiệu quả cao gấp 10 lần so với các kịch bản thay thế yêu cầu mô hình phải được huấn luyện lại hoàn toàn. Hiệu quả này là rất quan trọng, vì quá trình tạo ra các mô hình mới tốn nhiều thời gian và tài nguyên so với phát triển phần mềm truyền thống. Việc làm cho quá trình huấn luyện hiệu quả hơn giúp tiết kiệm điện năng, giảm chi phí và tăng tốc độ bổ sung các chức năng mới.

Cấu trúc độc đáo của ControlNet cho phép nó hoạt động tốt với các tập dữ liệu đào tạo có kích thước đa dạng và trên nhiều loại phương tiện khác nhau. ControlNet đã được chứng minh là hoạt động hiệu quả với nhiều loại phương thức điều khiển khác nhau, bao gồm ảnh, bản vẽ tay và phát hiện tư thế OpenPose. Chúng tôi tin rằng ControlNet có thể được áp dụng cho nhiều loại phương tiện khác nhau để tạo ra nội dung AI. Nghiên cứu này là mở và công khai để cộng đồng thử nghiệm và phát triển thêm, và chúng tôi sẽ tiếp tục cung cấp thêm thông tin khi có những phát hiện mới.

StarCoder

Trí tuệ nhân tạo tạo sinh có thể được áp dụng để tạo ra hình ảnh, âm thanh, văn bản, mã nguồn chương trình hoặc bất kỳ dạng phương tiện đa phương tiện nào khác. Tuy nhiên, trên các loại phương tiện khác nhau, các ứng dụng thành công nhất thường là những ứng dụng mà kết quả đầu ra được đánh giá một cách chủ quan. Ví dụ, một hình ảnh được coi là thành công khi nó thu hút người xem. Một số lỗi trong hình ảnh, như các đặc điểm kỳ lạ ở viền hoặc thậm chí một ngón tay thừa trên bàn tay, có thể không được chú ý nếu hình ảnh tổng thể đủ hấp dẫn. Tương tự, một bài thơ hoặc truyện ngắn có thể có lỗi ngữ pháp hoặc một số logic nhảy vọt, nhưng nếu nội dung chính đủ hấp dẫn, chúng ta thường bỏ qua những lỗi đó. 

Một cách khác để xem xét các tiêu chí chủ quan là không gian kết quả là liên tục. Một kết quả có thể tốt hơn kết quả khác, nhưng không có ngưỡng cụ thể nào để kết quả đó được coi là hoàn toàn chấp nhận được hoặc không chấp nhận được. Đối với các lĩnh vực và hình thức truyền thông khác, kết quả được đánh giá một cách khách quan. Ví dụ, mã nguồn do trợ lý lập trình AI tạo ra hoặc là đúng hoặc là sai. Nếu mã không vượt qua được bài kiểm tra, nó sẽ thất bại, ngay cả khi nó tương tự như mã của một giải pháp hợp lệ. Đây là không gian kết quả rời rạc. Việc thành công trong không gian rời rạc khó hơn vì tiêu chí nghiêm ngặt hơn và vì không thể tiếp cận dần dần một giải pháp tốt — mã sẽ bị lỗi cho đến khi đột ngột hoạt động.

Các mô hình ngôn ngữ lớn (LLMs) dùng cho đầu ra văn bản hoạt động tốt trong các ứng dụng chủ quan, liên tục như chatbot. Chúng cũng dường như hoạt động tốt trong việc sinh văn bản tự nhiên bằng nhiều ngôn ngữ con người, như tiếng Anh và tiếng Pháp. Tuy nhiên, các LLMs hiện tại dường như không hoạt động tốt bằng trong các ngôn ngữ lập trình so với các ngôn ngữ con người. Mã nguồn là một hình thức toán học, một cách diễn đạt ý nghĩa khách quan và hoàn toàn khác biệt so với ngôn ngữ tự nhiên. Nó là không gian kết quả rời rạc thay vì không gian kết quả liên tục. Để đạt được chất lượng cao nhất trong việc tạo mã ngôn ngữ lập trình cho các nhà sáng tạo Roblox, chúng ta cần các phương pháp áp dụng LLMs có thể hoạt động tốt trong không gian rời rạc, khách quan này. Chúng ta cũng cần các phương pháp mạnh mẽ để diễn đạt chức năng mã nguồn độc lập với cú pháp của một ngôn ngữ cụ thể, như Lua, JavaScript hoặc Python. 

StarCoder, một mô hình ngôn ngữ lớn (LLM) mã nguồn mở tiên tiến nhất dành cho việc tạo mã, là một bước tiến quan trọng trong thách thức kỹ thuật này và là một mô hình ngôn ngữ lớn thực sự mở cho tất cả mọi người. StarCoder là một trong những kết quả của liên minh nghiên cứu BigCode, bao gồm hơn 600 thành viên từ các phòng thí nghiệm nghiên cứu học thuật và công nghiệp. Nhà nghiên cứu Roblox và Giáo sư Arjun Guha tại Đại học Northeastern đã dẫn dắt nhóm này phát triển StarCoder. Các kết quả được công bố lần đầu tiên này tập trung hoàn toàn vào khía cạnh mã nguồn, lĩnh vực mà ngành công nghiệp cần sự phát triển mới nhất do thành công tương đối của các phương pháp chủ quan. 

Để cung cấp trí tuệ nhân tạo tạo sinh thông qua các mô hình ngôn ngữ lớn (LLMs) hỗ trợ hệ sinh thái AI rộng lớn và cộng đồng Roblox, chúng ta cần các mô hình được đào tạo hoàn toàn trên các bộ dữ liệu được cấp phép phù hợp và thu thập một cách có trách nhiệm. Những mô hình này cũng cần có giấy phép không hạn chế để bất kỳ ai cũng có thể sử dụng, phát triển dựa trên chúng và đóng góp trở lại cho hệ sinh thái. Hiện nay, các mô hình ngôn ngữ lớn mạnh mẽ nhất là độc quyền hoặc được cấp phép cho các hình thức sử dụng thương mại hạn chế, điều này cản trở hoặc hạn chế khả năng của các nhà nghiên cứu trong việc thử nghiệm với chính mô hình. Ngược lại, StarCoder là một mô hình thực sự mở, được tạo ra thông qua sự hợp tác giữa các nhà nghiên cứu trong ngành và học thuật, và được cấp phép không giới hạn cho ứng dụng thương mại ở bất kỳ quy mô nào. StarCoder được đào tạo hoàn toàn trên nội dung được thu thập một cách có trách nhiệm và có giấy phép phù hợp. Mô hình ban đầu được đào tạo trên mã nguồn công khai và có quy trình từ chối tham gia dành cho những ai không muốn mã nguồn của mình được sử dụng cho việc đào tạo.

Hiện tại, StarCoder hoạt động trên 86 ngôn ngữ lập trình khác nhau, bao gồm Python, C++ và Java. Tính đến thời điểm công bố bài báo, nó đã vượt trội so với mọi mô hình ngôn ngữ lớn (LLM) mã nguồn mở hỗ trợ nhiều ngôn ngữ và thậm chí cạnh tranh được với nhiều mô hình độc quyền, đóng. 

Mô hình ngôn ngữ lớn (LLM) StarCoder là một đóng góp cho hệ sinh thái, nhưng mục tiêu nghiên cứu của chúng tôi còn sâu rộng hơn. Tác động lớn nhất của nghiên cứu này là thúc đẩy mô hình hóa ngữ nghĩa cho cả các mô hình đa phương thức khách quan và chủ quan, bao gồm mã nguồn, văn bản, hình ảnh, giọng nói, video, đồng thời tăng cường hiệu quả đào tạo thông qua các kỹ thuật chuyển giao miền. Chúng tôi cũng kỳ vọng thu được những hiểu biết sâu sắc về khả năng duy trì và kiểm soát của trí tuệ nhân tạo tạo sinh (generative AI) cho các tác vụ khách quan như sinh mã nguồn. Có sự khác biệt lớn giữa một minh chứng hấp dẫn về công nghệ mới nổi và một sản phẩm an toàn, đáng tin cậy và hiệu quả mang lại giá trị cho cộng đồng người dùng. Đối với các mô hình ML của chúng tôi, chúng tôi tối ưu hóa hiệu suất về dung lượng bộ nhớ, tiết kiệm năng lượng và thời gian thực thi. Chúng tôi cũng đã phát triển một hạ tầng vững chắc, bao quanh lõi AI bằng phần mềm để kết nối nó với phần còn lại của hệ thống, và phát triển một hệ thống liền mạch cho các bản cập nhật thường xuyên khi các tính năng mới được thêm vào. 

Việc kết nối các nhà khoa học và kỹ sư của Roblox với những bộ óc xuất sắc nhất trong cộng đồng khoa học là yếu tố then chốt trong hành trình theo đuổi công nghệ đột phá của chúng tôi. Chúng tôi tự hào chia sẻ những kết quả ban đầu này và mời cộng đồng nghiên cứu cùng hợp tác với chúng tôi để phát triển những tiến bộ này.