소식
모델
API
keyboard_arrow_down
서비스 소비
지난 30일 동안 사용자들은 총 7.9T개의 토큰을 소비했으며, 하루 평균 263.5B개의 토큰을 소비했습니다.

리더
URL을 읽거나 검색하면 대규모 모델에 대한 지원이 더 향상됩니다.
벡터 모델
세계적 수준의 다중 모드 다중 언어 임베딩.
재배열자
검색 관련성을 극대화하는 세계적 수준의 신경 검색기입니다.

MCP 서버
대규모 모델이 API를 사용할 수 있도록 MCP 도구 상자에 mcp.jina.ai를 추가하세요.
open_in_new
API 문서
AI 프로그래밍 어시스턴트 IDE 또는 대형 모델에 대한 코드를 자동으로 생성합니다.
open_in_new


회사
keyboard_arrow_down
회사 소개
영업팀에 문의
nights_stay
인턴십 프로그램
이용약관
지나 로고 다운로드
open_in_new
Elastic 로고 다운로드
open_in_new



로그인
login
ModernBERT의 매개변수 효율성
ModernBERT의 코드 모델링
ModernBERT의 긴 컨텍스트 처리
쓴 교훈?
결론
기술 블로그
1월 22, 2025

ModernBERT로부터 우리는 무엇을 배워야 하는가?

더 큰 학습 데이터, 효율적인 파라미터 크기 조정, 그리고 깊지만 얇은 아키텍처를 가진 ModernBERT는 향후 BERT 계열 모델들의 방향을 제시합니다.
Nan Wang
Alex C-G
Nan Wang, Alex C-G • 10 독서의 분

2018년, Google이 BERT를 발표했을 때 이는 현재의 LLM 물결이 오기 훨씬 전부터 NLP 분야의 게임 체인저였습니다. 지금도 많은 Small Language Model들이 BERT를 기반으로 구축되어 있습니다. 2024년 12월, ModernBERT는 최근 LLM 개발에서 배운 것들을 이러한 작은 모델들에 적용했습니다. 주요 변화는? 더 나은 매개변수 효율성, 코드 이해 및 긴 문맥 처리입니다.

이 포스트에서는 우리가 잘 알고 있는 두 모델과 ModernBERT를 비교해보겠습니다: jina-XLM-RoBERTa(jina-embeddings-v3의 다국어 백본)와 RoBERTa-large입니다. 각 모델을 살펴보겠습니다:

  • ModernBERT(2024년 12월)는 최근 출시된 SLM으로, Answer.AI, LightOn, HuggingFace가 공동으로 개발했습니다. 8,192 토큰 문맥 윈도우를 위한 RoPE와 GeGLU 레이어와 같은 현대적 최적화를 활용하여 효율성을 유지하면서 성능을 향상시켰습니다.
  • jina-XLM-RoBERTa(2024년 9월)는 Meta의 XLM-RoBERTa를 기반으로 한 다국어 텍스트 임베딩 모델입니다. 원래 XLM-RoBERTa가 XLM 대규모 다국어 데이터셋을 사용하여 RoBERTa를 개선한 반면, jina-XLM-RoBERTa는 확장된 문맥 학습, RoPE 구현, FlashAttention-2 지원으로 한 걸음 더 나아갔습니다. 이 모델은 jina-embeddings-v3의 백본으로 사용됩니다.
  • RoBERTa-large(2019년 7월)는 Meta가 개발한 BERT의 개선 버전으로 3억 5500만 개의 매개변수를 가지고 있습니다. 확장된 학습, 더 큰 데이터셋, 동적 마스킹과 같은 혁신을 통해 GLUE, SQuAD, RACE를 포함한 주요 벤치마크에서 인상적인 결과를 달성했습니다. 이는 텍스트 분류부터 질문 답변까지 다양한 NLP 작업에 적합합니다.

이 모델들을 세 가지 핵심 측면에서 비교함으로써, 모델 개발자들을 위한 ModernBERT의 효과적인 설계 선택을 강조하고 향후 BERT 유사 모델을 위한 핵심 개발 통찰을 식별하고자 합니다. 또한 jina-embeddings-v3 개발에서 얻은 교훈을 공유하고 jina-embeddings-v4와 jina-reranker-v3를 위한 계획된 개선 사항을 논의하겠습니다.

