Mở đầu
idea từ https://github.com/telexyz/nem/blob/main/cs685-anlp/12-prompt-based.md
prompt-based learning (prompt thủ) là một trào lưu khai thác models mới, thay cho fine-tuning (tune thủ). Có nhiều thứ hay ho có thể thử nghiệm, kể cả với tập dữ liệu nhỏ. - Mr.Tiến Dũng
Demo: https://youtu.be/8HwHGGb1zpQ?t=999
Vấn đề: large-scale models tốn kém khi share và serve => Dùng promptPhần đầu của Language model là embeddings, trong prompt-tuning thì ta học 1 cách sequence embeddings task-specific vào đầu input của LMs
Ví dụ với T5(encoder-decoder) model, đường màu đen là forward, còn đường màu đỏ là backward, đây là cách fine-tuning thôn thường. Vấn đề là mỗi lần fine-tuning lại tạo 1 bộ tham số mới hoàn toàn nên với n tasks là n models mới
Khi ta tính loss và softmax ở classifier cưới, thì đường dot-line (không update param, frozen) là backward, chỉ update 2 embedding mới được thêm vào ở đầu sequence. Nghĩa là hơn 99,9% mô hình được giữ nguyên, mô hình đang tự học optimal continous representation của instruction
lượng tinh chỉnh parameters |
Prompt pretraining: the SPoT approach
= Prompt + Sequence2sequence Pre-training
- Mục đích: Sử dụng pre-trained LMs như initialization. Ít việc hơn cho architect design nhưng lại thêm engineer objective functions
- Prompt engineering: NLP tasks được mô hình hóa hoàn toàn dựa trên LMs. Các nhiệm vụ trích suất các tính năng nông và sâu, hay dự đoán data đều được giao cho LM. Việc này làm khó phân biệt -> Vì vậy mà Prompt engineering là cần thiết
- Prompt là gì: Khuyến khích một mô hình pre-trained để đưa ra những dự đoán cụ thể bằng cách cung cấp một 'dấu nhắc' chỉ định task sẽ được thực hiện.
- Prompting workflow: prompt addition -> Answer Prediction -> Answer-Label Mapping
Từ prompt đầu vào x, ta dùng template biến nó thành prompting (query context) sau đó đưa dự đoán và mapping với label (kết quả cuối)- Types of prompts:
+ Prompt: I love this movie. Overall it was a [z] movie
+ Filled Prompt: I love this movie. Overall it was a boring movie
+ Answered Prompt: I love this movie. Overall it was a fantastic movie
+ Prefix Prompt: I love this movie. Overall this movie is [z]
+ Cloze Prompt: I love this movie. Overall it was a [z] movie
- Design Considerations for Prompting
Chi tiết: https://github.com/telexyz/nem/blob/main/cs685-anlp/12-prompt-based.md
- Gradient-based Search: Tự động tìm kiếm một tổ hợp các keywords tốt nhất từ inputs. Cách này tốt hơn các cách domain-based ở trên.
- Answer Engineer: tại sao cần? -> Ta đã reformulate (định hình lại) tasks thì ta cũng nên định nghĩa lại "grough truth labels"
Có thể hiểu là many2many mapping và gán trọng số (giống softmax)Mục đích là tìm 1 answer space và map nó với original output Y để có hiệu quả tốt hơn
- Prompt Augmentation: tại sao work? Có sẵn patterns đó trên Internet! :D Có sẵn đâu đó trong dataset, câu "let's think step by step" và sau đó là câu trả lời đúng.https://youtu.be/5ef83Wljm-M?t=4206
Tham khảo
- https://github.com/telexyz/nem/blob/main/cs685-anlp/12-prompt-based.md (promt-base Tien Dung's note)
- https://people.cs.umass.edu/~miyyer/cs685/schedule.html (CS685 course)
- https://phontron.com/class/anlp2022/schedule.html (CMU CS 11-711, Fall 2022, Advanced NLP)
- https://www.youtube.com/playlist?list=PL8PYTP1V4I8D0UkqW2fEhgLrnlDW9QK7z (CMU Advanced NLP 2022 youtube)
Nhận xét
Đăng nhận xét