- 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
- Trong danh sách 50 cuốn đứng đầu, các cuốn được nhắc tới nhiều nhất là
- Structure and Interpretation of Computer Programs: Abelson and Sussman, 376 lần
- Gödel, Escher, Bach: Douglas Hofstadter, 365 lần
- How to Win Friends and Influence People: Dale Carnegie, 292 lần
- The C Programming Language: Brian Kernighan, Dennis Ritchie, 284 lần
- Dune: Frank Herbert, 261 lần
- Nhóm dẫn đầu không chỉ có sách kỹ thuật mà còn gồm cả tiểu thuyết, sách triết học, tâm lý, lịch sử và khởi nghiệp
- Thinking, Fast and Slow: 244 lần
- The Pragmatic Programmer: 203 lần
- Designing Data-Intensive Applications: 153 lần
- Clean Code: 106 lần
- The Elements of Computing Systems: 104 lần
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
matchchứa một phần các bình luận nơi sách đã được nhận diện
- Cột
- 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
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
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
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
Đâ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
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
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
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
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 đề
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ô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?
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
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?
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
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ự
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 đó
Thực tế là công nghệ nhàm chán khó thu hút sự chú ý và tương tác
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