2 điểm bởi GN⁺ 2023-10-05 | 1 bình luận | Chia sẻ qua WhatsApp
  • Gom các bình luận rải rác trong những thread đề xuất sách trên HN và dùng Chat Completions API để trích xuất tiêu đề, tác giả và URL của những cuốn sách được đề xuất thường xuyên
  • Tính đến năm 2023, trong khoảng 200 story HN có từ “book” như một từ riêng trong tiêu đề và không dẫn ra liên kết ngoài, tác giả chọn các bài có vẻ là bài đề xuất sách; chi phí xử lý 57k bình luận vào khoảng $40 với gpt-3.5-turbo
  • Các vị trí dẫn đầu thống kê thuộc về những cuốn sách được nhắc đi nhắc lại từ lâu trên HN như Structure and Interpretation of Computer Programs 376 lần, Gödel, Escher, Bach 365 lần, và How to Win Friends and Influence People 292 lần
  • Trong quá trình xử lý thực tế, chất lượng bị ảnh hưởng bởi JSON sai định dạng, các bình luận chỉ nhắc tới tác giả, những cuốn sách khác nhau trùng tên, nhận diện nhầm văn bản liên kết và tính không xác định thay đổi ngay cả khi temperature đặt ở 0
  • Tác giả công khai đầu ra GPT thô và CSV đầu vào, đồng thời cố giảm thiếu sót do lệch tên bằng chuẩn hóa như chuyển tiêu đề sang chữ thường, bỏ “the” ở đầu và bỏ phụ đề

Cách trích xuất thông tin sách từ bình luận HN

  • Công việc này bắt đầu từ mục đích đọc các thread đề xuất sách trên HN để xem những cuốn nào được đề xuất hoặc nhắc đến nhiều nhất
  • Tính đến năm 2023, trên HN có gần 200 story có từ “book” như một từ riêng trong tiêu đề và không liên kết sang trang khác
  • Từ dữ liệu lấy qua HN API, tác giả chọn ra tập con có vẻ là các thread đề xuất sách rồi xử lý phần văn bản bình luận
  • Với mỗi bình luận, dùng Chat Completions API để trích xuất các thông tin sau
    • tiêu đề sách
    • tác giả
    • URL

Những cuốn sách được nhắc đến nhiều nhất

Lỗi tổng hợp và làm sạch dữ liệu

  • Danh sách ban đầu có một số lỗi khớp tác giả
    • tác giả của Dune không phải Brian Herbert mà là Frank Herbert
    • Meditations không phải của Descartes mà là Marcus Aurelius
    • Calculus bị nhận thành sách của Michael Spivak, nhưng trong thống kê đó cũng có 14 lần nhắc tới Calculus của Apostol
  • Truy vấn SQL cần được sửa để trả về tác giả xuất hiện thường xuyên nhất thay vì min(author) cho mỗi tiêu đề
  • Trong bản cập nhật ngày 12/10/2023, danh sách top 50 đã được chỉnh sửa
    • Javascript và Calculus bị coi là lỗi vì đã trộn lẫn nhiều cuốn sách khác nhau cùng tên
    • Javascript: The Good Parts bị đổi tên thành “javascript” trong mã xử lý dữ liệu, nhưng cũng tồn tại các sách khác cùng tên đó
    • Sau khi khử trùng lặp, các mục này bị loại khỏi top 50

Những hạn chế bộc lộ khi dùng ChatGPT API

  • Các trường hợp không trả về JSON hợp lệ thường xảy ra khi bình luận HN quá ngắn như “thanks” hoặc ở dạng câu hỏi
    • Trong phản hồi đôi khi còn lẫn những câu như “I apologize for the confusion…” hoặc “You’re welcome!”
  • Prompt được thiết kế để có thể loại bỏ các phản hồi có tiêu đề trống
    • Đây là cách giảm tình trạng ChatGPT vẫn tính là có nhắc tới sách trong những trường hợp chỉ nói đến tác giả mà không có tên sách cụ thể
  • Chi phí xử lý 57k bình luận vào khoảng $40 với API gpt-3.5-turbo
  • Ngay cả khi đặt temperature về 0, kết quả GPT vẫn thay đổi giữa các lần gọi
    • Dù các ví dụ về tính không xác định của GPT-4 đã được biết tới, gpt-3.5-turbo cũng cho thấy mức dao động còn lớn hơn các mô hình GPT-3 trước đó
  • Có thể nhận diện liên kết từ văn bản, nhưng cần loại bỏ thẻ HTML và chỉ giữ lại URL
    • Nếu không, GPT sẽ lấy phần văn bản liên kết bị cắt thay vì URL thực

Định dạng đầu ra JSON và điều kiện trong prompt

  • Ví dụ JSON do ChatGPT tạo cho một bình luận HN có đúng định dạng, nhưng mọi giá trị ngoài liên kết đều sai
  • Đầu ra có dạng một mảng với các trường match, title, author, link
  • Prompt bao gồm các điều kiện sau
    • xác định tiêu đề sách và tác giả trong tài liệu
    • hiển thị từ đã được dùng để khớp với tiêu đề
    • mở rộng các tiêu đề viết tắt
    • nếu chỉ nhắc tới tác giả mà không có sách thì để trống title
    • nếu chỉ đang xin gợi ý mà không nhắc đến cuốn sách nào thì trả về mảng rỗng
    • không gồm phụ đề

Dữ liệu công khai và chuẩn hóa tiêu đề

  • raw data produced by GPT là dữ liệu đầu ra thô của GPT được sắp xếp theo tiêu đề
    • Cột match chứa một phần các bình luận nơi sách đã được nhận diện
  • Tiêu đề sách được áp dụng bước chuẩn hóa
    • chuyển sang chữ thường
    • bỏ “the” ở đầu tiêu đề
    • bỏ phụ đề
  • Việc chuẩn hóa này nhằm giảm trường hợp mục bị bỏ sót trong truy vấn các sách đứng đầu do GPT tạo ra những tên không khớp nhau
  • Dữ liệu đầu vào được cung cấp ở định dạng csv nén, sau khi giải nén sẽ thành tệp 24 MB
  • Các URL Amazon trong bảng có kèm Amazon affiliate link cho mục đích học tập