tagModernBERT의 매개변수 효율성

먼저 ModernBERT의 매개변수 효율성 접근 방식을 살펴보겠습니다 - 이는 최근 LLM 개발에서 얻은 여러 핵심 통찰을 가져왔습니다. ModernBERT는 깊지만 얇은 아키텍처, 제어된 어휘 크기, 작은 모델에서 시작하는 점진적 모델 업스케일링이라는 세 가지 핵심 전략을 활용합니다.

tagDeep-And-Thin 아키텍처

ModernBERT-large는 28개 레이어로 더 깊어진 반면, jina-XLM-RoBERTa와 RoBERTa-large는 24개로 운영됩니다. 흥미로운 점은 추가 레이어에도 불구하고 RoBERTa-large와 매개변수 수가 비슷하다는 것입니다. jina-XLM-RoBERTa는 89개 언어를 처리해야 하기 때문에 더 많은 매개변수가 필요한 반면, 다른 두 모델은 영어에만 집중합니다.

작은 LLM에서는 너비(hidden unit 수)보다 깊이(레이어 수)가 더 중요합니다. deep-and-thin 모델 구조는 추상적 개념을 포착하는데 뛰어나 우수한 최종 성능을 보입니다.

트랜스포머의 매개변수 대부분은 어텐션과 완전연결 레이어에서 옵니다. ModernBERT는 "얇게" 가면서도 경쟁력을 유지합니다 - RoBERTa-large가 24개 레이어에 걸쳐 4,096 hidden unit을 사용하는 것에 비해 28개 레이어에 걸쳐 2,624 hidden unit을 사용합니다. 이 "더 깊지만" 얇은 구성으로 모델을 비대화하지 않고도 성능 목표를 달성할 수 있습니다.

ModernBERT-large jina-XLM-RoBERTa RoBERTa-large
Parameters 400M 550M 355M
Hidden states 1,024 1,024 1,024
Intermediate dims 2,624 4,096 4,096
Attention heads 16 16 16
Layers 28 24 24
Vocabulary size 50,368 250,002 50,265

이 접근 방식은 Meta의 MobileLLM 연구와 일치하는데, 이 연구는 작은 모델의 경우 복잡한 패턴을 포착하고 성능을 향상시키는 데 있어 너비보다 깊이가 더 중요하다는 것을 발견했습니다. 본질적으로, 병렬 처리를 위해 더 넓은 레이어를 갖는 것보다 더 많은 트랜스포머 레이어를 통해 정보를 처리하는 능력이 더 가치가 있다는 것입니다.

이 deep-and-thin 아키텍처의 성능을 데이터로 살펴보겠습니다.

전통적인 shallow-fat 아키텍처를 사용하는 비슷한 모델들과 비교했을 때, ModernBERT는 비슷한 매개변수 수를 유지하면서도 검색과 STS 같은 주요 작업에서 더 나은 결과를 보여줍니다.
ModernBERT-large jina-XLM-RoBERTa RoBERTa-large
STS12 72.6 72.7 68.9
STS13 84.9 83.9 81.0
STS14 77.5 77.7 74.8
STS15 84.8 85.8 84.1
STS16 79.4 79.6 78.6
STS17 87.5 87.2 87.2
TRECCOVID 61.1 59.6 49.3
FiQA 44.4 40.0 40.7
NFCorpus 32.6 30.6 27.9
SciFact 68.6 65.5 63.1
Average 69.3 68.2 65.6

jina-XLM-RoBERTa를 예로 들어보면 - RoBERTa-large의 shallow-fat 아키텍처를 기반으로 하되 어휘를 50K에서 250K 토큰으로 늘리고 더 많은 데이터로 학습했습니다. 그럼에도 ModernBERT가 약간 앞서는데, 이는 아키텍처의 변화가 효율성 측면에서 실질적인 차이를 만들어내고 있음을 시사합니다.

tag어휘 크기의 중요성

먼저, 트랜스포머에서 어휘 매개변수가 어떻게 계산되는지 살펴보겠습니다. 모든 트랜스포머에서 어휘 매개변수 = 고유 토큰 수 × hidden size입니다. jina-XLM-RoBERTa를 예로 들면: 250K 토큰과 1,024 차원으로, 실제 언어 작업을 처리하기도 전에 어휘 인코딩만을 위해 256M 매개변수가 필요합니다!

