2 điểm bởi GN⁺ 2024-09-22 | 1 bình luận | Chia sẻ qua WhatsApp
  • SCoRe của Google DeepMind là một cách tiếp cận học tăng cường trực tuyến nhiều lượt, học từ các quỹ đạo chỉnh sửa do chính mô hình tạo ra nhằm nâng cao khả năng LLM tự sửa câu trả lời của mình mà không cần phản hồi bên ngoài
  • Các phương pháp SFT hiện có dễ gặp vấn đề không khớp phân phối, khi lỗi trong dữ liệu huấn luyện lệch với lỗi thực tế của mô hình, hoặc sụp đổ hành vi, khi mô hình hầu như không sửa gì ở câu trả lời thứ hai
  • SCoRe trước hết ràng buộc phân phối lần thử đầu gần với mô hình nền, rồi khởi tạo để cải thiện lần thử thứ hai; sau đó dùng reward shaping để củng cố hành vi sửa lỗi thực sự
  • Trong thử nghiệm với Gemini 1.0 Pro và Gemini 1.5 Flash, hiệu năng tự sửa so với mô hình nền cải thiện 15,6 điểm phần trăm trên MATH và 9,1 điểm phần trăm trên HumanEval
  • Chỉ dùng prompting hoặc SFT ngoại tuyến khó tạo ra khả năng tự sửa nội tại một cách ổn định; cần thiết kế học tăng cường trên dữ liệu tự sinh để ngăn sụp đổ

Vấn đề tự sửa mà SCoRe nhắm tới

  • LLM hữu ích trong các tác vụ suy luận như toán học và lập trình, nhưng không thể thực thi ổn định chiến lược meta là tự xem lại và sửa câu trả lời của mình tại thời điểm kiểm thử
  • Tự sửa là khả năng mô hình xem lại phản hồi ban đầu và chuyển nó thành phản hồi cuối cùng tốt hơn
  • Công việc này tập trung vào bối cảnh tự sửa nội tại, trong đó mô hình tự sửa câu trả lời của mình mà không có đầu vào bên ngoài
    • Tại thời điểm kiểm thử, không dùng bộ kiểm tra đáp án hay phản hồi bên ngoài
    • Trong quá trình huấn luyện, giả định có quyền truy cập hàm thưởng đánh giá việc đầu ra của mô hình có đúng hay không
  • SCoRe huấn luyện một mô hình duy nhất thực hiện cả phản hồi đầu tiên lẫn sửa lỗi, không cần mô hình chỉnh sửa riêng

Những điểm nghẽn của các cách tiếp cận hiện có

  • Nếu chỉ dùng prompting để khuyến khích tự sửa, nhiều nghiên cứu trước cho thấy hiệu năng thậm chí có thể giảm
  • Một số phương pháp phụ thuộc vào các điều kiện bổ sung như đáp án đúng, test case, mô hình mạnh hơn, chú thích của con người, hoặc mô hình refinement riêng
  • Các cách tiếp cận dựa trên SFT có thể tận dụng quỹ đạo chỉnh sửa tự sinh, nhưng trong thử nghiệm không dẫn tới hiệu quả tự sửa lớn theo hướng tích cực
  • Thử nghiệm so sánh trên MATH dùng các biến thể STaR và Pair-SFT
    • STaR chỉ giữ lại những quỹ đạo sửa thành công phản hồi sai rồi thực hiện SFT
    • Pair-SFT huấn luyện một mô hình đơn bằng repair trace tổng hợp ghép cặp phản hồi sai với phản hồi đúng

Kết quả thử nghiệm tự sửa dựa trên SFT

  • Trong thử nghiệm MATH dựa trên Gemini 1.5 Flash, mô hình nền có độ chính xác lần thử đầu là 52,6%, lần thử thứ hai là 41,4%, tức giảm -11,2 điểm phần trăm
  • Pair-SFT nâng độ chính xác lần thử thứ hai lên 54,2%, nhưng mức cải thiện so với lần thử đầu chỉ 1,8 điểm phần trăm
  • Cấu hình STaR cơ bản đạt 55,4% ở lần thử đầu và 41,2% ở lần thử thứ hai, giảm -14,2 điểm phần trăm
  • STaR có thêm dữ liệu correct-to-correct cải thiện Δ(t1,t2) lên 0,4 điểm phần trăm, nhưng hiệu quả tự sửa vẫn nhỏ
  • Pair-SFT có thêm dữ liệu correct-to-correct khiến cả lần thử đầu và lần thử thứ hai đều đạt 55,0%, nghiêng về hướng không thay đổi câu trả lời

