English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

khách
1 / ?
trở lại bài học

Khoảng cách Ngữ nghĩa dưới dạng Khoảng cách Euclid

Một Không gian Vector Đa chiều

Mỗi token trong từ vựng 8449-token của ANDREA-120M được ánh xạ thành một điểm trong R^768. Ma trận embedding token có kích thước 8449 x 768: 8449 hàng, mỗi hàng tương ứng với một token trong từ vựng; 768 cột, mỗi cột tương ứng với một chiều embedding.


Hình học của ANDREA Panels


Ba Tính Chất Tạo Nên Không Gian Vector

1. Phép cộng. v_a + v_b nằm trong R^768. Tổng của hai embedding là một vector hợp lệ.

2. Phép nhân vô hướng. alpha * v nằm trong R^768 với mọi alpha thực. Kéo giãn hoặc thu nhỏ theo cùng hướng.

3. Tính tuyến tính. alpha v_a + beta v_b nằm trong R^768. Các tổ hợp tuyến tính vẫn nằm trong không gian.


Những tính chất này cung cấp cho chúng ta các công cụ hình học: khoảng cách, góc, phép chiếu, cơ sở, trực giao.


Khoảng cách như Độ tương đồng Ngữ nghĩa

Độ tương đồng cosine của hai embedding đo góc giữa chúng: cos(theta) = (v_a . v_b) / (||v_a|| * ||v_b||). Phạm vi: -1 (ngược chiều) đến +1 (song song).


Mô hình thực nghiệm sau huấn luyện: các token có ngữ cảnh tương tự tạo ra embedding với độ tương đồng cosine cao. ANDREA-120M đặt parakeet & monkey gần nhau (cùng thuộc sinh học, cùng loài, cùng danh mục còn tồn tại hoặc đã tuyệt chủng). Nó đặt Fourier & transform gần nhau (ngữ cảnh xử lý tín hiệu). Nó đặt parakeet & Fourier xa nhau (trực giao giữa các miền).


Tại sao R^768 Không Phải R^384

ANDREA-12M sử dụng d_model = 384. ANDREA-120M tăng gấp đôi lên 768. Việc tăng gấp đôi này quan trọng: không gian 384 chiều có ít 'góc' khả dụng hơn, và việc phân biệt giữa các miền bị ảnh hưởng. Tăng gấp đôi dung lượng giúp mô hình có không gian để phân giải bank (sông) và bank (tài chính) thành các vùng khác nhau trong không gian embedding mà không để một cái sụp đổ vào cái kia.


Cập nhật Embedding dưới dạng Dịch chuyển Vector

Mỗi bước gradient thêm delta_v vào v_token. Về mặt hình học: các dịch chuyển nhỏ trong R^768 đẩy vị trí của mỗi token về các vùng lân cận giúp giảm loss. Sau 200K bước, mọi token di chuyển từ vị trí khởi tạo ngẫu nhiên đến vị trí đã học.

Tính Khoảng cách

Ba embedding đã huấn luyện (đơn giản hóa về R^3 để thực hiện phép toán):


- v(parakeet) = (1.0, 0.5, 0.0)

- v(monkey) = (1.2, 0.3, 0.1)

- v(Fourier) = (0.0, 0.0, 1.5)

(a) Tính khoảng cách Euclid ||v(parakeet) - v(monkey)||. (b) Tính ||v(parakeet) - v(Fourier)||. (c) Nêu hai token nào nằm gần nhau và đưa ra lý do hình học dựa trên các giá trị thực tế.

Phép Chiếu lên Không gian con Query

Attention Tính Gì

Đối với một token tại vị trí t, attention tính:


softmax(Q K^T / sqrt(d_k)) V


Trong đó Q là truy vấn (câu hỏi của token hiện tại), K là các khóa (định danh của mọi token trước đó), V là các giá trị (nội dung của mọi token trước đó). Đầu ra là sự kết hợp có trọng số của V, với trọng số dựa trên mức độ liên quan giữa truy vấn và từng khóa.


Đọc hình học

Hãy xem K như một danh sách các vector trong R^d_k. Mỗi hàng là khóa của một token trước đó. Q là một vector trong R^d_k: câu hỏi của token hiện tại.


Q K^T chiếu mọi key lên Q. Tích vô hướng q . k_i đo lường mức độ k_i nằm dọc theo hướng của q. Chiếu dài = key liên quan mạnh đến query. Chiếu ngắn = key ít liên quan.


softmax chuẩn hóa các phép chiếu thành các trọng số có tổng bằng 1. Tổng có trọng số của V là một vector duy nhất: sự pha trộn của nội dung quá khứ, được đánh trọng số theo mức độ liên quan đến query hiện tại.


Multi-Head Attention as Multi-Subspace Projection

ANDREA-120M sử dụng 12 attention heads. d_model = 768; d_k = 768 / 12 = 64. Mỗi head chiếu vào một không gian con 64 chiều khác nhau của R^768. Mười hai head cung cấp mười hai góc nhìn độc lập về cùng một chuỗi: một head có thể theo dõi vai trò ngữ pháp, head khác theo dõi độ tương đồng ngữ nghĩa, head khác theo dõi tham chiếu khoảng cách xa.


Về mặt hình học: mỗi head xác định một không gian con 64 chiều có hướng (một 'cửa sổ') mà qua đó nó quan sát quá khứ.


Mặt nạ Nhân quả (Causal Mask)

Các mô hình chỉ có bộ giải mã thêm một mặt nạ nhân quả: mọi phần tử Q K^T nằm phía trên đường chéo chính sẽ được đặt thành -infinity trước khi áp dụng softmax. Về mặt hình học: phép chiếu lên bất kỳ token tương lai nào đều nhận trọng số bằng 0. Token t chỉ có thể nhìn thấy các token từ 0 đến t.


Lý do quan trọng: huấn luyện và suy luận trở nên đối xứng. Cùng một lượt lan truyền xuôi, cùng các phép chiếu đã được che mặt nạ, không cần logic sinh đặc biệt.


Tỷ lệ sqrt(d_k)

Nếu không có tỷ lệ, tích vô hướng sẽ tăng theo d_k. Các tích vô hướng lớn đẩy softmax vào vùng one-hot (một trọng số gần 1, các trọng số còn lại gần 0). Chia cho sqrt(d_k) giữ các phép chiếu ở thang phương sai đơn vị, duy trì độ sắc nét của softmax trên phạm vi rộng các giá trị d_k.


Hình học: sqrt(d_k) chuẩn hóa độ dài các phép chiếu để softmax nhìn thấy các độ lớn so sánh được bất kể chiều không gian con.

Đọc một Phép Chiếu

Ba khóa & một truy vấn trong R^4 (đơn giản hóa cho tính toán):


- q = (1, 0, 1, 0)

- k_1 = (1, 0, 0, 0) [token quá khứ 1]

- k_2 = (0, 0, 1, 0) [token quá khứ 2]

- k_3 = (0, 1, 0, 1) [past token 3]


d_k = 4, do đó sqrt(d_k) = 2.

(a) Tính q . k_i cho i = 1, 2, 3 (tích vô hướng). (b) Chia mỗi giá trị cho sqrt(d_k) = 2 để thu được điểm đã được scale. (c) Không cần tính softmax một cách rõ ràng, hãy cho biết key nào sẽ nhận trọng số attention LỚN NHẤT và đưa ra lý do hình học.

Gradient Descent as Path on Terrain

Một Bề Mặt trong 120M+1 Chiều

Mỗi cấu hình trọng số của ANDREA-120M là một điểm trong R^120,000,000. Hàm mất mát L(w) ánh xạ mỗi điểm sang một số thực: giá trị mất mát huấn luyện tại cấu hình này. Cùng nhau, các giá trị mất mát vẽ nên một bề mặt (120M+1)-chiều phía trên không gian tham số.


Về mặt hình học, không thể trực quan hóa trực tiếp. Về mặt khái niệm: một địa hình. Núi (mất mát cao), thung lũng (mất mát thấp), điểm yên ngựa, cao nguyên, dãy núi, lưu vực.


Gradient như Độ Dốc Cục Bộ

grad L(w) là một vector trong R^120M chỉ theo hướng tăng dốc nhất của L. Phủ định của nó: -grad L(w) chỉ theo hướng xuống dốc mạnh nhất.


Một bước AdamW đẩy w theo hướng ngược gradient (với tỷ lệ thích ứng từ m & v). Về mặt hình học: một bước nhỏ dọc theo bề mặt, đi xuống dốc, với kích thước bước được kiểm soát bởi lr.


Bồn xấu của v1

v1 thực hiện bước đầu tiên với LR = đỉnh (0.0003) trên trọng số vừa khởi tạo ngẫu nhiên. Hình dung hình học: w_0 nằm ở vùng có độ cong rất mạnh (khởi tạo ngẫu nhiên có độ cong cao theo nhiều hướng), và bước LR đỉnh đưa nó vào bồn sai. Các bước sau không thể thoát ra. Mô hình bị kẹt và chỉ sinh ra 'region region region' vì đó là bồn có loss thấp nhất mà mô hình có thể tìm được từ vị trí nó đã rơi vào.


Đường warmup của v2

v2 thực hiện 2000 bước nhỏ với LR tăng dần từ 0 đến đỉnh. Hình dung hình học: w_0 trước tiên di chuyển nhẹ nhàng dọc theo các hướng mượt (nơi độ cong thấp). Đến bước 2000, w đã di chuyển vào vùng dễ điều hướng hơn; LR đỉnh lúc này có thể đẩy nó về bồn tốt hơn mà không vượt quá.


Warmup là một giao thức khởi tạo có nhận thức hình học: để mô hình tìm một vùng lân cận an toàn trước khi đẩy mạnh.


Bồn rộng so với Bồn hẹp

Tại bước 112K, ANDREA-120M đang nằm trong một bồn. Câu hỏi: bồn này rộng đến mức nào?


Bồn rộng = nhiều cấu hình trọng số lân cận cũng đạt được loss huấn luyện thấp. Khả năng tổng quát hóa thường tốt (độ rộng của bồn dự đoán hiệu suất kiểm tra; xem bài học PAC-Bayes, Chương 3).


Basin hẹp = chỉ một tập hợp trọng số mỏng đạt được loss thấp. Khả năng khái quát thường bị ảnh hưởng.


v3 polish tại bước 112,619 đã đẩy mô hình dọc theo bề mặt (không reset) đến một basin rộng hơn thông qua curriculum perturbation: thay đổi hàm loss (bandit khác, mix huấn luyện khác), để SGD tìm vùng phẳng gần đó dưới chính sách mới.


Vách núi Zombie

Loss bất thường 0.13 tại bước 112,080 là một CLIFF: một vùng hẹp, sắc nhọn nơi một mẫu đầu vào cụ thể (chuỗi con repo-docs đã ghi nhớ) đạt loss gần như bằng 0. Mô hình rơi khỏi basin rộng hơn vào một khe hẹp. Việc hard-exclusion repo-docs của polish-pivot đã lấp đầy khe đó nên SGD không thể tìm thấy nữa.

Đọc Địa Hình

Ba cấu hình trọng số sau một polish pivot. (a) Cấu hình A: training loss 2.0, & 95% các nhiễu loạn nhỏ trong khoảng cách 0.1 vẫn tạo ra loss < 2.2. (b) Cấu hình B: training loss 2.0, & 5% các nhiễu loạn nhỏ trong khoảng cách 0.1 vẫn tạo ra loss < 2.2. (c) Cấu hình C: training loss 0.13 trên một đầu vào cụ thể nhưng loss 8.0 trung bình trên các đầu vào khác. Phân loại từng cái là WIDE BASIN, NARROW BASIN, hoặc CLIFF, & đưa ra một câu giải thích hình học.

Curriculum Mix như một bước đi trên Simplex rời rạc

Simplex là gì

Một simplex n chiều (cụ thể là simplex chuẩn (n-1)-chiều) là tập hợp các n-tuple (w_1, w_2, ..., w_n) với mỗi w_i >= 0 và sum(w_i) = 1.


Với n = 2: một đoạn thẳng từ (1, 0) đến (0, 1). Với n = 3: một tam giác có các đỉnh (1, 0, 0), (0, 1, 0), (0, 0, 1). Với n = 16 (danh sách nguồn đầy đủ của ANDREA): một đơn hình 15 chiều nằm trong R^16.


Trọng số Bandit dưới dạng Tọa độ Simplex