트랜스포머에서 첫 번째 레이어는 토큰을 가중치 행렬, 즉 어휘 가중치를 사용하여 은닉 상태로 매핑합니다. 모든 UTF-8 코드 포인트(1,112,064)를 1,024 차원의 은닉층과 함께 사용한다고 가정하면, 토큰 변환만을 위해 거대한 1,112,064 × 1,024 = 1 B 개의 파라미터가 필요합니다. 대형 LLM(100B+ 파라미터)은 이러한 오버헤드를 처리할 수 있지만, 작은 모델에는 심각한 제약이 됩니다. 이것이 바로 우리가 BPE와 같은 토크나이저를 사용하여 일반적인 UTF-8 코드 포인트를 단일 토큰으로 효율적으로 병합하는 이유입니다.

하지만 여기서 중요한 점은 다음과 같습니다: 어휘 가중치는 어텐션 메커니즘에 기여하지 않으며, 단순히 조회 테이블일 뿐입니다. 고정된 파라미터 예산으로 작동하는 SLM의 경우, 더 큰 어휘는 실제 언어 처리를 수행하는 어텐션 레이어에 사용할 수 있는 파라미터가 줄어든다는 것을 의미합니다. 이는 영어 전용 ModernBERT-large가 더 작음에도 불구하고 다국어 jina-XLM-RoBERTa보다 성능이 더 우수한 이유를 설명합니다 - jina-XLM-RoBERTa는 다중 언어를 지원하기 위해 더 많은 파라미터(47%!)를 할당합니다. ModernBERT의 집중된 어휘는 성능을 개선할 뿐만 아니라 추론 속도도 향상시켜 리소스가 제한된 애플리케이션에 특히 효과적입니다.

이제 어휘 가중치를 제외한 핵심 모델 파라미터만 살펴보면, ModernBERT는 실제로 동료들보다 더 많은 연산 능력을 가지고 있습니다: ModernBERT는 jina-XLM-RoBERTa보다 19% 더 많은 파라미터를, RoBERTa-large보다 15% 더 많은 파라미터를 실제 언어 모델링에 할당합니다!

모델 사양 ModernBERT-large jina-XLM-RoBERTa RoBERTa-large
언어 지원 영어만 89개 언어 영어만
어휘 크기 50.4K 250K 50.3K
총 파라미터 400M 550M 355M
어휘 파라미터 51M 256M 51M
어휘 파라미터 비율 13% 47% 14%
핵심 모델 파라미터 349M 294M 304M

tag"가중치 타일링"을 통한 모델 확장

jina-BERT-v2 백본을 구축하면서, 처음부터 SLM을 훈련하는 것이 리소스 집약적이고 복잡하다는 것을 발견했습니다. ModernBERT는 가중치 타일링이라는 스마트한 초기화 접근 방식으로 이 문제를 해결합니다 - 본질적으로 더 작은 base 버전의 가중치로부터 ModernBERT-large를 부트스트랩합니다.

이 기술은 완전히 새로운 것은 아닙니다 - DeepMind의 Gopher 작업을 기반으로 하며 Microsoft의 Phi-2 모델에서도 나타납니다. 하지만 여기서의 적용은 SLM 훈련 병목 현상을 해결하는 데 특히 효과적입니다.

ModernBERT는 Gopher 팀의 깊이 초기화 전략을 사용하여 22개에서 28개 레이어로 확장됩니다. 추가 레이어(23-28)의 경우, ModernBERT-base의 원래 22개 레이어의 가중치를 사용하여 각 레이어를 초기화합니다. 각 레이어의 가중치 행렬에 대해서는 Phi-2의 중앙 타일링 접근 방식을 사용합니다. 작동 방식은 다음과 같습니다: ModernBERT-base 가중치를 가져와서 ModernBERT-large의 행렬 중앙에 배치합니다. 여전히 비어 있는 가장자리는 어떻게 할까요? 원래 가중치를 순환적으로 감싸서 채웁니다.

이 초기화 전략은 ModernBERT-large에 상당한 이점을 제공합니다 - 처음부터 시작하는 대신 더 작은 버전에서 사전 학습된 패턴을 활용합니다. 이는 이 크기 범위의 언어 모델을 확장하는 데 특히 효과적임이 입증되었습니다.

우리는 웜 스타트된 모델이 (추가된 파라미터로 인한) 높은 초기 손실에서 빠르게 회복하여 기본 모델과 매우 가까운 손실에 도달한다는 것을 발견했습니다. 417M 파라미터를 3배 이상 확장하면서도 수렴할 때까지 처음부터 훈련된 동등한 신규 모델보다 더 나은 성능을 유지할 수 있었습니다. 이는 이득이 훈련 초기에만 국한되지 않았음을 의미합니다. 그러나 더 큰 크기에서는, 특히 너비 확장에서 수렴 시 달성되는 상대적 이득이 감소합니다.

순환적 가중치 래핑은 단순한 편의성이 아닙니다 - 어텐션 행렬이 자연스럽게 주기적 패턴을 보이는 방식과 잘 부합합니다. Gopher의 연구는 이 접근 방식이 SLM(9B 미만 파라미터)에서 특히 빛을 발하지만, 더 큰 모델 영역으로 이동할수록 이점이 점차 감소하기 시작한다는 것을 보여줍니다.

tagModernBERT의 코드 모델링

ModernBERT는 코드에 최적화된 토크나이저와 훈련 데이터를 통해 코드 이해에 특화된 접근 방식을 제공합니다. 이러한 코드 처리를 위한 미세 조정은 이해와 검색 작업 모두에서 효과를 발휘합니다.

우리는 jina-embeddings-v2-code 코퍼스를 사용하여 세 가지 모델을 백본으로 비교하는 벤치마크를 실행했습니다: ModernBERT, jina-XLM-RoBERTa, 그리고 RoBERTa-large. 테스트는 CodeSearchNet - 텍스트 설명을 코드 스니펫과 매칭하는 것이었습니다. ModernBERT는 전반적으로 두 대안을 모두 능가했습니다.

이 격차는 이해가 됩니다 - jina-XLM-RoBERTa와 RoBERTa-large 모두 훈련 중에 프로그래밍 언어를 접하지 않았습니다. 반면, ModernBERT-large는 상당한 양의 코드를 포함한 2조 개의 토큰으로 훈련되었습니다. 이러한 프로그래밍 구문과 패턴에 대한 노출은 코드 관련 작업에서 명확한 이점을 제공합니다. jina-XLM-RoBERTa가 RoBERTa-large보다 약간 앞서는 것은 더 큰 다국어 훈련 데이터 때문일 것입니다 - 같은 아키텍처에 더 많은 노출이 있었기 때문입니다. 그럼에도 불구하고, 둘 다 ModernBERT-large에 크게 뒤처집니다.
작업 ModernBERT-large jina-XLM-RoBERTa RoBERTa-large
AdvRetrieval 0.342 0.363 0.331
QueryRetrieval.python 0.521 0.530 0.525
QueryRetrieval java 0.679 0.633 0.644
QueryRetrieval.javascript 0.755 0.768 0.732
QueryRetrieval.php 0.815 0.781 0.755
QueryRetrieval.ruby 0.729 0.744 0.722
QueryRetrieval.go 0.833 0.809 0.796
Retrieval.go 0.778 0.750 0.759
Retrieval.java 0.840 0.792 0.796
Retrieval.javascript 0.817 0.792 0.757
Retrieval.php 0.852 0.805 0.796
Retrieval.python 0.849 0.816 0.787
Retrieval.ruby 0.849 0.796 0.803
Avg. 0.743 0.721 0.708

tag토크나이저의 장점

ModernBERT가 코드를 잘 다루는 이유를 살펴보겠습니다. ModernBERT는 표준 BERT/RoBERTa 토크나이저 대신 코드 학습에 특화된 OLMo 토크나이저를 사용합니다.

토크나이저는 UTF-8 텍스트를 벡터로 매핑되는 토큰으로 분할합니다. 이는 모델이 실제로 처리하는 대상입니다. 학습 과정에서 자주 발생하는 문자열을 단일 토큰으로 결합하는 방법을 학습합니다. 차이점은 무엇일까요? 표준 토크나이저는 init를 in + it으로 분할하여 프로그래밍 컨텍스트를 놓칠 수 있습니다. 하지만 ModernBERT의 코드 인식 토크나이저는 이를 분할하지 않고 그대로 처리합니다.

