4 điểm bởi GN⁺ 2024-05-15 | 2 bình luận | Chia sẻ qua WhatsApp
  • needle-in-a-needlestack là một trang công khai tập hợp các bài viết thử nghiệm và mã liên quan đến GPT-4o, Llama, Jamba, Sonnet và Gemini ở một nơi
  • Dự án có kèm kho mã nguồn, cho phép bạn trực tiếp xem các tài liệu thử nghiệm Needle in a Needlestack
  • Các bài viết theo từng mô hình so sánh kết quả của Llama 3.1 8B, Jamba 1.5, v.v., tập trung vào khác biệt về xử lý ngữ cảnh dài và khả năng mở rộng
  • GPT-4o-mini được giới thiệu như một trường hợp có hiệu năng tương tự GPT-4 Turbo nhưng giá thấp hơn 98,5%; Sonnet 3.5 được giới thiệu là tốt hơn Sonnet 3.0 trong NIAN
  • Bản thân trang này là mã nguồn mở, nên bạn có thể tham gia chỉnh sửa tài liệu qua liên kết “Improve this page” trên GitHub

Liên kết liên quan đến Needle in a Needlestack

Bài viết so sánh theo mô hình

Tài liệu mã nguồn mở

  • Trang này là mã nguồn mở
  • Có thể chỉnh sửa trang trên GitHub thông qua liên kết Improve this page

2 bình luận

 
wedding 2024-05-18

