>기술 주변기기 >일체 포함 >큰 효과가 있는 작은 트릭, '프롬프트를 두 번만 읽기'를 통해 순환 언어 모델이 Transformer++를 능가할 수 있습니다.

큰 효과가 있는 작은 트릭, '프롬프트를 두 번만 읽기'를 통해 순환 언어 모델이 Transformer++를 능가할 수 있습니다.

WBOY
WBOY원래의
2024-08-05 17:09:49618검색

현재 AI 분야에서 대규모 언어 모델에 사용되는 주류 아키텍처는 Transformer입니다. 그러나 RWKV 및 Mamba와 같은 아키텍처의 출현과 함께 분명한 추세가 있습니다. 언어 모델링 복잡성 측면에서 Transformer와 경쟁하는 순환 대형 언어 모델이 빠르게 사람들의 관심을 끌고 있습니다.

흥미로운 점은 이러한 아키텍처가 추론 중에 일정한 양의 메모리를 사용한다는 것입니다. 그러나 제한된 메모리로 인해 순환 언어 모델(LM)은 긴 컨텍스트의 모든 정보를 기억하고 사용할 수 없으므로 상황 내 학습(ICL)의 품질이 저하됩니다. 따라서 효율적인 대규모 언어 모델을 얻는 데 있어서 중요한 과제는 어떤 정보를 저장하거나 삭제할지 선택하는 것입니다.

최근 논문 "두 번 읽으세요: 순환 언어 모델에 대한 회상 격차 닫기"에서 스탠포드 대학과 버팔로 대학의 연구자들은 추론 중에 데이터가 순환 언어 모델의 정렬 극에 쏟아진다는 사실을 간단한 관찰을 통해 발견했습니다. 제한된 메모리에 어떤 정보를 저장할지 예측하기가 어렵습니다.

문서 D(Galileo Galilei의 자세한 Wikipedia 등)를 기반으로 질문한다고 가정합니다. 갈릴레오는 언제 피렌체로 이사했습니까? 이때 프롬프트가 [Q, D] 순서를 따른다면 모델은 문서 D의 한 가지 사실만 기억하면 됩니다. 대조적으로 단서가 [D, Q] 순서를 따르는 경우 모델은 모든 사실을 기억해야 합니다. 이는 아래 그림 1(왼쪽)에 나와 있습니다.

큰 효과가 있는 작은 트릭, 프롬프트를 두 번만 읽기를 통해 순환 언어 모델이 Transformer++를 능가할 수 있습니다.

따라서 본 논문에서는 먼저 데이터 정렬이 메모리 요구 사항에 미치는 영향을 이론적으로 공식화한 다음 데이터 정렬에 대한 의존성을 완화하기 위한 두 가지 방법, 즉 Just-read-twice(JRT) 프롬프트 전략JRT 루프를 제안합니다. 건축. 이 글은 주로 다음과 같은 부분으로 나누어져 있습니다:

데이터 정렬의 역할 이해. 연구자들이 얻은 첫 번째 통찰력은 메모리 문제의 경도가 수십 년 동안 지속된 통신 복잡도 이론의 가장 일반적인 문제인 집합 분리(SD)와 동일하게 감소되어야 한다는 것이었습니다. SD는 컨텍스트에 제공된 입력 세트를 떼어낼지 여부를 결정하기 위해 스트리밍 알고리즘(예: 반복 모델)이 필요합니다.

큰 효과가 있는 작은 트릭, 프롬프트를 두 번만 읽기를 통해 순환 언어 모델이 Transformer++를 능가할 수 있습니다.

이론적 분석 및 실험 결과에 따르면 첫 번째 세트 |A| SD. 인과 모델에서는 B의 요소와 비교하기 위해 A의 모든 요소를 ​​저장해야 합니다. 이는 컨텍스트에서 "올바른 데이터 순서 지정"을 사용하는 것(예: 가장 작은 최소값(|A|, |B|) 세트를 먼저 배치하는 것)이 메모리가 제한된 모델에 도움이 된다는 것을 보여줍니다. 또한 상황에 맞는 인과 논리를 갖춘 모델은 데이터 순서를 고려하지 않고 가장 작은 공간(|A|, |B|)에서 SD를 해결할 수 있다는 것이 관찰되었습니다.

