최대 4백만 개의 토큰 컨텍스트와 22배 더 빠른 추론을 갖춘 StreamingLLM은 인기를 얻었으며 GitHub에서 별 2,500개를 받았습니다.
대화형 AI 봇과 상호작용해 본 적이 있다면 매우 실망스러운 순간을 기억하실 것입니다. 예를 들어, 전날 대화에서 언급한 중요한 사항은 AI에 의해 완전히 잊어버렸습니다...
대부분의 LLM은 시험을 위해 벼락치기 공부를 하는 학생들처럼 제한된 맥락만 기억할 수 있기 때문입니다. 조사를 통해 "진실이 드러날 것"이다.
AI 비서가 채팅에서 몇 주, 몇 달 전의 대화를 상황에 맞게 참조할 수 있거나 AI 비서에게 수천 페이지에 달하는 보고서를 요약해달라고 요청할 수 있다면 부러워하지 않을까요?
LLM이 더 잘 기억하고 더 많은 내용을 기억할 수 있도록 연구자들은 열심히 노력해 왔습니다. 최근 MIT, Meta AI, Carnegie Mellon University의 연구진은 언어 모델이 끝없는 텍스트를 원활하게 처리할 수 있도록 하는 "StreamingLLM"이라는 방법을 제안했습니다
- 논문 주소: https://arxiv.org /pdf/2309.17453.pdf
- 프로젝트 주소: https://github.com/mit-han-lab/streaming-llm
StreamingLLM은 모델 고유의 "주의 집중 싱크"를 식별하고 저장하는 방식으로 작동합니다. ” (주의가 가라앉음) 추론을 위해 초기 토큰을 고정합니다. 최신 토큰의 롤링 캐싱과 결합된 StreamingLLM은 정확성을 저하시키지 않고 추론 속도를 22배 향상시킵니다. 단 며칠 만에 이 프로젝트는 GitHub 플랫폼에서 2500개의 별을 얻었습니다.
특히 StreamingLLM은 이전 게임의 점수를 정확하게 기억할 수 있는 언어 모델입니다. 긴 계약이나 토론의 내용. AI 어시스턴트의 메모리를 업그레이드하는 것처럼 더 많은 작업 부하를 완벽하게 처리할 수 있습니다
다음으로 기술적인 세부 사항을 살펴보겠습니다.
방법 혁신
일반적으로 LLM은 사전 훈련 중 주의 집중 기간으로 제한됩니다. 이 창 크기를 확장하고 훈련 및 추론 효율성을 향상시키기 위한 많은 이전 작업이 있었지만 LLM의 허용 가능한 시퀀스 길이는 여전히 제한되어 있어 지속적인 배포에 적합하지 않습니다.
본 논문에서 연구자는 LLM 스트리밍 응용 프로그램의 개념을 처음 소개하고 "효율성과 성능을 희생하지 않고 무한히 긴 입력으로 LLM을 배포할 수 있는가?"라는 질문을 제기했습니다.
LLM을 무한히 긴 입력에 적용할 때 입력 스트림을 사용하면 두 가지 주요 과제에 직면하게 됩니다.
1 디코딩 단계에서 변환기 기반 LLM은 그림 1에 표시된 것처럼 모든 이전 토큰의 키 및 값 상태(KV)를 캐시합니다. a) 이로 인해 과도한 메모리 사용이 발생하고 디코딩 대기 시간이 증가할 수 있습니다.
2. 기존 모델에는 길이 추정 기능이 제한되어 있습니다. 즉, 시퀀스 길이가 사전 훈련 중에 설정된 주의 창을 초과하는 경우에도 마찬가지입니다. 장시간 사용하면 성능이 저하됩니다.
직관적인 방법은 Window Attention(그림 1b)이라고 합니다. 이 방법은 가장 최근 토큰의 KV 상태에 대해 고정 크기 슬라이딩 창만 유지할 수 있지만 이는 안정적인 메모리 사용 및 디코딩을 보장합니다. 캐시가 채워진 후 속도가 빨라지지만 시퀀스 길이가 캐시 크기를 초과하거나 첫 번째 토큰의 KV를 제거하면 모델이 충돌합니다. 또 다른 방법은 슬라이딩 윈도우를 다시 계산하는 것입니다(그림 1c 참조). 이 방법은 생성된 각 토큰에 대해 가장 최근 토큰의 KV 상태를 재구성합니다. 성능은 강력하지만 윈도우 내에서 2차 주의를 계산해야 합니다. 결과가 상당히 느려지므로 실제 스트리밍 애플리케이션에는 적합하지 않습니다.
창 주의 실패를 연구하는 과정에서 연구원들은 흥미로운 현상을 발견했습니다. 그림 2에 따르면 이러한 태그가 언어 모델링 작업과 관련되어 있는지 여부에 관계없이 많은 수의 주의 점수가 초기 태그에 할당됩니다.
연구원들은 이러한 토큰을 "주의력 풀"이라고 부릅니다. 의미론적 의미는 부족하지만 많은 관심 점수를 차지합니다. 연구원들은 이 현상을 Softmax(모든 컨텍스트 토큰의 어텐션 점수 합이 1이 되도록 요구함)에 기인한다고 생각합니다. 현재 쿼리가 이전의 많은 토큰과 강하게 일치하지 않더라도 모델은 여전히 이러한 불필요한 어텐션을 전송해야 합니다. . 값은 합이 1이 되도록 어딘가에 할당됩니다. 초기 토큰이 "풀"이 되는 이유는 직관적입니다. 자동 회귀 언어 모델링의 특성으로 인해 초기 토큰은 거의 모든 후속 토큰에 표시되므로 어텐션 풀로 훈련하기가 더 쉽습니다.
위의 통찰력을 바탕으로 연구원은 StreamingLLM을 제안했습니다. 이는 제한된 주의 창으로 훈련된 주의 모델이 미세 조정 없이 무한히 긴 텍스트를 처리할 수 있도록 하는 간단하고 효율적인 프레임워크입니다.
StreamingLLM은 주의 풀의 주의 가치가 높다는 사실을 활용합니다. 실제로 이러한 주의 풀을 유지하면 다음을 수행할 수 있습니다. 주의 점수 분포를 정규 분포에 가깝게 만듭니다. 따라서 StreamingLLM은 관심 풀 토큰의 KV 값(초기 토큰 4개만 있으면 충분함)과 슬라이딩 윈도우의 KV 값만 유지하면 관심 계산을 고정하고 모델 성능을 안정화할 수 있습니다.
Llama-2-[7,13,70] B, MPT-[7,30] B, Falcon-[7,40] B 및 Pythia [2.9,6.9,12] B를 포함한 StreamingLLM 사용 모델 400만 개 이상의 토큰을 안정적으로 시뮬레이션할 수 있습니다.
슬라이딩 창을 다시 계산하는 것과 비교했을 때 StreamingLLM은 성능에 영향을 주지 않고 22.2배 더 빠릅니다.
Evaluation
그림 3과 같이 20K 범위에 대한 실험에서 레이블이 지정된 텍스트의 경우 StreamingLLM의 당혹감은 다음과 같습니다. 슬라이딩 윈도우를 다시 계산하는 Oracle 기준선과 유사합니다. 동시에, 입력 길이가 사전 훈련 기간을 초과하면 Dense attention이 실패하고, 입력 길이가 캐시 크기를 초과하면 window attention이 정체되어 초기 태그가 제거됩니다
그림 5 추가 StreamingLLM의 신뢰성이 입증되었으며 다양한 모델 계열 및 크기를 포괄하는 400만 개 이상의 토큰을 포함하여 특이한 크기의 텍스트를 처리할 수 있습니다. 이러한 모델에는 Llama-2-[7,13,70] B, Falcon-[7,40] B, Pythia-[2.8,6.9,12] B 및 MPT-[7,30] B
이 포함됩니다. 이후 연구원들은 "어텐션 풀"이라는 가설을 확인하고 언어 모델이 사전 훈련될 수 있으며 스트리밍 배포 중에 하나의 어텐션 풀 토큰만 필요하다는 것을 증명했습니다. 특히 모든 훈련 샘플 시작 시 지정된 주의 풀로 학습 가능한 추가 토큰을 추가할 것을 제안합니다. 연구원들은 1억 6천만 개의 매개변수로 언어 모델을 처음부터 사전 훈련함으로써 우리의 방법이 모델의 성능을 유지할 수 있음을 입증했습니다. 이는 동일한 수준의 성능을 달성하기 위해 여러 초기 토큰을 주의 풀로 다시 도입해야 하는 현재 언어 모델과 뚜렷한 대조를 이룹니다.
마지막으로 연구원들은 StreamingLLM의 디코딩 지연 시간과 메모리 사용량을 재계산 슬라이딩 윈도우와 비교하고 단일 NVIDIA A6000 GPU에서 Llama-2-7B 및 Llama-2-13B 모델을 사용하여 테스트했습니다. 그림 10의 결과에 따르면 캐시 크기가 증가함에 따라 StreamingLLM의 디코딩 속도는 선형적으로 증가하는 반면 디코딩 지연은 2차적으로 증가합니다. 실험에 따르면 StreamingLLM은 각 토큰의 속도가 최대 22.2배까지 증가하여 인상적인 속도 향상을 달성하는 것으로 입증되었습니다.
위 내용은 최대 4백만 개의 토큰 컨텍스트와 22배 더 빠른 추론을 갖춘 StreamingLLM은 인기를 얻었으며 GitHub에서 별 2,500개를 받았습니다.의 상세 내용입니다. 자세한 내용은 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)

