Các mô hình ngôn ngữ lớn (LLM) cung cấp sức mạnh cho các công cụ AI tiên tiến như chúng ta thấy ChatGPT, Bard và Copilot dường như là một điều kỳ diệu. Tuy nhiên, chúng không phải là phép thuật. Bài viết này sẽ giải mã các LLM bằng cách hướng dẫn bạn xây dựng một mô hình của riêng mình từ đầu.
Bạn sẽ có cái nhìn sâu sắc và quý giá về cách LLM hoạt động, học cách đánh giá chất lượng của chúng và nắm bắt được các kỹ thuật cụ thể để tinh chỉnh và cải thiện chúng.
Quá trình bạn sử dụng để huấn luyện và phát triển mô hình nhỏ nhưng có chức năng trong bài viết này tuân theo các bước tương tự được sử dụng để tạo ra các mô hình nền tảng quy mô lớn như GPT-4. Mô hình LLM quy mô nhỏ của bạn có thể được phát triển trên một chiếc laptop thông thường, và bạn sẽ có thể sử dụng nó như một trợ lý cá nhân của riêng mình.
Các bước xây dựng mô hình ngôn ngữ lớn từ đầu
Để xây dựng một mô hình ngôn ngữ lớn cơ bản chúng ta cần cài đặt các phần Jupyter notebook và môi trường Python. Các file mã nguồn gồm các bước sau đây:
- LLM_1_Tokenizer https://github.com/nhunguet/Build_LLM_from_Scratch/blob/main/LLM_1_Tokenizer.ipynb Trong Notebook này, chúng ta sẽ phát triển từng bước một lớp tokenizer. Văn bản chúng ta sẽ sử dụng để token hóa cho việc huấn luyện LLM là một truyện ngắn của Edith Wharton có tên “The Verdict,” đã được phát hành vào phạm vi công cộng và do đó được phép sử dụng cho các nhiệm vụ huấn luyện LLM. Văn bản có sẵn trên Wikisource tại The Verdict. Đây là một phần của loạt hướng dẫn sổ tay về cách xây dựng một LLM từ đầu
- LLM_2_Byte Pair Encoding https://github.com/nhunguet/Build_LLM_from_Scratch/blob/main/LLM_2_Byte_Pair_Encoding.ipynb
Trong Notebook đầu tiên, chúng ta đã thảo luận cách phát triển một Word Tokenizer từng bước. Trong sổ tay này, chúng ta sẽ trình bày bước tiếp theo trước khi có thể tạo ra embeddings cho LLM, đó là tạo ra các cặp đầu vào – mục tiêu cần thiết cho việc huấn luyện một LLM. - LLM_3_Data Loader https://github.com/nhunguet/Build_LLM_from_Scratch/blob/main/LLM_3_Data_Loader.ipynb
Trong Notebook này, chúng ta sẽ giải thích khái niệm về Dataset Class và Data Loader trong PyTorch. Chúng ta cũng sẽ giải thích bằng một loạt ví dụ về cách dữ liệu X và chuỗi token mục tiêu được tạo ra để tạo ra một dự đoán từ tiếp theo - LLM_4_Embeddings https://github.com/nhunguet/Build_LLM_from_Scratch/blob/main/LLM_4_Embeddings.ipynb
Trong Notebook này, chúng ta sẽ giải thích khái niệm về word embeddings và cách mà cả các token và vị trí của chúng được tính đến thông qua embeddings làm đầu vào cho quá trình huấn luyện, thông qua các trọng số embeddings ban đầu được tạo ngẫu nhiên.