Làm thế nào để đào tạo Large Language Models

Large language model (LLM) chính là mô hình ngôn ngữ đứng đằng sau thành công của ChatGPT. Được phát triển dựa trên kỹ thuật học sâu và tập dữ liệu văn bản khổng lồ, các mô hình này có khả năng tạo văn bản tương tự như con người và thực hiện nhiều tác vụ xử lý ngôn ngữ tự nhiên khác nhau.

Vậy làm thế nào để đào tạo LLM? Thực tế, có nhiều cơ chế đào tạo, với phương pháp, yêu cầu và mục tiêu khác nhau. FriData tuần này sẽ đưa tới cho bạn một cái nhìn tổng quan về một số cơ chế đào tạo quan trọng nhất bao gồm pretraining, finetuning, reinforcement learning from human feedback (RLHF), và adapters.

Ngoài ra, bài viết sẽ thảo luận về vai trò của việc cung cấp đầu vào (prompting), mặc dù đây không được coi là một cơ chế học tập riêng biệt. Bên cạnh đó, khái niệm prompt tuning cũng sẽ được đề cập. Đây là khái niệm kết hợp giữa việc cung cấp đầu vào (prompting) và huấn luyện thực tế.

Pretraining

Pretraining là cách đào tạo cơ bản nhất. Đối với phương pháp này, bạn sẽ bắt đầu với một mô hình chưa được đào tạo (tức là mô hình có trọng số được khởi tạo ngẫu nhiên) và huấn luyện để nó có thể dự đoán token tiếp theo dựa trên một chuỗi các tokens trước đó. Để làm như vậy, cần có một lượng lớn các câu được thu thập từ nhiều nguồn khác nhau và đưa vào mô hình theo từng phần nhỏ.

Cơ chế đào tạo được sử dụng ở đây là tự giám sát (self-supervised). Từ góc độ mô hình được đào tạo, ta có thể nói đến phương pháp học có giám sát (supervised learning), do mô hình luôn được cung cấp câu trả lời chính xác sau khi đưa ra dự đoán. Cuối cùng, có thể tính toán loss và trọng số của mô hình được điều chỉnh để dự đoán tốt hơn vào lần tới. Tuy nhiên, lý do chính để gọi là tự giám sát (thay vì đơn thuần là có giám sát) bởi không cần phải thu thập nhãn theo một quy trình tốn kém trước đó, nhưng chúng đã được đưa vào dữ liệu. Ví dụ, câu “I like ice cream” có thể được tự động tách thành “I like ice” là đầu vào và “cream” là nhãn, mà không cần sự can thiệp của con người. Chính vì vậy, ý tưởng về một AI tự giám sát trong quá trình học tập dần hình thành.

Cuối cùng, khi đào tạo trên một lượng lớn văn bản, mô hình học cách mã hóa cấu trúc của ngôn ngữ nói chung (ví dụ: nó học được rằng sau cụm “I like” sẽ là một danh từ hoặc một phân từ) cũng như kiến thức có trong các văn bản.

Giờ đây, bạn hoàn toàn có thể sử dụng các mô hình như GPT ngay lập tức. Tuy nhiên, tại sao bạn nên đào tạo một mô hình tương tự? Việc đào tạo một mô hình từ đầu có thể trở nên cần thiết nếu bạn làm việc với dữ liệu có các thuộc tính tương tự như ngôn ngữ, nhưng không phải là ngôn ngữ phổ biến. Ký hiệu âm nhạc là một ví dụ, bởi nó được cấu trúc giống như một ngôn ngữ. Có một số quy tắc và mẫu nhất định về việc các phần nào có thể nối tiếp nhau, nhưng LLM được đào tạo về ngôn ngữ tự nhiên không thể xử lý loại dữ liệu đó, vì vậy bạn sẽ phải đào tạo một mô hình mới. Tuy nhiên, kiến trúc của LLM có thể phù hợp do có nhiều điểm tương đồng giữa ký hiệu âm nhạc và ngôn ngữ tự nhiên.

