3 điểm bởi GN⁺ 2023-09-24 | 1 bình luận | Chia sẻ qua WhatsApp
  • Các LLM lớn có thể giải quyết tác vụ mới chỉ với few-shot, nhưng chi phí phục vụ rất cao, nên nhóm Google Cloud AI đề xuất distilling step-by-step, một phương pháp huấn luyện mô hình nhỏ chuyên biệt cho tác vụ cùng với lý do bằng ngôn ngữ tự nhiên (rationale)
  • Cách này dùng few-shot Chain-of-Thought(CoT) để trích xuất suy luận trung gian của LLM, rồi chuyển thành học đa nhiệm, trong đó mô hình T5 học đồng thời dự đoán nhãn và tạo lý do
  • Thử nghiệm dùng PaLM 540B làm LLM chuẩn, T5 làm mô hình downstream, và đánh giá các bài toán suy luận ngôn ngữ tự nhiên, hỏi đáp tri thức thường thức, bài toán lời văn số học trên e-SNLI, ANLI, CQA, SVAMP
  • Trên e-SNLI, phương pháp đạt hiệu năng tốt hơn fine-tuning tiêu chuẩn chỉ với 12,5% toàn bộ dữ liệu; trên ANLI, T5 770M vượt hiệu năng few-shot của PaLM 540B với 80% dữ liệu, đồng thời giảm kích thước mô hình hơn 700 lần
  • Đây là cách tiếp cận giúp giảm sự đánh đổi giữa triển khai mô hình nhỏ và chi phí thu thập dữ liệu huấn luyện, hiện được cung cấp dưới dạng private preview trên Vertex AI

Chi phí triển khai LLM và giới hạn của việc huấn luyện mô hình nhỏ

  • LLM có thể xử lý các tác vụ mới chưa từng thấy bằng prompting zero-shot và few-shot, nhưng trong dịch vụ thực tế, kích thước mô hình là một ràng buộc lớn
    • Để phục vụ một LLM cỡ 175B, cần ít nhất 350GB bộ nhớ GPU trên hạ tầng chuyên dụng
    • Các LLM mới nhất thời điểm đó được xây dựng ở quy mô vượt 500B tham số
  • Trong thực tế, người ta thường triển khai các mô hình nhỏ chuyên biệt theo tác vụ, và thường dùng hai cách
    • Fine-tuning: cập nhật một mô hình nhỏ đã được tiền huấn luyện như BERT hoặc T5 bằng dữ liệu downstream do con người gán nhãn
    • Distillation: huấn luyện mô hình nhỏ bằng nhãn do LLM lớn hơn tạo ra
  • Cả hai cách đều còn gánh nặng chi phí
    • Fine-tuning cần nhãn do con người tạo, nên tốn nhiều chi phí và công sức
    • Distillation cần lượng lớn dữ liệu chưa gán nhãn, và dữ liệu này cũng có thể khó thu thập

Ý tưởng cốt lõi của Distilling step-by-step

  • Distilling Step-by-Step! Outperforming Larger Language Models with Less Training Data and Smaller Model Sizes là một phương pháp nhằm giảm sự đánh đổi giữa kích thước mô hình và chi phí thu thập dữ liệu huấn luyện
  • distilling step-by-step trích xuất lý do bằng ngôn ngữ tự nhiên, tức các bước suy luận trung gian, từ LLM và dùng chúng làm tín hiệu giám sát bổ sung để huấn luyện mô hình nhỏ
  • Lý do bằng ngôn ngữ tự nhiên cho thấy mối liên hệ giữa câu hỏi đầu vào và câu trả lời đầu ra
    • Ví dụ, khi được cung cấp chiều dài và chiều rộng của căn phòng cùng diện tích thảm đã có, LLM có thể tạo lý do trung gian như “Area = length * width”
    • Những lý do như vậy có thể chứa tri thức tác vụ mà ban đầu mô hình nhỏ phải học từ rất nhiều dữ liệu
  • Thay vì chỉ học nhãn, mô hình học đồng thời nhãn và lý do, giúp mô hình nhỏ nắm bắt tác vụ với ít dữ liệu hơn

