Ultralytics YOLO27: Đăng ký vào danh sách chờ.
Cấp phép YOLO
Quay lại Bảng thuật ngữ Ultralytics

Prompt Tuning

Prompt tuning thích ứng model đã đóng băng cho một tác vụ bằng cách huấn luyện một vài vector prompt mềm được thêm vào đầu vào, nhờ đó một model có thể phục vụ nhiều tác vụ.

Prompt tuning điều chỉnh một model nền tảng đã tiền huấn luyện cho tác vụ mới bằng cách huấn luyện một tập vector nhỏ gọi là soft prompt, được đặt trước đầu vào trong khi mọi trọng số model vẫn được đóng băng. Soft prompt nằm trong cùng không gian với các embedding token của model, nhưng các vector được học bằng lan truyền ngược và không cần tương ứng với từ thực nào. Brian Lester, Rami Al-Rfou và Noah Constant tại Google giới thiệu phương pháp này trong The Power of Scale for Parameter-Efficient Prompt Tuning, được trình bày tại EMNLP 2021. Họ lưu ý rằng prompt năm token cho model T5-XXL 11 tỷ tham số chỉ cần 20.480 tham số cho mỗi tác vụ, đồng thời cho thấy khi model tăng quy mô lên hàng tỷ tham số, prompt tuning đạt độ chính xác tương đương với việc tuning toàn bộ model.

Cách hoạt động của prompt tuning#

Mô hình ngôn ngữ lớn (LLM) chuyển mỗi token đầu vào thành một vector embedding trước khi các lớp Transformer xử lý. Prompt tuning thêm k vector vào đầu chuỗi; Lester và cộng sự thử nghiệm độ dài từ 1 đến 150 và dùng mặc định 100. Trong quá trình huấn luyện, hàm loss của tác vụ được lan truyền ngược qua toàn bộ mạng đã đóng băng đến tận đầu vào, còn optimizer chỉ cập nhật các vector prompt. Kết quả là một tensor nhỏ cho mỗi tác vụ. Vì bản thân model không bao giờ thay đổi, xóa prompt sẽ khôi phục hành vi ban đầu mà không có nguy cơ quên thảm họa; một bản triển khai có thể phục vụ nhiều tác vụ cùng lúc, mỗi request trong batch mang soft prompt riêng—cách này được Lester và cộng sự gọi là suy luận đa tác vụ.

Ví dụ PyTorch sau tuning soft prompt 8 vector để thực hiện phân tích cảm xúc trên GPT-2 đã đóng băng từ Transformers của Hugging Face, với bốn bài đánh giá dùng để huấn luyện và tám bài được giữ lại:

import torch
from torch.nn.functional import cross_entropy
from transformers import AutoModelForCausalLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = AutoModelForCausalLM.from_pretrained("gpt2").requires_grad_(False)  # freeze all 124M weights
embed = model.get_input_embeddings()

# Soft prompt: 8 trainable vectors in GPT-2's embedding space, initialized from the word " review"
soft_prompt = torch.nn.Parameter(embed.weight[tokenizer.encode(" review")].repeat(8, 1).clone())
optimizer = torch.optim.Adam([soft_prompt], lr=0.01)
labels = tokenizer.encode(" positive negative")  # token ids for label 0 and label 1

# Reviews alternate between positive (label 0) and negative (label 1)
train = ["Loved every minute.", "A waste of time.", "Great story and acting.", "Boring and slow."]
test = ["What a wonderful film.", "I fell asleep halfway.", "A fantastic ending.", "Terrible dialogue."]
test += ["A joy to watch.", "Dull and predictable.", "Superb from start to end.", "I want my money back."]


def label_scores(text):
    """Score both label tokens after the soft prompt and the review."""
    ids = tokenizer.encode(f"{text} Sentiment:", return_tensors="pt")
    return model(inputs_embeds=torch.cat([soft_prompt[None], embed(ids)], dim=1)).logits[0, -1, labels]


def correct():
    """Count held-out reviews whose higher-scoring label is right."""
    with torch.no_grad():
        return sum(int(label_scores(text).argmax()) == i % 2 for i, text in enumerate(test))


print(f"Held-out reviews correct before tuning: {correct()}/8")
for step in range(30):
    loss = sum(cross_entropy(label_scores(text), torch.tensor(i % 2)) for i, text in enumerate(train))
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
print(f"After tuning: {correct()}/8, training {soft_prompt.numel():,} of {model.num_parameters():,} parameters")

Đoạn mã in ra Held-out reviews correct before tuning: 5/8, rồi After tuning: 7/8, training 6,144 of 124,439,808 parameters. Ba mươi bước dùng Adam trên bốn ví dụ chỉ thay đổi 6.144 số, tương đương 0,005% model; GPT-2 đã đóng băng phân loại đúng thêm hai bài đánh giá chưa từng thấy.

Prefix tuning và visual prompt tuning#

Prompt tuning thuộc nhóm phương pháp prompt liên tục trong tinh chỉnh tiết kiệm tham số (PEFT). Phương pháp prefix tuning của Xiang Lisa Li và Percy Liang học các vector được thêm vào đầu mỗi lớp Transformer, chiếm khoảng 0,1% số tham số của GPT-2 hoặc BART, và đạt kết quả ngang với fine-tuning toàn bộ model trong các tác vụ sinh văn bản từ bảng và tóm tắt. Prompt tuning đơn giản hóa phương pháp này bằng cách chỉ học vector ở lớp đầu vào.

