Chuyển đến nội dung chính

Fine-Tuning LLMs: Hướng Dẫn Kèm Ví Dụ

Tìm hiểu cách fine-tuning các mô hình ngôn ngữ lớn (LLM) giúp cải thiện hiệu suất trong các tác vụ như dịch ngôn ngữ, phân tích cảm xúc và tạo văn bản.
Đã cập nhật 5 thg 6, 2026  · 11 phút đọc

Fine-tuning các mô hình ngôn ngữ lớn (LLM) rất quan trọng để điều chỉnh các thuật toán tiên tiến này cho những tác vụ hoặc lĩnh vực cụ thể.

Quy trình này giúp nâng cao hiệu suất của mô hình trên các tác vụ chuyên biệt và mở rộng đáng kể khả năng ứng dụng trong nhiều lĩnh vực. Điều này có nghĩa là chúng ta có thể tận dụng năng lực xử lý ngôn ngữ tự nhiên của các LLM đã được huấn luyện sẵn và LLM mã nguồn mở, rồi tiếp tục huấn luyện để thực hiện các nhiệm vụ cụ thể của mình.

Trong hướng dẫn này, tôi sẽ giải thích khái niệm về các mô hình ngôn ngữ được huấn luyện sẵn và hướng dẫn bạn từng bước thực hiện fine-tuning, sử dụng GPT-2 với Hugging Face làm ví dụ.

Tìm hiểu Cách Hoạt động của Các Mô hình Ngôn ngữ Huấn luyện Sẵn

Mô hình ngôn ngữ là một loại thuật toán học máy được thiết kế để dự đoán từ tiếp theo trong một câu, dựa trên các đoạn trước đó. Nó dựa trên kiến trúc Transformers, được giải thích chi tiết trong bài viết của chúng tôi về Cách Transformers hoạt động.

Các mô hình ngôn ngữ huấn luyện sẵn, như GPT (Generative Pre-trained Transformer), được huấn luyện trên lượng dữ liệu văn bản khổng lồ. Điều này giúp LLM nắm bắt được các nguyên tắc cơ bản chi phối việc sử dụng từ và sắp xếp của chúng trong ngôn ngữ tự nhiên.

Đầu vào và đầu ra của LLM

Hình do Tác giả thực hiện. Đầu vào và đầu ra của LLM.

Điều quan trọng nhất là các mô hình này không chỉ giỏi hiểu ngôn ngữ tự nhiên mà còn giỏi tạo ra văn bản giống con người dựa trên đầu vào nhận được.

Và điều tuyệt vời nhất?

Những mô hình này đã sẵn sàng cho số đông thông qua API. Nếu bạn muốn học cách tận dụng các LLM mạnh nhất của OpenAI, bạn có thể làm theo cheat sheet về API của OpenAI.

Fine-tuning là gì và Vì sao Quan trọng?

Fine-tuning là quá trình lấy một mô hình đã huấn luyện sẵn và tiếp tục huấn luyện nó trên một tập dữ liệu theo lĩnh vực.

Hầu hết các LLM hiện nay có hiệu suất tổng quát rất tốt nhưng lại chưa tốt ở các bài toán định hướng tác vụ cụ thể. Quy trình fine-tuning mang lại nhiều lợi thế đáng kể, bao gồm giảm chi phí tính toán và khả năng tận dụng các mô hình hiện đại mà không cần xây dựng từ đầu.

Transformers cung cấp một bộ sưu tập lớn các mô hình huấn luyện sẵn phù hợp cho nhiều tác vụ. Fine-tuning các mô hình này là bước quan trọng để cải thiện khả năng thực hiện các tác vụ cụ thể như phân tích cảm xúc, trả lời câu hỏi hoặc tóm tắt tài liệu với độ chính xác cao hơn.

Trực quan hóa quy trình Fine-Tuning

Hình do Tác giả thực hiện. Trực quan hóa quy trình Fine-Tuning.

Fine-tuning điều chỉnh mô hình để đạt hiệu suất tốt hơn cho các tác vụ cụ thể, giúp mô hình hiệu quả và linh hoạt hơn trong các ứng dụng thực tế. Quy trình này rất cần thiết để điều chỉnh một mô hình hiện có cho một tác vụ hoặc lĩnh vực nhất định.

Việc có nên thực hiện fine-tuning hay không phụ thuộc vào mục tiêu của bạn, thường thay đổi theo lĩnh vực hoặc tác vụ cụ thể.

Các Loại Fine-tuning Khác nhau

Fine-tuning có thể được tiếp cận theo nhiều cách, chủ yếu tùy thuộc vào trọng tâm và mục tiêu cụ thể.

