Trí tuệ nhân tạo
OLMo: Nâng cao tính khoa học của các mô hình ngôn ngữ

Sự phát triển và tiến bộ của các mô hình ngôn ngữ trong vài năm qua đã đánh dấu sự hiện diện của chúng ở hầu hết mọi nơi, không chỉ trong nghiên cứu NLP mà còn trong các dịch vụ thương mại và ứng dụng trong thế giới thực. Tuy nhiên, ở một mức độ nhất định, nhu cầu thương mại đối với các mô hình ngôn ngữ tăng vọt đã cản trở sự phát triển của cộng đồng. Điều này là do phần lớn các mô hình hiện đại và có khả năng hoạt động đều bị kiểm soát bởi các giao diện độc quyền, khiến cộng đồng phát triển không thể truy cập vào các chi tiết quan trọng về kiến trúc đào tạo, dữ liệu và quy trình phát triển của họ. Giờ đây không thể phủ nhận rằng các chi tiết về cấu trúc và đào tạo này rất quan trọng đối với các nghiên cứu, bao gồm cả khả năng tiếp cận các rủi ro và thành kiến tiềm ẩn của chúng, do đó đặt ra yêu cầu cho cộng đồng nghiên cứu có quyền truy cập vào một mô hình ngôn ngữ thực sự cởi mở và mạnh mẽ.
Để đáp ứng yêu cầu này, các nhà phát triển đã tạo ra OLMo, một khung mô hình ngôn ngữ mở thực sự, hiện đại. Khung này cho phép các nhà nghiên cứu sử dụng OLMo để xây dựng và nghiên cứu các mô hình ngôn ngữ. Không giống như hầu hết các mô hình ngôn ngữ tiên tiến chỉ phát hành mã giao diện và trọng lượng mô hình, khung OLMo thực sự là nguồn mở, với mã đánh giá, phương pháp đào tạo và dữ liệu đào tạo có thể truy cập công khai. Mục đích chính của OLMo là trao quyền và thúc đẩy cộng đồng nghiên cứu mở cũng như sự phát triển liên tục của các mô hình ngôn ngữ.
Trong bài viết này, chúng tôi sẽ thảo luận chi tiết về khung OLMo, kiểm tra kiến trúc, phương pháp và hiệu suất của nó so với các khung công tác hiện đại nhất. Vậy hãy bắt đầu.
OLMo: Nâng cao tính khoa học của các mô hình ngôn ngữ
Mô hình ngôn ngữ được cho là xu hướng hot nhất trong vài năm qua, không chỉ trong cộng đồng AI và ML mà còn trong toàn ngành công nghệ, nhờ khả năng vượt trội của nó trong việc thực hiện các tác vụ trong thế giới thực với hiệu suất giống con người. ChatGPT là một ví dụ điển hình về các mô hình ngôn ngữ tiềm năng, với những người chơi lớn trong ngành công nghệ đang khám phá việc tích hợp mô hình ngôn ngữ với các sản phẩm của họ.
NLP, hay Xử lý ngôn ngữ tự nhiên, là một trong những ngành sử dụng rộng rãi các mô hình ngôn ngữ trong vài năm qua. Tuy nhiên, kể từ khi ngành bắt đầu sử dụng chú thích của con người để căn chỉnh và đào tạo trước trên quy mô lớn, các mô hình ngôn ngữ đã chứng kiến sự cải thiện nhanh chóng về khả năng tồn tại về mặt thương mại của chúng, dẫn đến phần lớn các ngôn ngữ hiện đại và khung NLP bị hạn chế. giao diện độc quyền, cộng đồng phát triển không có quyền truy cập vào các chi tiết quan trọng.
Để đảm bảo sự phát triển của các mô hình ngôn ngữ, OLMo, một mô hình ngôn ngữ mở thực sự, hiện đại, cung cấp cho các nhà phát triển một khuôn khổ để xây dựng, nghiên cứu và thúc đẩy sự phát triển của các mô hình ngôn ngữ. Nó cũng cung cấp cho các nhà nghiên cứu quyền truy cập vào mã đào tạo và đánh giá, phương pháp đào tạo, dữ liệu đào tạo, nhật ký đào tạo và điểm kiểm tra mô hình trung gian. Các mô hình tiên tiến hiện tại có mức độ mở khác nhau, trong khi mô hình OLMo đã phát hành toàn bộ khung, từ đào tạo đến dữ liệu đến các công cụ đánh giá, do đó thu hẹp khoảng cách hiệu suất khi so sánh với các mô hình tiên tiến như mô hình LLaMA2.
Đối với việc lập mô hình và đào tạo, khung OLMo bao gồm mã đào tạo, trọng lượng mô hình đầy đủ, sự cắt bỏ, nhật ký đào tạo và số liệu đào tạo dưới dạng mã giao diện cũng như nhật ký Trọng lượng & Xu hướng. Để phân tích và xây dựng tập dữ liệu, khung OLMo bao gồm dữ liệu huấn luyện đầy đủ được sử dụng cho các mô hình Dolma và WIMBD của AI2, cùng với mã tạo ra dữ liệu huấn luyện. Đối với mục đích đánh giá, khung OLMo bao gồm mô hình Catwalk của AI2 để đánh giá xuôi dòng và mô hình Paloma để đánh giá dựa trên sự bối rối.
OLMo: Mô hình và Kiến trúc
Mô hình OLMo sử dụng kiến trúc biến áp chỉ dành cho bộ giải mã dựa trên Hệ thống xử lý thông tin thần kinh và cung cấp hai mô hình với 1 tỷ và 7 tỷ tham số tương ứng, với mô hình 65 tỷ tham số hiện đang được phát triển.
Kiến trúc của khung OLMo mang lại một số cải tiến so với các khung bao gồm thành phần máy biến áp vanilla trong kiến trúc của chúng, bao gồm cả công nghệ tiên tiến gần đây mô hình ngôn ngữ lớn như OpenLM, Falcon, LLaMA và PaLM. Hình dưới đây so sánh mô hình OLMo với 7 tỷ tham số với các LLM gần đây hoạt động với số lượng tham số gần như bằng nhau.
Khung OLMo chọn các siêu tham số bằng cách tối ưu hóa mô hình để đào tạo thông lượng trên phần cứng, đồng thời giảm thiểu nguy cơ phân kỳ chậm và tổn thất tăng đột biến. Như đã nói, những thay đổi chính được triển khai bởi khung OLMo giúp phân biệt chính nó với kiến trúc máy biến áp thông thường như sau:
Không thiên vị
Không giống như Falcon, PaLM, LLaMA và các mô hình ngôn ngữ khác, khung OLMo không bao gồm bất kỳ thành kiến nào trong kiến trúc của nó để nâng cao tính ổn định trong đào tạo.
Định mức lớp không tham số
Khung OLMo triển khai công thức phi tham số của chuẩn lớp trong kiến trúc của nó. Định mức lớp không tham số không cung cấp phép biến đổi affine trong định mức, tức là nó không mang lại bất kỳ mức tăng hoặc sai lệch thích ứng nào. Định mức lớp không tham số không chỉ cung cấp tính bảo mật cao hơn Định mức lớp tham số mà còn nhanh hơn.
Chức năng kích hoạt SwiGLU
Giống như phần lớn các mô hình ngôn ngữ như PaLM và LLaMA, khung OLMo bao gồm chức năng kích hoạt SwiGLU trong kiến trúc của nó thay vì chức năng kích hoạt ReLU và tăng kích thước kích hoạt ẩn lên bội số gần nhất của 128 để cải thiện thông lượng.
RoPE hoặc nhúng vị trí quay
Các mô hình OLMo tuân theo các mô hình LLaMA và PaLM và hoán đổi các phần nhúng vị trí tuyệt đối cho các phần nhúng vị trí quay hoặc RoPE.
Đào tạo trước với Dolma
Mặc dù cộng đồng phát triển hiện đã tăng cường khả năng truy cập vào các tham số mô hình, nhưng cánh cửa truy cập bộ dữ liệu đào tạo trước vẫn đóng do dữ liệu đào tạo trước không được phát hành cùng với các mô hình đóng cũng như các mô hình mở. Hơn nữa, các tài liệu kỹ thuật bao gồm những dữ liệu đó thường thiếu các chi tiết quan trọng cần thiết để hiểu đầy đủ và nhân rộng mô hình. Rào cản gây khó khăn cho việc tiến hành nghiên cứu trong một số chủ đề nhất định mô hình ngôn ngữ nghiên cứu bao gồm sự hiểu biết về cách dữ liệu đào tạo tác động đến khả năng và hạn chế của mô hình. Khung OLMo đã xây dựng và phát hành tập dữ liệu đào tạo trước của mình, Dolma, để tạo điều kiện thuận lợi cho nghiên cứu mở về đào tạo trước mô hình ngôn ngữ. Bộ dữ liệu Dolma là một bộ sưu tập đa nguồn và đa dạng gồm hơn 3 nghìn tỷ mã thông báo trên 5 tỷ tài liệu được thu thập từ 7 nguồn khác nhau thường được các LLM quy mô lớn mạnh mẽ sử dụng để đào tạo trước và có thể truy cập được đối với khán giả nói chung. Thành phần của bộ dữ liệu Dolma được tóm tắt trong bảng sau.
Bộ dữ liệu Dolma được xây dựng bằng cách sử dụng một hệ thống gồm 5 thành phần: lọc ngôn ngữ, lọc chất lượng, lọc nội dung, trộn nhiều nguồn, sao chép và mã thông báo. OLMo cũng đã phát hành báo cáo Dolma cung cấp nhiều thông tin chi tiết hơn về nguyên tắc thiết kế và chi tiết xây dựng cùng với bản tóm tắt nội dung chi tiết hơn. Mô hình này cũng mở nguồn các công cụ quản lý dữ liệu hiệu suất cao để cho phép quản lý kho dữ liệu trước đào tạo dễ dàng và nhanh chóng. Việc đánh giá mô hình tuân theo chiến lược hai giai đoạn, bắt đầu bằng đánh giá trực tuyến để ra quyết định trong quá trình đào tạo mô hình và đánh giá ngoại tuyến cuối cùng để đánh giá tổng hợp từ các điểm kiểm tra mô hình. Để đánh giá ngoại tuyến, OLMo sử dụng khung Catwalk, công cụ đánh giá có sẵn công khai của chúng tôi có quyền truy cập vào nhiều tập dữ liệu và định dạng tác vụ đa dạng. Khung này sử dụng Catwalk để đánh giá xuôi dòng cũng như đánh giá mô hình ngôn ngữ nội tại trên điểm chuẩn về độ phức tạp mới của chúng tôi, Paloma. Sau đó, OLMo so sánh nó với một số mô hình công khai sử dụng quy trình đánh giá cố định của nó, cho cả đánh giá hạ lưu và đánh giá độ phức tạp.
OLMo chạy một số chỉ số đánh giá về kiến trúc mô hình, quá trình khởi tạo, trình tối ưu hóa, lịch trình tốc độ học tập và sự kết hợp dữ liệu trong quá trình đào tạo mô hình. Các nhà phát triển gọi đây là “đánh giá trực tuyến” của OLMo vì đây là vòng lặp lặp lại sau mỗi 1000 bước đào tạo (hoặc ∼4B mã thông báo đào tạo) để đưa ra tín hiệu sớm và liên tục về chất lượng của mô hình đang được đào tạo. Việc thiết lập các đánh giá này phụ thuộc vào phần lớn các nhiệm vụ cốt lõi và cài đặt thử nghiệm được sử dụng cho đánh giá ngoại tuyến của chúng tôi. OLMo không chỉ nhằm mục đích so sánh OLMo-7B với các mẫu khác để có hiệu suất tốt nhất mà còn cho thấy cách nó cho phép đánh giá khoa học đầy đủ hơn và được kiểm soát nhiều hơn. OLMo-7B là Mô hình ngôn ngữ lớn nhất có khả năng khử nhiễm rõ ràng để đánh giá mức độ bối rối.
Đào tạo OLMo
Điều quan trọng cần lưu ý là các mô hình khung OLMo được đào tạo bằng chiến lược tối ưu hóa ZeRO, được cung cấp bởi khung FSDP thông qua PyTorch và theo cách này, giảm đáng kể mức tiêu thụ bộ nhớ GPU bằng cách phân mảnh trọng số mô hình trên GPU. Với điều này, ở quy mô 7B, việc đào tạo có thể được thực hiện với kích thước lô vi mô là 4096 mã thông báo trên mỗi GPU trên phần cứng của chúng tôi. Khung đào tạo cho các mô hình OLMo-1B và -7B sử dụng kích thước lô không đổi toàn cục khoảng 4 triệu mã thông báo (2048 trường hợp, mỗi trường hợp có độ dài chuỗi là 2048 mã thông báo). Đối với mô hình OLMo-65B (hiện đang trong quá trình đào tạo), các nhà phát triển sử dụng khởi động kích thước lô bắt đầu từ khoảng 2 triệu mã thông báo (1024 trường hợp), tăng gấp đôi sau mỗi 100 tỷ mã thông báo cho đến khi đạt khoảng 16 triệu mã thông báo (8192 trường hợp).
Để cải thiện thông lượng, chúng tôi sử dụng chương trình đào tạo có độ chính xác hỗn hợp (Micikevicius và cộng sự, 2017) thông qua cài đặt tích hợp của FSDP và mô-đun amp của PyTorch. Cái sau đảm bảo rằng một số hoạt động nhất định như softmax luôn chạy ở độ chính xác hoàn toàn để cải thiện độ ổn định, trong khi tất cả các hoạt động khác chạy ở độ chính xác một nửa với định dạng bfloat16. Theo cài đặt cụ thể của chúng tôi, trọng số mô hình được phân chia và trạng thái tối ưu hóa cục bộ cho từng GPU được giữ ở độ chính xác hoàn toàn. Các trọng số trong mỗi khối biến áp chỉ được chuyển sang định dạng bfloat16 khi các tham số có kích thước đầy đủ được cụ thể hóa trên mỗi GPU trong quá trình chuyển tiếp và lùi. Độ dốc được giảm trên các GPU với độ chính xác hoàn toàn.
Trình tối ưu hóa
Khung OLMo sử dụng trình tối ưu hóa AdamW với các siêu tham số sau.
Đối với tất cả các kích thước mô hình, tốc độ học tăng dần tuyến tính trong 5000 bước đầu tiên (∼ 21B mã thông báo) đến giá trị tối đa, sau đó giảm dần tuyến tính với căn bậc hai nghịch đảo của số bước thành tốc độ học tối thiểu được chỉ định. Sau giai đoạn khởi động, mô hình cắt các gradient sao cho tổng l-norm của các gradient tham số không vượt quá 1.0. Bảng sau đây so sánh cài đặt trình tối ưu hóa của chúng tôi ở thang đo 7B với cài đặt từ các LM gần đây khác cũng sử dụng AdamW.
Dữ liệu đào tạo
Quá trình đào tạo liên quan đến việc mã hóa các trường hợp đào tạo bằng từ và mã thông báo BPE cho mô hình đoạn câu sau khi thêm mã thông báo EOS đặc biệt vào cuối mỗi tài liệu, sau đó chúng tôi nhóm các khối 2048 mã thông báo liên tiếp để tạo thành các phiên bản đào tạo. Các trường hợp huấn luyện được xáo trộn theo cách giống hệt nhau cho mỗi lần huấn luyện. Thứ tự dữ liệu và thành phần chính xác của từng đợt đào tạo có thể được xây dựng lại từ các tạo phẩm mà chúng tôi phát hành. Tất cả các mô hình OLMo được phát hành đã được đào tạo thành ít nhất 2T mã thông báo (một kỷ nguyên duy nhất trên dữ liệu huấn luyện của nó) và một số đã được đào tạo xa hơn bằng cách bắt đầu kỷ nguyên thứ hai trên dữ liệu với thứ tự xáo trộn khác. Với lượng dữ liệu nhỏ được lặp lại, nó sẽ có tác động không đáng kể.
Kết quả
Điểm kiểm tra được sử dụng để đánh giá OLMo-7B được đào tạo lên tới 2.46T mã thông báo trên bộ dữ liệu Dolma với lịch trình phân rã tốc độ học tập tuyến tính đã đề cập trước đó. Việc điều chỉnh thêm điểm kiểm tra này trên tập dữ liệu Dolma trong 1000 bước với tốc độ học tập phân rã tuyến tính thành 0 sẽ giúp tăng thêm hiệu suất mô hình trên các bộ đánh giá sự phức tạp và nhiệm vụ cuối được mô tả trước đó. Để đánh giá cuối cùng, các nhà phát triển đã so sánh OLMo với các mẫu đã được công bố rộng rãi khác – LLaMA-7B, LLaMA2-7B, Pythia-6.9B, Falcon-7B và RPJ-INCITE-7B.
Đánh giá xuôi dòng
Bộ đánh giá cốt lõi xuôi dòng được tóm tắt trong bảng sau.
Chúng tôi tiến hành đánh giá zero-shot bằng cách tiếp cận phân loại thứ hạng trong mọi trường hợp. Với cách tiếp cận này, ứng viên hoàn thành văn bản (ví dụ: các tùy chọn trắc nghiệm khác nhau) được xếp hạng theo khả năng (thường được chuẩn hóa bởi một số yếu tố chuẩn hóa) và độ chính xác của dự đoán được báo cáo.
Mặc dù Catwalk sử dụng một số phương pháp chuẩn hóa xác suất điển hình, chẳng hạn như chuẩn hóa theo token và chuẩn hóa theo ký tự, các chiến lược chuẩn hóa được áp dụng được chọn riêng cho từng tập dữ liệu và bao gồm cả xác suất không điều kiện của câu trả lời. Cụ thể hơn, điều này không bao gồm chuẩn hóa cho các tác vụ arc và openbookqa, chuẩn hóa theo token cho các tác vụ hellaswag, piqa và winogrande, và không chuẩn hóa cho các tác vụ boolq, copa và sciq (tức là các tác vụ trong một công thức gần với một tác vụ dự đoán token duy nhất).
Hình dưới đây cho thấy tiến độ đạt được điểm chính xác cho chín nhiệm vụ cuối cốt lõi. Có thể suy luận rằng nhìn chung có xu hướng ngày càng tăng về số lượng chính xác cho tất cả các nhiệm vụ, ngoại trừ OBQA, vì OLMo-7B được đào tạo thêm về nhiều mã thông báo hơn. Sự gia tăng rõ rệt về độ chính xác của nhiều nhiệm vụ từ bước cuối cùng đến bước thứ hai đến bước cuối cùng cho chúng ta thấy lợi ích của việc giảm tuyến tính LR xuống 0 trong 1000 bước huấn luyện cuối cùng. Ví dụ, trong trường hợp đánh giá nội tại, Paloma lập luận thông qua một loạt phân tích, từ việc kiểm tra hiệu suất trong từng lĩnh vực riêng biệt cho đến các kết quả tóm tắt hơn qua sự kết hợp của các lĩnh vực. Chúng tôi báo cáo kết quả ở hai cấp độ chi tiết: hiệu suất tổng hợp trên 11 trong số 18 nguồn ở Paloma, cũng như các kết quả chi tiết hơn trên từng nguồn riêng lẻ.
.
Trong bài viết này, chúng ta đã nói về OLMo, một mô hình ngôn ngữ mở thực sự hiện đại cung cấp cho các nhà phát triển một khuôn khổ để xây dựng, nghiên cứu và thúc đẩy sự phát triển của các mô hình ngôn ngữ cùng với việc cung cấp cho các nhà nghiên cứu quyền truy cập vào mã đào tạo và đánh giá, phương pháp đào tạo, dữ liệu huấn luyện, nhật ký huấn luyện và điểm kiểm tra mô hình trung gian. Các mô hình hiện đại hiện có có mức độ mở khác nhau trong khi mô hình OLMo đã phát hành toàn bộ khuôn khổ từ đào tạo, dữ liệu đến các công cụ đánh giá, do đó thu hẹp khoảng cách về hiệu suất khi so sánh với các mô hình hiện đại như mô hình LLaMA2.