Hai chế độ thất bại

  • Các phương pháp dựa trên SFT yếu trước không khớp phân phối
    • Dữ liệu huấn luyện được căn theo các lỗi ở lần thử đầu do mô hình nền tạo ra
    • Trên phân phối lỗi ở lần thử đầu do chính mô hình đã huấn luyện tạo ra, hiệu năng sửa lỗi có thể giảm
  • Pair-SFT làm tăng correction accuracy trên tập phản hồi đầu cố định, nhưng độ chính xác tự sửa lại xấu đi trên các phản hồi đầu do chính học viên tạo ra
  • Khi xảy ra sụp đổ hành vi, ở lần thử thứ hai mô hình không thực hiện sửa đổi thực chất, hoặc chỉ sửa rất bảo thủ
  • Phân tích edit distance ratio cho thấy các mô hình STaR và SFT thường có mẫu hình gần như không sửa gì
  • RL nhiều lượt tiêu chuẩn có thể tăng hiệu năng của cả hai lần thử, nhưng không làm tăng được chênh lệch Δ(t1,t2) giữa lần thử đầu và lần thử thứ hai, nên khó chuyển hóa thành khả năng tự sửa

Cấu trúc huấn luyện của SCoRe

  • SCoRe là cách tiếp cận RL nhiều lượt on-policy, học từ dữ liệu trực tuyến tự sinh để giảm không khớp phân phối
  • Huấn luyện RL cơ bản dùng phương pháp gradient chính sách REINFORCE có kèm KL-divergence penalty so với một mô hình cố định
  • Stage I là giai đoạn khởi tạo để tách biệt hành vi của hai lần thử
    • Phân phối lần thử đầu được đặt ràng buộc KL để giữ gần với mô hình nền
    • Lần thử thứ hai được huấn luyện để nhận phần thưởng cao
    • Mục tiêu là tạo chính sách ban đầu có thể khám phá phản hồi tốt hơn ở lần thử thứ hai
  • Stage II tối ưu hóa đồng thời hai lần thử
    • Thêm progress bonus vào phần thưởng của lần thử thứ hai
    • Bonus được tăng cường khi lần thử thứ hai cải thiện tính đúng/sai so với lần thử đầu
    • Chuyển một phản hồi đầu vốn đúng thành sai chịu tác động âm mạnh

Vì sao cần reward shaping

  • Nếu chỉ dùng mục tiêu RL tiêu chuẩn, cả hai chiến lược khác nhau đều có thể xảy ra
    • Chiến lược cải thiện câu trả lời đầu tiên ở câu trả lời thứ hai
    • Chiến lược tạo câu trả lời đầu tiên tốt nhất có thể và hầu như không sửa ở câu trả lời thứ hai
  • Trong dữ liệu huấn luyện, cả hai chiến lược đều có thể trông tốt, nhưng chiến lược sau không khái quát thành tự sửa trên bài toán mới
  • Reward shaping của SCoRe phản ánh không chỉ tính đúng của kết quả cuối cùng mà cả sự thay đổi về tính đúng trong phần thưởng
  • Thiết kế này củng cố hành vi biến phản hồi đầu sai thành phản hồi thứ hai đúng, thay vì chỉ khớp với những câu trả lời có phần thưởng cao

Hiệu năng và ví dụ

  • SCoRe cho thấy các ví dụ sửa lỗi số học và lỗi suy luận ở lần thử thứ hai trên MATH
    • Ví dụ số học sửa đáp án đầu 1 thành 3 ở lần thử thứ hai trong phép tính tích modulo
    • Ví dụ suy luận sửa đáp án đầu ∞ thành 3 ở lần thử thứ hai trong bài toán về số lượng giá trị của một hàm
  • Trên Gemini 1.0 Pro và Gemini 1.5 Flash, SCoRe đạt hiệu năng tự sửa ở mức hàng đầu
  • So với các mô hình Gemini nền, mức cải thiện tự sửa là 15,6 điểm phần trăm trên MATH và 9,1 điểm phần trăm trên HumanEval
  • Trong thử nghiệm scaling tại thời điểm suy luận trên MATH, có những vùng mà dùng mẫu cho tự sửa tuần tự hiệu quả hơn so với chỉ dùng chúng để sinh trực tiếp song song

