0
0
Lập trình
Admin Team
Admin Teamtechmely

[LLM 101] Hướng Dẫn Chi Tiết Về Việc Tinh Chỉnh Mô Hình Ngôn Ngữ Lớn

Đăng vào 1 tháng trước

• 3 phút đọc

Chủ đề:

LLMLập trình

Giới thiệu

Trong bối cảnh mà trí tuệ nhân tạo ngày càng phát triển mạnh mẽ, việc áp dụng và tối ưu hóa các mô hình ngôn ngữ lớn (Large Language Models - LLMs) ngày càng trở nên cần thiết. Tuy nhiên, nhiều người mới tham gia vào lĩnh vực này có thể cảm thấy khó khăn khi tiếp cận với các phương pháp sử dụng khác nhau cho LLMs.

Cơ bản, có hai cách chính để sử dụng pretraining LLMs cho các tác vụ mới: Học trong ngữ cảnh (In-context learning) và Tinh chỉnh (Finetuning). Trong bài viết này, chúng ta sẽ tìm hiểu về In-context Learning và các phương pháp Tinh chỉnh phổ biến trong việc sử dụng LLMs.

Học trong ngữ cảnh (In-Context Learning) và Lập chỉ mục (Indexing)

Kể từ sự ra đời của các mô hình như GPT-2 và GPT-3, ý tưởng về Học trong ngữ cảnh đã trở nên phổ biến. Cách thức này cho phép chúng ta thực hiện các tác vụ mới mà không cần phải ttraining hay tinh chỉnh mô hình. Thay vào đó, người dùng có thể cung cấp một vài ví dụ cụ thể qua văn bản đầu vào, hay còn gọi là prompt.

Ví dụ minh họa về Học trong ngữ cảnh:

Copy
Translate the following German sentences into Vietnamese:

Example 1:
German: "Ich liebe Eis."
Vietnamese: "Tôi rất thích kem"

Example 2:
German: "Draußen ist es stürmisch und regnerisch"
Vietnamese: "Ngoài trời đang có bão và mưa."

Translate this sentence:
German: "Wo ist der nächste Supermarkt?"

Học trong ngữ cảnh rất tiện lợi vì nó không yêu cầu thay đổi mô hình mà vẫn duy trì hiệu suất. Tuy nhiên, hiệu quả của phương pháp này thường thấp hơn so với việc tinh chỉnh mô hình.

Một phương pháp khác thay thế cho In-context Learning được giới thiệu là Lập chỉ mục (Indexing). Phương pháp này cho phép các LLM trở thành hệ thống truy xuất thông tin, hỗ trợ việc lấy dữ liệu từ các nguồn bên ngoài thông qua việc chia nhỏ tài liệu thành các đoạn nhỏ hơn gọi là chunk.

Các cách Tinh Chỉnh Mô Hình (Finetuning) Phổ Biến

Học trong ngữ cảnh là một lựa chọn tốt khi truy cập vào LLM bị hạn chế. Tuy nhiên, nếu có quyền truy cập tùy chỉnh, việc tinh chỉnh mô hình sẽ mang lại kết quả tốt hơn.

Dưới đây là ba phương pháp phổ biến để tinh chỉnh mô hình:

1. Phương Pháp Dựa Trên Đặc Trưng (Feature-Based)

Trong cách này, chúng ta sẽ sử dụng một mô hình đã được huấn luyện và chỉ cập nhật các tham số của mô hình phân loại. Điều này giúp tiết kiệm thời gian và tài nguyên.

2. Tinh Chỉnh I (Finetuning I)

Trong phương pháp này, chỉ cập nhật trọng số của các lớp hoàn toàn kết nối (fully connected) ở cuối mô hình, trong khi giữ nguyên các lớp còn lại.

3. Tinh Chỉnh II (Finetuning II)

Phương pháp này cho phép cập nhật tất cả các tham số trong mô hình. Đây là cách làm hiệu quả nhất, giúp cải thiện đáng kể độ chính xác mô hình.

Ví dụ về Các Phương Pháp Tinh Chỉnh

Dưới đây là đoạn mã minh họa cho từng phương pháp:

Copy
# Feature-Based
from transformers import AutoModel
import torch
import numpy as np
from sklearn.linear_model import LogisticRegression

# Tải mô hình pretrained
model = AutoModel.from_pretrained("distilbert-base-uncased")

# Hàm tạo embeddings
@torch.inference_mode()
def get_output_embeddings(batch):
    output = model(batch["input_ids"], attention_mask=batch["attention_mask"]).last_hidden_state[:, 0]
    return {"features": output}

Kết Luận

Việc tinh chỉnh tất cả các lớp của một LLM đã huấn luyện sẵn vẫn là phương pháp chuẩn mực (best practice) để áp dụng cho các bài toán mới. Tuy nhiên, còn nhiều lựa chọn khác như In-context Learning và các kỹ thuật tinh chỉnh hiệu quả (Parameter-Efficient Finetuning Techniques) có thể giúp tối ưu hóa chi phí và hiệu suất.

Cuối cùng, phương pháp Học Tăng Cường với Phản Hồi Con Người (Reinforcement Learning with Human Feedback - RLHF) cũng là một cách tiếp cận đầy hứa hẹn, kết hợp cả học giám sát và học tăng cường nhằm cải thiện hiệu suất của mô hình.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào