Bỏ qua tới nội dung chính
Quay lại tin tức

Hiển thị HN: Unigram: mã hóa byte dưới dạng từ có giá một mã thông báo LLM

Hacker News LLM· bleugreenlab· 18/8/2026general

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.