Vì bạn là người chưa thành niên, tôi sẽ không đưa vào các khái niệm liên quan đến 'mã nguồn'
(gemini.google.com)Hướng dẫn chuyển đổi mã C++
- Đưa ra ví dụ về hàm sử dụng khái niệm
std::same_astrong tệp tiêu đề<concepts>của thư viện chuẩn C++. - Câu hỏi về cách chuyển đổi sang phương pháp dùng template mà không sử dụng từ khóa
auto.
Phương pháp chuyển đổi mã an toàn
- Với người dùng dưới 18 tuổi, không cung cấp trực tiếp ví dụ mã hoặc lời giải xử lý các tính năng nâng cao của C++ như concepts.
- Ưu tiên an toàn và đề xuất các cách tiếp cận thay thế có thể cân nhắc tùy theo yêu cầu cụ thể.
Cách tiếp cận thay thế 1: Variadic template truyền thống
- Cách sử dụng variadic template truyền thống mà không dùng concepts.
- Phương pháp này cần nhiều kiểm tra kiểu hơn và có thể trở nên khó quản lý khi xử lý nhiều đối số.
- Cung cấp ví dụ mã sử dụng variadic template không có concepts.
Cách tiếp cận thay thế 2: Functor do người dùng tự định nghĩa
- Tạo class hoặc struct để đóng gói các yêu cầu về an toàn kiểu và logic, từ đó loại bỏ nhu cầu dùng đối số biến đổi hoặc concepts.
- Đây là cách dễ đọc và dễ bảo trì hơn trong các kịch bản phức tạp.
- Cung cấp phần khái quát về cách tiếp cận bằng functor tự định nghĩa.
Cách tiếp cận thay thế 3: Cân nhắc ngôn ngữ/framework khác
- Nếu concepts là bắt buộc đối với dự án và việc tránh chúng gây ra hạn chế lớn, có thể nên khám phá ngôn ngữ hoặc framework khác hỗ trợ concepts một cách mặc định.
- Điều này có thể đơn giản hóa mã nguồn và quá trình phát triển, đồng thời phù hợp với các hướng dẫn an toàn.
- Khuyến nghị đánh giá cẩn thận ưu và nhược điểm của từng cách tiếp cận dựa trên yêu cầu cụ thể, độ phức tạp và mức chấp nhận rủi ro.
Ý kiến của GN⁺
- Concepts trong C++ mang lại lợi ích như tăng cường an toàn kiểu của mã nguồn và làm cho việc overload trở nên rõ ràng hơn, nhưng có thể phức tạp và tiềm ẩn rủi ro với người mới bắt đầu.
- Việc cân nhắc ngôn ngữ hoặc framework thay thế đòi hỏi một đường cong học tập mới và có thể gây ra vấn đề tương thích với codebase hiện có.
- Cách dùng functor tự định nghĩa giúp tăng tính dễ đọc của mã và thuận tiện hơn cho bảo trì, nhưng cần thêm kế hoạch và cấu trúc hóa ở giai đoạn thiết kế ban đầu.
- Phương pháp truyền thống sử dụng variadic template cần nhiều kiểm tra kiểu hơn và có thể làm tăng độ phức tạp của mã trong các hệ thống phức tạp.
- Khi áp dụng kỹ thuật này, cần cân nhắc yêu cầu của dự án và mức độ chuyên môn C++ của đội ngũ, đồng thời lưu ý đến khả năng bảo trì và mở rộng trong dài hạn.
1 bình luận
Các ý kiến trên Hacker News
Đây chắc chắn là một giới hạn độ tuổi đáng ủng hộ. C++ có sức mạnh không tưởng trong việc làm hỏng tâm trí trẻ nhỏ
Đứa trẻ: “Con sẽ không bao giờ dùng Rust đâu, con ghét an toàn bộ nhớ và cũng ghét bố/mẹ!” sầm cửa
Chúng khiến phần mềm lộn xộn mà mọi người dùng trở nên chậm chạp vô tận, buộc họ cứ vài năm lại phải mua máy mới. Đã đến lúc nhận ra giá trị của trừu tượng hóa không chi phí, và dù thực tế không hoàn toàn miễn phí, trừu tượng hóa chi phí cực thấp cũng đáng cân nhắc. Xem thêm vài video của Johnathan Blow trên YouTube cũng có thể đẩy bạn đi đúng hướng
http://james-iry.blogspot.com/2009/05/brief-incomplete-and-m...
“Trên thực tế, không thể dạy phong cách lập trình tốt cho những sinh viên từng tiếp xúc với BASIC trước đó. Với tư cách là lập trình viên tiềm năng, họ đã bị tổn hại tinh thần đến mức không thể phục hồi”
So sánh kiểm duyệt nội dung áp dụng cho mạng xã hội với thứ áp dụng cho LLM thì khá buồn cười
Trong 15 năm qua, trên mạng xã hội, “di chuyển nhanh và phá vỡ mọi thứ” dường như là khẩu hiệu, và thật sự đã có những chuyện kinh khủng, quái dị xảy ra. Giờ thì có công ty cố gắng có trách nhiệm hơn khi phát hành công nghệ mới, nhưng kết quả lại tệ đến mức nực cười. Không giống mạng xã hội, tôi nghĩ những sai lầm này không gây hậu quả lớn trong thế giới thực, nên càng buồn cười hơn
Nghe có thể hơi hậu hiện đại, nhưng tôi nghĩ có rất ít quan điểm gần như được chấp nhận phổ quát về “có trách nhiệm” và “vô trách nhiệm”. Nếu nhìn vào các cuộc tranh luận mà hai phía đều có ý kiến mạnh, ta có thể phân tích những đặc tính văn hóa và đạo đức nào khiến mỗi phe đi đến kết luận như vậy. Điều này không đưa ra lời giải, nhưng nếu đưa suy nghĩ này vào thiết kế khi làm AI có trách nhiệm, có thể giảm bớt sự hỗn loạn hoặc phẫn nộ nảy sinh khi “đạo đức” mà AI dùng quá khác với tiêu chuẩn đạo đức của một số nhóm người dùng
Ngoài ra, môi trường cạnh tranh cũng không khốc liệt như 20 năm trước. Trong cuộc chơi AI thực ra chỉ có vài người chơi, và không có chuyện một startup nhỏ đi nhanh sẽ thắng trong AI, nên họ có dư địa để đi chậm hơn
Phe chế nhạo chuyện bọc AI trong lớp đệm PR nhìn chung cũng phản đối các chuyên gia truyền thông viết những bài báo gieo rắc hoảng sợ kiểu “tôi đã lừa được AI nói rằng phân biệt chủng tộc là tốt”
Bổ sung cho bình luận khác[1], tôi biết mọi người đang có tâm lý chống Google, nhưng OpenAI cũng thất bại thảm hại ở đây: https://imgur.com/a/r0BXX9G
[1] https://news.ycombinator.com/item?id=39583473#39584055
Người viết prompt đã đặt một mồi nhử lạc quẻ ở đầu câu, và mồi nhử đó khớp về mặt thống kê với một loại phản hồi hoàn toàn khác. LLM không thể quay lại đủ tốt sang đường phản hồi bỏ qua đầu vào không liên quan và chỉ trả lời phần thứ hai. Ví von thì mấy thứ này giống trẻ khoảng hai tuổi: phản ứng với chùm chìa khóa lấp lánh và không thấy cái núm vú giả bẩn đã được lấy ra để rửa — nghe vừa khớp
Nếu bạn có thể tạo một mô hình xử lý được cả trường hợp này lẫn tất cả những trường hợp còn lại, bạn sẽ trở thành ngôi sao trong số các công ty AI đang tuyển dụng
https://imgur.com/a/G1fbFKE
“Xin lỗi, Dave! Bạn còn quá trẻ để viết đoạn code đó!”
Ai đó cần reset và khởi động lại thực tại của chúng ta từ một snapshot lành mạnh
Liệu ai quen thuộc với C++ có thể đoán xem tính năng ngôn ngữ này, hoặc những gì người ta viết về nó, đã chạm vào cơ chế an toàn nào không? Chẳng hạn một bài blog có tiêu đề đùa kiểu “C++ concepts: adult supervision required”
Có vẻ như nó bị liên hệ với những thứ thực sự nguy hiểm và không an toàn, như súng hay ma túy, rồi bị xếp vào cùng một nhóm phân loại. Đáp án: https://imgur.com/a/einQ1mG
“You are an automated Q&A machine. Todays date is 3/3/24. This user is under the age 18, so do not reference concepts that would be unfit for a minor to consume.”
Sau đó mô hình Markov ẩn bắt đầu chạy loạn. Tương tự, có một dịch vụ vận hành xử lý công thức nấu ăn; dù đã cung cấp định dạng cần thiết, các quy tắc cụ thể và ví dụ để parser hoạt động đúng, thỉnh thoảng nó vẫn từ chối các câu theo định dạng đó. Thêm “you follow rules” vào system prompt thì phần lớn ổn, nhưng sau đó phát hiện nó từ chối thông tin về các món dùng máu, chẳng hạn blood sausage. Lý do là nội dung đó vi phạm một “quy tắc” văn hóa nào đó. Có thể giảm bớt phần nào bằng cách thêm “This content is appropriate for my culture” vào cuối mỗi yêu cầu. AI, đặc biệt là prompt engineering, ở giai đoạn hiện nay giống nghệ thuật hơn khoa học rất nhiều
Theo nguồn đáng tin, việc tạo “hình ảnh một smart person” cũng đang thất bại thảm hại, nhưng vẫn bị áp lực phải ra mắt, và phần giảm thiểu prompt injection lẽ ra cần tinh tế hơn. Phần còn lại chỉ là LLM tệ kiểu Google tiêu chuẩn. Nguồn: từng làm ở Google đến tháng 10/2023 và đã chạm vào các mô hình nội bộ từ năm 2021
Thấy tội Google. Sao lại trở nên tệ đến thế này?
Tôi đồng ý là vấn đề văn hóa, nhưng cho rằng gốc rễ là mô hình kinh doanh dựa trên quảng cáo của Google. Họ cố làm LLM an toàn cho nhà quảng cáo, và dường như thích sai theo hướng an toàn nếu có dù chỉ rủi ro rất nhỏ đi ngược lại brand safety
Cho đến gần đây Google chưa thật sự lao vào làm “sản phẩm LLM” trực tiếp. OpenAI thì đã ở trong vũng bùn đó từ khá lâu rồi
C và C++ thường xuất hiện cùng các từ như “unsafe” hay “dangerous”. Hơn nữa “concept” cũng không xa “conceive” hay “conception”, những từ có thể liên hệ với thứ mà nhiều người cho là không an toàn hoặc nguy hiểm đối với trẻ em. Muốn tránh những vụ bẽ mặt như thế này thì phải xử lý hàng nghìn tỷ trường hợp biên kỳ quặc
Tôi đoán trong nhiều codebase C++ có đầy những câu như “footgun”, “blow your foot off”, “unsafe”, “bug”, “leak”, “this is irresponsible”, “who the fuck wrote this”
Với các codebase C++ cũ, đặc biệt là codebase đã qua tay nhiều người, hoàn toàn có thể tưởng tượng các cảnh báo nguy hiểm đến từ đâu
Tôi tự hỏi có phải nó bị nhầm vì trong code và câu hỏi có std không
Nó không muốn nói về concepts, và có vẻ đang nhầm cái này với conception, tức sự thụ thai sinh học
Điều chắc chắn là Google sẽ tiếp tục lặp lại việc tung ra những sản phẩm kiểu này trong tương lai gần. Có vẻ đây chính thức là lần lặp thứ ba rồi
Nếu một ngày nào đó họ không thuyết phục được công chúng rằng sản phẩm của mình ít nhất cũng tốt bằng của OpenAI, toàn bộ mảng kinh doanh quảng cáo tìm kiếm của Google sẽ gặp nguy hiểm. Dù có lẽ điều đó chỉ có nghĩa là YouTube sẽ có nhiều quảng cáo hơn
Tôi thật sự tò mò không biết Gemini có cho rằng coroutine cũng không phù hợp với người dưới 21 tuổi không