Ý tưởng này cũng áp dụng cho thị giác. Visual Prompt Tuning (VPT) của Menglin Jia và cộng sự thêm các token có thể học vào trước token patch của một Vision Transformer (ViT) đã đóng băng, huấn luyện chưa đến 1% số tham số và vượt trội hơn fine-tuning toàn bộ model trong nhiều thiết lập phân loại hình ảnh. Với model thị giác-ngôn ngữ, Context Optimization (CoOp) của Kaiyang Zhou và cộng sự thay các từ do con người viết trong prompt CLIP, chẳng hạn "a photo of a", bằng các vector được học. Trên 11 tập dữ liệu, CoOp vượt trội hơn prompt được thiết kế thủ công với một hoặc hai ví dụ có nhãn cho mỗi lớp, và cải thiện kết quả trung bình khoảng 15% với 16 ví dụ cho mỗi lớp.

Detector có vocabulary mở được điều chỉnh theo cách liên quan. Ultralytics YOLOE chuyển tên lớp thành embedding prompt văn bản; quy trình linear probing cho tập dữ liệu tùy chỉnh kết hợp embedding của tên các lớp trong tập dữ liệu vào lớp tích chập cuối cùng của từng nhánh phân loại, rồi chỉ huấn luyện các lớp đó trong khi backbone, neck và phần còn lại của head vẫn được đóng băng.

  • Prompt engineering: Người dùng viết prompt bằng văn bản, đôi khi được gọi là hard prompt, và không có quá trình huấn luyện. Prompt tuning học prompt từ dữ liệu có nhãn và cần truy cập gradient của model, nên chỉ áp dụng cho model có trọng số mở.
  • Fine-tuning toàn bộ: Cập nhật mọi trọng số, tạo một bản sao đầy đủ của model cho mỗi tác vụ và có nguy cơ quên thảm họa các kỹ năng đã học trước đó. Lester và cộng sự nhận thấy model được prompt tuning cũng có khả năng chống chịu dịch chuyển miền tốt hơn model được tuning toàn bộ.
  • LoRA: Thêm các ma trận hạng thấp có thể huấn luyện vào các lớp trọng số của model. Prompt tuning không thay đổi các lớp mà chỉ thay đổi đầu vào.
  • Học few-shot trong prompt: Đưa các ví dụ có nhãn vào cửa sổ ngữ cảnh dưới dạng văn bản ở mỗi request. Soft prompt đã tuning lưu lại điều mà các ví dụ truyền đạt trong một vài vector và chỉ cần thêm k vị trí đầu vào.

Khám phá các giải pháp

Thị giác máy tính trong thể thao

Thị giác máy tính trong thể thao

Khám phá cách Ultralytics YOLO thúc đẩy thị giác máy tính trong thể thao với khả năng theo dõi cầu thủ và bóng, phân tích hiệu suất, cung cấp thông tin chuyên sâu cho huấn luyện và hỗ trợ phục hồi cho vận động viên.
Tìm hiểu thêm
Thị giác máy tính cho ảnh hàng không

Thị giác máy tính cho ảnh hàng không

Chuyển hình ảnh từ drone và ảnh hàng không thành thông tin chuyên sâu theo thời gian thực cho nông nghiệp, nuôi trồng thủy sản, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Ứng dụng computer vision trong ngành hàng không vũ trụ với Ultralytics YOLO cho kiểm tra máy bay, phát hiện dị vật trên đường băng (FOD), vận hành mặt đất tại sân bay và phát hiện lỗi vật liệu composite.
Tìm hiểu thêm
Computer vision trong lĩnh vực an ninh

Computer vision trong lĩnh vực an ninh

Bảo vệ mọi địa điểm bằng model Ultralytics YOLO. Vision AI hỗ trợ giám sát vành đai, phát hiện mối đe dọa, nhận dạng biển số và an toàn nơi làm việc.
Tìm hiểu thêm
Computer vision trong robotics

Computer vision trong robotics

Tăng cường năng lực cho máy móc thông minh bằng model Ultralytics YOLO. Vision AI trong lĩnh vực robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh giản hoạt động logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho hàng theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại hoạt động bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng chờ và phân tích khách hàng thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong chăm sóc sức khỏe

Thị giác máy tính trong chăm sóc sức khỏe

Xây dựng các giải pháp chăm sóc sức khỏe với model Ultralytics YOLO. Vision AI trong chăm sóc sức khỏe hỗ trợ xử lý hình ảnh y tế nhanh hơn, chẩn đoán thông minh hơn và theo dõi bệnh nhân.
Tìm hiểu thêm
Thị giác máy tính trong sản xuất

Thị giác máy tính trong sản xuất

Tối ưu hóa sản xuất bằng các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Thị giác máy tính trong ngành ô tô

Thị giác máy tính trong ngành ô tô

Ứng dụng thị giác máy tính trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn giao thông, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong nông nghiệp

Thị giác máy tính trong nông nghiệp

Ứng dụng AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Hỗ trợ giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để nâng cao năng suất một cách thông minh hơn.
Tìm hiểu thêm

Hãy cùng nhau kiến tạo tương lai của AI!

Bắt đầu hành trình hướng đến tương lai của machine learning