Quy trình huấn luyện hai bước

  • Bước đầu tiên là quá trình trích xuất lý do từ LLM bằng few-shot CoT prompting
    • Đưa vào prompt của LLM các ví dụ gồm ba thành phần theo từng tác vụ: đầu vào, lý do, đầu ra
    • LLM theo các ví dụ này để tạo lý do cho đầu vào mới
  • Trong ví dụ hỏi đáp tri thức thường thức, câu hỏi “Sammy wanted to go to where the people are” được đưa ra cùng các lựa chọn
    • Đáp án đúng là “(a) populated areas”
    • Lý do cung cấp mối liên hệ rằng “đó phải là nơi có nhiều người, và trong các lựa chọn chỉ có populated areas là nơi có nhiều người”
  • Ở bước thứ hai, các lý do đã trích xuất được đưa vào việc huấn luyện mô hình nhỏ
    • Ngoài tác vụ dự đoán nhãn tiêu chuẩn, mô hình học thêm tác vụ tạo lý do mới
    • Thêm tiền tố tác vụ như [label] hoặc [rationale] vào trước đầu vào mô hình để phân biệt hai tác vụ
    • Tác vụ tạo lý do huấn luyện mô hình tạo ra các bước suy luận trung gian, qua đó dẫn dắt mô hình dự đoán nhãn tốt hơn

Thiết lập thử nghiệm và đối tượng so sánh

  • LLM chuẩn là PaLM 540B
  • Với mô hình downstream chuyên biệt theo tác vụ, nhóm dùng mô hình T5
  • CoT prompting sử dụng các prompt CoT sẵn có khi có thể, và tự xây dựng ví dụ cho các bộ dữ liệu mới
  • Đánh giá được thực hiện trên 4 benchmark thuộc 3 tác vụ NLP
    • e-SNLI, ANLI: suy luận ngôn ngữ tự nhiên
    • CQA: hỏi đáp tri thức thường thức
    • SVAMP: bài toán lời văn số học
  • Tiêu chí so sánh gồm hai nhánh
    • Để so với LLM dùng few-shot prompt, nhóm sử dụng few-shot CoT prompting của PaLM 540B
    • Fine-tuning tiêu chuẩn và distillation tiêu chuẩn cũng được đưa vào so sánh; nội dung blog tập trung vào so sánh với fine-tuning tiêu chuẩn

Vượt fine-tuning tiêu chuẩn với ít dữ liệu huấn luyện hơn

  • distilling step-by-step cho hiệu năng tốt hơn fine-tuning tiêu chuẩn với ít dữ liệu huấn luyện hơn nhiều
  • Trên e-SNLI, phương pháp đạt hiệu năng tốt hơn fine-tuning tiêu chuẩn được huấn luyện bằng toàn bộ dữ liệu, dù chỉ dùng 12,5% toàn bộ bộ dữ liệu
  • Ở các bộ dữ liệu khác, lượng dữ liệu cần thiết cũng giảm
    • ANLI: giảm 75% kích thước bộ dữ liệu
    • CQA: giảm 25% kích thước bộ dữ liệu
    • SVAMP: giảm 20% kích thước bộ dữ liệu
  • So sánh này được thực hiện bằng mô hình T5 220M trên các bộ dữ liệu do con người gán nhãn với nhiều kích thước khác nhau

