GPT-4의 32k 입력 상자가 아직 충분하지 않습니까? Unlimiformer는 컨텍스트 길이를 무한 길이로 늘립니다.
Transformer는 현재 가장 강력한 seq2seq 아키텍처입니다. 사전 학습된 변환기에는 일반적으로 512(예: BERT) 또는 1024(예: BART) 토큰의 컨텍스트 창이 있으며, 이는 많은 현재 텍스트 요약 데이터 세트(XSum, CNN/DM)에 대해 충분히 깁니다.
그러나 16384는 책 요약(Krys-'cinski et al., 2021) 또는 서술형 질문 및 답변(Kociský et al. , 2018), 100,000개 이상의 토큰을 입력해야 하는 경우가 많습니다. Wikipedia 기사(Liu* et al., 2018)에서 생성된 챌린지 세트에는 500,000개 이상의 토큰 입력이 포함되어 있습니다. 생성적 질문 답변의 오픈 도메인 작업은 Wikipedia에 있는 모든 생존 작가의 기사 집계 속성에 대한 질문에 답변하는 등 더 큰 입력으로부터 정보를 합성할 수 있습니다. 그림 1은 일반적인 컨텍스트 창 길이에 대한 여러 인기 요약 및 Q&A 데이터세트의 크기를 보여줍니다. 가장 긴 입력은 Longformer의 컨텍스트 창보다 34배 이상 깁니다.
이렇게 매우 긴 입력의 경우 네이티브 어텐션 메커니즘이 2차 복잡성을 갖기 때문에 바닐라 변환기는 확장할 수 없습니다. 긴 입력 변환기는 표준 변환기보다 효율적이지만 컨텍스트 창 크기가 증가함에 따라 증가하는 상당한 계산 리소스가 필요합니다. 또한 컨텍스트 창을 늘리려면 새로운 컨텍스트 창 크기로 모델을 처음부터 다시 학습해야 하는데, 이는 계산적으로나 환경적으로 비용이 많이 듭니다.
카네기멜론대학교 연구진은 "Unlimiformer: Long-Range Transformers with Unlimited Length Input"이라는 기사에서 Unlimiformer를 소개했습니다. 이는 테스트 시 무한 길이의 입력을 허용하도록 사전 훈련된 언어 모델을 강화하는 검색 기반 접근 방식입니다.
문서 링크: https://arxiv.org/pdf/2305.01625v1.pdf
Unlimiformer는 기존 인코더-디코더 변환기에 주입할 수 있으며 무제한 길이의 입력을 처리할 수 있습니다. . 긴 입력 시퀀스가 주어지면 Unlimiformer는 모든 입력 토큰의 숨겨진 상태에 데이터 저장소를 구축할 수 있습니다. 그러면 디코더의 표준 교차 주의 메커니즘이 데이터 저장소를 쿼리하고 상위 k개 입력 토큰에 집중할 수 있습니다. 데이터 저장소는 GPU 또는 CPU 메모리에 저장될 수 있으며 하위 선형적으로 쿼리될 수 있습니다.
Unlimiformer는 훈련된 모델에 직접 적용할 수 있으며 추가 훈련 없이 기존 체크포인트를 개선할 수 있습니다. Unlimiformer는 성능을 더욱 향상시키기 위해 미세 조정되었습니다. 이 논문은 Unlimiformer가 가중치를 추가하거나 재교육하지 않고도 BART(Lewis et al., 2020a) 또는 PRIMERA(Xiao et al., 2022)와 같은 여러 기본 모델에 적용될 수 있음을 보여줍니다. 다양한 장거리 seq2seq 데이터 세트에서 Unlimiformer는 Longformer(Beltagy et al., 2020b), SLED(Ivgi et al., 2022) 및 Memorizing Transformer(Wu et al., 2021)와 같은 장거리 Transformer보다 강력할 뿐만 아니라 ) 이러한 데이터 세트에서 성능이 더 좋아졌으며, 이 기사에서는 Longformer 인코더 모델 위에 Unlimiform을 적용하여 추가 개선이 가능하다는 사실도 발견했습니다.
Unlimiformer 기술 원리
인코더 컨텍스트 창의 크기가 고정되어 있으므로 Transformer의 최대 입력 길이가 제한됩니다. 그러나 디코딩 중에는 다양한 정보가 관련될 수 있습니다. 더욱이 다양한 주의 헤드가 다양한 유형의 정보에 집중할 수 있습니다(Clark et al., 2019). 따라서 고정된 컨텍스트 창은 주의가 덜 집중되는 토큰에 노력을 낭비할 수 있습니다.
각 디코딩 단계에서 Unlimiformer의 각 어텐션 헤드는 모든 입력에서 별도의 컨텍스트 창을 선택합니다. 이는 Unlimiformer 조회를 디코더에 주입하여 달성됩니다. 교차 주의 모듈에 들어가기 전에 모델은 외부 데이터 저장소에서 kNN(k-nearest neighbor) 검색을 수행하고 각 디코더 계층의 각 주의 헤드 세트를 선택합니다. 참여 토큰.
인코딩
모델의 컨텍스트 창 길이보다 긴 입력 시퀀스를 인코딩하기 위해 이 기사에서는 Ivgi et al.(2022)(Ivgi et al., 2022)의 방법에 따라 입력 중첩 블록을 인코딩하고 각 블록만 유지합니다. 인코딩 프로세스 전후에 충분한 컨텍스트를 보장하기 위해 출력의 중간 절반을 청크합니다. 마지막으로 이 기사에서는 Faiss(Johnson et al., 2019)와 같은 라이브러리를 사용하여 데이터 저장소의 인코딩된 입력을 색인화합니다(Johnson et al., 2019).
향상된 교차 주의 메커니즘 검색
표준 교차 주의 메커니즘에서 변환기의 디코더는 인코더의 최종 숨겨진 상태에 초점을 맞추고 인코더는 일반적으로 입력을 자르고 첫 번째 k 토큰이 인코딩됩니다.
이 기사는 입력의 첫 번째 k 토큰에만 초점을 맞추는 것이 아니라 각 교차 주의 헤드에 대해 더 긴 입력 계열의 첫 번째 k 숨겨진 상태를 검색하고 첫 번째 k에만 초점을 맞춥니다. 이를 통해 키워드를 자르지 않고 전체 입력 시퀀스에서 키워드를 검색할 수 있습니다. 우리의 접근 방식은 모든 입력 토큰을 처리하는 것보다 계산 및 GPU 메모리 측면에서 저렴하면서도 일반적으로 주의 성능을 99% 이상 유지합니다.
그림 2는 seq2seq 변환기 아키텍처에 대한 이 기사의 변경 사항을 보여줍니다. 전체 입력은 인코더를 사용하여 블록 인코딩되고 데이터 저장소에 저장되며, 인코딩된 잠재 상태 데이터 저장소는 디코딩 시 쿼리됩니다. kNN 검색은 비모수적이며 아래에 설명된 대로 사전 훈련된 seq2seq 변환기에 주입될 수 있습니다.
실험 결과
긴 문서 요약
표 3은 긴 텍스트(4k 및 16k 토큰 입력) 요약 데이터 세트의 결과를 보여줍니다.
표 4의 훈련 방법 중 Unlimiformer는 다양한 지표에서 가장 좋은 결과를 얻을 수 있습니다.
도서 요약
표 5는 도서 요약 결과를 보여줍니다. BARTbase와 PRIMERA를 기반으로 Unlimiformer를 적용하면 확실한 개선 결과를 얻을 수 있음을 알 수 있습니다.
위 내용은 GPT-4의 32k 입력 상자가 아직 충분하지 않습니까? Unlimiformer는 컨텍스트 길이를 무한 길이로 늘립니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alter Table 문을 사용하여 SQL의 기존 테이블에 새 열을 추가하십시오. 특정 단계에는 다음이 포함됩니다. 테이블 이름 및 열 정보 결정, Alter Table 문 작성 및 진술 실행. 예를 들어, 고객 테이블에 이메일 열을 추가하십시오 (Varchar (50)) : Alter Table 고객 이메일 추가 Varchar (50);