Fine-tuning có giám sát

Cách tiếp cận đơn giản và phổ biến nhất. Mô hình được huấn luyện bổ sung trên một tập dữ liệu gán nhãn dành riêng cho tác vụ mục tiêu, như phân loại văn bản hoặc nhận diện thực thể có tên.

Ví dụ, chúng ta sẽ huấn luyện mô hình trên một tập dữ liệu chứa các mẫu văn bản được gán nhãn cảm xúc tương ứng để phục vụ phân tích cảm xúc.

Học ít mẫu (Few-shot learning)

Có những trường hợp việc thu thập một tập dữ liệu gán nhãn lớn là không khả thi. Few-shot learning cố gắng giải quyết điều này bằng cách cung cấp một vài ví dụ (shots) của tác vụ cần thực hiện ở phần đầu của prompt đầu vào. Cách này giúp mô hình có thêm ngữ cảnh về tác vụ mà không cần quy trình fine-tuning mở rộng.

Học chuyển giao (Transfer learning)

Mặc dù tất cả kỹ thuật fine-tuning đều là một dạng học chuyển giao, danh mục này nhắm đến việc cho phép mô hình thực hiện một tác vụ khác với tác vụ ban đầu nó được huấn luyện. Ý tưởng chính là tận dụng kiến thức mà mô hình đã học từ một tập dữ liệu lớn, tổng quát và áp dụng nó cho một tác vụ cụ thể hoặc có liên quan hơn.

Fine-tuning theo miền (Domain-specific)

Dạng fine-tuning này cố gắng điều chỉnh mô hình để hiểu và tạo văn bản đặc thù cho một lĩnh vực hoặc ngành công nghiệp cụ thể. Mô hình được fine-tuned trên một tập dữ liệu gồm văn bản từ miền mục tiêu để cải thiện ngữ cảnh và kiến thức về các tác vụ đặc thù miền.

Ví dụ, để tạo chatbot cho một ứng dụng y tế, mô hình sẽ được huấn luyện với hồ sơ y khoa nhằm điều chỉnh khả năng hiểu ngôn ngữ cho lĩnh vực sức khỏe.

Hướng Dẫn Từng Bước để Fine-tuning một LLM

Chạy và chỉnh sửa mã từ hướng dẫn trực tuyến này.

Chạy mã

Chúng ta đã biết Fine-tuning là quá trình lấy một mô hình huấn luyện sẵn và cập nhật các tham số của nó bằng cách huấn luyện trên tập dữ liệu dành riêng cho tác vụ của bạn. Vậy hãy minh họa khái niệm này bằng cách fine-tuning một mô hình thực tế.

Hãy tưởng tượng chúng ta đang làm việc với GPT-2, nhưng nhận thấy nó khá kém trong việc suy luận cảm xúc của các tweet.

Một câu hỏi tự nhiên xuất hiện: Chúng ta có thể làm gì để cải thiện hiệu suất không?

Chúng ta có thể tận dụng fine-tuning bằng cách huấn luyện mô hình GPT-2 đã được huấn luyện sẵn từ Hugging Face với một tập dữ liệu chứa các tweet và cảm xúc tương ứng để cải thiện hiệu suất. Dưới đây là ví dụ cơ bản về fine-tuning một mô hình cho phân loại chuỗi:

Bước 1: Chọn mô hình huấn luyện sẵn và tập dữ liệu

Để fine-tuning một mô hình, chúng ta luôn cần có sẵn một mô hình đã huấn luyện. Trong trường hợp này, chúng ta sẽ thực hiện một số bước fine-tuning đơn giản với GPT-2.

Ảnh chụp màn hình Hugging Face Datasets Hub. Chọn mô hình GPT2 của OpenAI.

Ảnh chụp màn hình Hugging Face Datasets Hub. Chọn mô hình GPT2 của OpenAI.

Luôn ghi nhớ chọn kiến trúc mô hình phù hợp với tác vụ của bạn.

Bước 2: Nạp dữ liệu sẽ sử dụng

Bây giờ chúng ta đã có mô hình, cần có dữ liệu chất lượng tốt để làm việc, và đây chính là lúc thư viện datasets phát huy tác dụng.

Trong trường hợp của tôi, tôi sẽ dùng thư viện datasets của Hugging Face để nhập một tập dữ liệu chứa các tweet được phân theo cảm xúc (Tích cực, Trung lập hoặc Tiêu cực).

from datasets import load_dataset

dataset = load_dataset("mteb/tweet_sentiment_extraction")
df = pd.DataFrame(dataset['train'])

