Generative AI và Large Language Models
Hiểu mô hình sinh, next-token prediction, sampling và giới hạn của văn bản trôi chảy.
Generative AI tạo mẫu mới theo những cấu trúc học được từ dữ liệu. Large Language Model là một họ mô hình xử lý ngôn ngữ; nhiều hệ phổ biến sinh chuỗi bằng cách dự đoán token tiếp theo, không tra cứu một kho đáp án luôn đúng.
Mục tiêu học tập
- Phân biệt generative model với discriminative prediction.
- Đọc được phân rã xác suất autoregressive.
- Tách pretraining, prompting và factual verification.
Tạo một mẫu khác với chọn một nhãn
Bộ phân loại chọn “thư rác” hay “không”; mô hình sinh có thể viết một đoạn thư. Nó học những mẫu trong dữ liệu và tạo tổ hợp mới. Văn bản mạch lạc vẫn có thể chứa tên, số hoặc nguồn không đúng.
Một mô hình ảnh và một mô hình ngôn ngữ đều có thể là generative AI, nhưng dùng biểu diễn và cách sampling khác nhau. Không phải mọi mô hình sinh đều là LLM hoặc đều dùng cùng kiến trúc.
Discriminative learning thường mô hình hóa target có điều kiện theo input. Generative modeling học phân bố để có thể tạo mẫu, có hoặc không có điều kiện. Trong LLM autoregressive, token là đơn vị biểu diễn như mảnh từ hoặc byte, không nhất thiết là một từ hoàn chỉnh.
Tokenization ảnh hưởng độ dài chuỗi, cách xử lý tiếng Việt và chi phí. Cùng một câu có thể được chia khác giữa tokenizer; không so token count giữa hai hệ mà chưa kiểm tra convention.
Với chuỗi token , autoregressive factorization là . Đây là chain rule kết hợp mô hình conditional, không khẳng định mạng hiểu hoặc xác minh các sự kiện trong chuỗi.
Có mô hình sinh ngôn ngữ không theo đúng vòng autoregressive này. Các kết luận trong ví dụ áp dụng cho họ next-token model đang xét, không phải định nghĩa bao trùm mọi phương pháp tạo văn bản.
Học và sử dụng context
Khi học, mô hình thấy nhiều đoạn và luyện đoán phần tiếp theo. Khi dùng, câu hỏi và thông tin bạn cung cấp tạo context cho lần sinh. Thêm ví dụ vào prompt không có nghĩa trọng số mô hình đã được cập nhật.
Pretraining tối ưu mục tiêu trên dữ liệu; fine-tuning cập nhật tham số cho tập nhiệm vụ hoặc hành vi khác. In-context learning đặt ví dụ vào context trong inference. Các hệ assistant có thể thêm instruction tuning hoặc công cụ, nên không chỉ gồm base language model.
Sampling chọn token theo phân bố; greedy decoding chọn token có xác suất cao nhất từng bước. Temperature và giới hạn sampling thay đổi phân bố chọn, không biến một câu sai thành đúng một cách có bảo đảm.
Negative log-likelihood thường có dạng . Khi train, prefix ground truth giúp song song hóa nhiều vị trí với causal mask; khi generate, prefix chứa chính token đã sinh.
Khác biệt giữa prefix huấn luyện và prefix sinh có thể làm lỗi tích lũy. Context hữu hạn, dữ liệu nhiễu và objective dự đoán chuỗi giới hạn factual reliability; perplexity thấp không tự đo chất lượng trả lời theo yêu cầu người dùng.
Một mô hình nhỏ để thấy cơ chế
Mã đếm từ đứng sau “học” trong ba câu giả định. Nếu “AI” xuất hiện nhiều hơn, nó nhận xác suất lớn hơn trong bảng đó. Đây là mô hình bigram cực nhỏ, không phải LLM và không biết nghĩa của câu.
Bigram chỉ điều kiện theo một token trước, trong khi mô hình context dài dùng nhiều vị trí. Ví dụ cho thấy distribution và sampling là khái niệm độc lập với việc mạng có bao nhiêu tham số. Token chưa xuất hiện cần smoothing hoặc cách xử lý khác trong mô hình hoàn chỉnh.
Khi đánh giá ứng dụng, tạo tập câu hỏi có bằng chứng và tiêu chí từ chối khi thiếu dữ liệu. Phân biệt độ đúng, tính tuân thủ yêu cầu và chi phí. Không dùng vài câu trả lời trôi chảy làm bằng chứng năng lực tổng quát.
Workflow & kiến trúc
Ứng dụng & giới hạn
- Soạn bản nháp để người dùng kiểm chứng.
- Tạo ứng dụng ngôn ngữ kết hợp tài liệu hoặc công cụ.
Điểm mạnh
Một mô hình có thể hỗ trợ nhiều dạng tác vụ thông qua context và hướng dẫn.
Giới hạn cần nhớ
Độ trôi chảy không bảo đảm factuality; context, tokenizer và dữ liệu học giới hạn hành vi.
Thử trong một project nhỏ
Thêm một câu vào corpus rồi tính lại phân bố bằng tay. Nêu một câu hỏi mà bigram không thể trả lời và cách kiểm chứng một câu trả lời LLM bằng nguồn độc lập.
from collections import Counter
corpus = ["học AI", "học AI", "học robotics"]
counts = Counter(sentence.split()[1] for sentence in corpus)
total = sum(counts.values())
probabilities = {token: count / total for token, count in counts.items()}
assert abs(sum(probabilities.values()) - 1.0) < 1e-12
print(probabilities)Bigram/counting toy trên ba câu tự tạo; không sử dụng hoặc đánh giá một LLM thực.
