界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

evaluation

evaluation

【开发与工程】Routes PyTorch Metric Learning questions about AccuracyCalculator, testers, and nearest-neighbor inference.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: evaluation description: "Routes PyTorch Metric Learning questions about AccuracyCalculator, testers, and nearest-neighbor inference." disable-model-invocation: true metadata: disco-role: operating license: MIT

Evaluation and inference

Use this sub-skill when the user wants to score an embedding space, compare query/reference splits, or perform nearest-neighbor lookup after training.

Typical triggers

  • "How do I compute precision@1, mAP, R-precision, NMI, or AMI?"
  • "How do I use GlobalEmbeddingSpaceTester or the other testers?"
  • "How do I do nearest-neighbor search on embeddings?"
  • "How do I save or reload the faiss index?"
  • "How do I compare query and reference splits or use a custom label-comparison function?"

In scope

  • Accuracy: AccuracyCalculator and its metric family (precision_at_1, r_precision, mean_average_precision, mean_average_precision_at_r, mean_reciprocal_rank, NMI, AMI).
  • Testers: GlobalEmbeddingSpaceTester, WithSameParentLabelTester, GlobalTwoStreamEmbeddingSpaceTester, and BaseTester.
  • Inference: InferenceModel, MatchFinder, FaissKNN, FaissKMeans, CustomKNN.
  • Tiny in-memory datasets for evaluation smoke checks, including EmbeddingDataset.

Out of scope

  • Choosing the loss/miner stack belongs in components.
  • Training loop, logging, and checkpointing belong in training.
  • Dataset download and sampler construction belong in data unless the question is purely about evaluation input shape.

How to use this sub-skill

  1. Read references/evaluation-and-inference.md for the metric map, tester usage, and inference search patterns.
  2. Run scripts/smoke_evaluation.py when you want a tiny confirmation that AccuracyCalculator, a tester, and InferenceModel still work together.
  3. Read references/troubleshooting.md when the failure mentions faiss, k, custom label comparison, or an untrained index.
  4. If the user is still deciding which loss/miner stack to train, route to components before finalizing the evaluation settings.

Common routing decisions

  • If the user only needs a metric definition or retrieval score, stay here.
  • If the user asks how to choose a validation hook or checkpoint policy, route to training.
  • If the user asks for the right dataset split or sampler input before evaluation, route to data.

Useful public facts

  • AccuracyCalculator can include or exclude metrics, and k can be None, a positive integer, or "max_bin_count".
  • ref_includes_query=True is the right choice when the query set is part of the reference set.
  • GlobalEmbeddingSpaceTester is the usual default tester for embedding retrieval tasks.
  • WithSameParentLabelTester expects hierarchical labels.
  • GlobalTwoStreamEmbeddingSpaceTester expects datasets that yield (anchor, positive, label).
  • InferenceModel defaults to a faiss-backed k-NN index if you do not override knn_func.

Read next

  • references/evaluation-and-inference.md for the metric, tester, and inference reference.
  • references/troubleshooting.md for faiss, k, and label-comparison failures.
  • scripts/smoke_evaluation.py for a tiny evaluation and inference smoke check.
我的收藏