Nếu chúng ta kiểm tra tập dữ liệu vừa tải, đây là tập dữ liệu có một phần cho huấn luyện và một phần cho kiểm thử. Nếu chuyển phần huấn luyện sang dataframe, nó sẽ trông như sau.

Tập dữ liệu sẽ sử dụng.

Tập dữ liệu sẽ sử dụng.

Bước 3: Tokenizer

Giờ chúng ta đã có tập dữ liệu, cần một tokenizer để chuẩn bị dữ liệu cho mô hình xử lý.

Vì LLM làm việc với token, chúng ta cần một tokenizer để xử lý tập dữ liệu. Để xử lý tập dữ liệu trong một bước, hãy dùng phương thức map của Datasets để áp dụng một hàm tiền xử lý lên toàn bộ tập dữ liệu.

Đó là lý do bước thứ hai là nạp một Tokenizer đã huấn luyện sẵn và tokenize tập dữ liệu để có thể dùng cho fine-tuning.

from transformers import GPT2Tokenizer

# Loading the dataset to train our model
dataset = load_dataset("mteb/tweet_sentiment_extraction")

tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
tokenizer.pad_token = tokenizer.eos_token
def tokenize_function(examples):
   return tokenizer(examples["text"], padding="max_length", truncation=True)

tokenized_datasets = dataset.map(tokenize_function, batched=True)

THÊM: Để giảm yêu cầu xử lý, chúng ta có thể tạo một tập con nhỏ hơn của toàn bộ dữ liệu để fine-tuning mô hình. Tập huấn luyện sẽ dùng để fine-tuning mô hình, trong khi tập kiểm thử sẽ dùng để đánh giá.

small_train_dataset = tokenized_datasets["train"].shuffle(seed=42).select(range(1000))
small_eval_dataset = tokenized_datasets["test"].shuffle(seed=42).select(range(1000))

Bước 4: Khởi tạo mô hình nền tảng

Bắt đầu bằng cách nạp mô hình và chỉ định số lượng nhãn mong đợi. Từ thẻ mô tả tập dữ liệu cảm xúc Tweet, bạn biết có ba nhãn:

from transformers import GPT2ForSequenceClassification

model = GPT2ForSequenceClassification.from_pretrained("gpt2", num_labels=3)

Bước 5: Phương thức đánh giá

Transformers cung cấp lớp Trainer được tối ưu cho huấn luyện. Tuy nhiên, phương thức này không bao gồm cách đánh giá mô hình. Vì vậy, trước khi bắt đầu huấn luyện, chúng ta sẽ cần truyền cho Trainer một hàm để đánh giá hiệu suất mô hình.

import evaluate

metric = evaluate.load("accuracy")

def compute_metrics(eval_pred):
   logits, labels = eval_pred
   predictions = np.argmax(logits, axis=-1)
   return metric.compute(predictions=predictions, references=labels)

Bước 6: Fine-tuning bằng phương thức Trainer

Bước cuối cùng là thiết lập các tham số huấn luyện và khởi động quá trình huấn luyện. Thư viện Transformers có lớp Trainer, hỗ trợ nhiều tùy chọn và tính năng huấn luyện như logging, tích lũy gradient và tính toán hỗn hợp. Trước tiên, chúng ta xác định tham số huấn luyện cùng chiến lược đánh giá. Khi mọi thứ đã sẵn sàng, ta có thể dễ dàng huấn luyện mô hình chỉ với lệnh train().

from transformers import TrainingArguments, Trainer

training_args = TrainingArguments(
   output_dir="test_trainer",
   #evaluation_strategy="epoch",
   per_device_train_batch_size=1,  # Reduce batch size here
   per_device_eval_batch_size=1,    # Optionally, reduce for evaluation as well
   gradient_accumulation_steps=4
   )


trainer = Trainer(
   model=model,
   args=training_args,
   train_dataset=small_train_dataset,
   eval_dataset=small_eval_dataset,
   compute_metrics=compute_metrics,

)

trainer.train()

Sau khi huấn luyện, hãy đánh giá hiệu suất mô hình trên tập xác thực hoặc kiểm thử. Một lần nữa, lớp trainer đã có sẵn phương thức evaluate để xử lý việc này.

import evaluate

trainer.evaluate()

Đây là các bước cơ bản nhất để thực hiện fine-tuning bất kỳ LLM nào. Hãy nhớ rằng fine-tuning một LLM đòi hỏi rất nhiều tài nguyên tính toán và máy tính cá nhân của bạn có thể không đủ mạnh để thực hiện.

Bạn có thể học cách fine-tuning các LLM mạnh mẽ hơn trực tiếp trên giao diện của OpenAI theo hướng dẫn này về Cách Fine-Tuning GPT 3.5.

