@synsci/cli-darwin-x64 1.1.49
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/bin/skills/accelerate/SKILL.md +332 -0
- package/bin/skills/accelerate/references/custom-plugins.md +453 -0
- package/bin/skills/accelerate/references/megatron-integration.md +489 -0
- package/bin/skills/accelerate/references/performance.md +525 -0
- package/bin/skills/audiocraft/SKILL.md +564 -0
- package/bin/skills/audiocraft/references/advanced-usage.md +666 -0
- package/bin/skills/audiocraft/references/troubleshooting.md +504 -0
- package/bin/skills/autogpt/SKILL.md +403 -0
- package/bin/skills/autogpt/references/advanced-usage.md +535 -0
- package/bin/skills/autogpt/references/troubleshooting.md +420 -0
- package/bin/skills/awq/SKILL.md +310 -0
- package/bin/skills/awq/references/advanced-usage.md +324 -0
- package/bin/skills/awq/references/troubleshooting.md +344 -0
- package/bin/skills/axolotl/SKILL.md +158 -0
- package/bin/skills/axolotl/references/api.md +5548 -0
- package/bin/skills/axolotl/references/dataset-formats.md +1029 -0
- package/bin/skills/axolotl/references/index.md +15 -0
- package/bin/skills/axolotl/references/other.md +3563 -0
- package/bin/skills/bigcode-evaluation-harness/SKILL.md +405 -0
- package/bin/skills/bigcode-evaluation-harness/references/benchmarks.md +393 -0
- package/bin/skills/bigcode-evaluation-harness/references/custom-tasks.md +424 -0
- package/bin/skills/bigcode-evaluation-harness/references/issues.md +394 -0
- package/bin/skills/bitsandbytes/SKILL.md +411 -0
- package/bin/skills/bitsandbytes/references/memory-optimization.md +521 -0
- package/bin/skills/bitsandbytes/references/qlora-training.md +521 -0
- package/bin/skills/bitsandbytes/references/quantization-formats.md +447 -0
- package/bin/skills/blip-2/SKILL.md +564 -0
- package/bin/skills/blip-2/references/advanced-usage.md +680 -0
- package/bin/skills/blip-2/references/troubleshooting.md +526 -0
- package/bin/skills/chroma/SKILL.md +406 -0
- package/bin/skills/chroma/references/integration.md +38 -0
- package/bin/skills/clip/SKILL.md +253 -0
- package/bin/skills/clip/references/applications.md +207 -0
- package/bin/skills/constitutional-ai/SKILL.md +290 -0
- package/bin/skills/crewai/SKILL.md +498 -0
- package/bin/skills/crewai/references/flows.md +438 -0
- package/bin/skills/crewai/references/tools.md +429 -0
- package/bin/skills/crewai/references/troubleshooting.md +480 -0
- package/bin/skills/deepspeed/SKILL.md +141 -0
- package/bin/skills/deepspeed/references/08.md +17 -0
- package/bin/skills/deepspeed/references/09.md +173 -0
- package/bin/skills/deepspeed/references/2020.md +378 -0
- package/bin/skills/deepspeed/references/2023.md +279 -0
- package/bin/skills/deepspeed/references/assets.md +179 -0
- package/bin/skills/deepspeed/references/index.md +35 -0
- package/bin/skills/deepspeed/references/mii.md +118 -0
- package/bin/skills/deepspeed/references/other.md +1191 -0
- package/bin/skills/deepspeed/references/tutorials.md +6554 -0
- package/bin/skills/dspy/SKILL.md +590 -0
- package/bin/skills/dspy/references/examples.md +663 -0
- package/bin/skills/dspy/references/modules.md +475 -0
- package/bin/skills/dspy/references/optimizers.md +566 -0
- package/bin/skills/faiss/SKILL.md +221 -0
- package/bin/skills/faiss/references/index_types.md +280 -0
- package/bin/skills/flash-attention/SKILL.md +367 -0
- package/bin/skills/flash-attention/references/benchmarks.md +215 -0
- package/bin/skills/flash-attention/references/transformers-integration.md +293 -0
- package/bin/skills/gguf/SKILL.md +427 -0
- package/bin/skills/gguf/references/advanced-usage.md +504 -0
- package/bin/skills/gguf/references/troubleshooting.md +442 -0
- package/bin/skills/gptq/SKILL.md +450 -0
- package/bin/skills/gptq/references/calibration.md +337 -0
- package/bin/skills/gptq/references/integration.md +129 -0
- package/bin/skills/gptq/references/troubleshooting.md +95 -0
- package/bin/skills/grpo-rl-training/README.md +97 -0
- package/bin/skills/grpo-rl-training/SKILL.md +572 -0
- package/bin/skills/grpo-rl-training/examples/reward_functions_library.py +393 -0
- package/bin/skills/grpo-rl-training/templates/basic_grpo_training.py +228 -0
- package/bin/skills/guidance/SKILL.md +572 -0
- package/bin/skills/guidance/references/backends.md +554 -0
- package/bin/skills/guidance/references/constraints.md +674 -0
- package/bin/skills/guidance/references/examples.md +767 -0
- package/bin/skills/hqq/SKILL.md +445 -0
- package/bin/skills/hqq/references/advanced-usage.md +528 -0
- package/bin/skills/hqq/references/troubleshooting.md +503 -0
- package/bin/skills/hugging-face-cli/SKILL.md +191 -0
- package/bin/skills/hugging-face-cli/references/commands.md +954 -0
- package/bin/skills/hugging-face-cli/references/examples.md +374 -0
- package/bin/skills/hugging-face-datasets/SKILL.md +547 -0
- package/bin/skills/hugging-face-datasets/examples/diverse_training_examples.json +239 -0
- package/bin/skills/hugging-face-datasets/examples/system_prompt_template.txt +196 -0
- package/bin/skills/hugging-face-datasets/examples/training_examples.json +176 -0
- package/bin/skills/hugging-face-datasets/scripts/dataset_manager.py +522 -0
- package/bin/skills/hugging-face-datasets/scripts/sql_manager.py +844 -0
- package/bin/skills/hugging-face-datasets/templates/chat.json +55 -0
- package/bin/skills/hugging-face-datasets/templates/classification.json +62 -0
- package/bin/skills/hugging-face-datasets/templates/completion.json +51 -0
- package/bin/skills/hugging-face-datasets/templates/custom.json +75 -0
- package/bin/skills/hugging-face-datasets/templates/qa.json +54 -0
- package/bin/skills/hugging-face-datasets/templates/tabular.json +81 -0
- package/bin/skills/hugging-face-evaluation/SKILL.md +656 -0
- package/bin/skills/hugging-face-evaluation/examples/USAGE_EXAMPLES.md +382 -0
- package/bin/skills/hugging-face-evaluation/examples/artificial_analysis_to_hub.py +141 -0
- package/bin/skills/hugging-face-evaluation/examples/example_readme_tables.md +135 -0
- package/bin/skills/hugging-face-evaluation/examples/metric_mapping.json +50 -0
- package/bin/skills/hugging-face-evaluation/requirements.txt +20 -0
- package/bin/skills/hugging-face-evaluation/scripts/evaluation_manager.py +1374 -0
- package/bin/skills/hugging-face-evaluation/scripts/inspect_eval_uv.py +104 -0
- package/bin/skills/hugging-face-evaluation/scripts/inspect_vllm_uv.py +317 -0
- package/bin/skills/hugging-face-evaluation/scripts/lighteval_vllm_uv.py +303 -0
- package/bin/skills/hugging-face-evaluation/scripts/run_eval_job.py +98 -0
- package/bin/skills/hugging-face-evaluation/scripts/run_vllm_eval_job.py +331 -0
- package/bin/skills/hugging-face-evaluation/scripts/test_extraction.py +206 -0
- package/bin/skills/hugging-face-jobs/SKILL.md +1041 -0
- package/bin/skills/hugging-face-jobs/index.html +216 -0
- package/bin/skills/hugging-face-jobs/references/hardware_guide.md +336 -0
- package/bin/skills/hugging-face-jobs/references/hub_saving.md +352 -0
- package/bin/skills/hugging-face-jobs/references/token_usage.md +546 -0
- package/bin/skills/hugging-face-jobs/references/troubleshooting.md +475 -0
- package/bin/skills/hugging-face-jobs/scripts/cot-self-instruct.py +718 -0
- package/bin/skills/hugging-face-jobs/scripts/finepdfs-stats.py +546 -0
- package/bin/skills/hugging-face-jobs/scripts/generate-responses.py +587 -0
- package/bin/skills/hugging-face-model-trainer/SKILL.md +711 -0
- package/bin/skills/hugging-face-model-trainer/references/gguf_conversion.md +296 -0
- package/bin/skills/hugging-face-model-trainer/references/hardware_guide.md +283 -0
- package/bin/skills/hugging-face-model-trainer/references/hub_saving.md +364 -0
- package/bin/skills/hugging-face-model-trainer/references/reliability_principles.md +371 -0
- package/bin/skills/hugging-face-model-trainer/references/trackio_guide.md +189 -0
- package/bin/skills/hugging-face-model-trainer/references/training_methods.md +150 -0
- package/bin/skills/hugging-face-model-trainer/references/training_patterns.md +203 -0
- package/bin/skills/hugging-face-model-trainer/references/troubleshooting.md +282 -0
- package/bin/skills/hugging-face-model-trainer/scripts/convert_to_gguf.py +424 -0
- package/bin/skills/hugging-face-model-trainer/scripts/dataset_inspector.py +417 -0
- package/bin/skills/hugging-face-model-trainer/scripts/estimate_cost.py +150 -0
- package/bin/skills/hugging-face-model-trainer/scripts/train_dpo_example.py +106 -0
- package/bin/skills/hugging-face-model-trainer/scripts/train_grpo_example.py +89 -0
- package/bin/skills/hugging-face-model-trainer/scripts/train_sft_example.py +122 -0
- package/bin/skills/hugging-face-paper-publisher/SKILL.md +627 -0
- package/bin/skills/hugging-face-paper-publisher/examples/example_usage.md +327 -0
- package/bin/skills/hugging-face-paper-publisher/references/quick_reference.md +216 -0
- package/bin/skills/hugging-face-paper-publisher/scripts/paper_manager.py +508 -0
- package/bin/skills/hugging-face-paper-publisher/templates/arxiv.md +299 -0
- package/bin/skills/hugging-face-paper-publisher/templates/ml-report.md +358 -0
- package/bin/skills/hugging-face-paper-publisher/templates/modern.md +319 -0
- package/bin/skills/hugging-face-paper-publisher/templates/standard.md +201 -0
- package/bin/skills/hugging-face-tool-builder/SKILL.md +115 -0
- package/bin/skills/hugging-face-tool-builder/references/baseline_hf_api.py +57 -0
- package/bin/skills/hugging-face-tool-builder/references/baseline_hf_api.sh +40 -0
- package/bin/skills/hugging-face-tool-builder/references/baseline_hf_api.tsx +57 -0
- package/bin/skills/hugging-face-tool-builder/references/find_models_by_paper.sh +230 -0
- package/bin/skills/hugging-face-tool-builder/references/hf_enrich_models.sh +96 -0
- package/bin/skills/hugging-face-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
- package/bin/skills/hugging-face-tool-builder/references/hf_model_papers_auth.sh +171 -0
- package/bin/skills/hugging-face-trackio/SKILL.md +65 -0
- package/bin/skills/hugging-face-trackio/references/logging_metrics.md +206 -0
- package/bin/skills/hugging-face-trackio/references/retrieving_metrics.md +223 -0
- package/bin/skills/huggingface-tokenizers/SKILL.md +516 -0
- package/bin/skills/huggingface-tokenizers/references/algorithms.md +653 -0
- package/bin/skills/huggingface-tokenizers/references/integration.md +637 -0
- package/bin/skills/huggingface-tokenizers/references/pipeline.md +723 -0
- package/bin/skills/huggingface-tokenizers/references/training.md +565 -0
- package/bin/skills/instructor/SKILL.md +740 -0
- package/bin/skills/instructor/references/examples.md +107 -0
- package/bin/skills/instructor/references/providers.md +70 -0
- package/bin/skills/instructor/references/validation.md +606 -0
- package/bin/skills/knowledge-distillation/SKILL.md +458 -0
- package/bin/skills/knowledge-distillation/references/minillm.md +334 -0
- package/bin/skills/lambda-labs/SKILL.md +545 -0
- package/bin/skills/lambda-labs/references/advanced-usage.md +611 -0
- package/bin/skills/lambda-labs/references/troubleshooting.md +530 -0
- package/bin/skills/langchain/SKILL.md +480 -0
- package/bin/skills/langchain/references/agents.md +499 -0
- package/bin/skills/langchain/references/integration.md +562 -0
- package/bin/skills/langchain/references/rag.md +600 -0
- package/bin/skills/langsmith/SKILL.md +422 -0
- package/bin/skills/langsmith/references/advanced-usage.md +548 -0
- package/bin/skills/langsmith/references/troubleshooting.md +537 -0
- package/bin/skills/litgpt/SKILL.md +469 -0
- package/bin/skills/litgpt/references/custom-models.md +568 -0
- package/bin/skills/litgpt/references/distributed-training.md +451 -0
- package/bin/skills/litgpt/references/supported-models.md +336 -0
- package/bin/skills/litgpt/references/training-recipes.md +619 -0
- package/bin/skills/llama-cpp/SKILL.md +258 -0
- package/bin/skills/llama-cpp/references/optimization.md +89 -0
- package/bin/skills/llama-cpp/references/quantization.md +213 -0
- package/bin/skills/llama-cpp/references/server.md +125 -0
- package/bin/skills/llama-factory/SKILL.md +80 -0
- package/bin/skills/llama-factory/references/_images.md +23 -0
- package/bin/skills/llama-factory/references/advanced.md +1055 -0
- package/bin/skills/llama-factory/references/getting_started.md +349 -0
- package/bin/skills/llama-factory/references/index.md +19 -0
- package/bin/skills/llama-factory/references/other.md +31 -0
- package/bin/skills/llamaguard/SKILL.md +337 -0
- package/bin/skills/llamaindex/SKILL.md +569 -0
- package/bin/skills/llamaindex/references/agents.md +83 -0
- package/bin/skills/llamaindex/references/data_connectors.md +108 -0
- package/bin/skills/llamaindex/references/query_engines.md +406 -0
- package/bin/skills/llava/SKILL.md +304 -0
- package/bin/skills/llava/references/training.md +197 -0
- package/bin/skills/lm-evaluation-harness/SKILL.md +490 -0
- package/bin/skills/lm-evaluation-harness/references/api-evaluation.md +490 -0
- package/bin/skills/lm-evaluation-harness/references/benchmark-guide.md +488 -0
- package/bin/skills/lm-evaluation-harness/references/custom-tasks.md +602 -0
- package/bin/skills/lm-evaluation-harness/references/distributed-eval.md +519 -0
- package/bin/skills/long-context/SKILL.md +536 -0
- package/bin/skills/long-context/references/extension_methods.md +468 -0
- package/bin/skills/long-context/references/fine_tuning.md +611 -0
- package/bin/skills/long-context/references/rope.md +402 -0
- package/bin/skills/mamba/SKILL.md +260 -0
- package/bin/skills/mamba/references/architecture-details.md +206 -0
- package/bin/skills/mamba/references/benchmarks.md +255 -0
- package/bin/skills/mamba/references/training-guide.md +388 -0
- package/bin/skills/megatron-core/SKILL.md +366 -0
- package/bin/skills/megatron-core/references/benchmarks.md +249 -0
- package/bin/skills/megatron-core/references/parallelism-guide.md +404 -0
- package/bin/skills/megatron-core/references/production-examples.md +473 -0
- package/bin/skills/megatron-core/references/training-recipes.md +547 -0
- package/bin/skills/miles/SKILL.md +315 -0
- package/bin/skills/miles/references/api-reference.md +141 -0
- package/bin/skills/miles/references/troubleshooting.md +352 -0
- package/bin/skills/mlflow/SKILL.md +704 -0
- package/bin/skills/mlflow/references/deployment.md +744 -0
- package/bin/skills/mlflow/references/model-registry.md +770 -0
- package/bin/skills/mlflow/references/tracking.md +680 -0
- package/bin/skills/modal/SKILL.md +341 -0
- package/bin/skills/modal/references/advanced-usage.md +503 -0
- package/bin/skills/modal/references/troubleshooting.md +494 -0
- package/bin/skills/model-merging/SKILL.md +539 -0
- package/bin/skills/model-merging/references/evaluation.md +462 -0
- package/bin/skills/model-merging/references/examples.md +428 -0
- package/bin/skills/model-merging/references/methods.md +352 -0
- package/bin/skills/model-pruning/SKILL.md +495 -0
- package/bin/skills/model-pruning/references/wanda.md +347 -0
- package/bin/skills/moe-training/SKILL.md +526 -0
- package/bin/skills/moe-training/references/architectures.md +432 -0
- package/bin/skills/moe-training/references/inference.md +348 -0
- package/bin/skills/moe-training/references/training.md +425 -0
- package/bin/skills/nanogpt/SKILL.md +290 -0
- package/bin/skills/nanogpt/references/architecture.md +382 -0
- package/bin/skills/nanogpt/references/data.md +476 -0
- package/bin/skills/nanogpt/references/training.md +564 -0
- package/bin/skills/nemo-curator/SKILL.md +383 -0
- package/bin/skills/nemo-curator/references/deduplication.md +87 -0
- package/bin/skills/nemo-curator/references/filtering.md +102 -0
- package/bin/skills/nemo-evaluator/SKILL.md +494 -0
- package/bin/skills/nemo-evaluator/references/adapter-system.md +340 -0
- package/bin/skills/nemo-evaluator/references/configuration.md +447 -0
- package/bin/skills/nemo-evaluator/references/custom-benchmarks.md +315 -0
- package/bin/skills/nemo-evaluator/references/execution-backends.md +361 -0
- package/bin/skills/nemo-guardrails/SKILL.md +297 -0
- package/bin/skills/nnsight/SKILL.md +436 -0
- package/bin/skills/nnsight/references/README.md +78 -0
- package/bin/skills/nnsight/references/api.md +344 -0
- package/bin/skills/nnsight/references/tutorials.md +300 -0
- package/bin/skills/openrlhf/SKILL.md +249 -0
- package/bin/skills/openrlhf/references/algorithm-comparison.md +404 -0
- package/bin/skills/openrlhf/references/custom-rewards.md +530 -0
- package/bin/skills/openrlhf/references/hybrid-engine.md +287 -0
- package/bin/skills/openrlhf/references/multi-node-training.md +454 -0
- package/bin/skills/outlines/SKILL.md +652 -0
- package/bin/skills/outlines/references/backends.md +615 -0
- package/bin/skills/outlines/references/examples.md +773 -0
- package/bin/skills/outlines/references/json_generation.md +652 -0
- package/bin/skills/peft/SKILL.md +431 -0
- package/bin/skills/peft/references/advanced-usage.md +514 -0
- package/bin/skills/peft/references/troubleshooting.md +480 -0
- package/bin/skills/phoenix/SKILL.md +475 -0
- package/bin/skills/phoenix/references/advanced-usage.md +619 -0
- package/bin/skills/phoenix/references/troubleshooting.md +538 -0
- package/bin/skills/pinecone/SKILL.md +358 -0
- package/bin/skills/pinecone/references/deployment.md +181 -0
- package/bin/skills/pytorch-fsdp/SKILL.md +126 -0
- package/bin/skills/pytorch-fsdp/references/index.md +7 -0
- package/bin/skills/pytorch-fsdp/references/other.md +4249 -0
- package/bin/skills/pytorch-lightning/SKILL.md +346 -0
- package/bin/skills/pytorch-lightning/references/callbacks.md +436 -0
- package/bin/skills/pytorch-lightning/references/distributed.md +490 -0
- package/bin/skills/pytorch-lightning/references/hyperparameter-tuning.md +556 -0
- package/bin/skills/pyvene/SKILL.md +473 -0
- package/bin/skills/pyvene/references/README.md +73 -0
- package/bin/skills/pyvene/references/api.md +383 -0
- package/bin/skills/pyvene/references/tutorials.md +376 -0
- package/bin/skills/qdrant/SKILL.md +493 -0
- package/bin/skills/qdrant/references/advanced-usage.md +648 -0
- package/bin/skills/qdrant/references/troubleshooting.md +631 -0
- package/bin/skills/ray-data/SKILL.md +326 -0
- package/bin/skills/ray-data/references/integration.md +82 -0
- package/bin/skills/ray-data/references/transformations.md +83 -0
- package/bin/skills/ray-train/SKILL.md +406 -0
- package/bin/skills/ray-train/references/multi-node.md +628 -0
- package/bin/skills/rwkv/SKILL.md +260 -0
- package/bin/skills/rwkv/references/architecture-details.md +344 -0
- package/bin/skills/rwkv/references/rwkv7.md +386 -0
- package/bin/skills/rwkv/references/state-management.md +369 -0
- package/bin/skills/saelens/SKILL.md +386 -0
- package/bin/skills/saelens/references/README.md +70 -0
- package/bin/skills/saelens/references/api.md +333 -0
- package/bin/skills/saelens/references/tutorials.md +318 -0
- package/bin/skills/segment-anything/SKILL.md +500 -0
- package/bin/skills/segment-anything/references/advanced-usage.md +589 -0
- package/bin/skills/segment-anything/references/troubleshooting.md +484 -0
- package/bin/skills/sentence-transformers/SKILL.md +255 -0
- package/bin/skills/sentence-transformers/references/models.md +123 -0
- package/bin/skills/sentencepiece/SKILL.md +235 -0
- package/bin/skills/sentencepiece/references/algorithms.md +200 -0
- package/bin/skills/sentencepiece/references/training.md +304 -0
- package/bin/skills/sglang/SKILL.md +442 -0
- package/bin/skills/sglang/references/deployment.md +490 -0
- package/bin/skills/sglang/references/radix-attention.md +413 -0
- package/bin/skills/sglang/references/structured-generation.md +541 -0
- package/bin/skills/simpo/SKILL.md +219 -0
- package/bin/skills/simpo/references/datasets.md +478 -0
- package/bin/skills/simpo/references/hyperparameters.md +452 -0
- package/bin/skills/simpo/references/loss-functions.md +350 -0
- package/bin/skills/skypilot/SKILL.md +509 -0
- package/bin/skills/skypilot/references/advanced-usage.md +491 -0
- package/bin/skills/skypilot/references/troubleshooting.md +570 -0
- package/bin/skills/slime/SKILL.md +464 -0
- package/bin/skills/slime/references/api-reference.md +392 -0
- package/bin/skills/slime/references/troubleshooting.md +386 -0
- package/bin/skills/speculative-decoding/SKILL.md +467 -0
- package/bin/skills/speculative-decoding/references/lookahead.md +309 -0
- package/bin/skills/speculative-decoding/references/medusa.md +350 -0
- package/bin/skills/stable-diffusion/SKILL.md +519 -0
- package/bin/skills/stable-diffusion/references/advanced-usage.md +716 -0
- package/bin/skills/stable-diffusion/references/troubleshooting.md +555 -0
- package/bin/skills/tensorboard/SKILL.md +629 -0
- package/bin/skills/tensorboard/references/integrations.md +638 -0
- package/bin/skills/tensorboard/references/profiling.md +545 -0
- package/bin/skills/tensorboard/references/visualization.md +620 -0
- package/bin/skills/tensorrt-llm/SKILL.md +187 -0
- package/bin/skills/tensorrt-llm/references/multi-gpu.md +298 -0
- package/bin/skills/tensorrt-llm/references/optimization.md +242 -0
- package/bin/skills/tensorrt-llm/references/serving.md +470 -0
- package/bin/skills/tinker/SKILL.md +362 -0
- package/bin/skills/tinker/references/api-reference.md +168 -0
- package/bin/skills/tinker/references/getting-started.md +157 -0
- package/bin/skills/tinker/references/loss-functions.md +163 -0
- package/bin/skills/tinker/references/models-and-lora.md +139 -0
- package/bin/skills/tinker/references/recipes.md +280 -0
- package/bin/skills/tinker/references/reinforcement-learning.md +212 -0
- package/bin/skills/tinker/references/rendering.md +243 -0
- package/bin/skills/tinker/references/supervised-learning.md +232 -0
- package/bin/skills/tinker-training-cost/SKILL.md +187 -0
- package/bin/skills/tinker-training-cost/scripts/calculate_cost.py +123 -0
- package/bin/skills/torchforge/SKILL.md +433 -0
- package/bin/skills/torchforge/references/api-reference.md +327 -0
- package/bin/skills/torchforge/references/troubleshooting.md +409 -0
- package/bin/skills/torchtitan/SKILL.md +358 -0
- package/bin/skills/torchtitan/references/checkpoint.md +181 -0
- package/bin/skills/torchtitan/references/custom-models.md +258 -0
- package/bin/skills/torchtitan/references/float8.md +133 -0
- package/bin/skills/torchtitan/references/fsdp.md +126 -0
- package/bin/skills/transformer-lens/SKILL.md +346 -0
- package/bin/skills/transformer-lens/references/README.md +54 -0
- package/bin/skills/transformer-lens/references/api.md +362 -0
- package/bin/skills/transformer-lens/references/tutorials.md +339 -0
- package/bin/skills/trl-fine-tuning/SKILL.md +455 -0
- package/bin/skills/trl-fine-tuning/references/dpo-variants.md +227 -0
- package/bin/skills/trl-fine-tuning/references/online-rl.md +82 -0
- package/bin/skills/trl-fine-tuning/references/reward-modeling.md +122 -0
- package/bin/skills/trl-fine-tuning/references/sft-training.md +168 -0
- package/bin/skills/unsloth/SKILL.md +80 -0
- package/bin/skills/unsloth/references/index.md +7 -0
- package/bin/skills/unsloth/references/llms-full.md +16799 -0
- package/bin/skills/unsloth/references/llms-txt.md +12044 -0
- package/bin/skills/unsloth/references/llms.md +82 -0
- package/bin/skills/verl/SKILL.md +391 -0
- package/bin/skills/verl/references/api-reference.md +301 -0
- package/bin/skills/verl/references/troubleshooting.md +391 -0
- package/bin/skills/vllm/SKILL.md +364 -0
- package/bin/skills/vllm/references/optimization.md +226 -0
- package/bin/skills/vllm/references/quantization.md +284 -0
- package/bin/skills/vllm/references/server-deployment.md +255 -0
- package/bin/skills/vllm/references/troubleshooting.md +447 -0
- package/bin/skills/weights-and-biases/SKILL.md +590 -0
- package/bin/skills/weights-and-biases/references/artifacts.md +584 -0
- package/bin/skills/weights-and-biases/references/integrations.md +700 -0
- package/bin/skills/weights-and-biases/references/sweeps.md +847 -0
- package/bin/skills/whisper/SKILL.md +317 -0
- package/bin/skills/whisper/references/languages.md +189 -0
- package/bin/synsc +0 -0
- package/package.json +10 -0
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: faiss
|
|
3
|
+
description: Facebook's library for efficient similarity search and clustering of dense vectors. Supports billions of vectors, GPU acceleration, and various index types (Flat, IVF, HNSW). Use for fast k-NN search, large-scale vector retrieval, or when you need pure similarity search without metadata. Best for high-performance applications.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
author: Synthetic Sciences
|
|
6
|
+
license: MIT
|
|
7
|
+
tags: [RAG, FAISS, Similarity Search, Vector Search, Facebook AI, GPU Acceleration, Billion-Scale, K-NN, HNSW, High Performance, Large Scale]
|
|
8
|
+
dependencies: [faiss-cpu, faiss-gpu, numpy]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# FAISS - Efficient Similarity Search
|
|
12
|
+
|
|
13
|
+
Facebook AI's library for billion-scale vector similarity search.
|
|
14
|
+
|
|
15
|
+
## When to use FAISS
|
|
16
|
+
|
|
17
|
+
**Use FAISS when:**
|
|
18
|
+
- Need fast similarity search on large vector datasets (millions/billions)
|
|
19
|
+
- GPU acceleration required
|
|
20
|
+
- Pure vector similarity (no metadata filtering needed)
|
|
21
|
+
- High throughput, low latency critical
|
|
22
|
+
- Offline/batch processing of embeddings
|
|
23
|
+
|
|
24
|
+
**Metrics**:
|
|
25
|
+
- **31,700+ GitHub stars**
|
|
26
|
+
- Meta/Facebook AI Research
|
|
27
|
+
- **Handles billions of vectors**
|
|
28
|
+
- **C++** with Python bindings
|
|
29
|
+
|
|
30
|
+
**Use alternatives instead**:
|
|
31
|
+
- **Chroma/Pinecone**: Need metadata filtering
|
|
32
|
+
- **Weaviate**: Need full database features
|
|
33
|
+
- **Annoy**: Simpler, fewer features
|
|
34
|
+
|
|
35
|
+
## Quick start
|
|
36
|
+
|
|
37
|
+
### Installation
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# CPU only
|
|
41
|
+
pip install faiss-cpu
|
|
42
|
+
|
|
43
|
+
# GPU support
|
|
44
|
+
pip install faiss-gpu
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Basic usage
|
|
48
|
+
|
|
49
|
+
```python
|
|
50
|
+
import faiss
|
|
51
|
+
import numpy as np
|
|
52
|
+
|
|
53
|
+
# Create sample data (1000 vectors, 128 dimensions)
|
|
54
|
+
d = 128
|
|
55
|
+
nb = 1000
|
|
56
|
+
vectors = np.random.random((nb, d)).astype('float32')
|
|
57
|
+
|
|
58
|
+
# Create index
|
|
59
|
+
index = faiss.IndexFlatL2(d) # L2 distance
|
|
60
|
+
index.add(vectors) # Add vectors
|
|
61
|
+
|
|
62
|
+
# Search
|
|
63
|
+
k = 5 # Find 5 nearest neighbors
|
|
64
|
+
query = np.random.random((1, d)).astype('float32')
|
|
65
|
+
distances, indices = index.search(query, k)
|
|
66
|
+
|
|
67
|
+
print(f"Nearest neighbors: {indices}")
|
|
68
|
+
print(f"Distances: {distances}")
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Index types
|
|
72
|
+
|
|
73
|
+
### 1. Flat (exact search)
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
# L2 (Euclidean) distance
|
|
77
|
+
index = faiss.IndexFlatL2(d)
|
|
78
|
+
|
|
79
|
+
# Inner product (cosine similarity if normalized)
|
|
80
|
+
index = faiss.IndexFlatIP(d)
|
|
81
|
+
|
|
82
|
+
# Slowest, most accurate
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### 2. IVF (inverted file) - Fast approximate
|
|
86
|
+
|
|
87
|
+
```python
|
|
88
|
+
# Create quantizer
|
|
89
|
+
quantizer = faiss.IndexFlatL2(d)
|
|
90
|
+
|
|
91
|
+
# IVF index with 100 clusters
|
|
92
|
+
nlist = 100
|
|
93
|
+
index = faiss.IndexIVFFlat(quantizer, d, nlist)
|
|
94
|
+
|
|
95
|
+
# Train on data
|
|
96
|
+
index.train(vectors)
|
|
97
|
+
|
|
98
|
+
# Add vectors
|
|
99
|
+
index.add(vectors)
|
|
100
|
+
|
|
101
|
+
# Search (nprobe = clusters to search)
|
|
102
|
+
index.nprobe = 10
|
|
103
|
+
distances, indices = index.search(query, k)
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### 3. HNSW (Hierarchical NSW) - Best quality/speed
|
|
107
|
+
|
|
108
|
+
```python
|
|
109
|
+
# HNSW index
|
|
110
|
+
M = 32 # Number of connections per layer
|
|
111
|
+
index = faiss.IndexHNSWFlat(d, M)
|
|
112
|
+
|
|
113
|
+
# No training needed
|
|
114
|
+
index.add(vectors)
|
|
115
|
+
|
|
116
|
+
# Search
|
|
117
|
+
distances, indices = index.search(query, k)
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### 4. Product Quantization - Memory efficient
|
|
121
|
+
|
|
122
|
+
```python
|
|
123
|
+
# PQ reduces memory by 16-32×
|
|
124
|
+
m = 8 # Number of subquantizers
|
|
125
|
+
nbits = 8
|
|
126
|
+
index = faiss.IndexPQ(d, m, nbits)
|
|
127
|
+
|
|
128
|
+
# Train and add
|
|
129
|
+
index.train(vectors)
|
|
130
|
+
index.add(vectors)
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Save and load
|
|
134
|
+
|
|
135
|
+
```python
|
|
136
|
+
# Save index
|
|
137
|
+
faiss.write_index(index, "large.index")
|
|
138
|
+
|
|
139
|
+
# Load index
|
|
140
|
+
index = faiss.read_index("large.index")
|
|
141
|
+
|
|
142
|
+
# Continue using
|
|
143
|
+
distances, indices = index.search(query, k)
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## GPU acceleration
|
|
147
|
+
|
|
148
|
+
```python
|
|
149
|
+
# Single GPU
|
|
150
|
+
res = faiss.StandardGpuResources()
|
|
151
|
+
index_cpu = faiss.IndexFlatL2(d)
|
|
152
|
+
index_gpu = faiss.index_cpu_to_gpu(res, 0, index_cpu) # GPU 0
|
|
153
|
+
|
|
154
|
+
# Multi-GPU
|
|
155
|
+
index_gpu = faiss.index_cpu_to_all_gpus(index_cpu)
|
|
156
|
+
|
|
157
|
+
# 10-100× faster than CPU
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## LangChain integration
|
|
161
|
+
|
|
162
|
+
```python
|
|
163
|
+
from langchain_community.vectorstores import FAISS
|
|
164
|
+
from langchain_openai import OpenAIEmbeddings
|
|
165
|
+
|
|
166
|
+
# Create FAISS vector store
|
|
167
|
+
vectorstore = FAISS.from_documents(docs, OpenAIEmbeddings())
|
|
168
|
+
|
|
169
|
+
# Save
|
|
170
|
+
vectorstore.save_local("faiss_index")
|
|
171
|
+
|
|
172
|
+
# Load
|
|
173
|
+
vectorstore = FAISS.load_local(
|
|
174
|
+
"faiss_index",
|
|
175
|
+
OpenAIEmbeddings(),
|
|
176
|
+
allow_dangerous_deserialization=True
|
|
177
|
+
)
|
|
178
|
+
|
|
179
|
+
# Search
|
|
180
|
+
results = vectorstore.similarity_search("query", k=5)
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## LlamaIndex integration
|
|
184
|
+
|
|
185
|
+
```python
|
|
186
|
+
from llama_index.vector_stores.faiss import FaissVectorStore
|
|
187
|
+
import faiss
|
|
188
|
+
|
|
189
|
+
# Create FAISS index
|
|
190
|
+
d = 1536
|
|
191
|
+
faiss_index = faiss.IndexFlatL2(d)
|
|
192
|
+
|
|
193
|
+
vector_store = FaissVectorStore(faiss_index=faiss_index)
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Best practices
|
|
197
|
+
|
|
198
|
+
1. **Choose right index type** - Flat for <10K, IVF for 10K-1M, HNSW for quality
|
|
199
|
+
2. **Normalize for cosine** - Use IndexFlatIP with normalized vectors
|
|
200
|
+
3. **Use GPU for large datasets** - 10-100× faster
|
|
201
|
+
4. **Save trained indices** - Training is expensive
|
|
202
|
+
5. **Tune nprobe/ef_search** - Balance speed/accuracy
|
|
203
|
+
6. **Monitor memory** - PQ for large datasets
|
|
204
|
+
7. **Batch queries** - Better GPU utilization
|
|
205
|
+
|
|
206
|
+
## Performance
|
|
207
|
+
|
|
208
|
+
| Index Type | Build Time | Search Time | Memory | Accuracy |
|
|
209
|
+
|------------|------------|-------------|--------|----------|
|
|
210
|
+
| Flat | Fast | Slow | High | 100% |
|
|
211
|
+
| IVF | Medium | Fast | Medium | 95-99% |
|
|
212
|
+
| HNSW | Slow | Fastest | High | 99% |
|
|
213
|
+
| PQ | Medium | Fast | Low | 90-95% |
|
|
214
|
+
|
|
215
|
+
## Resources
|
|
216
|
+
|
|
217
|
+
- **GitHub**: https://github.com/facebookresearch/faiss ⭐ 31,700+
|
|
218
|
+
- **Wiki**: https://github.com/facebookresearch/faiss/wiki
|
|
219
|
+
- **License**: MIT
|
|
220
|
+
|
|
221
|
+
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
# FAISS Index Types Guide
|
|
2
|
+
|
|
3
|
+
Complete guide to choosing and using FAISS index types.
|
|
4
|
+
|
|
5
|
+
## Index selection guide
|
|
6
|
+
|
|
7
|
+
| Dataset Size | Index Type | Training | Accuracy | Speed |
|
|
8
|
+
|--------------|------------|----------|----------|-------|
|
|
9
|
+
| < 10K | Flat | No | 100% | Slow |
|
|
10
|
+
| 10K-1M | IVF | Yes | 95-99% | Fast |
|
|
11
|
+
| 1M-10M | HNSW | No | 99% | Fastest |
|
|
12
|
+
| > 10M | IVF+PQ | Yes | 90-95% | Fast, low memory |
|
|
13
|
+
|
|
14
|
+
## Flat indices (exact search)
|
|
15
|
+
|
|
16
|
+
### IndexFlatL2 - L2 (Euclidean) distance
|
|
17
|
+
|
|
18
|
+
```python
|
|
19
|
+
import faiss
|
|
20
|
+
import numpy as np
|
|
21
|
+
|
|
22
|
+
d = 128 # Dimension
|
|
23
|
+
index = faiss.IndexFlatL2(d)
|
|
24
|
+
|
|
25
|
+
# Add vectors
|
|
26
|
+
vectors = np.random.random((1000, d)).astype('float32')
|
|
27
|
+
index.add(vectors)
|
|
28
|
+
|
|
29
|
+
# Search
|
|
30
|
+
k = 5
|
|
31
|
+
query = np.random.random((1, d)).astype('float32')
|
|
32
|
+
distances, indices = index.search(query, k)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Use when:**
|
|
36
|
+
- Dataset < 10,000 vectors
|
|
37
|
+
- Need 100% accuracy
|
|
38
|
+
- Serving as baseline
|
|
39
|
+
|
|
40
|
+
### IndexFlatIP - Inner product (cosine similarity)
|
|
41
|
+
|
|
42
|
+
```python
|
|
43
|
+
# For cosine similarity, normalize vectors first
|
|
44
|
+
import faiss
|
|
45
|
+
|
|
46
|
+
d = 128
|
|
47
|
+
index = faiss.IndexFlatIP(d)
|
|
48
|
+
|
|
49
|
+
# Normalize vectors (required for cosine similarity)
|
|
50
|
+
faiss.normalize_L2(vectors)
|
|
51
|
+
index.add(vectors)
|
|
52
|
+
|
|
53
|
+
# Search
|
|
54
|
+
faiss.normalize_L2(query)
|
|
55
|
+
distances, indices = index.search(query, k)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Use when:**
|
|
59
|
+
- Need cosine similarity
|
|
60
|
+
- Recommendation systems
|
|
61
|
+
- Text embeddings
|
|
62
|
+
|
|
63
|
+
## IVF indices (inverted file)
|
|
64
|
+
|
|
65
|
+
### IndexIVFFlat - Cluster-based search
|
|
66
|
+
|
|
67
|
+
```python
|
|
68
|
+
# Create quantizer
|
|
69
|
+
quantizer = faiss.IndexFlatL2(d)
|
|
70
|
+
|
|
71
|
+
# Create IVF index with 100 clusters
|
|
72
|
+
nlist = 100 # Number of clusters
|
|
73
|
+
index = faiss.IndexIVFFlat(quantizer, d, nlist)
|
|
74
|
+
|
|
75
|
+
# Train on data (required!)
|
|
76
|
+
index.train(vectors)
|
|
77
|
+
|
|
78
|
+
# Add vectors
|
|
79
|
+
index.add(vectors)
|
|
80
|
+
|
|
81
|
+
# Search (nprobe = clusters to search)
|
|
82
|
+
index.nprobe = 10 # Search 10 closest clusters
|
|
83
|
+
distances, indices = index.search(query, k)
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Parameters:**
|
|
87
|
+
- `nlist`: Number of clusters (√N to 4√N recommended)
|
|
88
|
+
- `nprobe`: Clusters to search (1-nlist, higher = more accurate)
|
|
89
|
+
|
|
90
|
+
**Use when:**
|
|
91
|
+
- Dataset 10K-1M vectors
|
|
92
|
+
- Need fast approximate search
|
|
93
|
+
- Can afford training time
|
|
94
|
+
|
|
95
|
+
### Tuning nprobe
|
|
96
|
+
|
|
97
|
+
```python
|
|
98
|
+
# Test different nprobe values
|
|
99
|
+
for nprobe in [1, 5, 10, 20, 50]:
|
|
100
|
+
index.nprobe = nprobe
|
|
101
|
+
distances, indices = index.search(query, k)
|
|
102
|
+
# Measure recall/speed trade-off
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Guidelines:**
|
|
106
|
+
- `nprobe=1`: Fastest, ~50% recall
|
|
107
|
+
- `nprobe=10`: Good balance, ~95% recall
|
|
108
|
+
- `nprobe=nlist`: Exact search (same as Flat)
|
|
109
|
+
|
|
110
|
+
## HNSW indices (graph-based)
|
|
111
|
+
|
|
112
|
+
### IndexHNSWFlat - Hierarchical NSW
|
|
113
|
+
|
|
114
|
+
```python
|
|
115
|
+
# HNSW index
|
|
116
|
+
M = 32 # Number of connections per layer (16-64)
|
|
117
|
+
index = faiss.IndexHNSWFlat(d, M)
|
|
118
|
+
|
|
119
|
+
# Optional: Set ef_construction (build time parameter)
|
|
120
|
+
index.hnsw.efConstruction = 40 # Higher = better quality, slower build
|
|
121
|
+
|
|
122
|
+
# Add vectors (no training needed!)
|
|
123
|
+
index.add(vectors)
|
|
124
|
+
|
|
125
|
+
# Search
|
|
126
|
+
index.hnsw.efSearch = 16 # Search time parameter
|
|
127
|
+
distances, indices = index.search(query, k)
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**Parameters:**
|
|
131
|
+
- `M`: Connections per layer (16-64, default 32)
|
|
132
|
+
- `efConstruction`: Build quality (40-200, higher = better)
|
|
133
|
+
- `efSearch`: Search quality (16-512, higher = more accurate)
|
|
134
|
+
|
|
135
|
+
**Use when:**
|
|
136
|
+
- Need best quality approximate search
|
|
137
|
+
- Can afford higher memory (more connections)
|
|
138
|
+
- Dataset 1M-10M vectors
|
|
139
|
+
|
|
140
|
+
## PQ indices (product quantization)
|
|
141
|
+
|
|
142
|
+
### IndexPQ - Memory-efficient
|
|
143
|
+
|
|
144
|
+
```python
|
|
145
|
+
# PQ reduces memory by 16-32×
|
|
146
|
+
m = 8 # Number of subquantizers (divides d)
|
|
147
|
+
nbits = 8 # Bits per subquantizer
|
|
148
|
+
|
|
149
|
+
index = faiss.IndexPQ(d, m, nbits)
|
|
150
|
+
|
|
151
|
+
# Train (required!)
|
|
152
|
+
index.train(vectors)
|
|
153
|
+
|
|
154
|
+
# Add vectors
|
|
155
|
+
index.add(vectors)
|
|
156
|
+
|
|
157
|
+
# Search
|
|
158
|
+
distances, indices = index.search(query, k)
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
**Parameters:**
|
|
162
|
+
- `m`: Subquantizers (d must be divisible by m)
|
|
163
|
+
- `nbits`: Bits per code (8 or 16)
|
|
164
|
+
|
|
165
|
+
**Memory savings:**
|
|
166
|
+
- Original: d × 4 bytes (float32)
|
|
167
|
+
- PQ: m bytes
|
|
168
|
+
- Compression ratio: 4d/m
|
|
169
|
+
|
|
170
|
+
**Use when:**
|
|
171
|
+
- Limited memory
|
|
172
|
+
- Large datasets (> 10M vectors)
|
|
173
|
+
- Can accept ~90-95% accuracy
|
|
174
|
+
|
|
175
|
+
### IndexIVFPQ - IVF + PQ combined
|
|
176
|
+
|
|
177
|
+
```python
|
|
178
|
+
# Best for very large datasets
|
|
179
|
+
nlist = 4096
|
|
180
|
+
m = 8
|
|
181
|
+
nbits = 8
|
|
182
|
+
|
|
183
|
+
quantizer = faiss.IndexFlatL2(d)
|
|
184
|
+
index = faiss.IndexIVFPQ(quantizer, d, nlist, m, nbits)
|
|
185
|
+
|
|
186
|
+
# Train
|
|
187
|
+
index.train(vectors)
|
|
188
|
+
index.add(vectors)
|
|
189
|
+
|
|
190
|
+
# Search
|
|
191
|
+
index.nprobe = 32
|
|
192
|
+
distances, indices = index.search(query, k)
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Use when:**
|
|
196
|
+
- Dataset > 10M vectors
|
|
197
|
+
- Need fast search + low memory
|
|
198
|
+
- Can accept 90-95% accuracy
|
|
199
|
+
|
|
200
|
+
## GPU indices
|
|
201
|
+
|
|
202
|
+
### Single GPU
|
|
203
|
+
|
|
204
|
+
```python
|
|
205
|
+
import faiss
|
|
206
|
+
|
|
207
|
+
# Create CPU index
|
|
208
|
+
index_cpu = faiss.IndexFlatL2(d)
|
|
209
|
+
|
|
210
|
+
# Move to GPU
|
|
211
|
+
res = faiss.StandardGpuResources() # GPU resources
|
|
212
|
+
index_gpu = faiss.index_cpu_to_gpu(res, 0, index_cpu) # GPU 0
|
|
213
|
+
|
|
214
|
+
# Use normally
|
|
215
|
+
index_gpu.add(vectors)
|
|
216
|
+
distances, indices = index_gpu.search(query, k)
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Multi-GPU
|
|
220
|
+
|
|
221
|
+
```python
|
|
222
|
+
# Use all available GPUs
|
|
223
|
+
index_gpu = faiss.index_cpu_to_all_gpus(index_cpu)
|
|
224
|
+
|
|
225
|
+
# Or specific GPUs
|
|
226
|
+
gpus = [0, 1, 2, 3] # Use GPUs 0-3
|
|
227
|
+
index_gpu = faiss.index_cpu_to_gpus_list(index_cpu, gpus)
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**Speedup:**
|
|
231
|
+
- Single GPU: 10-50× faster than CPU
|
|
232
|
+
- Multi-GPU: Near-linear scaling
|
|
233
|
+
|
|
234
|
+
## Index factory
|
|
235
|
+
|
|
236
|
+
```python
|
|
237
|
+
# Easy index creation with string descriptors
|
|
238
|
+
index = faiss.index_factory(d, "IVF100,Flat")
|
|
239
|
+
index = faiss.index_factory(d, "HNSW32")
|
|
240
|
+
index = faiss.index_factory(d, "IVF4096,PQ8")
|
|
241
|
+
|
|
242
|
+
# Train and use
|
|
243
|
+
index.train(vectors)
|
|
244
|
+
index.add(vectors)
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**Common descriptors:**
|
|
248
|
+
- `"Flat"`: Exact search
|
|
249
|
+
- `"IVF100,Flat"`: IVF with 100 clusters
|
|
250
|
+
- `"HNSW32"`: HNSW with M=32
|
|
251
|
+
- `"IVF4096,PQ8"`: IVF + PQ compression
|
|
252
|
+
|
|
253
|
+
## Performance comparison
|
|
254
|
+
|
|
255
|
+
### Search speed (1M vectors, k=10)
|
|
256
|
+
|
|
257
|
+
| Index | Build Time | Search Time | Memory | Recall |
|
|
258
|
+
|-------|------------|-------------|--------|--------|
|
|
259
|
+
| Flat | 0s | 50ms | 512 MB | 100% |
|
|
260
|
+
| IVF100 | 5s | 2ms | 512 MB | 95% |
|
|
261
|
+
| HNSW32 | 60s | 1ms | 1GB | 99% |
|
|
262
|
+
| IVF4096+PQ8 | 30s | 3ms | 32 MB | 90% |
|
|
263
|
+
|
|
264
|
+
*CPU (16 cores), 128-dim vectors*
|
|
265
|
+
|
|
266
|
+
## Best practices
|
|
267
|
+
|
|
268
|
+
1. **Start with Flat** - Baseline for comparison
|
|
269
|
+
2. **Use IVF for medium datasets** - Good balance
|
|
270
|
+
3. **Use HNSW for best quality** - If memory allows
|
|
271
|
+
4. **Add PQ for memory savings** - Large datasets
|
|
272
|
+
5. **GPU for > 100K vectors** - 10-50× speedup
|
|
273
|
+
6. **Tune nprobe/efSearch** - Trade-off speed/accuracy
|
|
274
|
+
7. **Train on representative data** - Better clustering
|
|
275
|
+
8. **Save trained indices** - Avoid retraining
|
|
276
|
+
|
|
277
|
+
## Resources
|
|
278
|
+
|
|
279
|
+
- **Wiki**: https://github.com/facebookresearch/faiss/wiki
|
|
280
|
+
- **Paper**: https://arxiv.org/abs/1702.08734
|