Vượt chuẩn PaLM bằng mô hình triển khai nhỏ hơn

  • distilling step-by-step đạt hiệu năng tốt hơn LLM dùng few-shot CoT prompt bằng các mô hình nhỏ hơn rất nhiều
  • Trên e-SNLI, mô hình T5 220M đạt hiệu năng tốt hơn PaLM 540B
  • Trên ANLI, mô hình T5 770M đạt hiệu năng tốt hơn PaLM 540B
    • Mô hình này nhỏ hơn PaLM hơn 700 lần
    • Cùng mô hình T5 770M đó khó đạt đến hiệu năng của PaLM nếu chỉ dùng fine-tuning tiêu chuẩn
  • Đây là kết quả cho thấy đồng thời kích thước mô hình nhỏ và việc vượt hiệu năng chuẩn của LLM

Kết quả giảm đồng thời dữ liệu và kích thước mô hình

  • Trên ANLI, distilling step-by-step vượt hiệu năng few-shot của PaLM 540B chỉ với T5 770M80% toàn bộ dữ liệu
  • Trong cùng điều kiện, fine-tuning tiêu chuẩn không bắt kịp hiệu năng của PaLM ngay cả khi dùng 100% toàn bộ dữ liệu
  • Thông qua tìm kiếm thô, nhóm xác định kích thước mô hình T5 tối thiểu và số ví dụ do con người gán nhãn tối thiểu cần có để vượt hiệu năng few-shot CoT của LLM
  • Kết quả là phương pháp này đồng thời giảm kích thước mô hình triển khailượng dữ liệu huấn luyện cần thiết để vượt hiệu năng của LLM

Hình thức cung cấp

  • distilling step-by-step được cung cấp dưới dạng private preview trên Vertex AI
  • Người muốn sử dụng được hướng dẫn liên hệ vertex-llm-tuning-preview@google.com kèm số Google Cloud Project và tóm tắt trường hợp sử dụng