두 번째는 "올바른" 정렬을 활용하는 것입니다. 이 기사에서는 모델이 답변을 생성하기 전에 상황에 따라 정보를 여러 번 반복하는 매우 간단한 JRT-Prompt 전략을 제안합니다(위 그림 1의 오른쪽 참조). 두 번째 및 후속 라운드에서는 저장할 정보를 결정할 때 언어 모델이 전체 컨텍스트에 따라 조정되므로 데이터 정렬을 "재형성"하는 문제를 효과적으로 방지할 수 있습니다.

결과에 따르면 JRT-Prompt는 기존 순환 언어 모델 16개와 ICL 작업 6개에서 평균 11.0 ± 1.3% 포인트 향상을 달성했으며 처리량은 FlashAttention-2(길이 32k, 배치 크기 16)의 11.9배인 것으로 나타났습니다. JRT-Prompt가 컨텍스트 길이를 늘리기는 하지만 여전히 Attention보다 점근적으로 계산 및 메모리 효율성이 더 높습니다.

인과모델을 넘어서. 본 논문에서는 간단한 Prefix-LM 인코더-디코더 아키텍처 설계에서 영감을 받은 JRT-RNN을 제안합니다. 대부분의 상황별 학습 입력에는 입력 프롬프트(컨텍스트, 지침)와 출력으로서의 모델 생성 텍스트라는 두 부분이 포함됩니다. Prefix-LM 아키텍처에서 LM은 인과 논리에 따라 큐 영역을 처리하지 않고 출력을 인과적으로 디코딩합니다. 여기서 표준 다음 토큰 예측 손실만 인과 영역에 사용되고 비인과 영역에 대한 손실이 사용됩니다.

그러나 불행하게도 Prefix-LM 모델의 이전 훈련 방법은 제한적인 성공을 거두었고 비효율적인 Transformer 백본을 사용했습니다. 따라서 이 기사에서는 훈련 손실을 개선하고 "Prefix Linear Attention, PLA"라는 선형 주의 공식을 사용하는 등 몇 가지 간단한 변경을 통해 품질과 효율성을 향상시킵니다. 연구원들은 JRT-RNN이 IO 인식 구현을 사용하여 360m 및 1.3b 매개변수 설정에서 각각 13.7% 및 6.9%의 평균 품질 개선을 제공할 수 있으며 처리량은 FA2의 19.2배라는 사실을 발견했습니다.

큰 효과가 있는 작은 트릭, 프롬프트를 두 번만 읽기를 통해 순환 언어 모델이 Transformer++를 능가할 수 있습니다.

  • 논문 주소: https://arxiv.org/pdf/2407.05483

  • 프로젝트 홈페이지: https://github.com/HazyResearch/prefix-linear-attention

JRT- 프롬프트 방법 개요

Tugas pembelajaran kontekstual mengambil (C, Q, Y) sebagai input, dengan C ialah beberapa sumber konteks (seperti dokumen atau repositori kod), Q ialah beberapa soalan atau permintaan kepada model yang diberi konteks, dan Y ialah jawapannya. Untuk pembelajaran konteks standard menggunakan LM A autoregresif, penyelidik mengambil input C dan Q dan menilai output yang terhasil Yˆ = A (C, Q) terhadap penyiapan Y yang betul.

JRT-Prompt ialah kaedah yang sangat mudah yang mengulangi maklumat dalam gesaan (seperti soalan dan dokumen) dalam konteks sebelum menggesa model untuk mengeluarkan jawapan, seperti Yˆ = A (C, Q, C di sebelah kanan dalam Rajah 1 di bawah), Q). Oleh itu, pada kali kedua konteks muncul, model memutuskan maklumat yang hendak disimpan berdasarkan konteks lengkap.

큰 효과가 있는 작은 트릭, 프롬프트를 두 번만 읽기를 통해 순환 언어 모델이 Transformer++를 능가할 수 있습니다.