Finetuning

Một LLM được pretrain đã có thể thực hiện nhiều loại tác vụ nhờ kiến thức mà nó mã hóa. Song hai điểm hạn chế chính ở đây là (1) cấu trúc đầu ra và (2) tình trạng thiếu kiến thức không được mã hóa trong dữ liệu từ đầu.

Như đã nói ở trên, một LLM luôn dự đoán các token tiếp theo dựa trên một chuỗi các token trước. Phương pháp này không phù hợp trong một số tình huống. Nếu bạn cần một cấu trúc đầu ra khác, có hai cách chính để thực hiện. Bạn có thể viết các gợi ý của mình theo cách sao cho khả năng tự động dự đoán token tiếp theo của mô hình có thể giải quyết (được gọi là prompt engineering), hoặc thay đổi đầu ra của lớp cuối cùng sao cho phù hợp với tác vụ. Ví dụ với tác vụ phân loại, trong đó bạn có N lớp. Bằng prompt engineering, bạn có thể hướng dẫn mô hình luôn tiến hành xuất nhãn phân loại sau một đầu vào nhất định. Bằng finetuning, bạn có thể thay đổi các lớp cuối cùng để có N nơ-ron đầu ra và lấy được lớp dự đoán từ nơ-ron có mức kích hoạt cao nhất.

Hạn chế khác của LLM nằm ở dữ liệu mà nó được đào tạo. Vì các nguồn dữ liệu khá phong phú, các LLM phổ biến thường mã hóa một lượng lớn kiến thức chung. Tuy nhiên, có những miền kiến thức mà các mô hình không biết, trong trường hợp như vậy, finetuning là cách làm phù hợp hơn.

Ý tưởng về finetuning là sử dụng một mô hình đã được đào tạo trước và tiếp tục đào tạo nó với các dữ liệu khác nhau và bằng cách chỉ thay đổi trọng số ở các lớp cuối cùng trong quá trình đào tạo. Điều này chỉ yêu cầu một phần tài nguyên cần thiết trong quá trình đào tạo ban đầu và do đó có thể được thực hiện nhanh hơn nhiều. Mặt khác, các cấu trúc mà mô hình đã học được trong quá trình pretrain vẫn được mã hóa trong các lớp đầu tiên và có thể được sử dụng.

RLHF Finetuning

Một trường hợp đặc biệt của finetuning là reinforcement learning from human feedback (RLHF), đây là một trong những điểm khác biệt chính giữa mô hình GPT và chatbot như Chat-GPT. Với kiểu tinh chỉnh này, mô hình được đào tạo để tạo ra kết quả đầu ra mà con người thấy hữu ích nhất khi trò chuyện với máy.

Ý tưởng chính như sau: Với một prompt tùy ý, nhiều đầu ra từ mô hình được tạo cho prompt đó. Con người xếp hạng các kết quả đầu ra đó theo mức độ hữu ích hoặc phù hợp. Đưa ra bốn mẫu A, B, C và D, con người có thể quyết định rằng C là đầu ra tốt nhất, B kém hơn một chút nhưng bằng D và A là đầu ra kém nhất cho prompt đó. Từ đây, ta có thứ tự C > B = D > A. Tiếp theo, dữ liệu này được sử dụng để huấn luyện reward model. Đây là một mô hình hoàn toàn mới học cách đánh giá kết quả đầu ra của LLM bằng cách trao cho nó phần thưởng theo đánh giá của con người. Giờ đây, các kết quả đầu ra từ mô hình được đánh giá theo reward model và phần thưởng đưa ra dưới dạng phản hồi cho LLM sau đó sẽ được điều chỉnh để tối đa hóa.