Bandit của ANDREA tạo ra một vector trọng số w trên các nguồn dữ liệu ở mỗi giai đoạn. Mỗi thành phần w_i là xác suất lấy mẫu nguồn i. Các xác suất không âm và tổng bằng 1: mọi vector trọng số nằm trên simplex.


Đỉnh = chiến lược thuần (chỉ lấy mẫu một nguồn). Nội thất = chiến lược hỗn hợp (lấy mẫu nhiều nguồn, mỗi nguồn có xác suất dương). Cạnh = hỗn hợp của đúng hai nguồn.


Ngưỡng nguồn dưới dạng Vùng bị giới hạn

ANDREA áp đặt trọng số tối thiểu: hermes3-general ở ngưỡng sàn 0.7 (sau khi đánh bóng). Điều này tạo ra một vùng con của simplex: chỉ các vector trọng số có w_hermes3-general >= 0.7 là có thể đạt được. [BLOCK_TYPE SECTION/STEP]

[BLOCK_TYPE SECTION/STEP]

Về mặt hình học: ngưỡng sàn cắt simplex bằng một siêu phẳng. Vùng có thể đạt được là phần của simplex nằm ở phía đúng của mọi siêu phẳng ngưỡng sàn. [BLOCK_TYPE SECTION/STEP]

[BLOCK_TYPE SECTION/STEP]

Giới hạn trên như một Ràng buộc Khác
[BLOCK_TYPE SECTION/STEP]

ANDREA cũng áp đặt trọng số tối đa: dictionary ở giới hạn trên 0.25 (sau khi đánh bóng). Mỗi giới hạn trên là một siêu phẳng khác, và vùng có thể đạt được phải nằm ở phía đúng của mọi siêu phẳng giới hạn trên. [BLOCK_TYPE SECTION/STEP]

[BLOCK_TYPE SECTION/STEP]

Loại trừ hoàn toàn một nguồn (giới hạn trên = 0.0) là giới hạn trên mạnh nhất: tọa độ bị ghim về 0, làm giảm chiều của simplex hiệu quả đi một chiều.


Chuyển Pha Dạng Đi Bộ Trên Simplex

Mỗi chuyển pha (mỗi 7-42 bước) tạo ra một vector trọng số mới. Mỗi vector mới là một điểm trên simplex. Sau hơn 200K bước, bandit vẽ một đường dài xuyên qua vùng có thể tiếp cận của simplex.


Các pha ngẫu nhiên = dịch chuyển đến một điểm ngẫu nhiên đồng đều bên trong vùng có thể tiếp cận.

Các pha do bandit điều khiển = bước về phía đỉnh UCB-tốt nhất phù hợp với sàn và trần.

Polish pivot = vẽ lại vùng có thể tiếp cận (sàn mới, trần mới, một số nguồn bị loại trừ), và đường đi tiếp tục từ điểm khởi đầu mới.


Tại Sao Các Điểm Đỉnh Lại Nguy Hiểm

Các pha nguồn thuần (một w_i = 1, các w_i còn lại = 0) nằm tại các đỉnh của hình đơn. Độ đa dạng bằng 0. Mô hình chỉ được huấn luyện trên một phân phối duy nhất. Sự sụp đổ của v1 một phần do bandit cắm trại gần đỉnh repo-docs; các mẫu chỉ tái tạo phân phối của nguồn đó.


Các ngưỡng sàn ngăn chặn việc cắm trại tại đỉnh: một ngưỡng sàn 0.7 có nghĩa là “không bao giờ để trọng số của bất kỳ nguồn nào giảm xuống dưới 0.7” (hoặc bất kỳ giá trị nào được đặt cho các nguồn ưu tiên).

Đi Bộ Trong Vùng Có Thể Đạt Tới

Ba nguồn: hermes3-general (H), gutenberg (G), dictionary (D). Ràng buộc: H floor = 0.5, D cap = 0.25. (Ngầm định: tất cả trọng số ≥ 0, tổng bằng 1, không có ràng buộc nào khác.)

(a) Bandit có thể chọn (H=1.0, G=0, D=0) không? Tại sao hoặc tại sao không? (b) Có thể chọn (H=0.5, G=0.5, D=0) không? (c) Có thể chọn (H=0.5, G=0.25, D=0.25) không? (d) Mô tả hình học vùng có thể đạt tới trong hình đơn 3 nguồn này.

