1 điểm bởi GN⁺ 2023-07-18 | 1 bình luận | Chia sẻ qua WhatsApp
  • Hiệu năng của bộ phân loại kNN dựa trên gzip được chú ý trong bài báo “Low-Resource” Text Classification của Jiang et al. có khả năng không được tính theo độ chính xác kNN thông thường, mà theo cách gần với top-2 khi k=2
  • calc_acc trong experiments.py của kho lưu trữ chính thức xử lý là đúng nếu trong các ứng viên hòa điểm có dù chỉ một nhãn đúng, nên chỉ cần một trong hai mẫu huấn luyện gần nhất đúng là được tính là thành công
  • Khi tính lại cột “Full” của 4 bộ dữ liệu đầu tiên, nhiều con số thay đổi; với KirundiNews, phương pháp gzip tụt từ hiệu năng cao nhất xuống thấp nhất
  • Kết quả tái triển khai riêng cho thấy đầu ra của mã chính thức luôn giống top2; nếu giải quyết hòa điểm ở k=2 bằng cách ưu tiên mẫu gần hơn, kết quả về thực chất giống k=1
  • Tùy chọn rand==True dùng random.choice để phá hòa, nhưng có vẻ không được dùng trong kết quả của bài báo; SogouNews vẫn chưa được chạy do kích thước dữ liệu

Vấn đề tính độ chính xác lộ ra khi tái hiện kết quả bài báo

  • Đối tượng là bài báo “Low-Resource” Text Classification: A Parameter-Free Classification Method with Compressors của Jiang et al.; bảng cho thấy phương pháp dựa trên gzip đạt hiệu năng cao hơn nhiều phương pháp dựa trên mạng nơ-ron đã được chú ý trên Twitter
  • Trong quá trình tái hiện mã nguồn chính thức, đã xác định một điểm mà cách tính độ chính xác của bộ phân loại kNN hoạt động khác với cách thông thường
  • Đặc biệt với k=2, thay vì độ chính xác kNN(k=2) chuẩn, nó gần với độ chính xác top-2, khiến hiệu năng của phương pháp trong bài báo có thể bị ước tính cao hơn

Vì sao hòa điểm là vấn đề trong kNN k=2

  • Phương pháp của bài báo dùng bộ phân loại kNN, và theo Appendix C, k=2 được dùng trong mọi thí nghiệm
  • Phân loại k=2 tìm 2 mẫu huấn luyện gần nhất cho mỗi mẫu kiểm thử, nên trạng thái nhãn khá đơn giản
    • Nếu hai nhãn giống nhau, nhãn đó được dự đoán; kết quả rốt cuộc giống câu trả lời của k=1
    • Nếu hai nhãn khác nhau, sẽ có hòa 1:1, nên cần một quy tắc phá hòa riêng, chẳng hạn ưu tiên mẫu gần hơn
  • Nếu phá hòa ngẫu nhiên, trong một nửa các trường hợp hòa 1:1 sẽ chọn mẫu xa hơn, nên khó tốt hơn k=1

Cách calc_acc xử lý hòa điểm

  • Điểm có vấn đề là phương thức calc_acc trong experiments.py
  • Luồng mã gom nhãn và số đếm của các mẫu top-k vào sorted_pred_lab, nhóm theo từng nhãn, rồi sắp xếp theo số đếm
  • Khi duyệt các nhãn hòa với số đếm cao nhất, nếu bất kỳ nhãn nào trong đó trùng với nhãn kiểm thử thì if_right = 1 được đặt, và trường hợp đó được xử lý là đúng
  • Với k=2, nếu hai nhãn khác nhau mỗi nhãn nhận 1 phiếu, về cơ bản chỉ kiểm tra liệu một trong hai ứng viên có phải là đáp án đúng hay không
  • Kết quả này tương tự độ chính xác top-k trong ImageNet, nhưng khác ở chỗ tại đây nó dựa trên k mẫu huấn luyện chứ không phải k nhãn được chọn
  • Phương thức này nhận k tùy ý, nhưng không tính top-k cho mọi k; với k=2 xuất hiện tình huống đặc biệt là tất cả ứng viên đều được nhóm với số đếm tối đa bằng 1
  • calc_acc có cờ rand, và khi rand==True thì dùng random.choice để phá hòa, nhưng có vẻ không được dùng trong kết quả bài báo