Các Thực tiễn Tốt nhất khi Fine-tuning

Để đảm bảo fine-tuning thành công, hãy cân nhắc các thực tiễn sau:

Chất lượng và số lượng dữ liệu

Chất lượng của tập dữ liệu fine-tuning ảnh hưởng đáng kể đến hiệu suất của mô hình. Chúng ta đều biết câu:

“Rác vào, rác ra”

Vì vậy, hãy luôn đảm bảo dữ liệu sạch, liên quan và đủ lớn.

Điều chỉnh siêu tham số

Fine-tuning thường là một quá trình dài cần lặp lại nhiều lần. Luôn thử nghiệm nhiều thiết lập cho tốc độ học, kích thước batch và số epoch huấn luyện để tìm cấu hình tốt nhất cho dự án của bạn.

Các điều chỉnh chính xác là chìa khóa để đảm bảo mô hình học hiệu quả và thích ứng tốt với dữ liệu chưa thấy, tránh rơi vào bẫy overfitting.

Đánh giá thường xuyên

Thường xuyên đánh giá tiến độ của mô hình trong quá trình huấn luyện để theo dõi hiệu quả và áp dụng các điều chỉnh cần thiết. Điều này bao gồm việc đánh giá hiệu suất mô hình bằng một tập xác thực riêng biệt trong suốt thời gian huấn luyện.

Việc đánh giá như vậy rất quan trọng để xác định mức độ hoàn thành tác vụ và khả năng mô hình bị overfitting vào tập huấn luyện. Dựa trên kết quả từ giai đoạn xác thực, có thể điều chỉnh khi cần để tối ưu hóa hiệu suất.

Tránh Các Cạm bẫy khi Fine-Tuning LLM

Fine-tuning đôi khi có thể dẫn đến kết quả không tối ưu. Hãy cảnh giác với các cạm bẫy sau:

Overfitting

Sử dụng tập dữ liệu nhỏ để huấn luyện hoặc kéo dài số epoch quá mức có thể dẫn đến overfitting. Thường biểu hiện ở việc mô hình đạt độ chính xác cao trên tập huấn luyện nhưng thất bại khi khái quát hóa sang dữ liệu mới.

Underfitting

Ngược lại, huấn luyện không đủ hoặc tốc độ học quá thấp có thể dẫn tới underfitting, khi mô hình không học đủ tốt về tác vụ.

Quên thảm họa (Catastrophic forgetting)

Trong quá trình fine-tuning cho một tác vụ cụ thể, có nguy cơ mô hình đánh mất kiến thức tổng quát ban đầu. Vấn đề này, gọi là quên thảm họa, có thể làm suy giảm khả năng của mô hình trong việc thực hiện tốt nhiều tác vụ xử lý ngôn ngữ tự nhiên.

Rò rỉ dữ liệu (Data leakage)

Luôn đảm bảo các tập dữ liệu huấn luyện và xác thực tách biệt và không có sự trùng lặp, vì điều này có thể tạo ra chỉ số hiệu suất cao sai lệch.

Fine-tuning so với RAG

RAG kết hợp thế mạnh của mô hình truy hồi (retrieval) và mô hình sinh (generative). Trong RAG, thành phần truy hồi sẽ tìm kiếm trong một cơ sở dữ liệu hoặc kho tri thức lớn để tìm thông tin phù hợp dựa trên truy vấn đầu vào. Thông tin được truy hồi sau đó được mô hình sinh sử dụng để tạo ra phản hồi chính xác và phù hợp với ngữ cảnh hơn. Các lợi ích chính của RAG bao gồm:

  • Tích hợp tri thức động: Kết hợp thông tin theo thời gian thực từ các nguồn bên ngoài, phù hợp cho các tác vụ cần kiến thức cập nhật hoặc cụ thể.
  • Liên quan theo ngữ cảnh: Nâng cao phản hồi của mô hình sinh bằng cách cung cấp ngữ cảnh bổ sung từ các tài liệu được truy hồi.
  • Tính linh hoạt: Có thể xử lý phạm vi truy vấn rộng hơn, bao gồm những truy vấn cần thông tin cụ thể hoặc hiếm mà mô hình có thể chưa được huấn luyện.

rag vs fine tuning

Lựa chọn giữa fine-tuning và RAG

