@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.
Files changed (373) hide show
  1. package/bin/skills/accelerate/SKILL.md +332 -0
  2. package/bin/skills/accelerate/references/custom-plugins.md +453 -0
  3. package/bin/skills/accelerate/references/megatron-integration.md +489 -0
  4. package/bin/skills/accelerate/references/performance.md +525 -0
  5. package/bin/skills/audiocraft/SKILL.md +564 -0
  6. package/bin/skills/audiocraft/references/advanced-usage.md +666 -0
  7. package/bin/skills/audiocraft/references/troubleshooting.md +504 -0
  8. package/bin/skills/autogpt/SKILL.md +403 -0
  9. package/bin/skills/autogpt/references/advanced-usage.md +535 -0
  10. package/bin/skills/autogpt/references/troubleshooting.md +420 -0
  11. package/bin/skills/awq/SKILL.md +310 -0
  12. package/bin/skills/awq/references/advanced-usage.md +324 -0
  13. package/bin/skills/awq/references/troubleshooting.md +344 -0
  14. package/bin/skills/axolotl/SKILL.md +158 -0
  15. package/bin/skills/axolotl/references/api.md +5548 -0
  16. package/bin/skills/axolotl/references/dataset-formats.md +1029 -0
  17. package/bin/skills/axolotl/references/index.md +15 -0
  18. package/bin/skills/axolotl/references/other.md +3563 -0
  19. package/bin/skills/bigcode-evaluation-harness/SKILL.md +405 -0
  20. package/bin/skills/bigcode-evaluation-harness/references/benchmarks.md +393 -0
  21. package/bin/skills/bigcode-evaluation-harness/references/custom-tasks.md +424 -0
  22. package/bin/skills/bigcode-evaluation-harness/references/issues.md +394 -0
  23. package/bin/skills/bitsandbytes/SKILL.md +411 -0
  24. package/bin/skills/bitsandbytes/references/memory-optimization.md +521 -0
  25. package/bin/skills/bitsandbytes/references/qlora-training.md +521 -0
  26. package/bin/skills/bitsandbytes/references/quantization-formats.md +447 -0
  27. package/bin/skills/blip-2/SKILL.md +564 -0
  28. package/bin/skills/blip-2/references/advanced-usage.md +680 -0
  29. package/bin/skills/blip-2/references/troubleshooting.md +526 -0
  30. package/bin/skills/chroma/SKILL.md +406 -0
  31. package/bin/skills/chroma/references/integration.md +38 -0
  32. package/bin/skills/clip/SKILL.md +253 -0
  33. package/bin/skills/clip/references/applications.md +207 -0
  34. package/bin/skills/constitutional-ai/SKILL.md +290 -0
  35. package/bin/skills/crewai/SKILL.md +498 -0
  36. package/bin/skills/crewai/references/flows.md +438 -0
  37. package/bin/skills/crewai/references/tools.md +429 -0
  38. package/bin/skills/crewai/references/troubleshooting.md +480 -0
  39. package/bin/skills/deepspeed/SKILL.md +141 -0
  40. package/bin/skills/deepspeed/references/08.md +17 -0
  41. package/bin/skills/deepspeed/references/09.md +173 -0
  42. package/bin/skills/deepspeed/references/2020.md +378 -0
  43. package/bin/skills/deepspeed/references/2023.md +279 -0
  44. package/bin/skills/deepspeed/references/assets.md +179 -0
  45. package/bin/skills/deepspeed/references/index.md +35 -0
  46. package/bin/skills/deepspeed/references/mii.md +118 -0
  47. package/bin/skills/deepspeed/references/other.md +1191 -0
  48. package/bin/skills/deepspeed/references/tutorials.md +6554 -0
  49. package/bin/skills/dspy/SKILL.md +590 -0
  50. package/bin/skills/dspy/references/examples.md +663 -0
  51. package/bin/skills/dspy/references/modules.md +475 -0
  52. package/bin/skills/dspy/references/optimizers.md +566 -0
  53. package/bin/skills/faiss/SKILL.md +221 -0
  54. package/bin/skills/faiss/references/index_types.md +280 -0
  55. package/bin/skills/flash-attention/SKILL.md +367 -0
  56. package/bin/skills/flash-attention/references/benchmarks.md +215 -0
  57. package/bin/skills/flash-attention/references/transformers-integration.md +293 -0
  58. package/bin/skills/gguf/SKILL.md +427 -0
  59. package/bin/skills/gguf/references/advanced-usage.md +504 -0
  60. package/bin/skills/gguf/references/troubleshooting.md +442 -0
  61. package/bin/skills/gptq/SKILL.md +450 -0
  62. package/bin/skills/gptq/references/calibration.md +337 -0
  63. package/bin/skills/gptq/references/integration.md +129 -0
  64. package/bin/skills/gptq/references/troubleshooting.md +95 -0
  65. package/bin/skills/grpo-rl-training/README.md +97 -0
  66. package/bin/skills/grpo-rl-training/SKILL.md +572 -0
  67. package/bin/skills/grpo-rl-training/examples/reward_functions_library.py +393 -0
  68. package/bin/skills/grpo-rl-training/templates/basic_grpo_training.py +228 -0
  69. package/bin/skills/guidance/SKILL.md +572 -0
  70. package/bin/skills/guidance/references/backends.md +554 -0
  71. package/bin/skills/guidance/references/constraints.md +674 -0
  72. package/bin/skills/guidance/references/examples.md +767 -0
  73. package/bin/skills/hqq/SKILL.md +445 -0
  74. package/bin/skills/hqq/references/advanced-usage.md +528 -0
  75. package/bin/skills/hqq/references/troubleshooting.md +503 -0
  76. package/bin/skills/hugging-face-cli/SKILL.md +191 -0
  77. package/bin/skills/hugging-face-cli/references/commands.md +954 -0
  78. package/bin/skills/hugging-face-cli/references/examples.md +374 -0
  79. package/bin/skills/hugging-face-datasets/SKILL.md +547 -0
  80. package/bin/skills/hugging-face-datasets/examples/diverse_training_examples.json +239 -0
  81. package/bin/skills/hugging-face-datasets/examples/system_prompt_template.txt +196 -0
  82. package/bin/skills/hugging-face-datasets/examples/training_examples.json +176 -0
  83. package/bin/skills/hugging-face-datasets/scripts/dataset_manager.py +522 -0
  84. package/bin/skills/hugging-face-datasets/scripts/sql_manager.py +844 -0
  85. package/bin/skills/hugging-face-datasets/templates/chat.json +55 -0
  86. package/bin/skills/hugging-face-datasets/templates/classification.json +62 -0
  87. package/bin/skills/hugging-face-datasets/templates/completion.json +51 -0
  88. package/bin/skills/hugging-face-datasets/templates/custom.json +75 -0
  89. package/bin/skills/hugging-face-datasets/templates/qa.json +54 -0
  90. package/bin/skills/hugging-face-datasets/templates/tabular.json +81 -0
  91. package/bin/skills/hugging-face-evaluation/SKILL.md +656 -0
  92. package/bin/skills/hugging-face-evaluation/examples/USAGE_EXAMPLES.md +382 -0
  93. package/bin/skills/hugging-face-evaluation/examples/artificial_analysis_to_hub.py +141 -0
  94. package/bin/skills/hugging-face-evaluation/examples/example_readme_tables.md +135 -0
  95. package/bin/skills/hugging-face-evaluation/examples/metric_mapping.json +50 -0
  96. package/bin/skills/hugging-face-evaluation/requirements.txt +20 -0
  97. package/bin/skills/hugging-face-evaluation/scripts/evaluation_manager.py +1374 -0
  98. package/bin/skills/hugging-face-evaluation/scripts/inspect_eval_uv.py +104 -0
  99. package/bin/skills/hugging-face-evaluation/scripts/inspect_vllm_uv.py +317 -0
  100. package/bin/skills/hugging-face-evaluation/scripts/lighteval_vllm_uv.py +303 -0
  101. package/bin/skills/hugging-face-evaluation/scripts/run_eval_job.py +98 -0
  102. package/bin/skills/hugging-face-evaluation/scripts/run_vllm_eval_job.py +331 -0
  103. package/bin/skills/hugging-face-evaluation/scripts/test_extraction.py +206 -0
  104. package/bin/skills/hugging-face-jobs/SKILL.md +1041 -0
  105. package/bin/skills/hugging-face-jobs/index.html +216 -0
  106. package/bin/skills/hugging-face-jobs/references/hardware_guide.md +336 -0
  107. package/bin/skills/hugging-face-jobs/references/hub_saving.md +352 -0
  108. package/bin/skills/hugging-face-jobs/references/token_usage.md +546 -0
  109. package/bin/skills/hugging-face-jobs/references/troubleshooting.md +475 -0
  110. package/bin/skills/hugging-face-jobs/scripts/cot-self-instruct.py +718 -0
  111. package/bin/skills/hugging-face-jobs/scripts/finepdfs-stats.py +546 -0
  112. package/bin/skills/hugging-face-jobs/scripts/generate-responses.py +587 -0
  113. package/bin/skills/hugging-face-model-trainer/SKILL.md +711 -0
  114. package/bin/skills/hugging-face-model-trainer/references/gguf_conversion.md +296 -0
  115. package/bin/skills/hugging-face-model-trainer/references/hardware_guide.md +283 -0
  116. package/bin/skills/hugging-face-model-trainer/references/hub_saving.md +364 -0
  117. package/bin/skills/hugging-face-model-trainer/references/reliability_principles.md +371 -0
  118. package/bin/skills/hugging-face-model-trainer/references/trackio_guide.md +189 -0
  119. package/bin/skills/hugging-face-model-trainer/references/training_methods.md +150 -0
  120. package/bin/skills/hugging-face-model-trainer/references/training_patterns.md +203 -0
  121. package/bin/skills/hugging-face-model-trainer/references/troubleshooting.md +282 -0
  122. package/bin/skills/hugging-face-model-trainer/scripts/convert_to_gguf.py +424 -0
  123. package/bin/skills/hugging-face-model-trainer/scripts/dataset_inspector.py +417 -0
  124. package/bin/skills/hugging-face-model-trainer/scripts/estimate_cost.py +150 -0
  125. package/bin/skills/hugging-face-model-trainer/scripts/train_dpo_example.py +106 -0
  126. package/bin/skills/hugging-face-model-trainer/scripts/train_grpo_example.py +89 -0
  127. package/bin/skills/hugging-face-model-trainer/scripts/train_sft_example.py +122 -0
  128. package/bin/skills/hugging-face-paper-publisher/SKILL.md +627 -0
  129. package/bin/skills/hugging-face-paper-publisher/examples/example_usage.md +327 -0
  130. package/bin/skills/hugging-face-paper-publisher/references/quick_reference.md +216 -0
  131. package/bin/skills/hugging-face-paper-publisher/scripts/paper_manager.py +508 -0
  132. package/bin/skills/hugging-face-paper-publisher/templates/arxiv.md +299 -0
  133. package/bin/skills/hugging-face-paper-publisher/templates/ml-report.md +358 -0
  134. package/bin/skills/hugging-face-paper-publisher/templates/modern.md +319 -0
  135. package/bin/skills/hugging-face-paper-publisher/templates/standard.md +201 -0
  136. package/bin/skills/hugging-face-tool-builder/SKILL.md +115 -0
  137. package/bin/skills/hugging-face-tool-builder/references/baseline_hf_api.py +57 -0
  138. package/bin/skills/hugging-face-tool-builder/references/baseline_hf_api.sh +40 -0
  139. package/bin/skills/hugging-face-tool-builder/references/baseline_hf_api.tsx +57 -0
  140. package/bin/skills/hugging-face-tool-builder/references/find_models_by_paper.sh +230 -0
  141. package/bin/skills/hugging-face-tool-builder/references/hf_enrich_models.sh +96 -0
  142. package/bin/skills/hugging-face-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
  143. package/bin/skills/hugging-face-tool-builder/references/hf_model_papers_auth.sh +171 -0
  144. package/bin/skills/hugging-face-trackio/SKILL.md +65 -0
  145. package/bin/skills/hugging-face-trackio/references/logging_metrics.md +206 -0
  146. package/bin/skills/hugging-face-trackio/references/retrieving_metrics.md +223 -0
  147. package/bin/skills/huggingface-tokenizers/SKILL.md +516 -0
  148. package/bin/skills/huggingface-tokenizers/references/algorithms.md +653 -0
  149. package/bin/skills/huggingface-tokenizers/references/integration.md +637 -0
  150. package/bin/skills/huggingface-tokenizers/references/pipeline.md +723 -0
  151. package/bin/skills/huggingface-tokenizers/references/training.md +565 -0
  152. package/bin/skills/instructor/SKILL.md +740 -0
  153. package/bin/skills/instructor/references/examples.md +107 -0
  154. package/bin/skills/instructor/references/providers.md +70 -0
  155. package/bin/skills/instructor/references/validation.md +606 -0
  156. package/bin/skills/knowledge-distillation/SKILL.md +458 -0
  157. package/bin/skills/knowledge-distillation/references/minillm.md +334 -0
  158. package/bin/skills/lambda-labs/SKILL.md +545 -0
  159. package/bin/skills/lambda-labs/references/advanced-usage.md +611 -0
  160. package/bin/skills/lambda-labs/references/troubleshooting.md +530 -0
  161. package/bin/skills/langchain/SKILL.md +480 -0
  162. package/bin/skills/langchain/references/agents.md +499 -0
  163. package/bin/skills/langchain/references/integration.md +562 -0
  164. package/bin/skills/langchain/references/rag.md +600 -0
  165. package/bin/skills/langsmith/SKILL.md +422 -0
  166. package/bin/skills/langsmith/references/advanced-usage.md +548 -0
  167. package/bin/skills/langsmith/references/troubleshooting.md +537 -0
  168. package/bin/skills/litgpt/SKILL.md +469 -0
  169. package/bin/skills/litgpt/references/custom-models.md +568 -0
  170. package/bin/skills/litgpt/references/distributed-training.md +451 -0
  171. package/bin/skills/litgpt/references/supported-models.md +336 -0
  172. package/bin/skills/litgpt/references/training-recipes.md +619 -0
  173. package/bin/skills/llama-cpp/SKILL.md +258 -0
  174. package/bin/skills/llama-cpp/references/optimization.md +89 -0
  175. package/bin/skills/llama-cpp/references/quantization.md +213 -0
  176. package/bin/skills/llama-cpp/references/server.md +125 -0
  177. package/bin/skills/llama-factory/SKILL.md +80 -0
  178. package/bin/skills/llama-factory/references/_images.md +23 -0
  179. package/bin/skills/llama-factory/references/advanced.md +1055 -0
  180. package/bin/skills/llama-factory/references/getting_started.md +349 -0
  181. package/bin/skills/llama-factory/references/index.md +19 -0
  182. package/bin/skills/llama-factory/references/other.md +31 -0
  183. package/bin/skills/llamaguard/SKILL.md +337 -0
  184. package/bin/skills/llamaindex/SKILL.md +569 -0
  185. package/bin/skills/llamaindex/references/agents.md +83 -0
  186. package/bin/skills/llamaindex/references/data_connectors.md +108 -0
  187. package/bin/skills/llamaindex/references/query_engines.md +406 -0
  188. package/bin/skills/llava/SKILL.md +304 -0
  189. package/bin/skills/llava/references/training.md +197 -0
  190. package/bin/skills/lm-evaluation-harness/SKILL.md +490 -0
  191. package/bin/skills/lm-evaluation-harness/references/api-evaluation.md +490 -0
  192. package/bin/skills/lm-evaluation-harness/references/benchmark-guide.md +488 -0
  193. package/bin/skills/lm-evaluation-harness/references/custom-tasks.md +602 -0
  194. package/bin/skills/lm-evaluation-harness/references/distributed-eval.md +519 -0
  195. package/bin/skills/long-context/SKILL.md +536 -0
  196. package/bin/skills/long-context/references/extension_methods.md +468 -0
  197. package/bin/skills/long-context/references/fine_tuning.md +611 -0
  198. package/bin/skills/long-context/references/rope.md +402 -0
  199. package/bin/skills/mamba/SKILL.md +260 -0
  200. package/bin/skills/mamba/references/architecture-details.md +206 -0
  201. package/bin/skills/mamba/references/benchmarks.md +255 -0
  202. package/bin/skills/mamba/references/training-guide.md +388 -0
  203. package/bin/skills/megatron-core/SKILL.md +366 -0
  204. package/bin/skills/megatron-core/references/benchmarks.md +249 -0
  205. package/bin/skills/megatron-core/references/parallelism-guide.md +404 -0
  206. package/bin/skills/megatron-core/references/production-examples.md +473 -0
  207. package/bin/skills/megatron-core/references/training-recipes.md +547 -0
  208. package/bin/skills/miles/SKILL.md +315 -0
  209. package/bin/skills/miles/references/api-reference.md +141 -0
  210. package/bin/skills/miles/references/troubleshooting.md +352 -0
  211. package/bin/skills/mlflow/SKILL.md +704 -0
  212. package/bin/skills/mlflow/references/deployment.md +744 -0
  213. package/bin/skills/mlflow/references/model-registry.md +770 -0
  214. package/bin/skills/mlflow/references/tracking.md +680 -0
  215. package/bin/skills/modal/SKILL.md +341 -0
  216. package/bin/skills/modal/references/advanced-usage.md +503 -0
  217. package/bin/skills/modal/references/troubleshooting.md +494 -0
  218. package/bin/skills/model-merging/SKILL.md +539 -0
  219. package/bin/skills/model-merging/references/evaluation.md +462 -0
  220. package/bin/skills/model-merging/references/examples.md +428 -0
  221. package/bin/skills/model-merging/references/methods.md +352 -0
  222. package/bin/skills/model-pruning/SKILL.md +495 -0
  223. package/bin/skills/model-pruning/references/wanda.md +347 -0
  224. package/bin/skills/moe-training/SKILL.md +526 -0
  225. package/bin/skills/moe-training/references/architectures.md +432 -0
  226. package/bin/skills/moe-training/references/inference.md +348 -0
  227. package/bin/skills/moe-training/references/training.md +425 -0
  228. package/bin/skills/nanogpt/SKILL.md +290 -0
  229. package/bin/skills/nanogpt/references/architecture.md +382 -0
  230. package/bin/skills/nanogpt/references/data.md +476 -0
  231. package/bin/skills/nanogpt/references/training.md +564 -0
  232. package/bin/skills/nemo-curator/SKILL.md +383 -0
  233. package/bin/skills/nemo-curator/references/deduplication.md +87 -0
  234. package/bin/skills/nemo-curator/references/filtering.md +102 -0
  235. package/bin/skills/nemo-evaluator/SKILL.md +494 -0
  236. package/bin/skills/nemo-evaluator/references/adapter-system.md +340 -0
  237. package/bin/skills/nemo-evaluator/references/configuration.md +447 -0
  238. package/bin/skills/nemo-evaluator/references/custom-benchmarks.md +315 -0
  239. package/bin/skills/nemo-evaluator/references/execution-backends.md +361 -0
  240. package/bin/skills/nemo-guardrails/SKILL.md +297 -0
  241. package/bin/skills/nnsight/SKILL.md +436 -0
  242. package/bin/skills/nnsight/references/README.md +78 -0
  243. package/bin/skills/nnsight/references/api.md +344 -0
  244. package/bin/skills/nnsight/references/tutorials.md +300 -0
  245. package/bin/skills/openrlhf/SKILL.md +249 -0
  246. package/bin/skills/openrlhf/references/algorithm-comparison.md +404 -0
  247. package/bin/skills/openrlhf/references/custom-rewards.md +530 -0
  248. package/bin/skills/openrlhf/references/hybrid-engine.md +287 -0
  249. package/bin/skills/openrlhf/references/multi-node-training.md +454 -0
  250. package/bin/skills/outlines/SKILL.md +652 -0
  251. package/bin/skills/outlines/references/backends.md +615 -0
  252. package/bin/skills/outlines/references/examples.md +773 -0
  253. package/bin/skills/outlines/references/json_generation.md +652 -0
  254. package/bin/skills/peft/SKILL.md +431 -0
  255. package/bin/skills/peft/references/advanced-usage.md +514 -0
  256. package/bin/skills/peft/references/troubleshooting.md +480 -0
  257. package/bin/skills/phoenix/SKILL.md +475 -0
  258. package/bin/skills/phoenix/references/advanced-usage.md +619 -0
  259. package/bin/skills/phoenix/references/troubleshooting.md +538 -0
  260. package/bin/skills/pinecone/SKILL.md +358 -0
  261. package/bin/skills/pinecone/references/deployment.md +181 -0
  262. package/bin/skills/pytorch-fsdp/SKILL.md +126 -0
  263. package/bin/skills/pytorch-fsdp/references/index.md +7 -0
  264. package/bin/skills/pytorch-fsdp/references/other.md +4249 -0
  265. package/bin/skills/pytorch-lightning/SKILL.md +346 -0
  266. package/bin/skills/pytorch-lightning/references/callbacks.md +436 -0
  267. package/bin/skills/pytorch-lightning/references/distributed.md +490 -0
  268. package/bin/skills/pytorch-lightning/references/hyperparameter-tuning.md +556 -0
  269. package/bin/skills/pyvene/SKILL.md +473 -0
  270. package/bin/skills/pyvene/references/README.md +73 -0
  271. package/bin/skills/pyvene/references/api.md +383 -0
  272. package/bin/skills/pyvene/references/tutorials.md +376 -0
  273. package/bin/skills/qdrant/SKILL.md +493 -0
  274. package/bin/skills/qdrant/references/advanced-usage.md +648 -0
  275. package/bin/skills/qdrant/references/troubleshooting.md +631 -0
  276. package/bin/skills/ray-data/SKILL.md +326 -0
  277. package/bin/skills/ray-data/references/integration.md +82 -0
  278. package/bin/skills/ray-data/references/transformations.md +83 -0
  279. package/bin/skills/ray-train/SKILL.md +406 -0
  280. package/bin/skills/ray-train/references/multi-node.md +628 -0
  281. package/bin/skills/rwkv/SKILL.md +260 -0
  282. package/bin/skills/rwkv/references/architecture-details.md +344 -0
  283. package/bin/skills/rwkv/references/rwkv7.md +386 -0
  284. package/bin/skills/rwkv/references/state-management.md +369 -0
  285. package/bin/skills/saelens/SKILL.md +386 -0
  286. package/bin/skills/saelens/references/README.md +70 -0
  287. package/bin/skills/saelens/references/api.md +333 -0
  288. package/bin/skills/saelens/references/tutorials.md +318 -0
  289. package/bin/skills/segment-anything/SKILL.md +500 -0
  290. package/bin/skills/segment-anything/references/advanced-usage.md +589 -0
  291. package/bin/skills/segment-anything/references/troubleshooting.md +484 -0
  292. package/bin/skills/sentence-transformers/SKILL.md +255 -0
  293. package/bin/skills/sentence-transformers/references/models.md +123 -0
  294. package/bin/skills/sentencepiece/SKILL.md +235 -0
  295. package/bin/skills/sentencepiece/references/algorithms.md +200 -0
  296. package/bin/skills/sentencepiece/references/training.md +304 -0
  297. package/bin/skills/sglang/SKILL.md +442 -0
  298. package/bin/skills/sglang/references/deployment.md +490 -0
  299. package/bin/skills/sglang/references/radix-attention.md +413 -0
  300. package/bin/skills/sglang/references/structured-generation.md +541 -0
  301. package/bin/skills/simpo/SKILL.md +219 -0
  302. package/bin/skills/simpo/references/datasets.md +478 -0
  303. package/bin/skills/simpo/references/hyperparameters.md +452 -0
  304. package/bin/skills/simpo/references/loss-functions.md +350 -0
  305. package/bin/skills/skypilot/SKILL.md +509 -0
  306. package/bin/skills/skypilot/references/advanced-usage.md +491 -0
  307. package/bin/skills/skypilot/references/troubleshooting.md +570 -0
  308. package/bin/skills/slime/SKILL.md +464 -0
  309. package/bin/skills/slime/references/api-reference.md +392 -0
  310. package/bin/skills/slime/references/troubleshooting.md +386 -0
  311. package/bin/skills/speculative-decoding/SKILL.md +467 -0
  312. package/bin/skills/speculative-decoding/references/lookahead.md +309 -0
  313. package/bin/skills/speculative-decoding/references/medusa.md +350 -0
  314. package/bin/skills/stable-diffusion/SKILL.md +519 -0
  315. package/bin/skills/stable-diffusion/references/advanced-usage.md +716 -0
  316. package/bin/skills/stable-diffusion/references/troubleshooting.md +555 -0
  317. package/bin/skills/tensorboard/SKILL.md +629 -0
  318. package/bin/skills/tensorboard/references/integrations.md +638 -0
  319. package/bin/skills/tensorboard/references/profiling.md +545 -0
  320. package/bin/skills/tensorboard/references/visualization.md +620 -0
  321. package/bin/skills/tensorrt-llm/SKILL.md +187 -0
  322. package/bin/skills/tensorrt-llm/references/multi-gpu.md +298 -0
  323. package/bin/skills/tensorrt-llm/references/optimization.md +242 -0
  324. package/bin/skills/tensorrt-llm/references/serving.md +470 -0
  325. package/bin/skills/tinker/SKILL.md +362 -0
  326. package/bin/skills/tinker/references/api-reference.md +168 -0
  327. package/bin/skills/tinker/references/getting-started.md +157 -0
  328. package/bin/skills/tinker/references/loss-functions.md +163 -0
  329. package/bin/skills/tinker/references/models-and-lora.md +139 -0
  330. package/bin/skills/tinker/references/recipes.md +280 -0
  331. package/bin/skills/tinker/references/reinforcement-learning.md +212 -0
  332. package/bin/skills/tinker/references/rendering.md +243 -0
  333. package/bin/skills/tinker/references/supervised-learning.md +232 -0
  334. package/bin/skills/tinker-training-cost/SKILL.md +187 -0
  335. package/bin/skills/tinker-training-cost/scripts/calculate_cost.py +123 -0
  336. package/bin/skills/torchforge/SKILL.md +433 -0
  337. package/bin/skills/torchforge/references/api-reference.md +327 -0
  338. package/bin/skills/torchforge/references/troubleshooting.md +409 -0
  339. package/bin/skills/torchtitan/SKILL.md +358 -0
  340. package/bin/skills/torchtitan/references/checkpoint.md +181 -0
  341. package/bin/skills/torchtitan/references/custom-models.md +258 -0
  342. package/bin/skills/torchtitan/references/float8.md +133 -0
  343. package/bin/skills/torchtitan/references/fsdp.md +126 -0
  344. package/bin/skills/transformer-lens/SKILL.md +346 -0
  345. package/bin/skills/transformer-lens/references/README.md +54 -0
  346. package/bin/skills/transformer-lens/references/api.md +362 -0
  347. package/bin/skills/transformer-lens/references/tutorials.md +339 -0
  348. package/bin/skills/trl-fine-tuning/SKILL.md +455 -0
  349. package/bin/skills/trl-fine-tuning/references/dpo-variants.md +227 -0
  350. package/bin/skills/trl-fine-tuning/references/online-rl.md +82 -0
  351. package/bin/skills/trl-fine-tuning/references/reward-modeling.md +122 -0
  352. package/bin/skills/trl-fine-tuning/references/sft-training.md +168 -0
  353. package/bin/skills/unsloth/SKILL.md +80 -0
  354. package/bin/skills/unsloth/references/index.md +7 -0
  355. package/bin/skills/unsloth/references/llms-full.md +16799 -0
  356. package/bin/skills/unsloth/references/llms-txt.md +12044 -0
  357. package/bin/skills/unsloth/references/llms.md +82 -0
  358. package/bin/skills/verl/SKILL.md +391 -0
  359. package/bin/skills/verl/references/api-reference.md +301 -0
  360. package/bin/skills/verl/references/troubleshooting.md +391 -0
  361. package/bin/skills/vllm/SKILL.md +364 -0
  362. package/bin/skills/vllm/references/optimization.md +226 -0
  363. package/bin/skills/vllm/references/quantization.md +284 -0
  364. package/bin/skills/vllm/references/server-deployment.md +255 -0
  365. package/bin/skills/vllm/references/troubleshooting.md +447 -0
  366. package/bin/skills/weights-and-biases/SKILL.md +590 -0
  367. package/bin/skills/weights-and-biases/references/artifacts.md +584 -0
  368. package/bin/skills/weights-and-biases/references/integrations.md +700 -0
  369. package/bin/skills/weights-and-biases/references/sweeps.md +847 -0
  370. package/bin/skills/whisper/SKILL.md +317 -0
  371. package/bin/skills/whisper/references/languages.md +189 -0
  372. package/bin/synsc +0 -0
  373. package/package.json +10 -0