공백 처리에서 흥미로운 점이 있습니다. ModernBERT는 Python의 선행 공백을 단일 토큰으로 유지하고 4개와 8개의 공백을 구분합니다 - 이는 코드 구조에 매우 중요합니다. 반면에 jina-XLM-RoBERTa는 연속된 모든 공백을 단일 _로 축소하고, RoBERTa-large는 각 공백을 개별 토큰으로 처리합니다. 이는 ModernBERT의 인코더가 코드를 처리할 때 더 깔끔하고 의미 있는 입력을 받는 반면, 다른 모델들은 분절되고 덜 일관된 토큰으로 작업한다는 것을 의미합니다.

ModernBERT는 Python의 선행 공백을 단일 토큰으로 유지하고 4개와 8개의 공백을 구분합니다 - 이는 코드 구조에 매우 중요합니다. 반면 다른 모델들은 분절되고 덜 일관된 토큰으로 작업합니다.

tagModernBERT의 긴 컨텍스트 처리

ModernBERT는 방대한 학습 코퍼스(8,192 토큰 샘플로 구성된 300B 토큰)와 전역 및 지역 어텐션을 결합한 고급 기술 덕분에 긴 텍스트 처리에서 큰 진전을 이루었습니다.

긴 문서 처리 능력을 평가하기 위해 13개 언어를 포괄하는 종합적인 긴 텍스트 벤치마크인 MLDR 데이터셋을 사용했습니다. ModernBERT가 현재 영어만 지원하므로, ModernBERT와 jina-XLM-RoBERTa를 벤치마크하기 위해 MLDR의 영어 부분집합에 초점을 맞췄습니다. 두 모델 모두 8K 토큰 입력을 처리할 수 있지만, RoBERTa-large는 512 토큰 제한으로 인해 긴 텍스트 분석에 부적합하여 이 벤치마크에서 제외되었습니다.

ModernBERT-large jina-XLM-RoBERTa
MLDR-en 0.351 0.290

ModernBERT의 우수한 성능은 단순히 광범위한 긴 텍스트 학습 때문만이 아닙니다. 전역 및 지역 어텐션 메커니즘의 혁신적인 조합 덕분입니다. jina-XLM-RoBERTa가 모든 레이어에 계산 비용이 많이 드는 전역 어텐션을 적용하는 것과 달리, ModernBERT는 더 효율적인 접근 방식을 취합니다. 전역 어텐션(3번째 레이어마다 사용되며 theta는 160,000)과 지역 어텐션(128 토큰 슬라이딩 윈도우 사용, theta는 100,000)을 번갈아 사용합니다. 이러한 하이브리드 전략은 높은 성능을 유지하면서 학습 시간을 크게 단축합니다.

ModernBERT에서는 3번째 레이어마다 RoPE theta 160,000의 전역 어텐션을 사용하고, 나머지 레이어는 RoPE theta 10,000의 128 토큰 지역 슬라이딩 윈도우 어텐션을 사용합니다. —— ModernBERT

tag쓴 교훈?

스케일링 법칙과 쓴 교훈은 주요 성능 향상이 주로 파라미터 수와 학습 데이터 증가에서 온다고 제시합니다. 이 원칙은 코퍼스를 확장하고 작업별 적응을 위해 LoRA를 사용하는 우리의 접근 방식을 이끌었습니다.

하지만 ModernBERT의 성공은 우리가 아키텍처 최적화의 힘을 과소평가했음을 보여줍니다. 이는 SLM이 반드시 파라미터를 늘리지 않고도 더 나은 데이터-모델 효율성을 통해 뛰어난 결과를 달성할 수 있음을 보여줍니다. 최근 Stella Embeddings 기술 보고서는 이러한 발견을 강화하며, 현재의 임베딩 모델 학습 방법이 코퍼스나 모델 크기를 늘리지 않고도 개선될 수 있음을 보여줍니다.