Selain itu, JRT-Prompt boleh digunakan dengan LLM siap sedia. Para penyelidik menilai LM berikut pada satu siri tugas kontekstual intensif memori di bawah gesaan sampel sifar:

  • Berasaskan LM pra-latihan dengan saiz parameter 1.3B, dilatih pada token 10 − 50B Pile.

  • LM pra-latihan Mamba, saiz parameter ialah 130M, 370M, 1.4B dan 2.8B, dilatih pada token 300B Pile; daripada set data SlimPajama;
  • Mamba-2 LM pra-latihan, dengan saiz parameter 130M, 370M, 1.3B dan 2.7B, dilatih pada token 300B Pile.
  • Keputusan ditunjukkan dalam Jadual 1 di bawah Dengan meningkatkan saiz keadaan, pengkaji mendapati bahawa kaedah JRT-Prompt membawa peningkatan prestasi purata sebanyak 11.0 ± 1.3 mata peratusan pada pelbagai model dan tugasan yang menggunakan ini kaedah Secara purata mengatasi model Transformer menggunakan petunjuk standard.
  • Mereka juga mendapati bahawa JRT-Prompt boleh memanfaatkan model Transformer, dan kaedah ini lebih berkesan daripada pembelajaran beberapa pukulan pada beberapa tugas (Lampiran 2). Perlu diingat bahawa dalam kertas "Pengulangan menambah baik pembenaman model bahasa", Springer et al mencadangkan untuk menggunakan model Transformer autoregresif untuk mengulangi konteks untuk mencapai tujuan menjana benam. Penyelidik menumpukan pada seni bina sub-kuadrat dan tugas pembelajaran kontekstual.

JRT-Prompt Walaupun panjang konteks meningkat disebabkan pengulangan, seni bina gelung sub-kuadrat yang digunakannya masih lebih cekap daripada menggunakan model Transformer kuadratik. Para penyelidik mendapati bahawa menggunakan JRT-Prompt (panjang jujukan 2N) memberikan 11.9 kali daya pemprosesan FlashAttention-2 (panjang jujukan N) pada NVIDIA H100 pada panjang jujukan N = 32768 dan saiz kelompok 16.

JRT-RNN: Seni Bina Gelung Pengekod-Penyahkod 큰 효과가 있는 작은 트릭, 프롬프트를 두 번만 읽기를 통해 순환 언어 모델이 Transformer++를 능가할 수 있습니다.

JRT-RNN diilhamkan oleh Awalan-LM, tetapi memfokuskan pada meluaskan sempadan Pareto bagi ruang pertukaran kecekapan kualiti. Untuk meningkatkan kualiti, JRT-RNN menggunakan pemetaan k_e dan v_e yang berasingan pada bahagian pengekod dan pemetaan k_d dan v_d pada bahagian penyahkod. Walaupun model Prefix LM menggunakan pemberat pemetaan yang dikongsi untuk kawasan pengekod dan penyahkod, penyelidik mendapati bahawa menggunakan dua set pemetaan meningkatkan kualiti.

Untuk meningkatkan kecekapan, JRT-RNN menggunakan perhatian linear bukan sebab untuk pengekod dan perhatian linear kausa standard untuk penyahkod. Para penyelidik memanggilnya Prefix Linear Attention (PLA) (kanan dalam Rajah 1), dan formulanya adalah seperti berikut:

JRT-RNN objektif latihan. LM awalan biasanya tidak mengira kerugian di kawasan bukan sebab, manakala JRT-RNN menggabungkan ramalan token seterusnya dengan objektif pemodelan bahasa bertopeng (MLM). Dan untuk sasaran MLM tambahan, penyelidik menggantikan token dengan perkadaran P dari rantau pengekod {u_1, ..., u_M} dengan token [MASK] dan mengukur kehilangan entropi silang

apabila meramalkan token asal.

Kerugian adalah seperti berikut: 큰 효과가 있는 작은 트릭, 프롬프트를 두 번만 읽기를 통해 순환 언어 모델이 Transformer++를 능가할 수 있습니다.

큰 효과가 있는 작은 트릭, 프롬프트를 두 번만 읽기를 통해 순환 언어 모델이 Transformer++를 능가할 수 있습니다.

Hasil eksperimen

큰 효과가 있는 작은 트릭, 프롬프트를 두 번만 읽기를 통해 순환 언어 모델이 Transformer++를 능가할 수 있습니다.Dalam eksperimen, penyelidik menilai kualiti dan kecekapan JRT-RNN pada tiga petunjuk berikut:

kualiti pembelajaran konteks