뜨거운 주제











데이터베이스 산 속성에 대한 자세한 설명 산 속성은 데이터베이스 트랜잭션의 신뢰성과 일관성을 보장하기위한 일련의 규칙입니다. 데이터베이스 시스템이 트랜잭션을 처리하는 방법을 정의하고 시스템 충돌, 전원 중단 또는 여러 사용자의 동시 액세스가 발생할 경우에도 데이터 무결성 및 정확성을 보장합니다. 산 속성 개요 원자력 : 트랜잭션은 불가분의 단위로 간주됩니다. 모든 부분이 실패하고 전체 트랜잭션이 롤백되며 데이터베이스는 변경 사항을 유지하지 않습니다. 예를 들어, 은행 송금이 한 계정에서 공제되지만 다른 계정으로 인상되지 않은 경우 전체 작업이 취소됩니다. BeginTransaction; updateAccountssetBalance = Balance-100WH

sqllimit 절 : 쿼리 결과의 행 수를 제어하십시오. SQL의 한계 절은 쿼리에서 반환 된 행 수를 제한하는 데 사용됩니다. 이것은 대규모 데이터 세트, 페이지 진화 디스플레이 및 테스트 데이터를 처리 할 때 매우 유용하며 쿼리 효율성을 효과적으로 향상시킬 수 있습니다. 구문의 기본 구문 : SelectColumn1, Collect2, ... Fromtable_namelimitnumber_of_rows; 번호_of_rows : 반환 된 행 수를 지정하십시오. 오프셋이있는 구문 : SelectColumn1, Column2, ... Fromtable_namelimitOffset, number_of_rows; 오프셋 : skip