Có thể thấy, đối với phương pháp đào tạo này, dữ liệu do con người dán nhãn là cần thiết và đòi hỏi khá nhiều nguồn lực. Tuy nhiên, lượng dữ liệu này là hữu hạn, vì ý tưởng của reward model là khái quát hóa từ dữ liệu để có thể tự đánh giá LLM. RLHF thường được sử dụng để điều chỉnh kết quả đầu ra của LLM tự nhiên, phù hợp hơn và tránh hành vi không mong muốn như mô hình có ác ý, xâm phạm hoặc xúc phạm.

Adapters

Hai loại adapter được tích hợp vào mạng hiện có. Nguồn ảnh: https://arxiv.org/pdf/2304.01933.pdf.

Trong quá trình tinh chỉnh đã nói ở trên, ta điều chỉnh một số tham số của mô hình ở các lớp cuối cùng, trong khi các tham số khác ở các lớp trước vẫn giữ nguyên. Tuy nhiên, có một giải pháp thay thế hứa hẹn hiệu quả cao hơn, nhờ số lượng tham số cần thiết để đào tạo ít hơn, được gọi là adapter.

Sử dụng adapter có nghĩa là thêm các lớp bổ sung vào một mô hình đã được đào tạo. Trong quá trình tinh chỉnh, chỉ những adapter đó được đào tạo trong khi các tham số còn lại của mô hình hoàn toàn không thay đổi. Tuy nhiên, các lớp đó nhỏ hơn nhiều so với các lớp mà mô hình đi kèm, vì vậy việc điều chỉnh chúng dễ dàng hơn. Ngoài ra, chúng có thể được chèn vào các vị trí khác nhau trong mô hình, không chỉ ở cuối. Trong hình trên, ta thấy hai ví dụ: (a) adapter được thêm dưới dạng một lớp theo kiểu nối tiếp và (b) adapter được thêm song song với một lớp đã có sẵn.

Prompting

Bạn có thể thắc mắc liệu prompting có được coi là một cách khác để đào tạo mô hình hay không. Prompting có nghĩa là xây dựng các hướng dẫn trước đầu vào của mô hình thực tế. Đặc biệt nếu sử dụng few-shot-prompting, bạn cung cấp các ví dụ cho LLM trong prompt, điều này rất giống với quá trình đào tạo. Tuy nhiên, có một số lý do khiến prompting khác với đào tạo mô hình.

Trước hết, từ định nghĩa đơn giản, ta chỉ nói về đào tạo nếu trọng số được cập nhật và điều đó không được thực hiện trong prompting. Khi tạo prompt, bạn không thay đổi bất kỳ mô hình nào, bạn không thay đổi trọng số, bạn không tạo mô hình mới và bạn cũng không thay đổi kiến thức hoặc biểu diễn được mã hóa trong mô hình. Thay vào đó, prompting nên được coi là một cách hướng dẫn LLM và cho nó biết bạn muốn gì từ nó.

Xem xét prompt sau đây làm ví dụ:

Nguồn ảnh: Towards Data Science

Mô hình được hướng dẫn thực hiện phân loại cảm xúc (sentiment classification), và có thể nhận thấy, các ví dụ đưa ra cho mô hình đều sai! Nếu một mô hình được đào tạo với dữ liệu như vậy, nó sẽ trộn lẫn các nhãn tích cực, tiêu cực và trung tính. Prompt không đào tạo mô hình và không thay đổi cách thể hiện những gì nó đã học được. Prompt chỉ đơn giản là thông báo cho mô hình về cấu trúc mà con người mong đợi, cụ thể ở đây là nhãn cảm xúc (có thể là tích cực, tiêu cực hoặc trung tính) theo sau dấu hai chấm.

Prompt tuning

Mặc dù bản thân prompt không huấn luyện LLM, nhưng có một cơ chế được gọi là Prompt tuning (còn gọi là soft prompting), có liên quan đến prompt và có thể được coi là một loại đào tạo.

