Trong không gian LLM, "mã nguồn mở" được dùng như một thuật ngữ có nghĩa là "trọng số có thể tải xuống".
(web.archive.org)- LLaMA2 không phù hợp với định nghĩa mã nguồn mở truyền thống do có các hạn chế đối với việc sử dụng thương mại và việc tận dụng đầu ra của mô hình, nhưng trong lĩnh vực mô hình AI, chính khái niệm mã nguồn mở cũng cần được tái tiến hóa
- Tồn tại các hạn chế xung đột với tinh thần OSS như cấm sử dụng thương mại đối với các dịch vụ có trên 700M MAU tại thời điểm phát hành, cấm dùng đầu ra của mô hình để huấn luyện LLM khác
- Cũng như trong lịch sử phần mềm, ý nghĩa đã chuyển từ "free software" → "open source" → "source available", trong AI, "open source" cũng được dùng phổ biến với nghĩa là trọng số có thể tải xuống
- Mức độ công khai của mô hình được chia thành Open models, Open weights, Restricted weights, Contaminated weights, và LLaMA2 thuộc nhóm Restricted weights
- Mã nguồn mở hoàn chỉnh có thể tái huấn luyện từ đầu là điều phi thực tế do chi phí, và việc Meta công khai khối lượng tính toán trị giá khoảng $2M đã mang lại tác động tích cực ròng cho sự phát triển của lĩnh vực này
LLaMA2 và tranh cãi về thuật ngữ "mã nguồn mở"
- Khi LLaMA2 được công bố, nhiều nhân vật trong cộng đồng OSS đã bày tỏ bất mãn về việc dùng sai thuật ngữ "open source" cho mô hình
- Mô hình nhìn chung khá cởi mở, nhưng vẫn có các hạn chế rõ ràng
- Các doanh nghiệp có MAU vượt 700M tính đến ngày phát hành không được sử dụng mô hình cho mục đích thương mại
- Không được dùng đầu ra của mô hình để huấn luyện các mô hình ngôn ngữ lớn khác
- Những hạn chế này không phù hợp với tinh thần mã nguồn mở (OSS ethos) và không thể gọi là mã nguồn mở theo nghĩa truyền thống
- Tuy vậy, cũng có quan điểm cho rằng điều đó không quá quan trọng, và trong thời đại mô hình AI, thuật ngữ "open source" cần tiến hóa thêm một lần nữa
From Free to Open — từ "tự do" đến "mở"
- Kể từ "Open Letter to Hobbyists" năm 1976, luôn tồn tại căng thẳng giữa lợi ích thương mại và các ràng buộc của doanh nghiệp phần mềm với sự tò mò của các hacker muốn vượt qua những giới hạn đó
- Phong trào "free software" bắt đầu tại MIT AI lab vào thập niên 1970 cùng Richard Stallman, rồi tiếp nối bằng dự án GNU vào năm 1983
- Giấy phép GPL "copyleft" ra đời, được Red Hat, MySQL, Git, Ubuntu áp dụng
- Thuật ngữ "open source" xuất hiện năm 1998 nhờ Christine Peterson của MIT
- Tại "Freeware Summit", "free software" chính thức bị loại bỏ và được thay bằng "open source software"
- Sau đó, cộng đồng "free" và "open source" phân hóa vì khác biệt trong cách diễn giải ý nghĩa
- Free software theo định nghĩa của Free Software Foundation là tập con của open source, và sử dụng các giấy phép rất thông thoáng như GPL, Apache
- Trong 10 năm qua, căng thẳng giữa các công ty mã nguồn mở thương mại và các hyperscaler đám mây lại tạo ra thêm một lần phân hóa
- Elastic và MongoDB đã chuyển sang SSPL(Server-Side Public License), vẫn cho phép sử dụng thương mại nếu không phải cung cấp phiên bản lưu trữ/hosting
- Mục tiêu là ngăn AWS tái lưu trữ sản phẩm dưới dạng dịch vụ đám mây để kiếm tiền
- SSPL vượt ra ngoài chuẩn OSS và không được OSI công nhận là giấy phép mã nguồn mở
- Dù vậy, nhiều lập trình viên vẫn gọi MongoDB là mã nguồn mở
- "open source" đang dần mất đi hàm ý về tự do(freedom) và trong nhận thức của lập trình viên đang gần như trở thành từ đồng nghĩa với "source available"
From Source to Weights — từ "mã nguồn" đến "trọng số"
- Sự trỗi dậy của các open model như Dolly, MPT, LLaMA đã tạo ra một sự phân hóa tương tự trong cộng đồng
- Với đa số kỹ sư AI ngày nay, "open source" không hơn cũng không kém trọng số có thể tải xuống (downloadable weights)
- Heather Meeker đã đề xuất định nghĩa "open weights", nhưng cộng đồng vẫn chưa có đồng thuận
- Tranh cãi cốt lõi là liệu chỉ open weights thôi có đủ để gọi một mô hình là mã nguồn mở hay không
- Nếu ví với phần mềm, điều này giống như chỉ công bố binary mà không có mã nguồn để build lại từ đầu
- Để trở thành mã nguồn mở thực sự có thể tái huấn luyện từ đầu, cần phải công khai toàn bộ mã huấn luyện, bộ dữ liệu tiền huấn luyện, dữ liệu ưu tiên cho fine-tuning, các ví dụ RLHF,...
- Vấn đề là chi phí huấn luyện; ngay cả khi công khai toàn bộ, với đa số nhà phát triển và doanh nghiệp, việc huấn luyện từ đầu vẫn bất khả thi về mặt chi phí
- Cuối cùng, chỉ cần có quyền truy cập vào trọng số cuối cùng cũng đã là điều được ưa chuộng
Phân loại 4 mức độ mở của mô hình
- Open models: như RedPajama, MPT-7B, cung cấp open weights có thể dùng thương mại theo giấy phép Apache 2.0
- Bộ dữ liệu cũng là mã nguồn mở nên có thể tái huấn luyện từ đầu
- Open weights: như StableLM do StabilityAI huấn luyện, trọng số được công khai theo Apache 2.0 nhưng bộ dữ liệu huấn luyện không được công bố
- Theo README, mô hình được tiền huấn luyện trên một bộ dữ liệu thử nghiệm mới xây dựng dựa trên The Pile, với quy mô khoảng 1.5T token, lớn hơn khoảng 3 lần
- Restricted weights: như LLaMA2, bộ dữ liệu tiền huấn luyện không được công bố và dù trọng số được cho là có thể dùng thương mại, vẫn tồn tại các hạn chế cụ thể đã nêu ở trên
- Contaminated weights: như Dolly 1.0, LLaMA1, trọng số được công khai nhưng bộ dữ liệu huấn luyện không cho phép sử dụng thương mại, nên về mặt kỹ thuật là mở nhưng trên thực tế khó sử dụng
Lời kết — hướng đi của sự cởi mở
- Trong một thời gian nữa, open source và open weights sẽ vẫn được dùng lẫn lộn, và quan điểm ở đây là điều đó cũng không sao
- Điều quan trọng là quá trình này đang ngày càng được thực hiện cởi mở nhất có thể (as openly as possible)
- Việc thất vọng với giấy phép của LLaMA2 là điều tự nhiên, nhưng việc Meta công khai khoảng $2M FLOPS trong một kho GitHub là một tác động tích cực ròng đối với sự tiến bộ của lĩnh vực này
1 bình luận
Ý kiến trên Hacker News
Ngay phía trên bài đã xếp LLaMA vào nhóm trọng số bị hạn chế, vậy mà lại nói rằng từ nay về sau mã nguồn mở và trọng số công khai sẽ được dùng thay thế cho nhau, điều đó thật kỳ lạ
Ngay cả theo định nghĩa mà tác giả đề xuất, LLaMA 2.0 cũng không phải mã nguồn mở, và cũng không nên gọi như vậy
Nếu trong lĩnh vực LLM, mã nguồn mở có nghĩa là “có thể nhận được trọng số” và không quan tâm đến các hạn chế sử dụng, thì tôi cho rằng đó không phải là sự thay đổi thuật ngữ phù hợp với bối cảnh mới, mà gần với việc làm rẻ đi ý nghĩa của Open Source hơn
LLaMA cũng không phải trọng số công khai; cùng lắm nó là một gói trọng số độc quyền đóng, có thể so sánh với phần mềm dạng công khai mã nguồn
Việc Facebook gọi LLaMA là mã nguồn mở là lừa dối, và chúng ta không nên đi theo câu chuyện đó
Việc trọng số có thể được bảo hộ bản quyền hay không là một cuộc thảo luận riêng, và cá nhân tôi cho rằng là không
Tuy nhiên, ý chính của tôi là người bình thường thường không biết rõ nên sẽ tiếp tục gọi nó là “mã nguồn mở”, và việc sửa cách gọi đó là khó
Thay vì chỉ nói “cái này không phải mã nguồn mở”, chúng ta cần tạo ra một thuật ngữ tốt hơn
Ngoài ra, dù việc sử dụng trọng số bị hạn chế, quy mô đầu tư tính toán được công khai là rất lớn. Tỷ lệ token huấn luyện so với tham số là 285:1, và nhìn vào đồ thị loss cũng cho thấy mô hình vẫn chưa bão hòa
Đây là thông tin có giá trị với các nhóm khác muốn huấn luyện mô hình của riêng họ
LLaMA1 rất hạn chế, nhưng cấu trúc dữ liệu trong bài báo đã tạo ra RedPajama, và nó được dùng để huấn luyện MPT
Dù không khớp với các nhãn truyền thống, vẫn có rất nhiều giá trị từ những công trình như vậy có thể chảy vào mã nguồn mở
Tôi không biết giấy phép llama cấm dùng đầu ra của nó để huấn luyện mô hình khác
Đây thực chất là một ràng buộc chí mạng. Trong tương lai, dữ liệu tổng hợp sẽ trở thành dữ liệu huấn luyện quan trọng nhất, nên một mô hình cấm dùng dữ liệu tổng hợp để huấn luyện mô hình mới là một mô hình bị tổn hại nghiêm trọng
Kiểu như: chỉ vì có thể truy cập được nên việc huấn luyện mô hình bằng dữ liệu Internet tùy ý mà không cần cho phép hay giấy phép là ổn, nhưng dùng mô hình của chúng tôi để huấn luyện mô hình khác thì không được
Tiền đề pháp lý của các mô hình này là việc huấn luyện trên tài liệu có bản quyền là sử dụng hợp lý
Nếu không phải vậy, chẳng lẽ Facebook định lập luận rằng việc đưa tài liệu có bản quyền vào tập dữ liệu, bất kể ý muốn của tác giả, không phải là sử dụng hợp lý? Nếu vậy thì đó là tin xấu cho LLaMA
Lập trường “muốn huấn luyện bằng cái này thì cần xin phép” là một vị thế pháp lý thú vị đối với bất kỳ công ty AI nào
Kiểu như “chúng tôi huấn luyện trên một phần đáng kể của Internet mà không xin phép, nhưng đừng hòng huấn luyện bằng đầu ra từ mô hình của chúng tôi nếu không có sự cho phép của chúng tôi!”
OpenAI cũng đặt ra hạn chế tương tự
Không thể huấn luyện mô hình khác bằng đầu ra của mô hình; làm vậy sẽ dẫn đến toàn những thứ vô nghĩa. Điều này được gọi là sụp đổ mô hình: https://arxiv.org/abs/2305.17493v2
Và giấy phép Llama 2 cho phép người dùng huấn luyện mô hình phái sinh. Phần mọi người thật sự quan tâm là chỗ này: https://github.com/facebookresearch/llama/blob/main/LICENSE
Đây không hẳn là vấn đề mới. Khái niệm Open Source nghiêm ngặt được định nghĩa cho phần mềm chưa bao giờ khớp chính xác với những thứ không phải phần mềm
Vì vậy mới có các giấy phép Creative Commons. Phát hành một hình ảnh theo GPL2 ngay từ đầu đã không hợp lý
Với phương tiện mới thì luôn cần định nghĩa lại
GPL định nghĩa mã nguồn là dạng được ưu tiên để sửa đổi, và cũng bao gồm các script để tạo tệp thực thi từ mã nguồn
Trong trường hợp này, trọng số giống mã thực thi đã được tối ưu hóa sinh ra từ luồng xử lý hơn, còn “nguồn” sẽ là dữ liệu huấn luyện cùng mã và quy trình biến dữ liệu đó thành mô hình
Với các LLM rất lớn thì hầu như chẳng ai tận dụng được, nhưng với các mô hình học thuật nhỏ, điều này có ý nghĩa vì các nhà nghiên cứu có thể xây dựng tiếp trên công trình của nhau
Nguồn của mô hình ngôn ngữ thực ra gần với phần mã được dùng để huấn luyện mô hình cụ thể hơn, còn bản thân mô hình, tuy không phải mã máy, lại gần với một binary đã biên dịch
Vì vậy, để một mô hình thật sự là mã nguồn mở, theo tôi cần công khai phần mềm đã dùng để tạo ra nó, để tôi có thể sửa đổi và huấn luyện bằng dữ liệu của mình rồi sử dụng
Việc trọng số có thuộc đối tượng bản quyền hay không vẫn chưa được tòa án xác định, và tùy theo kết quả, nhiều giấy phép cùng các hạn chế có thể trở nên vô nghĩa
“Thưa các nghệ sĩ, mô hình chỉ học như con người nên không thể xâm phạm bản quyền của các bạn. Nếu nó tình cờ xuất ra một phần của cuốn sách thì chỉ là tình cờ đạo văn thôi. Chúng ta ai chẳng vậy, haha! Các luật sư nhắc chúng tôi rằng ở Mỹ đạo văn không phải là bất hợp pháp.”
“Thưa các kỹ sư, đầu ra của mô hình chúng tôi có bản quyền, nên nếu các bạn dùng nó để huấn luyện mô hình của riêng mình thì chúng tôi sở hữu mô hình đó.”
Tôi không biết làm sao cả hai điều này có thể đồng thời đúng
Cùng lắm nó chỉ là điều khoản hợp đồng ràng buộc một người dùng cụ thể, còn người sau đó dùng mô hình đã được cải thiện kia thì có vẻ không có vấn đề gì
Nhưng khó hình dung liệu một thế giới như vậy có thực sự khả thi không
Sẽ tốt nếu ai đó có thể tóm tắt vì sao trọng số có thể không thuộc đối tượng bản quyền, hoặc chỉ ra tài liệu ủng hộ quan điểm đó
Cần nhớ rằng việc cái gì thuộc hay không thuộc đối tượng bản quyền có thể thay đổi
GPL đã được kiểm chứng trong vụ FSF kiện Cisco (2008), nhưng các giấy phép hạn chế hơn thì vẫn chưa được kiểm chứng
Vấn đề là đã có những mô hình lớn thật sự dùng giấy phép nguồn mở, như MPT-30b hay Falcon-40b
Tôi biết ơn vì có thể truy cập trọng số Llama2, nhưng khi có các mô hình cạnh tranh thực sự là nguồn mở theo nghĩa OSI truyền thống, việc Llama2 nhận công lao “nguồn mở” khiến tôi thấy không công bằng
Khác biệt thực chất giữa các giấy phép đủ nhỏ để phần lớn mọi người, kể cả tôi, có khả năng chọn Llama2 vì chất lượng mô hình tốt hơn
Nhưng động lực như vậy cuối cùng có thể khiến chúng ta bị kẹt trong các giấy phép bán mở gượng gạo
Đã có thuật ngữ source available rồi, nên tôi không hiểu vì sao thuật ngữ “nguồn mở” phải tiến hóa
Trong trường hợp này, chỉ cần nói “trọng số được cung cấp theo giấy phép ít hạn chế” là được
Biểu đồ trong bài này rất sai khi chỉ đánh dấu GPL là phần mềm tự do, còn MIT/Apache thì như thể là nguồn mở nhưng không phải phần mềm tự do
Phía FSF không thích thuật ngữ “nguồn mở”, nhưng ngay cả họ cũng nói rằng “gần như mọi phần mềm nguồn mở đều là phần mềm tự do”
Đặc biệt, các giấy phép MIT, Apache, LGPL rõ ràng là giấy phép phần mềm tự do. Nếu không thì lượng phần mềm mà Debian hoặc các bản phân phối được FSF phê duyệt có thể chọn sẽ ít hơn rất nhiều
Điều mà biểu đồ có lẽ muốn phân biệt là copyleft với phần mềm tự do hoặc nguồn mở
Nếu sắp xếp theo mức độ cho phép, quan hệ tập con cũng phải ngược lại. GPL cho phép hơn nhiều so với SSPL và các giấy phép tương tự, nhưng kém thoáng hơn MIT/Apache
Khác biệt không mang tính kỹ thuật mà là chính trị
Phần này của bài viết cũng khá dễ gây hiểu lầm: “Phần mềm tự do do Free Software Foundation định nghĩa chỉ là một tập con của phần mềm nguồn mở, và sử dụng các giấy phép rất thoáng như GPL và Apache”
Về mặt lý thuyết, biểu đồ nên có một phạm trù khác nằm ngoài “Restricted Weights” nhưng hẹp hơn toàn bộ “Completely Closed”
Ví dụ như trọng số và mô hình hộp đen, có thể dùng miễn phí nhưng trên thực tế không thể xem xét bên trong hay di chuyển
Đây là phạm trù tương ứng với phần mềm nguồn đóng “có thể dùng miễn phí”
AI có thể dùng miễn phí nhưng được cung cấp dưới dạng một khối nhị phân sẽ phù hợp với nhóm này
Hoặc một mô-đun Python gọi engine suy luận và trọng số đã được biên dịch sẵn thành binary nhưng không có mã nguồn cũng thuộc trường hợp này
Đối ứng truyền thống trong thế giới phần mềm hiện nay là driver Linux bên thứ ba không phải nguồn mở. Miễn phí nhưng không mở
Trong thế giới AI, hiện chưa thấy nhiều thứ như vậy. Bên công bố trọng số thường làm vì mục đích nghiên cứu nên phần suy luận cũng hay cần là nguồn mở, còn bên có mô hình đóng thì muốn kiếm tiền nên không có lý do gì để công bố phần suy luận, chỉ cần thu phí API là được, chẳng hạn như “OpenAI”
Tiêu đề đã bị chỉnh sửa. Tiêu đề thật là “LLaMA2 isn't "Open Source" - and why it doesn't matter”
Nó đã bị đổi thành một sắc thái khá khác so với tiêu đề thật, và tôi cảm thấy tác giả với người đăng có thể nhìn nhận ý nghĩa của nguồn mở khác nhau
Vì Open Source đã bén rễ trong văn hóa kỹ thuật từ khá lâu, nên việc đi chệch khỏi nó từng bị chế giễu
Gần đây, cộng đồng dường như khoan dung hơn với các giấy phép “mở” kiểu này
Phần lớn chỉ trích nhắm vào các dự án không đáp ứng tiêu chuẩn FOSS là quá mức, nhưng tôi hy vọng chúng ta không bị đẩy quá nhanh theo hướng “open”
Cũng có một bài khác về LLaMa2: https://opensourceconnections.com/blog/2023/07/19/is-llama-2...