Tiến bộ công nghệ thật sự quá khủng khiếp.. hu hu

 
GN⁺ 2024-05-15
Ý kiến trên Hacker News
  • Bài kiểm thử này dựa trên bộ dữ liệu limerick được công bố năm 2021: https://zenodo.org/records/5722527
    Tôi cho rằng khả năng rất cao GPT-4o đã được huấn luyện trên dữ liệu này. Vì chẳng có lý do gì để cố tình không đưa vào. Tôi thắc mắc vì sao nhóm NIAN không tạo limerick bằng nhiều mô hình rồi kiểm tra xem kết quả đó có nằm trong bộ dữ liệu hay không. Làm vậy có thể loại trừ khả năng các mô hình đã được huấn luyện bằng chính những limerick đó

    • Đã kiểm thử xem nếu không cung cấp limerick thì các LLM có trả lời được câu hỏi không. Ngoại trừ 4o, hiệu năng trên benchmark này rất tệ, nên tôi không cho rằng việc có thể nằm trong dữ liệu huấn luyện làm vô hiệu bài kiểm thử
    • Sao không tạo văn bản hoàn toàn ngẫu nhiên rồi bắt mô hình tìm trong đó?
    • NIAN là một ý tưởng rất hay, nhưng chẳng phải chỉ cần dịch sang N ngôn ngữ khác nhau rồi đặt câu hỏi là được sao? Cũng có thể trộn DeepL, Google Translate, bản dịch của chính LLM, v.v.
  • Tôi đã thử so sánh hai tài liệu pháp lý nhỏ, và nó hoàn toàn ảo giác rằng có một điều khoản xuất hiện ở bên này nhưng không có ở bên kia. Điều này xảy ra ở ba đoạn khác nhau trong hợp đồng
    Kiểm tra bằng ctrl-f thì thấy điều khoản đó có giống hệt ở cả hai bên. Chỉ là một mẫu thôi, nhưng con số 90% nghe không có vẻ hợp lý. Tổng cộng khoảng 80 nghìn token

    • Tôi cũng có cảm giác tương tự. Khi yêu cầu tìm mục trùng lặp trong danh sách 6.000 mục, nó gần như ảo giác nhiều lần trên toàn bộ câu trả lời. Thỉnh thoảng nó có tìm được một vài mục trùng, nhưng lại trộn thêm các mục do nó ảo giác vào giữa
      Tôi không kỳ vọng câu trả lời đúng vì nghĩ đây là tác vụ khó với số lượng attention head cố định, nhưng nó có vẻ tệ hơn nhiều so với Claude Opus hoặc GPT-4
    • Đó không phải là tìm kim trong đống cỏ
      LLM làm tác vụ này tốt hơn nếu chia hai tài liệu thành các đoạn nhỏ hơn và xử lý lặp theo từng đoạn. Do không có năng lực suy luận hay trí nhớ, nó không thể phân tích có cấu trúc hai khối văn bản vượt quá các mẩu tương đối nhỏ. Thay vào đó, nếu duyệt dần qua các mẩu nhỏ độc lập về mặt ngữ nghĩa và có liên quan, thì nó hoạt động khá tốt
      Sai lầm là coi chúng như những cỗ máy ma thuật. Chúng có giới hạn và năng lực; cũng như các công cụ khác, cần hiểu chúng làm được gì, không làm được gì, và tốt nhất là biết vì sao. Đây vẫn là một bước tiến khá mới với 99,9% lập trình viên, nên tôi không hiểu vì sao kỳ vọng lại gần như cao vô hạn. Với các công nghệ trước đây, tiêu chuẩn hợp lý hơn thường là “được rồi, hãy tìm cách dùng cho đúng”. Có lẽ vì chúng nói như con người nên trông như có cả những năng lực mà chúng không có, hoặc vì nghe quá giống con người nên người ta trách chúng vì không phải con người. Vừa có thổi phồng, vừa có đánh giá thấp cùng lúc. Ngay cả XML cũng từng trải qua một chu kỳ quá nhiệt tương tự, khi có thời được xem như sắp chấm dứt nạn đói thế giới
    • Đó là một bài kiểm thử khác với needle-in-a-needlestack, nhưng nó cho thấy rõ các mô hình mong manh đến mức nào. Ở một số lĩnh vực thì chúng có năng lực, nhưng ở lĩnh vực khác lại tệ thảm hại
      needle-in-a-needlestack là bài toán tìm một dữ liệu cụ thể giữa các dữ liệu tương tự, khác với needle-in-a-haystack là tìm giữa những thứ khác nhau. Ví dụ như tìm một limerick trong hàng nghìn limerick
    • Tôi đã thử cùng thí nghiệm với quy định địa phương và bắt được GPT ảo giác ra mức phạt và phí. Đây là vấn đề có thật
    • Thú vị đấy, ít nhất về mặt chính thức thì cửa sổ ngữ cảnh của GPT-4o là 128k
  • Bài kiểm thử needle-in-a-haystack chỉ cho thấy rất hạn chế năng lực xử lý ngữ cảnh dài thực tế của mô hình. Nó được dùng chủ yếu vì các mô hình đời đầu làm tác vụ này rất tệ và dễ kiểm thử
    Thực ra hầu hết mô hình mới đều làm khá tốt riêng tác vụ này, nhưng trên thực tế năng lực làm các việc phức tạp vượt quá 32K token giảm mạnh. RULER là bài kiểm thử tốt hơn nhiều: https://github.com/hsiehjackson/RULER

    Dù đạt hiệu năng gần như hoàn hảo trong bài kiểm thử needle-in-a-haystack (NIAH) cơ bản, tất cả các mô hình (trừ Gemini-1.5-pro) đều cho thấy hiệu năng suy giảm đáng kể trên các tác vụ RULER khi độ dài chuỗi tăng lên
    Dù tất cả các mô hình đều tuyên bố hỗ trợ kích thước ngữ cảnh trên 32k token (trừ Llama3), chỉ một nửa có thể xử lý hiệu quả độ dài chuỗi 32K khi vượt qua mốc định tính là hiệu năng 4K của Llama2-7b (85,6%). Các kết quả vượt mốc được gạch chân

    • Có thể là vậy, nhưng thứ nhất, bài viết này không nói về NIHS mà là một biến thể kiểm thử riêng, nên có thể liên quan hơn. Thứ hai, luận điểm chính của bài là GPT-4o làm tốt hơn, trong khi bài kiểm thử bạn nhắc tới không benchmark GPT-4o
    • Các mô hình mà RULER benchmark cho kết quả tệ hơn trong needle-in-a-needlestack. Tôi tò mò 4o sẽ thể hiện thế nào trên RULER
  • Cũng muốn xem thử điều này với Gemini Pro 1.5. Tuần trước tôi đã thử đưa vào toàn bộ Moby Dick, và có lần đưa vào tất cả sách của Byung Chul-Han; trong cả hai trường hợp, lần nào nó cũng tìm ra nguyên văn phần câu có nhắc đến hoặc trả lời câu hỏi của tôi, và không hề ảo giác

    • Nhiều người trong phòng nghiên cứu đang nghiên cứu đánh giá ngữ cảnh dài của LLM đối với tác phẩm tiểu thuyết. Moby Dick rất có khả năng đã nằm trong dữ liệu huấn luyện. Vì vậy mọi người trong phòng nghiên cứu đã tìm các sách mới xuất bản gần đây để tránh vấn đề này
      Có thể tham khảo BooookScore(https://openreview.net/forum?id=7Ttk3RzDeu) được trình bày tại ICLR tuần trước và preprint gần đây FABLES(https://arxiv.org/abs/2404.01261)
    • Nội dung đó có lẽ không nằm trong tập huấn luyện sao? Sẽ thú vị nếu làm cùng việc đó với một bộ sách được xuất bản gần đây hơn bản phát hành cuối cùng của mô hình
    • Tôi đã đưa 2.500 ví dụ được liên kết trong bài vào Gemini 1.5 Flash, và nó trả lời đúng đáp án “The tree has diseased leaves and its bark is peeling.”: https://aistudio.google.com/
    • Tôi có quyền truy cập mô hình đó và cũng từng thấy khả năng trích xuất ngữ cảnh rất ấn tượng. Khi đưa vào trọn một codebase lớn, nó cũng tóm tắt rất tốt
      Tôi cũng thấy có người phân tích các file log khổng lồ, nhưng để xác định thời điểm mô hình bắt đầu bỏ sót điều gì đó thì thật sự cần những bài kiểu needle-in-a-needlestack như thế này. Ít nhất các nhà phát triển mô hình có thể dùng nó để phân tích mô hình đề xuất của họ
    • Giờ thì có vẻ sau khoảng 2–5 năm nữa, ta có thể đưa ePub vào và nhận được phiên bản graphic novel chính xác trong vài phút. Tôi đã sẵn sàng xem 4.000 bức vẽ cây theo phong cách Tolkien
  • Ai đó nên tạo một bài kiểm tra “tổng hợp trong haystack”, không chỉ tìm kiếm mà còn kiểm tra độ sâu hiểu biết, sự liên kết và trừu tượng hóa giữa nhiều loại thông tin
    Khi con người đọc một cuốn sách, họ hình thành một “trực giác tổng thể” về cuốn sách đó. Cần có cách định lượng điều này. Tôi có cảm giác bài kiểm tra needle-in-haystack quá đơn giản và chưa đi đủ xa

    • Có thể làm một bài tìm thủ phạm kiểu Agatha Christie tinh vi. Tức là cài nhiều cú twist và chứng cứ ngoại phạm, rồi cắt bỏ phần cuối tác phẩm sao cho nghi phạm có khả năng cao nhất sẽ thay đổi
    • Cũng có thể để các cây kim tạo thành một đồ thị, và prompt hỏi một tác vụ dựa trên đồ thị
    • Có ý tưởng mua một tiểu thuyết hoặc kịch bản chưa công bố với thế giới quan chi tiết, nhất quán nội tại và các nhân vật có động cơ được thiết kế tốt, rồi yêu cầu mô hình tiếp tục viết một mạch truyện mới, từ một điểm ngẫu nhiên sau nửa tác phẩm, nối hai nhân vật chưa từng gặp nhau
      Nếu hiểu ngữ cảnh, nó phải có thể viết phần mới của câu chuyện và dùng những động cơ nhân vật mà độc giả cảm nhận bằng trực giác để phát triển tuyến truyện của họ. Tuy nhiên, để hữu ích thì toàn bộ phải được giữ hoàn toàn bí mật, nên chỉ có thể dùng gần như một benchmark cá nhân. Hoặc cũng có thể biến nó thành một giải thưởng uy tín được đánh giá bằng độ tin cậy của kết luận, thay vì công bố phương pháp luận để cải thiện lĩnh vực
    • Tôi cũng từng nghĩ tương tự. Một phần của câu hỏi sẽ cung cấp đủ thông tin để LLM tìm ra bài limerick, còn phần thứ hai hỏi điều đòi hỏi hiểu sâu hơn về bài limerick đó hoặc một văn bản khác
    • Hiểu biết không tồn tại, nên không thể làm chuyện đó
      GPT-4o vẫn chưa xử lý được giao điểm của hai ý tưởng khác nhau không có trong tập huấn luyện. Thậm chí nó cũng không tạo được một biến thể ngẫu nhiên về giao điểm của hai ý tưởng khác nhau. Xa hơn nữa, ta không nên kỳ vọng mô hình làm được việc đó. Điều này không công bằng với mô hình, với tính hữu dụng thực tế của nó, và với những việc đáng kinh ngạc mà nó làm được dù không có hiểu biết. Tin rằng mô hình hiểu là tự lừa mình
  • Giờ có thể dùng GPT để biến dữ liệu động thô ngay tại chỗ thành layout HTML đẹp mắt. Với các trang như changelog hoặc audit log có lưu lượng thấp, việc này có thể giảm đáng kể thời gian phát triển và giữ HTML luôn cập nhật ngay cả khi cấu trúc dữ liệu thay đổi
    Các lần thử trước đây không hoạt động ổn định vì GPT-4-Turbo đôi khi gần như hoàn toàn phớt lờ ngữ cảnh và chỉ dẫn

  • Bài viết này cho thấy khả năng chú ý trên toàn bộ cửa sổ nhập của GPT-4o đã cải thiện nhiều thế nào so với GPT-4 Turbo và Claude-3 Sonnet
    Đã cần một bản nâng cấp cho needle-in-a-haystack từ lâu, và “Needle In A Needlestack” này là bước tiếp theo tốt. NIAN tạo prompt chứa hàng nghìn bài limerick, rồi đặt câu hỏi về bài limerick ở một vị trí cụ thể

    • Đồng ý. Tôi đã trả tiền dùng Claude một thời gian. Nó quảng bá rất mạnh về việc hỗ trợ ngữ cảnh lớn, và khi dùng ngữ cảnh lớn thì ngốn token khủng khiếp, nhưng nếu mã nguồn chỉ cách đó vài trang vẫn nằm trong ngữ cảnh thì gần như vô dụng
      Những mặt khác đều ổn và tôi cũng thích cảm giác dùng nó, nên càng bực hơn. Tối qua tôi thử 4o, và nó vẫn nhận ra hoàn hảo một class C++ mà tôi đã dán vào từ 20 câu hỏi trước. Tôi không quan tâm nó thông minh hay không, điều quan trọng là nó có hữu dụng không, và điều này đóng góp rất lớn vào tính hữu dụng
  • Tôi ngày càng tin chắc rằng dường như không ai trên Internet công khai biết cách đánh giá LLM cho đúng

    • Dù sao cũng may là cuối cùng chúng ta đã vượt qua kiểu đánh giá LLM hồi 2022–2023 mà ai cũng làm, như “Tổng thống thứ 29 của Mỹ là ai”, “vẽ theo phong cách Van Gogh”
  • Để bài kiểm tra này có ý nghĩa, cần biết rằng dữ liệu tập kiểm tra không nằm trong dữ liệu huấn luyện

    • Nếu hỏi mà không cung cấp trước các bài limerick, nó tuyệt đối không thể trả lời đúng. Khi LLM sai, thường là nó quay về dữ liệu huấn luyện và đưa ra một câu trả lời chung chung không khớp với bài limerick
    • Không nhất thiết phải vậy. Chỉ cần so sánh hiệu năng của mô hình trước và sau khi tải tài liệu lên
    • Tôi tưởng các bài limerick dùng để kiểm tra được tạo tự động
  • Nghe hay đấy. Vấn đề lớn nhất với GPT-4.0 là chất lượng giảm dần khi cuộc trò chuyện dài ra, đặc biệt quan trọng trong các dự án coding
    Không biết giờ đã tốt hơn chưa. Hôm nay tôi sẽ kiểm thử

    • Trải nghiệm của tôi đến giờ cũng vậy. Các cuộc trò chuyện hiện tại dài một cách phi lý so với các cuộc trò chuyện GPT-4 trước đây. Trước kia tôi thường phải sao chép ngữ cảnh rồi bắt đầu lại trong một chat mới
    • Tôi cũng có trải nghiệm tương tự. Với prompt 16k thì Turbo gần như hoàn hảo, nhưng ở 32k thì không tốt lắm, còn trên 100k thì không dùng được. Muốn có kết quả tốt với prompt dài, phải lặp lại thông tin nhiều lần