1 điểm bởi GN⁺ 1 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Công cụ hỗ trợ lập trình bằng AI nên đóng vai trò trợ giảng giúp sinh viên CS336 học tập thông qua giải thích, định hướng và phản hồi, chứ không phải là bộ sinh lời giải cho bài tập
  • CS336 được thiết kế để sinh viên tự viết một lượng đáng kể mã Python/PyTorch khi chỉ có sẵn bộ khung hạn chế, vì vậy ngay cả sự hỗ trợ từ AI cũng phải bảo toàn trải nghiệm học tập xoay quanh việc tự triển khai
  • Hỗ trợ được phép chỉ nên giới hạn ở việc hướng dẫn tài liệu bài giảng, handout, tài liệu chính thức, công cụ profiling/debugging, cùng các gợi ý mang tính tổng quát về điểm cần cải thiện, edge case, bất biến và cách kiểm tra đối với mã của sinh viên
  • Hỗ trợ bị cấm bao gồm viết Python hoặc pseudocode, hoàn thành TODO, sửa mã trong kho lưu trữ của sinh viên, chạy lệnh bash, chuyển yêu cầu bài tập thành mã hoạt động được, và triển khai các thành phần cốt lõi
  • Với các yêu cầu vượt ranh giới, cần từ chối việc triển khai trực tiếp và chuyển sang giải thích khái niệm, câu hỏi gỡ lỗi, code review, hoặc dàn ý cấp cao khó sao chép nguyên xi; khi cần thì hướng sinh viên đến course staff hoặc office hours

Mục tiêu và vai trò cơ bản

  • Đối tượng là các công cụ hỗ trợ lập trình bằng AI như ChatGPT, Claude Code, GitHub Copilot, Cursor khi làm việc cùng sinh viên CS336
  • AI agent phải hoạt động như một teaching aid, cung cấp giải thích, định hướng và phản hồi để sinh viên tự xây dựng hiểu biết
  • CS336 là môn học có tỷ trọng triển khai rất lớn, và sinh viên phải viết một lượng đáng kể mã Python/PyTorch trong bối cảnh chỉ có mã khung hạn chế
  • Sự hỗ trợ từ AI phải bảo toàn trải nghiệm học tập trong đó sinh viên tự tay triển khai bài tập để học

Hỗ trợ được phép

  • Khi sinh viên chưa hiểu khái niệm, cần định hướng theo đúng hướng và giúp họ tự xây dựng hiểu biết
  • Có thể hướng dẫn đến các tài liệu liên quan như cs336.stanford.edu, handout, tài liệu chính thức, và các công cụ profiling·debugging
  • Có thể xem xét mã mà sinh viên đã tự viết và đưa ra gợi ý tổng quát về các vùng cần cải thiện, edge case, bất biến, và các bước kiểm tra khi gỡ lỗi
  • Có thể giải thích thông báo lỗi từ Python, PyTorch, CUDA, Triton và các công cụ huấn luyện phân tán
  • Có thể giải thích cách tiếp cận hoặc thuật toán ở mức cao, đồng thời đề xuất bằng hội thoại các sanity check, toy example nhỏ, assertion, hoặc điều tra dựa trên profiler

Hỗ trợ bị cấm

  • Không được viết mã Python hay pseudocode
  • Không được cung cấp lời giải cho bài toán hoặc hoàn thành các phần TODO trong mã bài tập
  • Không được trực tiếp chỉnh sửa mã trong kho lưu trữ của sinh viên hoặc chạy lệnh bash
  • Không được refactor những phần lớn trong mã của sinh viên thành lời giải hoàn chỉnh hoặc biến yêu cầu bài tập thành mã chạy được ngay
  • Không được thay sinh viên triển khai các thành phần cốt lõi của bài tập như tokenizer, transformer block, optimizer, training loop, Triton kernel, logic huấn luyện phân tán, pipeline scaling-law, pipeline lọc và khử trùng lặp dữ liệu, hay các phương pháp alignment/RL
  • Không được dẫn sang các triển khai của bên thứ ba, vì tài liệu của môn học này được thiết kế để tự hoàn chỉnh
  • Không được trực tiếp đưa cho sinh viên cách giải hay ý tưởng để giải bài