Thay đổi về độ chính xác sau khi tính lại

  • Với cột “Full” của 4 bộ dữ liệu đầu tiên, các con số trong bài báo và số knn2d đã sửa như sau
Phân loại KinyarwandaNews KirundiNews DengueFilipino SwahiliNews
Bài báo 0.891 0.905 0.998 0.927
knn2d đã sửa 0.835 0.858 0.999 0.850
  • Bộ dữ liệu thứ năm, SogouNews, chưa được chạy vì kích thước lớn
  • Khác biệt này làm thay đổi đáng kể cách diễn giải thí nghiệm; với KirundiNews, phương pháp gzip tụt từ hiệu năng cao nhất xuống thấp nhất

Kết quả xác nhận bằng triển khai riêng

  • Triển khai riêng dùng hai chiến lược phá hòa
    • r: chọn ngẫu nhiên
    • d: giảm k cho đến khi hết hòa
  • Kết quả tái triển khai như sau
Cách kinnews kirnews filipino swahili Mô tả
table5 0.891 0.905 0.998 0.927 Con số trong bảng của bài báo
code 0.891 0.906 1.000 0.927 Dùng kho lưu trữ npc_gzip
top2 0.891 0.906 1.000 0.927 top-2
knn1r 0.835 0.858 0.999 0.850 kNN, k=1, hòa điểm ngẫu nhiên
knn1d 0.835 0.858 0.999 0.850 kNN, k=1, giảm k khi hòa
knn2r 0.828 0.807 0.851 0.842 kNN, k=2, hòa điểm ngẫu nhiên
knn3r 0.838 0.791 0.851 0.881 kNN, k=3, hòa điểm ngẫu nhiên
knn2d 0.835 0.858 0.999 0.850 kNN, k=2, giảm k khi hòa
knn3d 0.843 0.794 0.904 0.883 kNN, k=3, giảm k khi hòa
  • Kết quả kiểm tra chéo cho thấy mã chính thức đã tính gì
    • table5 gần với code trong phạm vi 0.001 hoặc 0.002, nên có thể tái hiện các con số của bài báo
    • code luôn giống top2, tức kết quả mã chính thức trùng với kết quả top-2 của triển khai riêng
    • knn1r == knn1d, và với k=1 không phát sinh hòa điểm
    • knn2d == knn1d, và nếu phá hòa ở k=2 bằng mẫu đầu tiên thì kết quả trở nên giống k=1
    • knn2r < knn2d, vì trong hòa 1:1 ở k=2, chọn ngẫu nhiên sẽ chọn mẫu xa hơn trong một nửa trường hợp

Những điểm còn cần xác nhận

  • Bản tái triển khai mới với nhiều giá trị k hơn nằm tại gzip-knn
  • Lý do DengueFilipino đạt mức rất cao như 1.0 trong một số trường hợp sẽ được bàn trong bài tiếp theo, Part 2
  • Lý do table5code hơi khác nhau trong hai trường hợp vẫn là một vấn đề cần xác nhận

