Nối hai bộ dữ liệu python
Đã sửa đổi vào ngày 20/3/20 - Đã chuyển sang 0 và thêm mất xác thực. Xem Lịch sử sửa đổi ở cuối để biết chi tiết Show
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách sử dụng BERT với thư viện ôm sát PyTorch để tinh chỉnh mô hình một cách nhanh chóng và hiệu quả nhằm đạt được hiệu suất gần như hiện đại trong phân loại câu. Nói rộng hơn, tôi mô tả ứng dụng thực tế của học chuyển đổi trong NLP để tạo ra các mô hình hiệu suất cao với nỗ lực tối thiểu trong một loạt các nhiệm vụ NLP Bài đăng này được trình bày ở hai dạng–dưới dạng bài đăng trên blog tại đây và dưới dạng Sổ tay Colab tại đây Nội dung giống hệt nhau trong cả hai, nhưng
Tôi cũng đã xuất bản video hướng dẫn về bài đăng này trên kênh YouTube của mình nội dung
Lịch sử2018 là một năm đột phá trong NLP. Chuyển giao học tập, đặc biệt là các mô hình như Allen AI's ELMO, Open-GPT của OpenAI và Google's BERT cho phép các nhà nghiên cứu phá vỡ nhiều điểm chuẩn với sự tinh chỉnh tối thiểu dành riêng cho từng nhiệm vụ và cung cấp cho phần còn lại của cộng đồng NLP các mô hình được đào tạo trước có thể dễ dàng (với ít dữ liệu hơn) . Thật không may, đối với nhiều người mới bắt đầu với NLP và ngay cả đối với một số nhà thực hành có kinh nghiệm, lý thuyết và ứng dụng thực tế của các mô hình mạnh mẽ này vẫn chưa được hiểu rõ. BERT là gì?BERT (Đại diện bộ mã hóa hai chiều từ Transformers), được phát hành vào cuối năm 2018, là mô hình chúng tôi sẽ sử dụng trong hướng dẫn này để cung cấp cho người đọc hiểu rõ hơn và hướng dẫn thực tế về việc sử dụng các mô hình học chuyển đổi trong NLP. BERT là một phương pháp biểu diễn ngôn ngữ đào tạo trước được sử dụng để tạo các mô hình mà người thực hành NLP sau đó có thể tải xuống và sử dụng miễn phí. Bạn có thể sử dụng các mô hình này để trích xuất các tính năng ngôn ngữ chất lượng cao từ dữ liệu văn bản của mình hoặc bạn có thể tinh chỉnh các mô hình này cho một tác vụ cụ thể (phân loại, nhận dạng thực thể, trả lời câu hỏi, v.v. ) với dữ liệu của riêng bạn để tạo ra các dự đoán hiện đại Bài đăng này sẽ giải thích cách bạn có thể sửa đổi và tinh chỉnh BERT để tạo ra một mô hình NLP mạnh mẽ, nhanh chóng mang lại cho bạn kết quả hiện đại Ưu điểm của tinh chỉnhTrong hướng dẫn này, chúng ta sẽ sử dụng BERT để đào tạo một trình phân loại văn bản. Cụ thể, chúng tôi sẽ sử dụng mô hình BERT được đào tạo trước, thêm một lớp tế bào thần kinh chưa được đào tạo vào cuối và đào tạo mô hình mới cho nhiệm vụ phân loại của chúng tôi. Tại sao lại làm điều này thay vì đào tạo một mô hình học sâu cụ thể (CNN, BiLSTM, v.v.). ) có phù hợp với nhiệm vụ NLP cụ thể mà bạn cần không?
Một sự thay đổi trong NLPSự thay đổi này để chuyển giao học tập tương tự như sự thay đổi đã diễn ra trong thị giác máy tính vài năm trước. Tạo một mạng học sâu tốt cho các tác vụ thị giác máy tính có thể cần hàng triệu tham số và rất tốn kém để đào tạo. Các nhà nghiên cứu đã phát hiện ra rằng các mạng sâu học các biểu diễn tính năng phân cấp (các tính năng đơn giản như các cạnh ở các lớp thấp nhất với các tính năng phức tạp hơn dần dần ở các lớp cao hơn). Thay vì đào tạo một mạng mới từ đầu mỗi lần, các lớp thấp hơn của mạng được đào tạo với các tính năng hình ảnh tổng quát có thể được sao chép và chuyển để sử dụng trong một mạng khác với một nhiệm vụ khác. Việc tải xuống một mạng sâu được đào tạo trước và nhanh chóng đào tạo lại nó cho nhiệm vụ mới hoặc thêm các lớp bổ sung lên trên đã trở thành một thông lệ - rất tốt so với quy trình đào tạo mạng từ đầu tốn kém. Đối với nhiều người, việc giới thiệu các mô hình ngôn ngữ được đào tạo trước chuyên sâu vào năm 2018 (ELMO, BERT, ULMFIT, Open-GPT, v.v. ) báo hiệu sự thay đổi tương tự để chuyển giao việc học trong NLP mà thị giác máy tính đã thấy Bắt đầu nào 1. Thành lập1. 1. Sử dụng GPU Colab để đào tạoGoogle Colab cung cấp GPU và TPU miễn phí. Vì chúng tôi sẽ đào tạo một mạng lưới thần kinh lớn, tốt nhất nên tận dụng lợi thế này (trong trường hợp này, chúng tôi sẽ gắn GPU), nếu không, việc đào tạo sẽ mất nhiều thời gian Có thể thêm GPU bằng cách vào menu và chọn 1Sau đó chạy ô sau để xác nhận rằng GPU được phát hiện
Để đèn pin sử dụng GPU, chúng tôi cần xác định và chỉ định GPU làm thiết bị. Sau đó, trong vòng lặp đào tạo của chúng tôi, chúng tôi sẽ tải dữ liệu vào thiết bị
1. 2. Cài đặt thư viện ôm mặtTiếp theo, hãy cài đặt gói máy biến áp từ Hugging Face, gói này sẽ cung cấp cho chúng ta giao diện pytorch để làm việc với BERT. (Thư viện này chứa các giao diện cho các mô hình ngôn ngữ được đào tạo trước khác như GPT và GPT-2 của OpenAI. ) Chúng tôi đã chọn giao diện pytorch vì giao diện này tạo ra sự cân bằng tuyệt vời giữa các API cấp cao (dễ sử dụng nhưng không cung cấp thông tin chi tiết về cách mọi thứ hoạt động) và mã tensorflow (chứa nhiều chi tiết nhưng thường khiến chúng tôi lạc hướng) . ) Hiện tại, thư viện Hugging Face dường như là giao diện pytorch mạnh mẽ và được chấp nhận rộng rãi nhất để làm việc với BERT. Ngoài việc hỗ trợ nhiều mô hình máy biến áp được đào tạo trước khác nhau, thư viện còn bao gồm các sửa đổi được tạo sẵn của các mô hình này phù hợp với nhiệm vụ cụ thể của bạn. Ví dụ: trong hướng dẫn này, chúng tôi sẽ sử dụng 2Thư viện cũng bao gồm các lớp dành riêng cho nhiệm vụ để phân loại mã thông báo, trả lời câu hỏi, dự đoán câu tiếp theo, v.v. Sử dụng các lớp dựng sẵn này giúp đơn giản hóa quá trình sửa đổi BERT cho mục đích của bạn
________số 8 Mã trong sổ ghi chép này thực sự là một phiên bản đơn giản hóa của run_glue. tập lệnh ví dụ py từ hugface 3 là một tiện ích hữu ích cho phép bạn chọn tác vụ chuẩn GLUE mà bạn muốn chạy và mô hình được đào tạo trước mà bạn muốn sử dụng (bạn có thể xem danh sách các mô hình khả thi tại đây). Nó cũng hỗ trợ sử dụng CPU, một GPU hoặc nhiều GPU. Nó thậm chí còn hỗ trợ sử dụng độ chính xác 16 bit nếu bạn muốn tăng tốc hơn nữaThật không may, tất cả khả năng cấu hình này đều phải trả giá bằng khả năng đọc. Trong Sổ ghi chép này, chúng tôi đã đơn giản hóa mã rất nhiều và thêm nhiều nhận xét để làm rõ những gì đang diễn ra 2. Đang tải tập dữ liệu CoLAChúng tôi sẽ sử dụng bộ dữ liệu The Corpus of Linguistic Acceptability (CoLA) để phân loại câu đơn. Đó là một tập hợp các câu được dán nhãn là đúng hoặc sai về mặt ngữ pháp. Nó được xuất bản lần đầu vào tháng 5 năm 2018 và là một trong những thử nghiệm được đưa vào “Điểm chuẩn GLUE” mà các mô hình như BERT đang cạnh tranh 2. 1. Tải xuống & Giải nénChúng tôi sẽ sử dụng gói 4 để tải tập dữ liệu xuống hệ thống tệp của phiên bản Colab
2Tập dữ liệu được lưu trữ trên GitHub trong repo này. https. //nyu-mll. github. io/CoLA/ 3 4Giải nén tập dữ liệu vào hệ thống tệp. Bạn có thể duyệt qua hệ thống tệp của phiên bản Colab trong thanh bên ở bên trái 0 12. 2. phân tích cú phápChúng ta có thể thấy từ tên tệp rằng cả hai phiên bản dữ liệu 5 và 6 đều có sẵnChúng tôi không thể sử dụng phiên bản tiền mã hóa vì để áp dụng BERT được đào tạo trước, chúng tôi phải sử dụng mã thông báo do mô hình cung cấp. Điều này là do (1) mô hình có một từ vựng cụ thể, cố định và (2) mã thông báo BERT có một cách cụ thể để xử lý các từ nằm ngoài từ vựng Chúng tôi sẽ sử dụng gấu trúc để phân tích tập huấn luyện “trong miền” và xem xét một vài thuộc tính và điểm dữ liệu của nó 2 3câu_nguồnnhãnnhãn_chúýcâu8200ad031NaNHọ tự đá mình3862ks081NaNA con côn trùng lớn màu xanh lá cây bay vào súp. 8298ad031NaNI thường xuyên bị cảm lạnh. 6542g_810*Bạn nào mua bàn ủng hộ sách?722bc010*Home was gone by John. 3693ks081NaNI nghĩ rằng người chúng ta gặp tuần trước bị điên. 6283c_131NaNKathleen thực sự ghét công việc của mình. 4118ks081NaNDo không dùng những từ này ở đầu s. 2592l-931NaNJessica phun sơn gầm bàn. 8194ad030*Tôi tiễn cô ấy đi Hai thuộc tính mà chúng tôi thực sự quan tâm là 7 và 8 của nó, được gọi là “đánh giá có thể chấp nhận được” (0=không thể chấp nhận được, 1=có thể chấp nhận được)Dưới đây là năm câu được dán nhãn là không chấp nhận được về mặt ngữ pháp. Lưu ý rằng nhiệm vụ này khó hơn bao nhiêu so với phân tích tình cảm 4câunhãn4867Họ đã điều tra. 0200Anh ấy càng đọc nhiều sách tôi càng thắc mắc. 04593Ngựa vằn nào cũng không bay được. 03226Các thành phố dễ dàng bị phá hủy. 07337Thời gian đã trôi qua trong ngày. 0 Hãy trích xuất các câu và nhãn của tập huấn luyện của chúng ta dưới dạng ndarrays numpy 53. Tokenization & định dạng đầu vàoTrong phần này, chúng tôi sẽ chuyển đổi tập dữ liệu của mình sang định dạng mà BERT có thể được đào tạo trên đó 3. 1. Mã thông báo BERTĐể cung cấp văn bản của chúng tôi cho BERT, nó phải được chia thành các mã thông báo và sau đó các mã thông báo này phải được ánh xạ tới chỉ mục của chúng trong từ vựng mã thông báo Mã thông báo phải được thực hiện bởi trình mã thông báo đi kèm với BERT–ô bên dưới sẽ tải xuống mã này cho chúng tôi. Chúng tôi sẽ sử dụng phiên bản “uncased” tại đây 6 7Hãy áp dụng mã thông báo cho một câu chỉ để xem đầu ra 8 9Khi chúng tôi thực sự chuyển đổi tất cả các câu của mình, chúng tôi sẽ sử dụng hàm 9 để xử lý cả hai bước, thay vì gọi riêng 20 và 21Tuy nhiên, trước khi có thể làm điều đó, chúng ta cần nói về một số yêu cầu định dạng của BERT 3. 2. Định dạng bắt buộcĐoạn mã trên đã bỏ qua một số bước định dạng bắt buộc mà chúng ta sẽ xem xét tại đây Ghi chú bên lề. Đối với tôi, định dạng đầu vào của BERT có vẻ "được chỉ định quá mức".. Chúng tôi được yêu cầu cung cấp cho nó một số thông tin có vẻ dư thừa hoặc giống như chúng có thể dễ dàng được suy ra từ dữ liệu mà không cần chúng tôi cung cấp rõ ràng. Nhưng nó là như vậy và tôi nghi ngờ nó sẽ có ý nghĩa hơn khi tôi hiểu sâu hơn về nội bộ BERT chúng tôi bắt buộc phải
Mã thông báo đặc biệt 22Ở cuối mỗi câu, chúng ta cần thêm mã thông báo 22 đặc biệtMã thông báo này là một tạo tác của các nhiệm vụ hai câu, trong đó BERT được đưa ra hai câu riêng biệt và được yêu cầu xác định điều gì đó (e. g. , câu trả lời cho câu hỏi trong câu A có thể được tìm thấy trong câu B không?) Tôi vẫn chưa chắc tại sao mã thông báo vẫn được yêu cầu khi chúng tôi chỉ có đầu vào một câu, nhưng đó là 24Đối với các nhiệm vụ phân loại, chúng ta phải thêm mã thông báo 24 đặc biệt vào đầu mỗi câuMã thông báo này có ý nghĩa đặc biệt. BERT bao gồm 12 lớp Transformer. Mỗi biến áp nhận một danh sách nhúng mã thông báo và tạo ra cùng một số lượng nhúng trên đầu ra (tất nhiên, nhưng với các giá trị tính năng đã thay đổi. ) Trên đầu ra của máy biến áp cuối cùng (thứ 12), chỉ phần nhúng đầu tiên (tương ứng với mã thông báo [CLS]) được bộ phân loại sử dụng
Bạn có thể nghĩ đến việc thử một số chiến lược tổng hợp trong lần nhúng cuối cùng, nhưng điều này là không cần thiết. Vì BERT được đào tạo để chỉ sử dụng mã thông báo [CLS] này để phân loại, nên chúng tôi biết rằng mô hình đã được thúc đẩy để mã hóa mọi thứ cần thiết cho bước phân loại vào vectơ nhúng 768 giá trị duy nhất đó. Nó đã hoàn thành việc tổng hợp cho chúng tôi Độ dài câu & Mặt nạ chú ýCác câu trong tập dữ liệu của chúng tôi rõ ràng có độ dài khác nhau, vậy BERT xử lý việc này như thế nào? BERT có hai ràng buộc
Việc đệm được thực hiện với mã thông báo 27 đặc biệt, ở chỉ số 0 trong từ vựng BERT. Hình minh họa bên dưới minh họa việc đệm ra tới “MAX_LEN” gồm 8 mã thông báo“Mặt nạ chú ý” chỉ đơn giản là một mảng gồm các số 1 và 0 cho biết mã thông báo nào đang đệm và mã nào không (có vẻ hơi thừa, phải không?. ). Mặt nạ này yêu cầu cơ chế “Tự chú ý” trong BERT không kết hợp các mã thông báo PAD này vào việc giải thích câu của nó Tuy nhiên, độ dài tối đa không ảnh hưởng đến tốc độ đào tạo và đánh giá. Ví dụ: với Tesla K80 28 293. 3. Bộ dữ liệu TokenizeThư viện máy biến áp cung cấp hàm 30 hữu ích sẽ xử lý hầu hết các bước phân tích cú pháp và chuẩn bị dữ liệu cho chúng tôiTuy nhiên, trước khi chúng tôi sẵn sàng mã hóa văn bản của mình, chúng tôi cần quyết định độ dài câu tối đa để đệm/cắt bớt thành Ô bên dưới sẽ thực hiện một lần chuyển mã thông báo của tập dữ liệu để đo độ dài câu tối đa 0 1Đề phòng có một số câu kiểm tra dài hơn, tôi sẽ đặt độ dài tối đa là 64 Bây giờ chúng tôi đã sẵn sàng để thực hiện token hóa thực sự Hàm 0 kết hợp nhiều bước cho chúng tôi
Bốn tính năng đầu tiên có trong 35, nhưng tôi đang sử dụng 0 để nhận mục thứ năm (mặt nạ chú ý). Tài liệu ở đây 2 33. 4. Phân chia đào tạo & xác thựcChia tập huấn luyện của chúng tôi để sử dụng 90% cho đào tạo và 10% cho xác nhận 4 5Chúng tôi cũng sẽ tạo một trình vòng lặp cho tập dữ liệu của mình bằng cách sử dụng lớp DataLoader torch. Điều này giúp tiết kiệm bộ nhớ trong quá trình đào tạo bởi vì, không giống như vòng lặp for, với một trình vòng lặp, toàn bộ tập dữ liệu không cần phải được tải vào bộ nhớ 64. Đào tạo mô hình phân loại của chúng tôiBây giờ, dữ liệu đầu vào của chúng ta đã được định dạng đúng, đã đến lúc tinh chỉnh mô hình BERT 4. 1. BertForSequencePhân loạiĐối với nhiệm vụ này, trước tiên chúng tôi muốn sửa đổi mô hình BERT được đào tạo trước để đưa ra kết quả đầu ra cho việc phân loại, sau đó chúng tôi muốn tiếp tục đào tạo mô hình trên tập dữ liệu của mình cho đến khi toàn bộ mô hình, từ đầu đến cuối, phù hợp với Rất may, việc triển khai ômface pytorch bao gồm một tập hợp các giao diện được thiết kế cho nhiều tác vụ NLP. Mặc dù tất cả các giao diện này đều được xây dựng dựa trên mô hình BERT đã được đào tạo, nhưng mỗi giao diện đều có các lớp trên cùng và loại đầu ra khác nhau được thiết kế để phù hợp với nhiệm vụ NLP cụ thể của chúng Đây là danh sách hiện tại của các lớp được cung cấp để tinh chỉnh
Các tài liệu cho những điều này có thể được tìm thấy dưới đây Chúng tôi sẽ sử dụng BertForSequenceClassification. Đây là mô hình BERT bình thường có thêm một lớp tuyến tính ở trên cùng để phân loại mà chúng tôi sẽ sử dụng làm công cụ phân loại câu. Khi chúng tôi cung cấp dữ liệu đầu vào, toàn bộ mô hình BERT được đào tạo trước và lớp phân loại bổ sung chưa được đào tạo sẽ được đào tạo về nhiệm vụ cụ thể của chúng tôi OK, hãy tải BERT. Có sẵn một số mô hình BERT được đào tạo trước khác nhau. “bert-base-uncased” có nghĩa là phiên bản chỉ có các chữ cái viết thường (“không có vỏ bọc”) và là phiên bản nhỏ hơn của cả hai (“cơ sở” so với “lớn”) Có thể tìm thấy tài liệu về 37 tại đây, với các tham số bổ sung được xác định tại đây 7________số 8 Vì tò mò, chúng ta có thể duyệt qua tất cả các tham số của mô hình theo tên tại đây Trong ô bên dưới, tôi đã in tên và kích thước của các trọng số cho
9 04. 2. Trình tối ưu hóa và Trình lập lịch tốc độ học tậpBây giờ chúng tôi đã tải mô hình của mình, chúng tôi cần lấy các siêu đường kính đào tạo từ bên trong mô hình được lưu trữ Với mục đích tinh chỉnh, các tác giả khuyên bạn nên chọn từ các giá trị sau (từ Phụ lục A. 3 của giấy BERT)
Chúng tôi chọn
Tham số epsilon 38 là “một số rất nhỏ để ngăn chặn bất kỳ phép chia nào cho 0 trong quá trình triển khai” (từ tại đây )Bạn có thể tìm thấy việc tạo trình tối ưu hóa AdamW trong 3 tại đây 1 24. 3. vòng lặp đào tạoDưới đây là vòng lặp đào tạo của chúng tôi. Có rất nhiều thứ đang diễn ra, nhưng về cơ bản, đối với mỗi lần vượt qua trong vòng lặp của chúng tôi, chúng tôi có giai đoạn thử nghiệm và giai đoạn xác thực
Tập huấn
đánh giá
Pytorch giấu chúng tôi tất cả các tính toán chi tiết, nhưng chúng tôi đã nhận xét mã để chỉ ra bước nào ở trên đang diễn ra trên mỗi dòng
Xác định hàm trợ giúp để tính toán độ chính xác 3Hàm trợ giúp để định dạng thời gian đã trôi qua là 40 4Chúng tôi đã sẵn sàng để bắt đầu đào tạo 5 6Cùng xem tóm tắt quá trình đào tạo 7Tổn thất đào tạoHợp lệ. Mất hợp lệ. chính xác. Thời gian đào tạo Thời gian xác thực Kỷ nguyên 10. 500. 450. 800. 00. 510. 00. 0220. 320. 460. 810. 00. 510. 00. 0230. 220. 490. 820. 00. 510. 00. 0240. 160. 550. 820. 00. 510. 00. 02 Lưu ý rằng, trong khi tổn thất đào tạo đang giảm dần theo từng kỷ nguyên, thì tổn thất xác thực đang tăng lên. Điều này cho thấy rằng chúng tôi đang đào tạo mô hình của mình quá lâu và nó quá phù hợp với dữ liệu đào tạo (Để tham khảo, chúng tôi đang sử dụng 7.695 mẫu đào tạo và 856 mẫu xác nhận) Mất xác thực là thước đo chính xác hơn độ chính xác, bởi vì với độ chính xác, chúng tôi không quan tâm đến giá trị đầu ra chính xác, mà chỉ quan tâm đến phía nào của ngưỡng. Nếu chúng tôi đang dự đoán câu trả lời đúng, nhưng với độ tin cậy thấp hơn, thì mất xác thực sẽ bắt được điều này, trong khi độ chính xác sẽ không 85. Hiệu suất trên bộ thử nghiệmBây giờ, chúng tôi sẽ tải tập dữ liệu giữ lại và chuẩn bị đầu vào giống như chúng tôi đã làm với tập huấn luyện. Sau đó, chúng tôi sẽ đánh giá các dự đoán bằng hệ số tương quan Matthews vì đây là số liệu được cộng đồng NLP rộng lớn hơn sử dụng để đánh giá hiệu suất trên CoLA. Với số liệu này, +1 là điểm tốt nhất và -1 là điểm kém nhất. Bằng cách này, chúng tôi có thể thấy chúng tôi thực hiện tốt như thế nào so với các mô hình hiện đại cho nhiệm vụ cụ thể này 5. 1. Chuẩn bị dữ liệuChúng tôi sẽ cần áp dụng tất cả các bước giống như chúng tôi đã làm cho dữ liệu huấn luyện để chuẩn bị tập dữ liệu thử nghiệm của mình 9 05. 2. Đánh giá trên Bộ kiểm traVới tập kiểm tra đã chuẩn bị, chúng tôi có thể áp dụng mô hình tinh chỉnh của mình để tạo dự đoán trên tập kiểm tra 1 2Độ chính xác trên điểm chuẩn CoLA được đo bằng cách sử dụng “hệ số tương quan Matthews” (MCC) Chúng tôi sử dụng MCC ở đây vì các lớp không cân bằng 3 4 5 6Điểm số cuối cùng sẽ dựa trên toàn bộ tập hợp bài kiểm tra, nhưng chúng ta hãy xem xét điểm số của các nhóm riêng lẻ để hiểu được sự thay đổi của chỉ số giữa các nhóm Mỗi đợt có 32 câu, trừ đợt cuối chỉ có (516 % 32) = 4 câu trắc nghiệm 7Bây giờ, chúng tôi sẽ kết hợp kết quả cho tất cả các đợt và tính điểm MCC cuối cùng của chúng tôi 8 9Mát mẻ. Trong khoảng nửa giờ mà không cần thực hiện bất kỳ điều chỉnh siêu tham số nào (điều chỉnh tốc độ học, kỷ nguyên, kích thước lô, thuộc tính ADAM, v.v. ) chúng tôi có thể đạt điểm cao
Thư viện ghi lại độ chính xác dự kiến cho điểm chuẩn này ở đây là 41Bạn cũng có thể xem bảng xếp hạng chính thức tại đây Lưu ý rằng (do kích thước tập dữ liệu nhỏ?) Độ chính xác có thể thay đổi đáng kể giữa các lần chạy Sự kết luậnBài đăng này chứng minh rằng với mô hình BERT được đào tạo trước, bạn có thể tạo một mô hình chất lượng cao một cách nhanh chóng và hiệu quả với nỗ lực và thời gian đào tạo tối thiểu bằng giao diện pytorch, bất kể nhiệm vụ NLP cụ thể mà bạn quan tâm là gì. ruột thừaA1. Lưu và tải mô hình tinh chỉnhÔ đầu tiên này (được lấy từ 3 tại đây) ghi mô hình và mã thông báo ra đĩa 0 1Hãy kiểm tra kích thước tệp, vì tò mò 2 3Tệp lớn nhất là trọng lượng mô hình, vào khoảng 418 megabyte 4 5Để lưu mô hình của bạn trong các phiên Colab Notebook, hãy tải mô hình xuống máy cục bộ của bạn hoặc lý tưởng nhất là sao chép mô hình đó vào Google Drive của bạn 6 7Các chức năng sau sẽ tải lại mô hình từ đĩa 8A. 2. Suy giảm cân nặngVí dụ về hugface bao gồm khối mã sau để cho phép giảm dần trọng lượng, nhưng tốc độ giảm dần mặc định là “0. 0”, vì vậy tôi đã chuyển nó vào phụ lục Về cơ bản, khối này yêu cầu trình tối ưu hóa không áp dụng phân rã trọng số cho các thuật ngữ sai lệch (e. g. , $b$ trong phương trình $y = Wx + b$ ). Phân rã trọng số là một dạng chính quy hóa–sau khi tính toán độ dốc, chúng tôi nhân chúng với, e. g. , 0. 99 9Lịch sử sửa đổiPhiên bản 3 - ngày 18 tháng 3 năm 2020 - (hiện tại)
Phiên bản 2 - ngày 20 tháng 12 năm 2019 - liên kết
Phiên bản 1 - Ngày 22 tháng 7 năm 2019
Công việc tiếp theo
trích dẫnChris McCormick và Nick Ryan. (2019, ngày 22 tháng 7). Hướng dẫn tinh chỉnh BERT với PyTorch. Lấy từ http. //www. mccormickml. com |