Pemodelan Bahasa Keseluruhan

  • penjanaan

  • Kualiti pembelajaran konteks
  • Seperti ditunjukkan dalam Jadual 2 di bawah, penyelidik mendapati JRT-RNN lebih baik daripada penyahkod (Ba6M) secara asas (baseline) (30B token) Purata adalah 13.7 mata peratusan lebih tinggi, dan purata ialah 6.9 mata peratusan lebih tinggi apabila parameternya ialah 1.3B (50B token).

    Pada masa yang sama, jurang antara JRT-RNN dan Transformer++ dikecilkan kepada 0.5 mata peratusan dan 1.9 mata peratusan apabila parameter masing-masing adalah 360M dan 1.3B.

    Dalam Jadual 3 di bawah, penyelidik membandingkan prestasi JRT-RNN dengan strategi inferens yang serupa apabila panjang praisi l lebih kecil daripada panjang pengekod M. . secara berurutan untuk meramalkan token seterusnya dengan betul; dan "Kepingan lain" mengandungi token yang tinggal (seperti pengetahuan yang dihafal).

    Untuk kekerapan ingatan, JRT-RNN berprestasi baik dalam "hirisan AR". Untuk bigram yang tidak biasa semasa latihan (iaitu, kurang berkemungkinan diingati dalam parameter model), kebingungan JRT-RNN bertambah baik berbanding Berdasarkan dan Mamba, dua garis dasar gelung kausal yang kuat. 큰 효과가 있는 작은 트릭, 프롬프트를 두 번만 읽기를 통해 순환 언어 모델이 Transformer++를 능가할 수 있습니다.

    Untuk jarak ingatan, dalam "hirisan AR", jurang antara JRT-RNN dan garis dasar penyahkod sahaja semakin melebar apabila bilangan bigram berulang dalam konteks meningkat. Ini seterusnya membuktikan bahawa JRT-RNN boleh membantu menyelesaikan tugas memori kontekstual yang lebih panjang.

    Kekerapan bukan ingatan. Untuk "Kepingan lain" bigram bukan ingatan yang jarang dilihat semasa latihan, JRT-RNN mempunyai kebingungan yang lebih teruk daripada LM penyahkod sahaja. Ini adalah hasil yang dijangkakan kerana JRT-RNN mengira kerugian hanya 65% daripada token LM penyahkod.

    Kami menjangkakan jurang ini akan mengecil dengan skala dan masa latihan (meningkat dengan kekerapan bigram) (Rajah 3, kiri atas).

    Hasil penjanaan

    Penjanaan boleh diuraikan kepada dua langkah: "pemprosesan praisi" segera dan penyahkodan "ramalan token seterusnya". Berbanding dengan model gelung penyahkod sahaja standard, JRT-RNN tidak mengubah suai langkah penyahkodan, jadi perbincangan tertumpu pada peringkat praisi.

    Menggunakan kernel CUDan Berasaskan yang dicadangkan dalam makalah "Model bahasa perhatian linear mudah mengimbangi perdagangan balik-proses" oleh Simran Arora et al., daya pemprosesan JRT-Prompt semasa memproses praisi ialah 11.9 dan 13.7 FlashAttention-2 dan Biji FLA Triton masing-masing, seperti yang ditunjukkan dalam Jadual 5 di bawah. 큰 효과가 있는 작은 트릭, 프롬프트를 두 번만 읽기를 통해 순환 언어 모델이 Transformer++를 능가할 수 있습니다.

    Apabila penyelidik meningkatkan saiz kelompok kepada 64, daya pemprosesan JRT-Prompt masing-masing adalah 6.1 kali dan 7.2 kali lebih tinggi daripada biji FlashAttention-2 dan FLA Triton.

    Seterusnya mereka memanjangkan kernel Berasaskan untuk menyokong JRT-RNN dan menunjukkan bahawa apabila meningkatkan panjang jujukan kepada 32768, daya pemprosesan masing-masing adalah 19.2 kali dan 22.0 kali ganda daripada FlashAttention-2 dan FLA. Apabila meningkatkan saiz kelompok kepada 64, JRT-RNN menyediakan satu lagi peningkatan daya pemprosesan 9.7x dan 11.5x, masing-masing. Masa yang diperlukan oleh JRT-RNN ialah 1.24 kali ganda daripada praisi Berdasarkan, yang lebih cekap daripada JRT-Prompt.

    Sila rujuk kertas asal untuk butiran lanjut teknikal dan keputusan percubaan.

위 내용은 큰 효과가 있는 작은 트릭, '프롬프트를 두 번만 읽기'를 통해 순환 언어 모델이 Transformer++를 능가할 수 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.