Bỏ qua đến nội dung chính

Thử nghiệm

📖 Nội dung bài học

Nhắn tin cho bạn Markov

Gửi tin nhắn

Ngày xưa, bạn bè tôi và tôi hay chơi một trò chơi: cầm điện thoại lên và soạn tin nhắn cho bạn bè chỉ bằng cách chọn các từ gợi ý tiếp theo. Có lẽ bạn cũng từng làm vậy.

Đây là một trình giả lập được "huấn luyện" trên một ít nội dung. Hãy thử chơi nhé!

này có ai biết cách sửa bản dựng không

tôi nghĩ |

chúng ta

↻ bắt đầu lại

Chúng ta nói về điều này như thể đó là một "Me-bot". Chúng ta biết nó gợi ý từ dựa trên cách sử dụng cá nhân của chúng ta, và chúng ta có thể thấy giọng văn của mình trong các gợi ý được cá nhân hóa.

Lúc đó, chúng ta vui vẻ bỏ qua nó như một phép màu công nghệ. Tôi không nghĩ chúng ta nhận ra thuật toán có thể đơn giản đến mức nào.

Hãy đọc tiếp nếu bạn muốn cùng tôi xây dựng một cái :)

"Huấn luyện" Mô hình của bạn

Hãy huấn luyện trên một vài tin nhắn. Tất cả những gì chúng ta cần làm là đếm các kết nối giữa các từ. Hãy làm từng tin nhắn một.

  1. "tôi nghĩ chúng ta có lẽ nên gửi nó đi"

  2. "tôi nghĩ điều đó nghe hay đấy"

  3. "tôi nghĩ chúng ta có lẽ nên đợi"

  4. "chúng ta nên kiểm tra với đội ngũ"

  5. "điều đó nghe hay đấy với tôi"

+ Thêm tin nhắn 1

Ma trận chuyển tiếp

Thêm các tin nhắn ở trên để bắt đầu xây dựng ma trận.

Bản đồ kết nối giữa các từ hoàn chỉnh này được gọi là bảng tần suất. Chuẩn hóa từng hàng và bạn sẽ có một phân phối xác suất về những gì có thể xảy ra tiếp theo.

Hành động chọn một từ tiếp theo dựa trên những gì bạn có cho đến nay được gọi là lấy mẫu. Chúng ta sử dụng cùng một thuật ngữ cho quy trình này với các mô hình ngôn ngữ hiện đại như Claude.

Thực hiện Lấy mẫu

Sử dụng cùng một ma trận dựa trên 5 tin nhắn, hãy thử chơi trò chơi của chúng ta một cách có hiểu biết hơn. Chúng tôi sẽ hiển thị cho bạn các xác suất.

tôi _

nghĩ 100%

↻ bắt đầu lại

Hàng được tô sáng là ngữ cảnh hiện tại của bạn. Chọn một từ từ các lựa chọn có sẵn để tiếp tục.

Mở rộng quy mô

Năm tin nhắn đã cho chúng ta một ma trận nhỏ và một vài dự đoán. Điều gì xảy ra với nhiều dữ liệu hơn?

+ 1 tin nhắn + 10 + 50 Tất cả 222

5 tin nhắn

17 từ duy nhất

13 ngữ cảnh

24 chuyển tiếp

2 tùy chọn tối đa

Sau "có lẽ" "nên" "nghĩ":

gửi 50% đợi 50%

Các nút điều chỉnh

Khi bạn lấy mẫu, bạn có thể thấy xác suất, nhưng bạn cũng sử dụng trực giác của mình về những từ nào "có vẻ đúng".

Nếu bạn phải viết để đưa ra những lựa chọn đó thay vì sử dụng trực giác, bạn nghĩ quy tắc mã hóa nào sẽ tạo ra kết quả tốt nhất?

Luôn chọn từ có xác suất cao nhất Chọn bán ngẫu nhiên, theo xác suất Chọn theo xác suất, nhưng cũng tăng cường các lựa chọn có khả năng nhất Bỏ qua mọi thứ dưới ngưỡng xác suất nhất định Chỉ xem xét N tùy chọn hàng đầu Chế độ Goblin — bỏ qua xác suất và chọn một cái ngẫu nhiên

