@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,674 @@
1
+ # Comprehensive Constraint Patterns
2
+
3
+ Guide to regex constraints, grammar-based generation, and token healing in Guidance.
4
+
5
+ ## Table of Contents
6
+ - Regex Constraints
7
+ - Grammar-Based Generation
8
+ - Token Healing
9
+ - Selection Constraints
10
+ - Complex Patterns
11
+ - Performance Optimization
12
+
13
+ ## Regex Constraints
14
+
15
+ ### Basic Patterns
16
+
17
+ #### Numeric Constraints
18
+
19
+ ```python
20
+ from guidance import models, gen
21
+
22
+ lm = models.Anthropic("claude-sonnet-4-5-20250929")
23
+
24
+ # Integer (positive)
25
+ lm += "Age: " + gen("age", regex=r"[0-9]+")
26
+
27
+ # Integer (with negatives)
28
+ lm += "Temperature: " + gen("temp", regex=r"-?[0-9]+")
29
+
30
+ # Float (positive)
31
+ lm += "Price: $" + gen("price", regex=r"[0-9]+\.[0-9]{2}")
32
+
33
+ # Float (with negatives and optional decimals)
34
+ lm += "Value: " + gen("value", regex=r"-?[0-9]+(\.[0-9]+)?")
35
+
36
+ # Percentage (0-100)
37
+ lm += "Progress: " + gen("progress", regex=r"(100|[0-9]{1,2})")
38
+
39
+ # Range (1-5 stars)
40
+ lm += "Rating: " + gen("rating", regex=r"[1-5]") + " stars"
41
+ ```
42
+
43
+ #### Text Constraints
44
+
45
+ ```python
46
+ # Alphabetic only
47
+ lm += "Name: " + gen("name", regex=r"[A-Za-z]+")
48
+
49
+ # Alphabetic with spaces
50
+ lm += "Full Name: " + gen("full_name", regex=r"[A-Za-z ]+")
51
+
52
+ # Alphanumeric
53
+ lm += "Username: " + gen("username", regex=r"[A-Za-z0-9_]+")
54
+
55
+ # Capitalized words
56
+ lm += "Title: " + gen("title", regex=r"[A-Z][a-z]+( [A-Z][a-z]+)*")
57
+
58
+ # Lowercase only
59
+ lm += "Code: " + gen("code", regex=r"[a-z0-9-]+")
60
+
61
+ # Specific length
62
+ lm += "ID: " + gen("id", regex=r"[A-Z]{3}-[0-9]{6}") # e.g., "ABC-123456"
63
+ ```
64
+
65
+ #### Date and Time Constraints
66
+
67
+ ```python
68
+ # Date (YYYY-MM-DD)
69
+ lm += "Date: " + gen("date", regex=r"\d{4}-\d{2}-\d{2}")
70
+
71
+ # Date (MM/DD/YYYY)
72
+ lm += "Date: " + gen("date_us", regex=r"\d{2}/\d{2}/\d{4}")
73
+
74
+ # Time (HH:MM)
75
+ lm += "Time: " + gen("time", regex=r"\d{2}:\d{2}")
76
+
77
+ # Time (HH:MM:SS)
78
+ lm += "Time: " + gen("time_full", regex=r"\d{2}:\d{2}:\d{2}")
79
+
80
+ # ISO 8601 datetime
81
+ lm += "Timestamp: " + gen(
82
+ "timestamp",
83
+ regex=r"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z"
84
+ )
85
+
86
+ # Year (YYYY)
87
+ lm += "Year: " + gen("year", regex=r"(19|20)\d{2}")
88
+
89
+ # Month name
90
+ lm += "Month: " + gen(
91
+ "month",
92
+ regex=r"(January|February|March|April|May|June|July|August|September|October|November|December)"
93
+ )
94
+ ```
95
+
96
+ #### Contact Information
97
+
98
+ ```python
99
+ # Email
100
+ lm += "Email: " + gen(
101
+ "email",
102
+ regex=r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
103
+ )
104
+
105
+ # Phone (US format)
106
+ lm += "Phone: " + gen("phone", regex=r"\d{3}-\d{3}-\d{4}")
107
+
108
+ # Phone (international format)
109
+ lm += "Phone: " + gen("phone_intl", regex=r"\+[0-9]{1,3}-[0-9]{1,14}")
110
+
111
+ # ZIP code (US)
112
+ lm += "ZIP: " + gen("zip", regex=r"\d{5}(-\d{4})?")
113
+
114
+ # Postal code (Canada)
115
+ lm += "Postal: " + gen("postal", regex=r"[A-Z]\d[A-Z] \d[A-Z]\d")
116
+
117
+ # URL
118
+ lm += "URL: " + gen(
119
+ "url",
120
+ regex=r"https?://[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(/[a-zA-Z0-9._~:/?#\[\]@!$&'()*+,;=-]*)?"
121
+ )
122
+ ```
123
+
124
+ ### Advanced Patterns
125
+
126
+ #### JSON Field Constraints
127
+
128
+ ```python
129
+ from guidance import models, gen
130
+
131
+ lm = models.Anthropic("claude-sonnet-4-5-20250929")
132
+
133
+ # String field with quotes
134
+ lm += '"name": ' + gen("name", regex=r'"[A-Za-z ]+"')
135
+
136
+ # Numeric field (no quotes)
137
+ lm += '"age": ' + gen("age", regex=r"[0-9]+")
138
+
139
+ # Boolean field
140
+ lm += '"active": ' + gen("active", regex=r"(true|false)")
141
+
142
+ # Null field
143
+ lm += '"optional": ' + gen("optional", regex=r"(null|[0-9]+)")
144
+
145
+ # Array of strings
146
+ lm += '"tags": [' + gen(
147
+ "tags",
148
+ regex=r'"[a-z]+"(, "[a-z]+")*'
149
+ ) + ']'
150
+
151
+ # Complete JSON object
152
+ lm += """{
153
+ "name": """ + gen("name", regex=r'"[A-Za-z ]+"') + """,
154
+ "age": """ + gen("age", regex=r"[0-9]+") + """,
155
+ "email": """ + gen(
156
+ "email",
157
+ regex=r'"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"'
158
+ ) + """
159
+ }"""
160
+ ```
161
+
162
+ #### Code Patterns
163
+
164
+ ```python
165
+ # Python variable name
166
+ lm += "Variable: " + gen("var", regex=r"[a-z_][a-z0-9_]*")
167
+
168
+ # Python function name
169
+ lm += "Function: " + gen("func", regex=r"[a-z_][a-z0-9_]*")
170
+
171
+ # Hex color code
172
+ lm += "Color: #" + gen("color", regex=r"[0-9A-Fa-f]{6}")
173
+
174
+ # UUID
175
+ lm += "UUID: " + gen(
176
+ "uuid",
177
+ regex=r"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
178
+ )
179
+
180
+ # Git commit hash (short)
181
+ lm += "Commit: " + gen("commit", regex=r"[0-9a-f]{7}")
182
+
183
+ # Semantic version
184
+ lm += "Version: " + gen("version", regex=r"[0-9]+\.[0-9]+\.[0-9]+")
185
+
186
+ # IP address (IPv4)
187
+ lm += "IP: " + gen(
188
+ "ip",
189
+ regex=r"((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"
190
+ )
191
+ ```
192
+
193
+ #### Domain-Specific Patterns
194
+
195
+ ```python
196
+ # Credit card number
197
+ lm += "Card: " + gen("card", regex=r"\d{4}-\d{4}-\d{4}-\d{4}")
198
+
199
+ # Social Security Number (US)
200
+ lm += "SSN: " + gen("ssn", regex=r"\d{3}-\d{2}-\d{4}")
201
+
202
+ # ISBN-13
203
+ lm += "ISBN: " + gen("isbn", regex=r"978-\d{1,5}-\d{1,7}-\d{1,7}-\d")
204
+
205
+ # License plate (US)
206
+ lm += "Plate: " + gen("plate", regex=r"[A-Z]{3}-\d{4}")
207
+
208
+ # Currency amount
209
+ lm += "Amount: $" + gen("amount", regex=r"[0-9]{1,3}(,[0-9]{3})*\.[0-9]{2}")
210
+
211
+ # Percentage with decimal
212
+ lm += "Rate: " + gen("rate", regex=r"[0-9]+\.[0-9]{1,2}%")
213
+ ```
214
+
215
+ ## Grammar-Based Generation
216
+
217
+ ### JSON Grammar
218
+
219
+ ```python
220
+ from guidance import models, gen, guidance
221
+
222
+ @guidance
223
+ def json_object(lm):
224
+ """Generate valid JSON object."""
225
+ lm += "{\n"
226
+
227
+ # Name field (required)
228
+ lm += ' "name": ' + gen("name", regex=r'"[A-Za-z ]+"') + ",\n"
229
+
230
+ # Age field (required)
231
+ lm += ' "age": ' + gen("age", regex=r"[0-9]+") + ",\n"
232
+
233
+ # Email field (required)
234
+ lm += ' "email": ' + gen(
235
+ "email",
236
+ regex=r'"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"'
237
+ ) + ",\n"
238
+
239
+ # Active field (required, boolean)
240
+ lm += ' "active": ' + gen("active", regex=r"(true|false)") + "\n"
241
+
242
+ lm += "}"
243
+ return lm
244
+
245
+ lm = models.Anthropic("claude-sonnet-4-5-20250929")
246
+ lm = json_object(lm)
247
+ print(lm) # Valid JSON guaranteed
248
+ ```
249
+
250
+ ### Nested JSON Grammar
251
+
252
+ ```python
253
+ @guidance
254
+ def nested_json(lm):
255
+ """Generate nested JSON structure."""
256
+ lm += "{\n"
257
+
258
+ # User object
259
+ lm += ' "user": {\n'
260
+ lm += ' "name": ' + gen("name", regex=r'"[A-Za-z ]+"') + ",\n"
261
+ lm += ' "age": ' + gen("age", regex=r"[0-9]+") + "\n"
262
+ lm += " },\n"
263
+
264
+ # Address object
265
+ lm += ' "address": {\n'
266
+ lm += ' "street": ' + gen("street", regex=r'"[A-Za-z0-9 ]+"') + ",\n"
267
+ lm += ' "city": ' + gen("city", regex=r'"[A-Za-z ]+"') + ",\n"
268
+ lm += ' "zip": ' + gen("zip", regex=r'"\d{5}"') + "\n"
269
+ lm += " }\n"
270
+
271
+ lm += "}"
272
+ return lm
273
+ ```
274
+
275
+ ### Array Grammar
276
+
277
+ ```python
278
+ @guidance
279
+ def json_array(lm, count=3):
280
+ """Generate JSON array with fixed count."""
281
+ lm += "[\n"
282
+
283
+ for i in range(count):
284
+ lm += " {\n"
285
+ lm += ' "id": ' + gen(f"id_{i}", regex=r"[0-9]+") + ",\n"
286
+ lm += ' "name": ' + gen(f"name_{i}", regex=r'"[A-Za-z ]+"') + "\n"
287
+ lm += " }"
288
+ if i < count - 1:
289
+ lm += ","
290
+ lm += "\n"
291
+
292
+ lm += "]"
293
+ return lm
294
+ ```
295
+
296
+ ### XML Grammar
297
+
298
+ ```python
299
+ @guidance
300
+ def xml_document(lm):
301
+ """Generate valid XML document."""
302
+ lm += '<?xml version="1.0"?>\n'
303
+ lm += "<person>\n"
304
+
305
+ # Name element
306
+ lm += " <name>" + gen("name", regex=r"[A-Za-z ]+") + "</name>\n"
307
+
308
+ # Age element
309
+ lm += " <age>" + gen("age", regex=r"[0-9]+") + "</age>\n"
310
+
311
+ # Email element
312
+ lm += " <email>" + gen(
313
+ "email",
314
+ regex=r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
315
+ ) + "</email>\n"
316
+
317
+ lm += "</person>"
318
+ return lm
319
+ ```
320
+
321
+ ### CSV Grammar
322
+
323
+ ```python
324
+ @guidance
325
+ def csv_row(lm):
326
+ """Generate CSV row."""
327
+ lm += gen("name", regex=r"[A-Za-z ]+") + ","
328
+ lm += gen("age", regex=r"[0-9]+") + ","
329
+ lm += gen("email", regex=r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}")
330
+ return lm
331
+
332
+ @guidance
333
+ def csv_document(lm, rows=5):
334
+ """Generate complete CSV."""
335
+ # Header
336
+ lm += "Name,Age,Email\n"
337
+
338
+ # Rows
339
+ for i in range(rows):
340
+ lm = csv_row(lm)
341
+ if i < rows - 1:
342
+ lm += "\n"
343
+
344
+ return lm
345
+ ```
346
+
347
+ ## Token Healing
348
+
349
+ ### How Token Healing Works
350
+
351
+ **Problem:** Tokenization creates unnatural boundaries.
352
+
353
+ ```python
354
+ # Example without token healing
355
+ prompt = "The capital of France is "
356
+ # Tokenization: ["The", " capital", " of", " France", " is", " "]
357
+ # Model sees last token: " "
358
+ # First generated token might include leading space: " Paris"
359
+ # Result: "The capital of France is Paris" (double space)
360
+ ```
361
+
362
+ **Solution:** Guidance backs up and regenerates the last token.
363
+
364
+ ```python
365
+ from guidance import models, gen
366
+
367
+ lm = models.Anthropic("claude-sonnet-4-5-20250929")
368
+
369
+ # Token healing enabled by default
370
+ lm += "The capital of France is " + gen("capital", max_tokens=5)
371
+
372
+ # Process:
373
+ # 1. Back up to token before " is "
374
+ # 2. Regenerate " is" + "capital" together
375
+ # 3. Result: "The capital of France is Paris" (correct)
376
+ ```
377
+
378
+ ### Token Healing Examples
379
+
380
+ #### Natural Continuations
381
+
382
+ ```python
383
+ # Before token healing
384
+ lm += "The function name is get" + gen("rest")
385
+ # Might generate: "The function name is get User" (space before User)
386
+
387
+ # With token healing
388
+ lm += "The function name is get" + gen("rest")
389
+ # Generates: "The function name is getUser" (correct camelCase)
390
+ ```
391
+
392
+ #### Code Generation
393
+
394
+ ```python
395
+ # Function name completion
396
+ lm += "def calculate_" + gen("rest", stop="(")
397
+ # Token healing ensures smooth connection: "calculate_total"
398
+
399
+ # Variable name completion
400
+ lm += "my_" + gen("var_name", regex=r"[a-z_]+")
401
+ # Token healing ensures: "my_variable_name" (not "my_ variable_name")
402
+ ```
403
+
404
+ #### Domain-Specific Terms
405
+
406
+ ```python
407
+ # Medical terms
408
+ lm += "The patient has hyper" + gen("condition")
409
+ # Token healing helps: "hypertension" (not "hyper tension")
410
+
411
+ # Technical terms
412
+ lm += "Using micro" + gen("tech")
413
+ # Token healing helps: "microservices" (not "micro services")
414
+ ```
415
+
416
+ ### Disabling Token Healing
417
+
418
+ ```python
419
+ # Disable token healing if needed (rare)
420
+ lm += gen("text", token_healing=False)
421
+ ```
422
+
423
+ ## Selection Constraints
424
+
425
+ ### Basic Selection
426
+
427
+ ```python
428
+ from guidance import models, select
429
+
430
+ lm = models.Anthropic("claude-sonnet-4-5-20250929")
431
+
432
+ # Simple selection
433
+ lm += "Status: " + select(["active", "inactive", "pending"], name="status")
434
+
435
+ # Boolean selection
436
+ lm += "Approved: " + select(["Yes", "No"], name="approved")
437
+
438
+ # Multiple choice
439
+ lm += "Answer: " + select(
440
+ ["A) Paris", "B) London", "C) Berlin", "D) Madrid"],
441
+ name="answer"
442
+ )
443
+ ```
444
+
445
+ ### Conditional Selection
446
+
447
+ ```python
448
+ from guidance import models, select, gen, guidance
449
+
450
+ @guidance
451
+ def conditional_fields(lm):
452
+ """Generate fields conditionally based on type."""
453
+ lm += "Type: " + select(["person", "company"], name="type")
454
+
455
+ if lm["type"] == "person":
456
+ lm += "\nName: " + gen("name", regex=r"[A-Za-z ]+")
457
+ lm += "\nAge: " + gen("age", regex=r"[0-9]+")
458
+ else:
459
+ lm += "\nCompany Name: " + gen("company", regex=r"[A-Za-z ]+")
460
+ lm += "\nEmployees: " + gen("employees", regex=r"[0-9]+")
461
+
462
+ return lm
463
+ ```
464
+
465
+ ### Repeated Selection
466
+
467
+ ```python
468
+ @guidance
469
+ def multiple_selections(lm):
470
+ """Select multiple items."""
471
+ lm += "Select 3 colors:\n"
472
+
473
+ colors = ["red", "blue", "green", "yellow", "purple"]
474
+
475
+ for i in range(3):
476
+ lm += f"{i+1}. " + select(colors, name=f"color_{i}") + "\n"
477
+
478
+ return lm
479
+ ```
480
+
481
+ ## Complex Patterns
482
+
483
+ ### Pattern 1: Structured Forms
484
+
485
+ ```python
486
+ @guidance
487
+ def user_form(lm):
488
+ """Generate structured user form."""
489
+ lm += "=== User Registration ===\n\n"
490
+
491
+ # Name (alphabetic only)
492
+ lm += "Full Name: " + gen("name", regex=r"[A-Za-z ]+", stop="\n") + "\n"
493
+
494
+ # Age (numeric)
495
+ lm += "Age: " + gen("age", regex=r"[0-9]+", max_tokens=3) + "\n"
496
+
497
+ # Email (validated format)
498
+ lm += "Email: " + gen(
499
+ "email",
500
+ regex=r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}",
501
+ stop="\n"
502
+ ) + "\n"
503
+
504
+ # Phone (US format)
505
+ lm += "Phone: " + gen("phone", regex=r"\d{3}-\d{3}-\d{4}") + "\n"
506
+
507
+ # Account type (selection)
508
+ lm += "Account Type: " + select(
509
+ ["Standard", "Premium", "Enterprise"],
510
+ name="account_type"
511
+ ) + "\n"
512
+
513
+ # Active status (boolean)
514
+ lm += "Active: " + select(["Yes", "No"], name="active") + "\n"
515
+
516
+ return lm
517
+ ```
518
+
519
+ ### Pattern 2: Multi-Entity Extraction
520
+
521
+ ```python
522
+ @guidance
523
+ def extract_entities(lm, text):
524
+ """Extract multiple entities with constraints."""
525
+ lm += f"Text: {text}\n\n"
526
+
527
+ # Person name (alphabetic)
528
+ lm += "Person: " + gen("person", regex=r"[A-Za-z ]+", stop="\n") + "\n"
529
+
530
+ # Organization (alphanumeric with spaces)
531
+ lm += "Organization: " + gen(
532
+ "organization",
533
+ regex=r"[A-Za-z0-9 ]+",
534
+ stop="\n"
535
+ ) + "\n"
536
+
537
+ # Date (YYYY-MM-DD format)
538
+ lm += "Date: " + gen("date", regex=r"\d{4}-\d{2}-\d{2}") + "\n"
539
+
540
+ # Location (alphabetic with spaces)
541
+ lm += "Location: " + gen("location", regex=r"[A-Za-z ]+", stop="\n") + "\n"
542
+
543
+ # Amount (currency)
544
+ lm += "Amount: $" + gen("amount", regex=r"[0-9,]+\.[0-9]{2}") + "\n"
545
+
546
+ return lm
547
+ ```
548
+
549
+ ### Pattern 3: Code Generation
550
+
551
+ ```python
552
+ @guidance
553
+ def generate_python_function(lm):
554
+ """Generate Python function with constraints."""
555
+ # Function name (valid Python identifier)
556
+ lm += "def " + gen("func_name", regex=r"[a-z_][a-z0-9_]*") + "("
557
+
558
+ # Parameter name
559
+ lm += gen("param", regex=r"[a-z_][a-z0-9_]*") + "):\n"
560
+
561
+ # Docstring
562
+ lm += ' """' + gen("docstring", stop='"""', max_tokens=50) + '"""\n'
563
+
564
+ # Function body (constrained to valid Python)
565
+ lm += " return " + gen("return_value", stop="\n") + "\n"
566
+
567
+ return lm
568
+ ```
569
+
570
+ ### Pattern 4: Hierarchical Data
571
+
572
+ ```python
573
+ @guidance
574
+ def org_chart(lm):
575
+ """Generate organizational chart."""
576
+ lm += "Company: " + gen("company", regex=r"[A-Za-z ]+") + "\n\n"
577
+
578
+ # CEO
579
+ lm += "CEO: " + gen("ceo", regex=r"[A-Za-z ]+") + "\n"
580
+
581
+ # Departments
582
+ for dept in ["Engineering", "Sales", "Marketing"]:
583
+ lm += f"\n{dept} Department:\n"
584
+ lm += " Head: " + gen(f"{dept.lower()}_head", regex=r"[A-Za-z ]+") + "\n"
585
+ lm += " Size: " + gen(f"{dept.lower()}_size", regex=r"[0-9]+") + " employees\n"
586
+
587
+ return lm
588
+ ```
589
+
590
+ ## Performance Optimization
591
+
592
+ ### Best Practices
593
+
594
+ #### 1. Use Specific Patterns
595
+
596
+ ```python
597
+ # ✅ Good: Specific pattern
598
+ lm += gen("age", regex=r"[0-9]{1,3}") # Fast
599
+
600
+ # ❌ Bad: Overly broad pattern
601
+ lm += gen("age", regex=r"[0-9]+") # Slower
602
+ ```
603
+
604
+ #### 2. Limit Max Tokens
605
+
606
+ ```python
607
+ # ✅ Good: Reasonable limit
608
+ lm += gen("name", max_tokens=30)
609
+
610
+ # ❌ Bad: No limit
611
+ lm += gen("name") # May generate forever
612
+ ```
613
+
614
+ #### 3. Use stop Sequences
615
+
616
+ ```python
617
+ # ✅ Good: Stop at newline
618
+ lm += gen("line", stop="\n")
619
+
620
+ # ❌ Bad: Rely on max_tokens
621
+ lm += gen("line", max_tokens=100)
622
+ ```
623
+
624
+ #### 4. Cache Compiled Grammars
625
+
626
+ ```python
627
+ # Grammars are cached automatically after first use
628
+ # No manual caching needed
629
+ @guidance
630
+ def reusable_pattern(lm):
631
+ """This grammar is compiled once and cached."""
632
+ lm += gen("email", regex=r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}")
633
+ return lm
634
+
635
+ # First call: compiles grammar
636
+ lm = reusable_pattern(lm)
637
+
638
+ # Subsequent calls: uses cached grammar (fast)
639
+ lm = reusable_pattern(lm)
640
+ ```
641
+
642
+ #### 5. Avoid Overlapping Constraints
643
+
644
+ ```python
645
+ # ✅ Good: Clear constraints
646
+ lm += gen("age", regex=r"[0-9]+", max_tokens=3)
647
+
648
+ # ❌ Bad: Conflicting constraints
649
+ lm += gen("age", regex=r"[0-9]{2}", max_tokens=10) # max_tokens unnecessary
650
+ ```
651
+
652
+ ### Performance Benchmarks
653
+
654
+ **Regex vs Free Generation:**
655
+ - Simple regex (digits): ~1.2x slower than free gen
656
+ - Complex regex (email): ~1.5x slower than free gen
657
+ - Grammar-based: ~2x slower than free gen
658
+
659
+ **But:**
660
+ - 100% valid outputs (vs ~70% with free gen + validation)
661
+ - No retry loops needed
662
+ - Overall faster end-to-end for structured outputs
663
+
664
+ **Optimization Tips:**
665
+ - Use regex for critical fields only
666
+ - Use `select()` for small fixed sets (fastest)
667
+ - Use `stop` sequences when possible (faster than max_tokens)
668
+ - Cache compiled grammars by reusing functions
669
+
670
+ ## Resources
671
+
672
+ - **Token Healing Paper**: https://arxiv.org/abs/2306.17648
673
+ - **Guidance Docs**: https://guidance.readthedocs.io
674
+ - **GitHub**: https://github.com/guidance-ai/guidance