Trong ví dụ trước, ta coi prompt là một văn bản ngôn ngữ tự nhiên được cung cấp cho mô hình để cho nó biết phải làm gì và thường xuất hiện trước đầu vào thực tế. Nghĩa là, đầu vào của mô hình trở thành <prompt><instance>, vì vậy, ví dụ: <glabel the following a positive, negative, or neutral:> <I like ice cream>. Khi tự tạo prompt, ta nói về hard prompting. Trong soft prompting, định dạng <prompt><instance> sẽ được giữ nguyên, nhưng bản thân prompt không phải do con người thiết kế mà được học với dữ liệu. Cụ thể, prompt bao gồm các tham số trong không gian vectơ và các tham số đó có thể được điều chỉnh trong quá trình đào tạo để thu được loss nhỏ hơn và do đó có câu trả lời tốt hơn. Nghĩa là, sau khi đào tạo, prompt sẽ là chuỗi ký tự dẫn đến câu trả lời tốt nhất cho dữ liệu đã cho. Tuy nhiên, các tham số mô hình không được đào tạo.

Một lợi thế lớn của prompt tuning là bạn có thể đào tạo nhiều prompt cho các tác vụ khác nhau nhưng vẫn sử dụng chúng với cùng một mô hình. Giống như trong hard prompting, trong đó bạn có thể tạo một prompt để tóm tắt văn bản, một prompt để phân tích cảm xúc và một để phân loại văn bản, nhưng sử dụng tất cả với cùng một mô hình. Ngược lại, nếu bạn sử dụng finetuning, bạn sẽ có ba mô hình chỉ phục vụ từng tác nhiệm vụ cụ thể của chúng.

Tổng kết

Trên đây là một số phương pháp đào tạo LLM:

  • Pretraining LLM có nghĩa là dạy mô hình dự đoán token tiếp theo theo cách tự giám sát.
  • Finetuning điều chỉnh các trọng số của LLM được đào tạo trước ở các lớp cuối cùng và có thể được sử dụng để điều chỉnh mô hình cho phù hợp với bối cảnh cụ thể.
  • RLHF nhằm mục đích điều chỉnh đầu ra của mô hình sao cho phù hợp với mong đợi của con người và cần nguồn lực ghi nhãn bổ sung.
  • Adapter giúp finetuning hiệu quả hơn do các lớp nhỏ, được thêm vào LLM đã được đào tạo trước.
  • Bản thân prompting không được coi là đào tạo vì nó không thay đổi biểu diễn bên trong của mô hình.
  • Prompt tuning là một kỹ thuật để điều chỉnh các trọng số tạo ra prompt nhưng không ảnh hưởng đến chính các trọng số của mô hình.

Tất nhiên, có rất nhiều cơ chế đào tạo khác, với những cơ chế mới được phát minh mỗi ngày. Các LLM có thể làm được nhiều việc hơn ngoài dự đoán văn bản. Việc dạy LLM xử lý các tác vụ như vậy đòi hỏi nhiều kỹ năng và kỹ thuật khác nhau, một số trong đó vừa được trình bày trên đây.

Bình luận

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu

Bài viết liên quan

    Cảm ơn bạn đã quan tâm và ủng hộ.

    File hiện tại không thể tải xuống
    Vui lòng liên hệ hỗ trợ.

    VinOCR eKYC
    Chọn ảnh từ máy của bạn

    Chọn ảnh demo dưới đây hoặc tải ảnh lên từ máy của bạn

    Tải lên ảnh CMND/CCCD/Hộ chiếu,...

    your image
    Chọn ảnh khác
    Tiến hành xử lý
    Thông tin đã được xử lý
    Mức độ tin cậy: 0%
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    Xác thực thông tin thẻ CMND/CCCD

    Vui lòng sử dụng giấy tờ thật. Hãy đảm bảo ảnh chụp không bị mờ hoặc bóng, thông tin hiển thị rõ ràng, dễ đọc.

    your image
    Chọn ảnh khác

    Ảnh mặt trước CMND/CCCD

    your image
    Chọn ảnh khác

    Ảnh mặt sau CMND/CCCD

    your image
    Chọn ảnh khác

    Ảnh chân dung

    This site is registered on wpml.org as a development site.