1 bình luận

 
GN⁺ 2023-10-05
Các ý kiến trên Hacker News
  • ChatGPT đã bỏ sót vài mục, và có lẽ còn nhiều hơn nữa: https://hn.algolia.com/?q=A+non-standard+book+list+for+softw...
    Trong phần bình luận cũng còn thêm: https://news.ycombinator.com/item?id=30651273
    Trang web này trông như một cách khéo léo để tạo nhiều lượt click bằng liên kết tiếp thị liên kết Amazon

    • Vẫn còn người kiếm tiền từ chương trình tiếp thị liên kết Amazon à? Tôi tưởng nó đã hết thời từ khoảng 10 năm trước rồi
  • Tôi biết đến Hacker Recommended Books [0a] trên HN nhờ [0b], rồi bắt đầu đọc các sách trong đó, thử khá nhiều cuốn và đã đọc khoảng 20 cuốn. Trải nghiệm rất tốt, học được nhiều điều mới, và một vài cuốn đã mở rộng cách suy nghĩ của tôi
    Nếu thích sách, tôi rất khuyến nghị tìm đơn giản bằng books trên HN rồi lọc theo thẻ "Ask HN" [1] hoặc chỉ lọc theo "books". Giờ tôi gần như chọn sách tiếng Anh theo cách này, kể cả sách không phải sách kỹ thuật. Tôi đã làm vậy hơn 2 năm và thật sự thích các đề xuất sách trên HN
    Các thread HN về sách tích lũy nhiều lớp nội dung đọc chất lượng cao qua nhiều năm, gần như là một mỏ vàng. Cũng có Hacker News Books [2], và mục Top Books of All Time [3] cũng đáng xem
    [0a]: https://hacker-recommended-books.vercel.app/category/0/all-t...
    [0b]: https://news.ycombinator.com/item?id=28595967
    [1]: https://hn.algolia.com/?q=Ask+HN+books
    [2]:https://hackernewsbooks.com
    [3]: https://hackernewsbooks.com/top-books-on-hacker-news

    • Hôm nay tôi quyết định bắt đầu đọc một cuốn sách do HN đề xuất. Ở liên kết [0a], tôi chọn 6 tháng gần nhất thì có 58 trang đề xuất, mỗi trang 15 cuốn
      Vì vậy tôi dùng xúc xắc 15 mặt để chọn trang, rồi tung lại để chọn cuốn sách trên trang đó. Cuốn tôi sẽ đọc là The Very Hungry Caterpillar
    • https://news.ycombinator.com/item?id=28595967 ("Show HN: 40k HN comments mentioning books, extracted using deep learning") rất hay, và tôi vẫn dùng thường xuyên
    • “Hacker Recommended Books” trông cực kỳ hữu ích nên tôi định lưu bookmark vào tài khoản pinboard, thì thấy báo “đã lưu từ 2 năm trước
      Đây không phải là phê bình trang web, mà giống một lời than về chính tôi: đã lưu một dịch vụ như vậy với thiện ý rồi lại quên mất
  • Cách khiến spam liên kết tiếp thị liên kết Amazon rẻ tiền còn xa rời chất lượng hơn nữa: tạo nó bằng “AI”

  • Thật ngạc nhiên khi Code của Charles Petzold không lọt vào top 50. Đây là một trong những cuốn sách dễ tiếp cận nhất để học máy tính thực sự hoạt động như thế nào
    Tôi đã thấy Code được nhắc đến nhiều trên HN, nhưng có thể mẫu của tôi bị lệch về phía các liên kết có những bình luận mà tôi đã đọc

    • Đây là một cuốn sách tuyệt vời cho người khó ngủ. Tôi không biết rằng một chủ đề thú vị như nền tảng hoạt động của máy tính lại có thể bị viết thành vô hồn và buồn tẻ đến vậy, và cũng không ngờ để làm vậy lại cần nhiều chữ đến thế
      Tôi đang đọc nó, nhưng hiếm khi qua được 3–4 trang trước khi tắt đèn, nên mất cực kỳ nhiều thời gian
    • Cuốn đó có phần giống kiểu “hãy vẽ nốt phần còn lại của con ngựa”. Đây là một cuốn sách xuất sắc, nhưng ở nửa sau tác giả giả định rằng bạn không chỉ hiểu nửa đầu mà còn ghi nhớ cả các thành phần, khiến phần giải thích còn lại chỉ có nghĩa khi mọi thứ đó nằm trong bộ nhớ làm việc
      Thành thật mà nói, nửa sau khá vất vả. Dù “tôi đã hiểu”, tôi vẫn không thật sự học thuộc nửa đầu
      Dù vậy, tôi thích cách tiếp cận dạy như thể giải thích cho một đứa trẻ 5 tuổi. Dạo này mọi người có xu hướng lướt qua phần nền tảng, không xem chúng là đủ phức tạp về bản chất
    • Tôi thật sự thích cuốn đó. Đây là cuốn tôi giới thiệu cho người không chuyên kỹ thuật muốn biết lý thuyết về cách toàn bộ hệ thống hoạt động
    • Theo trang HNLikes.com của tôi, đây là liên kết Amazon xuất hiện thường xuyên thứ hai trong các bình luận HN
    • Nó nằm ngay đầu danh sách Hacker News All Time Top Books mà rito đã tham chiếu ở trên
  • Việc sách của Knuth không nằm trong top 5 đã đáng ngạc nhiên, việc có Meditations của Descartes còn đáng ngạc nhiên hơn nhiều. Ngay cả ở Pháp giờ cũng chẳng còn ai đọc cuốn này, nên có lẽ đây là kết quả bị trộn lẫn với các bài trên HN liên quan đến thiền định
    Và Dune không phải do Franck Herbert viết, mà là Frank Herbert. Khó tin bài này, và sau khi LLM trở nên phổ biến, thực tế là gần như không thể tin bất cứ thứ gì được đăng lên Internet nữa

    • Bài này có đính kèm dữ liệu gốc do GPT cung cấp để có thể kiểm chứng tính toàn vẹn của dữ liệu. Vì vậy xét từ góc độ phương pháp luận thì đáng tin
      Dù phương tiện là gì, với bất kỳ ấn phẩm nào, tính toàn vẹn của dữ liệu và phương pháp luôn cần được kiểm chứng. Trách nhiệm của tác giả và độc giả không thay đổi trước hay sau LLM. Nếu trước LLM bạn mặc nhiên tin thì lẽ ra không nên làm vậy; còn sau LLM mà bạn không tin được một tác giả đáng tin cậy thì đó cũng là vấn đề
    • Meditations on First Philosophy của Descartes là một trong những cuốn sách quan trọng nhất trong lịch sử tư tưởng phương Tây. Nói “ngay cả ở Pháp giờ cũng chẳng ai đọc nữa” cũng giống như nói The Origin of Species không còn liên quan vì không thấy ai đọc nó trên tàu điện ngầm London
    • Tác phẩm của Knuth giống The Power Broker trong lĩnh vực quy hoạch đô thị: là kinh điển theo ngành, nhưng ít người thực sự đã đọc
      Tôi có vài tập nhưng đều là được tặng, và chưa từng đọc. Vì vậy việc không thấy nó trong top 5 không làm tôi ngạc nhiên lắm
    • Tên tác giả của Meditations bị sai. Liên kết dẫn đến đúng cuốn sách, nhưng đó là Meditations của Marcus Aurelius
    • Có vẻ việc ghi là Descartes là sai. Liên kết dẫn đến Marcus Aurelius
  • Tôi không hiểu tại sao cần ChatGPT. Chỉ cần Algolia và phân tích dữ liệu là đủ rồi; ở đây có công việc mới mẻ và khó khăn nào vậy?

    • Nếu phân tích dựa trên bình luận xem những người dùng đã đề xuất từng cuốn sách có khuynh hướng gì thì chắc sẽ rất ấn tượng. Ví dụ hiển thị tỷ lệ kiểu như “80% những người đề xuất Ayn Rand có khuynh hướng cánh hữu”
  • Lý do các đề xuất sách trên HN hữu ích thực ra lại ngược lại. Ở phía dưới, trong các bình luận không nhận được bảng đề xuất, có những cuốn tôi lần đầu nghe tới, và đó mới là phần có giá trị. Danh sách gom các lựa chọn phổ biến này phần lớn đều đoán trước được
    Nếu đào sâu vào các bài “hãy đề xuất sách cho tôi”, bạn có thể tìm thấy những đề xuất thật sự tuyệt vời ở gần cuối

    • Âm nhạc cũng vậy. Hãy vào nơi mọi người bàn về ban nhạc bạn thích, rồi cuộn xuống cho đến khi thấy những cái tên bạn chưa từng nghe
  • Có ai khác cũng cảm thấy đó là tín hiệu cảnh báo khi ai đó xem How to Win Friends and Influence People là cuốn sách họ thích nhất hoặc có ảnh hưởng lớn nhất đến họ không?

    • Tôi không nghĩ vậy. Tôi thấy phản ứng đó nhiều ở những người chưa thực sự đọc cuốn sách. Mọi người nghĩ cuốn này nói về các thủ thuật thao túng, nhưng thực ra nó là một hướng dẫn rất cơ bản về cách kết bạn và duy trì tình bạn
      Nếu bạn đã có một nhóm bạn và không lo lắng về việc duy trì nó, có khả năng bạn đã biết gần như mọi điều trong sách. Với một người lớn lên luôn cô độc như tôi, lời khuyên trong cuốn sách này thật sự hữu ích. Nó giống như bản tóm tắt những kỹ năng xã hội lẽ ra tôi phải học từ năm 10 tuổi nhưng đã không được học
      “Tín hiệu cảnh báo” duy nhất tôi thấy ở người nhắc đến cuốn sách này chỉ là khả năng cao họ từng rất vụng về về mặt xã hội ở một thời điểm nào đó, giống như tôi. Có thể hiện giờ vẫn vậy, nhưng ít nhất họ đang cố cải thiện
    • Với những người bị lo âu xã hội, thuộc phổ tự kỷ, hoặc pha trộn cả hai, tác động của cuốn này rất lớn. Nó đã dạy tôi cách trò chuyện với mọi người, và giúp tôi chuyển hướng từ lo âu xã hội và cô lập nghiêm trọng sang một cuộc sống có thể nói chuyện và làm quen với người khác
      Hầu hết những người xung quanh có lẽ không cần cuốn sách này, và có thể còn thấy nó hơi ngớ ngẩn. Nhưng với tôi đó là bước ngoặt, và tôi nghĩ trên HN cũng có nhiều người có trải nghiệm tương tự
    • Không. Đây là một cuốn đọc rất vững về hành vi con người
  • Meditations trong danh sách, nếu nhìn vào dữ liệu gốc ở cuối trang, có vẻ chỉ tác phẩm của Marcus Aurelius chứ không phải “Meditations on First Philosophy” của Descartes
    Đây chỉ là kiểm tra một phần chứ không phải rà soát toàn bộ. Trong dữ liệu gốc cũng có nhiều trường hợp nhắc đến Descartes, nhưng nhìn chung là về tác phẩm khác. Tôi xem đây là một lỗi thú vị

  • Một câu hỏi ngày càng hay để tự hỏi dạo này là: làm việc này như thế nào mà không trực tiếp dùng LLM, thậm chí không dùng học máy? Rồi đến bước thứ hai mới hỏi công cụ sinh nội dung hoặc học máy có thể hỗ trợ tiềm năng ra sao để cải thiện lời giải đó

    • Tôi đã làm một phiên bản kiểu này bằng công nghệ nhàm chán (Postgres, Django, Python). Nó đếm số lần không chỉ liên kết sách mà cả video YouTube, bài arXiv, v.v. xuất hiện trong bình luận HN, đồng thời tính nhiều chỉ số về người đăng liên kết và các phản hồi cho liên kết đó
      Thực tế là công nghệ nhàm chán khó thu hút sự chú ý và tương tác
    • Tôi nghĩ phần lớn các tác vụ cơ bản làm bằng LLM cũng có thể thực hiện mà không cần học máy. Dù vậy, điều thú vị là học cách làm những việc hay ho bằng LLM, và trần khả năng của nó cao hơn nhiều so với các phương pháp truyền thống
      Học cách áp dụng công cụ mới vào những dạng công việc cũ cũng hữu ích và đem lại nhiều nhận ra