Chắc hẳn bạn cũng như mình, đang quá quen với ChatGPT và những cập nhật “xịn sò” của nó, đến nỗi đôi khi quên mất rằng thế giới AI còn có rất nhiều “anh tài” khác. Thậm chí, trong khoảng 1 năm rưỡi trở lại đây, số lượng các mô hình ngôn ngữ lớn (LLM) mã nguồn mở ra mắt còn nhiều hơn cả các mô hình độc quyền đấy!
Hôm nay, chúng ta sẽ cùng nhau khám phá thế giới LLM mã nguồn mở và:
-
Điểm qua 5 LLM mã nguồn mở hàng đầu.
-
Tìm hiểu các cách dễ dàng để truy cập chúng.
-
Xem cách bắt đầu với LLM mã nguồn mở trong phiên bản LangChain mới nhất của n8n.
Cùng mình khám phá ngay nhé!
Có những LLM mã nguồn mở nào?
Trong bài viết này, mình sẽ giới thiệu một vài mô hình được đào tạo trước khá phổ biến, đó là: Llama2, Mistral, Falcon, MPT và BLOOM. Chúng thường được coi là các mô hình “nền tảng”, cần được tinh chỉnh thêm. Các nhà phát triển thường cung cấp mỗi mô hình với nhiều kích cỡ khác nhau, kèm theo một hoặc hai mô hình đã được tinh chỉnh. Bạn có thể dùng trực tiếp hoặc chọn các phiên bản đã tinh chỉnh từ các nhà phát triển khác.
Mô hìnhNhà phát triểnSố tham sốCửa sổ ngữ cảnhỨng dụng
Tạo văn bản đa ngôn ngữ, Tạo code, Theo dõi hướng dẫn zero-shot
BigScience RAIL License (Modified Apache 2.0)
Bạn có thể dễ dàng tích hợp hầu hết các LLM mã nguồn mở này vào quy trình làm việc n8n của mình. Nếu bạn đang dùng phiên bản LangChain của n8n, thì còn có nhiều khả năng hơn nữa. Hiện tại, hầu hết chúng đều dùng node OpenAI Model, nhưng bạn có thể thay thế bằng các mô hình mã nguồn mở trong nhiều trường hợp. Đừng bỏ lỡ các chi tiết này ở phần sau của bài viết nhé!
Lợi ích của LLM mã nguồn mở là gì?
Mặc dù GPT-4 được coi là “chuẩn vàng” của các mô hình ngôn ngữ AI, nhưng nó lại là mô hình độc quyền. Các LLM mã nguồn mở có những ưu điểm riêng, chẳng hạn như:
-
Khả năng tiếp cận: Ai cũng có thể dùng được. Điều này thúc đẩy sự hòa nhập và tạo cơ hội bình đẳng để học hỏi và thử nghiệm với các mô hình này.
-
Hợp tác: Các dự án mã nguồn mở khuyến khích sự hợp tác của cộng đồng. Các nhà phát triển trên toàn cầu có thể cùng nhau giúp các mô hình trở nên mạnh mẽ, đa dạng và hiệu quả hơn theo thời gian.
-
Đổi mới: Chúng có thể được dùng làm nền tảng cho các nghiên cứu và phát triển tiếp theo, từ đó thúc đẩy sự đổi mới. Các nhà nghiên cứu có thể xây dựng dựa trên các mô hình hiện có, tối ưu hóa chúng và mở rộng giới hạn của những gì có thể.
-
Tính minh bạch: Vì code được công khai, nên việc hiểu cách mô hình hoạt động và tin tưởng vào kết quả của nó sẽ dễ dàng hơn. Tính minh bạch này cũng giúp xác định và sửa lỗi nhanh hơn.
-
Tiết kiệm chi phí: LLM mã nguồn mở có thể là giải pháp tiết kiệm chi phí cho cả doanh nghiệp và cá nhân. Bạn có thể dùng các mô hình này mà không cần trả phí bản quyền, thậm chí còn có thể tùy chỉnh theo nhu cầu cụ thể. Tuy nhiên, vẫn có một số chi phí liên quan đến việc chạy LLM vì chúng đòi hỏi nhiều tài nguyên tính toán.
Vậy, LLM mã nguồn mở nào là tốt nhất?
Thực tế là không có LLM mã nguồn mở nào là “nhất” cả. Lý do là vì:
Có rất nhiều chuẩn để đánh giá các mô hình, và các nhóm nghiên cứu khác nhau sẽ tự quyết định chuẩn nào là phù hợp. Điều này khiến việc so sánh khách quan trở nên khá khó khăn.
Nhưng cũng may, nhờ có Hugging Face mà chúng ta có một bảng xếp hạng công khai cho các LLM mã nguồn mở. Bảng này sẽ kiểm tra các mô hình trên 4 chuẩn chính, dùng Eleuther AI Language Model Evaluation Harness. Kết quả sẽ được tổng hợp và mỗi mô hình sẽ nhận được một điểm số cuối cùng. Bạn có thể tìm hiểu thêm về quy trình đánh giá này trong một bài blog.
Bảng xếp hạng còn có thể được lọc theo nhiều tiêu chí khác nhau, như kích thước mô hình, phương pháp lượng tử hóa, mô hình cơ bản hay đã tinh chỉnh,… Nói chung, các mô hình lớn hơn và đã tinh chỉnh sẽ có điểm số cao hơn.
Hiện tại, một vài phiên bản Llama2 đã tinh chỉnh đang dẫn đầu bảng xếp hạng, nhưng điều này có thể thay đổi bất cứ lúc nào vì đây là một cuộc thi mở, ai cũng có thể gửi mô hình của mình để đánh giá. Ví dụ, một mô hình được đào tạo trước mới là Yi-34B đã ra mắt vào tháng 11/2023 và đã đạt được điểm số cao nhất trong số các LLM nền tảng. Điều này có thể thúc đẩy sự phát triển của nhiều mô hình đã tinh chỉnh tiên tiến hơn nữa.
Bây giờ, chúng ta hãy cùng nhau tìm hiểu kỹ hơn về từng LLM mã nguồn mở nhé!
Llama2
Llama 2 là một họ các mô hình ngôn ngữ lớn (LLM) do Meta phát triển, với số lượng tham số từ 7 tỷ đến 70 tỷ. Các mô hình này, có cả phiên bản được đào tạo trước và đã tinh chỉnh, được tối ưu hóa cho việc tạo văn bản và đối thoại.
Vào thời điểm ra mắt, các mô hình này đã thể hiện hiệu suất vượt trội trên hầu hết các chuẩn so với các mô hình chat mã nguồn mở khác và tương đương với một số mô hình độc quyền phổ biến, như GPT-3 và PaLM.
Llama 2 được thiết kế để sử dụng cho mục đích thương mại và khoa học bằng tiếng Anh. Tuy nhiên, bạn cần tuân thủ Chính sách sử dụng chấp nhận được và Thỏa thuận cấp phép cho Llama 2.
Đến nay, Llama2 vẫn là nền tảng cho nhiều mô hình mới, đã tinh chỉnh do các nhà nghiên cứu và người đam mê tạo ra.
Các tính năng chính của Llama2:
-
Mô hình tự hồi quy và sử dụng kiến trúc transformer được tối ưu hóa.
-
Mô hình được đào tạo bằng cách sử dụng một hỗn hợp mới của dữ liệu trực tuyến công khai, với mô hình lớn nhất sử dụng Grouped-Query Attention để cải thiện khả năng mở rộng suy luận. Dữ liệu đào tạo cho Llama 2 không bao gồm dữ liệu người dùng của Meta.
-
Lượng khí thải carbon ước tính của mô hình trong quá trình đào tạo trước đã được bù đắp bằng chương trình bền vững của Meta.
-
Các mô hình đã tinh chỉnh rất phù hợp cho các cuộc trò chuyện như trợ lý.
-
Các phiên bản được đào tạo trước có thể được tùy chỉnh cho nhiều tác vụ tạo ngôn ngữ tự nhiên khác nhau.
-
Các mô hình cơ bản rất tốt cho nghiên cứu và tinh chỉnh thêm. Một bài báo nghiên cứu chi tiết cũng đã được công bố.
Mistral
Mistral-7B-v0.1 là một LLM mạnh mẽ do Mistral AI – một công ty khởi nghiệp trẻ của Pháp – phát triển. Mô hình đầu tiên của họ, với 7,3 tỷ tham số, vượt trội hơn Llama-2 13B trên tất cả các chuẩn và cạnh tranh với Llama-1 34B trên nhiều phương diện.
Nó sử dụng kiến trúc transformer, với Grouped-Query Attention, Sliding-Window Attention và bộ mã hóa Byte-fallback BPE. Mô hình Mistral được thiết kế để hoạt động hiệu quả, cung cấp thời gian suy luận nhanh hơn và khả năng xử lý các chuỗi dài hơn với ít tài nguyên tính toán hơn.
Tuy nhiên, cần lưu ý rằng đây là một mô hình cơ bản, nên nó không có cơ chế kiểm duyệt tích hợp.
Các tính năng chính của Mistral:
-
Hiệu suất vượt trội, đánh bại nhiều mô hình lớn hơn trên nhiều chuẩn khác nhau.
-
Thiết kế hiệu quả với Grouped-query attention để suy luận nhanh hơn và Sliding Window Attention để xử lý các chuỗi lớn hơn.
-
Tính linh hoạt, thể hiện qua hiệu suất tốt trên cả các tác vụ liên quan đến tiếng Anh và code.
-
Dễ dàng tinh chỉnh, thể hiện qua hiệu suất ấn tượng của mô hình khi được tinh chỉnh cho các ứng dụng chat.
-
Giấy phép mở, cho phép sử dụng không hạn chế theo giấy phép Apache 2.0.
-
Phù hợp với nhiều ứng dụng, bao gồm Hiểu và Tạo ngôn ngữ tự nhiên, Chatbot và Tạo code.
-
Thiết kế hiệu quả của nó khiến nó trở thành một lựa chọn tốt để triển khai trong các môi trường hạn chế về tài nguyên, và hiệu suất vượt trội của nó khiến nó trở thành một đối thủ nặng ký cho các tác vụ NLP đòi hỏi khắt khe.
Falcon
Falcon LLM là một dòng mô hình hàng đầu do Viện Đổi mới Công nghệ (TII) của Các Tiểu vương quốc Ả Rập Thống nhất phát triển, một trung tâm nghiên cứu lớn trên toàn cầu. Nó được phát triển bằng cách sử dụng một quy trình dữ liệu tùy chỉnh và một thư viện đào tạo phân tán, đồng thời mang lại hiệu suất cao trên nhiều chuẩn Xử lý ngôn ngữ tự nhiên (NLP).
Falcon-180B là mô hình truy cập mở lớn nhất và mạnh mẽ nhất hiện có. Kiến trúc được tối ưu hóa cho suy luận của nó vượt trội hơn các mô hình khác như LLaMA-2, StableLM, RedPajama và MPT. Ngoài ra, các mô hình Falcon-7B và Falcon-40B nhỏ hơn nhưng cũng là những mô hình hàng đầu trong phân khúc của chúng.
Các tính năng chính của Falcon:
-
Mô hình Falcon 180B đã được đào tạo bằng nhiều ngôn ngữ, như tiếng Anh, tiếng Đức, tiếng Tây Ban Nha, tiếng Pháp (và có khả năng hạn chế ở tiếng Ý, tiếng Bồ Đào Nha, tiếng Ba Lan, tiếng Hà Lan, tiếng Romania, tiếng Séc, tiếng Thụy Điển). Các phiên bản nhỏ hơn cũng hỗ trợ đa ngôn ngữ.
-
Dòng Falcon sử dụng bộ dữ liệu RefinedWeb đặc biệt, một bộ dữ liệu web quy mô lớn với khả năng lọc và khử trùng nghiêm ngặt.
-
Đặc biệt hứa hẹn trong nghiên cứu về các mô hình ngôn ngữ lớn, đóng vai trò là nền tảng cho việc chuyên môn hóa và tinh chỉnh thêm.
-
Các phiên bản đã tinh chỉnh phù hợp cho các ứng dụng chat/hướng dẫn sẵn sàng để sử dụng. Để sử dụng hiệu quả, người dùng nên đánh giá rủi ro và phát triển các biện pháp bảo vệ để đảm bảo sử dụng có trách nhiệm.
MPT
MosaicML giới thiệu một số mô hình Pretrained Transformer (MPT) được thiết kế để xử lý các tác vụ ngôn ngữ quy mô lớn. Mô hình lớn nhất, MPT-30B, là một transformer kiểu bộ giải mã được nhúng với một số tính năng độc đáo.
Nó được đào tạo trên một bộ dữ liệu lớn gồm 1T token, lớn hơn đáng kể so với các bộ dữ liệu được sử dụng cho các mô hình tương tự. MPT-30B có khả năng đào tạo và suy luận nhanh chóng và hiệu quả nhờ FlashAttention và FasterTransformer. Mô hình này được thiết kế đặc biệt để triển khai thuận tiện trên một GPU duy nhất, một tính năng giúp nó khác biệt so với các mô hình khác trên thị trường.
Các mô hình MPT sử dụng codebase MosaicML LLM có trong kho llm-foundry và được đào tạo bởi nhóm NLP của MosaicML trên nền tảng MosaicML.
MPT-30B có thể xử lý cửa sổ ngữ cảnh ấn tượng 8k token, có thể được mở rộng hơn nữa bằng cách tinh chỉnh và hỗ trợ ngoại suy độ dài ngữ cảnh thông qua hệ thống ALiBi.
Mô hình “chị em” nhỏ hơn, mpt-7b-storywriter, hỗ trợ cửa sổ ngữ cảnh đáng kinh ngạc 65k.
Các mô hình MPT được cấp phép để cho phép sử dụng cho mục đích thương mại.
MPT-7B-storywriter-65k+ là một biến thể được thiết kế đặc biệt để đọc và viết truyện hư cấu với độ dài ngữ cảnh cực lớn.
Một biến thể Instruct của MPT phù hợp để theo dõi hướng dẫn và trả lời câu hỏi.
Cuối cùng, biến thể MPT-7B-Chat-8k phù hợp cho các cuộc trò chuyện kiểu chatbot với các tin nhắn dài.
BLOOM
Mô hình ngôn ngữ đa ngôn ngữ truy cập mở khoa học mở BigScience (BLOOM) là một Mô hình ngôn ngữ lớn (LLM) tự hồi quy tiên tiến. Nó được phát triển bởi BigScience – một sự hợp tác toàn cầu của hơn một nghìn nhà nghiên cứu AI – và được đào tạo trên một lượng lớn dữ liệu bằng cách sử dụng các tài nguyên máy tính công nghiệp (Siêu máy tính công cộng Jean Zay, do chính phủ Pháp cung cấp).
Mô hình này có khả năng tạo ra văn bản mạch lạc bằng 46 ngôn ngữ tự nhiên và 13 ngôn ngữ lập trình, sao cho đầu ra gần như không thể phân biệt được với văn bản do con người viết. BLOOM cũng có thể thực hiện các tác vụ mà nó chưa được đào tạo rõ ràng bằng cách trình bày chúng dưới dạng các tác vụ tạo văn bản.
BLOOM có thể được sử dụng bởi các nhà nghiên cứu, nhà giáo dục, sinh viên, kỹ sư, nhà phát triển và các tổ chức phi thương mại.
BLOOM có kiến trúc chỉ có bộ giải mã bắt nguồn từ Megatron-LM GPT2. Mô hình hàng đầu bao gồm tổng cộng 176 tỷ tham số, 70 lớp và 112 đầu chú ý.
Dữ liệu đào tạo bao gồm 46 ngôn ngữ tự nhiên và 13 ngôn ngữ lập trình, tất cả trong 1,6TB văn bản đã được xử lý trước, được chuyển đổi thành 350B token duy nhất.
BLOOM được thiết kế để nghiên cứu công khai về các mô hình ngôn ngữ lớn.
Nó có thể được sử dụng cho nhiều tác vụ khác nhau, bao gồm tạo văn bản, khám phá các đặc điểm ngôn ngữ, trích xuất thông tin, trả lời câu hỏi và tóm tắt.
Đây là một trong số ít mô hình có thể tạo ra văn bản đa ngôn ngữ.
Một số mô hình BLOOMz đã tinh chỉnh có thể tuân theo hướng dẫn của con người với lời nhắc zero-shot.
Làm thế nào để bắt đầu với LLM mã nguồn mở?
Với rất nhiều mô hình mã nguồn mở giá cả phải chăng, liệu bạn có đang “ngứa ngáy” muốn thử chúng ngay không?
Có hai cách chính để thiết lập và sử dụng LLM mã nguồn mở:
-
Cách truyền thống nhất là cài đặt mọi thứ cục bộ. Cách này đòi hỏi một trình độ chuyên môn nhất định. Ngoài ra, mô hình càng lớn thì càng khó đáp ứng các yêu cầu về phần cứng. Các mô hình lớn nhất đòi hỏi thiết bị cấp công nghiệp.
-
Thay vì lưu trữ mọi thứ cục bộ, bạn cũng có thể thuê một máy chủ ảo với hàng chục hoặc thậm chí hàng trăm gigabyte RAM video. Một số nhà cung cấp dịch vụ lưu trữ đã tự động hóa quá trình cài đặt và triển khai mô hình, vì vậy toàn bộ quá trình thiết lập chỉ yêu cầu một vài cú nhấp chuột và một chút thời gian chờ đợi.
Cần bao nhiêu RAM để chạy LLM?
Để hoạt động, hầu hết các LLM cần được tải vào bộ nhớ (RAM hoặc GPU). Cần bao nhiêu bộ nhớ là một câu hỏi không hề đơn giản. Trong hầu hết các trường hợp, bạn có thể kiểm tra thẻ mô hình trên trang web Hugging Face, kho GitHub hoặc một trang web khác.
Có một số yếu tố cần xem xét, bạn có thể đọc thêm về chúng trên trang web Hugging Face: có một công cụ hữu ích để ước tính các yêu cầu về phần cứng cho LLM.
Nói chung, cần ít nhất 16 GB RAM trống để chạy ngay cả các LLM nhỏ. Các mô hình lớn hơn đòi hỏi nhiều bộ nhớ hơn. Nếu bạn muốn mô hình hoạt động nhanh hơn, bạn sẽ cần lượng bộ nhớ GPU tương ứng.
Xây dựng ứng dụng LLM của riêng bạn với tích hợp LangChain của n8n
Nếu bạn nghĩ rằng việc chạy một mô hình mã nguồn mở là khó khăn, thì mình có một tin tuyệt vời: có ít nhất 3 cách dễ dàng để làm điều này với các node LangChain của n8n:
-
Chạy các mô hình Hugging Face nhỏ với User Access Token hoàn toàn miễn phí.
-
Nếu bạn muốn chạy các mô hình lớn hơn hoặc cần phản hồi nhanh, hãy thử tính năng mới của Hugging Face có tên là Custom Inference Endpoints.
-
Nếu bạn có đủ tài nguyên tính toán, hãy chạy mô hình qua Ollama (cục bộ hoặc tự lưu trữ).
Các node LangChain giúp bạn dễ dàng truy cập các LLM mã nguồn mở và cung cấp cho bạn các công cụ tiện dụng để làm việc với LLM. Đây là một video từ hội thảo cộng đồng LangChain mới nhất của chúng tôi với tổng quan về các khía cạnh quan trọng nhất:
Bắt đầu với LangChain và LLM mã nguồn mở trong n8n
Hiện tại, phiên bản LangChain của n8n đang ở chế độ beta, đó là lý do tại sao bạn cần:
-
Tạo một tài khoản đám mây mới;
-
Hoặc cài đặt một image docker LangChain đặc biệt cho phiên bản tự lưu trữ.
Sau khi cài đặt, bạn sẽ thấy một phần mới với các node AI trong giao diện n8n:
Giờ thì hãy cùng nhau tạo quy trình làm việc đầu tiên của mình với LLM mã nguồn mở nhé!
Xây dựng một chatbot đơn giản với LLM mã nguồn mở
Sau khi bạn có quyền truy cập vào phiên bản LangChain của n8n, hãy tạo một chatbot AI đơn giản, được hỗ trợ bởi mô hình Mistral-7B-Instruct-v0.1 hoàn toàn miễn phí.
Ví dụ đơn giản nhất về một LLM Chain:
-
Chọn node Chat Message thủ công mới làm node đầu tiên của quy trình làm việc. Một nút Chat mới sẽ xuất hiện gần nút Execute Workflow.
-
Tiếp theo, kết nối node Basic LLM Chain. Đây là một node LangChain lưu trữ một mẫu prompt. Điều này cho phép bạn kết nối các node mô hình khác nhau một cách linh hoạt, vì chúng luôn nhận được cùng một prompt như trong ảnh chụp màn hình sau.
-
Cuối cùng, hãy kết nối node mô hình. Chọn node Hugging Face Inference Model và kết nối nó với Basic LLM Chain. Thêm thông tin xác thực mới và chỉ định User Access Token. Bằng cách này, bạn có thể truy cập ngay vào hàng trăm LLM quy mô nhỏ được lưu trữ trực tiếp trong hub Hugging Face.
Cấu hình mô hình như sau:
-
Tăng Frequency Penalty để mô hình không bị lặp lại cùng một cụm từ.
-
Nhập một giá trị lớn hơn vào trường Maximum Number of Tokens. Bằng cách này, mô hình sẽ phản hồi bằng các câu hoàn chỉnh hoặc thậm chí là các đoạn văn bản.
-
Điều chỉnh Sampling Temperature sao cho không quá thấp và không quá cao. Mình đã giải thích ngắn gọn về khái niệm Sampling Temperature trong bài viết trước với các ví dụ về quy trình làm việc GPT-3.
Bạn có thể sử dụng LLM với một số lượng nhỏ tham số hoàn toàn miễn phí thông qua Hugging Face.
Bây giờ, hãy cùng thử quy trình làm việc của chúng ta nhé! Mở cửa sổ chat và hỏi một điều gì đó.
Đây chỉ là một ví dụ về những gì mô hình Mistral-7B đã tinh chỉnh có thể làm được. Khá ấn tượng đối với một mô hình chỉ có 7B tham số, phải không?
Ở phía bên phải của ảnh chụp màn hình, bạn có thể thấy nhật ký của node LangChain: các JSON đầu vào và đầu ra và trình tự của chúng. Điều này đặc biệt hữu ích cho việc gỡ lỗi các Agent nhiều bước phức tạp, có thể gọi một mô hình nhiều lần với các prompt khác nhau.
Các node LangChain Code và Code Tool đặc biệt cho phép bạn tạo các chain hoàn toàn tùy chỉnh. Bạn có thể xây dựng bất cứ thứ gì được hỗ trợ bởi thư viện LangChainJS, ngay cả khi chưa có node dựng sẵn.
Kết luận
Trong bài viết này, mình đã giới thiệu ngắn gọn về LLM mã nguồn mở và giải thích cách truy cập chúng.
Mình cũng đã trình diễn framework LangChain trong n8n và cung cấp một quy trình làm việc đơn giản sử dụng mô hình mã nguồn mở do Hugging Face lưu trữ.