1 bình luận

 
GN⁺ 2023-09-24
Các ý kiến trên Hacker News
  • Có vẻ các mô hình chuyên gia nhỏ hơn sẽ thống trị hầu hết ứng dụng. Giữa kích thước và tính khả dụng có một điểm tối ưu cùng sự cân bằng tinh tế, và nhiều cơ chế như bài viết đã cho thấy có lẽ sẽ giúp tìm ra và hiện thực hóa điểm tối ưu đó

    • Một mô hình đa dụng lớn có thể được cấu thành từ nhiều mô hình chuyên gia nhỏ, cùng một mô hình trung gian quyết định nên hỏi mô hình chuyên biệt theo miền nào
  • Việc dùng T5 cho mô hình chưng cất khá thú vị. Tôi từng nghĩ kiến trúc encoder-decoder đang dần biến mất, nhưng có vẻ nó vẫn còn liên quan
    Một điểm thú vị nữa là ý tưởng này cũng không phải sáng tạo đến mức không tưởng hay quá khác khuôn mẫu. Nó cho thấy vẫn còn nhiều trái cây treo thấp để khai phá, và tương lai của các mô hình ngôn ngữ lớn cũng chưa hề được định đoạt. Lời giải thật sự có thể là một hỗn hợp chuyên gia được huấn luyện theo cách này. Thật hào hứng khi thấy chỉ cần tìm đúng tổ hợp ý tưởng thì mục tiêu gần như chén thánh có vẻ có thể đạt được

    • Họ T5 rất tuyệt. FastChat-T5 có chất lượng sinh văn bản đáng ngạc nhiên, chẳng hạn cũng rất tốt cho chatbot sinh tăng cường bằng truy xuất, và có thể chạy đủ nhanh trên CPU để trò chuyện thời gian thực
    • Bài báo được nhắc đến đã được nộp vào tháng 5. Kiến trúc encoder-decoder vẫn có vẻ khá hợp lý trong các mô hình đa phương thức
      Vẫn còn nhiều trái cây treo thấp. Tôi có cảm giác đã thấy hàng chục biến thể như chuỗi suy nghĩ, cây suy nghĩ, đồ thị suy nghĩ, self-ask, self-critique, self-plan, self-reflect, v.v.
    • Tôi tò mò vì sao bạn nghĩ kiến trúc encoder-decoder đang dần biến mất
  • Lượng hoạt động và tiến bộ trong lĩnh vực mô hình ngôn ngữ lớn/machine learning/trí tuệ nhân tạo thật sự đáng kinh ngạc. Đặc biệt trong bối cảnh phần cứng như Nvidia rất đắt đỏ, những tối ưu hóa như thế này đặc biệt có giá trị

  • Đây chẳng phải là cùng nội dung với https://arxiv.org/abs/2212.08410 nhưng xuất hiện sau 1 năm sao

    • Mức cải thiện thì ấn tượng, nhưng GSM8K 22% quả là khó gây chú ý nếu xem như kết quả cuối cùng
  • Tôi không phải nhà nghiên cứu, nhưng luôn có trực giác rằng mô hình hiệu quả nhất sẽ là đa phương thức và được huấn luyện với một chương trình cốt lõi được thiết kế cẩn thận
    Tôi muốn bảo đảm hệ thống học được và duy trì các cấu trúc cùng kỹ năng nền tảng cần thiết để khái quát hóa hiệu quả và chính xác. Nghĩa là duy trì những thứ đó, đồng thời nạp nhiều dữ liệu đa dạng để nó học các ngoại lệ và cách kết hợp kỹ năng. Tuy nhiên cần có cách bảo đảm các kỹ năng và tri thức cốt lõi đến cùng. Có thể làm được nếu yêu cầu nó xuất ra không chỉ đáp án cuối cùng mà cả quá trình hiểu hoặc thao tác, như trong bài báo
    Ví dụ với một mô hình sinh mã, có thể yêu cầu nó xuất ra mô phỏng máy trạng thái của chương trình được yêu cầu

    • Tôi đồng ý rằng đa phương thức là hướng đi, nhưng hoàn toàn không trực quan vì sao nên kỳ vọng chương trình học phải được thiết kế cẩn thận. Có thể so sánh với https://gwern.net/scaling-hypothesis
    • Nếu nghĩ đến ý tưởng chương trình học ở trường, tôi tự hỏi liệu thứ tự dữ liệu huấn luyện có tạo khác biệt không. Có thể khác nhau tùy việc cho ăn từ đơn giản đến phức tạp, hay ngược lại. Chẳng phải gradient descent rõ ràng có thể đi đến các cực tiểu cục bộ khác nhau, có cái tốt hơn hoặc tệ hơn sao
  • Tôi thắc mắc vì sao trong hình đầu tiên, lượng dữ liệu huấn luyện của mô hình ngôn ngữ lớn lại ít hơn mô hình chưng cất và mô hình chuyên biệt theo tác vụ
    Hay là các tác giả đã tính cả lượng dữ liệu huấn luyện cần cho mô hình ngôn ngữ lớn vào dữ liệu huấn luyện cần cho mô hình chưng cất/chuyên biệt theo tác vụ
    https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj...

    • Đúng vậy. Họ đang đếm lượng dữ liệu bạn phải tự thu thập để giải quyết bài toán
      Bạn có thể lấy một mô hình ngôn ngữ lớn đã được tiền huấn luyện, và khi đó dữ liệu tôi cần thu thập là dữ liệu cần để tinh chỉnh mô hình đó
  • Có phải trong những mô hình ngôn ngữ lớn khổng lồ kia còn rất nhiều dung lượng chưa được dùng đến, hay là mô hình ngôn ngữ nhỏ chỉ đang bắt chước tác vụ suy luận? Tức là bắt chước việc bắt chước?

    • Không có ranh giới bản chất nào giữa thực và bắt chước
      Trong tập dữ liệu dùng để huấn luyện các mô hình ngôn ngữ lớn khổng lồ có rất nhiều nhiễu cản trở tiến bộ. Ngoài ra còn có nhiều kiến thức không liên quan, khiến mô hình cũng phải học hoặc ghi nhớ chúng, vì thế cần số lượng tham số phi lý
      Nếu không cố dạy mô hình ngôn ngữ tổng hòa tri thức nhân loại mà cung cấp một tập dữ liệu được tuyển chọn chất lượng cao, rào cản về quy mô sẽ thấp hơn nhiều
      https://arxiv.org/abs/2305.07759
    • Câu hỏi đó gần như tương đương với “các mô hình ngôn ngữ lớn khổng lồ hiện nay có gần tối ưu không”, và có vẻ khá rõ là không
      Tôi tò mò liệu có ý tưởng nào về cách ước tính kích thước tối ưu không
    • Mô hình lớn khái quát hóa tốt hơn. Mô hình nhỏ dễ huấn luyện cho tác vụ cụ thể hơn
  • Thú vị. Liệu RLHF có bắt buộc để một mô hình nhỏ đạt hiệu năng tương tự các mô hình ngôn ngữ lớn hiện đại không? Các vấn đề liên quan đến cấu trúc đầu ra, giọng điệu và hiểu miền có vẻ có thể giải quyết bằng instruction tuning, nhưng tôi không chắc như vậy có đủ để cải thiện năng lực suy luận của mô hình nhỏ không

  • Người ta nói để phục vụ một mô hình ngôn ngữ lớn 175 tỷ tham số cần tối thiểu 350GB bộ nhớ GPU trên hạ tầng chuyên dụng
    Apple đang bán Mac Studio hỗ trợ tối đa 144GB bộ nhớ GPU khả dụng
    Nếu họ tung ra Mac Pro có hơn 300GB và chiếm lĩnh thị trường phục vụ mô hình ngôn ngữ lớn thì hẳn sẽ khá thú vị

    • Có framework nào có thể xử lý theo batch mô hình ngôn ngữ lớn trên Metal không? Có vẻ GGML hay MLC vẫn chưa có
      Nếu không thì đó chỉ là một lý do nữa khiến hiện tại nó chưa phù hợp để host mô hình ngôn ngữ lớn
      Dù sao, bên có thể thật sự làm đảo cục diện là Intel. Về lý thuyết họ có thể bước vào với các card Arc 2x48GB và nhắm vào thị trường mà AMD/Nvidia không nhảy vào vì khách hàng card chuyên nghiệp, với giá thấp hơn
    • Tôi hy vọng lợi thế phần cứng của Apple sẽ được phát huy đúng mức ở thế hệ M3. Việc A17 Pro có hỗ trợ ray tracing khiến tôi hy vọng họ có thể nhanh chóng bắt kịp các ông lớn hiện hữu
      Thành thật mà nói, đó là lý do duy nhất khiến tôi tránh phần cứng Apple mới nhất. Tôi chủ yếu dùng máy tính trên bàn, và phần cứng PC, đặc biệt là GPU, đang đi trước rất xa so với những gì sản phẩm tốt nhất của Apple có thể làm. Linux rất hợp với công việc của tôi, và khi xong việc tôi còn có thể chơi game, nên khó biện minh cho việc chi gần 4.000 USD
    • Tôi tò mò ai sẽ là người đầu tiên tăng mạnh dung lượng RAM của sản phẩm phần cứng để giành nhóm người dùng mô hình ngôn ngữ lớn. Có vẻ đó là con đường giành thị phần
    • Con số đó là khi chưa áp dụng lượng tử hóa. Nếu lượng tử hóa 175 tỷ tham số xuống 4-bit thì sẽ vừa khoảng 120GB VRAM. Mô hình 34 tỷ tham số với lượng tử hóa 4-bit thậm chí vừa trong một card RTX3090 24GB VRAM
  • Tôi tự hỏi liệu Facebook có thể huấn luyện mô hình ngôn ngữ lớn bằng toàn bộ lịch sử chat của mọi người dùng không