Hiển thị các nút điều chỉnh

Tuyệt vời. Chơi với các nút điều chỉnh bên dưới để xem các tham số lấy mẫu ảnh hưởng đến lựa chọn của mô hình ngôn ngữ như thế nào. Sau đó, kiểm tra xem trực giác của bạn đã khớp như thế nào.

Các nhà phát triển sử dụng các tham số như nhiệt độ (temperature)cắt đuôi (tail trimming) để cải thiện việc lấy mẫu sau khi xác suất được tạo ra.

Sau "nghĩ":

Nhiệt độ 1.0

tập trung ngẫu nhiên

Lấy mẫu trung thực từ phân phối.

Cắt đuôi

Loại bỏ hoàn toàn các từ không có khả năng trước khi lấy mẫu.

Không có Top-k Top-p

Top từ3

Chỉ 3 từ có khả năng nhất còn tồn tại.

Khối lượng xác suất0.9

Giữ tập hợp nhỏ nhất các từ có tổng xác suất là 90%.

Không giống như top-k, điều này thích ứng với sự tự tin — khi mô hình chắc chắn, ít từ hơn sẽ tồn tại. Khi không chắc chắn, nhiều từ hơn sẽ tồn tại.

Tạo lại đặt lại

Nếu bạn đã đưa ra lựa chọn trước đó, bạn đã trực giác chọn một trong những phương pháp này.

Trực giác của tôi đã khớp với các tham số này như thế nào?

Cầu nối

Các chiến lược lấy mẫu bạn vừa sử dụng phần lớn là các ràng buộc lấy mẫu giống như các nhà phát triển truyền cho Claude. Đối với LLM, một vài điều khác biệt.

Chuỗi Markov

LLM

1 Đọc ngữ cảnh

từ cuối: "nghĩ"

1 Đọc ngữ cảnh

toàn bộ cuộc trò chuyện cho đến nay

2 Tính toán phân phối

tra cứu một hàng trong bảng

2 Tính toán phân phối

truyền xuôi qua hàng tỷ tham số — attention, embeddings, các lớp feedforward, kết nối còn lại, chuẩn hóa lớp...

3 Lấy mẫu token tiếp theo

chúng ta 32% cái 16% tôi 11%

3 Lấy mẫu token quy trình tương tự

chúng ta 32% cái 16% tôi 11%

Việc tra cứu bảng Markov là một hoạt động thực sự đơn giản và dễ giải thích. Truyền xuôi qua một mạng nơ-ron phức tạp hơn khá nhiều. Nhưng trong cả hai trường hợp, kết quả đều giống nhau: một phân phối xác suất của các từ hoặc token tiếp theo có khả năng.

Trong khi lấy mẫu là giống nhau, huấn luyện lại hoàn toàn khác biệt. Bức tường lũy thừa trước đó (từ vựngN hàng) không áp dụng. LLM đánh đổi khả năng giải thích của việc chỉ đếm từ lấy ngữ cảnh xa hơn và khả năng lớn hơn nhiều.

Công nghệ 100 năm tuổi

"Đây có phải là công nghệ thật không?" Câu hỏi hay, độc giả.

Markov đã công bố ý tưởng này vào năm 1906. Một thế kỷ sau vào năm 2010, các mô hình n-gram như thế này đã cung cấp khả năng dự đoán từ tiếp theo trên điện thoại của bạn (SwiftKey, sau đó là QuickType của Apple). Khoảng năm 2015, mạng nơ-ron — đầu tiên là RNN, sau đó là transformers vào năm 2017 — bắt đầu thay thế cách tiếp cận tra cứu bảng bằng một hàm đã học, và phần còn lại là... ừm, đó là những gì chúng tôi đang làm việc bây giờ.

🔁 Bài học liên quan

📚 Nguồn & ghi nhận

Bài học có hữu ích không?

Góp ý / Báo lỗiPhát hiện sai sót hoặc có ý tưởng cải thiện?