Telemetry
+Telemetry in Axolotl
+Axolotl implements anonymous telemetry to help maintainers understand how the library +is used and where users encounter issues. This data helps prioritize features, optimize +performance, and fix bugs.
+Data Collection
+We collect:
+-
+
- System info: OS, Python version, Axolotl version, PyTorch version, Transformers +version, etc. +
- Hardware info: CPU count, memory, GPU count and models +
- Runtime metrics: Training progress, memory usage, timing information +
- Usage patterns: Models (from a whitelist) and configurations used +
- Error tracking: Stack traces and error messages (sanitized to remove personal +information) +
Personally identifiable information (PII) is not collected.
+Implementation
+Telemetry is implemented using PostHog and consists of:
+-
+
axolotl.telemetry.TelemetryManager: A singleton class that initializes the +telemetry system and provides methods for tracking events.
+axolotl.telemetry.errors.send_errors: A decorator that captures exceptions and +sends sanitized stack traces.
+axolotl.telemetry.runtime_metrics.RuntimeMetricsTracker: A class that tracks +runtime metrics during training.
+axolotl.telemetry.callbacks.TelemetryCallback: A Trainer callback that sends +runtime metrics telemetry.
+
The telemetry system will block training startup for 10 seconds to ensure users are +aware of data collection, unless telemetry is explicitly enabled or disabled.
+Opt-Out Mechanism
+Telemetry is enabled by default on an opt-out basis. To disable it, set
+AXOLOTL_DO_NOT_TRACK=1 or DO_NOT_TRACK=1.
A warning message will be logged on start to clearly inform users about telemetry. +We will remove this after some period.
+To hide the warning message about telemetry that is displayed on train, etc. startup,
+explicitly set: AXOLOTL_DO_NOT_TRACK=0 (enable telemetry) or AXOLOTL_DO_NOT_TRACK=1
+(explicitly disable telemetry).
Privacy
+-
+
- All path-like config information is automatically redacted from telemetry data +
- Model information is only collected for whitelisted organizations
+
-
+
- See
axolotl/telemetry/whitelist.yamlfor the set of whitelisted organizations
+
+ - See
- Each run generates a unique anonymous ID
+
-
+
- This allows us to link different telemetry events in a single same training run +
+ - Telemetry is only sent from the main process to avoid duplicate events +