rasbt/LLMs-from-scratch
Triển khai LLM giống ChatGPT trong PyTorch từ đầu, từng bước
README
Xây dựng mô hình ngôn ngữ lớn (Từ đầu)
Kho lưu trữ này chứa mã để phát triển, đào tạo trước và tinh chỉnh LLM giống GPT và là kho lưu trữ mã chính thức cho cuốn sách Xây dựng mô hình ngôn ngữ lớn (Từ đầu).
trong Xây dựng mô hình ngôn ngữ lớn (Từ đầu), bạn sẽ tìm hiểu và hiểu cách các mô hình ngôn ngữ lớn (LLM) hoạt động từ trong ra ngoài bằng cách mã hóa chúng từ đầu, từng bước một. Trong cuốn sách này, tôi sẽ hướng dẫn bạn cách tạo LLM của riêng mình, giải thích từng giai đoạn bằng văn bản, sơ đồ và ví dụ rõ ràng.
Phương pháp được mô tả trong cuốn sách này để đào tạo và phát triển mô hình nhỏ nhưng có chức năng của riêng bạn cho mục đích giáo dục phản ánh cách tiếp cận được sử dụng trong việc tạo ra các mô hình nền tảng quy mô lớn, chẳng hạn như các mô hình đằng sau ChatGPT. Ngoài ra, cuốn sách này còn bao gồm mã để tải trọng số của các mô hình được huấn luyện trước lớn hơn để tinh chỉnh.
- Liên kết đến chính thức kho mã nguồn
- Link sách tại Manning (website nhà xuất bản)
- Link tới trang sách trên Amazon.com
- ISBN 9781633437166
Để tải xuống bản sao của kho lưu trữ này, hãy nhấp vào Tải xuống ZIP hoặc thực hiện lệnh sau trong terminal của bạn:
git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git
(Nếu bạn đã tải xuống gói mã từ trang web Manning, vui lòng xem xét truy cập kho lưu trữ mã chính thức trên GitHub tại https://GitHub.com/rasbt/LLMs-from-scratch để biết thông tin cập nhật mới nhất.)
Mục lục
Xin lưu ý rằng điều này README.md tập tin là một Markdown (.md) tài liệu. Nếu bạn đã tải xuống gói mã này từ trang web Manning và đang xem nó trên máy tính cục bộ của mình, tôi khuyên bạn nên sử dụng trình chỉnh sửa hoặc trình xem trước Markdown để xem chính xác. Nếu bạn chưa cài đặt trình chỉnh sửa Markdown, Người viết ma là một lựa chọn miễn phí tốt.
Ngoài ra, bạn có thể xem tệp này và các tệp khác trên GitHub tại https://GitHub.com/rasbt/LLMs-from-scratch trong trình duyệt của bạn, trình duyệt này sẽ tự động hiển thị Markdown.
Mẹo: Nếu bạn đang tìm kiếm hướng dẫn về cách cài đặt các gói Python và Python cũng như thiết lập môi trường mã của mình, tôi khuyên bạn nên đọc phần README.md tập tin nằm trong thiết lập thư mục.
| Tiêu đề chương | Mã chính (để truy cập nhanh) | Tất cả mã + bổ sung |
|---|---|---|
| Đề xuất thiết lập Cách đọc cuốn sách này tốt nhất |
- | - |
| Ch 1: Tìm hiểu các mô hình ngôn ngữ lớn | Không có mã | - |
| Ch 2: Làm việc với dữ liệu văn bản | - ch02.ipynb - trình tải dữ liệu.ipynb (tóm tắt) - tập thể dục-giải pháp.ipynb |
./ch02 |
| Ch 3: Cơ chế chú ý mã hóa | - ch03.ipynb - đa đầu chú ý.ipynb (tóm tắt) - tập thể dục-giải pháp.ipynb |
./ch03 |
| Chương 4: Triển khai mô hình GPT từ đầu | - ch04.ipynb - gpt.py (tóm tắt) - tập thể dục-giải pháp.ipynb |
./ch04 |
| Chương 5: Huấn luyện trước dữ liệu chưa được gắn nhãn | - ch05.ipynb - gpt_train.py (tóm tắt) - gpt_generate.py (tóm tắt) - tập thể dục-giải pháp.ipynb |
./ch05 |
| Ch 6: Tinh chỉnh phân loại văn bản | - ch06.ipynb - gpt_class_finetune.py - tập thể dục-giải pháp.ipynb |
./ch06 |
| Ch 7: Tinh chỉnh làm theo hướng dẫn | - ch07.ipynb - gpt_instruction_finetuning.py (tóm tắt) - {P28__evaluate.py (tóm tắt) - tập thể dục-giải pháp.ipynb |
./ch07 |
| Phụ lục A: Giới thiệu về PyTorch | - mã-part1.ipynb - mã-part2.ipynb - DDP-script.py - tập thể dục-giải pháp.ipynb |
./phụ lục-A |
| Phụ lục B: Tài liệu tham khảo và đọc thêm | Không có mã | ./phụ lục-B |
| Phụ lục C: Giải bài tập | - danh sách các giải pháp tập thể dục | ./phụ lục-C |
| Phụ lục D: Thêm chuông và còi vào vòng huấn luyện | - phụ lục-D.ipynb | ./phụ lục-D |
| Phụ lục E: Tinh chỉnh tham số hiệu quả với LoRA | - phụ lục-E.ipynb | ./appendix-E |
Mô hình tinh thần dưới đây tóm tắt nội dung được đề cập trong cuốn sách này.
Điều kiện tiên quyết
Điều kiện tiên quyết quan trọng nhất là nền tảng vững chắc về lập trình Python. Với kiến thức này, bạn sẽ được chuẩn bị tốt để khám phá thế giới LLM hấp dẫn và hiểu các khái niệm cũng như ví dụ về mã được trình bày trong cuốn sách này.
Nếu bạn có một số kinh nghiệm với mạng lưới thần kinh sâu, bạn có thể thấy một số khái niệm quen thuộc hơn vì LLM được xây dựng dựa trên các kiến trúc này.
Cuốn sách này sử dụng PyTorch để triển khai mã từ đầu mà không cần sử dụng bất kỳ thư viện LLM bên ngoài nào. Mặc dù trình độ thành thạo về PyTorch không phải là điều kiện tiên quyết nhưng việc làm quen với các khái niệm cơ bản về PyTorch chắc chắn rất hữu ích. Nếu bạn chưa quen với PyTorch, Phụ lục A cung cấp phần giới thiệu ngắn gọn về PyTorch. Ngoài ra, bạn có thể tìm thấy cuốn sách của tôi, PyTorch trong một giờ: Từ Tensors đến Huấn luyện Mạng nơ-ron trên nhiều GPU, hữu ích cho việc tìm hiểu về những điều cần thiết.
Yêu cầu phần cứng
Mã trong các chương chính của cuốn sách này được thiết kế để chạy trên máy tính xách tay thông thường trong khung thời gian hợp lý và không yêu cầu phần cứng chuyên dụng. Cách tiếp cận này đảm bảo rằng nhiều đối tượng có thể tương tác với tài liệu. Ngoài ra, mã sẽ tự động sử dụng GPU nếu chúng có sẵn. (Xin vui lòng xem thiết lập doc để có thêm khuyến nghị.)
Khóa học video
Khóa học video đồng hành dài 17 giờ 15 phút nơi tôi viết mã qua từng chương của cuốn sách. Khóa học được tổ chức thành các chương và phần phản ánh cấu trúc của cuốn sách để có thể sử dụng nó như một tài liệu thay thế độc lập cho cuốn sách hoặc tài nguyên mã bổ sung.
Sách đi kèm/Phần tiếp theo
Xây dựng mô hình lý luận (Từ đầu), tuy là một cuốn sách độc lập nhưng có thể được coi là phần tiếp theo của Xây dựng mô hình ngôn ngữ lớn (từ đầu).
Nó bắt đầu với một mô hình được huấn luyện trước và triển khai các phương pháp lý luận khác nhau, bao gồm chia tỷ lệ thời gian suy luận, học tăng cường và chắt lọc để cải thiện khả năng lý luận của mô hình.
Tương tự như Xây dựng mô hình ngôn ngữ lớn (từ đầu), Xây dựng mô hình lý luận (Từ đầu) thực hiện phương pháp thực hành thực hiện các phương pháp này ngay từ đầu.
- Liên kết Amazon (TBD)
- liên kết biên chế
- kho lưu trữ GitHub
Bài tập
Mỗi chương của cuốn sách bao gồm một số bài tập. Các giải pháp được tóm tắt trong Phụ lục C và sổ ghi chép mã tương ứng có sẵn trong các thư mục chương chính của kho lưu trữ này (ví dụ: ./ch02/01_main-chapter-code/exercise-solutions.ipynb.
Ngoài các bài tập về mã, bạn có thể tải xuống bản PDF dài 170 trang miễn phí có tiêu đề Tự kiểm tra việc xây dựng một mô hình ngôn ngữ lớn (từ đầu) từ trang web Manning. Nó chứa khoảng 30 câu hỏi trắc nghiệm và đáp án mỗi chương để giúp bạn kiểm tra sự hiểu biết của mình.
Tài liệu thưởng
Một số thư mục chứa các tài liệu tùy chọn như một phần thưởng dành cho độc giả quan tâm:
thiết lập
Chương 2: Làm việc với dữ liệu văn bản
Chương 3: Cơ chế mã hóa sự chú ý
Chương 4: Triển khai mô hình GPT từ đầu
Chương 5: Huấn luyện trước dữ liệu chưa được gắn nhãn
- Phương pháp tải trọng lượng thay thế
- Đào tạo trước GPT trên Bộ dữ liệu Project Gutenberg
- Thêm chuông và còi vào vòng huấn luyện
- Tối ưu hóa siêu tham số cho đào tạo trước
- Xây dựng giao diện người dùng để tương tác với LLM được đào tạo trước
- Đang chuyển đổi GPT sang Llama
- Tải trọng lượng mô hình hiệu quả về bộ nhớ
- Mở rộng Trình mã thông báo Tiktoken BPE bằng các mã thông báo mới
- PyTorch Mẹo về hiệu suất để đào tạo nhanh hơn LLM
- Kiến trúc LLM
- Chương 5 với các LLM khác dưới dạng thay thế thả vào (ví dụ: Llama 3, Qwen 3)
Chương 6: Tinh chỉnh phân loại
Chương 7: Tinh chỉnh làm theo hướng dẫn
- Tiện ích bộ dữ liệu để tìm các bản sao gần giống và tạo các mục nhập bằng giọng nói thụ động
- Đánh giá các phản hồi của lệnh bằng cách sử dụng OpenAI API và Ollama
- Tạo tập dữ liệu để tinh chỉnh lệnh
- Cải thiện tập dữ liệu để tinh chỉnh lệnh
- Tạo tập dữ liệu ưu tiên với Llama 3.1 70B và Ollama
- Tối ưu hóa tùy chọn trực tiếp (DPO) cho căn chỉnh LLM
- Xây dựng giao diện người dùng để tương tác với mô hình GPT được tinh chỉnh theo hướng dẫn
Thêm tài liệu thưởng từ Lập luận từ đầu kho lưu trữ:
Khái niệm cơ bản về Qwen3 (Từ đầu)
Đánh giá
Chia tỷ lệ suy luận
Học tăng cường (RL)
Câu hỏi, Phản hồi và Đóng góp cho Kho lưu trữ này
Tôi hoan nghênh tất cả các loại phản hồi, được chia sẻ tốt nhất thông qua Diễn đàn quản lý hoặc GitHub Thảo luận. Tương tự như vậy, nếu bạn có bất kỳ câu hỏi nào hoặc chỉ muốn đưa ra ý tưởng từ người khác, vui lòng đăng những câu hỏi này lên diễn đàn.
Xin lưu ý rằng vì kho lưu trữ này chứa mã tương ứng với sách in nên hiện tại tôi không thể chấp nhận những đóng góp mở rộng nội dung của mã chương chính, vì nó sẽ tạo ra những sai lệch so với sách in. Việc duy trì tính nhất quán sẽ giúp đảm bảo trải nghiệm mượt mà cho mọi người.
Trích dẫn
Nếu bạn thấy cuốn sách hoặc đoạn mã này hữu ích cho nghiên cứu của mình, vui lòng cân nhắc việc trích dẫn nó.
Trích dẫn theo phong cách Chicago:
Raschka, Sebastian. Xây dựng mô hình ngôn ngữ lớn (từ đầu). Manning, 2024. ISBN: 978-1633437166.
Mục nhập BibTeX:
@book{build-llms-from-scratch-book,
author = {Sebastian Raschka},
title = {Build A Large Language Model (From Scratch)},
publisher = {Manning},
year = {2024},
isbn = {978-1633437166},
url = {https://www.manning.com/books/build-a-large-language-model-from-scratch},
github = {https://github.com/rasbt/LLMs-from-scratch}
}
Dự án cùng danh mục
Thiết lập và chạy với Kimi-K2.6, GLM-5.2, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma và các mẫu khác.
f.k.a. Lời nhắc ChatGPT tuyệt vời. Chia sẻ, khám phá và thu thập lời nhắc từ cộng đồng. Nguồn mở và miễn phí — tự lưu trữ cho tổ chức của bạn với sự riêng tư hoàn toàn.
🤗 Transformers: khung định nghĩa mô hình cho các mô hình học máy tiên tiến ở dạng văn bản, hình ảnh, âm thanh và mô hình đa phương thức, cho cả suy luận và đào tạo.
Giao diện AI thân thiện với người dùng (Hỗ trợ Ollama, OpenAI API, ...)
Suy luận LLM trong C/C++
21 bài học, bắt đầu xây dựng bằng AI sáng tạo




