Hiển thị HN: Unigram: mã hóa byte dưới dạng từ có giá một mã thông báo LLM
URL bài viết: https://github.com/bleugreen/unigram URL nhận xét: https://news.ycombinator.com/item?id=49349738 Điểm: 2 # Bình luận: 0
unigram
Một codec song ngữ giữa byte và từ có giá chính xác bằng một mã thông báo LLM.
hàng hóa thêm unigram · thùng.io ·
docs.rs · CHANGELOG
a14ed61a -> xây dựng chia sẻ email mật khẩu
8623a771b764ce50bb85371ff65aebe9 -> liên kết thay đổi điểm ngẫu nhiên cao được tìm thấy
mùa sự kiện khu vực ánh sáng const trường hợp
hỗ trợ bảng trường người dùng
Mã định danh trở thành thứ bạn có thể đọc được. Nói to lên, mang nó qua phòng
hoặc giữa hai cửa sổ, nhìn thoáng qua có thể phân biệt nó với hàng xóm, nhận ra nó
một giờ sau - những điều bình thường mà một cái tên mang lại. Id dành cuộc sống của họ trong
lời nhắc, nhật ký và thông báo lỗi đang được xem xét; điều này làm cho nó miễn phí.
Một từ là một byte và một mã thông báo, do đó, một giá trị có giá chính xác bằng số lượng mã thông báo mà nó có
mang byte - phẳng, cho mọi giá trị, với khoảng cách giữa các từ không mất phí.
Bốn từ trên mang 32 bit trong 4 mã thông báo; mười sáu mang 128 trong 16.
Sử dụng nó
sử dụng unigram::{UnigramId, CheckedUnigramId};
hãy để id: UnigramId<4> = UnigramId::try_random()?; // 32 bit mới, 4 mã thông báo
println!("{id}"); // "xây dựng chia sẻ email mật khẩu"
let return = UnigramId::<4>::parse(&text)?; // chuẩn: chính xác
hãy cứu hộ = UnigramId::<4>::recover(&text)?; // bao dung: tha thứ cho một chuyến khứ hồi
// Thêm một từ của CRC-8, khi một giá trị bị đột biến không được coi là giá trị hợp lệ.
hãy kiểm tra: CheckedUnigramId<4> = CheckedUnigramId::try_random()?;
Các byte là giá trị; các từ là cách nó được hiển thị và phân tích cú pháp. Giữ nó đó
cách có nghĩa là độ dài là một phần của loại, đẳng thức là đẳng thức byte và không có
câu hỏi về định dạng của một giá trị nhất định - câu hỏi mà API hình chuỗi không thể
trả lời và phải đoán.
Các chức năng miễn phí (mã hóa, giải mã, giải mã_recovered, try_mint) đều có sẵn cho
tải trọng có độ dài thay đổi.
Hai trình phân tích cú pháp
phân tích cú pháp là chuẩn: các từ trong bảng chữ cái viết thường, dấu cách đơn, không có gì khác. Một người chấp nhận
đánh vần theo mỗi giá trị, đó là những gì thuộc về một giá trị sắp được tin cậy.
recovery bỏ qua những gì một chuyến đi khứ hồi thông qua một mô hình thực hiện - viết hoa, phân cách, dòng
gói. Nó đọc toàn bộ dữ liệu đầu vào, vì vậy hãy tách biệt ứng viên trước.
Cả hai đều từ chối một từ chưa biết và đặt tên cho nó.
Chi phí bao nhiêu
Một từ là một byte và một mã thông báo, do đó, giá trị N-byte có giá chính xác là N mã thông báo, giống nhau
cho mọi giá trị. Mã thông báo trung bình dưới thời Claude, với 200 tải trọng xác định tệ nhất
trong ngoặc đơn:
mã hóa
4 byte
8 byte
16 byte
32 byte
unigram
4.0 (4)
8.0 (8)
16 (16)
32 (32)
thập lục phân
6.0 (9)
11.3 (15)
21.7 (27)
42,6 (52)
cơ sở64url
6.3 (9)
10.8 (14)
21.3 (25)
41.2 (48)
cơ sở58
6.6 (9)
10.9 (13)
21.2 (26)
42.0 (47)
Con số trong ngoặc cũng quan trọng như giá trị trung bình. Sự biến động chi phí của mọi mã hóa khác
với giá trị, do đó ngân sách được xây dựng trên một giá trị phải giả định trường hợp xấu nhất của nó; cái này được biết đến
trước khi giá trị được đúc.
Hex thua ở mọi nơi, ở mọi quy mô, trong mọi gia đình. Các từ vựng GPT đã được ghi nhớ
các đoạn base64, làm thay đổi thứ hạng trên 4 byte - dưới o200k, base64url
trung bình 29,5 mã thông báo cho 32 byte so với 32 phẳng, trong khi unigram vẫn thắng ở mức 4
byte (4.0 so với 4.5). Độ rộng nonce và id tương quan là những gì nó được xây dựng cho;
bản tóm tắt 32 byte thì phù hợp hơn, ở mức 224 ký tự và không còn lề mã thông báo trong GPT.
Mỗi bối cảnh
Một mã thông báo trên mỗi byte giữ tiền tố dấu cách và trống, do đó, một giá trị có giá chính xác là N
phần đầu của chuỗi, sau dấu cách, trong JSON và ở giữa câu. Phụ phí duy nhất là
dấu câu ngay trước nó. Được đo cho giá trị 4 byte so với giá trị lý tưởng là 4,
quét tất cả 256 mục thông qua các vị trí mở và đóng, được giữ tệ nhất:
bối cảnh
GPT-4o
GPT-3.5/4
GPT-3
GPT-2
lạc đà không bướu
Claude
bắt đầu chuỗi
+0
+0
+0
+0
+0
+0
trong văn xuôi, X.
+0
+0
+0
+0
+0
+0
JSON "id:"X"
−1
+0
+0
+0
+0
+1
sau một dòng mới
+0
+0
+0
+0
+0
+1
sau id:
−1
−1
−1
−1
−1
+0
đánh dấu `X`
+1
+1
+1
+1
+1
+0
sau (
+1
+1
+1
+1
+1
+0
Vì vậy: một mã thông báo cho mỗi byte, cộng với tối đa một mã thông báo cho dấu câu ngay trước nó - a
không đổi, không bao giờ mở rộng theo tải trọng và phủ định khi ngữ cảnh kết thúc bằng
không gian giá trị hấp thụ.
Đó là thuộc tính của bảng và nó không miễn phí. 0.2.0 đã vận chuyển 22 mục nhập giá
hai hoặc ba mã thông báo trống, do đó, việc mở giá trị với hội đồng có giá N+2 khi bắt đầu
chuỗi - và trình xác minh của nó đã kiểm tra một tải trọng có từ mở đầu có vẻ rẻ tiền.
Cả hai đều được cố định. Việc quét là lý do tại sao yêu cầu bồi thường không cần danh sách ngoại lệ.
Tại sao không phải là một danh sách từ hiện có?
BIP39, Diceware, danh sách từ PGP và what3words đều có trước bản đồ này và tất cả bản đồ
dữ liệu thành lời nói. Không có gì được chọn cho mã thông báo và nó hiển thị. BIP39 là gần nhất
so sánh - 2048 từ, mỗi từ sẽ có 11 bit nếu chúng đều là mã thông báo đơn:
danh sách từ
lời nói
mã thông báo đơn cả hai cách, tất cả các gia đình
bảng chữ cái có thể sử dụng
BIP39
2048
349
256 → 8 bit/mã thông báo
unigram
256
256
256 → 8 bit/mã thông báo
Chỉ 349 trong số 2048 của BIP39 sống sót sau bộ lọc và Claude là ràng buộc ràng buộc tại
366. Làm tròn 349 xuống lũy thừa hai và mã hóa bắt nguồn từ BIP39 sẽ rơi vào chính xác
256 mục và chính xác 8 bit cho mỗi mã thông báo — cùng mật độ, từ một danh sách cũng có
không có đảm bảo về chi phí trần hoặc bối cảnh xung quanh.
BIP39 tối ưu hóa cho một mục đích khác và thực hiện tốt điều đó: bốn ký tự duy nhất
tiền tố và khoảng cách phiên mã của con người, đối với các cụm từ gốc được đọc ra giấy. Đó là
đáng có. Đó không phải là điều khiến một từ có giá một đồng xu.
Sự tham gia là một không gian
Các từ vựng của trình mã thông báo giữ các mục nhập từ chuẩn của chúng có tiền tố dấu cách, do đó khoảng trắng
giữa hai từ được hấp thụ vào từ theo sau nó và không tốn kém gì. Không
dải phân cách khác là miễn phí. Được đo trên cả năm họ, giá trị 8 byte:
dải phân cách
GPT-4o
GPT-3.5/4
GPT-3
GPT-2
lạc đà không bướu
Claude
không gian
8
8
8
8
8
8
_ .
8
8
15
15
15
15
-
11
9
15
15
15
15
, \n
13–15
12–15
15
15
15
15
Việc tham gia sẽ có giá gần bằng tải trọng. Các giá trị được mã hóa di chuyển bên trong dấu ngoặc kép
các chuỗi trong thực tế, trong đó các không gian nhúng là miễn phí - và recovery chấp nhận mọi chuỗi
của những dấu phân cách đó, do đó, một giá trị được nối lại theo cách khác sẽ không bị mất.
bảng chữ cái
256 mục của l
Nguồn tin: Hacker News LLM — Tác giả: bleugreenlab. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.