Trong lĩnh vực cạnh tranh gay gắt của trí tuệ nhân tạo, liệu mã nguồn mở có phải luôn là “kẻ bên lề” và chẳng bao giờ là nhân vật trung tâm? Hãy nghĩ lại!
Tác giả: Steven Vaughan-Nichols
ngày 21 tháng 9 năm 2023.
Một cách nào đó, mã nguồn mở và trí tuệ nhân tạo đã cùng ra đời cùng lúc
Vào năm 1971, nếu bạn đã đề cập đến trí tuệ nhân tạo với hầu hết mọi người, họ có thể nghĩ đến Ba Luật Robotics của Isaac Asimov. Tuy nhiên, vào năm đó, trí tuệ nhân tạo đã là một đề tài thực tế tại MIT, nơi Richard M. Stallman (RMS) gia nhập Phòng thí nghiệm Trí tuệ Nhân tạo của MIT. Một vài thập kỷ sau, khi phần mềm độc quyền bắt đầu nở rộ, RMS đã phát triển ý tưởng cách mạng về Phần mềm Tự do. Và sau hàng thập kỷ, khái niệm này, biến đổi thành mã nguồn mở, sẽ trở thành nơi ra đời của trí tuệ nhân tạo hiện đại.
Không phải một nhà văn viễn tưởng khoa học mà là một nhà khoa học máy tính, Alan Turing, đã khởi đầu phong trào trí tuệ nhân tạo hiện đại. Bài báo của Turing năm 1950 mang tên “Máy Tính và Trí Tuệ” đã đặt nền móng cho Cuộc kiểm tra Turing. Cuộc kiểm tra này, một cách tóm tắt, nói rằng nếu một máy tính có thể đánh lừa bạn rằng bạn đang trò chuyện với một con người, thì nó có trí tuệ.
Theo một số người, trí tuệ nhân tạo ngày nay đã có khả năng thực hiện điều này. Tôi không đồng ý, nhưng chúng ta rõ ràng đang trên đường đi đúng.
Năm 1960, nhà khoa học máy tính John McCarthy đã đặt ra thuật ngữ “trí tuệ nhân tạo” và, trên đường đi, đã tạo ra ngôn ngữ Lisp. Thành tựu của McCarthy, như nhà khoa học máy tính Paul Graham nói, “đã làm cho lập trình như thế nào Euclid đã làm cho hình học. Anh ấy đã chỉ ra cách, dựa trên một số toán tử đơn giản và một ký hiệu cho các hàm, bạn có thể xây dựng một ngôn ngữ lập trình hoàn chỉnh.”
Lisp, trong đó dữ liệu và mã nguồn được kết hợp, trở thành ngôn ngữ đầu tiên của trí tuệ nhân tạo. Đó cũng là tình yêu lập trình đầu tiên của RMS.
Vậy tại sao chúng ta không có một GNU-ChatGPT trong những năm 1980? Có nhiều lý thuyết về điều này. Lý thuyết mà tôi ưa thích là trí tuệ nhân tạo ban đầu đã có ý tưởng đúng nhưng ở thập kỷ sai. Phần cứng không đủ mạnh để đối mặt với thách thức. Các yếu tố quan trọng khác – như Big Data – chưa có sẵn để giúp trí tuệ nhân tạo thực sự bắt đầu. Các dự án mã nguồn mở như Hadoop, Spark và Cassandra đã cung cấp các công cụ mà trí tuệ nhân tạo và học máy cần để lưu trữ và xử lý lượng dữ liệu lớn trên các cụm máy tính. Thiếu dữ liệu này và khả năng truy cập nhanh đối với nó, các Mô hình Ngôn ngữ Lớn (LLM) không thể hoạt động.
Ngày nay, thậm chí cả Bill Gates – một người không ủng hộ mã nguồn mở – cũng thừa nhận rằng trí tuệ nhân tạo dựa trên mã nguồn mở là điều quan trọng nhất kể từ khi ông được giới thiệu với ý tưởng giao diện người dùng đồ họa (GUI) vào năm 1980. Từ ý tưởng GUI đó, bạn có thể nhớ rằng Gates đã xây dựng một chương trình nhỏ gọi là Windows.
Đặc biệt, các mô hình sinh trí tuệ nhân tạo hiện đang rất phổ biến, như ChatGPT và Llama 2, bắt nguồn từ mã nguồn mở. Tuy nhiên, điều này không có nghĩa là ChatGPT, Llama 2 hoặc DALL-E là mã nguồn mở. Chúng không phải là mã nguồn mở.
Nhưng ban đầu, chúng dự kiến là mã nguồn mở. Như Elon Musk, một nhà đầu tư sớm của OpenAI, đã nói: “OpenAI đã được tạo ra như một dự án mã nguồn mở (đó là lý do tôi đặt tên nó là “Open” AI), một công ty phi lợi nhuận để làm một sức mạnh đối lập với Google, nhưng bây giờ nó đã trở thành một công ty mã nguồn đóng, tối ưu hóa lợi nhuận, thực tế được kiểm soát bởi Microsoft. Điều này không phải là ý định của tôi.”
Dù vậy, OpenAI và tất cả các chương trình trí tuệ nhân tạo sinh trí khác được xây dựng trên nền tảng mã nguồn mở. Cụ thể, thư viện Transformer của Hugging Face là thư viện mã nguồn mở hàng đầu để xây dựng các mô hình học máy (ML) hiện đại ngày nay. Dù có cái tên vui vẻ, nó cung cấp các mô hình được đào tạo trước, kiến trúc và công cụ cho các nhiệm vụ xử lý ngôn ngữ tự nhiên. Điều này cho phép các nhà phát triển xây dựng trên các mô hình hiện có và điều chỉnh chúng cho các trường hợp sử dụng cụ thể. Cụ thể, ChatGPT phụ thuộc vào thư viện của Hugging Face để tạo ra các Mô hình Ngôn ngữ Lớn (LLM) của nó. Nếu thiếu Transformer, thì không có ChatGPT.
Ngoài ra, TensorFlow và PyTorch, được phát triển lần lượt bởi Google và Facebook, đã đóng góp cho ChatGPT. Những framework Python này cung cấp các công cụ và thư viện cần thiết cho việc xây dựng và huấn luyện mô hình học sâu. Đương nhiên, các chương trình trí tuệ nhân tạo/máy học mã nguồn mở khác cũng được xây dựng dựa trên chúng. Ví dụ, Keras, một API cao cấp cho TensorFlow, thường được sử dụng bởi các nhà phát triển không có nền tảng học sâu để xây dựng mạng neural.
Bạn có thể tranh luận cho đến khi bạn thay mặt mặt xanh rờn rợn về cái nào tốt hơn – và các lập trình viên trí tuệ nhân tạo thường làm như vậy – nhưng cả TensorFlow và PyTorch đều được sử dụng trong nhiều dự án. Đằng sau các AI chatbot yêu thích của bạn là sự kết hợp của nhiều dự án mã nguồn mở khác nhau.
Một số chương trình hàng đầu, chẳng hạn như Llama-2 của Meta, tuyên bố rằng chúng là mã nguồn mở. Tuy nhiên, họ không phải là mã nguồn mở. Mặc dù nhiều lập trình viên mã nguồn mở đã chuyển sang sử dụng Llama vì nó thân thiện với mã nguồn mở như bất kỳ chương trình trí tuệ nhân tạo lớn nào, nhưng khi điều quan trọng xảy ra, Llama-2 không phải là mã nguồn mở. Đúng, bạn có thể tải xuống và sử dụng nó. Với trọng số mô hình và mã nguồn khởi đầu cho mô hình được đào tạo trước và các phiên bản được điều chỉnh trong cuộc trò chuyện, việc xây dựng ứng dụng dựa trên Llama rất dễ dàng. Chỉ có một vấn đề nhỏ được chôn vùi trong giấy phép: Nếu chương trình của bạn thực sự thành công và bạn có
Bạn có thể từ bỏ mọi giấc mơ về việc trở thành tỷ phú bằng cách viết Virtual Girl/Boy Friend dựa trên Llama. Mark Zuckerberg sẽ cảm ơn bạn vì đã giúp anh ta kiếm thêm vài tỷ đô la.
Tuy nhiên, cũng tồn tại một số Mô hình Ngôn ngữ Lớn mã nguồn mở thực sự – chẳng hạn như Falcon180B. Tuy nhiên, hầu hết tất cả các Mô hình Ngôn ngữ Lớn thương mại lớn không được phát triển đúng cách theo mô hình mã nguồn mở. Hãy lưu ý rằng tất cả các Mô hình Ngôn ngữ Lớn lớn đã được đào tạo dựa trên dữ liệu mã nguồn mở. Ví dụ, GPT-4 và hầu hết các Mô hình Ngôn ngữ Lớn lớn khác lấy một phần dữ liệu từ CommonCrawl, một lưu trữ văn bản chứa petabytes dữ liệu được thu thập từ web. Nếu bạn đã viết một cái gì đó trên một trang web công khai – lời chúc sinh nhật trên Facebook, bình luận trên Linux trên Reddit, một đề cập trên Wikipedia hoặc một cuốn sách trên Archives.org – nếu nó được viết bằng HTML, có khả năng dữ liệu của bạn có mặt ở đó đâu đó.
ậy, liệu mã nguồn mở có phải luôn bị đánh bại và không bao giờ trở thành người dâu trong ngành trí tuệ nhân tạo? Không phải vậy.
Trong một tài liệu nội bộ của Google bị rò rỉ, một kỹ sư trí tuệ nhân tạo của Google viết, “Sự thật khó chịu là chúng ta không có vị trí để chiến thắng cuộc đua này [Trí tuệ nhân tạo sinh trí], và OpenAI cũng vậy. Trong khi chúng ta đang cãi nhau, một bên thứ ba đã quietly đang ăn bữa trưa của chúng ta.”
Người chơi thứ ba đó? Cộng đồng mã nguồn mở.
Như đã thấy, bạn không cần đám mây hyperscale hoặc hàng nghìn GPU cao cấp để có được các câu trả lời hữu ích từ trí tuệ nhân tạo sinh trí. Trên thực tế, bạn có thể chạy các Mô hình Ngôn ngữ Lớn trên một điện thoại thông minh: Mọi người đang chạy các mô hình cơ sở trên một Pixel 6 với tốc độ năm token LLM mỗi giây. Bạn cũng có thể điều chỉnh tinh chỉnh một trí tuệ nhân tạo cá nhân trên máy tính xách tay của bạn trong một buổi tối. Khi bạn có thể “tùy chỉnh một mô hình ngôn ngữ trong vài giờ trên phần cứng tiêu dùng,” kỹ sư lưu ý, “[đó là] một điều lớn lao.” Đúng vậy.
Nhờ vào các cơ chế tinh chỉnh, chẳng hạn như LoRA (Low-Rank Adaptation) mã nguồn mở của Hugging Face, bạn có thể thực hiện tinh chỉnh mô hình với một phần nhỏ chi phí và thời gian so với các phương pháp khác. Một phần nhỏ là bao nhiêu? Làm thế nào về việc tùy chỉnh một mô hình ngôn ngữ trong vài giờ trên phần cứng tiêu dùng, có vẻ như thế nào đối với bạn?
Nhà phát triển của Google đã thêm:
“Một phần của sự hiệu quả của LoRA là, giống như các hình thức tinh chỉnh khác, nó có thể xếp chồng lên nhau. Các cải tiến như tinh chỉnh theo hướng dẫn có thể được áp dụng và sau đó được tận dụng khi những người đóng góp khác thêm vào cuộc đối thoại, hoặc lý luận, hoặc việc sử dụng công cụ. Mặc dù các điều chỉnh tinh chỉnh cá nhân có hạng thấp, tổng hạng của chúng không nhất thiết phải thấp, cho phép các cập nhật đầy đủ hạng của mô hình tích luỹ theo thời gian. Điều này có nghĩa là khi các bộ dữ liệu và nhiệm vụ mới và tốt hơn trở nên có sẵn, mô hình có thể được cập nhật một cách tiết kiệm mà không cần phải trả giá của một chạy đầy đủ.”
Nhà phát triển bí ẩn của chúng ta kết luận, “Cạnh tranh trực tiếp với mã nguồn mở là một đề xuất thua lỗ… Chúng ta không nên mong đợi có thể đuổi kịp. Internet hiện đại hoạt động trên mã nguồn mở với một lý do. Mã nguồn mở có một số lợi thế đáng kể mà chúng ta không thể sao chép được.”
Ba mươi năm trước, không ai mơ tưởng rằng một hệ điều hành mã nguồn mở có thể bao giờ cản trở các hệ thống độc quyền như Unix và Windows. Có thể sẽ không mất nhiều thập kỷ hơn để một chương trình trí tuệ nhân tạo mã nguồn mở thực sự, từ đầu đến cuối, có thể áp đảo các chương trình bán độc quyền mà chúng ta đang sử dụng ngày nay.