Open-weight model
OPSD-SDPO-v22-Qwen2.5-7B-checkpoints
by Zhan Cheng zcheng256/OPSD-SDPO-v22-Qwen2.5-7B-checkpoints
The card, configuration and files below were read at revision 028786a1b518 on 2026-10-13. The repository is now at revision 88173d9f241f, which SAVRN has not read yet.
Model Card
By Zhan Cheng, published under apache-2.0, revision 028786a1b518.
Read Zhan Cheng's full model card
Current Qwen2.5-7B seed42 four-arm checkpoint backups
Portable LoRA and exact persisted native student/teacher/optimizer/RNG/scheduler states at steps 0/25/50/75/100. Each checkpoint has a file manifest and an independently checked public-Hub integrity receipt. Backup integrity does not imply efficacy or tested restoration. Step0 has actor state only; the trainer does not save a dataloader snapshot at step0. Fresh-process vLLM sampler RNG recovery is not claimed. Source base revision: a09a35458c702b33eeacc393d103063234e8bc28. Training source and safe settings are pinned by SHA. No training questions, answers, rollout inputs, logs or credentials are published.
Obsolete W2/W3 development folders were removed from the current tree at the human's request. Previous Git revisions may still reference them; deletion is not a claim of physical storage reclamation.
Identity and Version
- Repository
- zcheng256/OPSD-SDPO-v22-Qwen2.5-7B-checkpoints
- Publisher
- Zhan Cheng
- Task
- Not stated by the source
- Modality
- Other
- Library
- peft
- Parameters
- Not stated by the source
- Languages
- Not stated by the source
- Revision
- 88173d9f241fc828bbe3c44df0ad1175588d5871
- First published
- 2026-10-11
- Last updated
- 2026-10-22
Files and Weights
121 files, 99.2 GB in total. The weights are 54 files totalling 99.2 GB in pt, safetensors.
Every file
| File | Type | Size | SHA-256 |
|---|---|---|---|
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/lora_adapter/adapter_model.safetensors | Weights | 646.0 MB | adbf25320439 |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/controlled_teacher/model_world_size_4_rank_0.pt | Weights | 4.0 GB | 4c1a1a844dc0 |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/controlled_teacher/model_world_size_4_rank_1.pt | Weights | 4.0 GB | ee0ca8602cd5 |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/controlled_teacher/model_world_size_4_rank_2.pt | Weights | 4.0 GB | 2cff2cc617aa |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/controlled_teacher/model_world_size_4_rank_3.pt | Weights | 4.0 GB | e68d8536b2cb |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/extra_state_world_size_4_rank_0.pt | Weights | 15.1 KB | 40d6a8947eb9 |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/extra_state_world_size_4_rank_1.pt | Weights | 15.1 KB | 10e02802c410 |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/extra_state_world_size_4_rank_2.pt | Weights | 15.1 KB | 912e1260f702 |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/extra_state_world_size_4_rank_3.pt | Weights | 15.1 KB | 67624b625592 |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/lora_adapter/adapter_model.safetensors | Weights | 646.0 MB | adbf25320439 |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/model_world_size_4_rank_0.pt | Weights | 4.0 GB | 4c1a1a844dc0 |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/model_world_size_4_rank_1.pt | Weights | 4.0 GB | ee0ca8602cd5 |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/model_world_size_4_rank_2.pt | Weights | 4.0 GB | 2cff2cc617aa |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/model_world_size_4_rank_3.pt | Weights | 4.0 GB | e68d8536b2cb |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/optim_world_size_4_rank_0.pt | Weights | 92.5 KB | 265317de8cb9 |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/optim_world_size_4_rank_1.pt | Weights | 92.5 KB | 6ca9fbc97775 |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/optim_world_size_4_rank_2.pt | Weights | 92.5 KB | 36e163cfc132 |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/optim_world_size_4_rank_3.pt | Weights | 92.5 KB | 184e9461c3ac |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/lora_adapter/adapter_model.safetensors | Weights | 646.0 MB | adbf25320439 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/controlled_teacher/model_world_size_4_rank_0.pt | Weights | 4.0 GB | 278b7439b42a |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/controlled_teacher/model_world_size_4_rank_1.pt | Weights | 4.0 GB | 89a150feaf26 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/controlled_teacher/model_world_size_4_rank_2.pt | Weights | 4.0 GB | 22aa3833e46d |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/controlled_teacher/model_world_size_4_rank_3.pt | Weights | 4.0 GB | 46b268338c81 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/extra_state_world_size_4_rank_0.pt | Weights | 15.1 KB | 83f6531fc2b8 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/extra_state_world_size_4_rank_1.pt | Weights | 15.1 KB | 1cf7c9855dc2 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/extra_state_world_size_4_rank_2.pt | Weights | 15.1 KB | d6145474113f |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/extra_state_world_size_4_rank_3.pt | Weights | 15.1 KB | eb0c8f35c8b1 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/lora_adapter/adapter_model.safetensors | Weights | 646.0 MB | adbf25320439 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/model_world_size_4_rank_0.pt | Weights | 4.0 GB | 278b7439b42a |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/model_world_size_4_rank_1.pt | Weights | 4.0 GB | 89a150feaf26 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/model_world_size_4_rank_2.pt | Weights | 4.0 GB | 22aa3833e46d |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/model_world_size_4_rank_3.pt | Weights | 4.0 GB | 46b268338c81 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/optim_world_size_4_rank_0.pt | Weights | 92.5 KB | 8d2ebf717064 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/optim_world_size_4_rank_1.pt | Weights | 92.5 KB | 98922a55ae02 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/optim_world_size_4_rank_2.pt | Weights | 92.5 KB | 84b139598049 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/optim_world_size_4_rank_3.pt | Weights | 92.5 KB | b47c483d3fd7 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/lora_adapter/adapter_model.safetensors | Weights | 646.0 MB | adbf25320439 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/controlled_teacher/model_world_size_4_rank_0.pt | Weights | 4.0 GB | ecb103a81180 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/controlled_teacher/model_world_size_4_rank_1.pt | Weights | 4.0 GB | 33ba64718d89 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/controlled_teacher/model_world_size_4_rank_2.pt | Weights | 4.0 GB | 040d39faaa27 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/controlled_teacher/model_world_size_4_rank_3.pt | Weights | 4.0 GB | f90c65b681f3 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/extra_state_world_size_4_rank_0.pt | Weights | 15.1 KB | 3b73e72f7faf |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/extra_state_world_size_4_rank_1.pt | Weights | 15.1 KB | 60543b246c55 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/extra_state_world_size_4_rank_2.pt | Weights | 15.1 KB | 45352f762b98 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/extra_state_world_size_4_rank_3.pt | Weights | 15.1 KB | 5cc7ac0cd221 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/lora_adapter/adapter_model.safetensors | Weights | 646.0 MB | adbf25320439 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/model_world_size_4_rank_0.pt | Weights | 4.0 GB | ecb103a81180 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/model_world_size_4_rank_1.pt | Weights | 4.0 GB | 33ba64718d89 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/model_world_size_4_rank_2.pt | Weights | 4.0 GB | 040d39faaa27 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/model_world_size_4_rank_3.pt | Weights | 4.0 GB | f90c65b681f3 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/optim_world_size_4_rank_0.pt | Weights | 92.5 KB | 72c89b3ce2fa |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/optim_world_size_4_rank_1.pt | Weights | 92.5 KB | 65128b260fae |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/optim_world_size_4_rank_2.pt | Weights | 92.5 KB | 0dfb99dcbdd0 |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/optim_world_size_4_rank_3.pt | Weights | 92.5 KB | daf6dc6b1186 |
| CHECKPOINT_MANIFEST.json | Configuration | 965 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/BACKUP_MANIFEST.json | Configuration | 23.7 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/BACKUP_VERIFIED.json | Configuration | 432 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/lora_adapter/adapter_config.json | Configuration | 1.3 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/controlled_teacher/clock-rank0.json | Configuration | 449 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/controlled_teacher/clock-rank1.json | Configuration | 449 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/controlled_teacher/clock-rank2.json | Configuration | 449 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/controlled_teacher/clock-rank3.json | Configuration | 449 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/controlled_teacher/fsdp_config.json | Configuration | 46 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/controlled_teacher/huggingface/config.json | Configuration | 1.3 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/controlled_teacher/huggingface/generation_config.json | Configuration | 243 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/fsdp_config.json | Configuration | 46 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/huggingface/added_tokens.json | Configuration | 605 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/huggingface/config.json | Configuration | 1.3 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/huggingface/generation_config.json | Configuration | 243 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/huggingface/special_tokens_map.json | Configuration | 613 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/lora_adapter/adapter_config.json | Configuration | 1.3 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/BACKUP_MANIFEST.json | Configuration | 23.8 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/BACKUP_VERIFIED.json | Configuration | 434 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/lora_adapter/adapter_config.json | Configuration | 1.3 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/controlled_teacher/clock-rank0.json | Configuration | 449 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/controlled_teacher/clock-rank1.json | Configuration | 449 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/controlled_teacher/clock-rank2.json | Configuration | 449 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/controlled_teacher/clock-rank3.json | Configuration | 449 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/controlled_teacher/fsdp_config.json | Configuration | 46 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/controlled_teacher/huggingface/config.json | Configuration | 1.3 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/controlled_teacher/huggingface/generation_config.json | Configuration | 243 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/fsdp_config.json | Configuration | 46 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/huggingface/added_tokens.json | Configuration | 605 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/huggingface/config.json | Configuration | 1.3 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/huggingface/generation_config.json | Configuration | 243 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/huggingface/special_tokens_map.json | Configuration | 613 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/lora_adapter/adapter_config.json | Configuration | 1.3 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/BACKUP_MANIFEST.json | Configuration | 23.7 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/BACKUP_VERIFIED.json | Configuration | 432 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/lora_adapter/adapter_config.json | Configuration | 1.3 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/controlled_teacher/clock-rank0.json | Configuration | 449 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/controlled_teacher/clock-rank1.json | Configuration | 449 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/controlled_teacher/clock-rank2.json | Configuration | 449 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/controlled_teacher/clock-rank3.json | Configuration | 449 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/controlled_teacher/fsdp_config.json | Configuration | 46 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/controlled_teacher/huggingface/config.json | Configuration | 1.3 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/controlled_teacher/huggingface/generation_config.json | Configuration | 243 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/fsdp_config.json | Configuration | 46 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/huggingface/added_tokens.json | Configuration | 605 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/huggingface/config.json | Configuration | 1.3 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/huggingface/generation_config.json | Configuration | 243 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/huggingface/special_tokens_map.json | Configuration | 613 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/lora_adapter/adapter_config.json | Configuration | 1.3 KB | — |
| LICENSE | Documentation | 11.3 KB | — |
| README.md | Documentation | 956 B | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/huggingface/chat_template.jinja | Other | 2.5 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/huggingface/chat_template.jinja | Other | 2.5 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/huggingface/chat_template.jinja | Other | 2.5 KB | — |
| .gitattributes | Repository | 2.5 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/huggingface/merges.txt | Tokenizer | 1.7 MB | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/huggingface/tokenizer.json | Tokenizer | 11.4 MB | 9c5ae00e602b |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/huggingface/tokenizer_config.json | Tokenizer | 4.7 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/cross-NoRef/step_0/native_resume/actor/huggingface/vocab.json | Tokenizer | 2.8 MB | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/huggingface/merges.txt | Tokenizer | 1.7 MB | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/huggingface/tokenizer.json | Tokenizer | 11.4 MB | 9c5ae00e602b |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/huggingface/tokenizer_config.json | Tokenizer | 4.7 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-NoRef/step_0/native_resume/actor/huggingface/vocab.json | Tokenizer | 2.8 MB | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/huggingface/merges.txt | Tokenizer | 1.7 MB | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/huggingface/tokenizer.json | Tokenizer | 11.4 MB | 9c5ae00e602b |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/huggingface/tokenizer_config.json | Tokenizer | 4.7 KB | — |
| runs/Qwen2.5-7B-Instruct/seed42/matched-Ref/step_0/native_resume/actor/huggingface/vocab.json | Tokenizer | 2.8 MB | — |
License and Download
- License
- apache-2.0
- Access
- Open weights, no gate
Released by Zhan Cheng through its official repository on Hugging Face. Read the license.
Built From
- Adapter of Qwen/Qwen2.5-7B-Instruct
- Derived from Qwen/Qwen2.5-7B-Instruct
Questions About OPSD-SDPO-v22-Qwen2.5-7B-checkpoints
Can I use OPSD-SDPO-v22-Qwen2.5-7B-checkpoints commercially?
Yes. OPSD-SDPO-v22-Qwen2.5-7B-checkpoints is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.