GPT-Neo 2022
Cũng thuộc họ GPT, là unidirectional language models và được finetuning xuống downstream task. Ta tìm hiểu về GPT-neo 1.3 billion model như 1 ví dụ về việc finetuning các dạng LLM về downstream task
Neo là tên 1 nhân vật trong "The Matrix" có khả năng học nhanh
Commonsense reasoning (lí luận thông thường) có vai trò trung tâm trong việc hiểu neural language. Hiện tại các huge pretrained models được đào tạo từ các downstream tasks, và các phương pháp phổ biến là instructive fine-tuning và chain-of-though prompting, số lượng parameter từ hàng triệu đến vài tỉ, performance đi theo quy luật tỉ lệ nghiêm ngặt (strict scalling laws), các larger models thì nhiều sample hiệu quả hơn nhưng cũng dễ overfitting. Khái quát hóa/sinh (Generalization) được coi là khả năng khai thác kinh nghiệm trước đây để cảm giác về các tình huống mới, vì vậy có thể có thêm kĩ năng mới (new skills)) qua learning, cho phép 1 lớp rộng hơn của generalization. Nó mô tả sự khác biệt về kiến thức và đặc trưng cho tỉ lệ thông tin trước và space các tình huống có thể xảy ra trong tương lai (xác suất xảy ra)
Ta bàn qua 6 tasks: hella swag, story cloze, cose, winograde, cosmo và piqa
Motivation
- Những mô hình rộng có thể dễ dàng nội suy trong weight space và capture các quan hệ thành phần. Vì vậy, tạo ra được văn bản gắn kết và hợp lí khi được điều chỉnh phù hợp qua nhiều epochs. Tương tự, memory constitutes (cấu tạo trí nhớ) cũng là 1 phần quan trọng của trí thông minh, kết hợp khả năng của model để ngoại suy và rút ra thông tin hữu ích từ training data và kiến thức thế giới
- Sự thống kê các mẫu hiện diện ngầm trong pretrained text corpus được biết đến là để cung cấp 1 vài ưu điểm bẩm sinh và kinh nghiệm, và là 1 lời giải thích hợp lí cho performance trên few-shot FS learning methods (vẫn cần nghiên cứu thêm)
- Generalization là sự nhạy cảm với các phép loại suy trừu tượng (tìm Fundamental function) và do đó đòi hỏi một loạt các bước lập luận trung gian cho complex downstream task -> Intelligence đòi hỏi thích nghi với các tình huống mới bằng cách chuyển past experience thành future skill. Về vấn đề này, từ lâu neural networks đã được biết là hoạt động tốt như function approximators (excellent performance) trên các smooth continuous data bằng gradient descent methods
- Kết quả thực nghiệm cho thấy model tận dụng feature presentations trong unsupervised pretraining đạt hiệu suất tốt hơn trong downstream tasks so với random initialized model. Việc này phụ thuộc khả năng của LLMs nhanh chóng thích ứng mỗi task chỉ sau vài epochs của fine-tuning process
1 cách để test là fine-tuning với limited dataset constraints qua simple commonsense reasonging tasks, đòi hỏi nhận diện mẫu mới và do đó thích nghi nhanh chóng với given task -> understand model behavior
Dataset
Khả năng commonsense reasoning phần lớn phụ thuộc dataset quality và yêu cầu suy luận trừu tượng mức độ cao (sentence completion, story generation, multiple choice). Ta concatenate context, question và answer thành k different example
Ví dụ câu "The corner table in a restaurant ordered a beer. The waiter served them the drink" thì "them" nói đến "people" tại "corner table" nhưng đây là khó cho model để hiểu như thế
- Winogrande: Winograd Schema Challenge, tăng task complexity. Predict word hoặc participant (đại từ/thành phần) chỉ noun nào trong sentence
- Cose: multiple-choice question-answering. Chọn đáp án đúng từ 5 answer choices
- Piqa: Physical Interaction Question Answering. Miêu tả object được xây dựng, sử dụng và vận hành thế nào, đòi hỏi lí luận vật lí (physical reasoning) để chọn đúng
- StoryCloze: chọn 1 ending hợp lí cho 1 long story (về daily life), dạng multiple-choice question với 2 answer choices -> Đánh giá quan hệ nhân quả và thời gian giữa các thực thể khác nhau trong ngữ cảnh
- HellaSwag: higher quality của SWAG. Chọn best ending cho story (từ 4 choices)
- CosmosQA: reading comprehension task (4 answer choice) -> tính logic (why? how? ...)
Training Procedure
Ta downstream về small và mid-sized classification task. Ta sẽ quan tâm 2 thứ: accuracy và cross-entropy
Model
GPT-neo là transformer-based decoder-only autoregressive language model (giống GPT-3). Self-attention cho phép xử lí long-term.
- 24 layer decoder-only transformer (768-D states, 16 attention heads) -> n_dim = 48 (n_dim * n_head = d_states)
- position-wise feed-forward layers (2048-D inner states)
- next token prediction bởi attention mask
- maximize likelihood ( k là context window)
20 billion parameter autoregressive language model trained on Pile (dataset của GPT-neo) -> Open-Source Autoregressive Language Model
Ta thấy hiệu suất của các LLMs có thể dự đoán được theo quy luật lũy thừa với số lương tham số, trong khi những chi tiết kiến trúc (architectural details) như width/depth ratio có tác động tối thiểu đến hiệu suất phạm vi rộng -> 1 hệ quả là nghiên cứu tập trung vào quy mô như các dense models 500B parameters
Rotary Positional Embeddings
Ta dùng rotary embeddings 2021 thay cho learned positional embeddings trong GPT
Rotary embeddings là 1 form của static relative positional embeddings. Ngắn gọn là nó twist (xoắn) embedding space mà attention của 1 token vị trí m đến vị trí n phụ thuộc tuyến tính vào m-n. Tức là standard multihead attention equation:
thay vì (Lưu thông tin vị trí dựa vào tính duy nhất của giá trị phép quay vector với module chia đều)Ta tính Attention và Feed-Forward FF layers song song và tổng lại kết quả
Do lỗi khi code, thay vì tính Thì ta đã tính Dù vậy, do đã đi quá xa để training lại. Tuy nhiên kinh nghiệm cho thấy không khác biệt về hiệu suất
All Dense Layers
8 x A100 40G GPUs, 2 HS2R swithches - 16 linksTrong khi cho đến nay không có công trình có hệ thống nào tập trung prompted pretraining, ta thấy rằng StackExchange formulation component của Pile ảnh hưởng lớn việc tạo mã
2 năm trở lại, tiêu chuẩn thực tiễn khi training ARLMs trở thành chỉ train cho 1 epoch
Limitations
- Optimal Training: Hyperparameter tuning là 1 process đắt đỏ, và thường không khả thi cho quy mô nhiều tỉ parameter models. Do đó, ta chọn hyperparameters dựa trên mixture của các thí nghiệm quy mô nhỏ hơn và nội suy lại các parameters phù hợp với model size. Tuy nhiên phương pháp này quá giả định theo feature-based và gần như chắc chắn không còn tối ưu nữa (có khả năng chưa bao giờ như vậy)
Tham khảo
- https://github.com/EleutherAI/gpt-neo (GPT-neo code)
- https://arxiv.org/pdf/2101.00027.pdf (Datasets English)
- https://arxiv.org/pdf/2211.15593v1.pdf (GPT-Neo)
- https://github.com/EleutherAI/gpt-neox (GPT-NeoX from scratch)
- https://arxiv.org/pdf/2204.06745.pdf (GPT-NeoX 20B)
Nhận xét
Đăng nhận xét