@r1z4x/tezgah 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +738 -0
- package/LICENSE +21 -0
- package/MANIFEST +753 -0
- package/README.de.md +169 -0
- package/README.es.md +168 -0
- package/README.fr.md +166 -0
- package/README.md +161 -0
- package/README.tr.md +163 -0
- package/agents/tezgah-reviewer.md +70 -0
- package/bin/codegen +337 -0
- package/bin/consult +797 -0
- package/bin/tezgah-adhd +50 -0
- package/bin/tezgah-agents +45 -0
- package/bin/tezgah-capture +66 -0
- package/bin/tezgah-context +96 -0
- package/bin/tezgah-decisions +213 -0
- package/bin/tezgah-design +953 -0
- package/bin/tezgah-docs +1199 -0
- package/bin/tezgah-doctor +497 -0
- package/bin/tezgah-dsh +37 -0
- package/bin/tezgah-dsh.cmd +70 -0
- package/bin/tezgah-gate +75 -0
- package/bin/tezgah-import-ai-research +439 -0
- package/bin/tezgah-index +32 -0
- package/bin/tezgah-lessons +148 -0
- package/bin/tezgah-mcp +322 -0
- package/bin/tezgah-migrate +324 -0
- package/bin/tezgah-pony +50 -0
- package/bin/tezgah-research +772 -0
- package/bin/tezgah-rollback +93 -0
- package/bin/tezgah-route +124 -0
- package/bin/tezgah-setup +5798 -0
- package/bin/tezgah-status +383 -0
- package/bin/tezgah-task +607 -0
- package/bin/tezgah-taste +423 -0
- package/bin/tezgah-triage +485 -0
- package/bin/tezgah.js +36 -0
- package/commands/adhd.md +21 -0
- package/commands/ponytail.md +21 -0
- package/docs/README.md +112 -0
- package/docs/architecture.md +226 -0
- package/docs/citations-baseline.json +59 -0
- package/docs/clarity-baseline.json +116 -0
- package/docs/contract.md +416 -0
- package/docs/environment.md +141 -0
- package/docs/evidence.md +831 -0
- package/docs/feature-audit.md +139 -0
- package/docs/gate.md +407 -0
- package/docs/glossary.md +201 -0
- package/docs/hosts.md +400 -0
- package/docs/index.json +471 -0
- package/docs/judge.md +193 -0
- package/docs/layers.md +189 -0
- package/docs/models.md +160 -0
- package/docs/operations.md +666 -0
- package/docs/research.md +809 -0
- package/docs/results/paired-outcome-2026-10.jsonl +254 -0
- package/docs/results/paired-outcome-2026-10.md +204 -0
- package/docs/skills.md +236 -0
- package/docs/status-line.md +315 -0
- package/docs/testing.md +287 -0
- package/docs/vision.md +117 -0
- package/hooks/hooks.json +33 -0
- package/hooks/projects-auto-init.py +98 -0
- package/hooks/projects-posttooluse.py +149 -0
- package/hooks/projects-pretooluse.py +40 -0
- package/hooks/projects-stop.py +60 -0
- package/hooks/tezgah_agents.py +817 -0
- package/hooks/tezgah_apps.py +266 -0
- package/hooks/tezgah_attest.py +255 -0
- package/hooks/tezgah_clarity.py +171 -0
- package/hooks/tezgah_components.py +140 -0
- package/hooks/tezgah_context.py +2953 -0
- package/hooks/tezgah_embed.py +765 -0
- package/hooks/tezgah_gate.py +2736 -0
- package/hooks/tezgah_guard.py +177 -0
- package/hooks/tezgah_index.py +124 -0
- package/hooks/tezgah_integrity.py +5141 -0
- package/hooks/tezgah_judge.py +487 -0
- package/hooks/tezgah_lang.py +230 -0
- package/hooks/tezgah_lessons.py +210 -0
- package/hooks/tezgah_models.py +855 -0
- package/hooks/tezgah_paths.py +1132 -0
- package/hooks/tezgah_policy.py +1039 -0
- package/hooks/tezgah_rank.py +77 -0
- package/hooks/tezgah_replay.py +1109 -0
- package/hooks/tezgah_research.py +5176 -0
- package/hooks/tezgah_shapes.py +305 -0
- package/hooks/tezgah_skill_pick.py +227 -0
- package/hooks/tezgah_snapshot.py +490 -0
- package/hooks/tezgah_stopspec.py +320 -0
- package/hooks/tezgah_task.py +458 -0
- package/hooks/tezgah_taste.py +201 -0
- package/hooks/tezgah_untrusted.py +112 -0
- package/hooks/tezgah_update.py +430 -0
- package/hosts/codex/hook.py +268 -0
- package/hosts/codex/hooks.json +26 -0
- package/hosts/cursor/hook.py +461 -0
- package/hosts/cursor/hooks.json +44 -0
- package/hosts/dsh/hooks.json +21 -0
- package/hosts/dsh/statusline/lib/client.js +138 -0
- package/hosts/dsh/statusline/lib/index.js +104 -0
- package/hosts/dsh/statusline/package.json +28 -0
- package/hosts/omp/hook.py +277 -0
- package/hosts/omp/tezgah-hook.ts.in +701 -0
- package/hosts/opencode/plugins/tezgah.js +2742 -0
- package/hosts/opencode/tui/tezgah-tui.tsx +151 -0
- package/output-styles/tezgah.md +142 -0
- package/package.json +32 -0
- package/packaging/build.sh +342 -0
- package/packaging/install.ps1 +166 -0
- package/packaging/install.sh +56 -0
- package/packaging/upgrade.sh +142 -0
- package/skills/ai-research/0-autoresearch-skill/SKILL.md +411 -0
- package/skills/ai-research/0-autoresearch-skill/references/agent-continuity.md +95 -0
- package/skills/ai-research/0-autoresearch-skill/references/progress-reporting.md +166 -0
- package/skills/ai-research/0-autoresearch-skill/references/skill-routing.md +219 -0
- package/skills/ai-research/0-autoresearch-skill/templates/findings.md +44 -0
- package/skills/ai-research/0-autoresearch-skill/templates/research-log.md +41 -0
- package/skills/ai-research/01-model-architecture/litgpt/SKILL.md +469 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/custom-models.md +569 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/distributed-training.md +452 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/supported-models.md +337 -0
- package/skills/ai-research/01-model-architecture/litgpt/references/training-recipes.md +620 -0
- package/skills/ai-research/01-model-architecture/mamba/SKILL.md +260 -0
- package/skills/ai-research/01-model-architecture/mamba/references/architecture-details.md +207 -0
- package/skills/ai-research/01-model-architecture/mamba/references/benchmarks.md +256 -0
- package/skills/ai-research/01-model-architecture/mamba/references/training-guide.md +389 -0
- package/skills/ai-research/01-model-architecture/nanogpt/SKILL.md +290 -0
- package/skills/ai-research/01-model-architecture/nanogpt/references/architecture.md +383 -0
- package/skills/ai-research/01-model-architecture/nanogpt/references/data.md +477 -0
- package/skills/ai-research/01-model-architecture/nanogpt/references/training.md +565 -0
- package/skills/ai-research/01-model-architecture/rwkv/SKILL.md +260 -0
- package/skills/ai-research/01-model-architecture/rwkv/references/architecture-details.md +345 -0
- package/skills/ai-research/01-model-architecture/rwkv/references/rwkv7.md +387 -0
- package/skills/ai-research/01-model-architecture/rwkv/references/state-management.md +370 -0
- package/skills/ai-research/01-model-architecture/torchtitan/SKILL.md +358 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/checkpoint.md +182 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/custom-models.md +259 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/float8.md +134 -0
- package/skills/ai-research/01-model-architecture/torchtitan/references/fsdp.md +127 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/SKILL.md +516 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/algorithms.md +654 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/integration.md +638 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/pipeline.md +724 -0
- package/skills/ai-research/02-tokenization/huggingface-tokenizers/references/training.md +566 -0
- package/skills/ai-research/02-tokenization/sentencepiece/SKILL.md +235 -0
- package/skills/ai-research/02-tokenization/sentencepiece/references/algorithms.md +201 -0
- package/skills/ai-research/02-tokenization/sentencepiece/references/training.md +305 -0
- package/skills/ai-research/03-fine-tuning/axolotl/SKILL.md +158 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/api.md +5549 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/dataset-formats.md +1030 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/index.md +16 -0
- package/skills/ai-research/03-fine-tuning/axolotl/references/other.md +3564 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/SKILL.md +80 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/_images.md +24 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/advanced.md +1056 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/getting_started.md +350 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/index.md +20 -0
- package/skills/ai-research/03-fine-tuning/llama-factory/references/other.md +32 -0
- package/skills/ai-research/03-fine-tuning/peft/SKILL.md +431 -0
- package/skills/ai-research/03-fine-tuning/peft/references/advanced-usage.md +515 -0
- package/skills/ai-research/03-fine-tuning/peft/references/troubleshooting.md +481 -0
- package/skills/ai-research/03-fine-tuning/unsloth/SKILL.md +80 -0
- package/skills/ai-research/03-fine-tuning/unsloth/references/index.md +8 -0
- package/skills/ai-research/03-fine-tuning/unsloth/references/llms.md +83 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/SKILL.md +436 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/references/README.md +79 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/references/api.md +345 -0
- package/skills/ai-research/04-mechanistic-interpretability/nnsight/references/tutorials.md +301 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/SKILL.md +473 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/references/README.md +74 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/references/api.md +384 -0
- package/skills/ai-research/04-mechanistic-interpretability/pyvene/references/tutorials.md +377 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/SKILL.md +386 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/references/README.md +71 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/references/api.md +334 -0
- package/skills/ai-research/04-mechanistic-interpretability/saelens/references/tutorials.md +319 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/SKILL.md +346 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/references/README.md +55 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/references/api.md +363 -0
- package/skills/ai-research/04-mechanistic-interpretability/transformer-lens/references/tutorials.md +340 -0
- package/skills/ai-research/05-data-processing/nemo-curator/SKILL.md +383 -0
- package/skills/ai-research/05-data-processing/nemo-curator/references/deduplication.md +88 -0
- package/skills/ai-research/05-data-processing/nemo-curator/references/filtering.md +103 -0
- package/skills/ai-research/05-data-processing/ray-data/SKILL.md +326 -0
- package/skills/ai-research/05-data-processing/ray-data/references/integration.md +83 -0
- package/skills/ai-research/05-data-processing/ray-data/references/transformations.md +84 -0
- package/skills/ai-research/06-post-training/grpo-rl-training/README.md +98 -0
- package/skills/ai-research/06-post-training/grpo-rl-training/SKILL.md +572 -0
- package/skills/ai-research/06-post-training/miles/SKILL.md +315 -0
- package/skills/ai-research/06-post-training/miles/references/api-reference.md +142 -0
- package/skills/ai-research/06-post-training/miles/references/troubleshooting.md +353 -0
- package/skills/ai-research/06-post-training/openrlhf/SKILL.md +249 -0
- package/skills/ai-research/06-post-training/openrlhf/references/algorithm-comparison.md +405 -0
- package/skills/ai-research/06-post-training/openrlhf/references/custom-rewards.md +531 -0
- package/skills/ai-research/06-post-training/openrlhf/references/hybrid-engine.md +288 -0
- package/skills/ai-research/06-post-training/openrlhf/references/multi-node-training.md +455 -0
- package/skills/ai-research/06-post-training/simpo/SKILL.md +219 -0
- package/skills/ai-research/06-post-training/simpo/references/datasets.md +479 -0
- package/skills/ai-research/06-post-training/simpo/references/hyperparameters.md +453 -0
- package/skills/ai-research/06-post-training/simpo/references/loss-functions.md +351 -0
- package/skills/ai-research/06-post-training/slime/SKILL.md +464 -0
- package/skills/ai-research/06-post-training/slime/references/api-reference.md +393 -0
- package/skills/ai-research/06-post-training/slime/references/troubleshooting.md +387 -0
- package/skills/ai-research/06-post-training/torchforge/SKILL.md +433 -0
- package/skills/ai-research/06-post-training/torchforge/references/api-reference.md +328 -0
- package/skills/ai-research/06-post-training/torchforge/references/troubleshooting.md +410 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/SKILL.md +455 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/dpo-variants.md +228 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/online-rl.md +83 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/reward-modeling.md +123 -0
- package/skills/ai-research/06-post-training/trl-fine-tuning/references/sft-training.md +169 -0
- package/skills/ai-research/06-post-training/verl/SKILL.md +391 -0
- package/skills/ai-research/06-post-training/verl/references/api-reference.md +302 -0
- package/skills/ai-research/06-post-training/verl/references/troubleshooting.md +392 -0
- package/skills/ai-research/07-safety-alignment/constitutional-ai/SKILL.md +290 -0
- package/skills/ai-research/07-safety-alignment/llamaguard/SKILL.md +337 -0
- package/skills/ai-research/07-safety-alignment/nemo-guardrails/SKILL.md +297 -0
- package/skills/ai-research/07-safety-alignment/prompt-guard/SKILL.md +312 -0
- package/skills/ai-research/08-distributed-training/accelerate/SKILL.md +332 -0
- package/skills/ai-research/08-distributed-training/accelerate/references/custom-plugins.md +454 -0
- package/skills/ai-research/08-distributed-training/accelerate/references/megatron-integration.md +490 -0
- package/skills/ai-research/08-distributed-training/accelerate/references/performance.md +526 -0
- package/skills/ai-research/08-distributed-training/deepspeed/SKILL.md +141 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/08.md +18 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/09.md +174 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/2020.md +379 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/2023.md +280 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/assets.md +180 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/index.md +36 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/mii.md +119 -0
- package/skills/ai-research/08-distributed-training/deepspeed/references/other.md +1192 -0
- package/skills/ai-research/08-distributed-training/megatron-core/SKILL.md +366 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/benchmarks.md +250 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/parallelism-guide.md +405 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/production-examples.md +474 -0
- package/skills/ai-research/08-distributed-training/megatron-core/references/training-recipes.md +548 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/SKILL.md +231 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_dcp_async_recipe.md +14 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_dcp_overview.md +19 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_dcp_recipe.md +18 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_ddp_notes.md +10 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_device_mesh_tutorial.md +22 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_examples_fsdp2.md +15 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_fsdp1_api.md +9 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_fsdp2_tutorial.md +45 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_fully_shard_api.md +49 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/pytorch_tp_tutorial.md +22 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/ray_train_fsdp2_example.md +13 -0
- package/skills/ai-research/08-distributed-training/pytorch-fsdp2/references/torchtitan_fsdp_notes.md +14 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/SKILL.md +346 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/references/callbacks.md +437 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/references/distributed.md +491 -0
- package/skills/ai-research/08-distributed-training/pytorch-lightning/references/hyperparameter-tuning.md +557 -0
- package/skills/ai-research/08-distributed-training/ray-train/SKILL.md +406 -0
- package/skills/ai-research/08-distributed-training/ray-train/references/multi-node.md +629 -0
- package/skills/ai-research/09-infrastructure/lambda-labs/SKILL.md +545 -0
- package/skills/ai-research/09-infrastructure/lambda-labs/references/advanced-usage.md +612 -0
- package/skills/ai-research/09-infrastructure/lambda-labs/references/troubleshooting.md +531 -0
- package/skills/ai-research/09-infrastructure/modal/SKILL.md +341 -0
- package/skills/ai-research/09-infrastructure/modal/references/advanced-usage.md +504 -0
- package/skills/ai-research/09-infrastructure/modal/references/troubleshooting.md +495 -0
- package/skills/ai-research/09-infrastructure/skypilot/SKILL.md +509 -0
- package/skills/ai-research/09-infrastructure/skypilot/references/advanced-usage.md +492 -0
- package/skills/ai-research/09-infrastructure/skypilot/references/troubleshooting.md +571 -0
- package/skills/ai-research/10-optimization/awq/SKILL.md +310 -0
- package/skills/ai-research/10-optimization/awq/references/advanced-usage.md +325 -0
- package/skills/ai-research/10-optimization/awq/references/troubleshooting.md +345 -0
- package/skills/ai-research/10-optimization/bitsandbytes/SKILL.md +411 -0
- package/skills/ai-research/10-optimization/bitsandbytes/references/memory-optimization.md +522 -0
- package/skills/ai-research/10-optimization/bitsandbytes/references/qlora-training.md +522 -0
- package/skills/ai-research/10-optimization/bitsandbytes/references/quantization-formats.md +448 -0
- package/skills/ai-research/10-optimization/flash-attention/SKILL.md +367 -0
- package/skills/ai-research/10-optimization/flash-attention/references/benchmarks.md +216 -0
- package/skills/ai-research/10-optimization/flash-attention/references/transformers-integration.md +294 -0
- package/skills/ai-research/10-optimization/gguf/SKILL.md +427 -0
- package/skills/ai-research/10-optimization/gguf/references/advanced-usage.md +505 -0
- package/skills/ai-research/10-optimization/gguf/references/troubleshooting.md +443 -0
- package/skills/ai-research/10-optimization/gptq/SKILL.md +450 -0
- package/skills/ai-research/10-optimization/gptq/references/calibration.md +338 -0
- package/skills/ai-research/10-optimization/gptq/references/integration.md +130 -0
- package/skills/ai-research/10-optimization/gptq/references/troubleshooting.md +96 -0
- package/skills/ai-research/10-optimization/hqq/SKILL.md +445 -0
- package/skills/ai-research/10-optimization/hqq/references/advanced-usage.md +529 -0
- package/skills/ai-research/10-optimization/hqq/references/troubleshooting.md +504 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/SKILL.md +319 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/architecture.md +320 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/biomedical.md +498 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/domain-specific.md +626 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/experiment-loop.md +129 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/optimizers.md +330 -0
- package/skills/ai-research/10-optimization/ml-training-recipes/references/scaling-and-selection.md +428 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/SKILL.md +405 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/references/benchmarks.md +394 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/references/custom-tasks.md +425 -0
- package/skills/ai-research/11-evaluation/bigcode-evaluation-harness/references/issues.md +395 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/SKILL.md +490 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/api-evaluation.md +491 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/benchmark-guide.md +489 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/custom-tasks.md +603 -0
- package/skills/ai-research/11-evaluation/lm-evaluation-harness/references/distributed-eval.md +520 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/SKILL.md +494 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/adapter-system.md +341 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/configuration.md +448 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/custom-benchmarks.md +316 -0
- package/skills/ai-research/11-evaluation/nemo-evaluator/references/execution-backends.md +362 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/SKILL.md +258 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/references/optimization.md +90 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/references/quantization.md +214 -0
- package/skills/ai-research/12-inference-serving/llama-cpp/references/server.md +126 -0
- package/skills/ai-research/12-inference-serving/sglang/SKILL.md +442 -0
- package/skills/ai-research/12-inference-serving/sglang/references/deployment.md +491 -0
- package/skills/ai-research/12-inference-serving/sglang/references/radix-attention.md +414 -0
- package/skills/ai-research/12-inference-serving/sglang/references/structured-generation.md +542 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/SKILL.md +187 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/references/multi-gpu.md +299 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/references/optimization.md +243 -0
- package/skills/ai-research/12-inference-serving/tensorrt-llm/references/serving.md +471 -0
- package/skills/ai-research/12-inference-serving/vllm/SKILL.md +364 -0
- package/skills/ai-research/12-inference-serving/vllm/references/optimization.md +227 -0
- package/skills/ai-research/12-inference-serving/vllm/references/quantization.md +285 -0
- package/skills/ai-research/12-inference-serving/vllm/references/server-deployment.md +256 -0
- package/skills/ai-research/12-inference-serving/vllm/references/troubleshooting.md +448 -0
- package/skills/ai-research/13-mlops/mlflow/SKILL.md +704 -0
- package/skills/ai-research/13-mlops/mlflow/references/deployment.md +745 -0
- package/skills/ai-research/13-mlops/mlflow/references/model-registry.md +771 -0
- package/skills/ai-research/13-mlops/mlflow/references/tracking.md +681 -0
- package/skills/ai-research/13-mlops/swanlab/SKILL.md +406 -0
- package/skills/ai-research/13-mlops/swanlab/references/integrations.md +305 -0
- package/skills/ai-research/13-mlops/swanlab/references/visualization.md +234 -0
- package/skills/ai-research/13-mlops/tensorboard/SKILL.md +629 -0
- package/skills/ai-research/13-mlops/tensorboard/references/integrations.md +639 -0
- package/skills/ai-research/13-mlops/tensorboard/references/profiling.md +546 -0
- package/skills/ai-research/13-mlops/tensorboard/references/visualization.md +621 -0
- package/skills/ai-research/13-mlops/weights-and-biases/SKILL.md +590 -0
- package/skills/ai-research/13-mlops/weights-and-biases/references/artifacts.md +585 -0
- package/skills/ai-research/13-mlops/weights-and-biases/references/integrations.md +701 -0
- package/skills/ai-research/13-mlops/weights-and-biases/references/sweeps.md +848 -0
- package/skills/ai-research/14-agents/a-evolve/SKILL.md +383 -0
- package/skills/ai-research/14-agents/a-evolve/references/README.md +831 -0
- package/skills/ai-research/14-agents/a-evolve/references/api.md +594 -0
- package/skills/ai-research/14-agents/a-evolve/references/architecture.md +417 -0
- package/skills/ai-research/14-agents/a-evolve/references/design-patterns.md +462 -0
- package/skills/ai-research/14-agents/a-evolve/references/examples.md +352 -0
- package/skills/ai-research/14-agents/a-evolve/references/issues.md +591 -0
- package/skills/ai-research/14-agents/a-evolve/references/releases.md +112 -0
- package/skills/ai-research/14-agents/a-evolve/references/tutorials.md +819 -0
- package/skills/ai-research/14-agents/autogpt/SKILL.md +403 -0
- package/skills/ai-research/14-agents/autogpt/references/advanced-usage.md +536 -0
- package/skills/ai-research/14-agents/autogpt/references/troubleshooting.md +421 -0
- package/skills/ai-research/14-agents/crewai/SKILL.md +498 -0
- package/skills/ai-research/14-agents/crewai/references/flows.md +439 -0
- package/skills/ai-research/14-agents/crewai/references/tools.md +430 -0
- package/skills/ai-research/14-agents/crewai/references/troubleshooting.md +481 -0
- package/skills/ai-research/14-agents/langchain/SKILL.md +480 -0
- package/skills/ai-research/14-agents/langchain/references/agents.md +500 -0
- package/skills/ai-research/14-agents/langchain/references/integration.md +563 -0
- package/skills/ai-research/14-agents/langchain/references/rag.md +601 -0
- package/skills/ai-research/14-agents/llamaindex/SKILL.md +569 -0
- package/skills/ai-research/14-agents/llamaindex/references/agents.md +84 -0
- package/skills/ai-research/14-agents/llamaindex/references/data_connectors.md +109 -0
- package/skills/ai-research/14-agents/llamaindex/references/query_engines.md +407 -0
- package/skills/ai-research/15-rag/chroma/SKILL.md +406 -0
- package/skills/ai-research/15-rag/chroma/references/integration.md +39 -0
- package/skills/ai-research/15-rag/faiss/SKILL.md +221 -0
- package/skills/ai-research/15-rag/faiss/references/index_types.md +281 -0
- package/skills/ai-research/15-rag/pinecone/SKILL.md +358 -0
- package/skills/ai-research/15-rag/pinecone/references/deployment.md +182 -0
- package/skills/ai-research/15-rag/qdrant/SKILL.md +493 -0
- package/skills/ai-research/15-rag/qdrant/references/advanced-usage.md +649 -0
- package/skills/ai-research/15-rag/qdrant/references/troubleshooting.md +632 -0
- package/skills/ai-research/15-rag/sentence-transformers/SKILL.md +255 -0
- package/skills/ai-research/15-rag/sentence-transformers/references/models.md +124 -0
- package/skills/ai-research/16-prompt-engineering/dspy/SKILL.md +590 -0
- package/skills/ai-research/16-prompt-engineering/dspy/references/examples.md +664 -0
- package/skills/ai-research/16-prompt-engineering/dspy/references/modules.md +476 -0
- package/skills/ai-research/16-prompt-engineering/dspy/references/optimizers.md +567 -0
- package/skills/ai-research/16-prompt-engineering/guidance/SKILL.md +572 -0
- package/skills/ai-research/16-prompt-engineering/guidance/references/backends.md +555 -0
- package/skills/ai-research/16-prompt-engineering/guidance/references/constraints.md +675 -0
- package/skills/ai-research/16-prompt-engineering/guidance/references/examples.md +768 -0
- package/skills/ai-research/16-prompt-engineering/instructor/SKILL.md +740 -0
- package/skills/ai-research/16-prompt-engineering/instructor/references/examples.md +108 -0
- package/skills/ai-research/16-prompt-engineering/instructor/references/providers.md +71 -0
- package/skills/ai-research/16-prompt-engineering/instructor/references/validation.md +607 -0
- package/skills/ai-research/16-prompt-engineering/outlines/SKILL.md +652 -0
- package/skills/ai-research/16-prompt-engineering/outlines/references/backends.md +616 -0
- package/skills/ai-research/16-prompt-engineering/outlines/references/examples.md +774 -0
- package/skills/ai-research/16-prompt-engineering/outlines/references/json_generation.md +653 -0
- package/skills/ai-research/17-observability/langsmith/SKILL.md +422 -0
- package/skills/ai-research/17-observability/langsmith/references/advanced-usage.md +549 -0
- package/skills/ai-research/17-observability/langsmith/references/troubleshooting.md +538 -0
- package/skills/ai-research/17-observability/phoenix/SKILL.md +475 -0
- package/skills/ai-research/17-observability/phoenix/references/advanced-usage.md +620 -0
- package/skills/ai-research/17-observability/phoenix/references/troubleshooting.md +539 -0
- package/skills/ai-research/18-multimodal/audiocraft/SKILL.md +564 -0
- package/skills/ai-research/18-multimodal/audiocraft/references/advanced-usage.md +667 -0
- package/skills/ai-research/18-multimodal/audiocraft/references/troubleshooting.md +505 -0
- package/skills/ai-research/18-multimodal/blip-2/SKILL.md +564 -0
- package/skills/ai-research/18-multimodal/blip-2/references/advanced-usage.md +681 -0
- package/skills/ai-research/18-multimodal/blip-2/references/troubleshooting.md +527 -0
- package/skills/ai-research/18-multimodal/clip/SKILL.md +253 -0
- package/skills/ai-research/18-multimodal/clip/references/applications.md +208 -0
- package/skills/ai-research/18-multimodal/cosmos-policy/SKILL.md +402 -0
- package/skills/ai-research/18-multimodal/cosmos-policy/references/libero-commands.md +175 -0
- package/skills/ai-research/18-multimodal/cosmos-policy/references/robocasa-commands.md +147 -0
- package/skills/ai-research/18-multimodal/llava/SKILL.md +304 -0
- package/skills/ai-research/18-multimodal/llava/references/training.md +198 -0
- package/skills/ai-research/18-multimodal/openpi/SKILL.md +480 -0
- package/skills/ai-research/18-multimodal/openpi/references/checkpoints-and-env-map.md +86 -0
- package/skills/ai-research/18-multimodal/openpi/references/config-recipes.md +50 -0
- package/skills/ai-research/18-multimodal/openpi/references/pytorch-gotchas.md +49 -0
- package/skills/ai-research/18-multimodal/openpi/references/remote-client-pattern.md +48 -0
- package/skills/ai-research/18-multimodal/openpi/references/training-debugging.md +46 -0
- package/skills/ai-research/18-multimodal/openvla-oft/SKILL.md +441 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/aloha-workflow.md +141 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/config-troubleshooting.md +97 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/libero-workflow.md +115 -0
- package/skills/ai-research/18-multimodal/openvla-oft/references/paper-and-checkpoints.md +84 -0
- package/skills/ai-research/18-multimodal/segment-anything/SKILL.md +500 -0
- package/skills/ai-research/18-multimodal/segment-anything/references/advanced-usage.md +590 -0
- package/skills/ai-research/18-multimodal/segment-anything/references/troubleshooting.md +485 -0
- package/skills/ai-research/18-multimodal/stable-diffusion/SKILL.md +519 -0
- package/skills/ai-research/18-multimodal/stable-diffusion/references/advanced-usage.md +717 -0
- package/skills/ai-research/18-multimodal/stable-diffusion/references/troubleshooting.md +556 -0
- package/skills/ai-research/18-multimodal/whisper/SKILL.md +317 -0
- package/skills/ai-research/18-multimodal/whisper/references/languages.md +190 -0
- package/skills/ai-research/19-emerging-techniques/knowledge-distillation/SKILL.md +458 -0
- package/skills/ai-research/19-emerging-techniques/knowledge-distillation/references/minillm.md +335 -0
- package/skills/ai-research/19-emerging-techniques/long-context/SKILL.md +536 -0
- package/skills/ai-research/19-emerging-techniques/long-context/references/extension_methods.md +469 -0
- package/skills/ai-research/19-emerging-techniques/long-context/references/fine_tuning.md +612 -0
- package/skills/ai-research/19-emerging-techniques/long-context/references/rope.md +403 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/SKILL.md +497 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/coefficient-tuning.md +415 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/evaluation.md +463 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/examples.md +429 -0
- package/skills/ai-research/19-emerging-techniques/model-merging/references/methods.md +353 -0
- package/skills/ai-research/19-emerging-techniques/model-pruning/SKILL.md +495 -0
- package/skills/ai-research/19-emerging-techniques/model-pruning/references/wanda.md +348 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/SKILL.md +526 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/references/architectures.md +433 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/references/inference.md +349 -0
- package/skills/ai-research/19-emerging-techniques/moe-training/references/training.md +426 -0
- package/skills/ai-research/19-emerging-techniques/speculative-decoding/SKILL.md +467 -0
- package/skills/ai-research/19-emerging-techniques/speculative-decoding/references/lookahead.md +310 -0
- package/skills/ai-research/19-emerging-techniques/speculative-decoding/references/medusa.md +351 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/SKILL.md +479 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/references/data-visualization.md +509 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/references/diagram-generation.md +395 -0
- package/skills/ai-research/20-ml-paper-writing/academic-plotting/references/style-guide.md +305 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/SKILL.md +982 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/checklists.md +348 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/citation-workflow.md +563 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/reviewer-guidelines.md +349 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/sources.md +165 -0
- package/skills/ai-research/20-ml-paper-writing/ml-paper-writing/references/writing-guide.md +477 -0
- package/skills/ai-research/20-ml-paper-writing/presenting-conference-talks/SKILL.md +298 -0
- package/skills/ai-research/20-ml-paper-writing/presenting-conference-talks/references/slide-templates.md +505 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/SKILL.md +270 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/checklist.md +279 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/reviewer-guidelines.md +116 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/section-blueprints.md +400 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/systems-conferences.md +261 -0
- package/skills/ai-research/20-ml-paper-writing/systems-paper-writing/references/writing-patterns.md +231 -0
- package/skills/ai-research/21-research-ideation/brainstorming-research-ideas/SKILL.md +384 -0
- package/skills/ai-research/21-research-ideation/creative-thinking-for-research/SKILL.md +366 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/SKILL.md +245 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/references/ara-schema.md +439 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/references/exploration-tree-spec.md +125 -0
- package/skills/ai-research/22-agent-native-research-artifact/compiler/references/validation-checklist.md +149 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/SKILL.md +324 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/references/event-taxonomy.md +124 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/references/provenance-tags.md +190 -0
- package/skills/ai-research/22-agent-native-research-artifact/research-manager/references/session-protocol.md +162 -0
- package/skills/ai-research/22-agent-native-research-artifact/rigor-reviewer/SKILL.md +322 -0
- package/skills/ai-research/22-agent-native-research-artifact/rigor-reviewer/references/review-dimensions.md +182 -0
- package/skills/ai-research/SKILL.md +101 -0
- package/skills/ai-research/SOURCE +38 -0
- package/skills/ai-research/index/1-frame.md +18 -0
- package/skills/ai-research/index/2-data.md +21 -0
- package/skills/ai-research/index/3-train.md +48 -0
- package/skills/ai-research/index/4-measure.md +25 -0
- package/skills/ai-research/index/5-run.md +23 -0
- package/skills/ai-research/index/6-write.md +35 -0
- package/skills/ai-research/library.json +3456 -0
- package/skills/analyze-app/EVALS.md +82 -0
- package/skills/analyze-app/SKILL.md +188 -0
- package/skills/design-contract/EVALS.md +80 -0
- package/skills/design-contract/SKILL.md +171 -0
- package/skills/design-library/EVALS.md +85 -0
- package/skills/design-library/INDEX.md +59 -0
- package/skills/design-library/SKILL.md +58 -0
- package/skills/design-library/SOURCE +131 -0
- package/skills/design-library/adaptive-interfaces/skills/colour-independence/SKILL.md +90 -0
- package/skills/design-library/adaptive-interfaces/skills/flexible-typography/SKILL.md +83 -0
- package/skills/design-library/adaptive-interfaces/skills/information-density/SKILL.md +87 -0
- package/skills/design-library/adaptive-interfaces/skills/preference-audit/SKILL.md +70 -0
- package/skills/design-library/adaptive-interfaces/skills/responsive-accessibility/SKILL.md +86 -0
- package/skills/design-library/adaptive-interfaces/skills/responsive-review/SKILL.md +76 -0
- package/skills/design-library/adaptive-interfaces/skills/simplified-views/SKILL.md +97 -0
- package/skills/design-library/adaptive-interfaces/skills/specify/SKILL.md +63 -0
- package/skills/design-library/adaptive-interfaces/skills/user-preference-respect/SKILL.md +100 -0
- package/skills/design-library/cognitive-accessibility/skills/adaptive-personalisation/SKILL.md +61 -0
- package/skills/design-library/cognitive-accessibility/skills/assess-load/SKILL.md +48 -0
- package/skills/design-library/cognitive-accessibility/skills/cognitive-load-assessment/SKILL.md +60 -0
- package/skills/design-library/cognitive-accessibility/skills/contextual-help-design/SKILL.md +61 -0
- package/skills/design-library/cognitive-accessibility/skills/error-prevention-recovery/SKILL.md +71 -0
- package/skills/design-library/cognitive-accessibility/skills/focus-attention-design/SKILL.md +67 -0
- package/skills/design-library/cognitive-accessibility/skills/memory-load-reduction/SKILL.md +60 -0
- package/skills/design-library/cognitive-accessibility/skills/plain-language-design/SKILL.md +78 -0
- package/skills/design-library/cognitive-accessibility/skills/review/SKILL.md +56 -0
- package/skills/design-library/cognitive-accessibility/skills/simplify/SKILL.md +39 -0
- package/skills/design-library/cognitive-accessibility/skills/wayfinding-navigation/SKILL.md +64 -0
- package/skills/design-library/design-research/skills/behavioural-analytics/SKILL.md +33 -0
- package/skills/design-library/design-research/skills/qual-quant-triangulation/SKILL.md +33 -0
- package/skills/design-library/inclusive-interaction/skills/audit/SKILL.md +50 -0
- package/skills/design-library/inclusive-interaction/skills/design-flow/SKILL.md +58 -0
- package/skills/design-library/inclusive-interaction/skills/feedback-and-status/SKILL.md +76 -0
- package/skills/design-library/inclusive-interaction/skills/gesture-alternatives/SKILL.md +70 -0
- package/skills/design-library/inclusive-interaction/skills/keyboard-navigation/SKILL.md +99 -0
- package/skills/design-library/inclusive-interaction/skills/keyboard-review/SKILL.md +54 -0
- package/skills/design-library/inclusive-interaction/skills/motion-sensitivity/SKILL.md +79 -0
- package/skills/design-library/inclusive-interaction/skills/multi-modal-input/SKILL.md +70 -0
- package/skills/design-library/inclusive-interaction/skills/touch-target-design/SKILL.md +71 -0
- package/skills/design-library/inclusive-interaction/skills/voice-interaction/SKILL.md +68 -0
- package/skills/design-library/visual-critique/skills/critique-affordance/SKILL.md +45 -0
- package/skills/design-library/visual-critique/skills/critique-brand-consistency/SKILL.md +42 -0
- package/skills/design-library/visual-critique/skills/critique-color/SKILL.md +44 -0
- package/skills/design-library/visual-critique/skills/critique-composition/SKILL.md +46 -0
- package/skills/design-library/visual-critique/skills/critique-information-density/SKILL.md +45 -0
- package/skills/design-library/visual-critique/skills/critique-typography/SKILL.md +45 -0
- package/skills/design-library/visual-critique/skills/critique-visual-hierarchy/SKILL.md +40 -0
- package/skills/feature-audit/EVALS.md +83 -0
- package/skills/feature-audit/SKILL.md +326 -0
- package/skills/harness/EVALS.md +81 -0
- package/skills/harness/SKILL.md +88 -0
- package/skills/i-have-adhd/EVALS.md +80 -0
- package/skills/i-have-adhd/SKILL.md +183 -0
- package/skills/no-ai-slop/EVALS.md +89 -0
- package/skills/no-ai-slop/SKILL.md +209 -0
- package/skills/no-ai-slop/eval.md +52 -0
- package/skills/plan-add/EVALS.md +79 -0
- package/skills/plan-add/SKILL.md +179 -0
- package/skills/plan-add/render_table.py +72 -0
- package/skills/plan-status/EVALS.md +78 -0
- package/skills/plan-status/SKILL.md +52 -0
- package/skills/plan-sync/EVALS.md +80 -0
- package/skills/plan-sync/SKILL.md +69 -0
- package/skills/pm-frameworks/SKILL.md +33 -0
- package/skills/pm-frameworks/SOURCE +39 -0
- package/skills/pm-frameworks/intended-vs-implemented/SKILL.md +42 -0
- package/skills/pm-frameworks/opportunity-solution-tree/SKILL.md +64 -0
- package/skills/ponytail/EVALS.md +80 -0
- package/skills/ponytail/SKILL.md +124 -0
- package/skills/product-analysis/EVALS.md +103 -0
- package/skills/product-analysis/SKILL.md +361 -0
- package/skills/research/EVALS.md +104 -0
- package/skills/research/SKILL.md +570 -0
- package/skills/rl-env/SKILL.md +53 -0
- package/skills/rl-env/SOURCE +41 -0
- package/skills/rl-env/generate-nemo-gym-env/SKILL.md +169 -0
- package/skills/rl-env/generate-nemo-gym-env/references/architecture.md +114 -0
- package/skills/rl-env/generate-openenv-env/SKILL.md +183 -0
- package/skills/rl-env/generate-openenv-env/references/architecture.md +82 -0
- package/skills/rl-env/generate-ors-env/SKILL.md +209 -0
- package/skills/rl-env/generate-ors-env/references/architecture.md +113 -0
- package/skills/rl-env/generate-verifiers-env/SKILL.md +188 -0
- package/skills/rl-env/generate-verifiers-env/references/architecture.md +119 -0
- package/skills/rl-env/rl-env-from-description/SKILL.md +124 -0
- package/skills/rl-env/rl-env-from-description/references/interview.md +75 -0
- package/skills/rl-env/rl-env-from-description/references/nemo_gym.md +41 -0
- package/skills/rl-env/rl-env-from-description/references/openenv.md +35 -0
- package/skills/rl-env/rl-env-from-description/references/ors.md +50 -0
- package/skills/rl-env/rl-env-from-description/references/verifiers.md +39 -0
- package/skills/tezgah-contract/EVALS.md +78 -0
- package/skills/tezgah-contract/SKILL.md +792 -0
- package/statusline.py +129 -0
- package/workflows/graph-impact.js +153 -0
- package/workflows/graph-map.js +158 -0
- package/workflows/graph-review.js +170 -0
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: awq-quantization
|
|
3
|
+
description: Activation-aware weight quantization for 4-bit LLM compression with 3x speedup and minimal accuracy loss. Use when deploying large models (7B-70B) on limited GPU memory, when you need faster inference than GPTQ with better accuracy preservation, or for instruction-tuned and multimodal models. MLSys 2024 Best Paper Award winner.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
author: Orchestra Research
|
|
6
|
+
license: MIT
|
|
7
|
+
tags: [Optimization, AWQ, Quantization, 4-Bit, Activation-Aware, Memory Optimization, Fast Inference, vLLM Integration, Marlin Kernels]
|
|
8
|
+
dependencies: [autoawq, transformers>=4.45.0, torch>=2.0.0]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# AWQ (Activation-aware Weight Quantization)
|
|
12
|
+
|
|
13
|
+
4-bit quantization that preserves salient weights based on activation patterns, achieving 3x speedup with minimal accuracy loss.
|
|
14
|
+
|
|
15
|
+
## When to use AWQ
|
|
16
|
+
|
|
17
|
+
**Use AWQ when:**
|
|
18
|
+
- Need 4-bit quantization with <5% accuracy loss
|
|
19
|
+
- Deploying instruction-tuned or chat models (AWQ generalizes better)
|
|
20
|
+
- Want ~2.5-3x inference speedup over FP16
|
|
21
|
+
- Using vLLM for production serving
|
|
22
|
+
- Have Ampere+ GPUs (A100, H100, RTX 40xx) for Marlin kernel support
|
|
23
|
+
|
|
24
|
+
**Use GPTQ instead when:**
|
|
25
|
+
- Need maximum ecosystem compatibility (more tools support GPTQ)
|
|
26
|
+
- Working with ExLlamaV2 backend specifically
|
|
27
|
+
- Have older GPUs without Marlin support
|
|
28
|
+
|
|
29
|
+
**Use bitsandbytes instead when:**
|
|
30
|
+
- Need zero calibration overhead (quantize on-the-fly)
|
|
31
|
+
- Want to fine-tune with QLoRA
|
|
32
|
+
- Prefer simpler integration
|
|
33
|
+
|
|
34
|
+
## Quick start
|
|
35
|
+
|
|
36
|
+
### Installation
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# Default (Triton kernels)
|
|
40
|
+
pip install autoawq
|
|
41
|
+
|
|
42
|
+
# With optimized CUDA kernels + Flash Attention
|
|
43
|
+
pip install autoawq[kernels]
|
|
44
|
+
|
|
45
|
+
# Intel CPU/XPU optimization
|
|
46
|
+
pip install autoawq[cpu]
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Requirements**: Python 3.8+, CUDA 11.8+, Compute Capability 7.5+
|
|
50
|
+
|
|
51
|
+
### Load pre-quantized model
|
|
52
|
+
|
|
53
|
+
```python
|
|
54
|
+
from awq import AutoAWQForCausalLM
|
|
55
|
+
from transformers import AutoTokenizer
|
|
56
|
+
|
|
57
|
+
model_name = "TheBloke/Mistral-7B-Instruct-v0.2-AWQ"
|
|
58
|
+
|
|
59
|
+
model = AutoAWQForCausalLM.from_quantized(
|
|
60
|
+
model_name,
|
|
61
|
+
fuse_layers=True # Enable fused attention for speed
|
|
62
|
+
)
|
|
63
|
+
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
|
64
|
+
|
|
65
|
+
# Generate
|
|
66
|
+
inputs = tokenizer("Explain quantum computing", return_tensors="pt").to("cuda")
|
|
67
|
+
outputs = model.generate(**inputs, max_new_tokens=200)
|
|
68
|
+
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Quantize your own model
|
|
72
|
+
|
|
73
|
+
```python
|
|
74
|
+
from awq import AutoAWQForCausalLM
|
|
75
|
+
from transformers import AutoTokenizer
|
|
76
|
+
|
|
77
|
+
model_path = "mistralai/Mistral-7B-Instruct-v0.2"
|
|
78
|
+
|
|
79
|
+
# Load model and tokenizer
|
|
80
|
+
model = AutoAWQForCausalLM.from_pretrained(model_path)
|
|
81
|
+
tokenizer = AutoTokenizer.from_pretrained(model_path)
|
|
82
|
+
|
|
83
|
+
# Quantization config
|
|
84
|
+
quant_config = {
|
|
85
|
+
"zero_point": True, # Use zero-point quantization
|
|
86
|
+
"q_group_size": 128, # Group size (128 recommended)
|
|
87
|
+
"w_bit": 4, # 4-bit weights
|
|
88
|
+
"version": "GEMM" # GEMM for batch, GEMV for single-token
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
# Quantize (uses pileval dataset by default)
|
|
92
|
+
model.quantize(tokenizer, quant_config=quant_config)
|
|
93
|
+
|
|
94
|
+
# Save
|
|
95
|
+
model.save_quantized("mistral-7b-awq")
|
|
96
|
+
tokenizer.save_pretrained("mistral-7b-awq")
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Timing**: ~10-15 min for 7B, ~1 hour for 70B models.
|
|
100
|
+
|
|
101
|
+
## AWQ vs GPTQ vs bitsandbytes
|
|
102
|
+
|
|
103
|
+
| Feature | AWQ | GPTQ | bitsandbytes |
|
|
104
|
+
|---------|-----|------|--------------|
|
|
105
|
+
| **Speedup (4-bit)** | ~2.5-3x | ~2x | ~1.5x |
|
|
106
|
+
| **Accuracy loss** | <5% | ~5-10% | ~5-15% |
|
|
107
|
+
| **Calibration** | Minimal (128-1K tokens) | More extensive | None |
|
|
108
|
+
| **Overfitting risk** | Low | Higher | N/A |
|
|
109
|
+
| **Best for** | Production inference | GPU inference | Easy integration |
|
|
110
|
+
| **vLLM support** | Native | Yes | Limited |
|
|
111
|
+
|
|
112
|
+
**Key insight**: AWQ assumes not all weights are equally important. It protects ~1% of salient weights identified by activation patterns, reducing quantization error without mixed-precision overhead.
|
|
113
|
+
|
|
114
|
+
## Kernel backends
|
|
115
|
+
|
|
116
|
+
### GEMM (default, batch inference)
|
|
117
|
+
|
|
118
|
+
```python
|
|
119
|
+
quant_config = {
|
|
120
|
+
"zero_point": True,
|
|
121
|
+
"q_group_size": 128,
|
|
122
|
+
"w_bit": 4,
|
|
123
|
+
"version": "GEMM" # Best for batch sizes > 1
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### GEMV (single-token generation)
|
|
128
|
+
|
|
129
|
+
```python
|
|
130
|
+
quant_config = {
|
|
131
|
+
"version": "GEMV" # 20% faster for batch_size=1
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Limitation**: Only batch size 1, not good for large context.
|
|
136
|
+
|
|
137
|
+
### Marlin (Ampere+ GPUs)
|
|
138
|
+
|
|
139
|
+
```python
|
|
140
|
+
from transformers import AwqConfig, AutoModelForCausalLM
|
|
141
|
+
|
|
142
|
+
config = AwqConfig(
|
|
143
|
+
bits=4,
|
|
144
|
+
version="marlin" # 2x faster on A100/H100
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
model = AutoModelForCausalLM.from_pretrained(
|
|
148
|
+
"TheBloke/Mistral-7B-AWQ",
|
|
149
|
+
quantization_config=config
|
|
150
|
+
)
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**Requirements**: Compute Capability 8.0+ (A100, H100, RTX 40xx)
|
|
154
|
+
|
|
155
|
+
### ExLlamaV2 (AMD compatible)
|
|
156
|
+
|
|
157
|
+
```python
|
|
158
|
+
config = AwqConfig(
|
|
159
|
+
bits=4,
|
|
160
|
+
version="exllama" # Faster prefill, AMD GPU support
|
|
161
|
+
)
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## HuggingFace Transformers integration
|
|
165
|
+
|
|
166
|
+
### Direct loading
|
|
167
|
+
|
|
168
|
+
```python
|
|
169
|
+
from transformers import AutoModelForCausalLM, AutoTokenizer
|
|
170
|
+
|
|
171
|
+
model = AutoModelForCausalLM.from_pretrained(
|
|
172
|
+
"TheBloke/zephyr-7B-alpha-AWQ",
|
|
173
|
+
device_map="auto"
|
|
174
|
+
)
|
|
175
|
+
tokenizer = AutoTokenizer.from_pretrained("TheBloke/zephyr-7B-alpha-AWQ")
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Fused modules (recommended)
|
|
179
|
+
|
|
180
|
+
```python
|
|
181
|
+
from transformers import AwqConfig, AutoModelForCausalLM
|
|
182
|
+
|
|
183
|
+
config = AwqConfig(
|
|
184
|
+
bits=4,
|
|
185
|
+
fuse_max_seq_len=512, # Max sequence length for fusing
|
|
186
|
+
do_fuse=True # Enable fused attention/MLP
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
model = AutoModelForCausalLM.from_pretrained(
|
|
190
|
+
"TheBloke/Mistral-7B-OpenOrca-AWQ",
|
|
191
|
+
quantization_config=config
|
|
192
|
+
)
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Note**: Fused modules cannot combine with FlashAttention2.
|
|
196
|
+
|
|
197
|
+
## vLLM integration
|
|
198
|
+
|
|
199
|
+
```python
|
|
200
|
+
from vllm import LLM, SamplingParams
|
|
201
|
+
|
|
202
|
+
# vLLM auto-detects AWQ models
|
|
203
|
+
llm = LLM(
|
|
204
|
+
model="TheBloke/Llama-2-7B-AWQ",
|
|
205
|
+
quantization="awq",
|
|
206
|
+
dtype="half"
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
sampling = SamplingParams(temperature=0.7, max_tokens=200)
|
|
210
|
+
outputs = llm.generate(["Explain AI"], sampling)
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## Performance benchmarks
|
|
214
|
+
|
|
215
|
+
### Memory reduction
|
|
216
|
+
|
|
217
|
+
| Model | FP16 | AWQ 4-bit | Reduction |
|
|
218
|
+
|-------|------|-----------|-----------|
|
|
219
|
+
| Mistral 7B | 14 GB | 5.5 GB | 2.5x |
|
|
220
|
+
| Llama 2-13B | 26 GB | 10 GB | 2.6x |
|
|
221
|
+
| Llama 2-70B | 140 GB | 35 GB | 4x |
|
|
222
|
+
|
|
223
|
+
### Inference speed (RTX 4090)
|
|
224
|
+
|
|
225
|
+
| Model | Prefill (tok/s) | Decode (tok/s) | Memory |
|
|
226
|
+
|-------|-----------------|----------------|--------|
|
|
227
|
+
| Mistral 7B GEMM | 3,897 | 114 | 5.55 GB |
|
|
228
|
+
| TinyLlama 1B GEMV | 5,179 | 431 | 2.10 GB |
|
|
229
|
+
| Llama 2-13B GEMM | 2,279 | 74 | 10.28 GB |
|
|
230
|
+
|
|
231
|
+
### Accuracy (perplexity)
|
|
232
|
+
|
|
233
|
+
| Model | FP16 | AWQ 4-bit | Degradation |
|
|
234
|
+
|-------|------|-----------|-------------|
|
|
235
|
+
| Llama 3 8B | 8.20 | 8.48 | +3.4% |
|
|
236
|
+
| Mistral 7B | 5.25 | 5.42 | +3.2% |
|
|
237
|
+
| Qwen2 72B | 4.85 | 4.95 | +2.1% |
|
|
238
|
+
|
|
239
|
+
## Custom calibration data
|
|
240
|
+
|
|
241
|
+
```python
|
|
242
|
+
# Use custom dataset for domain-specific models
|
|
243
|
+
model.quantize(
|
|
244
|
+
tokenizer,
|
|
245
|
+
quant_config=quant_config,
|
|
246
|
+
calib_data="wikitext", # Or custom list of strings
|
|
247
|
+
max_calib_samples=256, # More samples = better accuracy
|
|
248
|
+
max_calib_seq_len=512 # Sequence length
|
|
249
|
+
)
|
|
250
|
+
|
|
251
|
+
# Or provide your own samples
|
|
252
|
+
calib_samples = [
|
|
253
|
+
"Your domain-specific text here...",
|
|
254
|
+
"More examples from your use case...",
|
|
255
|
+
]
|
|
256
|
+
model.quantize(tokenizer, quant_config=quant_config, calib_data=calib_samples)
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
## Multi-GPU deployment
|
|
260
|
+
|
|
261
|
+
```python
|
|
262
|
+
model = AutoAWQForCausalLM.from_quantized(
|
|
263
|
+
"TheBloke/Llama-2-70B-AWQ",
|
|
264
|
+
device_map="auto", # Auto-split across GPUs
|
|
265
|
+
max_memory={0: "40GB", 1: "40GB"}
|
|
266
|
+
)
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
## Supported models
|
|
270
|
+
|
|
271
|
+
35+ architectures including:
|
|
272
|
+
- **Llama family**: Llama 2/3, Code Llama, Mistral, Mixtral
|
|
273
|
+
- **Qwen**: Qwen, Qwen2, Qwen2.5-VL
|
|
274
|
+
- **Others**: Falcon, MPT, Phi, Yi, DeepSeek, Gemma
|
|
275
|
+
- **Multimodal**: LLaVA, LLaVA-Next, Qwen2-VL
|
|
276
|
+
|
|
277
|
+
## Common issues
|
|
278
|
+
|
|
279
|
+
**CUDA OOM during quantization**:
|
|
280
|
+
```python
|
|
281
|
+
# Reduce batch size
|
|
282
|
+
model.quantize(tokenizer, quant_config=quant_config, max_calib_samples=64)
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
**Slow inference**:
|
|
286
|
+
```python
|
|
287
|
+
# Enable fused layers
|
|
288
|
+
model = AutoAWQForCausalLM.from_quantized(model_name, fuse_layers=True)
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
**AMD GPU support**:
|
|
292
|
+
```python
|
|
293
|
+
# Use ExLlama backend
|
|
294
|
+
config = AwqConfig(bits=4, version="exllama")
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
## Deprecation notice
|
|
298
|
+
|
|
299
|
+
AutoAWQ is officially deprecated. For new projects, consider:
|
|
300
|
+
- **vLLM llm-compressor**: https://github.com/vllm-project/llm-compressor
|
|
301
|
+
- **MLX-LM**: For Mac devices with Apple Silicon
|
|
302
|
+
|
|
303
|
+
Existing quantized models remain usable.
|
|
304
|
+
|
|
305
|
+
## References
|
|
306
|
+
|
|
307
|
+
- **Paper**: AWQ: Activation-aware Weight Quantization (arXiv:2306.00978) - MLSys 2024 Best Paper
|
|
308
|
+
- **GitHub**: https://github.com/casper-hansen/AutoAWQ
|
|
309
|
+
- **MIT Han Lab**: https://github.com/mit-han-lab/llm-awq
|
|
310
|
+
- **Models**: https://huggingface.co/models?library=awq
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
<!-- vendored from orchestra-research/AI-research-SKILLs@773a52944ba4747a18bd4ae9ade53fff041adcbc 10-optimization/awq/references/advanced-usage.md; MIT (c) Orchestra Research -->
|
|
2
|
+
# AWQ Advanced Usage Guide
|
|
3
|
+
|
|
4
|
+
## Quantization Algorithm Details
|
|
5
|
+
|
|
6
|
+
### How AWQ Works
|
|
7
|
+
|
|
8
|
+
AWQ (Activation-aware Weight Quantization) is based on the key insight that not all weights in an LLM are equally important. The algorithm:
|
|
9
|
+
|
|
10
|
+
1. **Identifies salient weights** (~1%) by examining activation distributions
|
|
11
|
+
2. **Applies mathematical scaling** to protect critical channels
|
|
12
|
+
3. **Quantizes remaining weights** to 4-bit with minimal error
|
|
13
|
+
|
|
14
|
+
**Core formula**: `L(s) = ||Q(W * s)(s^-1 * X) - W * X||`
|
|
15
|
+
|
|
16
|
+
Where:
|
|
17
|
+
- `Q` is the quantization function
|
|
18
|
+
- `W` is the weight matrix
|
|
19
|
+
- `s` is the scaling factor
|
|
20
|
+
- `X` is the input activation
|
|
21
|
+
|
|
22
|
+
### Why AWQ Outperforms GPTQ
|
|
23
|
+
|
|
24
|
+
| Aspect | AWQ | GPTQ |
|
|
25
|
+
|--------|-----|------|
|
|
26
|
+
| Calibration approach | Activation-aware scaling | Hessian-based reconstruction |
|
|
27
|
+
| Overfitting risk | Low (no backprop) | Higher (reconstruction-based) |
|
|
28
|
+
| Calibration data | 128-1024 tokens | Larger datasets needed |
|
|
29
|
+
| Generalization | Better across domains | Can overfit to calibration |
|
|
30
|
+
|
|
31
|
+
## WQLinear Kernel Variants
|
|
32
|
+
|
|
33
|
+
AutoAWQ provides multiple kernel implementations for different use cases:
|
|
34
|
+
|
|
35
|
+
### WQLinear_GEMM
|
|
36
|
+
- **Use case**: Batch inference, training
|
|
37
|
+
- **Best for**: Batch sizes > 1, throughput optimization
|
|
38
|
+
- **Implementation**: General matrix multiplication
|
|
39
|
+
|
|
40
|
+
```python
|
|
41
|
+
quant_config = {"version": "GEMM"}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### WQLinear_GEMV
|
|
45
|
+
- **Use case**: Single-token generation
|
|
46
|
+
- **Best for**: Streaming, chat applications
|
|
47
|
+
- **Speedup**: ~20% faster than GEMM for batch_size=1
|
|
48
|
+
- **Limitation**: Only works with batch_size=1
|
|
49
|
+
|
|
50
|
+
```python
|
|
51
|
+
quant_config = {"version": "GEMV"}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### WQLinear_GEMVFast
|
|
55
|
+
- **Use case**: Optimized single-token generation
|
|
56
|
+
- **Requirements**: awq_v2_ext kernels installed
|
|
57
|
+
- **Best for**: Maximum single-token speed
|
|
58
|
+
|
|
59
|
+
```python
|
|
60
|
+
# Requires autoawq[kernels] installation
|
|
61
|
+
quant_config = {"version": "gemv_fast"}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### WQLinear_Marlin
|
|
65
|
+
- **Use case**: High-throughput inference
|
|
66
|
+
- **Requirements**: Ampere+ GPUs (Compute Capability 8.0+)
|
|
67
|
+
- **Speedup**: 2x faster on A100/H100
|
|
68
|
+
|
|
69
|
+
```python
|
|
70
|
+
from transformers import AwqConfig
|
|
71
|
+
|
|
72
|
+
config = AwqConfig(bits=4, version="marlin")
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### WQLinear_Exllama / ExllamaV2
|
|
76
|
+
- **Use case**: AMD GPU compatibility, faster prefill
|
|
77
|
+
- **Benefits**: Works with ROCm
|
|
78
|
+
|
|
79
|
+
```python
|
|
80
|
+
config = AwqConfig(bits=4, version="exllama")
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### WQLinear_IPEX
|
|
84
|
+
- **Use case**: Intel CPU/XPU acceleration
|
|
85
|
+
- **Requirements**: Intel Extension for PyTorch, torch 2.4+
|
|
86
|
+
|
|
87
|
+
```python
|
|
88
|
+
pip install autoawq[cpu]
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Group Size Configuration
|
|
92
|
+
|
|
93
|
+
Group size determines how weights are grouped for quantization:
|
|
94
|
+
|
|
95
|
+
| Group Size | Model Size | Accuracy | Speed | Use Case |
|
|
96
|
+
|------------|------------|----------|-------|----------|
|
|
97
|
+
| 32 | Larger | Best | Slower | Maximum accuracy |
|
|
98
|
+
| **128** | Medium | Good | Fast | **Recommended default** |
|
|
99
|
+
| 256 | Smaller | Lower | Faster | Speed-critical |
|
|
100
|
+
|
|
101
|
+
```python
|
|
102
|
+
quant_config = {
|
|
103
|
+
"q_group_size": 128, # Recommended
|
|
104
|
+
"w_bit": 4,
|
|
105
|
+
"zero_point": True
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Zero-Point Quantization
|
|
110
|
+
|
|
111
|
+
Zero-point quantization adds an offset to handle asymmetric weight distributions:
|
|
112
|
+
|
|
113
|
+
```python
|
|
114
|
+
# With zero-point (recommended for most models)
|
|
115
|
+
quant_config = {"zero_point": True, "w_bit": 4, "q_group_size": 128}
|
|
116
|
+
|
|
117
|
+
# Without zero-point (symmetric quantization)
|
|
118
|
+
quant_config = {"zero_point": False, "w_bit": 4, "q_group_size": 128}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**When to disable zero-point**:
|
|
122
|
+
- Models with symmetric weight distributions
|
|
123
|
+
- When using specific kernels that don't support it
|
|
124
|
+
|
|
125
|
+
## Custom Calibration Strategies
|
|
126
|
+
|
|
127
|
+
### Domain-Specific Calibration
|
|
128
|
+
|
|
129
|
+
For domain-specific models, use relevant calibration data:
|
|
130
|
+
|
|
131
|
+
```python
|
|
132
|
+
# Medical domain
|
|
133
|
+
medical_samples = [
|
|
134
|
+
"Patient presents with acute respiratory symptoms...",
|
|
135
|
+
"Differential diagnosis includes pneumonia, bronchitis...",
|
|
136
|
+
# More domain-specific examples
|
|
137
|
+
]
|
|
138
|
+
|
|
139
|
+
model.quantize(
|
|
140
|
+
tokenizer,
|
|
141
|
+
quant_config=quant_config,
|
|
142
|
+
calib_data=medical_samples,
|
|
143
|
+
max_calib_samples=256
|
|
144
|
+
)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Instruction-Tuned Model Calibration
|
|
148
|
+
|
|
149
|
+
For chat/instruction models, include conversational data:
|
|
150
|
+
|
|
151
|
+
```python
|
|
152
|
+
chat_samples = [
|
|
153
|
+
"Human: What is machine learning?\nAssistant: Machine learning is...",
|
|
154
|
+
"Human: Explain neural networks.\nAssistant: Neural networks are...",
|
|
155
|
+
]
|
|
156
|
+
|
|
157
|
+
model.quantize(tokenizer, quant_config=quant_config, calib_data=chat_samples)
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Calibration Parameters
|
|
161
|
+
|
|
162
|
+
```python
|
|
163
|
+
model.quantize(
|
|
164
|
+
tokenizer,
|
|
165
|
+
quant_config=quant_config,
|
|
166
|
+
calib_data="pileval", # Dataset name or list
|
|
167
|
+
max_calib_samples=128, # Number of samples (more = slower but better)
|
|
168
|
+
max_calib_seq_len=512, # Sequence length
|
|
169
|
+
duo_scaling=True, # Scale weights and activations
|
|
170
|
+
apply_clip=True # Apply weight clipping
|
|
171
|
+
)
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## Layer Fusion
|
|
175
|
+
|
|
176
|
+
Layer fusion combines multiple operations for better performance:
|
|
177
|
+
|
|
178
|
+
### Automatic Fusion
|
|
179
|
+
|
|
180
|
+
```python
|
|
181
|
+
model = AutoAWQForCausalLM.from_quantized(
|
|
182
|
+
model_name,
|
|
183
|
+
fuse_layers=True # Enables automatic fusion
|
|
184
|
+
)
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### What Gets Fused
|
|
188
|
+
|
|
189
|
+
- **Attention**: Q, K, V projections combined
|
|
190
|
+
- **MLP**: Gate and Up projections fused
|
|
191
|
+
- **Normalization**: Replaced with FasterTransformerRMSNorm
|
|
192
|
+
|
|
193
|
+
### Manual Fusion Configuration
|
|
194
|
+
|
|
195
|
+
```python
|
|
196
|
+
from transformers import AwqConfig
|
|
197
|
+
|
|
198
|
+
config = AwqConfig(
|
|
199
|
+
bits=4,
|
|
200
|
+
fuse_max_seq_len=2048, # Max context for fused attention
|
|
201
|
+
do_fuse=True,
|
|
202
|
+
modules_to_fuse={
|
|
203
|
+
"attention": ["q_proj", "k_proj", "v_proj"],
|
|
204
|
+
"mlp": ["gate_proj", "up_proj"],
|
|
205
|
+
"layernorm": ["input_layernorm", "post_attention_layernorm"],
|
|
206
|
+
}
|
|
207
|
+
)
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## Memory Optimization
|
|
211
|
+
|
|
212
|
+
### Chunked Processing
|
|
213
|
+
|
|
214
|
+
For large models, AWQ processes in chunks to avoid OOM:
|
|
215
|
+
|
|
216
|
+
```python
|
|
217
|
+
from awq import AutoAWQForCausalLM
|
|
218
|
+
|
|
219
|
+
# Reduce memory during quantization
|
|
220
|
+
model = AutoAWQForCausalLM.from_pretrained(
|
|
221
|
+
model_path,
|
|
222
|
+
low_cpu_mem_usage=True
|
|
223
|
+
)
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Multi-GPU Quantization
|
|
227
|
+
|
|
228
|
+
```python
|
|
229
|
+
model = AutoAWQForCausalLM.from_pretrained(
|
|
230
|
+
"meta-llama/Llama-2-70b-hf",
|
|
231
|
+
device_map="auto"
|
|
232
|
+
)
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### CPU Offloading
|
|
236
|
+
|
|
237
|
+
```python
|
|
238
|
+
model = AutoAWQForCausalLM.from_quantized(
|
|
239
|
+
model_name,
|
|
240
|
+
device_map="auto",
|
|
241
|
+
max_memory={
|
|
242
|
+
0: "24GB",
|
|
243
|
+
"cpu": "100GB"
|
|
244
|
+
}
|
|
245
|
+
)
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
## Modules to Not Convert
|
|
249
|
+
|
|
250
|
+
Some modules should remain in full precision:
|
|
251
|
+
|
|
252
|
+
```python
|
|
253
|
+
# Visual encoder in multimodal models
|
|
254
|
+
class LlavaAWQForCausalLM(BaseAWQForCausalLM):
|
|
255
|
+
modules_to_not_convert = ["visual"]
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
Common exclusions:
|
|
259
|
+
- `visual` - Vision encoders in VLMs
|
|
260
|
+
- `lm_head` - Output projection
|
|
261
|
+
- `embed_tokens` - Embedding layers
|
|
262
|
+
|
|
263
|
+
## Saving and Loading
|
|
264
|
+
|
|
265
|
+
### Save Quantized Model
|
|
266
|
+
|
|
267
|
+
```python
|
|
268
|
+
# Save locally
|
|
269
|
+
model.save_quantized("./my-awq-model")
|
|
270
|
+
tokenizer.save_pretrained("./my-awq-model")
|
|
271
|
+
|
|
272
|
+
# Save with safetensors (recommended)
|
|
273
|
+
model.save_quantized("./my-awq-model", safetensors=True)
|
|
274
|
+
|
|
275
|
+
# Save sharded (for large models)
|
|
276
|
+
model.save_quantized("./my-awq-model", shard_size="5GB")
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### Push to HuggingFace
|
|
280
|
+
|
|
281
|
+
```python
|
|
282
|
+
model.push_to_hub("username/my-awq-model")
|
|
283
|
+
tokenizer.push_to_hub("username/my-awq-model")
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Load with Specific Backend
|
|
287
|
+
|
|
288
|
+
```python
|
|
289
|
+
from awq import AutoAWQForCausalLM
|
|
290
|
+
|
|
291
|
+
# Load with specific kernel
|
|
292
|
+
model = AutoAWQForCausalLM.from_quantized(
|
|
293
|
+
model_name,
|
|
294
|
+
use_exllama=True, # ExLlama backend
|
|
295
|
+
use_exllama_v2=True, # ExLlamaV2 (faster)
|
|
296
|
+
use_marlin=True, # Marlin kernels
|
|
297
|
+
use_ipex=True, # Intel CPU
|
|
298
|
+
fuse_layers=True # Enable fusion
|
|
299
|
+
)
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
## Benchmarking Your Model
|
|
303
|
+
|
|
304
|
+
```python
|
|
305
|
+
from awq.utils.utils import get_best_device
|
|
306
|
+
import time
|
|
307
|
+
|
|
308
|
+
model = AutoAWQForCausalLM.from_quantized(model_name, fuse_layers=True)
|
|
309
|
+
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
|
310
|
+
|
|
311
|
+
# Warmup
|
|
312
|
+
inputs = tokenizer("Hello", return_tensors="pt").to(get_best_device())
|
|
313
|
+
model.generate(**inputs, max_new_tokens=10)
|
|
314
|
+
|
|
315
|
+
# Benchmark
|
|
316
|
+
prompt = "Write a detailed essay about"
|
|
317
|
+
inputs = tokenizer(prompt, return_tensors="pt").to(get_best_device())
|
|
318
|
+
|
|
319
|
+
start = time.time()
|
|
320
|
+
outputs = model.generate(**inputs, max_new_tokens=200)
|
|
321
|
+
end = time.time()
|
|
322
|
+
|
|
323
|
+
tokens_generated = outputs.shape[1] - inputs.input_ids.shape[1]
|
|
324
|
+
print(f"Tokens/sec: {tokens_generated / (end - start):.2f}")
|
|
325
|
+
```
|