Buckets:
| [ | |
| { | |
| "Instruction": "How to perform security assessment of machine learning models?", | |
| "Input": "Audit an ML model for adversarial vulnerabilities and data poisoning risks.", | |
| "Output": "## ML Model Security Assessment\n\n### Adversarial Attacks\n```python\n# Fast Gradient Sign Method (FGSM)\nimport torch\n\ndef fgsm_attack(model, image, label, epsilon):\n image.requires_grad = True\n output = model(image)\n loss = torch.nn.functional.cross_entropy(output, label)\n model.zero_grad()\n loss.backward()\n perturbed_image = image + epsilon * image.grad.data.sign()\n return perturbed_image\n\n# Projected Gradient Descent (PGD)\ndef pgd_attack(model, image, label, epsilon, alpha, num_iter):\n perturbed_image = image.clone().detach()\n for i in range(num_iter):\n perturbed_image.requires_grad = True\n output = model(perturbed_image)\n loss = torch.nn.functional.cross_entropy(output, label)\n model.zero_grad()\n loss.backward()\n perturbed_image = perturbed_image + alpha * perturbed_image.grad.data.sign()\n perturbed_image = torch.clamp(perturbed_image, image - epsilon, image + epsilon)\n return perturbed_image\n```\n\n### Data Poisoning\n```python\n# Backdoor attack\n# Inject malicious samples into training data\n\ndef create_backdoor_sample(image, trigger, label):\n poisoned_image = image.clone()\n poisoned_image[:, :trigger_size, :trigger_size] = trigger\n return poisoned_image, target_label\n```\n\n### Model Extraction\n```python\n# Query-based extraction\n# Send queries to API and train substitute model\n\ndef extract_model(api, num_queries):\n queries = generate_random_inputs(num_queries)\n predictions = [api.predict(q) for q in queries]\n substitute_model = train_model(queries, predictions)\n return substitute_model\n```\n\n### Privacy Attacks\n```python\n# Membership inference\n# Determine if specific data was in training set\n\ndef membership_inference(model, sample):\n confidence = model.predict(sample)\n # High confidence suggests membership\n return confidence > threshold\n\n# Model inversion\n# Reconstruct training data from model\n```\n\n### Defense Mechanisms\n```python\n# Adversarial training\ndef adversarial_training(model, data, labels, epsilon):\n perturbed_data = fgsm_attack(model, data, labels, epsilon)\n loss = train_step(model, perturbed_data, labels)\n return loss\n\n# Differential privacy\nfrom opacus import PrivacyEngine\nprivacy_engine = PrivacyEngine()\nmodel, optimizer, dataloader = privacy_engine.make_private(\n module=model,\n optimizer=optimizer,\n data_loader=dataloader,\n noise_multiplier=1.0,\n max_grad_norm=1.0,\n)\n```\n\n### Tools\n- CleverHans\n- Foolbox\n- ART (Adversarial Robustness Toolbox)\n- TextAttack\n- Counterfit\n- Microsoft Counterfit", | |
| "Metadata": { | |
| "category": "ai-ml-security", | |
| "tools": ["CleverHans", "Foolbox", "ART", "TextAttack"], | |
| "technique": "ml-security-audit" | |
| } | |
| } | |
| ] | |
Xet Storage Details
- Size:
- 3.04 kB
- Xet hash:
- 259ce1781f8e72c07236f2c0cac9196644a6c15972b3036daecd40f3270e884f
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.