SQL에서 열을 추가하기위한 구문은 Alter Table_Name ADD CORMEN_NAME DATY_TYPE [NOT NULL] [DEFAULT DEFAULT_VALUE]; 여기서 table_name은 테이블 이름이고 column_name은 새 열 이름, data_type는 데이터 유형이며 NULL은 NULL 값이 허용되는지 여부를 지정하고 기본값 기본값을 지정합니다.

SQL 테이블 개선 성능을 개선하기위한 팁 : 삭제 대신 Truncate 테이블을 사용하고 공간을 확보하고 ID 열을 재설정하십시오. 계단식 삭제를 방지하기 위해 외국의 주요 제약 조건을 비활성화하십시오. 트랜잭션 캡슐화 작업을 사용하여 데이터 일관성을 보장합니다. 배치는 빅 데이터를 삭제하고 한계를 통해 행 수를 제한합니다. 쿼리 효율성을 향상시키기 위해 지우고 지수를 재구성하십시오.

새로 추가 된 열에 대한 기본값을 설정하고 Alter Table 문을 사용하십시오. 문 : 열 추가를 지정하고 기본값을 설정하십시오. Alter Table_Name Add Column_name Data_Type Default_value; 구속 조건 조항을 사용하여 기본값을 지정하십시오. ALTER TABLE TABLE_NAME CORMENT CORMEN_NAME DATA DATA DATA DATA DATA DATA DATA DATAY_TYPE 제한 DEFAULT_COSSTRANT DEFAULT DEFAULT_VALUE;