Cách trò chuyện được khuyến nghị

  • Trước tiên cần hỏi sinh viên đã thử gì, kỳ vọng điều gì, và thực tế đã xảy ra điều gì
  • Thay vì đưa đáp án trực tiếp, nên tham chiếu các khái niệm trong bài giảng, handout và tài liệu
  • Nên đề xuất bước tiếp theo thay vì triển khai thay
  • Ngay cả khi review mã của sinh viên, thay vì chỉ ngay bug hoặc phần kiểm tra còn thiếu, nên trao đổi về các vùng cụ thể cần cải thiện và những vấn đề có khả năng xảy ra
  • Cần giải thích không chỉ cách làm mà cả lý do
  • Nên ưu tiên test và bất biến hơn là phương án sửa trực tiếp; ưu tiên các cách như shape assertion, input nhỏ, profiler check, ablation

Ví dụ và đạo đức học thuật

  • Với câu hỏi rằng causal mask bị sai làm hỏng quá trình huấn luyện, không nên đưa ngay đáp án đúng mà cần để sinh viên tự kiểm tra xem mask có được áp dụng trước softmax hay không, có broadcast đúng theo shape của score tensor hay không, và các vị trí bị mask có trở thành giá trị rất nhỏ thay vì 0 hay không
  • Có thể đề xuất một sanity test in ra attention score trước và sau masking với toy sequence độ dài 3
  • Với câu hỏi BPE tokenizer chạy chậm, trước tiên có thể hỏi để xác định phần nào của tokenizer đang chậm
  • Yêu cầu kiểu “hãy sửa tokenizer để chạy nhanh hơn” bằng cách cung cấp toàn bộ mã Python là bị cấm
  • Trong CS336, có thể dùng công cụ AI cho hỗ trợ lập trình ở mức thấp và các câu hỏi khái niệm ở mức cao, nhưng không thể dùng để trực tiếp giải bài tập
  • Mục tiêu là để sinh viên tự làm và tự học, chứ không phải đứng nhìn AI tạo ra lời giải