Graph showing Scaling Law of Embedding Models with 'Parameter Size' on the x-axis and 'MTEB Performance' on the y-axis, featu
임베딩 모델의 스케일링 법칙. 영어 작업에 대한 평균 MTEB 성능이 모델 파라미터 수에 대해 플롯되었습니다. 각 점은 임베딩 모델을 나타냅니다. 모든 모델을 나타내는 추세선이 강조되어 있고, 다국어 모델은 시안색으로 강조되어 있습니다. jina-embeddings-v3가 유사한 크기의 모델들보다 우수한 성능을 보여주며, 이전 버전인 jina-embeddings-v2보다 초선형적 개선을 보여줍니다. 이 그래프는 MTEB 리더보드에서 상위 100개 임베딩 모델을 선택하여 작성되었으며, 크기 정보가 없는 모델(일반적으로 비공개 또는 독점 모델)은 제외되었습니다. 명백한 트롤링으로 확인된 제출도 필터링되었습니다.

앞으로 데이터 활용에 대한 더 깊은 통찰력을 얻고 ModernBERT의 기술을 구현함에 따라 계산 비용과 모델 크기가 감소할 것으로 예상됩니다. 단기적으로는 ModernBERT 논문에 설명된 간단한 개선 사항을 구현할 수 있습니다 - 특히 더 많은 코드 관련 데이터를 통합하고 코드 친화적인 토크나이저를 도입하는 것입니다. deep-and-thin 아키텍처로 전환하거나 작은 모델에서 큰 모델을 부트스트랩하는 것과 같은 더 복잡한 변경은 백본 모델을 처음부터 구축해야 하는 중기적 과제가 될 것입니다.

ModernBERT의 효율성은 주목할 만하지만, 텍스트만 처리할 수 있다는 한계는 미래의 과제를 보여줍니다. 멀티모달 임베딩 모델이 인기를 얻으면서, 우리의 다음 과제는 멀티모달 애플리케이션을 위한 입력을 처리할 수 있는 더 스마트하고 빠르며 유능한 검색 기반 모델을 개발하는 것입니다. 이러한 애플리케이션은 더 긴 컨텍스트 윈도우를 요구하며 - 이는 아직 해결해야 할 효율성 과제입니다.

tag결론

이 글에서 우리는 ModernBERT가 deep-and-thin 아키텍처, 최적화된 토크나이저, 웨이트 타일링을 통한 효율적인 스케일링이라는 세 가지 핵심 혁신을 통해 BERT 계열 모델을 어떻게 발전시켰는지 살펴보았습니다. 이러한 개선으로 ModernBERT는 상대적으로 작은 크기로도 다양한 작업에서 RoBERTa-large와 jina-XLM-RoBERTa 모두를 능가하는 뛰어난 성능을 제공할 수 있습니다. ModernBERT는 아키텍처 개선이 파라미터 크기보다 더 중요할 수 있음을 보여주며, 더 효율적인 모델의 가능성을 열어줍니다. 웨이트 타일링의 성공적인 활용은 학습 비용을 줄이면서도 성능을 유지하거나 향상시킬 수 있는 방법을 보여줍니다. 또한 작은 어휘와 목표지향적 최적화는 자원이 제한된 환경에서 특화된 SLM의 기회가 증가하고 있음을 시사합니다.

범주:
기술 블로그
rss_feed

더 많은 뉴스
9월 09, 2025 • 11 독서의 분
Llama.cpp 및 GGUF의 멀티모달 向量模型
Andrei Ungureanu
Alex C-G
Cartoon llama in the center of a white background, emitting laser-like beams from its eyes. The illustration creates a playfu
8월 29, 2025 • 9 독서의 분
Jina Remote MCP 서버를 이용한 에이전트 워크플로우
Alex C-G
Digital map of Europe formed with binary code in shades of blue, grey, and white, with red, yellow, and blue highlights in so
8월 13, 2025 • 15 독서의 분
디코더 전용 벡터 모델용 GGUF 최적화
Han Xiao
Text "DGUF for Embedding Models" written in yellow on a dark background, conveying a sleek, minimalistic, digital design.
사무실
location_on
캘리포니아주 서니베일
710 Lakeway Dr, Ste 200, Sunnyvale, California 94085, United States
location_on
독일 베를린(본사)
Prinzessinnenstraße 19-20, 10969 베를린, 독일
검색 기반
리더
벡터 모델
재배열자
Jina API 키 받기
비율 제한
API 상태
회사
회사 소개
영업팀에 문의
소식
인턴십 프로그램
지나 로고 다운로드
open_in_new
Elastic 로고 다운로드
open_in_new
자귀
안전
이용약관
은둔
쿠키 관리
email
탄력적인 지나 AI © 2020-2026.