@@ -0,0 +1,700 @@
1
+ # Framework Integrations Guide
2
+
3
+ Complete guide to integrating W&B with popular ML frameworks.
4
+
5
+ ## Table of Contents
6
+ - HuggingFace Transformers
7
+ - PyTorch Lightning
8
+ - Keras/TensorFlow
9
+ - Fast.ai
10
+ - XGBoost/LightGBM
11
+ - PyTorch Native
12
+ - Custom Integrations
13
+
14
+ ## HuggingFace Transformers
15
+
16
+ ### Automatic Integration
17
+
18
+ ```python
19
+ from transformers import Trainer, TrainingArguments
20
+ import wandb
21
+
22
+ # Initialize W&B
23
+ wandb.init(project="hf-transformers", name="bert-finetuning")
24
+
25
+ # Training arguments with W&B
26
+ training_args = TrainingArguments(
27
+ output_dir="./results",
28
+ report_to="wandb", # Enable W&B logging
29
+ run_name="bert-base-finetuning",
30
+
31
+ # Training params
32
+ num_train_epochs=3,
33
+ per_device_train_batch_size=16,
34
+ per_device_eval_batch_size=64,
35
+ learning_rate=2e-5,
36
+
37
+ # Logging
38
+ logging_dir="./logs",
39
+ logging_steps=100,
40
+ logging_first_step=True,
41
+
42
+ # Evaluation
43
+ evaluation_strategy="steps",
44
+ eval_steps=500,
45
+ save_steps=500,
46
+
47
+ # Other
48
+ load_best_model_at_end=True,
49
+ metric_for_best_model="eval_accuracy"
50
+ )
51
+
52
+ # Trainer automatically logs to W&B
53
+ trainer = Trainer(
54
+ model=model,
55
+ args=training_args,
56
+ train_dataset=train_dataset,
57
+ eval_dataset=eval_dataset,
58
+ compute_metrics=compute_metrics
59
+ )
60
+
61
+ # Train (metrics logged automatically)
62
+ trainer.train()
63
+
64
+ # Finish W&B run
65
+ wandb.finish()
66
+ ```
67
+
68
+ ### Custom Logging
69
+
70
+ ```python
71
+ from transformers import Trainer, TrainingArguments
72
+ from transformers.integrations import WandbCallback
73
+ import wandb
74
+
75
+ class CustomWandbCallback(WandbCallback):
76
+ def on_evaluate(self, args, state, control, metrics=None, **kwargs):
77
+ super().on_evaluate(args, state, control, metrics, **kwargs)
78
+
79
+ # Log custom metrics
80
+ wandb.log({
81
+ "custom/eval_score": metrics["eval_accuracy"] * 100,
82
+ "custom/epoch": state.epoch
83
+ })
84
+
85
+ # Use custom callback
86
+ trainer = Trainer(
87
+ model=model,
88
+ args=training_args,
89
+ train_dataset=train_dataset,
90
+ eval_dataset=eval_dataset,
91
+ callbacks=[CustomWandbCallback()]
92
+ )
93
+ ```
94
+
95
+ ### Log Model to Registry
96
+
97
+ ```python
98
+ from transformers import Trainer, TrainingArguments
99
+
100
+ training_args = TrainingArguments(
101
+ output_dir="./results",
102
+ report_to="wandb",
103
+ load_best_model_at_end=True
104
+ )
105
+
106
+ trainer = Trainer(
107
+ model=model,
108
+ args=training_args,
109
+ train_dataset=train_dataset,
110
+ eval_dataset=eval_dataset
111
+ )
112
+
113
+ trainer.train()
114
+
115
+ # Save final model as artifact
116
+ model_artifact = wandb.Artifact(
117
+ 'hf-bert-model',
118
+ type='model',
119
+ description='BERT finetuned on sentiment analysis'
120
+ )
121
+
122
+ # Save model files
123
+ trainer.save_model("./final_model")
124
+ model_artifact.add_dir("./final_model")
125
+
126
+ # Log artifact
127
+ wandb.log_artifact(model_artifact, aliases=['best', 'production'])
128
+ wandb.finish()
129
+ ```
130
+
131
+ ## PyTorch Lightning
132
+
133
+ ### Basic Integration
134
+
135
+ ```python
136
+ import pytorch_lightning as pl
137
+ from pytorch_lightning.loggers import WandbLogger
138
+ import wandb
139
+
140
+ # Create W&B logger
141
+ wandb_logger = WandbLogger(
142
+ project="lightning-demo",
143
+ name="resnet50-training",
144
+ log_model=True, # Log model checkpoints as artifacts
145
+ save_code=True # Save code as artifact
146
+ )
147
+
148
+ # Lightning module
149
+ class LitModel(pl.LightningModule):
150
+ def __init__(self, learning_rate=0.001):
151
+ super().__init__()
152
+ self.save_hyperparameters()
153
+ self.model = create_model()
154
+
155
+ def training_step(self, batch, batch_idx):
156
+ x, y = batch
157
+ y_hat = self.model(x)
158
+ loss = F.cross_entropy(y_hat, y)
159
+
160
+ # Log metrics (automatically sent to W&B)
161
+ self.log('train/loss', loss, on_step=True, on_epoch=True)
162
+ self.log('train/accuracy', accuracy(y_hat, y), on_epoch=True)
163
+
164
+ return loss
165
+
166
+ def validation_step(self, batch, batch_idx):
167
+ x, y = batch
168
+ y_hat = self.model(x)
169
+ loss = F.cross_entropy(y_hat, y)
170
+
171
+ self.log('val/loss', loss, on_step=False, on_epoch=True)
172
+ self.log('val/accuracy', accuracy(y_hat, y), on_epoch=True)
173
+
174
+ return loss
175
+
176
+ def configure_optimizers(self):
177
+ return torch.optim.Adam(self.parameters(), lr=self.hparams.learning_rate)
178
+
179
+ # Trainer with W&B logger
180
+ trainer = pl.Trainer(
181
+ logger=wandb_logger,
182
+ max_epochs=10,
183
+ accelerator="gpu",
184
+ devices=1
185
+ )
186
+
187
+ # Train (metrics logged automatically)
188
+ trainer.fit(model, datamodule=dm)
189
+
190
+ # Finish W&B run
191
+ wandb.finish()
192
+ ```
193
+
194
+ ### Log Media
195
+
196
+ ```python
197
+ class LitModel(pl.LightningModule):
198
+ def validation_step(self, batch, batch_idx):
199
+ x, y = batch
200
+ y_hat = self.model(x)
201
+
202
+ # Log images (first batch only)
203
+ if batch_idx == 0:
204
+ self.logger.experiment.log({
205
+ "examples": [wandb.Image(img) for img in x[:8]]
206
+ })
207
+
208
+ return loss
209
+
210
+ def on_validation_epoch_end(self):
211
+ # Log confusion matrix
212
+ cm = compute_confusion_matrix(self.all_preds, self.all_targets)
213
+
214
+ self.logger.experiment.log({
215
+ "confusion_matrix": wandb.plot.confusion_matrix(
216
+ probs=None,
217
+ y_true=self.all_targets,
218
+ preds=self.all_preds,
219
+ class_names=self.class_names
220
+ )
221
+ })
222
+ ```
223
+
224
+ ### Hyperparameter Sweeps
225
+
226
+ ```python
227
+ import pytorch_lightning as pl
228
+ from pytorch_lightning.loggers import WandbLogger
229
+ import wandb
230
+
231
+ # Define sweep
232
+ sweep_config = {
233
+ 'method': 'bayes',
234
+ 'metric': {'name': 'val/accuracy', 'goal': 'maximize'},
235
+ 'parameters': {
236
+ 'learning_rate': {'min': 1e-5, 'max': 1e-2, 'distribution': 'log_uniform'},
237
+ 'batch_size': {'values': [16, 32, 64]},
238
+ 'hidden_size': {'values': [128, 256, 512]}
239
+ }
240
+ }
241
+
242
+ sweep_id = wandb.sweep(sweep_config, project="lightning-sweeps")
243
+
244
+ def train():
245
+ # Initialize W&B
246
+ run = wandb.init()
247
+
248
+ # Get hyperparameters
249
+ config = wandb.config
250
+
251
+ # Create logger
252
+ wandb_logger = WandbLogger()
253
+
254
+ # Create model with sweep params
255
+ model = LitModel(
256
+ learning_rate=config.learning_rate,
257
+ hidden_size=config.hidden_size
258
+ )
259
+
260
+ # Create datamodule with sweep batch size
261
+ dm = DataModule(batch_size=config.batch_size)
262
+
263
+ # Train
264
+ trainer = pl.Trainer(logger=wandb_logger, max_epochs=10)
265
+ trainer.fit(model, dm)
266
+
267
+ # Run sweep
268
+ wandb.agent(sweep_id, function=train, count=30)
269
+ ```
270
+
271
+ ## Keras/TensorFlow
272
+
273
+ ### With Callback
274
+
275
+ ```python
276
+ import tensorflow as tf
277
+ from wandb.keras import WandbCallback
278
+ import wandb
279
+
280
+ # Initialize W&B
281
+ wandb.init(
282
+ project="keras-demo",
283
+ config={
284
+ "learning_rate": 0.001,
285
+ "epochs": 10,
286
+ "batch_size": 32
287
+ }
288
+ )
289
+
290
+ config = wandb.config
291
+
292
+ # Build model
293
+ model = tf.keras.Sequential([
294
+ tf.keras.layers.Dense(128, activation='relu'),
295
+ tf.keras.layers.Dropout(0.2),
296
+ tf.keras.layers.Dense(10, activation='softmax')
297
+ ])
298
+
299
+ model.compile(
300
+ optimizer=tf.keras.optimizers.Adam(config.learning_rate),
301
+ loss='sparse_categorical_crossentropy',
302
+ metrics=['accuracy']
303
+ )
304
+
305
+ # Train with W&B callback
306
+ history = model.fit(
307
+ x_train, y_train,
308
+ validation_data=(x_val, y_val),
309
+ epochs=config.epochs,
310
+ batch_size=config.batch_size,
311
+ callbacks=[
312
+ WandbCallback(
313
+ log_weights=True, # Log model weights
314
+ log_gradients=True, # Log gradients
315
+ training_data=(x_train, y_train),
316
+ validation_data=(x_val, y_val),
317
+ labels=class_names
318
+ )
319
+ ]
320
+ )
321
+
322
+ # Save model as artifact
323
+ model.save('model.h5')
324
+ artifact = wandb.Artifact('keras-model', type='model')
325
+ artifact.add_file('model.h5')
326
+ wandb.log_artifact(artifact)
327
+
328
+ wandb.finish()
329
+ ```
330
+
331
+ ### Custom Training Loop
332
+
333
+ ```python
334
+ import tensorflow as tf
335
+ import wandb
336
+
337
+ wandb.init(project="tf-custom-loop")
338
+
339
+ # Model, optimizer, loss
340
+ model = create_model()
341
+ optimizer = tf.keras.optimizers.Adam(1e-3)
342
+ loss_fn = tf.keras.losses.SparseCategoricalCrossentropy()
343
+
344
+ # Metrics
345
+ train_loss = tf.keras.metrics.Mean(name='train_loss')
346
+ train_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='train_accuracy')
347
+
348
+ @tf.function
349
+ def train_step(x, y):
350
+ with tf.GradientTape() as tape:
351
+ predictions = model(x, training=True)
352
+ loss = loss_fn(y, predictions)
353
+
354
+ gradients = tape.gradient(loss, model.trainable_variables)
355
+ optimizer.apply_gradients(zip(gradients, model.trainable_variables))
356
+
357
+ train_loss(loss)
358
+ train_accuracy(y, predictions)
359
+
360
+ # Training loop
361
+ for epoch in range(EPOCHS):
362
+ train_loss.reset_states()
363
+ train_accuracy.reset_states()
364
+
365
+ for step, (x, y) in enumerate(train_dataset):
366
+ train_step(x, y)
367
+
368
+ # Log every 100 steps
369
+ if step % 100 == 0:
370
+ wandb.log({
371
+ 'train/loss': train_loss.result().numpy(),
372
+ 'train/accuracy': train_accuracy.result().numpy(),
373
+ 'epoch': epoch,
374
+ 'step': step
375
+ })
376
+
377
+ # Log epoch metrics
378
+ wandb.log({
379
+ 'epoch/train_loss': train_loss.result().numpy(),
380
+ 'epoch/train_accuracy': train_accuracy.result().numpy(),
381
+ 'epoch': epoch
382
+ })
383
+
384
+ wandb.finish()
385
+ ```
386
+
387
+ ## Fast.ai
388
+
389
+ ### With Callback
390
+
391
+ ```python
392
+ from fastai.vision.all import *
393
+ from fastai.callback.wandb import *
394
+ import wandb
395
+
396
+ # Initialize W&B
397
+ wandb.init(project="fastai-demo")
398
+
399
+ # Create data loaders
400
+ dls = ImageDataLoaders.from_folder(
401
+ path,
402
+ train='train',
403
+ valid='valid',
404
+ bs=64
405
+ )
406
+
407
+ # Create learner with W&B callback
408
+ learn = vision_learner(
409
+ dls,
410
+ resnet34,
411
+ metrics=accuracy,
412
+ cbs=WandbCallback(
413
+ log_preds=True, # Log predictions
414
+ log_model=True, # Log model as artifact
415
+ log_dataset=True # Log dataset as artifact
416
+ )
417
+ )
418
+
419
+ # Train (metrics logged automatically)
420
+ learn.fine_tune(5)
421
+
422
+ wandb.finish()
423
+ ```
424
+
425
+ ## XGBoost/LightGBM
426
+
427
+ ### XGBoost
428
+
429
+ ```python
430
+ import xgboost as xgb
431
+ import wandb
432
+
433
+ # Initialize W&B
434
+ run = wandb.init(project="xgboost-demo", config={
435
+ "max_depth": 6,
436
+ "learning_rate": 0.1,
437
+ "n_estimators": 100
438
+ })
439
+
440
+ config = wandb.config
441
+
442
+ # Create DMatrix
443
+ dtrain = xgb.DMatrix(X_train, label=y_train)
444
+ dval = xgb.DMatrix(X_val, label=y_val)
445
+
446
+ # XGBoost params
447
+ params = {
448
+ 'max_depth': config.max_depth,
449
+ 'learning_rate': config.learning_rate,
450
+ 'objective': 'binary:logistic',
451
+ 'eval_metric': ['logloss', 'auc']
452
+ }
453
+
454
+ # Custom callback for W&B
455
+ def wandb_callback(env):
456
+ """Log XGBoost metrics to W&B."""
457
+ for metric_name, metric_value in env.evaluation_result_list:
458
+ wandb.log({
459
+ f"{metric_name}": metric_value,
460
+ "iteration": env.iteration
461
+ })
462
+
463
+ # Train with callback
464
+ model = xgb.train(
465
+ params,
466
+ dtrain,
467
+ num_boost_round=config.n_estimators,
468
+ evals=[(dtrain, 'train'), (dval, 'val')],
469
+ callbacks=[wandb_callback],
470
+ verbose_eval=10
471
+ )
472
+
473
+ # Save model
474
+ model.save_model('xgboost_model.json')
475
+ artifact = wandb.Artifact('xgboost-model', type='model')
476
+ artifact.add_file('xgboost_model.json')
477
+ wandb.log_artifact(artifact)
478
+
479
+ wandb.finish()
480
+ ```
481
+
482
+ ### LightGBM
483
+
484
+ ```python
485
+ import lightgbm as lgb
486
+ import wandb
487
+
488
+ run = wandb.init(project="lgbm-demo")
489
+
490
+ # Create datasets
491
+ train_data = lgb.Dataset(X_train, label=y_train)
492
+ val_data = lgb.Dataset(X_val, label=y_val, reference=train_data)
493
+
494
+ # Parameters
495
+ params = {
496
+ 'objective': 'binary',
497
+ 'metric': ['binary_logloss', 'auc'],
498
+ 'learning_rate': 0.1,
499
+ 'num_leaves': 31
500
+ }
501
+
502
+ # Custom callback
503
+ def log_to_wandb(env):
504
+ """Log LightGBM metrics to W&B."""
505
+ for entry in env.evaluation_result_list:
506
+ dataset_name, metric_name, metric_value, _ = entry
507
+ wandb.log({
508
+ f"{dataset_name}/{metric_name}": metric_value,
509
+ "iteration": env.iteration
510
+ })
511
+
512
+ # Train
513
+ model = lgb.train(
514
+ params,
515
+ train_data,
516
+ num_boost_round=100,
517
+ valid_sets=[train_data, val_data],
518
+ valid_names=['train', 'val'],
519
+ callbacks=[log_to_wandb]
520
+ )
521
+
522
+ # Save model
523
+ model.save_model('lgbm_model.txt')
524
+ artifact = wandb.Artifact('lgbm-model', type='model')
525
+ artifact.add_file('lgbm_model.txt')
526
+ wandb.log_artifact(artifact)
527
+
528
+ wandb.finish()
529
+ ```
530
+
531
+ ## PyTorch Native
532
+
533
+ ### Training Loop Integration
534
+
535
+ ```python
536
+ import torch
537
+ import torch.nn as nn
538
+ import torch.optim as optim
539
+ import wandb
540
+
541
+ # Initialize W&B
542
+ wandb.init(project="pytorch-native", config={
543
+ "learning_rate": 0.001,
544
+ "epochs": 10,
545
+ "batch_size": 32
546
+ })
547
+
548
+ config = wandb.config
549
+
550
+ # Model, loss, optimizer
551
+ model = create_model()
552
+ criterion = nn.CrossEntropyLoss()
553
+ optimizer = optim.Adam(model.parameters(), lr=config.learning_rate)
554
+
555
+ # Watch model (logs gradients and parameters)
556
+ wandb.watch(model, criterion, log="all", log_freq=100)
557
+
558
+ # Training loop
559
+ for epoch in range(config.epochs):
560
+ model.train()
561
+ train_loss = 0.0
562
+ correct = 0
563
+ total = 0
564
+
565
+ for batch_idx, (data, target) in enumerate(train_loader):
566
+ data, target = data.to(device), target.to(device)
567
+
568
+ # Forward pass
569
+ optimizer.zero_grad()
570
+ output = model(data)
571
+ loss = criterion(output, target)
572
+
573
+ # Backward pass
574
+ loss.backward()
575
+ optimizer.step()
576
+
577
+ # Track metrics
578
+ train_loss += loss.item()
579
+ _, predicted = output.max(1)
580
+ total += target.size(0)
581
+ correct += predicted.eq(target).sum().item()
582
+
583
+ # Log every 100 batches
584
+ if batch_idx % 100 == 0:
585
+ wandb.log({
586
+ 'train/loss': loss.item(),
587
+ 'train/batch_accuracy': 100. * correct / total,
588
+ 'epoch': epoch,
589
+ 'batch': batch_idx
590
+ })
591
+
592
+ # Validation
593
+ model.eval()
594
+ val_loss = 0.0
595
+ val_correct = 0
596
+ val_total = 0
597
+
598
+ with torch.no_grad():
599
+ for data, target in val_loader:
600
+ data, target = data.to(device), target.to(device)
601
+ output = model(data)
602
+ loss = criterion(output, target)
603
+
604
+ val_loss += loss.item()
605
+ _, predicted = output.max(1)
606
+ val_total += target.size(0)
607
+ val_correct += predicted.eq(target).sum().item()
608
+
609
+ # Log epoch metrics
610
+ wandb.log({
611
+ 'epoch/train_loss': train_loss / len(train_loader),
612
+ 'epoch/train_accuracy': 100. * correct / total,
613
+ 'epoch/val_loss': val_loss / len(val_loader),
614
+ 'epoch/val_accuracy': 100. * val_correct / val_total,
615
+ 'epoch': epoch
616
+ })
617
+
618
+ # Save final model
619
+ torch.save(model.state_dict(), 'model.pth')
620
+ artifact = wandb.Artifact('final-model', type='model')
621
+ artifact.add_file('model.pth')
622
+ wandb.log_artifact(artifact)
623
+
624
+ wandb.finish()
625
+ ```
626
+
627
+ ## Custom Integrations
628
+
629
+ ### Generic Framework Integration
630
+
631
+ ```python
632
+ import wandb
633
+
634
+ class WandbIntegration:
635
+ """Generic W&B integration wrapper."""
636
+
637
+ def __init__(self, project, config):
638
+ self.run = wandb.init(project=project, config=config)
639
+ self.config = wandb.config
640
+ self.step = 0
641
+
642
+ def log_metrics(self, metrics, step=None):
643
+ """Log training metrics."""
644
+ if step is None:
645
+ step = self.step
646
+ self.step += 1
647
+
648
+ wandb.log(metrics, step=step)
649
+
650
+ def log_images(self, images, caption=""):
651
+ """Log images."""
652
+ wandb.log({
653
+ caption: [wandb.Image(img) for img in images]
654
+ })
655
+
656
+ def log_table(self, data, columns):
657
+ """Log tabular data."""
658
+ table = wandb.Table(columns=columns, data=data)
659
+ wandb.log({"table": table})
660
+
661
+ def save_model(self, model_path, metadata=None):
662
+ """Save model as artifact."""
663
+ artifact = wandb.Artifact(
664
+ 'model',
665
+ type='model',
666
+ metadata=metadata or {}
667
+ )
668
+ artifact.add_file(model_path)
669
+ self.run.log_artifact(artifact)
670
+
671
+ def finish(self):
672
+ """Finish W&B run."""
673
+ wandb.finish()
674
+
675
+ # Usage
676
+ wb = WandbIntegration(project="my-project", config={"lr": 0.001})
677
+
678
+ # Training loop
679
+ for epoch in range(10):
680
+ # Your training code
681
+ loss, accuracy = train_epoch()
682
+
683
+ # Log metrics
684
+ wb.log_metrics({
685
+ 'train/loss': loss,
686
+ 'train/accuracy': accuracy
687
+ })
688
+
689
+ # Save model
690
+ wb.save_model('model.pth', metadata={'accuracy': 0.95})
691
+ wb.finish()
692
+ ```
693
+
694
+ ## Resources
695
+
696
+ - **Integrations Guide**: https://docs.wandb.ai/guides/integrations
697
+ - **HuggingFace**: https://docs.wandb.ai/guides/integrations/huggingface
698
+ - **PyTorch Lightning**: https://docs.wandb.ai/guides/integrations/lightning
699
+ - **Keras**: https://docs.wandb.ai/guides/integrations/keras
700
+ - **Examples**: https://github.com/wandb/examples