MySQL 데이터베이스 성능 최적화 안내서 리소스 집약적 응용 프로그램에서 MySQL 데이터베이스는 중요한 역할을 수행하며 대규모 트랜잭션 관리를 담당합니다. 그러나 응용 프로그램 규모가 확장됨에 따라 데이터베이스 성능 병목 현상은 종종 제약이됩니다. 이 기사는 일련의 효과적인 MySQL 성능 최적화 전략을 탐색하여 응용 프로그램이 고 부하에서 효율적이고 반응이 유지되도록합니다. 실제 사례를 결합하여 인덱싱, 쿼리 최적화, 데이터베이스 설계 및 캐싱과 같은 심층적 인 주요 기술을 설명합니다. 1. 데이터베이스 아키텍처 설계 및 최적화 된 데이터베이스 아키텍처는 MySQL 성능 최적화의 초석입니다. 몇 가지 핵심 원칙은 다음과 같습니다. 올바른 데이터 유형을 선택하고 요구 사항을 충족하는 가장 작은 데이터 유형을 선택하면 저장 공간을 절약 할 수있을뿐만 아니라 데이터 처리 속도를 향상시킬 수 있습니다.

해시 값으로 저장되기 때문에 MongoDB 비밀번호를 Navicat을 통해 직접 보는 것은 불가능합니다. 분실 된 비밀번호 검색 방법 : 1. 비밀번호 재설정; 2. 구성 파일 확인 (해시 값이 포함될 수 있음); 3. 코드를 점검하십시오 (암호 하드 코드 메일).

Sqlorderby 절의 자세한 설명 : Data Orderby 조항의 효율적인 정렬은 쿼리 결과 세트를 정렬하는 데 사용되는 SQL의 핵심 문입니다. 단일 열 또는 여러 열에서 오름차순 순서 (ASC) 또는 내림차순 순서 (DESC)로 배열되어 데이터 가독성 및 분석 효율성을 크게 향상시킬 수 있습니다. Orderby Syntax SelectColumn1, Collect2, ... Fromtable_nameorderByColumn_name [ASC | desc]; column_name : 열별로 정렬. ASC : 오름차순 주문 정렬 (기본값). DESC : 하강 순서로 정렬하십시오. Orderby 주요 기능 : 다중 열 분류 : 다중 열 정렬을 지원하고 열 순서는 정렬의 우선 순위를 결정합니다. ~부터

데이터베이스에 연결할 때의 일반적인 오류 및 솔루션 : 사용자 이름 또는 비밀번호 (오류 1045) 방화벽 차단 연결 (오류 2003) 연결 시간 초과 (오류 10060) 소켓 연결 (오류 1042) SSL 연결 오류 (오류 10055) 너무 많은 연결 시도가 차단되는 경우 (오류 1049) 데이터베이스에 연결되지 않음 (오류 1049) 데이터베이스에 연결되지 않습니다 (오류 1049).

SQL Insert 문은 데이터베이스 테이블에 새 행을 추가하는 데 사용되며 구문은 다음과 같습니다. TABLE_NAME (column1, column2, ..., columnn) 값 (value1, value2, ..., valuen); 이 명령문은 여러 값 삽입을 지원하고 널 값을 열에 삽입 할 수 있지만 삽입 된 값이 고유성 제약을 위반하지 않도록 열의 데이터 유형과 호환되도록해야합니다.

MySQL은 복잡한 논리를 캡슐화하고 코드 재사용 성과 보안을 향상시키는 사전 컴파일 된 SQL 코드 블록 인 저장 프로 시저를 제공합니다. 핵심 기능에는 루프, 조건부, 커서 및 거래 제어가 포함됩니다. 저장된 절차를 통해 사용자는 내부 구현에주의를 기울이지 않고 간단히 입력하고 출력하여 데이터베이스 작업을 완료 할 수 있습니다. 그러나 구문 오류, 권한 문제 및 논리 오류와 같은 일반적인 문제에주의를 기울이고 성능 최적화 및 모범 사례 원칙을 따를 필요가 있습니다.