1 bình luận

 
GN⁺ 2023-07-18
Ý kiến trên Hacker News
  • Có lẽ sẽ khiến các tác giả thất vọng, nhưng tôi nghĩ đây là một phản biện rất tốt
    Trong machine learning, kiểu sai lầm này thực sự rất dễ mắc phải, và điều tệ hơn là các lỗi phương pháp luận tinh vi thường không bộc lộ thành thất bại chí mạng như ở nhiều lĩnh vực kỹ thuật hay khoa học khác, mà chỉ xuất hiện dưới dạng thay đổi hiệu năng rất nhỏ
    Ngay cả khi dữ liệu xấu lẫn vào tập huấn luyện hoặc thông tin về giá trị mục tiêu bị rò rỉ, hệ thống vẫn cứ chạy tạm được, chỉ là kết quả bị nhiễm bẩn đôi chút
    Việc áp dụng các thuật toán nén hiện có vào machine learning, trái với kỳ vọng, cho cảm giác như một bữa trưa miễn phí quá mức. Nếu thuật toán nén thực sự có phép màu đặc biệt nào đó, thì người ta đã dùng thuật toán nén làm encoder thay vì dùng transformer như bộ nén rồi

    • Điều này rất đáng ghi nhớ. Sai lầm thì dễ mắc nên cũng rất phổ biến, khoa học là một quá trình nhiều nhiễu nhưng trong đó vẫn có tín hiệu, và thứ đang diễn ra ở đây chính là bản chất của phản biện đồng cấp
      Vì vậy tôi thường lập luận rằng xuất bản công khai là một hình thức phản biện đồng cấp tốt hơn so với hội nghị hay tạp chí. Phản biện đồng cấp là đồng nghiệp xem xét công trình của tôi, chứ cốt lõi không phải là những tiêu chí tùy tiện và đầy nhiễu mà hội nghị hay tạp chí đưa ra
      Trong phần lớn lịch sử, mọi thứ đã vận hành như thế, và phản biện đồng cấp theo nghĩa hiện đại là một khái niệm khá mới, chỉ xuất hiện từ giữa thập niên 1970. Các tạp chí trước đây gần với vai trò phổ biến nghiên cứu hơn, tương tự như arxiv ngày nay
      https://mitcommlab.mit.edu/broad/commkit/peer-review-a-histo...
      Một lý do khác để ủng hộ việc loại bỏ vai trò của hội nghị và tạp chí là như vậy sẽ chủ động khuyến khích các công trình quan trọng như bài báo tái lập, bài báo về thất bại. Không cần bị trói buộc bởi tiêu chí “tính mới”, và thật ra hầu như mọi nghiên cứu đều mang tính gia tăng
      “Xuất bản” là truyền đạt công trình của mình cho đồng nghiệp, để họ kiểm chứng hoặc bác bỏ kết quả
      Tuy vậy, điểm tốt của hội nghị là giúp tập hợp con người và thúc đẩy hợp tác. Ở đây tôi đang phê phán việc dùng hội nghị và tạp chí như công cụ để phán định tính hợp lệ của nghiên cứu
      Nếu hệ thống hội nghị chỉ đơn thuần là nơi mời gọi nghiên cứu và cộng đồng thì hoàn toàn không có vấn đề gì. Về lý thuyết, tạp chí cũng có điểm hay là có đối thoại giữa tác giả và phản biện, nhưng theo tôi điều này cũng có thể làm dễ dàng bằng arxiv + github hoặc OpenReview
    • Thực ra cách đó đã được dùng rồi. Chỉ cần tìm nguyên lý độ dài mô tả tối thiểu và các bộ phân loại dựa trên entropy
      Hiệu năng không cao nhưng chắc chắn là có tồn tại, và cũng cực kỳ dễ triển khai. Văn bản tương tự nhau có xu hướng nén tốt hơn, nên tôi từng thấy gzip được dùng để phát hiện đạo văn
      Cũng có thể dùng tỷ lệ nén làm trọng số cho mô hình lò xo để trực quan hóa, và áp dụng cho cả metadata của giao tiếp mạng
    • Trong nhiều thí nghiệm thì điều này đúng. Mong muốn đạt được kết quả mình muốn rất dễ lấn át nhu cầu phải xác minh thứ mình thực sự thu được
      Nhất là khi kết quả đó xác nhận những gì mình vốn đã tin
    • Gần đây tôi học machine learning khá nhiều và thấy kiểu này xảy ra thường xuyên. Với tư cách kỹ sư phần mềm, đây lại là một điểm nữa cảm giác hoàn toàn trái ngược với gần như mọi thứ tôi từng làm
      Thiếu một dấu chấm phẩy là lỗi hiện ra ngay
      Nhưng ngay cả khi tính toán gradient sai ở một trong ba lớp thì đôi khi nó vẫn chạy được. Chỉ là kết quả trở nên kỳ quặc
    • Mã nguồn nghiên cứu học thuật phần lớn là mớ code cẩu thả do nghiệp dư viết vội cho nhanh nhất có thể, gần như không có test, và đầu ra chính của loại code đó là tích lũy trích dẫn bài báo
      Một thế giới có số bài báo khoa học giảm một nửa và mức độ cẩn trọng tăng gấp đôi sẽ tạo ra nhiều giá trị hơn rất nhiều, nhưng toàn bộ hệ thống hiện tại đã bị game hóa đến mức tuyệt vọng
  • Tôi là người viết bài blog này. Tôi khá chắc về những gì mình viết ở đây, nhưng nếu có điều gì tôi bỏ sót thì có lẽ chính các tác giả cần trực tiếp giải thích
    Tôi vừa mở issue trên GitHub: https://github.com/bazingagin/npc_gzip/issues/3

    • Có lẽ nên cân nhắc thêm chú thích ở đầu bài. Nhiều người dường như chỉ lướt qua tiêu đề rồi hiểu thành “bài báo về gzip là vớ vẩn và cách tiếp cận gzip không hay”, trong khi thực tế có vẻ gần với “cách tiếp cận gzip không tốt hơn mô hình deep neural, nhưng nhìn chung vẫn có sức cạnh tranh và chi phí chạy rẻ hơn nhiều”
      Bản thân bài báo vẫn khá vững
    • Tôi là tác giả thứ nhất của bài báo và đã đọc bài blog. Lý do tôi chọn k=2 là vì có khuyến nghị dùng n^{1/2}, và tôi muốn chọn một k phù hợp với thiết lập 5-shot
      Tuy nhiên, nhận xét rằng lựa chọn này có phần kỳ lạ là đúng. Như tôi đã nói trong bài báo và trên Twitter, kết quả thay đổi khi giá trị k thay đổi, và con số được báo cáo là kết quả tối đa có thể đạt được, nên nó biểu thị tình huống lý tưởng khi dự đoán luôn đúng
      Tôi cũng dùng cùng chiến lược cho W2V và SentBERT. Nhưng điều đó không có nghĩa đây là độ chính xác top-2. Theo hiểu biết của tôi, độ chính xác top-2 nghĩa là nếu một trong 2 lớp dự đoán cao nhất là đúng thì sẽ được tính điểm
      Nhưng như bạn đã chỉ ra, trong kNN với k=2 có trường hợp 2 láng giềng gần nhất cùng chỉ về một lớp, và khi đó nếu báo cáo độ chính xác top-2 thì sẽ bỏ lỡ một lớp ứng viên khác
      Khi có thời gian để đăng phiên bản mới lên arxiv, tôi muốn thêm kết quả cho các chiến lược khác và các giá trị k khác. Chiến lược decrement mà blog nêu ra thực sự rất hay, và nếu bạn muốn thì tôi muốn thêm nó vào repository
      Xin lỗi vì phản hồi ngắn và muộn. Tôi vẫn chưa kịp kiểm tra repository. Ngày mai tôi đang chuẩn bị cho việc phản biện bài báo, xong việc tôi sẽ trả lời issue và xử lý tiếp
    • Cảm ơn bạn đã tái lập, đây là công việc quan trọng
      Tôi tò mò không biết bạn đã thử tái lập bảng kết quả khác là Table 3 chưa
      Nếu tôi hiểu đúng thì khi chỉ có 2 lớp, độ chính xác top-2 sẽ là 1, nhưng khi số lớp tăng lên thì trung bình khoảng cách giữa nó với độ chính xác “thông thường” sẽ dần thu hẹp. Vì vậy nếu dataset có nhiều lớp, kết quả ở Table 3 có lẽ sẽ không thay đổi quá lớn
      Dù sao thì trên dataset 20-newsgroups, độ chính xác top-2 là 0.685 cũng khá ấn tượng đối với một phương pháp thậm chí còn không xem ký tự là ký tự[1]. Chưa cần nói tới những công cụ tốt mà giới nghiên cứu xử lý ngôn ngữ tự nhiên đã đổ công nhiều năm vào như token, n-gram hay embedding
      [1] Theo hiểu biết của tôi, gzip chỉ xử lý chuỗi bit, mà chuỗi này không nhất thiết phải căn chỉnh theo ranh giới byte, tức là theo từ
    • Tôi muốn hỏi là trước khi công khai, bạn có thử liên hệ với các tác giả trước chưa?
  • Khi làm các thí nghiệm về độ liên quan trong tìm kiếm ở Shopify, tôi cũng mắc rất nhiều sai lầm nên rất đồng cảm với các tác giả. Tôi cũng có không ít lần công khai mắc lỗi đến mức xấu hổ
    Vào giai đoạn cuối ở Shopify, tôi đã học được rằng khoa học tốt cần kỹ thuật phần mềm tốt. Vì rất dễ mắc lỗi ở quá nhiều điểm trong toàn bộ stack
    Vì vậy, để có thể tin vào các con số và tái lập thí nghiệm của nhau, tôi đã dành rất nhiều thời gian để xây dựng phần mềm thí nghiệm nghiêm ngặt, có nhiều kiểm thử và chất lượng cao
    Tôi cố tránh các phương pháp đánh giá dùng một lần; khi tạo ra phương pháp mới, tôi thêm nó vào bộ công cụ đánh giá rồi kiểm thử để hiểu chỉ số đó thực sự có ý nghĩa gì
    Nghe thì có vẻ hiển nhiên, nhưng theo kinh nghiệm của tôi khi làm các thí nghiệm kiểu này, đáng tiếc là điều đó không phổ biến như mong muốn. Công ty muốn tốc độ, còn việc suy nghĩ sâu về mặt thống kê hay xây dựng công cụ nội bộ thì phần lớn không khớp với lợi ích của cấp trên

    • Câu “khoa học tốt cần kỹ thuật phần mềm tốt” là một mặt tích cực của nghiên cứu trong công nghiệp
      Thứ nhất, có thể tận dụng nhiều chuyên môn kỹ thuật phần mềm hơn; thứ hai, có động lực để bớt phóng đại các tuyên bố. Vì nếu nói là nó hoạt động, người ta sẽ kỳ vọng đưa nó vào môi trường vận hành thực tế
  • Tôi rất vui vì bài blog này đã được công bố
    Tôi cũng làm rất nhiều dự án nhỏ kiểu này, nhưng ngay cả những việc như chỉ ra vấn đề của một bài báo cũng thường không bao giờ được chú ý. Thường chỉ phát ra một tiếng ngắn ngủi rồi kết thúc, bị chôn vùi trong ổ cứng
    Vì thế, cảm ơn vì đã công bố nó ra như thế này

    • Dạo này tôi bắt đầu dùng Twitter như một blog chi phí thấp
      Sau khi dành cả một ngày cho kiểu công việc này, thường tôi không còn sức để thực sự viết một bài blog, nên thấy khá tiếc. Nhưng ít nhất thì viết một thread ngắn trên Twitter thường vẫn làm được
  • Tôi thực sự rất mừng khi thấy kết quả này. kNN + tác vụ phân loại + phân loại dựa trên độ tương tự văn bản thuần túy là một tổ hợp rất dễ tạo ra kết quả có lợi
    Phản ứng khoái chí trước bài báo này đã hiểu sai điểm rằng thành phần ngôn ngữ tự nhiên mới là thứ quan trọng cốt lõi trong embedding. Các cụm từ dùng chung từ ngữ vừa dễ phân loại vừa dễ cho GZIP xử lý tốt, nên có thể dùng GZIP như một bộ phân loại thay thế
    Điều kỳ diệu của BERT hay embedding nằm ở chỗ không cần phải chia sẻ cùng từ ngữ. Ví dụ, “what is my safe passcode?” khớp rất mạnh với “my lockbox pin is 1234”, nhưng không phải với “my jewelry is stored safely in the safe”
    Điểm này cũng quan trọng trong LLM. Nhiều người dùng embedding cho độ tương tự văn bản, nhưng trên thực tế nên dùng mô hình SBERT được huấn luyện để câu hỏi và tài liệu chứa câu trả lời của nó có tương quan với nhau
    Có thể xem toàn bộ rabbit hole tại https://www.sbert.net/
    Bài trước: Should you use OpenAI's embeddings? Probably not, and here's why. https://iamnotarobot.substack.com/p/should-you-use-openais-e...
    Thảo luận trên HN: https://news.ycombinator.com/item?id=35377935

    • Nói cho công bằng thì bài toán ban đầu vốn được cố ý chọn trong bối cảnh ngoài miền + ít tài nguyên, tức là nơi các cách như kNN+kỹ thuật nén có khả năng hoạt động tốt
      Trong những điều kiện như vậy, đầu vào huấn luyện quá thưa thớt nên các mô hình nhiều tham số có thể khó học được embedding tốt
      Trong thiết lập phân loại dữ liệu lớn truyền thống trong cùng miền, các phương pháp phi tham số như nén khó có khả năng đánh bại các biểu diễn đã được học
  • Không rõ vì sao các tác giả lại chọn kNN làm bộ phân loại. Nếu đã tạo ma trận khoảng cách thì họ có thể dùng đa chiều hóa tỷ lệ để biến ma trận thành các yếu tố, rồi dùng thuật toán cây như xgboost; khi đó có khả năng sẽ tận dụng được nhiều thông tin hơn và cho kết quả tốt hơn hẳn so với kNN
    Họ cũng có thể dùng thuật toán nén PAQ tốt hơn nhiều so với các bộ nén họ LZ. Những lựa chọn này có thể đã cải thiện kết quả đáng kể và thậm chí dẫn tới kết luận ban đầu
    Điểm hay của bài báo này là đã trừu tượng hóa thuật toán nén, nhờ đó khiến người ta nghĩ thêm về những gì còn có thể làm với nén trong mối quan hệ p(x) ~ K^(-|x|). Ở đây K là kích thước bảng chữ cái, |x| là độ dài của chuỗi x, giả định mã hóa tối ưu
    Ví dụ, tôi chợt nghĩ rằng cũng có thể làm phân loại truyền thống bằng cách gom các yếu tố của từng phản hồi thành các tài liệu riêng, rồi theo cách của bài báo tìm tài liệu nén mẫu tiếp theo tốt nhất để quyết định lớp. Đây là một dạng phân loại có giám sát dùng thuật toán nén
    Bộ nén càng gần với mã tối ưu của bộ dữ liệu đó thì sẽ càng hoạt động tốt
    Cách dự đoán chuỗi tuần tự cũng đơn giản tương tự để triển khai
    Thật là một bất ngờ thú vị

  • Có thể giải thích tại sao một thuật toán nén lại có thể đánh bại LLM không? Nghe giống như so sánh graffiti với việc nói năng hay hơn
    Có vẻ câu trả lời nằm đâu đó, nhưng tôi không quen với AI nên hoàn toàn không hiểu

    • Nói chung, nén = mô hình + mã hóa entropy
      Vai trò của mô hình là dự đoán điều gì sẽ đến tiếp theo, còn vai trò của bộ mã hóa entropy là mã hóa sự khác biệt giữa dự đoán và giá trị thực sự tiếp theo sao cho các kết quả có xác suất cao dùng ít bit nhất có thể
      Mô hình càng chính xác thì chênh lệch giữa thực tế và dự đoán càng nhỏ, số bit mà bộ mã hóa entropy cần cũng giảm, nên khả năng nén càng tốt
      Các thuật toán nén đơn giản có những mô hình đơn giản kiểu như “nếu đã thấy cùng một byte 10 lần thì lần thứ 11 cũng có khả năng giống vậy”. Nhưng LLM cũng có thể được dùng làm mô hình, vì việc hoàn thành văn bản bằng từ có vẻ hợp lý nhất chính là điều LLM làm
      Ở đây họ làm ngược lại. Thay vì dùng mô hình cho việc nén, họ dùng thuật toán nén như một mô hình bằng vài mẹo nhỏ. Cách hiểu là khi thuật toán nén mã hóa một kết quả bằng ít bit hơn, thì xem đó là kết quả có khả năng cao nhất
      Các tác giả bài báo gốc cho thấy ở một số tác vụ, mô hình đơn giản có thể rút ra từ gzip đánh bại các LLM phức tạp hơn rất nhiều
    • Mô hình ngôn ngữ ước lượng xác suất của chuỗi từ P(w_1, ..., w_n), hay tương đương là P(word | context)
      Trong nén, các chuỗi từ có xác suất cao phải được gán mã ngắn hơn, nên có mối liên hệ trực tiếp. Một phương pháp nổi tiếng để tạo ra các mã như vậy từ xác suất là mã hóa Huffman
      Điều này đúng cả với mô hình ngôn ngữ thống kê dùng tần suất từ lẫn khi dùng LLM để ước lượng xác suất. Mô hình ngôn ngữ càng tốt, tức perplexity càng thấp, thì kết quả nén càng ngắn
      Ngược lại, cũng có thể nói rằng thuật toán nén ngầm định nghĩa một mô hình ngôn ngữ thông qua độ dài mã. Chẳng hạn, nó giả định rằng các chuỗi lặp lại có khả năng xuất hiện cao hơn nhiễu ngẫu nhiên
    • Trực giác về cách gzip hoạt động là thế này
      Nếu nén ABC thì nó thành X byte. Sau đó nếu nén ABCABC thì nó sẽ không thành 2X byte. Hai chuỗi được nối lại càng giống nhau thì số byte cần càng ít
      ABCABD sẽ lớn hơn ABCABC, nhưng nhỏ hơn ABCXYZ
      BERT theo tiêu chuẩn ngày nay là một LLM rất nhỏ, và ta cũng biết nó yếu hơn các mô hình quy mô hàng tỷ tham số mà chúng ta thường gặp hiện nay
    • Nén tương đương với trí thông minh
      https://mattmahoney.net/dc/rationale.html
    • Đây là một tác vụ rất hạn chế. Bạn nhận một tài liệu và phân loại nó vào một trong khoảng 10 danh mục chẳng hạn
      Những cách như phát hiện từ khóa cụ thể đôi khi cũng có thể hoạt động khá tốt. Các đối tượng được nén tốt thường xuất hiện nhiều chuỗi con chung
  • Nếu điều này là thật, tôi muốn xem những người đã nói quá lên về bài báo đó giờ sẽ âm thầm xóa dấu vết của mình như thế nào
    Tôi đang nhìn đặc biệt vào các influencer trên LinkedIn và Twitter
    Nếu không phải sự thật thì tôi sẽ trông như một kẻ ngốc, nhưng tôi chỉ lướt qua bài viết

  • Gzip với vai trò bộ phân loại tốt đến mức đáng ngạc nhiên, và nên được dùng làm baseline cho mạng nơ-ron

  • Nhân tiện, có vẻ blog đã dừng lại ở năm 2022
    Ngày bài viết đang hiện là 17 tháng 7 năm 2022

    • Cảm ơn. Sẽ sớm được sửa. Viết ngày tháng bằng tay thì đúng là dễ thành ra thế này...