예, 삭제 명령문은 SQL 테이블을 지우는 데 사용될 수 있습니다. 단계는 다음과 같습니다. 삭제 명령문 사용 : table_name에서 삭제; TABLE_NAME을 제거 할 테이블 이름으로 바꾸십시오.

Redis 메모리 조각화는 할당 된 메모리에 재 할당 할 수없는 작은 자유 영역의 존재를 말합니다. 대처 전략에는 다음이 포함됩니다. REDIS를 다시 시작하십시오 : 메모리를 완전히 지우지 만 인터럽트 서비스. 데이터 구조 최적화 : Redis에 더 적합한 구조를 사용하여 메모리 할당 및 릴리스 수를 줄입니다. 구성 매개 변수 조정 : 정책을 사용하여 최근에 가장 적게 사용 된 키 값 쌍을 제거하십시오. 지속 메커니즘 사용 : 데이터를 정기적으로 백업하고 Redis를 다시 시작하여 조각을 정리하십시오. 메모리 사용 모니터링 : 적시에 문제를 발견하고 조치를 취하십시오.

phpmyadmin을 사용하여 데이터 테이블을 만들려면 다음 단계가 필수적입니다. 데이터베이스에 연결하고 새 탭을 클릭하십시오. 테이블의 이름을 지정하고 저장 엔진을 선택하십시오 (InnoDB 권장). 열 이름, 데이터 유형, NULL 값 허용 여부 및 기타 속성을 포함하여 열 추가 버튼을 클릭하여 열 디테일을 추가하십시오. 기본 키로 하나 이상의 열을 선택하십시오. 저장 버튼을 클릭하여 테이블과 열을 만듭니다.

Oracle 데이터베이스를 만드는 것은 쉽지 않으므로 기본 메커니즘을 이해해야합니다. 1. 데이터베이스 및 Oracle DBMS의 개념을 이해해야합니다. 2. SID, CDB (컨테이너 데이터베이스), PDB (Pluggable Database)와 같은 핵심 개념을 마스터합니다. 3. SQL*Plus를 사용하여 CDB를 생성 한 다음 PDB를 만들려면 크기, 데이터 파일 수 및 경로와 같은 매개 변수를 지정해야합니다. 4. 고급 응용 프로그램은 문자 세트, 메모리 및 기타 매개 변수를 조정하고 성능 튜닝을 수행해야합니다. 5. 디스크 공간, 권한 및 매개 변수 설정에주의를 기울이고 데이터베이스 성능을 지속적으로 모니터링하고 최적화하십시오. 그것을 능숙하게 마스터 함으로써만 지속적인 연습이 필요합니다. Oracle 데이터베이스의 생성 및 관리를 진정으로 이해할 수 있습니다.