Hàm ý thực tiễn

  • Huấn luyện tự sửa khó có thể xử lý chỉ bằng cách thu thập dữ liệu câu trả lời đúng rồi SFT
  • Nếu mô hình cần sửa những lỗi do chính nó tạo ra tại thời điểm kiểm thử, trong huấn luyện nó cũng phải học hành vi sửa trên phân phối phản hồi của chính mình
  • Ràng buộc cốt lõi của SCoRe là cần hàm thưởng đánh giá đúng/sai trong quá trình huấn luyện, nhưng không dùng phần thưởng đó tại thời điểm kiểm thử
  • Để tăng khả năng tự sửa trong khi vẫn triển khai một mô hình đơn, cần RL nhiều lượt và thiết kế phần thưởng chống sụp đổ, ngay cả khi không có mô hình sửa riêng hay teacher supervision

1 bình luận

 
GN⁺ 2024-09-22
Các ý kiến trên Hacker News
  • Trông có vẻ là một cách tiếp cận tương tự mô hình o1 của OpenAI, nhưng vì bài báo về o1 chưa được công bố nên không có trích dẫn
    Đáng tiếc là tôi không thấy nhắc gì đến việc công bố trọng số

    • Bài báo này dường như nói về việc dùng reinforcement learning như một phần của quá trình huấn luyện chính hoặc ở giai đoạn sau đó, rồi sau đó mô hình suy luận như bình thường
      o1 cũng có thể đã như vậy, nhưng tôi nghĩ thay đổi lớn hơn là quá trình suy nghĩ ở runtime: sau khi nhận prompt, trước khi đưa ra câu trả lời cuối cùng, nó “suy nghĩ” bằng từ ngữ và tự điều chỉnh lại tại thời điểm chạy
      Nếu cách hiểu này đúng thì hai cách tiếp cận không giống nhau. Theo tôi biết, OpenAI đã dùng reinforcement learning cho mọi mô hình kế tiếp kể từ phiên bản ChatGPT đầu tiên, và đó cũng là lý do ngay từ đầu UI cho phép để lại phản hồi
    • Tôi tò mò là chúng giống nhau ở điểm nào
  • Bài báo hơi khó hiểu vì thay vì giải thích trực tiếp luận điểm cốt lõi, nó lại nói vòng quanh khá nhiều. Theo cách tôi hiểu, mục tiêu là khiến LLM đưa ra câu trả lời chính xác hơn cho các bài toán khó
    Một giả thuyết là có thể huấn luyện cho mô hình hành vi tự sửa, để khi nhận một câu trả lời sai làm đầu vào, nó cải thiện thành câu trả lời tốt hơn hoặc đúng hơn
    Trước đây cũng đã có nhiều kỹ thuật reinforcement learning dùng chất lượng của câu trả lời đã sửa làm phần thưởng để huấn luyện hành vi này, nhưng không hoạt động tốt, và hành vi học được cũng không khái quát hóa tốt
    Điểm cốt lõi của bài báo này là khi mô hình nhận các ví dụ huấn luyện dạng Answer 1, Reasoning, Corrected Answer cùng tín hiệu “hãy làm cho Corrected Answer tốt hơn”, thì thực ra có hai lời giải hoàn toàn khả dĩ. Một là cải thiện Reasoning, Corrected Answer như chúng ta mong muốn, còn cách kia là chỉ cải thiện chính Answer 1 để Corrected Answer = Answer 1
    Trong các nghiên cứu trước, điều sau đã thực sự xảy ra, nên tôi cho rằng việc huấn luyện hành vi mong muốn đã thất bại. Mô hình không cải thiện hành vi sửa đổi, mà chỉ cố cải thiện câu trả lời đầu tiên
    Giải pháp của bài báo này là thay đổi nhẹ quy trình huấn luyện để khuyến khích cách tiếp cận thứ nhất. Vì vậy đây là một nỗ lực nhằm thực sự huấn luyện hành vi mong muốn là sửa câu trả lời trước đó
    Quá trình huấn luyện diễn ra qua hai giai đoạn. Ở giai đoạn 1, họ dùng loss KL divergence để buộc câu trả lời đầu tiên được giữ nguyên, đồng thời thưởng nếu câu trả lời thứ hai được cải thiện. Cách này giữ nguyên phân phối câu trả lời ban đầu, tránh vấn đề sau đó các câu trả lời sai biến mất khỏi mô hình trong quá trình huấn luyện khiến mô hình ít gặp “câu trả lời sai” hơn, đồng thời có thể khởi tạo hành vi tự sửa trong mô hình
    Ở giai đoạn 2, mô hình cũng có thể thay đổi câu trả lời đầu tiên, nhưng hàm thưởng được điều chỉnh để thưởng cao hơn cho các trường hợp đảo chiều, trong đó câu trả lời đầu tiên tệ còn câu trả lời thứ hai tốt. Ở giai đoạn này, mô hình có thể dùng cả chiến lược cải thiện câu trả lời đầu tiên lẫn chiến lược cải thiện khả năng tự sửa, nhưng phần thưởng lớn hơn nghiêng về chiến lược sau. Đây trông giống như một quá trình tinh chỉnh nhằm duy trì hành vi tự sửa trong khi vẫn mài giũa hiệu năng tổng thể
    Theo các chỉ số, kỹ thuật này hoạt động tốt hơn và khái quát hóa tốt hơn
    Tuy nhiên, tôi hơi lo rằng ở giai đoạn 2, để tối đa hóa phần thưởng đảo chiều, mô hình có thể học cách cố tình viết Answer 1 tệ hơn. Có lẽ cần một cơ chế cân bằng để Answer 1 không xấu đi, nhưng tôi không rõ điều đó có nằm trong hàm thưởng hay đây có thực sự là một mối lo hợp lý không

    • Cách câu trả lời cứ nói vòng quanh ý tưởng giải thích rất đúng một hiện tượng thường thấy trong nhiều đầu ra của LLM. Tôi chưa trực tiếp dùng o1, nhưng nó có vẻ đang sửa vấn đề đó
    • Tôi thắc mắc đoạn “cách kia là chỉ cải thiện chính Answer 1 để Corrected Answer = Answer 1” nghĩa là gì
      Chẳng phải cải thiện Answer 1 ngay từ đầu đã là mục tiêu sao? Chỉ đọc phần giải thích thì Answer 1 nghe giống như đầu ra của LLM, chứ không phải đầu vào
  • LLM không trực tiếp ghi nhớ trải nghiệm cảm giác trong quá trình tự học. Một trong những cách chính tôi tự sửa mình là, khi định nói về điều gì đó, tôi xét xem mình biết điều đó như thế nào/vì sao, rồi ước lượng xem mình thực sự biết, đang bịa ra, hay đã nghe từ một nguồn kém tin cậy
    Nếu LLM không thể ghi nhớ việc tự học của mình theo bất kỳ cách nào thì tôi cho rằng tự sửa lỗi là khó

    • Vậy ý là giải pháp là gắn mô tả trải nghiệm cảm giác trước mỗi batch huấn luyện sao? Chẳng hạn như “Bạn đã đọc nội dung sau trong một quán cà phê ở Paris năm 1997. Trong lúc đọc, bạn đang ăn bánh baguette rất ngon, trứng luộc và uống cà phê rang quá tay. Người phụ nữ ở bàn bên cạnh đội một chiếc mũ xanh tuyệt đẹp”
      Rồi post-train mô hình cuối cùng để nó nhớ đã đọc văn bản nào ở đâu, hoặc nếu gặp văn bản chưa từng đọc thì không nhớ bất kỳ trải nghiệm nào sao?
      Nếu ai đó thử cách này và thành công, tôi sẽ bỏ chương trình tiến sĩ và quay lại làm cố vấn trại hè
    • Có vẻ là cùng hướng. Thực tế là có ích: Source-Aware Training Enables Knowledge Attribution in Language Models (https://arxiv.org/abs/2404.01019)
      Theo phần tóm tắt, họ khám phá huấn luyện nhận biết nguồn để trao cho LLM năng lực như vậy. Cụ thể là (i) huấn luyện LLM liên kết tri thức trong từng tài liệu với một định danh tài liệu nguồn duy nhất, rồi (ii) instruction-tuning để khi có prompt, mô hình trích dẫn các nguồn tiền huấn luyện làm cơ sở
    • Hoàn toàn không đồng ý: https://mypapers.nyc3.cdn.digitaloceanspaces.com/the_phenomenology_of_machine.pdf
      Cái này cũng đáng tham khảo: https://www.sciencedirect.com/science/article/pii/S1571064523001094
      Cách huấn luyện của o1 được mô tả trong công thức hóa này như mô hình strange particle
    • Có vẻ bạn đang đặt quá nhiều trọng số vào giá trị của nó trong sử dụng hằng ngày. Khi tri thức tích lũy, đặc biệt là những thông tin kiểu tạp học không nằm trong một hệ thống nào, mẫu “không biết vì sao mình biết điều này, nhưng đáp án là X” rất phổ biến
      Ngay cả với tri thức nằm trong một hệ thống như khoa học máy tính, theo thời gian trải nghiệm cảm giác cũng mờ dần vào nền. Chẳng hạn, giống như những người làm khoa học máy tính, tôi có thể nói ngay đặc tính hiệu năng O() của khá nhiều thuật toán, nhưng việc tôi học một thuật toán cụ thể ở đâu thì đã mờ nhạt từ lâu
      Khi con người tự sửa mình, quy trình thông thường không phải là việc gì ghê gớm như “ước lượng xem mình có biết điều này không” hay “nhớ lại xem mình có nghe từ một nguồn kém tin cậy không”. Thường chỉ có cảm giác mơ hồ rằng “mình chưa hiểu hoàn toàn”, và tự sửa là kiểm chứng lại thông tin bằng nguồn đáng tin cậy
      Vì vậy tôi không nghĩ trải nghiệm cảm giác trong hồi tưởng ký ức quan trọng như bạn tưởng
    • Nếu không đang chịu ảnh hưởng của thuốc hoặc trải qua khủng hoảng sức khỏe tâm thần nghiêm trọng, thì nó gần với bịa chuyện hợp lý hóa hơn là ảo giác
  • Spoiler: trong mô hình dự đoán token tiếp theo tự hồi quy, không thể loại bỏ ảo giác; còn gọi là định luật LeCun
    Vấn đề ở đây là mọi người đang cố dùng mô hình ngôn ngữ như một bộ giải quyết vấn đề mang tính quyết định, thay vì dùng cho việc nó thực sự làm tốt là tạo văn bản bán sáng tạo

    • Định luật LeCun có thực sự tồn tại không? Tìm kiếm hầu như không ra kết quả, chỉ thấy vài bình luận HN dùng theo định nghĩa khác. Có thể thuật ngữ này xuất phát từ một bài báo ít người biết, nhưng với mức độ tài liệu hóa nghèo nàn như vậy thì đem ra trong ngữ cảnh này có vẻ lạ
    • Tôi tò mò liệu đã có ai thử đưa perplexity của các token trước đó trở lại vào mô hình, để mô hình có thể biết rằng nó đang đi chệch hướng chưa
      Trong trường hợp đó, có thể huấn luyện nó đưa ra câu trả lời kém chắc chắn hơn, qua đó giảm khuynh hướng ảo giác
    • Mừng là có góc nhìn này
      Tôi hay giải thích với mọi người như sau. Hãy tưởng tượng một công ty chỉ có bộ phận PR. Họ rất giỏi viết thông cáo báo chí và trả lời câu hỏi của phóng viên, nhưng vì không có phần còn lại của công ty nên không có gì ràng buộc đầu ra văn bản một cách có ý nghĩa
      Nếu đây là một vũ trụ khác nơi mọi người hiểu điều đó, LLM đã hoàn toàn không được dùng cho các việc nghiêm túc, mà được dùng nhiều cho những dự án nghệ thuật nhỏ thú vị
    • Lập luận của LeCun có lỗi nghiêm trọng. Nó hoàn toàn không chặt chẽ, và không nên rút ra một kết luận bao quát như vậy khi không có căn cứ
    • Bản thân chữ “không bao giờ” không phải là vấn đề. Con người cũng hành xử tương tự
      Nhiệt hạch chỉ cần được giải đúng một lần
  • Đây về cơ bản có phải là một dạng chưng cất tri thức nào đó không?

  • Tôi không thích việc các nhà bình luận AI đã phổ biến cách gọi ảo giác. Nó nhân cách hóa một khối thống kê, khiến người ta có cảm giác như nó đang thực hiện một quá trình tư duy sâu sắc tương tự tâm trí con người
    Không phải vậy, nó không “ảo giác”. Nó cũng không nói dối hay bịa đặt. Nó chỉ phun dữ liệu ra theo cách các underlying weights kích hoạt
    Nếu đây là một endpoint JSON API thông thường, ta sẽ không nói API đó bị ảo giác; ta sẽ nói “API này tệ hại” vì nó bị hỏng

    • Tôi nhìn ngược lại. Con người cho rằng tâm trí con người thực hiện “tư duy sâu sắc”, nhưng thực ra có thể nó chỉ là một khối thống kê
    • Từ chính xác là bịa lấp. Đó là hiện tượng lấp vào thông tin bị thiếu, nhưng có thể không biết mình đang làm vậy
      Vì không hệ thần kinh nào có thể lưu trữ hoàn hảo dữ liệu học được, nên tất cả chúng ta đều bịa lấp ở một mức độ nào đó
      Ngược lại, “ảo giác” ở con người gần với một sự đổ vỡ cụ thể của vòng phản hồi cảm giác. LLM ngay từ đầu đã không có quá trình như vậy
      Ảo giác xảy ra khi vòng phản hồi cảm giác bên trong lấn át đầu vào cảm giác thực, tạo ra và xử lý trải nghiệm cảm giác giả hoặc luồng tín hiệu giả. Trải nghiệm giả đang diễn tiến đó có thể có hoặc không bao gồm một phần thông tin cảm giác thực
      Khi mơ, chúng ta đang ảo giác. Một vòng trải nghiệm cảm giác tách khỏi cảm giác thực vận hành tự do, nhưng nó cũng có mục đích hữu ích
      Lý do cảm giác có phản hồi là để dùng diễn giải về đầu vào cảm giác làm manh mối, giúp việc diễn giải đầu vào ở khoảnh khắc tiếp theo dễ hơn. Nhưng nếu đầu vào mới lệch nhiều so với kỳ vọng, điều quan trọng là diễn giải đang diễn ra phải được đặt lại để nhanh chóng định hướng lại
      Để sửa một diễn giải sai theo đúng thay đổi ngữ cảnh thực tế, việc quay lại diễn giải đầu vào thô không chỉ quan trọng; việc đặt lại như vậy còn là tín hiệu rằng có điều gì đó mới hoặc ngoài dự đoán đã xảy ra, nên rất có khả năng kích hoạt học tập
      Vì vậy việc chọn thuật ngữ “ảo giác” là không may và gây hiểu lầm
    • Tin không hay là thuật ngữ đó đã được dùng trong nghiên cứu deep learning từ rất lâu trước khi LLM xuất hiện. Không phải các nhà bình luận đã phổ biến điều gì đó hay cố biện minh cho nhược điểm của LLM, mà đó là tên các nhà nghiên cứu đặt cho hiện tượng họ nghiên cứu
      Ví dụ các bài báo dùng theo cách này trước thời LLM như sau
      2021: The Curious Case of Hallucinations in Neural Machine Translation (https://arxiv.org/abs/2104.06683)
      2019: Identifying Fluently Inadequate Output in Neural and Statistical Machine Translation (https://aclanthology.org/W19-6623/)
  • Dù có dùng một thuật toán thông minh để dẫn dắt một bộ dự đoán từ tiếp theo ngu ngốc, không có trí tuệ, thì cuối cùng nó vẫn chỉ là một thuật toán không có trí tuệ
    Đúng là nó phân loại rác một cách tao nhã hơn, nhưng rốt cuộc rác vẫn là rác
    Tôi từng hy vọng một cách tiếp cận kiểu reinforcement learning sẽ thay thế cách tiếp cận kiểu Transformer, nhưng điều đó gần như chỉ là mơ hão