Hạn chế Số Chiều trong 20K Bước Đầu

Những gì Khởi động Chương trình học của v2 đã làm

v2 đặt curriculum_warmup_sources thành bảy nguồn: hermes3-general, hermes3-creative, hermes3-roleplay, chat, smoltalk, oasst, gutenberg. Trong 20K bước đầu tiên, CHỈ bảy nguồn này đóng góp. Sau bước 20K, toàn bộ luồng dữ liệu 16 nguồn được kích hoạt.


Đọc Hình học

Toàn bộ 16-nguồn simplex nằm trong R^16. Việc giới hạn chỉ còn 7 nguồn sẽ làm 9 trong số 16 tọa độ bị thu gọn về 0. Quá trình đi bộ của bandit diễn ra trong một 6-chiều sub-simplex (ít hơn số nguồn một chiều do ràng buộc tổng bằng 1).


Về mặt hình học: một SUBMANIFOLD của simplex đầy đủ. Có số chiều thấp hơn, mượt mà hơn, dễ điều hướng hơn.


Tại sao điều này giúp giai đoạn huấn luyện ban đầu

Ở giai đoạn đầu huấn luyện, mô hình chưa học được ngôn ngữ mạch lạc. Các nguồn dữ liệu đa dạng sẽ gây nhầm lẫn: mỗi nguồn có phong cách riêng, phân bố từ vựng riêng, và các mẫu riêng. Việc trộn ngẫu nhiên 16 nguồn ngay từ khởi tạo ngẫu nhiên tạo ra một phân bố mục tiêu quá rộng mà mô hình không thể khớp được.


Việc giới hạn chỉ còn 7 nguồn hội thoại/văn xuôi tạo ra một mục tiêu đồng nhất hơn. Mô hình học được biểu diễn ổn định trước, sau đó mới mở rộng.


Hành Trình Hình Học Qua Quá Trình Huấn Luyện

1. Bước 0 đến 20K (warmup). Đường đi nằm trên 6-D sub-simplex. Các mẫu ngôn ngữ ổn định bắt đầu xuất hiện trong mô hình.

2. Bước 20K đến 112K (full firehose). Đường đi mở rộng đến 15-D full simplex. Độ rộng về lĩnh vực bắt đầu xuất hiện.

3. Bước 112K trở đi (polish). Đường đi bị giới hạn lại: repo-docs & repo-docstrings bị loại trừ, các ngưỡng hội thoại được nâng cao. Một đa giác nhỏ hơn trong full simplex; chất lượng hội thoại được củng cố.


Tại Sao Polish Đặt curriculum_warmup_steps = 0

Polish bắt đầu từ bước 112K. Mô hình đã có khả năng nói ngôn ngữ mạch lạc. Giới hạn vào sub-simplex lúc này sẽ làm mất độ rộng mà không mang lại lợi ích nào (lợi ích của warmup chỉ dành cho các mô hình khởi tạo mới). Đặt warmup_steps = 0 nghĩa là: giữ nguyên trên full simplex, nhưng áp dụng các giới hạn và ngưỡng mới.


Ba Hình Học, Một Lần Huấn Luyện

v2 warmup: sub-simplex chiều thấp.

v2 firehose: simplex đầy đủ 15-D.

v3 polish: simplex đầy đủ với đa giác nhỏ hơn (nhiều ràng buộc hơn).


Cùng một lần chạy 200K bước, ba chế độ hình học khác nhau. Mỗi chế độ được điều chỉnh cho một giai đoạn trưởng thành khác nhau của mô hình.

Đọc Submanifold

(a) v2 warmup sử dụng 7 nguồn từ bộ đầy đủ 16 nguồn. Kích thước của warmup sub-simplex là bao nhiêu? Tính toán & nêu rõ. (b) ANDREA-120M v3 polish hard-excludes repo-docs & repo-docstrings (cap 0.0) nhưng vẫn cho phép 14 nguồn còn lại. Kích thước của polish sub-simplex là bao nhiêu? (c) Về mặt hình học, việc đặt curriculum_warmup_steps = 0 trong cấu hình polish có ý nghĩa gì?