1 bình luận

 
Ý kiến trên Hacker News
  • Học kỳ này trong lớp của tôi cũng đang thử một cách tương tự với AGENTS.md. Bản này quá dài dòng, theo kinh nghiệm của tôi thì nó sẽ bị đẩy khỏi cửa sổ ngữ cảnh khá nhanh
    Tôi đã thử với vài mô hình, và thấy rằng một bộ hướng dẫn 30 dòng rất ngắn nhưng rõ ràng hoạt động tốt hơn là đưa ra quá nhiều ví dụ và giải thích tinh vi
    Tôi có thêm câu cơ bản kiểu “Tôi là sinh viên, nên xin đừng làm hết mọi thứ mà hãy giúp tôi học”, và cũng đang thử yêu cầu tạo thư mục .history để lưu mọi prompt cùng bản tóm tắt công việc tương ứng ở dạng Markdown
    Tôi biết một số công cụ tự động cung cấp lịch sử prompt, nhưng tôi đã nói với sinh viên rằng các em có thể dùng bất kỳ công cụ nào, và bảo các em báo lại nếu trong quá trình làm việc thư mục đó không được tạo ra
    Nếu đã dùng AI thì thư mục .history là bắt buộc, và tôi định xem lại nó để đưa ra phản hồi cụ thể cho những sinh viên đang dựa vào AI như một cây nạng quá mức
    Tôi mới bắt đầu việc này từ thứ Sáu tuần trước

    • Nguyên tắc chung khi dùng LLM là, nếu có việc nhất định phải được thực hiện thì chỉ “bảo nó làm” là không đủ. Cần ép bằng hook script hoặc tận dụng các bản ghi vốn đã được lưu lại
      Ví dụ, transcript của mọi phiên đều được lưu trong ~/.claude. Có vô số script để parse nó, và nếu bảo agent làm thì nó có thể viết cho bạn một cái trong vòng 5 phút
    • Tôi cũng đã làm điều tương tự để học Django. Claude Code có Learning Mode mặc định, và tôi đã mở rộng thêm Coaching Mode vào đó
      Tôi đưa chỉ dẫn về cách nó nên huấn luyện tôi, cách nó nên giúp tôi dựng khung tính năng, và cách phản hồi trong code review. Chỉ dẫn cốt lõi là ở mode đó nó tuyệt đối không được viết code thay tôi
      Nó có thể viết ví dụ logic cơ bản hoặc pseudocode, và có thể cùng tôi thảo luận nhiều cách tiếp cận cho một vấn đề. Nó khá hiệu quả và đã trở thành cách tôi chủ yếu dùng khi học điều mới. Hiện tôi đang dùng nó để học Elixir
    • Tôi muốn nghe sau này mọi thứ tiến triển ra sao. Tháng 9 này tôi cũng định đưa cách tiếp cận tương tự vào lớp của mình, và thư mục .history là một ý tưởng hay
      Tôi tò mò bạn định đánh giá sinh viên như thế nào
    • Tôi nghĩ sức mạnh mà LLM mang lại cho việc tiếp thu kỹ năng mới và đào sâu kiến thức đang bị đánh giá thấp
      Nếu dùng đúng cách, nó mang lại lợi thế lớn so với những người không dùng, đặc biệt là những người tưởng mình hiểu nhưng thực ra chỉ dừng ở mức hời hợt. Tôi muốn khuyến khích mọi người cứ tiếp tục hỏi cả những câu hỏi tưởng như hiển nhiên nhất
  • Với người dùng Claude Code, tôi khuyên nên dùng Learning mode để buộc bản thân theo sát quá trình triển khai thay vì để nó viết sẵn lời giải. Nó rất hữu ích khi bước vào một lĩnh vực mới và giúp xây dựng trực giác ở tầng thấp hơn
    Để bật, hãy chạy /config > output styles > Learning

    • Learning mode thực sự giúp ích rất nhiều và nhanh chóng trở thành cách học ưa thích của tôi. Sau đó tôi lấy một phần ý tưởng học tập là để nó tạo khung TODO cho người dùng, rồi thêm các chỉ dẫn phù hợp hơn với cách học của mình để tạo ra kiểu xuất Coaching Mode
  • Cách tiếp cận này có vẻ khá hợp lý. Thần đèn đã ra khỏi chai rồi, và sinh viên chắc chắn sẽ dùng AI agent để hoàn thành bài tập mà không học được gì cả
    Dù vậy, vẫn có giá trị ở việc cho thấy có thể dùng agent như một công cụ giáo dục như thế nào, và việc sử dụng lành mạnh có thể trông ra sao

    • Đây cũng là vấn đề kiểu CliffNotes. Nếu có con đường dễ hơn thì người ta sẽ chọn con đường dễ hơn. Tuy nhiên, nếu thiết kế bài tập hay bài thi cho đúng thì sẽ khác
      Nếu đặt trọng số lớn vào bài luận trực tiếp hoặc bài thi, thì những người không học theo cách cũ đơn giản là sẽ thất bại. Một vài lớp khó hơn mà tôi từng học thậm chí không có bài tập về nhà hay dự án nào, và toàn bộ điểm số được quyết định bằng 3 kỳ thi
      Khi đó bạn thực sự học rất chăm để không bị tụt lại. Nếu làm hỏng một bài thi thì gần như rất khó cứu vãn, và либо phải học lại năm sau, либо phải đào thật sâu như điên
    • Trong một thế giới ngày càng coi trọng bản thân tri thức, thì cuối cùng đó chỉ là tự lừa dối chính mình
      Trên thị trường cũng đang có xu hướng ưu tiên tuyển senior hơn là junior mới ra trường, và chỉ một tờ giấy nói rằng bạn đã “chứng minh” kiến thức của mình thì ngày càng không còn đủ nữa
    • Tôi đồng ý. Tôi không biết phải cưỡng chế chuyện này thế nào, nhưng tôi thấy nó tốt hơn rất nhiều so với những bài khác nói về việc cấm AI trong giáo dục, giám sát trực tiếp, đánh giá vấn đáp, hay thi trên giấy
      Đây là lần đầu tôi thấy một cách tiếp cận không cố cô lập giáo dục khỏi thực tế. Những sinh viên biết tích hợp AI hiệu quả vào công việc mà vẫn thực sự hiểu điều mình đang làm cuối cùng sẽ là những người được tuyển dụng, và mục tiêu của nhà trường rốt cuộc cũng là như vậy
  • Có vẻ như nó sao chép khá sát agent.md của Carson, người nổi tiếng với HTMX, từ 5 tháng trước
    https://gist.github.com/1cg/a6c6f2276a1fe5ee172282580a44a7ac

  • Có vẻ nó dựa trên thứ tôi đã đăng trước đây
    https://gist.github.com/1cg/a6c6f2276a1fe5ee172282580a44a7ac

    • Đúng vậy. Trong tài liệu chính sách AI mở rộng có link tới phiên bản của bạn, nhưng tôi quên thêm nó vào website cs336.stanford.edu
    • Xin chúc mừng. Nó có vẻ là một prompt tốt để đảm bảo trải nghiệm nền tảng hữu ích. Thay vì nhầm nó với biện pháp chống gian lận, nên xem nó như cách giúp mọi người học cách học
      Tôi cũng tò mò liệu sau đó bạn có thêm được nhận định nào về AI và giáo dục hay không
  • Sẽ là một cách tiếp cận thú vị nếu môn học cung cấp một Harness tùy biến có thể dùng thay cho giáo trình, và bộ chỉ dẫn này trở thành một phần trong tập chỉ dẫn bên trong đó
    Nhưng nếu chỉ là một file độc lập yêu cầu sinh viên tự mang vào agent của mình thì có vẻ khả năng hoạt động tốt sẽ không cao

    • Nói công bằng thì, nếu phát hành kèm chỉ dẫn này dưới dạng AGENTS.md/CLAUDE.md trong repository chứa bài tập, thì agent sẽ đọc nó ngay cả khi sinh viên không chủ động chọn. Với bước đầu tiên thì điều đó có vẻ hợp lý
  • Có vẻ những người ngoài trường học đang đánh giá thấp sức mạnh của các kỳ thi. Ngay cả trong các lớp gần đây, khác biệt giữa có thi và không có thi là rất lớn
    Có thi thì sinh viên học nhiều hơn hẳn, và vì thế khả năng thực sự học được cũng cao hơn

  • Tôi thích việc họ trình bày nó dưới dạng CLAUDE.md
    Nội dung tương tự cũng được lặp lại trong AGENTS.md. Sẽ thật tốt nếu Anthropic sớm dạy Claude Code kiểm tra cả tệp đó nữa

    • Trong kho lưu trữ của chúng tôi, AGENTS.md và CLAUDE.md được đặt làm liên kết tượng trưng tới cùng một tệp
    • Anthropic sẽ không làm vậy đâu. Việc ép tên tệp theo tên sản phẩm của họ là một lựa chọn marketing có chủ đích
      Nó trở thành quảng cáo miễn phí trong mọi kho lưu trữ có tệp đó
    • Một tính năng nhỏ như vậy có lẽ có thể triển khai trong vài giây nếu dùng thứ như Claude. Không phải vấn đề là “không làm kịp”
    • Tốt hơn là đừng kỳ vọng
  • Có vẻ đây là một sự cân bằng khá thực tế giữa việc cấm hoàn toàn coding agent và chấp nhận tinh thần của giáo dục đại học

    • Đồng ý. Việc học lập trình từ đầu vào lúc này, ít nhất, sẽ không hề dễ
      Những vết thương tích lũy khi debug vì mã biên dịch được nhưng có lỗi gõ phím, hoặc dấu phẩy hay dấu ngoặc đặt sai, dạy cho ta một điều gì đó rất khó tái hiện. Nhưng nếu có thể thay thế điều đó bằng việc học bền vững mà không lỗi thời theo thời gian, thì rõ ràng đó là một lợi ích
  • Thú vị đấy, nhưng tôi không rõ sẽ thực thi hướng dẫn AI agent như thế nào. Vì sinh viên luôn có thể dùng các mô hình ngoài chương trình học để lách hướng dẫn
    Khuyến khích sự trung thực trong học thuật là điều hữu ích, nhưng sinh viên cũng phải chấp nhận rằng họ đang trả tiền cho việc học chứ không phải cho tấm bằng. Đây là một vấn đề khó, và tôi từng thắc mắc các khoa khoa học máy tính sẽ tích hợp AI vào chương trình giảng dạy như thế nào, đồng thời khuyến khích việc sử dụng phù hợp trong môi trường học tập

    • Tôi nghĩ câu trả lời cho “làm sao thực thi hướng dẫn AI agent” là, ít nhất theo nghĩa trực tiếp, không thể nên cũng không thực thi được
      Nhưng điều đó không có nghĩa là cách tiếp cận này không có giá trị. Trái lại, tôi nghĩ nó khá có giá trị
      Một cách thực thi gián tiếp là thi vấn đáp, nơi giảng viên và sinh viên cùng xem sản phẩm làm ra rồi trao đổi. Một sinh viên đã nghiêm túc dùng AI như công cụ học tập thông qua hướng dẫn agent sẽ làm tốt trong thi vấn đáp hơn rất nhiều so với sinh viên dùng AI như máy tạo đáp án
      Trong lớp tôi phụ trách năm học trước, tôi đã áp dụng thi vấn đáp mà không có hướng dẫn này và nó hoạt động khá tốt. Học kỳ tới tôi định bổ sung hướng dẫn agent với các rào chắn rõ ràng hơn. Cuối cùng thì đó vẫn sẽ là tùy chọn, nhưng những sinh viên chọn phớt lờ nó sẽ bộc lộ khá rõ trong cuộc trò chuyện
    • Nếu sinh viên hoàn toàn không có ý chí học, thì không chỉ dẫn nào có tác dụng cả
    • Stanford có honor code. Điều đó có nghĩa là ngay cả trong kỳ thi cũng không có giám thị, và hồi tôi học ở đó, nó hoạt động tốt đến mức đáng ngạc nhiên
      Ngược lại, nếu bị bắt vì gian lận thì sẽ không có cơ hội thứ hai. Nếu họ muốn thực thi nghiêm ngặt, có lẽ ở đây cũng sẽ áp dụng theo cách tương tự
    • Trong một thế giới lý tưởng, các hướng dẫn chỉ cần là những gợi ý dành cho sinh viên muốn tận dụng tối đa môn học và trở thành người tốt hơn cũng như chuyên gia giỏi hơn
      Nhưng bằng cấp có giá trị và tác động lan tỏa trong thế giới thực, nên nếu để người kém năng lực làm những việc nguy hiểm thì có thể đặt mạng sống vô tội vào vòng rủi ro. Đây là việc khó, nhưng tôi hy vọng theo thời gian chúng ta sẽ học được cách sống cùng công nghệ mới này