Khi quyết định dùng fine-tuning hay RAG, hãy cân nhắc các yếu tố sau:

  • Bản chất của tác vụ: Với các tác vụ cần mô hình chuyên biệt cao (ví dụ, ứng dụng theo lĩnh vực), fine-tuning thường là lựa chọn ưu tiên. RAG phù hợp cho các tác vụ cần tích hợp tri thức bên ngoài hoặc truy hồi thông tin theo thời gian thực.
  • Tính sẵn có của dữ liệu: Fine-tuning cần lượng dữ liệu gán nhãn đáng kể cho tác vụ. Nếu dữ liệu như vậy khan hiếm, thành phần truy hồi của RAG có thể bù đắp bằng cách cung cấp thông tin phù hợp từ các nguồn bên ngoài.
  • Giới hạn tài nguyên: Fine-tuning có thể tốn nhiều tài nguyên tính toán, trong khi RAG tận dụng các cơ sở dữ liệu hiện có để hỗ trợ mô hình sinh, từ đó có thể giảm nhu cầu huấn luyện mở rộng.

Kết luận

Bắt tay vào hành trình fine-tuning các mô hình ngôn ngữ lớn sẽ mở ra một thế giới cơ hội cho các ứng dụng AI.

Bằng cách hiểu và áp dụng các khái niệm, thực tiễn và lưu ý đã nêu, bạn có thể hiệu quả điều chỉnh các mô hình mạnh mẽ này để đáp ứng nhu cầu cụ thể, đồng thời khai mở toàn bộ tiềm năng của chúng.

Để tiếp tục học về fine-tuning, tôi khuyến khích bạn thực hiện các bài fine-tuning nâng cao hơn. Bạn có thể bắt đầu với khóa học Khái niệm LLM của DataCamp, bao quát nhiều phương pháp huấn luyện chủ chốt và nghiên cứu mới nhất. Một số nguồn tốt khác để theo dõi gồm:

Câu hỏi thường gặp

Fine-tuning có thể thực hiện với tập dữ liệu nhỏ không, và điều đó ảnh hưởng thế nào đến hiệu suất mô hình?

Có, fine-tuning có thể được thực hiện với các tập dữ liệu nhỏ bằng các kỹ thuật như few-shot learning hoặc low-rank adaptation (LoRA), tối ưu chỉ một phần tham số của mô hình. Tuy điều này giúp giảm chi phí tính toán, hiệu suất mô hình có thể phụ thuộc nhiều vào chất lượng và tính đại diện của tập dữ liệu nhỏ.

Làm thế nào để ngăn quên thảm họa trong quá trình fine-tuning?

Để ngăn quên thảm họa, bạn có thể sử dụng các kỹ thuật như đóng băng các tầng thấp của mô hình, áp dụng regularization hoặc dùng các phương pháp như Elastic Weight Consolidation (EWC) để bảo toàn kiến thức đã học trong giai đoạn tiền huấn luyện trong khi fine-tuning cho tác vụ mới.

Yêu cầu phần cứng để fine-tuning các mô hình ngôn ngữ lớn là gì?

Fine-tuning LLM thường cần GPU hoặc TPU có dung lượng bộ nhớ lớn (ví dụ, từ 16GB mỗi GPU trở lên) để xử lý kích thước mô hình lớn và batch hiệu quả. Với các mô hình lớn hơn, thường cần huấn luyện phân tán trên nhiều GPU hoặc dùng giải pháp đám mây như AWS, Azure, hoặc Google Cloud.


Josep Ferrer's photo
Author
Josep Ferrer
LinkedIn
Twitter

Josep là một Nhà khoa học dữ liệu tự do chuyên về các dự án châu Âu, có chuyên môn về lưu trữ dữ liệu, xử lý, phân tích nâng cao và kể chuyện bằng dữ liệu tạo tác động. 

Với vai trò giảng dạy, anh phụ trách môn Dữ liệu lớn trong chương trình Thạc sĩ tại Đại học Navarra và chia sẻ góc nhìn qua các bài viết trên các nền tảng như Medium, KDNuggets và DataCamp. Josep cũng viết về Dữ liệu và Công nghệ trong bản tin Databites (databites.tech). 

Anh có bằng Cử nhân Vật lý Kỹ thuật từ Đại học Bách khoa Catalonia và bằng Thạc sĩ Hệ thống Tương tác Thông minh từ Đại học Pompeu Fabra.

Chủ đề

Bắt đầu Hành trình AI của Bạn ngay hôm nay!

Courses

Các khái niệm về Large Language Models (LLMs)

2 giờ
99.2K
Khám phá toàn bộ tiềm năng của LLM với khóa học khái niệm của chúng tôi, bao gồm các ứng dụng LLM, phương pháp đào tạo, cân nhắc đạo đức và nghiên cứu mới nhất.
Xem chi tiếtRight Arrow
Bắt đầu khóa học
Xem thêmRight Arrow