@baimingtao/lbs-agent 1.0.0
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.
- package/AGENTS.md +54 -0
- package/README.md +181 -0
- package/SOUL.md +31 -0
- package/application/__init__.py +1 -0
- package/application/container.py +376 -0
- package/application/contracts/__init__.py +5 -0
- package/application/contracts/result.py +84 -0
- package/application/onboarding.py +243 -0
- package/application/runtime_factory.py +198 -0
- package/application/runtime_paths.py +61 -0
- package/application/services/__init__.py +1 -0
- package/application/services/agent_service.py +159 -0
- package/application/services/cron_service.py +49 -0
- package/application/services/gateway_service.py +156 -0
- package/application/services/interactive_service.py +275 -0
- package/application/services/mcp_service.py +102 -0
- package/application/services/model_service.py +519 -0
- package/application/services/orchestration_service.py +169 -0
- package/application/services/session_service.py +130 -0
- package/application/services/skill_service.py +369 -0
- package/application/services/tool_service.py +165 -0
- package/bin/lbs.js +109 -0
- package/config/__init__.py +2 -0
- package/config/config.py +453 -0
- package/config/config_contract.py +198 -0
- package/config/mcp.yaml +30 -0
- package/config/state_root.py +28 -0
- package/extensions/mcps/optional/linear/manifest.yaml +38 -0
- package/extensions/mcps/optional/n8n/manifest.yaml +77 -0
- package/extensions/mcps/optional/unreal-engine/manifest.yaml +54 -0
- package/extensions/prompts/agents/audit.md +46 -0
- package/extensions/prompts/agents/auditor.md +71 -0
- package/extensions/prompts/agents/browser_worker.md +56 -0
- package/extensions/prompts/agents/chat.md +23 -0
- package/extensions/prompts/agents/code.md +52 -0
- package/extensions/prompts/agents/data_analyst.md +39 -0
- package/extensions/prompts/agents/document.md +19 -0
- package/extensions/prompts/agents/email_agent.md +30 -0
- package/extensions/prompts/agents/github_agent.md +33 -0
- package/extensions/prompts/agents/planner.md +40 -0
- package/extensions/prompts/agents/research.md +50 -0
- package/extensions/prompts/agents/security.md +28 -0
- package/extensions/prompts/agents/verifier.md +28 -0
- package/extensions/prompts/agents/vision.md +27 -0
- package/extensions/skills/builtin/autonomous-ai-agents/DESCRIPTION.md +3 -0
- package/extensions/skills/builtin/autonomous-ai-agents/claude-code/SKILL.md +669 -0
- package/extensions/skills/builtin/autonomous-ai-agents/codex/SKILL.md +138 -0
- package/extensions/skills/builtin/autonomous-ai-agents/hermes-agent/SKILL.md +728 -0
- package/extensions/skills/builtin/autonomous-ai-agents/hermes-agent/references/native-mcp.md +344 -0
- package/extensions/skills/builtin/autonomous-ai-agents/hermes-agent/references/webhooks.md +193 -0
- package/extensions/skills/builtin/autonomous-ai-agents/opencode/SKILL.md +219 -0
- package/extensions/skills/builtin/browser-use/SKILL.md +152 -0
- package/extensions/skills/builtin/computer-use/SKILL.md +242 -0
- package/extensions/skills/builtin/creative/DESCRIPTION.md +3 -0
- package/extensions/skills/builtin/creative/architecture-diagram/SKILL.md +148 -0
- package/extensions/skills/builtin/creative/architecture-diagram/templates/template.html +319 -0
- package/extensions/skills/builtin/creative/ascii-art/SKILL.md +322 -0
- package/extensions/skills/builtin/creative/ascii-video/README.md +290 -0
- package/extensions/skills/builtin/creative/ascii-video/SKILL.md +241 -0
- package/extensions/skills/builtin/creative/ascii-video/references/architecture.md +568 -0
- package/extensions/skills/builtin/creative/ascii-video/references/composition.md +662 -0
- package/extensions/skills/builtin/creative/ascii-video/references/effects.md +640 -0
- package/extensions/skills/builtin/creative/ascii-video/references/inputs.md +685 -0
- package/extensions/skills/builtin/creative/ascii-video/references/optimization.md +688 -0
- package/extensions/skills/builtin/creative/ascii-video/references/scenes.md +741 -0
- package/extensions/skills/builtin/creative/ascii-video/references/shaders.md +683 -0
- package/extensions/skills/builtin/creative/ascii-video/references/troubleshooting.md +367 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/PORT_NOTES.md +43 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/SKILL.md +237 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/analysis-framework.md +182 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/base-prompt.md +43 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/bento-grid.md +41 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/binary-comparison.md +48 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/bridge.md +41 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/circular-flow.md +41 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/comic-strip.md +41 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/comparison-matrix.md +41 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/dashboard.md +41 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/dense-modules.md +72 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/funnel.md +41 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/hierarchical-layers.md +48 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/hub-spoke.md +41 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/iceberg.md +41 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/isometric-map.md +41 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/jigsaw.md +41 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/linear-progression.md +48 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/periodic-table.md +41 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/story-mountain.md +41 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/structural-breakdown.md +48 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/tree-branching.md +41 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/venn-diagram.md +41 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/layouts/winding-roadmap.md +41 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/structured-content-template.md +244 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/aged-academia.md +36 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/bold-graphic.md +36 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/chalkboard.md +61 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/claymation.md +29 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/corporate-memphis.md +29 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/craft-handmade.md +44 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/cyberpunk-neon.md +29 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/hand-drawn-edu.md +63 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/ikea-manual.md +29 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/kawaii.md +29 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/knolling.md +29 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/lego-brick.md +29 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/morandi-journal.md +60 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/origami.md +29 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/pixel-art.md +29 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/pop-laboratory.md +48 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/retro-pop-grid.md +47 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/storybook-watercolor.md +29 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/subway-map.md +29 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/technical-schematic.md +36 -0
- package/extensions/skills/builtin/creative/baoyu-infographic/references/styles/ui-wireframe.md +29 -0
- package/extensions/skills/builtin/creative/claude-design/SKILL.md +591 -0
- package/extensions/skills/builtin/creative/comfyui/SKILL.md +609 -0
- package/extensions/skills/builtin/creative/comfyui/references/official-cli.md +252 -0
- package/extensions/skills/builtin/creative/comfyui/references/rest-api.md +297 -0
- package/extensions/skills/builtin/creative/comfyui/references/template-integrity.md +227 -0
- package/extensions/skills/builtin/creative/comfyui/references/workflow-format.md +205 -0
- package/extensions/skills/builtin/creative/comfyui/scripts/_common.py +835 -0
- package/extensions/skills/builtin/creative/comfyui/scripts/auto_fix_deps.py +225 -0
- package/extensions/skills/builtin/creative/comfyui/scripts/check_deps.py +437 -0
- package/extensions/skills/builtin/creative/comfyui/scripts/comfyui_setup.sh +286 -0
- package/extensions/skills/builtin/creative/comfyui/scripts/extract_schema.py +315 -0
- package/extensions/skills/builtin/creative/comfyui/scripts/fetch_logs.py +157 -0
- package/extensions/skills/builtin/creative/comfyui/scripts/hardware_check.py +497 -0
- package/extensions/skills/builtin/creative/comfyui/scripts/health_check.py +223 -0
- package/extensions/skills/builtin/creative/comfyui/scripts/run_batch.py +243 -0
- package/extensions/skills/builtin/creative/comfyui/scripts/run_workflow.py +796 -0
- package/extensions/skills/builtin/creative/comfyui/scripts/ws_monitor.py +267 -0
- package/extensions/skills/builtin/creative/comfyui/tests/README.md +44 -0
- package/extensions/skills/builtin/creative/comfyui/tests/conftest.py +64 -0
- package/extensions/skills/builtin/creative/comfyui/tests/pytest.ini +5 -0
- package/extensions/skills/builtin/creative/comfyui/tests/test_check_deps.py +68 -0
- package/extensions/skills/builtin/creative/comfyui/tests/test_cloud_integration.py +95 -0
- package/extensions/skills/builtin/creative/comfyui/tests/test_common.py +443 -0
- package/extensions/skills/builtin/creative/comfyui/tests/test_extract_schema.py +184 -0
- package/extensions/skills/builtin/creative/comfyui/tests/test_run_workflow.py +210 -0
- package/extensions/skills/builtin/creative/comfyui/workflows/README.md +86 -0
- package/extensions/skills/builtin/creative/comfyui/workflows/animatediff_video.json +64 -0
- package/extensions/skills/builtin/creative/comfyui/workflows/flux_dev_txt2img.json +78 -0
- package/extensions/skills/builtin/creative/comfyui/workflows/sd15_txt2img.json +49 -0
- package/extensions/skills/builtin/creative/comfyui/workflows/sdxl_img2img.json +54 -0
- package/extensions/skills/builtin/creative/comfyui/workflows/sdxl_inpaint.json +59 -0
- package/extensions/skills/builtin/creative/comfyui/workflows/sdxl_txt2img.json +49 -0
- package/extensions/skills/builtin/creative/comfyui/workflows/upscale_4x.json +27 -0
- package/extensions/skills/builtin/creative/comfyui/workflows/wan_video_t2v.json +69 -0
- package/extensions/skills/builtin/creative/design-md/SKILL.md +171 -0
- package/extensions/skills/builtin/creative/design-md/templates/starter.md +92 -0
- package/extensions/skills/builtin/creative/excalidraw/SKILL.md +195 -0
- package/extensions/skills/builtin/creative/excalidraw/references/colors.md +44 -0
- package/extensions/skills/builtin/creative/excalidraw/references/dark-mode.md +67 -0
- package/extensions/skills/builtin/creative/excalidraw/references/examples.md +140 -0
- package/extensions/skills/builtin/creative/excalidraw/scripts/upload.py +133 -0
- package/extensions/skills/builtin/creative/humanizer/LICENSE +21 -0
- package/extensions/skills/builtin/creative/humanizer/SKILL.md +578 -0
- package/extensions/skills/builtin/creative/manim-video/README.md +23 -0
- package/extensions/skills/builtin/creative/manim-video/SKILL.md +269 -0
- package/extensions/skills/builtin/creative/manim-video/references/animation-design-thinking.md +161 -0
- package/extensions/skills/builtin/creative/manim-video/references/animations.md +282 -0
- package/extensions/skills/builtin/creative/manim-video/references/camera-and-3d.md +135 -0
- package/extensions/skills/builtin/creative/manim-video/references/decorations.md +202 -0
- package/extensions/skills/builtin/creative/manim-video/references/equations.md +216 -0
- package/extensions/skills/builtin/creative/manim-video/references/graphs-and-data.md +163 -0
- package/extensions/skills/builtin/creative/manim-video/references/mobjects.md +333 -0
- package/extensions/skills/builtin/creative/manim-video/references/paper-explainer.md +255 -0
- package/extensions/skills/builtin/creative/manim-video/references/production-quality.md +190 -0
- package/extensions/skills/builtin/creative/manim-video/references/rendering.md +185 -0
- package/extensions/skills/builtin/creative/manim-video/references/scene-planning.md +118 -0
- package/extensions/skills/builtin/creative/manim-video/references/troubleshooting.md +135 -0
- package/extensions/skills/builtin/creative/manim-video/references/updaters-and-trackers.md +260 -0
- package/extensions/skills/builtin/creative/manim-video/references/visual-design.md +124 -0
- package/extensions/skills/builtin/creative/manim-video/scripts/setup.sh +14 -0
- package/extensions/skills/builtin/creative/p5js/README.md +64 -0
- package/extensions/skills/builtin/creative/p5js/SKILL.md +555 -0
- package/extensions/skills/builtin/creative/p5js/references/animation.md +439 -0
- package/extensions/skills/builtin/creative/p5js/references/color-systems.md +352 -0
- package/extensions/skills/builtin/creative/p5js/references/core-api.md +410 -0
- package/extensions/skills/builtin/creative/p5js/references/export-pipeline.md +566 -0
- package/extensions/skills/builtin/creative/p5js/references/interaction.md +398 -0
- package/extensions/skills/builtin/creative/p5js/references/shapes-and-geometry.md +300 -0
- package/extensions/skills/builtin/creative/p5js/references/troubleshooting.md +532 -0
- package/extensions/skills/builtin/creative/p5js/references/typography.md +302 -0
- package/extensions/skills/builtin/creative/p5js/references/visual-effects.md +895 -0
- package/extensions/skills/builtin/creative/p5js/references/webgl-and-3d.md +423 -0
- package/extensions/skills/builtin/creative/p5js/scripts/export-frames.js +179 -0
- package/extensions/skills/builtin/creative/p5js/scripts/render.sh +108 -0
- package/extensions/skills/builtin/creative/p5js/scripts/serve.sh +28 -0
- package/extensions/skills/builtin/creative/p5js/scripts/setup.sh +87 -0
- package/extensions/skills/builtin/creative/p5js/templates/viewer.html +395 -0
- package/extensions/skills/builtin/creative/popular-web-designs/SKILL.md +202 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/airbnb.md +259 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/airtable.md +102 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/apple.md +326 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/bmw.md +193 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/cal.md +272 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/claude.md +325 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/clay.md +317 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/clickhouse.md +294 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/cohere.md +279 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/coinbase.md +142 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/composio.md +320 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/cursor.md +322 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/elevenlabs.md +278 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/expo.md +294 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/figma.md +233 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/framer.md +259 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/hashicorp.md +291 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/ibm.md +345 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/intercom.md +159 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/kraken.md +138 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/linear.app.md +380 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/lovable.md +311 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/minimax.md +270 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/mintlify.md +339 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/miro.md +121 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/mistral.ai.md +274 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/mongodb.md +279 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/notion.md +322 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/nvidia.md +306 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/ollama.md +280 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/opencode.ai.md +294 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/pinterest.md +243 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/posthog.md +269 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/raycast.md +281 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/replicate.md +274 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/resend.md +316 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/revolut.md +198 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/runwayml.md +257 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/sanity.md +370 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/sentry.md +275 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/spacex.md +207 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/spotify.md +259 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/stripe.md +335 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/supabase.md +268 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/superhuman.md +265 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/together.ai.md +276 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/uber.md +308 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/vercel.md +323 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/voltagent.md +336 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/warp.md +265 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/webflow.md +105 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/wise.md +186 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/x.ai.md +270 -0
- package/extensions/skills/builtin/creative/popular-web-designs/templates/zapier.md +341 -0
- package/extensions/skills/builtin/creative/pretext/SKILL.md +220 -0
- package/extensions/skills/builtin/creative/pretext/references/patterns.md +258 -0
- package/extensions/skills/builtin/creative/pretext/templates/donut-orbit.html +1468 -0
- package/extensions/skills/builtin/creative/pretext/templates/hello-orb-flow.html +95 -0
- package/extensions/skills/builtin/creative/sketch/SKILL.md +218 -0
- package/extensions/skills/builtin/creative/songwriting-and-ai-music/SKILL.md +273 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/SKILL.md +356 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/3d-scene.md +275 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/animation.md +221 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/audio-reactive.md +175 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/dat-scripting.md +352 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/external-data.md +322 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/geometry-comp.md +121 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/glsl.md +151 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/layout-compositor.md +131 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/mcp-tools.md +382 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/midi-osc.md +210 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/network-patterns.md +767 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/operator-tips.md +106 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/operators.md +239 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/panel-ui.md +281 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/particles.md +245 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/pitfalls.md +568 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/postfx.md +183 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/projection-mapping.md +211 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/python-api.md +463 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/replicator.md +197 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/references/troubleshooting.md +244 -0
- package/extensions/skills/builtin/creative/touchdesigner-mcp/scripts/setup.sh +115 -0
- package/extensions/skills/builtin/data-science/DESCRIPTION.md +3 -0
- package/extensions/skills/builtin/data-science/jupyter-live-kernel/SKILL.md +152 -0
- package/extensions/skills/builtin/dogfood/SKILL.md +162 -0
- package/extensions/skills/builtin/dogfood/references/issue-taxonomy.md +109 -0
- package/extensions/skills/builtin/dogfood/templates/dogfood-report-template.md +86 -0
- package/extensions/skills/builtin/email/DESCRIPTION.md +3 -0
- package/extensions/skills/builtin/email/himalaya/SKILL.md +302 -0
- package/extensions/skills/builtin/email/himalaya/references/configuration.md +216 -0
- package/extensions/skills/builtin/email/himalaya/references/message-composition.md +199 -0
- package/extensions/skills/builtin/github/DESCRIPTION.md +3 -0
- package/extensions/skills/builtin/github/codebase-inspection/SKILL.md +116 -0
- package/extensions/skills/builtin/github/github-auth/SKILL.md +247 -0
- package/extensions/skills/builtin/github/github-auth/scripts/gh-env.sh +66 -0
- package/extensions/skills/builtin/github/github-code-review/SKILL.md +481 -0
- package/extensions/skills/builtin/github/github-code-review/references/review-output-template.md +74 -0
- package/extensions/skills/builtin/github/github-issues/SKILL.md +370 -0
- package/extensions/skills/builtin/github/github-issues/templates/bug-report.md +35 -0
- package/extensions/skills/builtin/github/github-issues/templates/feature-request.md +31 -0
- package/extensions/skills/builtin/github/github-pr-workflow/SKILL.md +367 -0
- package/extensions/skills/builtin/github/github-pr-workflow/references/ci-troubleshooting.md +183 -0
- package/extensions/skills/builtin/github/github-pr-workflow/references/conventional-commits.md +71 -0
- package/extensions/skills/builtin/github/github-pr-workflow/templates/pr-body-bugfix.md +35 -0
- package/extensions/skills/builtin/github/github-pr-workflow/templates/pr-body-feature.md +33 -0
- package/extensions/skills/builtin/github/github-repo-management/SKILL.md +516 -0
- package/extensions/skills/builtin/github/github-repo-management/references/github-api-cheatsheet.md +161 -0
- package/extensions/skills/builtin/index-cache/anthropics_skills_skills_.json +1 -0
- package/extensions/skills/builtin/index-cache/claude_marketplace_anthropics_skills.json +1 -0
- package/extensions/skills/builtin/index-cache/lobehub_index.json +1 -0
- package/extensions/skills/builtin/index-cache/openai_skills_skills_.json +1 -0
- package/extensions/skills/builtin/media/DESCRIPTION.md +3 -0
- package/extensions/skills/builtin/media/gif-search/SKILL.md +91 -0
- package/extensions/skills/builtin/media/heartmula/SKILL.md +171 -0
- package/extensions/skills/builtin/media/songsee/SKILL.md +83 -0
- package/extensions/skills/builtin/media/youtube-content/SKILL.md +75 -0
- package/extensions/skills/builtin/media/youtube-content/references/output-formats.md +56 -0
- package/extensions/skills/builtin/media/youtube-content/scripts/fetch_transcript.py +124 -0
- package/extensions/skills/builtin/mlops/DESCRIPTION.md +3 -0
- package/extensions/skills/builtin/mlops/evaluation/DESCRIPTION.md +3 -0
- package/extensions/skills/builtin/mlops/evaluation/lm-evaluation-harness/SKILL.md +495 -0
- package/extensions/skills/builtin/mlops/evaluation/lm-evaluation-harness/references/api-evaluation.md +490 -0
- package/extensions/skills/builtin/mlops/evaluation/lm-evaluation-harness/references/benchmark-guide.md +488 -0
- package/extensions/skills/builtin/mlops/evaluation/lm-evaluation-harness/references/custom-tasks.md +602 -0
- package/extensions/skills/builtin/mlops/evaluation/lm-evaluation-harness/references/distributed-eval.md +519 -0
- package/extensions/skills/builtin/mlops/evaluation/weights-and-biases/SKILL.md +592 -0
- package/extensions/skills/builtin/mlops/evaluation/weights-and-biases/references/artifacts.md +584 -0
- package/extensions/skills/builtin/mlops/evaluation/weights-and-biases/references/integrations.md +700 -0
- package/extensions/skills/builtin/mlops/evaluation/weights-and-biases/references/sweeps.md +846 -0
- package/extensions/skills/builtin/mlops/huggingface-hub/SKILL.md +81 -0
- package/extensions/skills/builtin/mlops/inference/DESCRIPTION.md +3 -0
- package/extensions/skills/builtin/mlops/inference/llama-cpp/SKILL.md +249 -0
- package/extensions/skills/builtin/mlops/inference/llama-cpp/references/advanced-usage.md +504 -0
- package/extensions/skills/builtin/mlops/inference/llama-cpp/references/hub-discovery.md +168 -0
- package/extensions/skills/builtin/mlops/inference/llama-cpp/references/optimization.md +89 -0
- package/extensions/skills/builtin/mlops/inference/llama-cpp/references/quantization.md +243 -0
- package/extensions/skills/builtin/mlops/inference/llama-cpp/references/server.md +150 -0
- package/extensions/skills/builtin/mlops/inference/llama-cpp/references/troubleshooting.md +442 -0
- package/extensions/skills/builtin/mlops/inference/vllm/SKILL.md +369 -0
- package/extensions/skills/builtin/mlops/inference/vllm/references/optimization.md +226 -0
- package/extensions/skills/builtin/mlops/inference/vllm/references/quantization.md +284 -0
- package/extensions/skills/builtin/mlops/inference/vllm/references/server-deployment.md +255 -0
- package/extensions/skills/builtin/mlops/inference/vllm/references/troubleshooting.md +448 -0
- package/extensions/skills/builtin/mlops/models/DESCRIPTION.md +3 -0
- package/extensions/skills/builtin/mlops/models/audiocraft/SKILL.md +568 -0
- package/extensions/skills/builtin/mlops/models/audiocraft/references/advanced-usage.md +666 -0
- package/extensions/skills/builtin/mlops/models/audiocraft/references/troubleshooting.md +504 -0
- package/extensions/skills/builtin/mlops/models/segment-anything/SKILL.md +506 -0
- package/extensions/skills/builtin/mlops/models/segment-anything/references/advanced-usage.md +589 -0
- package/extensions/skills/builtin/mlops/models/segment-anything/references/troubleshooting.md +484 -0
- package/extensions/skills/builtin/note-taking/DESCRIPTION.md +3 -0
- package/extensions/skills/builtin/note-taking/obsidian/SKILL.md +61 -0
- package/extensions/skills/builtin/productivity/DESCRIPTION.md +3 -0
- package/extensions/skills/builtin/productivity/airtable/SKILL.md +229 -0
- package/extensions/skills/builtin/productivity/google-workspace/SKILL.md +314 -0
- package/extensions/skills/builtin/productivity/google-workspace/references/gmail-search-syntax.md +63 -0
- package/extensions/skills/builtin/productivity/google-workspace/scripts/_hermes_home.py +42 -0
- package/extensions/skills/builtin/productivity/google-workspace/scripts/google_api.py +1225 -0
- package/extensions/skills/builtin/productivity/google-workspace/scripts/gws_bridge.py +111 -0
- package/extensions/skills/builtin/productivity/google-workspace/scripts/setup.py +481 -0
- package/extensions/skills/builtin/productivity/maps/SKILL.md +182 -0
- package/extensions/skills/builtin/productivity/maps/scripts/maps_client.py +1297 -0
- package/extensions/skills/builtin/productivity/nano-pdf/SKILL.md +52 -0
- package/extensions/skills/builtin/productivity/notion/SKILL.md +448 -0
- package/extensions/skills/builtin/productivity/notion/references/block-types.md +112 -0
- package/extensions/skills/builtin/productivity/ocr-and-documents/DESCRIPTION.md +3 -0
- package/extensions/skills/builtin/productivity/ocr-and-documents/SKILL.md +172 -0
- package/extensions/skills/builtin/productivity/ocr-and-documents/scripts/extract_marker.py +87 -0
- package/extensions/skills/builtin/productivity/ocr-and-documents/scripts/extract_pymupdf.py +98 -0
- package/extensions/skills/builtin/productivity/petdex/SKILL.md +76 -0
- package/extensions/skills/builtin/productivity/powerpoint/LICENSE.txt +30 -0
- package/extensions/skills/builtin/productivity/powerpoint/SKILL.md +237 -0
- package/extensions/skills/builtin/productivity/powerpoint/editing.md +205 -0
- package/extensions/skills/builtin/productivity/powerpoint/pptxgenjs.md +420 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/__init__.py +0 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/add_slide.py +195 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/clean.py +286 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/helpers/__init__.py +0 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/helpers/merge_runs.py +199 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/helpers/simplify_redlines.py +197 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/pack.py +159 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-contentTypes.xsd +42 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-coreProperties.xsd +50 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-digSig.xsd +49 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-relationships.xsd +33 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/mce/mc.xsd +75 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/extensions/skills/builtin/productivity/powerpoint/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/extensions/skills/builtin/productivity/teams-meeting-pipeline/SKILL.md +116 -0
- package/extensions/skills/builtin/research/DESCRIPTION.md +3 -0
- package/extensions/skills/builtin/research/arxiv/SKILL.md +282 -0
- package/extensions/skills/builtin/research/arxiv/scripts/search_arxiv.py +114 -0
- package/extensions/skills/builtin/research/blogwatcher/SKILL.md +137 -0
- package/extensions/skills/builtin/research/llm-wiki/SKILL.md +449 -0
- package/extensions/skills/builtin/research/polymarket/SKILL.md +75 -0
- package/extensions/skills/builtin/research/polymarket/references/api-endpoints.md +220 -0
- package/extensions/skills/builtin/research/polymarket/scripts/polymarket.py +284 -0
- package/extensions/skills/builtin/research/research-paper-writing/SKILL.md +813 -0
- package/extensions/skills/builtin/research/research-paper-writing/references/autoreason-methodology.md +394 -0
- package/extensions/skills/builtin/research/research-paper-writing/references/checklists.md +434 -0
- package/extensions/skills/builtin/research/research-paper-writing/references/citation-workflow.md +564 -0
- package/extensions/skills/builtin/research/research-paper-writing/references/experiment-patterns.md +728 -0
- package/extensions/skills/builtin/research/research-paper-writing/references/human-evaluation.md +476 -0
- package/extensions/skills/builtin/research/research-paper-writing/references/paper-types.md +481 -0
- package/extensions/skills/builtin/research/research-paper-writing/references/reviewer-guidelines.md +433 -0
- package/extensions/skills/builtin/research/research-paper-writing/references/sources.md +191 -0
- package/extensions/skills/builtin/research/research-paper-writing/references/writing-guide.md +474 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/README.md +251 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/aaai2026/README.md +534 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/aaai2026/aaai2026-unified-supp.tex +144 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/aaai2026/aaai2026-unified-template.tex +952 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/aaai2026/aaai2026.bib +111 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/aaai2026/aaai2026.bst +1493 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/aaai2026/aaai2026.sty +315 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/acl/README.md +48 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/acl/acl.sty +312 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/acl/acl_latex.tex +377 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/acl/acl_lualatex.tex +101 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/acl/acl_natbib.bst +1940 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/acl/anthology.bib.txt +26 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/acl/custom.bib +70 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/acl/formatting.md +322 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/colm2025/README.md +3 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/colm2025/colm2025_conference.bib +11 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/colm2025/colm2025_conference.bst +1440 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/colm2025/colm2025_conference.pdf +0 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/colm2025/colm2025_conference.sty +218 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/colm2025/colm2025_conference.tex +305 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/colm2025/fancyhdr.sty +485 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/colm2025/math_commands.tex +508 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/colm2025/natbib.sty +1246 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/iclr2026/fancyhdr.sty +485 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/iclr2026/iclr2026_conference.bib +24 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/iclr2026/iclr2026_conference.bst +1440 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/iclr2026/iclr2026_conference.pdf +0 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/iclr2026/iclr2026_conference.sty +246 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/iclr2026/iclr2026_conference.tex +414 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/iclr2026/math_commands.tex +508 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/iclr2026/natbib.sty +1246 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/icml2026/algorithm.sty +79 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/icml2026/algorithmic.sty +201 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/icml2026/example_paper.bib +75 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/icml2026/example_paper.pdf +0 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/icml2026/example_paper.tex +662 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/icml2026/fancyhdr.sty +864 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/icml2026/icml2026.bst +1443 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/icml2026/icml2026.sty +767 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/icml2026/icml_numpapers.pdf +0 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/neurips2025/Makefile +36 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/neurips2025/extra_pkgs.tex +53 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/neurips2025/main.tex +38 -0
- package/extensions/skills/builtin/research/research-paper-writing/templates/neurips2025/neurips.sty +382 -0
- package/extensions/skills/builtin/research/web-research/SKILL.md +10 -0
- package/extensions/skills/builtin/smart-home/DESCRIPTION.md +3 -0
- package/extensions/skills/builtin/smart-home/openhue/SKILL.md +109 -0
- package/extensions/skills/builtin/social-media/DESCRIPTION.md +3 -0
- package/extensions/skills/builtin/social-media/xurl/SKILL.md +429 -0
- package/extensions/skills/builtin/software-development/hermes-agent-skill-authoring/SKILL.md +196 -0
- package/extensions/skills/builtin/software-development/node-inspect-debugger/SKILL.md +319 -0
- package/extensions/skills/builtin/software-development/plan/SKILL.md +338 -0
- package/extensions/skills/builtin/software-development/python-debugpy/SKILL.md +375 -0
- package/extensions/skills/builtin/software-development/requesting-code-review/SKILL.md +275 -0
- package/extensions/skills/builtin/software-development/simplify-code/SKILL.md +118 -0
- package/extensions/skills/builtin/software-development/spike/SKILL.md +197 -0
- package/extensions/skills/builtin/software-development/systematic-debugging/SKILL.md +411 -0
- package/extensions/skills/builtin/software-development/test-driven-development/SKILL.md +362 -0
- package/extensions/skills/builtin/yuanbao/SKILL.md +108 -0
- package/extensions/skills/optional/DESCRIPTION.md +22 -0
- package/extensions/skills/optional/autonomous-ai-agents/DESCRIPTION.md +1 -0
- package/extensions/skills/optional/autonomous-ai-agents/antigravity-cli/SKILL.md +197 -0
- package/extensions/skills/optional/autonomous-ai-agents/antigravity-cli/references/cli-docs.md +64 -0
- package/extensions/skills/optional/autonomous-ai-agents/blackbox/SKILL.md +144 -0
- package/extensions/skills/optional/autonomous-ai-agents/grok/SKILL.md +246 -0
- package/extensions/skills/optional/autonomous-ai-agents/honcho/SKILL.md +431 -0
- package/extensions/skills/optional/autonomous-ai-agents/openhands/SKILL.md +149 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/PORT_NOTES.md +48 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/SKILL.md +207 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/prompts/system.md +32 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/palettes/macaron.md +33 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/palettes/mono-ink.md +42 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/palettes/neon.md +33 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/palettes/warm.md +32 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/prompt-construction.md +426 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/style-presets.md +80 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/blueprint.md +57 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/chalkboard.md +62 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/editorial.md +59 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/elegant.md +56 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/fantasy-animation.md +58 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/flat-doodle.md +61 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/flat.md +59 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/ink-notes.md +90 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/intuition-machine.md +57 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/minimal.md +58 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/nature.md +58 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/notion.md +58 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/pixel-art.md +57 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/playful.md +59 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/retro.md +59 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/scientific.md +59 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/screen-print.md +70 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/sketch-notes.md +56 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/sketch.md +57 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/vector-illustration.md +57 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/vintage.md +59 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/warm.md +58 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles/watercolor.md +58 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/styles.md +223 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/usage.md +50 -0
- package/extensions/skills/optional/creative/baoyu-article-illustrator/references/workflow.md +332 -0
- package/extensions/skills/optional/creative/baoyu-comic/PORT_NOTES.md +77 -0
- package/extensions/skills/optional/creative/baoyu-comic/SKILL.md +247 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/analysis-framework.md +176 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/art-styles/chalk.md +101 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/art-styles/ink-brush.md +97 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/art-styles/ligne-claire.md +75 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/art-styles/manga.md +93 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/art-styles/minimalist.md +84 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/art-styles/realistic.md +89 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/auto-selection.md +71 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/base-prompt.md +98 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/character-template.md +180 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/layouts/cinematic.md +23 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/layouts/dense.md +23 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/layouts/four-panel.md +40 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/layouts/mixed.md +23 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/layouts/splash.md +23 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/layouts/standard.md +23 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/layouts/webtoon.md +30 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/ohmsha-guide.md +85 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/partial-workflows.md +106 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/presets/concept-story.md +121 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/presets/four-panel.md +107 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/presets/ohmsha.md +114 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/presets/shoujo.md +116 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/presets/wuxia.md +110 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/storyboard-template.md +142 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/tones/action.md +110 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/tones/dramatic.md +95 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/tones/energetic.md +105 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/tones/neutral.md +63 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/tones/romantic.md +100 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/tones/vintage.md +104 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/tones/warm.md +94 -0
- package/extensions/skills/optional/creative/baoyu-comic/references/workflow.md +401 -0
- package/extensions/skills/optional/creative/blender-mcp/SKILL.md +117 -0
- package/extensions/skills/optional/creative/concept-diagrams/SKILL.md +362 -0
- package/extensions/skills/optional/creative/concept-diagrams/examples/apartment-floor-plan-conversion.md +244 -0
- package/extensions/skills/optional/creative/concept-diagrams/examples/automated-password-reset-flow.md +276 -0
- package/extensions/skills/optional/creative/concept-diagrams/examples/autonomous-llm-research-agent-flow.md +240 -0
- package/extensions/skills/optional/creative/concept-diagrams/examples/banana-journey-tree-to-smoothie.md +161 -0
- package/extensions/skills/optional/creative/concept-diagrams/examples/commercial-aircraft-structure.md +209 -0
- package/extensions/skills/optional/creative/concept-diagrams/examples/cpu-ooo-microarchitecture.md +236 -0
- package/extensions/skills/optional/creative/concept-diagrams/examples/electricity-grid-flow.md +182 -0
- package/extensions/skills/optional/creative/concept-diagrams/examples/feature-film-production-pipeline.md +172 -0
- package/extensions/skills/optional/creative/concept-diagrams/examples/hospital-emergency-department-flow.md +165 -0
- package/extensions/skills/optional/creative/concept-diagrams/examples/ml-benchmark-grouped-bar-chart.md +114 -0
- package/extensions/skills/optional/creative/concept-diagrams/examples/place-order-uml-sequence.md +325 -0
- package/extensions/skills/optional/creative/concept-diagrams/examples/smart-city-infrastructure.md +173 -0
- package/extensions/skills/optional/creative/concept-diagrams/examples/smartphone-layer-anatomy.md +154 -0
- package/extensions/skills/optional/creative/concept-diagrams/examples/sn2-reaction-mechanism.md +247 -0
- package/extensions/skills/optional/creative/concept-diagrams/examples/wind-turbine-structure.md +338 -0
- package/extensions/skills/optional/creative/concept-diagrams/references/dashboard-patterns.md +43 -0
- package/extensions/skills/optional/creative/concept-diagrams/references/infrastructure-patterns.md +144 -0
- package/extensions/skills/optional/creative/concept-diagrams/references/physical-shape-cookbook.md +42 -0
- package/extensions/skills/optional/creative/concept-diagrams/templates/template.html +174 -0
- package/extensions/skills/optional/creative/creative-ideation/SKILL.md +177 -0
- package/extensions/skills/optional/creative/creative-ideation/references/anti-slop.md +106 -0
- package/extensions/skills/optional/creative/creative-ideation/references/exercises.md +71 -0
- package/extensions/skills/optional/creative/creative-ideation/references/full-prompt-library.md +180 -0
- package/extensions/skills/optional/creative/creative-ideation/references/heuristics.md +85 -0
- package/extensions/skills/optional/creative/creative-ideation/references/method-catalog.md +88 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/affinity-diagrams.md +67 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/analogy-and-blending.md +83 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/biomimicry.md +58 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/chance-and-remix.md +75 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/compression-progress.md +64 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/creative-discipline.md +82 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/defamiliarization.md +58 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/derive-and-mapping.md +76 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/first-principles.md +63 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/jobs-to-be-done.md +73 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/lateral-provocations.md +81 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/leverage-points.md +70 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/oblique-strategies.md +87 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/oulipo.md +75 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/pataphysics.md +64 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/pattern-languages.md +78 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/polya.md +77 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/premortem-and-inversion.md +71 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/scamper.md +63 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/story-skeletons.md +100 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/triz-principles.md +95 -0
- package/extensions/skills/optional/creative/creative-ideation/references/methods/volume-generation.md +74 -0
- package/extensions/skills/optional/creative/hyperframes/SKILL.md +191 -0
- package/extensions/skills/optional/creative/hyperframes/references/cli.md +185 -0
- package/extensions/skills/optional/creative/hyperframes/references/composition.md +129 -0
- package/extensions/skills/optional/creative/hyperframes/references/features.md +289 -0
- package/extensions/skills/optional/creative/hyperframes/references/gsap.md +136 -0
- package/extensions/skills/optional/creative/hyperframes/references/troubleshooting.md +137 -0
- package/extensions/skills/optional/creative/hyperframes/references/website-to-video.md +145 -0
- package/extensions/skills/optional/creative/hyperframes/scripts/setup.sh +135 -0
- package/extensions/skills/optional/creative/kanban-video-orchestrator/SKILL.md +158 -0
- package/extensions/skills/optional/creative/kanban-video-orchestrator/assets/brief.md.tmpl +79 -0
- package/extensions/skills/optional/creative/kanban-video-orchestrator/assets/setup.sh.tmpl +186 -0
- package/extensions/skills/optional/creative/kanban-video-orchestrator/assets/soul.md.tmpl +38 -0
- package/extensions/skills/optional/creative/kanban-video-orchestrator/references/examples.md +203 -0
- package/extensions/skills/optional/creative/kanban-video-orchestrator/references/intake.md +142 -0
- package/extensions/skills/optional/creative/kanban-video-orchestrator/references/kanban-setup.md +271 -0
- package/extensions/skills/optional/creative/kanban-video-orchestrator/references/monitoring.md +155 -0
- package/extensions/skills/optional/creative/kanban-video-orchestrator/references/role-archetypes.md +234 -0
- package/extensions/skills/optional/creative/kanban-video-orchestrator/references/tool-matrix.md +281 -0
- package/extensions/skills/optional/creative/kanban-video-orchestrator/scripts/bootstrap_pipeline.py +499 -0
- package/extensions/skills/optional/creative/kanban-video-orchestrator/scripts/monitor.py +195 -0
- package/extensions/skills/optional/creative/meme-generation/EXAMPLES.md +46 -0
- package/extensions/skills/optional/creative/meme-generation/SKILL.md +130 -0
- package/extensions/skills/optional/creative/meme-generation/scripts/generate_meme.py +470 -0
- package/extensions/skills/optional/creative/meme-generation/scripts/templates.json +97 -0
- package/extensions/skills/optional/creative/pixel-art/ATTRIBUTION.md +48 -0
- package/extensions/skills/optional/creative/pixel-art/SKILL.md +199 -0
- package/extensions/skills/optional/creative/pixel-art/references/palettes.md +49 -0
- package/extensions/skills/optional/creative/pixel-art/scripts/__init__.py +0 -0
- package/extensions/skills/optional/creative/pixel-art/scripts/palettes.py +167 -0
- package/extensions/skills/optional/creative/pixel-art/scripts/pixel_art.py +162 -0
- package/extensions/skills/optional/creative/pixel-art/scripts/pixel_art_video.py +345 -0
- package/extensions/skills/optional/devops/cli/SKILL.md +156 -0
- package/extensions/skills/optional/devops/cli/references/app-discovery.md +111 -0
- package/extensions/skills/optional/devops/cli/references/authentication.md +59 -0
- package/extensions/skills/optional/devops/cli/references/cli-reference.md +104 -0
- package/extensions/skills/optional/devops/cli/references/running-apps.md +171 -0
- package/extensions/skills/optional/devops/docker-management/SKILL.md +281 -0
- package/extensions/skills/optional/devops/hermes-s6-container-supervision/SKILL.md +178 -0
- package/extensions/skills/optional/devops/pinggy-tunnel/SKILL.md +309 -0
- package/extensions/skills/optional/devops/watchers/SKILL.md +111 -0
- package/extensions/skills/optional/devops/watchers/scripts/_watermark.py +148 -0
- package/extensions/skills/optional/devops/watchers/scripts/watch_github.py +169 -0
- package/extensions/skills/optional/devops/watchers/scripts/watch_http_json.py +131 -0
- package/extensions/skills/optional/devops/watchers/scripts/watch_rss.py +121 -0
- package/extensions/skills/optional/dogfood/DESCRIPTION.md +3 -0
- package/extensions/skills/optional/dogfood/adversarial-ux-test/SKILL.md +191 -0
- package/extensions/skills/optional/finance/3-statement-model/SKILL.md +430 -0
- package/extensions/skills/optional/finance/3-statement-model/references/formatting.md +118 -0
- package/extensions/skills/optional/finance/3-statement-model/references/formulas.md +292 -0
- package/extensions/skills/optional/finance/3-statement-model/references/sec-filings.md +125 -0
- package/extensions/skills/optional/finance/comps-analysis/SKILL.md +662 -0
- package/extensions/skills/optional/finance/dcf-model/SKILL.md +850 -0
- package/extensions/skills/optional/finance/dcf-model/TROUBLESHOOTING.md +40 -0
- package/extensions/skills/optional/finance/dcf-model/requirements.txt +7 -0
- package/extensions/skills/optional/finance/dcf-model/scripts/validate_dcf.py +291 -0
- package/extensions/skills/optional/finance/excel-author/SKILL.md +244 -0
- package/extensions/skills/optional/finance/excel-author/scripts/recalc.py +88 -0
- package/extensions/skills/optional/finance/lbo-model/SKILL.md +290 -0
- package/extensions/skills/optional/finance/merger-model/SKILL.md +144 -0
- package/extensions/skills/optional/finance/pptx-author/SKILL.md +173 -0
- package/extensions/skills/optional/finance/stocks/SKILL.md +88 -0
- package/extensions/skills/optional/finance/stocks/scripts/stocks_client.py +755 -0
- package/extensions/skills/optional/mcp/DESCRIPTION.md +3 -0
- package/extensions/skills/optional/mcp/fastmcp/SKILL.md +300 -0
- package/extensions/skills/optional/mcp/fastmcp/references/fastmcp-cli.md +110 -0
- package/extensions/skills/optional/mcp/fastmcp/scripts/scaffold_fastmcp.py +56 -0
- package/extensions/skills/optional/mcp/fastmcp/templates/api_wrapper.py +54 -0
- package/extensions/skills/optional/mcp/fastmcp/templates/database_server.py +77 -0
- package/extensions/skills/optional/mcp/fastmcp/templates/file_processor.py +55 -0
- package/extensions/skills/optional/mcp/mcporter/SKILL.md +123 -0
- package/extensions/skills/optional/migration/DESCRIPTION.md +1 -0
- package/extensions/skills/optional/migration/openclaw-migration/SKILL.md +298 -0
- package/extensions/skills/optional/migration/openclaw-migration/scripts/openclaw_to_hermes.py +3136 -0
- package/extensions/skills/optional/mlops/accelerate/SKILL.md +333 -0
- package/extensions/skills/optional/mlops/accelerate/references/custom-plugins.md +453 -0
- package/extensions/skills/optional/mlops/accelerate/references/megatron-integration.md +489 -0
- package/extensions/skills/optional/mlops/accelerate/references/performance.md +525 -0
- package/extensions/skills/optional/mlops/chroma/SKILL.md +408 -0
- package/extensions/skills/optional/mlops/chroma/references/integration.md +38 -0
- package/extensions/skills/optional/mlops/clip/SKILL.md +255 -0
- package/extensions/skills/optional/mlops/clip/references/applications.md +207 -0
- package/extensions/skills/optional/mlops/faiss/SKILL.md +223 -0
- package/extensions/skills/optional/mlops/faiss/references/index_types.md +280 -0
- package/extensions/skills/optional/mlops/flash-attention/SKILL.md +364 -0
- package/extensions/skills/optional/mlops/flash-attention/references/benchmarks.md +215 -0
- package/extensions/skills/optional/mlops/flash-attention/references/transformers-integration.md +293 -0
- package/extensions/skills/optional/mlops/guidance/SKILL.md +574 -0
- package/extensions/skills/optional/mlops/guidance/references/backends.md +553 -0
- package/extensions/skills/optional/mlops/guidance/references/constraints.md +674 -0
- package/extensions/skills/optional/mlops/guidance/references/examples.md +767 -0
- package/extensions/skills/optional/mlops/huggingface-tokenizers/SKILL.md +518 -0
- package/extensions/skills/optional/mlops/huggingface-tokenizers/references/algorithms.md +653 -0
- package/extensions/skills/optional/mlops/huggingface-tokenizers/references/integration.md +637 -0
- package/extensions/skills/optional/mlops/huggingface-tokenizers/references/pipeline.md +723 -0
- package/extensions/skills/optional/mlops/huggingface-tokenizers/references/training.md +565 -0
- package/extensions/skills/optional/mlops/inference/outlines/SKILL.md +654 -0
- package/extensions/skills/optional/mlops/inference/outlines/references/backends.md +615 -0
- package/extensions/skills/optional/mlops/inference/outlines/references/examples.md +773 -0
- package/extensions/skills/optional/mlops/inference/outlines/references/json_generation.md +649 -0
- package/extensions/skills/optional/mlops/instructor/SKILL.md +742 -0
- package/extensions/skills/optional/mlops/instructor/references/examples.md +107 -0
- package/extensions/skills/optional/mlops/instructor/references/providers.md +70 -0
- package/extensions/skills/optional/mlops/instructor/references/validation.md +606 -0
- package/extensions/skills/optional/mlops/lambda-labs/SKILL.md +549 -0
- package/extensions/skills/optional/mlops/lambda-labs/references/advanced-usage.md +611 -0
- package/extensions/skills/optional/mlops/lambda-labs/references/troubleshooting.md +530 -0
- package/extensions/skills/optional/mlops/llava/SKILL.md +306 -0
- package/extensions/skills/optional/mlops/llava/references/training.md +197 -0
- package/extensions/skills/optional/mlops/modal/SKILL.md +345 -0
- package/extensions/skills/optional/mlops/modal/references/advanced-usage.md +503 -0
- package/extensions/skills/optional/mlops/modal/references/troubleshooting.md +494 -0
- package/extensions/skills/optional/mlops/nemo-curator/SKILL.md +384 -0
- package/extensions/skills/optional/mlops/nemo-curator/references/deduplication.md +87 -0
- package/extensions/skills/optional/mlops/nemo-curator/references/filtering.md +102 -0
- package/extensions/skills/optional/mlops/obliteratus/SKILL.md +342 -0
- package/extensions/skills/optional/mlops/obliteratus/references/analysis-modules.md +160 -0
- package/extensions/skills/optional/mlops/obliteratus/references/methods-guide.md +139 -0
- package/extensions/skills/optional/mlops/obliteratus/templates/abliteration-config.yaml +33 -0
- package/extensions/skills/optional/mlops/obliteratus/templates/analysis-study.yaml +40 -0
- package/extensions/skills/optional/mlops/obliteratus/templates/batch-abliteration.yaml +41 -0
- package/extensions/skills/optional/mlops/peft/SKILL.md +435 -0
- package/extensions/skills/optional/mlops/peft/references/advanced-usage.md +514 -0
- package/extensions/skills/optional/mlops/peft/references/troubleshooting.md +480 -0
- package/extensions/skills/optional/mlops/pinecone/SKILL.md +360 -0
- package/extensions/skills/optional/mlops/pinecone/references/deployment.md +181 -0
- package/extensions/skills/optional/mlops/pytorch-fsdp/SKILL.md +85 -0
- package/extensions/skills/optional/mlops/pytorch-fsdp/references/index.md +7 -0
- package/extensions/skills/optional/mlops/pytorch-fsdp/references/other.md +3297 -0
- package/extensions/skills/optional/mlops/pytorch-lightning/SKILL.md +348 -0
- package/extensions/skills/optional/mlops/pytorch-lightning/references/callbacks.md +436 -0
- package/extensions/skills/optional/mlops/pytorch-lightning/references/distributed.md +490 -0
- package/extensions/skills/optional/mlops/pytorch-lightning/references/hyperparameter-tuning.md +556 -0
- package/extensions/skills/optional/mlops/qdrant/SKILL.md +497 -0
- package/extensions/skills/optional/mlops/qdrant/references/advanced-usage.md +648 -0
- package/extensions/skills/optional/mlops/qdrant/references/troubleshooting.md +631 -0
- package/extensions/skills/optional/mlops/research/DESCRIPTION.md +3 -0
- package/extensions/skills/optional/mlops/research/dspy/SKILL.md +592 -0
- package/extensions/skills/optional/mlops/research/dspy/references/examples.md +663 -0
- package/extensions/skills/optional/mlops/research/dspy/references/modules.md +475 -0
- package/extensions/skills/optional/mlops/research/dspy/references/optimizers.md +566 -0
- package/extensions/skills/optional/mlops/saelens/SKILL.md +390 -0
- package/extensions/skills/optional/mlops/saelens/references/README.md +69 -0
- package/extensions/skills/optional/mlops/saelens/references/api.md +333 -0
- package/extensions/skills/optional/mlops/saelens/references/tutorials.md +318 -0
- package/extensions/skills/optional/mlops/simpo/SKILL.md +220 -0
- package/extensions/skills/optional/mlops/simpo/references/datasets.md +478 -0
- package/extensions/skills/optional/mlops/simpo/references/hyperparameters.md +452 -0
- package/extensions/skills/optional/mlops/simpo/references/loss-functions.md +350 -0
- package/extensions/skills/optional/mlops/slime/SKILL.md +467 -0
- package/extensions/skills/optional/mlops/slime/references/api-reference.md +392 -0
- package/extensions/skills/optional/mlops/slime/references/troubleshooting.md +386 -0
- package/extensions/skills/optional/mlops/stable-diffusion/SKILL.md +523 -0
- package/extensions/skills/optional/mlops/stable-diffusion/references/advanced-usage.md +716 -0
- package/extensions/skills/optional/mlops/stable-diffusion/references/troubleshooting.md +555 -0
- package/extensions/skills/optional/mlops/tensorrt-llm/SKILL.md +189 -0
- package/extensions/skills/optional/mlops/tensorrt-llm/references/multi-gpu.md +298 -0
- package/extensions/skills/optional/mlops/tensorrt-llm/references/optimization.md +242 -0
- package/extensions/skills/optional/mlops/tensorrt-llm/references/serving.md +470 -0
- package/extensions/skills/optional/mlops/torchtitan/SKILL.md +361 -0
- package/extensions/skills/optional/mlops/torchtitan/references/checkpoint.md +181 -0
- package/extensions/skills/optional/mlops/torchtitan/references/custom-models.md +258 -0
- package/extensions/skills/optional/mlops/torchtitan/references/float8.md +133 -0
- package/extensions/skills/optional/mlops/torchtitan/references/fsdp.md +126 -0
- package/extensions/skills/optional/mlops/training/axolotl/SKILL.md +164 -0
- package/extensions/skills/optional/mlops/training/axolotl/references/api.md +1535 -0
- package/extensions/skills/optional/mlops/training/axolotl/references/dataset-formats.md +843 -0
- package/extensions/skills/optional/mlops/training/axolotl/references/index.md +15 -0
- package/extensions/skills/optional/mlops/training/axolotl/references/other.md +2367 -0
- package/extensions/skills/optional/mlops/training/trl-fine-tuning/SKILL.md +460 -0
- package/extensions/skills/optional/mlops/training/trl-fine-tuning/references/dpo-variants.md +227 -0
- package/extensions/skills/optional/mlops/training/trl-fine-tuning/references/grpo-training.md +504 -0
- package/extensions/skills/optional/mlops/training/trl-fine-tuning/references/online-rl.md +82 -0
- package/extensions/skills/optional/mlops/training/trl-fine-tuning/references/reward-modeling.md +122 -0
- package/extensions/skills/optional/mlops/training/trl-fine-tuning/references/sft-training.md +168 -0
- package/extensions/skills/optional/mlops/training/trl-fine-tuning/templates/basic_grpo_training.py +228 -0
- package/extensions/skills/optional/mlops/training/unsloth/SKILL.md +81 -0
- package/extensions/skills/optional/mlops/training/unsloth/references/index.md +7 -0
- package/extensions/skills/optional/mlops/training/unsloth/references/llms-full.md +381 -0
- package/extensions/skills/optional/mlops/training/unsloth/references/llms-txt.md +382 -0
- package/extensions/skills/optional/mlops/training/unsloth/references/llms.md +82 -0
- package/extensions/skills/optional/mlops/whisper/SKILL.md +319 -0
- package/extensions/skills/optional/mlops/whisper/references/languages.md +189 -0
- package/extensions/skills/optional/productivity/canvas/SKILL.md +98 -0
- package/extensions/skills/optional/productivity/canvas/scripts/canvas_api.py +160 -0
- package/extensions/skills/optional/productivity/here-now/SKILL.md +217 -0
- package/extensions/skills/optional/productivity/here-now/scripts/drive.sh +406 -0
- package/extensions/skills/optional/productivity/here-now/scripts/publish.sh +445 -0
- package/extensions/skills/optional/productivity/memento-flashcards/SKILL.md +324 -0
- package/extensions/skills/optional/productivity/memento-flashcards/scripts/memento_cards.py +353 -0
- package/extensions/skills/optional/productivity/memento-flashcards/scripts/youtube_quiz.py +88 -0
- package/extensions/skills/optional/productivity/shop/SKILL.md +224 -0
- package/extensions/skills/optional/productivity/shop/references/catalog-mcp.md +236 -0
- package/extensions/skills/optional/productivity/shop/references/direct-api.md +265 -0
- package/extensions/skills/optional/productivity/shop/references/legal.md +3 -0
- package/extensions/skills/optional/productivity/shop/references/safety.md +36 -0
- package/extensions/skills/optional/productivity/shopify/SKILL.md +373 -0
- package/extensions/skills/optional/productivity/siyuan/SKILL.md +298 -0
- package/extensions/skills/optional/productivity/telephony/SKILL.md +418 -0
- package/extensions/skills/optional/productivity/telephony/scripts/telephony.py +1343 -0
- package/extensions/skills/optional/research/bioinformatics/SKILL.md +235 -0
- package/extensions/skills/optional/research/darwinian-evolver/SKILL.md +161 -0
- package/extensions/skills/optional/research/darwinian-evolver/scripts/parrot_openrouter.py +218 -0
- package/extensions/skills/optional/research/darwinian-evolver/scripts/show_snapshot.py +92 -0
- package/extensions/skills/optional/research/darwinian-evolver/templates/custom_problem_template.py +240 -0
- package/extensions/skills/optional/research/domain-intel/SKILL.md +97 -0
- package/extensions/skills/optional/research/domain-intel/scripts/domain_intel.py +397 -0
- package/extensions/skills/optional/research/drug-discovery/SKILL.md +218 -0
- package/extensions/skills/optional/research/drug-discovery/references/ADMET_REFERENCE.md +66 -0
- package/extensions/skills/optional/research/drug-discovery/scripts/chembl_target.py +53 -0
- package/extensions/skills/optional/research/drug-discovery/scripts/ro5_screen.py +44 -0
- package/extensions/skills/optional/research/duckduckgo-search/SKILL.md +238 -0
- package/extensions/skills/optional/research/duckduckgo-search/scripts/duckduckgo.sh +28 -0
- package/extensions/skills/optional/research/gitnexus-explorer/SKILL.md +196 -0
- package/extensions/skills/optional/research/gitnexus-explorer/scripts/proxy.mjs +92 -0
- package/extensions/skills/optional/research/osint-investigation/SKILL.md +227 -0
- package/extensions/skills/optional/research/osint-investigation/references/sources/courtlistener.md +92 -0
- package/extensions/skills/optional/research/osint-investigation/references/sources/gdelt.md +94 -0
- package/extensions/skills/optional/research/osint-investigation/references/sources/icij-offshore.md +79 -0
- package/extensions/skills/optional/research/osint-investigation/references/sources/nyc-acris.md +85 -0
- package/extensions/skills/optional/research/osint-investigation/references/sources/ofac-sdn.md +84 -0
- package/extensions/skills/optional/research/osint-investigation/references/sources/opencorporates.md +88 -0
- package/extensions/skills/optional/research/osint-investigation/references/sources/sec-edgar.md +80 -0
- package/extensions/skills/optional/research/osint-investigation/references/sources/senate-ld.md +85 -0
- package/extensions/skills/optional/research/osint-investigation/references/sources/usaspending.md +90 -0
- package/extensions/skills/optional/research/osint-investigation/references/sources/wayback.md +87 -0
- package/extensions/skills/optional/research/osint-investigation/references/sources/wikipedia.md +96 -0
- package/extensions/skills/optional/research/osint-investigation/scripts/_http.py +82 -0
- package/extensions/skills/optional/research/osint-investigation/scripts/_normalize.py +67 -0
- package/extensions/skills/optional/research/osint-investigation/scripts/build_findings.py +221 -0
- package/extensions/skills/optional/research/osint-investigation/scripts/entity_resolution.py +228 -0
- package/extensions/skills/optional/research/osint-investigation/scripts/fetch_courtlistener.py +149 -0
- package/extensions/skills/optional/research/osint-investigation/scripts/fetch_gdelt.py +161 -0
- package/extensions/skills/optional/research/osint-investigation/scripts/fetch_icij_offshore.py +234 -0
- package/extensions/skills/optional/research/osint-investigation/scripts/fetch_nyc_acris.py +203 -0
- package/extensions/skills/optional/research/osint-investigation/scripts/fetch_ofac_sdn.py +175 -0
- package/extensions/skills/optional/research/osint-investigation/scripts/fetch_opencorporates.py +191 -0
- package/extensions/skills/optional/research/osint-investigation/scripts/fetch_sec_edgar.py +184 -0
- package/extensions/skills/optional/research/osint-investigation/scripts/fetch_senate_ld.py +146 -0
- package/extensions/skills/optional/research/osint-investigation/scripts/fetch_usaspending.py +170 -0
- package/extensions/skills/optional/research/osint-investigation/scripts/fetch_wayback.py +142 -0
- package/extensions/skills/optional/research/osint-investigation/scripts/fetch_wikipedia.py +266 -0
- package/extensions/skills/optional/research/osint-investigation/scripts/timing_analysis.py +252 -0
- package/extensions/skills/optional/research/osint-investigation/templates/source-template.md +57 -0
- package/extensions/skills/optional/research/parallel-cli/SKILL.md +391 -0
- package/extensions/skills/optional/research/qmd/SKILL.md +417 -0
- package/extensions/skills/optional/research/scrapling/SKILL.md +336 -0
- package/extensions/skills/optional/research/searxng-search/SKILL.md +212 -0
- package/extensions/skills/optional/research/searxng-search/scripts/searxng.sh +22 -0
- package/extensions/skills/optional/security/DESCRIPTION.md +3 -0
- package/extensions/skills/optional/software-development/code-wiki/SKILL.md +442 -0
- package/extensions/skills/optional/software-development/code-wiki/templates/README.md +31 -0
- package/extensions/skills/optional/software-development/code-wiki/templates/architecture.md +30 -0
- package/extensions/skills/optional/software-development/code-wiki/templates/getting-started.md +47 -0
- package/extensions/skills/optional/software-development/code-wiki/templates/module.md +38 -0
- package/extensions/skills/optional/software-development/rest-graphql-debug/SKILL.md +514 -0
- package/extensions/skills/optional/software-development/subagent-driven-development/SKILL.md +352 -0
- package/extensions/skills/optional/software-development/subagent-driven-development/references/context-budget-discipline.md +53 -0
- package/extensions/skills/optional/software-development/subagent-driven-development/references/gates-taxonomy.md +93 -0
- package/extensions/skills/optional/web-development/DESCRIPTION.md +5 -0
- package/extensions/skills/optional/web-development/cloudflare-temporary-deploy/SKILL.md +127 -0
- package/extensions/skills/optional/web-development/cloudflare-temporary-deploy/scripts/parse_deploy_output.py +122 -0
- package/extensions/skills/optional/web-development/page-agent/SKILL.md +190 -0
- package/interfaces/__init__.py +1 -0
- package/interfaces/api/__init__.py +1 -0
- package/interfaces/api/_impl/_models.py +105 -0
- package/interfaces/api/_impl/server.py +1480 -0
- package/interfaces/cli/__init__.py +1 -0
- package/interfaces/cli/_impl/__init__.py +1 -0
- package/interfaces/cli/_impl/commands/__init__.py +1 -0
- package/interfaces/cli/_impl/commands/agents.py +106 -0
- package/interfaces/cli/_impl/commands/architecture.py +63 -0
- package/interfaces/cli/_impl/commands/chat_repl.py +291 -0
- package/interfaces/cli/_impl/commands/common.py +17 -0
- package/interfaces/cli/_impl/commands/cron.py +145 -0
- package/interfaces/cli/_impl/commands/doctor.py +201 -0
- package/interfaces/cli/_impl/commands/gateway.py +111 -0
- package/interfaces/cli/_impl/commands/llm.py +113 -0
- package/interfaces/cli/_impl/commands/models.py +578 -0
- package/interfaces/cli/_impl/commands/orchestrator.py +71 -0
- package/interfaces/cli/_impl/commands/run_agent.py +102 -0
- package/interfaces/cli/_impl/commands/sessions.py +237 -0
- package/interfaces/cli/_impl/commands/skill.py +121 -0
- package/interfaces/cli/_impl/commands/smoke_test.py +193 -0
- package/interfaces/cli/_impl/commands/soul.py +106 -0
- package/interfaces/cli/_impl/commands/tools.py +249 -0
- package/interfaces/cli/_impl/handlers/__init__.py +1 -0
- package/interfaces/cli/_impl/main.py +727 -0
- package/interfaces/cli/_impl/parser/__init__.py +1 -0
- package/interfaces/cli/_impl/renderers/__init__.py +23 -0
- package/interfaces/cli/_impl/result.py +81 -0
- package/interfaces/gateway/__init__.py +1 -0
- package/interfaces/gateway/_impl/__init__.py +163 -0
- package/interfaces/gateway/_impl/adapters/dingtalk/__init__.py +8 -0
- package/interfaces/gateway/_impl/adapters/dingtalk/adapter.py +100 -0
- package/interfaces/gateway/_impl/adapters/feishu/__init__.py +8 -0
- package/interfaces/gateway/_impl/adapters/feishu/adapter.py +575 -0
- package/interfaces/gateway/_impl/adapters/qq/__init__.py +8 -0
- package/interfaces/gateway/_impl/adapters/qq/adapter.py +266 -0
- package/interfaces/gateway/_impl/adapters/slack/__init__.py +8 -0
- package/interfaces/gateway/_impl/adapters/slack/adapter.py +72 -0
- package/interfaces/gateway/_impl/adapters/wechat/__init__.py +8 -0
- package/interfaces/gateway/_impl/adapters/wechat/adapter.py +239 -0
- package/interfaces/gateway/_impl/middleware/__init__.py +1 -0
- package/interfaces/gateway/_impl/routes/__init__.py +1 -0
- package/interfaces/web/__init__.py +1 -0
- package/interfaces/web/frontend/.oxlintrc.json +8 -0
- package/interfaces/web/frontend/README.md +32 -0
- package/interfaces/web/frontend/index.html +13 -0
- package/interfaces/web/frontend/package-lock.json +5179 -0
- package/interfaces/web/frontend/package.json +48 -0
- package/interfaces/web/frontend/postcss.config.js +6 -0
- package/interfaces/web/frontend/public/cat-spritesheet.webp +0 -0
- package/interfaces/web/frontend/public/favicon.svg +1 -0
- package/interfaces/web/frontend/public/icons.svg +24 -0
- package/interfaces/web/frontend/run-5173.cmd +3 -0
- package/interfaces/web/frontend/src/App.css +184 -0
- package/interfaces/web/frontend/src/App.tsx +272 -0
- package/interfaces/web/frontend/src/api/client.ts +115 -0
- package/interfaces/web/frontend/src/assets/hero.png +0 -0
- package/interfaces/web/frontend/src/assets/react.svg +1 -0
- package/interfaces/web/frontend/src/assets/vite.svg +1 -0
- package/interfaces/web/frontend/src/components/AgentAvatar.tsx +59 -0
- package/interfaces/web/frontend/src/components/CatSpirit.tsx +248 -0
- package/interfaces/web/frontend/src/components/ChatFlow.tsx +587 -0
- package/interfaces/web/frontend/src/components/DateTimePicker.tsx +170 -0
- package/interfaces/web/frontend/src/components/MarkdownView.tsx +20 -0
- package/interfaces/web/frontend/src/components/NiceSelect.tsx +166 -0
- package/interfaces/web/frontend/src/components/PagePanel.tsx +68 -0
- package/interfaces/web/frontend/src/components/PixelCat.tsx +150 -0
- package/interfaces/web/frontend/src/components/RichEditor.tsx +129 -0
- package/interfaces/web/frontend/src/components/SakuraParticles.tsx +70 -0
- package/interfaces/web/frontend/src/components/SidebarLeft.tsx +100 -0
- package/interfaces/web/frontend/src/components/SidebarRight.tsx +333 -0
- package/interfaces/web/frontend/src/components/Toggle.tsx +19 -0
- package/interfaces/web/frontend/src/contexts/ThemeContext.tsx +230 -0
- package/interfaces/web/frontend/src/contexts/ThemeContextCore.ts +14 -0
- package/interfaces/web/frontend/src/contexts/useTheme.ts +8 -0
- package/interfaces/web/frontend/src/hooks/useAgent.ts +507 -0
- package/interfaces/web/frontend/src/hooks/useDashboardData.ts +160 -0
- package/interfaces/web/frontend/src/index.css +1903 -0
- package/interfaces/web/frontend/src/main.tsx +11 -0
- package/interfaces/web/frontend/src/mock/data.ts +3 -0
- package/interfaces/web/frontend/src/pages/AgentsPage.tsx +156 -0
- package/interfaces/web/frontend/src/pages/CronPage.tsx +80 -0
- package/interfaces/web/frontend/src/pages/FilesPage.tsx +57 -0
- package/interfaces/web/frontend/src/pages/McpPage.tsx +143 -0
- package/interfaces/web/frontend/src/pages/ModelsPage.tsx +170 -0
- package/interfaces/web/frontend/src/pages/SessionsPage.tsx +135 -0
- package/interfaces/web/frontend/src/pages/SkillsPage.tsx +4 -0
- package/interfaces/web/frontend/src/pages/SoulsPage.tsx +109 -0
- package/interfaces/web/frontend/src/pages/ToolsPage.tsx +3 -0
- package/interfaces/web/frontend/src/pages/UsagePage.tsx +132 -0
- package/interfaces/web/frontend/src/pages/WorkersPage.tsx +198 -0
- package/interfaces/web/frontend/src/types/index.ts +138 -0
- package/interfaces/web/frontend/tailwind.config.js +52 -0
- package/interfaces/web/frontend/tsconfig.app.json +26 -0
- package/interfaces/web/frontend/tsconfig.json +7 -0
- package/interfaces/web/frontend/tsconfig.node.json +23 -0
- package/interfaces/web/frontend/vite.config.ts +16 -0
- package/interfaces/web/frontend/yarn.lock +2281 -0
- package/interfaces/web/legacy_web/index.html +1259 -0
- package/lbs.py +6 -0
- package/package.json +53 -0
- package/requirements.txt +98 -0
- package/runtime/__init__.py +1 -0
- package/runtime/context/__init__.py +26 -0
- package/runtime/context/compression/strategies/__init__.py +1 -0
- package/runtime/context/compression/token_counter.py +62 -0
- package/runtime/context/compressor.py +594 -0
- package/runtime/context/management/__init__.py +1 -0
- package/runtime/context/management/context_builder.py +67 -0
- package/runtime/context/management/context_manager.py +1008 -0
- package/runtime/context/trimming/__init__.py +1 -0
- package/runtime/context/trimming/priority.py +58 -0
- package/runtime/context/trimming/window.py +56 -0
- package/runtime/core/__init__.py +1 -0
- package/runtime/core/llm/__init__.py +24 -0
- package/runtime/core/llm/auxiliary_client.py +279 -0
- package/runtime/core/llm/builtins.py +300 -0
- package/runtime/core/llm/client/__init__.py +699 -0
- package/runtime/core/llm/credential.py +334 -0
- package/runtime/core/llm/error_classifier.py +158 -0
- package/runtime/core/llm/factory/__init__.py +1 -0
- package/runtime/core/llm/health.py +106 -0
- package/runtime/core/llm/model_router.py +592 -0
- package/runtime/core/llm/provider.py +120 -0
- package/runtime/core/llm/redact.py +142 -0
- package/runtime/core/llm/registry/__init__.py +50 -0
- package/runtime/core/llm/registry/models.yaml +233 -0
- package/runtime/core/llm/think_scrubber.py +232 -0
- package/runtime/core/llm/tokenizer.py +150 -0
- package/runtime/core/llm/usage_pricing.py +373 -0
- package/runtime/core/sub_agents/__init__.py +11 -0
- package/runtime/core/sub_agents/agents.yaml +477 -0
- package/runtime/core/sub_agents/base.py +28 -0
- package/runtime/core/sub_agents/builtin/__init__.py +1 -0
- package/runtime/core/sub_agents/registry.py +96 -0
- package/runtime/core/tokenizer.py +146 -0
- package/runtime/gateway.py +14 -0
- package/runtime/memory/__init__.py +11 -0
- package/runtime/memory/context_memory.py +249 -0
- package/runtime/memory/long_term/knowledge_graph/__init__.py +1 -0
- package/runtime/memory/long_term/sqlite/__init__.py +104 -0
- package/runtime/memory/long_term/vector_store/__init__.py +1 -0
- package/runtime/memory/manager.py +144 -0
- package/runtime/memory/provider.py +97 -0
- package/runtime/memory/providers/long_term.py +143 -0
- package/runtime/memory/providers/working.py +53 -0
- package/runtime/memory/session/__init__.py +4 -0
- package/runtime/memory/session/identity.py +48 -0
- package/runtime/memory/session/session_context.py +23 -0
- package/runtime/memory/session/session_store.py +1118 -0
- package/runtime/memory/short_term/__init__.py +8 -0
- package/runtime/memory/short_term/buffer.py +8 -0
- package/runtime/memory/short_term/working.py +93 -0
- package/runtime/memory/task_contracts/__init__.py +115 -0
- package/runtime/orchestration/__init__.py +8 -0
- package/runtime/orchestration/auto_cycle/__init__.py +486 -0
- package/runtime/orchestration/auto_cycle/trigger.py +8 -0
- package/runtime/orchestration/background_review.py +470 -0
- package/runtime/orchestration/display.py +206 -0
- package/runtime/orchestration/iteration_budget.py +98 -0
- package/runtime/orchestration/loop/__init__.py +17 -0
- package/runtime/orchestration/loop/completion_gate.py +156 -0
- package/runtime/orchestration/loop/context_window.py +71 -0
- package/runtime/orchestration/loop/main_loop.py +2014 -0
- package/runtime/orchestration/loop/message_history.py +71 -0
- package/runtime/orchestration/loop/progress_tracker.py +211 -0
- package/runtime/orchestration/loop/run_trace.py +70 -0
- package/runtime/orchestration/loop/tool_call_executor.py +214 -0
- package/runtime/orchestration/loop/tool_execution_contract.py +134 -0
- package/runtime/orchestration/loop/types.py +282 -0
- package/runtime/orchestration/retry_engine.py +241 -0
- package/runtime/orchestration/runtime/__init__.py +20 -0
- package/runtime/orchestration/runtime/arbiter.py +85 -0
- package/runtime/orchestration/runtime/checkpoint.py +148 -0
- package/runtime/orchestration/runtime/error_policy.py +55 -0
- package/runtime/orchestration/runtime/events.py +92 -0
- package/runtime/orchestration/runtime/process_registry.py +605 -0
- package/runtime/orchestration/runtime/resume_manager.py +283 -0
- package/runtime/orchestration/runtime/retry_policy.py +26 -0
- package/runtime/orchestration/runtime/status.py +60 -0
- package/runtime/orchestration/runtime/types.py +74 -0
- package/runtime/orchestration/scheduler/__init__.py +8 -0
- package/runtime/orchestration/scheduler/master_scheduler.py +36 -0
- package/runtime/orchestration/scheduler/task_graph.py +67 -0
- package/runtime/orchestration/supervisor_loop.py +1041 -0
- package/runtime/orchestration/tool_guardrails.py +249 -0
- package/runtime/orchestration/tracer.py +403 -0
- package/runtime/orchestration/verification/__init__.py +14 -0
- package/runtime/orchestration/verification/completion.py +248 -0
- package/runtime/orchestration/verification/task_acceptance.py +87 -0
- package/runtime/orchestration/verification/tool_result.py +38 -0
- package/runtime/orchestration/verification/worker_result.py +54 -0
- package/runtime/perception/README.md +24 -0
- package/runtime/perception/__init__.py +5 -0
- package/runtime/perception/detectors/__init__.py +1 -0
- package/runtime/perception/detectors/entity.py +86 -0
- package/runtime/perception/detectors/intent.py +103 -0
- package/runtime/perception/input/multimodal/__init__.py +1 -0
- package/runtime/perception/input/streaming/__init__.py +1 -0
- package/runtime/perception/input/text/__init__.py +1 -0
- package/runtime/perception/preprocess/__init__.py +1 -0
- package/scripts/check_llm_layer.py +16 -0
- package/scripts/check_orchestration_layer.py +15 -0
- package/scripts/clean-pycache.js +56 -0
- package/scripts/init.js +187 -0
- package/tools/__init__.py +1 -0
- package/tools/mcp/clients/__init__.py +368 -0
- package/tools/mcp/registry.py +538 -0
- package/tools/mcp/servers/__init__.py +46 -0
- package/tools/skill/__init__.py +4 -0
- package/tools/skill/curator.py +368 -0
- package/tools/skill/registry/__init__.py +11 -0
- package/tools/skill/registry/registry.py +367 -0
- package/tools/skill/registry/source_config.py +101 -0
- package/tools/skill/skills/__init__.py +1 -0
- package/tools/tool/__init__.py +12 -0
- package/tools/tool/advanced_tools.py +307 -0
- package/tools/tool/approval_workflow.py +216 -0
- package/tools/tool/builtin.py +656 -0
- package/tools/tool/config.py +191 -0
- package/tools/tool/hermes_migrated.py +190 -0
- package/tools/tool/implementations/__init__.py +1 -0
- package/tools/tool/implementations/browser_use_provider.py +691 -0
- package/tools/tool/implementations/extended_tools.py +260 -0
- package/tools/tool/mcp_provider.py +95 -0
- package/tools/tool/policy.py +65 -0
- package/tools/tool/providers/base.py +115 -0
- package/tools/tool/registry/__init__.py +183 -0
- package/tools/tool/runtime.py +87 -0
- package/tools/tool/schema.py +99 -0
- package/tools/tool/skill_provider.py +164 -0
- package/tools/tool/todo_provider.py +161 -0
- package/tools/tool/tools.yaml +115 -0
|
@@ -0,0 +1,2367 @@
|
|
|
1
|
+
# Axolotl - 其他
|
|
2
|
+
|
|
3
|
+
**页数:** 26
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 混合精度训练
|
|
8
|
+
|
|
9
|
+
**URL:** https://docs.axolotl.ai/docs/mixed_precision.html
|
|
10
|
+
|
|
11
|
+
**目录:**
|
|
12
|
+
- 混合精度训练
|
|
13
|
+
- 1 FP16 混合精度
|
|
14
|
+
- 1.1 概览
|
|
15
|
+
- 1.2 配置
|
|
16
|
+
- 1.3 FP16 注意事项
|
|
17
|
+
- 2 BF16 混合精度
|
|
18
|
+
- 2.1 概览
|
|
19
|
+
- 2.2 配置
|
|
20
|
+
- 3 FP8 混合精度
|
|
21
|
+
- 3.1 什么是 FP8?
|
|
22
|
+
|
|
23
|
+
混合精度训练使用较低精度的数据类型来减少内存使用并提高训练速度,同时保持模型质量。Axolotl 支持多种混合精度格式:
|
|
24
|
+
|
|
25
|
+
FP16 是传统的半精度格式,在较旧的 GPU 上受支持,但其数值稳定性不如 BF16。
|
|
26
|
+
|
|
27
|
+
BF16(Brain Float 16)比 FP16 提供更好的数值稳定性,是现代 GPU 推荐的混合精度格式。它在使用一半内存的同时,提供了与 FP32 相同的动态范围。
|
|
28
|
+
|
|
29
|
+
FP8 支持处于实验阶段,需要兼容的硬件(H100、H200)以及最新结合了 TorchAO 的 PyTorch 版本。
|
|
30
|
+
|
|
31
|
+
FP8(8 位浮点数)与 FP16/BF16 相比,可以显著节省时间,同时保持训练稳定性。Axolotl 的实现使用了 PyTorch 的 TorchAO 库以及“张量级”缩放策略。
|
|
32
|
+
|
|
33
|
+
添加到你的 YAML 配置中:
|
|
34
|
+
|
|
35
|
+
torch.compile 对 FP8 的性能至关重要
|
|
36
|
+
|
|
37
|
+
FP8 训练需要设置 torch_compile: true 才能看到明显的加速效果。如果不进行编译,FP8 实际上可能比 FP16/BF16 更慢,并且使用更多的内存。
|
|
38
|
+
|
|
39
|
+
对于 FSDP(完全分片数据并行)训练:
|
|
40
|
+
|
|
41
|
+
务必验证你的混合精度设置:
|
|
42
|
+
|
|
43
|
+
有关优化的示例配置,请参见 examples/llama-3/3b-fp8-fsdp2.yaml。对于相对较小(3B 参数)的模型,启用 FP8 混合精度 + FP8 all-gather 训练可比 BF16 每秒迭代速度快约 10%。
|
|
44
|
+
|
|
45
|
+
有关多 GPU 训练的更多信息,请参阅我们的多 GPU 指南。
|
|
46
|
+
|
|
47
|
+
**示例:**
|
|
48
|
+
|
|
49
|
+
示例 1 (yaml):
|
|
50
|
+
```yaml
|
|
51
|
+
# 自动 BF16 检测(推荐)
|
|
52
|
+
bf16: auto
|
|
53
|
+
|
|
54
|
+
# 或者显式启用
|
|
55
|
+
bf16: true
|
|
56
|
+
|
|
57
|
+
# 用于 BF16 评估
|
|
58
|
+
bf16: full # 相当于 HF trainer 中的 bf16_full_eval
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
示例 2 (yaml):
|
|
62
|
+
```yaml
|
|
63
|
+
# 启用 FP8 混合精度
|
|
64
|
+
fp8: true
|
|
65
|
+
|
|
66
|
+
# 可选:为 FSDP all-gather 操作启用 FP8
|
|
67
|
+
fp8_enable_fsdp_float8_all_gather: true
|
|
68
|
+
|
|
69
|
+
# 启用 torch.compile(对于 FP8 加速几乎总是必要的)
|
|
70
|
+
torch_compile: true
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
示例 3 (yaml):
|
|
74
|
+
```yaml
|
|
75
|
+
fp8: true
|
|
76
|
+
fp8_enable_fsdp_float8_all_gather: true
|
|
77
|
+
|
|
78
|
+
torch_compile: true
|
|
79
|
+
|
|
80
|
+
# FSDP 配置
|
|
81
|
+
fsdp_version: 2
|
|
82
|
+
fsdp_config:
|
|
83
|
+
offload_params: false
|
|
84
|
+
cpu_ram_efficient_loading: true
|
|
85
|
+
auto_wrap_policy: TRANSFORMER_BASED_WRAP
|
|
86
|
+
transformer_layer_cls_to_wrap: LlamaDecoderLayer
|
|
87
|
+
state_dict_type: FULL_STATE_DICT
|
|
88
|
+
reshard_after_forward: true
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 常见问题解答
|
|
94
|
+
|
|
95
|
+
**URL:** https://docs.axolotl.ai/docs/faq.html
|
|
96
|
+
|
|
97
|
+
**目录:**
|
|
98
|
+
- 常见问题解答
|
|
99
|
+
- 常规
|
|
100
|
+
- 聊天模板
|
|
101
|
+
|
|
102
|
+
问:训练器停止了,并且几分钟没有进展。
|
|
103
|
+
|
|
104
|
+
答:通常是 GPU 之间相互通信的问题。请参阅 NCCL 文档。
|
|
105
|
+
|
|
106
|
+
答:这通常发生在系统内存(RAM)耗尽的时候。
|
|
107
|
+
|
|
108
|
+
问:使用 deepspeed 时出现 exitcode: -7
|
|
109
|
+
|
|
110
|
+
答:尝试通过 pip install -U deepspeed 升级 deepspeed。
|
|
111
|
+
|
|
112
|
+
问:AttributeError: ‘DummyOptim’ object has no attribute ‘step’
|
|
113
|
+
|
|
114
|
+
问:在单 GPU 中使用 deepspeed 时出现 ModuleNotFoundError: No module named ‘mpi4py’
|
|
115
|
+
|
|
116
|
+
答:你可能正在单 GPU 中使用 deepspeed。请移除 yaml 文件中的 deepspeed: 部分或 --deepspeed CLI 标志。
|
|
117
|
+
|
|
118
|
+
问:代码卡在保存预处理数据集上。
|
|
119
|
+
|
|
120
|
+
答:这通常是 GPU 的问题。可以通过设置操作系统环境变量 CUDA_VISIBLE_DEVICES=0 来解决。如果你在 runpod 上,这通常是一个 pod 的问题。启动一个新 pod 就可以解决。
|
|
121
|
+
|
|
122
|
+
问:在合并适配器/加载适配器时,接收到关于 checkpoint 和模型的 torch.Size 不匹配的错误。
|
|
123
|
+
|
|
124
|
+
答:这可能是由于词表大小不匹配。默认情况下,如果分词器的词元数多于模型,Axolotl 会扩展模型的嵌入层。请使用 axolotl merge-lora 命令来合并适配器,而不是使用你自己的脚本。
|
|
125
|
+
|
|
126
|
+
另一方面,如果模型的词元数多于分词器,除非在配置中设置 shrink_embeddings: true,否则 Axolotl 不会收缩模型的嵌入层。
|
|
127
|
+
|
|
128
|
+
问:如何通过自定义 Python 脚本调用 Axolotl?
|
|
129
|
+
|
|
130
|
+
答:由于 Axolotl 就是 Python 程序,请查看 src/axolotl/cli/main.py 以了解每个命令是如何被调用的。
|
|
131
|
+
|
|
132
|
+
问:如何知道 fsdp_transformer_layer_cls_to_wrap 该使用什么值?
|
|
133
|
+
|
|
134
|
+
答:这是要用 FSDP 包装的 Transformer 层的类名。例如,对于 LlamaForCausalLM,该值为 LlamaDecoderLayer。要查找特定模型的对应值,请检查该模型的 PreTrainedModel 定义,并在 transformers 库的 modeling_<model_name>.py 文件中查找 _no_split_modules 变量。
|
|
135
|
+
|
|
136
|
+
问:ValueError: Asking to pad but the tokenizer does not have a padding token. Please select a token to use as pad_token
|
|
137
|
+
|
|
138
|
+
答:这是因为分词器没有填充词元。请通过以下方式向分词器添加填充词元:
|
|
139
|
+
|
|
140
|
+
问:使用 preprocess CLI 时出现 IterableDataset 错误或 KeyError: 'input_ids'
|
|
141
|
+
|
|
142
|
+
答:这可能是你分别将 preprocess CLI 用于 pretraining_dataset: 或 skip_prepare_dataset: true 导致的。请直接使用 axolotl train CLI,因为这些数据集是按需准备好的。
|
|
143
|
+
|
|
144
|
+
问:vLLM 在 Axolotl 中无法正常工作
|
|
145
|
+
|
|
146
|
+
答:我们目前推荐使用 torch 2.6.0 配合 vllm。请确保你使用了正确的版本。对于 Docker,请使用 main-py3.11-cu124-2.6.0 标签。
|
|
147
|
+
|
|
148
|
+
问:在 CUDA 12.4 上出现 FA2 2.8.0 undefined symbol 运行时错误
|
|
149
|
+
|
|
150
|
+
答:FA2 2.8.0 在 CUDA 12.4 上似乎存在 wheel 包问题。尝试改用 CUDA 12.6 或降级到 FA2 2.7.4。请参阅上游问题:https://github.com/Dao-AILab/flash-attention/issues/1717。
|
|
151
|
+
|
|
152
|
+
问:我们可以在 VLM 训练中混合纯文本和文本+图像数据集吗?
|
|
153
|
+
|
|
154
|
+
答:是的,对于较新的 VLM 架构是可以的。那些无法工作的是 LLaVA / Pixtral 架构。如果你发现有不能正常工作的情况,请告诉我们!
|
|
155
|
+
|
|
156
|
+
问:为什么 memory/max_* 与 nvidia-smi 显示的不同?
|
|
157
|
+
|
|
158
|
+
答:我们使用 torch API 来获取此信息。你可以查看 https://docs.pytorch.org/docs/stable/notes/cuda.html#cuda-memory-management 了解更多信息。
|
|
159
|
+
|
|
160
|
+
问:jinja2.exceptions.UndefinedError: 'dict object' has no attribute 'content' / 'role' / ____
|
|
161
|
+
|
|
162
|
+
答:这意味着在构建 chat_template 提示词时,所指属性对应的映射不存在。例如,如果没有 'content' 属性,请检查你是否在 message_property_mappings 下为 content 添加了正确的映射。
|
|
163
|
+
|
|
164
|
+
问:为第 ___ 轮生成了空模板
|
|
165
|
+
|
|
166
|
+
答:该轮次的内容为空。
|
|
167
|
+
|
|
168
|
+
问:找不到第 __ 轮内容的起始/结束边界
|
|
169
|
+
|
|
170
|
+
答:无法检测到特定轮次的起始/结束位置。请确保你已按照你的 chat_template 设置了 eos_token。否则,这可能是因为某个 chat_template 没有为每一轮(如 system)使用正确的边界。在极少数情况下,请确保你的内容不是 [[dummy_message]]。请向我们反馈此问题。
|
|
171
|
+
|
|
172
|
+
问:对于第 ___ 轮,内容结束边界在起始边界之前
|
|
173
|
+
|
|
174
|
+
答:这是一个不应发生的边缘情况。如果发生这种情况,请创建一个 Issue。
|
|
175
|
+
|
|
176
|
+
问:对于第 ___ 轮,内容结束边界与起始边界相同。这很可能是一个空轮次。
|
|
177
|
+
|
|
178
|
+
答:这很可能是一个空轮次。
|
|
179
|
+
|
|
180
|
+
问:EOS token 被错误地掩码或未被掩码 / 在聊天模板中找不到 EOS token __。
|
|
181
|
+
|
|
182
|
+
答:可能有两个原因:
|
|
183
|
+
|
|
184
|
+
问:“chat_template choice is tokenizer_default but tokenizer’s chat_template is null. Please add a chat_template in tokenizer config”
|
|
185
|
+
|
|
186
|
+
答:这是因为分词器没有聊天模板。请在分词器配置中添加聊天模板。有关更多详细信息,请参阅 chat_template。
|
|
187
|
+
|
|
188
|
+
问:EOT token 被错误地掩码或未被掩码 / 在聊天模板中找不到 EOT token __。
|
|
189
|
+
|
|
190
|
+
答:可能有两个原因:
|
|
191
|
+
|
|
192
|
+
问:EOT token 编码失败。请检查该 token 是否有效并且可以被编码。
|
|
193
|
+
|
|
194
|
+
答:可能是分词器或 Unicode 编码存在某些问题。请携带导致问题的 EOT token 和分词器的示例提交一个 Issue。
|
|
195
|
+
|
|
196
|
+
问:EOT token __ 被编码为多个 token。
|
|
197
|
+
|
|
198
|
+
答:这是因为 EOT token 被编码为了多个 token,这可能会导致意外行为。请将其添加在 tokens: 下,或者(推荐)通过 added_tokens_overrides: 覆盖未使用的 added_tokens。
|
|
199
|
+
|
|
200
|
+
问:train_on_eos 和 train_on_eot 之间存在冲突。eos_token 处于 eot_tokens 中,且 train_on_eos != train_on_eot
|
|
201
|
+
|
|
202
|
+
答:这是因为 EOS token 在 eot_tokens: 中,同时 train_on_eos: 和 train_on_eot: 存在不一致。这将导致其中一个覆盖另一个。请确保 train_on_eos: 和 train_on_eot: 相同,或者从 eot_tokens: 中移除 EOS token。
|
|
203
|
+
|
|
204
|
+
问:如果未提供 eot_tokens: 会发生什么?
|
|
205
|
+
|
|
206
|
+
答:如果未提供 eot_tokens:,默认行为与以前相同。用于分隔轮次的 EOS token 会根据该轮次是否可训练来进行掩码/取消掩码。
|
|
207
|
+
|
|
208
|
+
在内部,eot_tokens: 对应 tokenizer.eos_token,且 train_on_eot: 对应 train_on_eos(默认为 turn)。这种过渡有助于理清 EOT/EOS token 的命名和行为。
|
|
209
|
+
|
|
210
|
+
问:数据处理错误:CAS 服务错误
|
|
211
|
+
|
|
212
|
+
答:尝试通过 export HF_HUB_DISABLE_XET=1 禁用 XET。
|
|
213
|
+
|
|
214
|
+
问:torch._inductor.exc.LoweringException: NoValidChoicesError: No choices to select, please consider adding ATEN into max_autotune_gemm_backends config (defined in torch/_inductor/config.py) to allow at least one choice.
|
|
215
|
+
|
|
216
|
+
答:根据 torch 的版本,你可能需要在你的 YAML 中包含以下内容:
|
|
217
|
+
|
|
218
|
+
**问: ValueError("Backward pass should have cleared tracker of all tensors")
|
|
219
|
+
|
|
220
|
+
答:这可能是由于在 CUDA 流中使用现代 OffloadActivations 上下文管理器时出现的边缘情况导致的。如果你遇到此错误,通过在你的 YAML 中设置 offload_activations: legacy 来使用简单的实现可能会成功。
|
|
221
|
+
|
|
222
|
+
**问:解析 tool_calls 参数为 JSON 时出错。
|
|
223
|
+
|
|
224
|
+
答:将字符串参数解析为字典时出错。请检查你的数据集和错误消息以获取更多详细信息。
|
|
225
|
+
|
|
226
|
+
**示例:**
|
|
227
|
+
|
|
228
|
+
示例 1 (yaml):
|
|
229
|
+
```yaml
|
|
230
|
+
special_tokens:
|
|
231
|
+
# 字符串。如果你不确定,请将其设置为与 `eos_token` 相同。
|
|
232
|
+
pad_token: "..."
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
示例 2 (yaml):
|
|
236
|
+
```yaml
|
|
237
|
+
flex_attn_compile_kwargs:
|
|
238
|
+
dynamic: false
|
|
239
|
+
mode: max-autotune-no-cudagraphs
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## 安装
|
|
245
|
+
|
|
246
|
+
**URL:** https://docs.axolotl.ai/docs/installation.html
|
|
247
|
+
|
|
248
|
+
**目录:**
|
|
249
|
+
- 安装
|
|
250
|
+
- 1 要求
|
|
251
|
+
- 2 安装方法
|
|
252
|
+
- 2.1 PyPI 安装(推荐)
|
|
253
|
+
- 2.2 uv 安装
|
|
254
|
+
- 2.3 Edge/开发版构建
|
|
255
|
+
- 2.4 Docker
|
|
256
|
+
- 3 云环境
|
|
257
|
+
- 3.1 云 GPU 提供商
|
|
258
|
+
- 3.2 Google Colab
|
|
259
|
+
|
|
260
|
+
本指南涵盖了为你的环境安装和设置 Axolotl 的所有方法。
|
|
261
|
+
|
|
262
|
+
在本地环境中安装 Axolotl 之前,请确保已安装 PyTorch。
|
|
263
|
+
|
|
264
|
+
请按照以下网址的说明进行操作:https://pytorch.org/get-started/locally/
|
|
265
|
+
|
|
266
|
+
对于 Blackwell GPU,请使用 PyTorch 2.7.0 和 CUDA 12.8。
|
|
267
|
+
|
|
268
|
+
我们使用 --no-build-isolation 来检测已安装的 PyTorch 版本(如果已安装),以免覆盖它,并确保我们设置了特定于该 PyTorch 版本或其他已安装协同依赖项的正确依赖版本。
|
|
269
|
+
|
|
270
|
+
uv 是一个用 Rust 构建的快速、可靠的 Python 包安装和解析工具。它比 pip 提供了显著的性能提升,并具有更好的依赖解析能力,使其成为复杂环境下的绝佳选择。
|
|
271
|
+
|
|
272
|
+
如果尚未安装,请先安装 uv
|
|
273
|
+
|
|
274
|
+
选择要与 PyTorch 一起使用的 CUDA 版本;例如 cu124、cu126、cu128,然后创建虚拟环境并激活
|
|
275
|
+
|
|
276
|
+
安装 PyTorch - 推荐使用 PyTorch 2.6.0
|
|
277
|
+
|
|
278
|
+
从 PyPI 安装 axolotl
|
|
279
|
+
|
|
280
|
+
获取版本发布之间的最新功能:
|
|
281
|
+
|
|
282
|
+
用于使用 Docker 进行开发:
|
|
283
|
+
|
|
284
|
+
对于 Blackwell GPU,请使用 axolotlai/axolotl:main-py3.11-cu128-2.7.0 或云变体 axolotlai/axolotl-cloud:main-py3.11-cu128-2.7.0。
|
|
285
|
+
|
|
286
|
+
有关可用 Docker 镜像的更多信息,请参阅 Docker 文档。
|
|
287
|
+
|
|
288
|
+
对于支持 Docker 的提供商:
|
|
289
|
+
|
|
290
|
+
有关 Mac 特定的问题,请参见第 6 节。
|
|
291
|
+
|
|
292
|
+
我们建议使用 WSL2(Windows Subsystem for Linux)或 Docker。
|
|
293
|
+
|
|
294
|
+
安装 PyTorch:https://pytorch.org/get-started/locally/
|
|
295
|
+
|
|
296
|
+
(可选)登录 Hugging Face:
|
|
297
|
+
|
|
298
|
+
如果遇到安装问题,请参阅我们的常见问题解答和调试指南。
|
|
299
|
+
|
|
300
|
+
**示例:**
|
|
301
|
+
|
|
302
|
+
示例 1 (bash):
|
|
303
|
+
```bash
|
|
304
|
+
pip3 install -U packaging setuptools wheel ninja
|
|
305
|
+
pip3 install --no-build-isolation axolotl[flash-attn,deepspeed]
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
示例 2 (bash):
|
|
309
|
+
```bash
|
|
310
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
311
|
+
source $HOME/.local/bin/env
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
示例 3 (bash):
|
|
315
|
+
```bash
|
|
316
|
+
export UV_TORCH_BACKEND=cu126
|
|
317
|
+
uv venv --no-project --relocatable
|
|
318
|
+
source .venv/bin/activate
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
示例 4 (bash):
|
|
322
|
+
```bash
|
|
323
|
+
uv pip install packaging setuptools wheel
|
|
324
|
+
uv pip install torch==2.6.0
|
|
325
|
+
uv pip install awscli pydantic
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## 数据集预处理
|
|
331
|
+
|
|
332
|
+
**URL:** https://docs.axolotl.ai/docs/dataset_preprocessing.html
|
|
333
|
+
|
|
334
|
+
**目录:**
|
|
335
|
+
- 数据集预处理
|
|
336
|
+
- 概览
|
|
337
|
+
- 预处理的好处是什么?
|
|
338
|
+
- 边缘情况有哪些?
|
|
339
|
+
|
|
340
|
+
数据集预处理是 Axolotl 根据你配置的每个数据集,结合数据集格式和提示词策略进行以下操作的步骤:
|
|
341
|
+
|
|
342
|
+
数据集的处理可以通过以下两种方式之一进行:
|
|
343
|
+
|
|
344
|
+
在交互式训练或进行参数扫描(例如,你经常重启训练器)时,处理数据集通常慢得令人沮丧。预处理会根据相关训练参数的哈希值缓存分词/格式化后的数据集,以便在可能的情况下智能地从其缓存中读取。
|
|
345
|
+
|
|
346
|
+
缓存的路径由 dataset_prepared_path: 控制,在示例 YAML 中通常留空,因为这样可以形成更稳健的方案,防止意外重用过期的缓存数据。
|
|
347
|
+
|
|
348
|
+
如果 dataset_prepared_path: 留空,在训练时,处理后的数据集将缓存在默认路径 ./last_run_prepared/ 中,但会忽略那里已经缓存的任何内容。通过显式设置 dataset_prepared_path: ./last_run_prepared,训练器将使用缓存中的任何预处理数据。
|
|
349
|
+
|
|
350
|
+
假设你正在编写自定义提示词策略或使用用户定义的提示词模板。由于训练器无法轻易检测到这些更改,我们无法更改预处理数据集计算得出的哈希值。
|
|
351
|
+
|
|
352
|
+
如果你设置了 dataset_prepared_path: ... 并更改了提示词模板逻辑,它可能不会应用你所做的更改,你将继续使用旧的提示词进行训练。
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## 推理与合并
|
|
357
|
+
|
|
358
|
+
**URL:** https://docs.axolotl.ai/docs/inference.html
|
|
359
|
+
|
|
360
|
+
**目录:**
|
|
361
|
+
- 推理与合并
|
|
362
|
+
- 1 快速开始
|
|
363
|
+
- 1.1 基础推理
|
|
364
|
+
- 2 高级用法
|
|
365
|
+
- 2.1 Gradio 界面
|
|
366
|
+
- 2.2 基于文件的提示词
|
|
367
|
+
- 2.3 内存优化
|
|
368
|
+
- 3 合并 LoRA 权重
|
|
369
|
+
- 3.1 合并时的内存管理
|
|
370
|
+
- 4 分词
|
|
371
|
+
|
|
372
|
+
本指南涵盖了如何使用你训练好的模型进行推理,包括模型加载、交互式测试、合并适配器以及常见故障排除步骤。
|
|
373
|
+
|
|
374
|
+
推理/合并时,请使用与训练时相同的配置。
|
|
375
|
+
|
|
376
|
+
启动交互式 Web 界面:
|
|
377
|
+
|
|
378
|
+
从文本文件中处理提示词:
|
|
379
|
+
|
|
380
|
+
对于大模型或内存有限的情况:
|
|
381
|
+
|
|
382
|
+
将 LoRA 适配器与基础模型合并:
|
|
383
|
+
|
|
384
|
+
训练和推理之间的分词不匹配是产生问题的常见原因。
|
|
385
|
+
|
|
386
|
+
在输入模型之前解码 token,验证推理分词
|
|
387
|
+
|
|
388
|
+
比较训练和推理之间的 token ID
|
|
389
|
+
|
|
390
|
+
在你的 YAML 中配置特殊 token:
|
|
391
|
+
|
|
392
|
+
有关更多详细信息,请参阅我们的调试指南。
|
|
393
|
+
|
|
394
|
+
**示例:**
|
|
395
|
+
|
|
396
|
+
示例 1 (bash):
|
|
397
|
+
```bash
|
|
398
|
+
axolotl inference your_config.yml --lora-model-dir="./lora-output-dir"
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
示例 2 (bash):
|
|
402
|
+
```bash
|
|
403
|
+
axolotl inference your_config.yml --base-model="./completed-model"
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
示例 3 (bash):
|
|
407
|
+
```bash
|
|
408
|
+
axolotl inference your_config.yml --gradio
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
示例 4 (bash):
|
|
412
|
+
```bash
|
|
413
|
+
cat /tmp/prompt.txt | axolotl inference your_config.yml \
|
|
414
|
+
--base-model="./completed-model" --prompter=None
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
---
|
|
418
|
+
|
|
419
|
+
## 多模态/视觉语言模型 (BETA)
|
|
420
|
+
|
|
421
|
+
**URL:** https://docs.axolotl.ai/docs/multimodal.html
|
|
422
|
+
|
|
423
|
+
**目录:**
|
|
424
|
+
- 多模态/视觉语言模型 (BETA)
|
|
425
|
+
- 支持的模型
|
|
426
|
+
- 用法
|
|
427
|
+
- Mllama
|
|
428
|
+
- Llama4
|
|
429
|
+
- Pixtral
|
|
430
|
+
- Llava-1.5
|
|
431
|
+
- Mistral-Small-3.1
|
|
432
|
+
- Magistral-Small-2509
|
|
433
|
+
- Voxtral
|
|
434
|
+
|
|
435
|
+
多模态支持有限,不具备完整的功能对等性。
|
|
436
|
+
|
|
437
|
+
以下是你微调多模态模型所需要使用的超参数。
|
|
438
|
+
|
|
439
|
+
完整的配置请查看 examples 文件夹。
|
|
440
|
+
|
|
441
|
+
我们的一些 chat_templates 已经进行了扩展,以支持更广泛的数据集类型。这应该不会破坏任何现有的配置。
|
|
442
|
+
|
|
443
|
+
目前,我们不会根据 sequence_len 截断或丢弃样本,因为每种架构处理非文本 token 的方式不同。我们正在寻求这方面的帮助。
|
|
444
|
+
|
|
445
|
+
请确保通过 pip install 'mistral-common[opencv]==1.8.5' 安装视觉库。
|
|
446
|
+
|
|
447
|
+
请确保通过 pip install 'mistral-common[opencv]==1.8.5' 安装视觉库。
|
|
448
|
+
|
|
449
|
+
请确保通过 pip3 install librosa==0.11.0 'mistral_common[audio]==1.8.3' 安装音频库。
|
|
450
|
+
|
|
451
|
+
Gemma3-1B 模型是纯文本模型,因此请将其作为常规的纯文本模型进行训练。
|
|
452
|
+
|
|
453
|
+
对于多模态的 4B/12B/27B 模型,请使用以下配置:
|
|
454
|
+
|
|
455
|
+
模型初始的损失和梯度范数会非常高。我们怀疑这是由于视觉层中的卷积导致的。
|
|
456
|
+
|
|
457
|
+
请确保通过 pip3 install timm==1.0.17 安装 timm。
|
|
458
|
+
|
|
459
|
+
请确保通过 pip3 install num2words==0.5.14 安装 num2words。
|
|
460
|
+
|
|
461
|
+
请通过 pip3 uninstall -y causal-conv1d 卸载 causal-conv1d。
|
|
462
|
+
|
|
463
|
+
对于多模态数据集,我们采用了类似于 OpenAI Message 格式的扩展 chat_template 格式。
|
|
464
|
+
|
|
465
|
+
为了向后兼容:
|
|
466
|
+
|
|
467
|
+
对于图像加载,你可以在 content 中与 "type": "image" 一起使用以下键:
|
|
468
|
+
|
|
469
|
+
对于音频加载,你可以在 content 中与 "type": "audio" 一起使用以下键:
|
|
470
|
+
|
|
471
|
+
你可能需要通过 pip3 install librosa==0.11.0 安装 librosa。
|
|
472
|
+
|
|
473
|
+
目前该功能尚未经过充分测试。我们欢迎贡献者!
|
|
474
|
+
|
|
475
|
+
对于视频加载,你可以在 content 中与 "type": "video" 一起使用以下键:
|
|
476
|
+
|
|
477
|
+
以下是一个多模态数据集的示例:
|
|
478
|
+
|
|
479
|
+
PIL 无法使用 requests 获取指定 URL 的文件。请检查是否有拼写错误。另一个可能的原因是请求被服务器阻止了。
|
|
480
|
+
|
|
481
|
+
**示例:**
|
|
482
|
+
|
|
483
|
+
示例 1 (yaml):
|
|
484
|
+
```yaml
|
|
485
|
+
processor_type: AutoProcessor
|
|
486
|
+
|
|
487
|
+
skip_prepare_dataset: true
|
|
488
|
+
remove_unused_columns: false # 保留这些列,因为在训练期间处理图像嵌入时需要它们
|
|
489
|
+
sample_packing: false # 多模态暂不支持
|
|
490
|
+
|
|
491
|
+
chat_template: # 如果指定,请参见下一节
|
|
492
|
+
|
|
493
|
+
# 数据集示例
|
|
494
|
+
datasets:
|
|
495
|
+
- path: HuggingFaceH4/llava-instruct-mix-vsft
|
|
496
|
+
type: chat_template
|
|
497
|
+
split: train[:1%]
|
|
498
|
+
|
|
499
|
+
# (可选) 如果使用 lora,只微调语言模型,
|
|
500
|
+
# 保持视觉模型和视觉塔冻结
|
|
501
|
+
# load_in_8bit: true
|
|
502
|
+
adapter: lora
|
|
503
|
+
lora_target_modules: 'model.language_model.layers.[\d]+.(mlp|cross_attn|self_attn).(up|down|gate|q|k|v|o)_proj'
|
|
504
|
+
|
|
505
|
+
# (可选) 如果你想将图像调整为设定的大小
|
|
506
|
+
image_size: 512
|
|
507
|
+
image_resize_algorithm: bilinear
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
示例 2 (yaml):
|
|
511
|
+
```yaml
|
|
512
|
+
base_model: meta-llama/Llama-3.2-11B-Vision-Instruct
|
|
513
|
+
|
|
514
|
+
chat_template: llama3_2_vision
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
示例 3 (yaml):
|
|
518
|
+
```yaml
|
|
519
|
+
base_model: meta-llama/Llama-4-Scout-17B-16E-Instruct
|
|
520
|
+
|
|
521
|
+
chat_template: llama4
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
示例 4 (yaml):
|
|
525
|
+
```yaml
|
|
526
|
+
base_model: mistralai/Pixtral-12B-2409
|
|
527
|
+
|
|
528
|
+
chat_template: pixtral
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
---
|
|
532
|
+
|
|
533
|
+
## 奖励建模
|
|
534
|
+
|
|
535
|
+
**URL:** https://docs.axolotl.ai/docs/reward_modelling.html
|
|
536
|
+
|
|
537
|
+
**目录:**
|
|
538
|
+
- 奖励建模
|
|
539
|
+
- 概览
|
|
540
|
+
- (结果) 奖励模型
|
|
541
|
+
- 过程奖励模型 (PRM)
|
|
542
|
+
|
|
543
|
+
奖励建模是一种用于训练模型预测给定输入奖励或价值的技术。这在强化学习场景中特别有用,因为模型需要评估其行为或预测的质量。我们支持由 trl 提供支持的奖励建模技术。
|
|
544
|
+
|
|
545
|
+
结果奖励模型是使用包含用户与模型之间整个交互过程的偏好标注数据(例如,而不是每一轮或每一个步骤)进行训练的。为了提高训练稳定性,你可以使用 center_rewards_coefficient 参数来鼓励产生均值为零的奖励输出(见 TRL 文档)。
|
|
546
|
+
|
|
547
|
+
Bradley-Terry 聊天模板期望按以下格式提供单轮对话:
|
|
548
|
+
|
|
549
|
+
请查看我们的 PRM 博客。
|
|
550
|
+
|
|
551
|
+
过程奖励模型是使用包含一系列交互中每一步的偏好标注数据进行训练的。通常,PRM 被训练来为推理轨迹的每一个步骤提供奖励信号,并用于后续的强化学习。
|
|
552
|
+
|
|
553
|
+
有关数据集格式的更多详细信息,请参见 stepwise_supervised。
|
|
554
|
+
|
|
555
|
+
**示例:**
|
|
556
|
+
|
|
557
|
+
示例 1 (yaml):
|
|
558
|
+
```yaml
|
|
559
|
+
base_model: google/gemma-2-2b
|
|
560
|
+
model_type: AutoModelForSequenceClassification
|
|
561
|
+
num_labels: 1
|
|
562
|
+
tokenizer_type: AutoTokenizer
|
|
563
|
+
|
|
564
|
+
reward_model: true
|
|
565
|
+
chat_template: gemma
|
|
566
|
+
datasets:
|
|
567
|
+
- path: argilla/distilabel-intel-orca-dpo-pairs
|
|
568
|
+
type: bradley_terry.chat_template
|
|
569
|
+
|
|
570
|
+
val_set_size: 0.1
|
|
571
|
+
eval_steps: 100
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
示例 2 (json):
|
|
575
|
+
```json
|
|
576
|
+
{
|
|
577
|
+
"system": "...", // 可选
|
|
578
|
+
"input": "...",
|
|
579
|
+
"chosen": "...",
|
|
580
|
+
"rejected": "..."
|
|
581
|
+
}
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
示例 3 (yaml):
|
|
585
|
+
```yaml
|
|
586
|
+
base_model: Qwen/Qwen2.5-3B
|
|
587
|
+
model_type: AutoModelForTokenClassification
|
|
588
|
+
num_labels: 2
|
|
589
|
+
|
|
590
|
+
process_reward_model: true
|
|
591
|
+
datasets:
|
|
592
|
+
- path: trl-lib/math_shepherd
|
|
593
|
+
type: stepwise_supervised
|
|
594
|
+
split: train
|
|
595
|
+
|
|
596
|
+
val_set_size: 0.1
|
|
597
|
+
eval_steps: 100
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
---
|
|
601
|
+
|
|
602
|
+
## RLHF (Beta)
|
|
603
|
+
|
|
604
|
+
**URL:** https://docs.axolotl.ai/docs/rlhf.html
|
|
605
|
+
|
|
606
|
+
**目录:**
|
|
607
|
+
- RLHF (Beta)
|
|
608
|
+
- 概览
|
|
609
|
+
- 使用 Axolotl 进行 RLHF
|
|
610
|
+
- DPO
|
|
611
|
+
- chatml.argilla
|
|
612
|
+
- chatml.argilla_chat
|
|
613
|
+
- chatml.icr
|
|
614
|
+
- chatml.intel
|
|
615
|
+
- chatml.prompt_pairs
|
|
616
|
+
- chatml.ultra
|
|
617
|
+
|
|
618
|
+
基于人类反馈的强化学习(RLHF)是一种利用人类反馈数据来优化语言模型的方法。各种方法包括但不限于:
|
|
619
|
+
|
|
620
|
+
这是一个 BETA 功能,许多功能尚未完全实现。我们鼓励你提交新的 PR 来改善其集成和功能。
|
|
621
|
+
|
|
622
|
+
我们依赖 TRL 库来实现各种 RL 训练方法,并对其进行封装以便在 Axolotl 中使用。每种方法都有其自身支持的数据集加载方式和提示词格式。
|
|
623
|
+
|
|
624
|
+
你可以通过进入 src/axolotl/prompt_strategies/{method} 来了解每种方法支持的内容,其中 {method} 是我们支持的方法之一。type: 可以从 {method}.{function_name} 中获取。
|
|
625
|
+
|
|
626
|
+
DPO 支持以下类型以及以下数据集格式:
|
|
627
|
+
|
|
628
|
+
对于自定义行为,
|
|
629
|
+
|
|
630
|
+
输入格式是一个简单的 JSON 输入,其字段基于上述配置可进行自定义。
|
|
631
|
+
|
|
632
|
+
由于 IPO 只是具有不同损失函数的 DPO,因此 DPO 支持的所有数据集格式也适用于 IPO。
|
|
633
|
+
|
|
634
|
+
论文:https://arxiv.org/abs/2403.07691
|
|
635
|
+
|
|
636
|
+
ORPO 支持以下类型以及以下数据集格式:
|
|
637
|
+
|
|
638
|
+
KTO 支持以下类型以及以下数据集格式:
|
|
639
|
+
|
|
640
|
+
对于自定义行为,
|
|
641
|
+
|
|
642
|
+
输入格式是一个简单的 JSON 输入,其字段基于上述配置可进行自定义。
|
|
643
|
+
|
|
644
|
+
请查看我们的 GRPO 实践手册。
|
|
645
|
+
|
|
646
|
+
在最新的 GRPO 实现中,使用 vLLM 显著加快了训练过程中的轨迹生成速度。在此示例中,我们使用了 4 个 GPU - 2 个用于训练,另外 2 个用于 vLLM:
|
|
647
|
+
|
|
648
|
+
请确保在安装 axolotl 时将 vLLM 作为附加项安装以获取正确版本的 vLLM,例如 pip install axolotl[vllm]。
|
|
649
|
+
|
|
650
|
+
你的 vLLM 实例现在将尝试启动,是时候利用我们剩下的两个 GPU 开始训练了。在另一个终端中,执行:
|
|
651
|
+
|
|
652
|
+
由于 TRL 与 vLLM 的实现方式,vLLM 实例必须使用最后 N 个 GPU,而不是前 N 个 GPU。这就是为什么在上面的示例中,我们为 vLLM 实例使用 CUDA_VISIBLE_DEVICES=2,3 的原因。
|
|
653
|
+
|
|
654
|
+
GRPO 使用自定义的奖励函数和转换。请确保在本地准备好它们。
|
|
655
|
+
|
|
656
|
+
例如,要加载 OpenAI 的 GSM8K 并为补全内容使用随机奖励:
|
|
657
|
+
|
|
658
|
+
要查看自定义奖励函数的其他示例,请参阅 TRL GRPO 文档。
|
|
659
|
+
|
|
660
|
+
要查看所有配置,请参阅 TRLConfig。
|
|
661
|
+
|
|
662
|
+
DAPO 论文以及随后的 Dr. GRPO 论文为 GRPO 提出了一种替代的损失函数,以弥补较长回复受到的惩罚。
|
|
663
|
+
|
|
664
|
+
有关更多信息,请参阅 GRPO 文档。
|
|
665
|
+
|
|
666
|
+
SimPO 使用 CPOTrainer,但采用替代的损失函数。
|
|
667
|
+
|
|
668
|
+
此方法使用与 DPO 相同的数据集格式。
|
|
669
|
+
|
|
670
|
+
TRL 支持为依赖参考模型的 RL 训练范式自动解包 PEFT 模型。这显著降低了内存压力,因为不需要加载额外的参考模型,并且可以通过禁用 PEFT 适配器来获取参考模型的对数概率。此功能默认开启。要将其关闭,请传递以下配置:
|
|
671
|
+
|
|
672
|
+
**示例:**
|
|
673
|
+
|
|
674
|
+
示例 1 (yaml):
|
|
675
|
+
```yaml
|
|
676
|
+
rl: dpo
|
|
677
|
+
datasets:
|
|
678
|
+
- path: Intel/orca_dpo_pairs
|
|
679
|
+
split: train
|
|
680
|
+
type: chatml.intel
|
|
681
|
+
- path: argilla/ultrafeedback-binarized-preferences
|
|
682
|
+
split: train
|
|
683
|
+
type: chatml
|
|
684
|
+
```
|
|
685
|
+
|
|
686
|
+
示例 2 (json):
|
|
687
|
+
```json
|
|
688
|
+
{
|
|
689
|
+
"system": "...", // 可选
|
|
690
|
+
"instruction": "...",
|
|
691
|
+
"chosen_response": "...",
|
|
692
|
+
"rejected_response": "..."
|
|
693
|
+
}
|
|
694
|
+
```
|
|
695
|
+
|
|
696
|
+
示例 3 (json):
|
|
697
|
+
```json
|
|
698
|
+
{
|
|
699
|
+
"chosen": [
|
|
700
|
+
{"role": "user", "content": "..."},
|
|
701
|
+
{"role": "assistant", "content": "..."}
|
|
702
|
+
],
|
|
703
|
+
"rejected": [
|
|
704
|
+
{"role": "user", "content": "..."},
|
|
705
|
+
{"role": "assistant", "content": "..."}
|
|
706
|
+
]
|
|
707
|
+
}
|
|
708
|
+
```
|
|
709
|
+
|
|
710
|
+
示例 4 (json):
|
|
711
|
+
```json
|
|
712
|
+
{
|
|
713
|
+
"system": "...", // 可选
|
|
714
|
+
"input": "...",
|
|
715
|
+
"chosen": "...",
|
|
716
|
+
"rejected": "..."
|
|
717
|
+
}
|
|
718
|
+
```
|
|
719
|
+
|
|
720
|
+
---
|
|
721
|
+
|
|
722
|
+
## LoRA 优化
|
|
723
|
+
|
|
724
|
+
**URL:** https://docs.axolotl.ai/docs/lora_optims.html
|
|
725
|
+
|
|
726
|
+
**目录:**
|
|
727
|
+
- LoRA 优化
|
|
728
|
+
- 用法
|
|
729
|
+
- 要求
|
|
730
|
+
- 实现细节
|
|
731
|
+
- 自定义 autograd 函数
|
|
732
|
+
- Triton 内核
|
|
733
|
+
- 集成
|
|
734
|
+
- 后续工作
|
|
735
|
+
|
|
736
|
+
受 Unsloth 启发,我们为 LoRA 和 QLoRA 微调实现了两项优化,支持单 GPU 和多 GPU(包括 DDP、DeepSpeed 和 FSDP2 设置)训练。这些包括 (1) SwiGLU 和 GEGLU 激活函数的 Triton 内核,以及 (2) LoRA MLP 和注意力机制的自定义 autograd 函数。我们的目标是利用算子融合和张量重用,来提高这些计算的前向和反向传递过程中的速度并减少内存使用。
|
|
737
|
+
|
|
738
|
+
我们目前支持几种常见的模型架构,包括(但不限于):
|
|
739
|
+
|
|
740
|
+
我们支持的模型集合目前受到注意力补丁策略的限制,该策略假定(并替换)了用于查询/键/值和输出投影的特定代码块:
|
|
741
|
+
|
|
742
|
+
其中 apply_qkv 和 apply_o 定义在 axolotl.kernels.lora 模块中。
|
|
743
|
+
|
|
744
|
+
我们欢迎对其他模型架构进行测试,和/或提交 PR 以扩展我们的补丁逻辑,使其兼容更多的模型。
|
|
745
|
+
|
|
746
|
+
请查看我们的 LoRA 优化博客。
|
|
747
|
+
|
|
748
|
+
这些优化可以在你的 Axolotl 配置 YAML 文件中启用。lora_mlp_kernel 选项用于启用优化的 MLP 路径,而 lora_qkv_kernel 和 lora_o_kernel 分别启用融合的查询-键-值投影和优化的输出投影。
|
|
749
|
+
|
|
750
|
+
目前,LoRA 内核不支持 RLHF 训练,仅支持 SFT。
|
|
751
|
+
|
|
752
|
+
带有现有 LoRA 适配器且使用了 Dropout 或具有偏置项的模型,可能需要在不使用这些特性的情况下重新微调才能发挥效用。
|
|
753
|
+
|
|
754
|
+
LoRA MLP autograd 函数优化了整个 MLP 计算路径。它将 LoRA 和基础权重的计算融合在一起,并为整个 MLP 块提供了单一、高效的反向传递。
|
|
755
|
+
|
|
756
|
+
对于注意力组件,通过一个处理查询、键和值投影的函数以及一个处理输出投影的函数提供了类似的优化。它们通过一些 monkey-patching 逻辑设计为与现有的 transformers 注意力实现一起工作。
|
|
757
|
+
|
|
758
|
+
两种激活函数(SwiGLU 和 GeGLU)通过 Triton 内核实现,以提高速度和内存性能。这些内核同时处理前向和反向传递。
|
|
759
|
+
|
|
760
|
+
自定义 autograd 函数和 Triton 内核被设计为协同工作。autograd 函数管理高层计算流和梯度跟踪,同时调用 Triton 内核进行激活函数计算。在反向传递期间,内核会计算激活输出和所需的梯度,随后 autograd 函数利用它们来计算整个计算路径的最终梯度。
|
|
761
|
+
|
|
762
|
+
**示例:**
|
|
763
|
+
|
|
764
|
+
示例 1 (python):
|
|
765
|
+
```python
|
|
766
|
+
ORIGINAL_QKV_CODE = """
|
|
767
|
+
query_states = self.q_proj(hidden_states).view(hidden_shape).transpose(1, 2)
|
|
768
|
+
key_states = self.k_proj(hidden_states).view(hidden_shape).transpose(1, 2)
|
|
769
|
+
value_states = self.v_proj(hidden_states).view(hidden_shape).transpose(1, 2)
|
|
770
|
+
""".lstrip(
|
|
771
|
+
"\n"
|
|
772
|
+
)
|
|
773
|
+
|
|
774
|
+
ORIGINAL_O_CODE = """
|
|
775
|
+
attn_output = self.o_proj(attn_output)
|
|
776
|
+
""".lstrip(
|
|
777
|
+
"\n"
|
|
778
|
+
)
|
|
779
|
+
```
|
|
780
|
+
|
|
781
|
+
示例 2 (python):
|
|
782
|
+
```python
|
|
783
|
+
PATCHED_QKV_CODE = """
|
|
784
|
+
query_states, key_states, value_states = self.apply_qkv(hidden_states)
|
|
785
|
+
query_states = query_states.view(hidden_shape).transpose(1, 2)
|
|
786
|
+
key_states = key_states.view(hidden_shape).transpose(1, 2)
|
|
787
|
+
value_states = value_states.view(hidden_shape).transpose(1, 2)
|
|
788
|
+
""".lstrip(
|
|
789
|
+
"\n"
|
|
790
|
+
)
|
|
791
|
+
|
|
792
|
+
PATCHED_O_CODE = """
|
|
793
|
+
attn_output = self.apply_o(attn_output)
|
|
794
|
+
""".lstrip(
|
|
795
|
+
"\n"
|
|
796
|
+
)
|
|
797
|
+
```
|
|
798
|
+
|
|
799
|
+
示例 3 (yaml):
|
|
800
|
+
```yaml
|
|
801
|
+
lora_mlp_kernel: true
|
|
802
|
+
lora_qkv_kernel: true
|
|
803
|
+
lora_o_kernel: true
|
|
804
|
+
```
|
|
805
|
+
|
|
806
|
+
---
|
|
807
|
+
|
|
808
|
+
## 使用 torchao 进行量化
|
|
809
|
+
|
|
810
|
+
**URL:** https://docs.axolotl.ai/docs/quantize.html
|
|
811
|
+
|
|
812
|
+
**目录:**
|
|
813
|
+
- 使用 torchao 进行量化
|
|
814
|
+
- 在 Axolotl 中配置量化
|
|
815
|
+
|
|
816
|
+
量化是一种降低模型内存占用技术,潜在的代价是牺牲精度或模型性能。我们支持使用 torchao 库对你的模型进行量化。支持训练后量化 (PTQ) 和量化感知训练 (QAT)。
|
|
817
|
+
|
|
818
|
+
我们目前不支持诸如 GGUF/GPTQ、EXL2 等量化技术。
|
|
819
|
+
|
|
820
|
+
在你的配置文件中使用 quantization 键来配置量化。
|
|
821
|
+
|
|
822
|
+
量化完成后,你的量化模型将保存在 {output_dir}/quantized 目录中。
|
|
823
|
+
|
|
824
|
+
你还可以使用 quantize 命令对使用 QAT 训练的模型进行量化——你可以通过使用你用来训练模型的现有 QAT 配置文件来做到这一点:
|
|
825
|
+
|
|
826
|
+
这确保了在对模型进行量化时,使用了与训练时完全相同的量化配置。
|
|
827
|
+
|
|
828
|
+
如果你配置了使用 hub_model_id 推送到 hub,你的模型 hub 名称将会附加量化方案后缀,例如 axolotl-ai-cloud/qat-nvfp4-llama3B 将变为 axolotl-ai-cloud/qat-nvfp4-llama3B-nvfp4w
|
|
829
|
+
|
|
830
|
+
**示例:**
|
|
831
|
+
|
|
832
|
+
示例 1 (yaml):
|
|
833
|
+
```yaml
|
|
834
|
+
base_model: # 需要量化的模型路径。
|
|
835
|
+
quantization:
|
|
836
|
+
activation_dtype: # Optional[str] = "int8". 用于激活量化的伪量化布局。有效选项为 "int4"、"int8"、"float8"
|
|
837
|
+
weight_dtype: # Optional[str] = "int8". 用于权重权重的伪量化布局。有效选项为 "int4"、"fp8" 和 "nvfp4"。
|
|
838
|
+
group_size: # Optional[int] = 32. 每组伪量化中的元素数量
|
|
839
|
+
quantize_embedding: # Optional[bool] = False. 是否对嵌入层进行量化。
|
|
840
|
+
|
|
841
|
+
output_dir: # 输出目录的路径。
|
|
842
|
+
```
|
|
843
|
+
|
|
844
|
+
示例 2 (yaml):
|
|
845
|
+
```yaml
|
|
846
|
+
# qat.yml
|
|
847
|
+
qat:
|
|
848
|
+
activation_dtype: int8
|
|
849
|
+
weight_dtype: int4
|
|
850
|
+
group_size: 256
|
|
851
|
+
|
|
852
|
+
output_dir: # 训练期间使用的输出目录的路径,最终检查点已保存在此。
|
|
853
|
+
```
|
|
854
|
+
|
|
855
|
+
示例 3 (bash):
|
|
856
|
+
```bash
|
|
857
|
+
axolotl quantize qat.yml
|
|
858
|
+
```
|
|
859
|
+
|
|
860
|
+
---
|
|
861
|
+
|
|
862
|
+
## NCCL
|
|
863
|
+
|
|
864
|
+
**URL:** https://docs.axolotl.ai/docs/nccl.html
|
|
865
|
+
|
|
866
|
+
**目录:**
|
|
867
|
+
- NCCL
|
|
868
|
+
|
|
869
|
+
NVIDIA NCCL 是一个促进和优化多 GPU 通信操作(如广播、全聚合、规减、全规减等)的库。总体而言,NCCL 配置高度依赖于环境,并通过多个环境变量进行配置。与 NCCL 相关的一个常见问题是,长时间运行的操作超时导致训练过程中止:
|
|
870
|
+
|
|
871
|
+
通常,这种超时会在 30 分钟(默认设置)后发生,并在引发错误之前伴随着低于平均水平的功耗和接近 100% 的 GPU 利用率。如果此选项可用,NVIDIA 建议禁用 PCI 访问控制服务 (ACS) 作为可能的解决方案。
|
|
872
|
+
|
|
873
|
+
在不增加超时的情况下,强制通过 NVLink 进行跨 GPU 通信可能会有所帮助。要验证你的配置是否正在利用 NVLink,请运行以下命令:
|
|
874
|
+
|
|
875
|
+
要强制 NCCL 使用 NVLink,只需在环境中进行设置:
|
|
876
|
+
|
|
877
|
+
如果你的环境中不可用 NVLink,下表提供了 NCCL_P2P_LEVEL 的其他选项:
|
|
878
|
+
|
|
879
|
+
为了验证你的训练任务是否存在可接受的数据传输速度,运行 NCCL 测试有助于找出瓶颈,例如:
|
|
880
|
+
|
|
881
|
+
在调试 NCCL 通信超时时,在 PyTorch 和 NCCL 中激活额外的日志记录可能会很有用:
|
|
882
|
+
|
|
883
|
+
最后,如果你认为你的训练任务需要更多时间,你可以通过在 Axolotl 配置中设置 ddp_timeout 值来将超时增加到 30 分钟以上。有关此值的文档,请参阅 PyTorch init_process_group。
|
|
884
|
+
|
|
885
|
+
**示例:**
|
|
886
|
+
|
|
887
|
+
示例 1 (unknown):
|
|
888
|
+
```unknown
|
|
889
|
+
Watchdog caught collective operation timeout: WorkNCCL(SeqNum=42, OpType=ALLGATHER, Timeout(ms)=1800000) ran for 1806948 milliseconds before timing out.
|
|
890
|
+
```
|
|
891
|
+
|
|
892
|
+
示例 2 (bash):
|
|
893
|
+
```bash
|
|
894
|
+
nvidia-smi nvlink --status
|
|
895
|
+
```
|
|
896
|
+
|
|
897
|
+
示例 3 (bash):
|
|
898
|
+
```bash
|
|
899
|
+
export NCCL_P2P_LEVEL=NVL
|
|
900
|
+
```
|
|
901
|
+
|
|
902
|
+
示例 4 (bash):
|
|
903
|
+
```bash
|
|
904
|
+
./build/all_reduce_perf -b 8 -e 128M -f 2 -g 3
|
|
905
|
+
```
|
|
906
|
+
|
|
907
|
+
---
|
|
908
|
+
|
|
909
|
+
## 多节点
|
|
910
|
+
|
|
911
|
+
**URL:** https://docs.axolotl.ai/docs/multi-node
|
|
912
|
+
|
|
913
|
+
## FSDP + QLoRA
|
|
914
|
+
|
|
915
|
+
**URL:** https://docs.axolotl.ai/docs/fsdp_qlora.html
|
|
916
|
+
|
|
917
|
+
**目录:**
|
|
918
|
+
- FSDP + QLoRA
|
|
919
|
+
- 背景
|
|
920
|
+
- 用法
|
|
921
|
+
- 为 FSDP2 启用 Swap
|
|
922
|
+
- 示例配置
|
|
923
|
+
- 参考
|
|
924
|
+
- 脚注
|
|
925
|
+
|
|
926
|
+
在消费级 GPU 上微调较大(70b+ 参数)的 LLM 时,将 FSDP 与 QLoRA 结合使用是必不可少的。例如,你可以使用 FSDP + QLoRA 在两张 24GB 的 GPU 上训练 70b 模型1。
|
|
927
|
+
|
|
928
|
+
下面,我们将介绍如何在 Axolotl 中使用此功能。
|
|
929
|
+
|
|
930
|
+
要启用结合 FSDP 的 QLoRA,你需要执行以下步骤:
|
|
931
|
+
|
|
932
|
+
![提示] 除了阅读这些说明外,请参阅示例配置文件。
|
|
933
|
+
|
|
934
|
+
如果在 FSDP 的 CPU 卸载(offload)之后可用内存仍然不足,你可以在 FSDP 配置中设置 `cpu_offload_pin_memory: false` 并配合 `offload_params: true` 来启用交换内存(swap)的使用。
|
|
935
|
+
|
|
936
|
+
这会禁用内存锁定,允许 FSDP 将磁盘交换空间作为后备。禁用内存锁定本身会带来性能开销,而实际使用 swap 会增加更多开销,但这可能使得在资源受限的系统上训练更大的模型成为可能,从而避免原本会出现的 OOM(内存溢出)错误。
|
|
937
|
+
|
|
938
|
+
`examples/llama-2/qlora-fsdp.yml` 中包含了如何在 axolotl 中启用 QLoRA + FSDP 的示例。
|
|
939
|
+
|
|
940
|
+
此功能由 Answer.AI 团队的工作促成。↩︎
|
|
941
|
+
|
|
942
|
+
---
|
|
943
|
+
|
|
944
|
+
## 自定义集成
|
|
945
|
+
|
|
946
|
+
**URL:** https://docs.axolotl.ai/docs/custom_integrations.html
|
|
947
|
+
|
|
948
|
+
**目录:**
|
|
949
|
+
- 自定义集成
|
|
950
|
+
- Cut Cross Entropy
|
|
951
|
+
- 要求
|
|
952
|
+
- 安装
|
|
953
|
+
- 用法
|
|
954
|
+
- 支持的模型
|
|
955
|
+
- 引用
|
|
956
|
+
- DenseMixer
|
|
957
|
+
- Axolotl 的扩散模型训练插件
|
|
958
|
+
- 概览
|
|
959
|
+
|
|
960
|
+
Axolotl 通过集成来添加自定义功能。它们位于 `src/axolotl/integrations` 目录中。
|
|
961
|
+
|
|
962
|
+
要启用它们,请查看相应的文档。
|
|
963
|
+
|
|
964
|
+
Cut Cross Entropy (CCE) 通过在损失计算过程中优化交叉熵操作来减少显存(VRAM)使用量。
|
|
965
|
+
|
|
966
|
+
请参阅 https://github.com/apple/ml-cross-entropy
|
|
967
|
+
|
|
968
|
+
如果你尚未安装,请运行以下命令安装 `cut_cross_entropy[transformers]`。
|
|
969
|
+
|
|
970
|
+
请在此处查看参考
|
|
971
|
+
|
|
972
|
+
只需将以下内容添加到你的 axolotl YAML 配置中:
|
|
973
|
+
|
|
974
|
+
请在此处查看参考
|
|
975
|
+
|
|
976
|
+
这个插件使得在 Axolotl 中能够使用受 LLaDA(大型语言扩散模型)启发的方法来进行扩散语言模型训练。
|
|
977
|
+
|
|
978
|
+
LLaDA 是一种基于扩散的语言模型训练方法,它使用:
|
|
979
|
+
- 在训练过程中进行随机 token 掩码,而不是下一 token 预测
|
|
980
|
+
- 双向注意力,允许模型关注完整的上下文
|
|
981
|
+
- 基于掩码概率的重要性加权,以确保训练稳定
|
|
982
|
+
|
|
983
|
+
这种方法可以产生更稳健的语言模型,对双向上下文有更好的理解。
|
|
984
|
+
|
|
985
|
+
该插件已包含在 Axolotl 中。请参阅我们的安装文档。
|
|
986
|
+
|
|
987
|
+
使用示例配置(Llama‑3.2 1B)进行训练:
|
|
988
|
+
- 预训练:`axolotl train examples/llama-3/diffusion-3.2-1b-pretrain.yaml`
|
|
989
|
+
- SFT:`axolotl train examples/llama-3/diffusion-3.2-1b-sft.yaml`
|
|
990
|
+
|
|
991
|
+
你也可以修改现有配置来启用/自定义扩散训练。
|
|
992
|
+
|
|
993
|
+
将以下内容添加到你的 Axolotl 配置中:
|
|
994
|
+
|
|
995
|
+
然后,配置嵌套的 diffusion 块(显示的是默认值):
|
|
996
|
+
|
|
997
|
+
任何支持 4D 注意力掩码的模型应该都可以开箱即用。如果不支持,请创建一个 issue 或提交一个 PR!
|
|
998
|
+
|
|
999
|
+
在训练期间,token 会被随机掩码:
|
|
1000
|
+
- 从 [0, 1] 中均匀采样时间步 t
|
|
1001
|
+
- 计算掩码概率:p = (1 - eps) * t + eps
|
|
1002
|
+
- 以概率 p 随机掩码 token
|
|
1003
|
+
|
|
1004
|
+
损失仅在带有(可选的)重要性权重的被掩码 token 上计算:
|
|
1005
|
+
|
|
1006
|
+
当 `diffusion.generate_samples: true` 时,插件会在训练期间生成样本:
|
|
1007
|
+
|
|
1008
|
+
样本会被记录到控制台以及 wandb(如果已启用)。
|
|
1009
|
+
|
|
1010
|
+
扩散推理已集成到标准的 Axolotl CLI 中。使用你训练时用过的相同配置并运行:
|
|
1011
|
+
|
|
1012
|
+
或者,传入 `--gradio` 来使用简单的 Web 界面。
|
|
1013
|
+
|
|
1014
|
+
交互控制(在提示词前加上命令):
|
|
1015
|
+
- `:complete N` → 追加 N 个新的被掩码 token 的补全模式(默认为 64)
|
|
1016
|
+
- `:mask R` → 目标掩码率 R 在 [0.0, 1.0] 之间的随机掩码模式
|
|
1017
|
+
|
|
1018
|
+
该插件添加(或修改)了几个指标来跟踪扩散训练:
|
|
1019
|
+
|
|
1020
|
+
请在此处查看参考
|
|
1021
|
+
|
|
1022
|
+
请参阅 https://github.com/ironjr/grokfast
|
|
1023
|
+
|
|
1024
|
+
请在此处查看参考
|
|
1025
|
+
|
|
1026
|
+
可以在 `axolotl-ai-co/evolkit-logprobs-pipeline-75k-v2-sample` 找到示例数据集
|
|
1027
|
+
|
|
1028
|
+
请在此处查看参考
|
|
1029
|
+
|
|
1030
|
+
在 Axolotl 中使用 Neural Magic 的 LLMCompressor 微调稀疏化模型。
|
|
1031
|
+
|
|
1032
|
+
此集成允许在 Axolotl 训练框架内微调使用 LLMCompressor 稀疏化的模型。通过将 LLMCompressor 的模型压缩能力与 Axolotl 的分布式训练管道相结合,用户可以大规模地高效微调稀疏模型。
|
|
1033
|
+
|
|
1034
|
+
它使用 Axolotl 的插件系统挂钩到微调流程中,同时在训练过程中保持稀疏性。
|
|
1035
|
+
|
|
1036
|
+
带有 llmcompressor 扩展依赖的 Axolotl:
|
|
1037
|
+
|
|
1038
|
+
需要 llmcompressor >= 0.5.1
|
|
1039
|
+
|
|
1040
|
+
这将安装使用该集成微调稀疏化模型所需的所有依赖项。
|
|
1041
|
+
|
|
1042
|
+
要使用此集成启用稀疏微调,请将此插件包含在你的 Axolotl 配置中:
|
|
1043
|
+
|
|
1044
|
+
这个插件本身并不执行剪枝或稀疏化——它是为微调已经稀疏化的模型而设计的。
|
|
1045
|
+
|
|
1046
|
+
预稀疏化的检查点可以是:
|
|
1047
|
+
- 使用 LLMCompressor 生成
|
|
1048
|
+
- 从 Neural Magic 的 Hugging Face 页面下载
|
|
1049
|
+
- 你自己创建的具有兼容稀疏模式的任何自定义 LLM
|
|
1050
|
+
|
|
1051
|
+
要了解有关编写和自定义 LLMCompressor 配方的更多信息,请参阅官方文档:https://github.com/vllm-project/llm-compressor/blob/main/README.md
|
|
1052
|
+
|
|
1053
|
+
在你的配置中设置 `save_compressed: true` 将启用以压缩格式保存模型,这会:
|
|
1054
|
+
- 将磁盘空间使用量减少约 40%
|
|
1055
|
+
- 保持与 vLLM 的兼容性以实现加速推理
|
|
1056
|
+
- 保持与 llmcompressor 的兼容性以进行进一步优化(例如:量化)
|
|
1057
|
+
|
|
1058
|
+
在处理稀疏模型时,强烈建议使用此选项,以最大化模型压缩的优势。
|
|
1059
|
+
|
|
1060
|
+
有关完整示例,请参阅 `examples/llama-3/sparse-finetuning.yaml`。
|
|
1061
|
+
|
|
1062
|
+
微调稀疏模型后,你可以利用 vLLM 进行高效推理。你也可以在推理之前使用 LLMCompressor 对微调后的稀疏模型应用额外的量化,以获得更大的性能提升。:
|
|
1063
|
+
|
|
1064
|
+
有关 vLLM 的功能和高级配置选项的更多详细信息,请参阅官方的 vLLM 文档。
|
|
1065
|
+
|
|
1066
|
+
有关可用的稀疏和量化方案、微调配方以及使用示例,请访问官方的 LLMCompressor 仓库:
|
|
1067
|
+
|
|
1068
|
+
https://github.com/vllm-project/llm-compressor
|
|
1069
|
+
|
|
1070
|
+
请在此处查看参考
|
|
1071
|
+
|
|
1072
|
+
使用流行的 `lm-evaluation-harness` 库对模型进行评估。
|
|
1073
|
+
|
|
1074
|
+
请参阅 https://github.com/EleutherAI/lm-evaluation-harness
|
|
1075
|
+
|
|
1076
|
+
请在此处查看参考
|
|
1077
|
+
|
|
1078
|
+
Liger Kernel 为 LLM 训练提供了高效的 Triton 内核,提供:
|
|
1079
|
+
|
|
1080
|
+
请参阅 https://github.com/linkedin/Liger-Kernel
|
|
1081
|
+
|
|
1082
|
+
请在此处查看参考
|
|
1083
|
+
|
|
1084
|
+
作者:Eric Hartford, Lucas Atkins, Fernando Fernandes, David Golchinfar
|
|
1085
|
+
|
|
1086
|
+
这个插件包含基于信噪比 (SNR) 冻结模型底层部分模块的代码。
|
|
1087
|
+
|
|
1088
|
+
请参阅 https://github.com/cognitivecomputations/spectrum
|
|
1089
|
+
|
|
1090
|
+
Spectrum 是一个用于扫描和评估大型语言模型各层信噪比 (SNR) 的工具。通过识别 SNR 最高的前 n% 的层,你可以优化训练效率。
|
|
1091
|
+
|
|
1092
|
+
请在此处查看参考
|
|
1093
|
+
|
|
1094
|
+
插件可用于通过挂钩(hooks)自定义训练管道的行为。有关可能的挂钩,请参阅 `axolotl.integrations.BasePlugin`。
|
|
1095
|
+
|
|
1096
|
+
要添加新的集成,请按照以下步骤操作:
|
|
1097
|
+
|
|
1098
|
+
有关最小集成的示例,请参阅 `src/axolotl/integrations/cut_cross_entropy`。
|
|
1099
|
+
|
|
1100
|
+
如果你无法加载你的集成,请确保你正在以可编辑模式进行 pip 安装。
|
|
1101
|
+
|
|
1102
|
+
并且在配置文件中拼写对了集成名称。
|
|
1103
|
+
|
|
1104
|
+
你的集成不一定要放在 integrations 文件夹中。它可以位于任何位置,只要它作为一个包安装在你的 python 环境中即可。
|
|
1105
|
+
|
|
1106
|
+
示例请参见此仓库:https://github.com/axolotl-ai-cloud/diff-transformer
|
|
1107
|
+
|
|
1108
|
+
**示例:**
|
|
1109
|
+
|
|
1110
|
+
示例 1 (bash):
|
|
1111
|
+
```bash
|
|
1112
|
+
python scripts/cutcrossentropy_install.py | sh
|
|
1113
|
+
```
|
|
1114
|
+
|
|
1115
|
+
示例 2 (bash):
|
|
1116
|
+
```bash
|
|
1117
|
+
pip3 uninstall -y cut-cross-entropy && pip3 install "cut-cross-entropy[transformers] @ git+https://github.com/axolotl-ai-cloud/ml-cross-entropy.git@8a1a0ec"
|
|
1118
|
+
```
|
|
1119
|
+
|
|
1120
|
+
示例 3 (yaml):
|
|
1121
|
+
```yaml
|
|
1122
|
+
plugins:
|
|
1123
|
+
- axolotl.integrations.cut_cross_entropy.CutCrossEntropyPlugin
|
|
1124
|
+
```
|
|
1125
|
+
|
|
1126
|
+
示例 4 (unknown):
|
|
1127
|
+
```unknown
|
|
1128
|
+
@article{wijmans2024cut,
|
|
1129
|
+
author = {Erik Wijmans and
|
|
1130
|
+
Brody Huval and
|
|
1131
|
+
Alexander Hertzberg and
|
|
1132
|
+
Vladlen Koltun and
|
|
1133
|
+
Philipp Kr\"ahenb\"uhl},
|
|
1134
|
+
title = {Cut Your Losses in Large-Vocabulary Language Models},
|
|
1135
|
+
journal = {arXiv},
|
|
1136
|
+
year = {2024},
|
|
1137
|
+
url = {https://arxiv.org/abs/2411.09009},
|
|
1138
|
+
}
|
|
1139
|
+
```
|
|
1140
|
+
|
|
1141
|
+
## 配置参考
|
|
1142
|
+
|
|
1143
|
+
**URL:** https://docs.axolotl.ai/docs/config-reference.html
|
|
1144
|
+
|
|
1145
|
+
**目录:**
|
|
1146
|
+
- 配置参考
|
|
1147
|
+
|
|
1148
|
+
**示例:**
|
|
1149
|
+
|
|
1150
|
+
示例 1 (yaml):
|
|
1151
|
+
```yaml
|
|
1152
|
+
# 允许从命令行覆盖 yml 配置
|
|
1153
|
+
strict: bool | None = False
|
|
1154
|
+
# 从特定的检查点目录恢复
|
|
1155
|
+
resume_from_checkpoint: str | None
|
|
1156
|
+
# 如果未设置 resume_from_checkpoint,并且您只是希望它从上次中断的地方继续。
|
|
1157
|
+
# 在不同模型之间开启此选项时请务必小心。
|
|
1158
|
+
auto_resume_from_checkpoints: bool | None
|
|
1159
|
+
# 当新添加的 tokens 是 32 的倍数时,调整模型 embeddings 的大小。据报告这能提高某些模型的训练速度
|
|
1160
|
+
resize_token_embeddings_to_32x: bool | None
|
|
1161
|
+
mean_resizing_embeddings: bool | None = False
|
|
1162
|
+
|
|
1163
|
+
# 是否将 embeddings 缩小到 len(tokenizer)。默认情况下,我们不会缩小。
|
|
1164
|
+
shrink_embeddings: bool | None
|
|
1165
|
+
# 使用 PEFT 时不要将 embeddings 向上转换为 float32。适用于低显存 GPU
|
|
1166
|
+
embeddings_skip_upcast: bool | None
|
|
1167
|
+
# 随机重新初始化模型权重,而不是加载预训练权重
|
|
1168
|
+
reinit_weights: bool | None
|
|
1169
|
+
|
|
1170
|
+
# 用于训练的自定义训练器类模块
|
|
1171
|
+
trainer_cls: str | None
|
|
1172
|
+
|
|
1173
|
+
# 使用 RL 训练:'dpo', 'ipo', 'kto', 'simpo', 'orpo', 'grpo'
|
|
1174
|
+
rl: RLType | None
|
|
1175
|
+
|
|
1176
|
+
trl: TRLConfig | None
|
|
1177
|
+
# 对于 TRLConfig:
|
|
1178
|
+
# RL 训练的 Beta 参数。与 `rl_beta` 相同。使用
|
|
1179
|
+
beta: float | None
|
|
1180
|
+
# RL 训练的补全最大长度。
|
|
1181
|
+
max_completion_length: int | None
|
|
1182
|
+
|
|
1183
|
+
# RL 训练是否使用 VLLM。
|
|
1184
|
+
use_vllm: bool = False
|
|
1185
|
+
# 要使用的 VLLM 模式,'server' 或 'colocate' 之一
|
|
1186
|
+
vllm_mode: Literal['server', 'colocate'] | None
|
|
1187
|
+
# 要连接的 vLLM 服务器主机。
|
|
1188
|
+
vllm_server_host: str | None = 0.0.0.0
|
|
1189
|
+
# 要连接的 vLLM 服务器端口。
|
|
1190
|
+
vllm_server_port: int | None = 8000
|
|
1191
|
+
# 等待 vLLM 服务器响应的总超时时间(以秒为单位)。
|
|
1192
|
+
vllm_server_timeout: int | None
|
|
1193
|
+
# 用于 vLLM 引导解码的正则表达式。
|
|
1194
|
+
vllm_guided_decoding_regex: str | None
|
|
1195
|
+
|
|
1196
|
+
# 要加载的奖励函数列表。路径必须能从当前目录导入。
|
|
1197
|
+
reward_funcs: list[str] | None
|
|
1198
|
+
# 奖励函数的奖励权重列表。
|
|
1199
|
+
reward_weights: list[float] | None
|
|
1200
|
+
# 要采样的生成数量。
|
|
1201
|
+
num_generations: int | None
|
|
1202
|
+
# 是否记录补全。
|
|
1203
|
+
log_completions: bool | None = False
|
|
1204
|
+
# 当 log_completions 为 True 时要打印的补全数量。
|
|
1205
|
+
num_completions_to_print: int | None
|
|
1206
|
+
# 控制重要性采样比率是在 `'token'` 还是 `'sequence'` 级别计算。对于 GSPO,使用 `sequence`,默认为 None,对应于原始的 GRPO 论文。
|
|
1207
|
+
importance_sampling_level: Literal['sequence', 'token'] | None
|
|
1208
|
+
|
|
1209
|
+
# 是否同步参考模型。
|
|
1210
|
+
sync_ref_model: bool | None = False
|
|
1211
|
+
# 参考模型的混合 alpha 值。
|
|
1212
|
+
ref_model_mixup_alpha: float | None = 0.9
|
|
1213
|
+
# 参考模型的同步步数。
|
|
1214
|
+
ref_model_sync_steps: int | None = 64
|
|
1215
|
+
# 是否按标准差缩放奖励。
|
|
1216
|
+
scale_rewards: bool = True
|
|
1217
|
+
|
|
1218
|
+
# GRPO 策略的采样温度。
|
|
1219
|
+
temperature: float | None
|
|
1220
|
+
# 生成策略的 Top-p 采样概率。
|
|
1221
|
+
top_p: float | None
|
|
1222
|
+
# 生成策略的 Top-k 采样。
|
|
1223
|
+
top_k: int | None
|
|
1224
|
+
# 生成策略的最小概率。
|
|
1225
|
+
min_p: float | None
|
|
1226
|
+
# 对出现在提示词和生成文本中的 token 进行惩罚。
|
|
1227
|
+
repetition_penalty: float | None
|
|
1228
|
+
# GRPO 每批次的迭代次数 (μ)。
|
|
1229
|
+
num_iterations: int | None
|
|
1230
|
+
# GRPO 算法中用于裁剪的 Epsilon 值。
|
|
1231
|
+
epsilon: float | None
|
|
1232
|
+
# GRPO 算法中用于裁剪的上限 Epsilon 值。
|
|
1233
|
+
epsilon_high: float | None
|
|
1234
|
+
# GRPO 是否使用 Liger 损失。
|
|
1235
|
+
use_liger_loss: bool | None
|
|
1236
|
+
# 要使用的损失公式。支持的值:grpo, bnpo, dr_grpo。
|
|
1237
|
+
loss_type: str | None
|
|
1238
|
+
# 是否从损失计算中排除被截断的补全。
|
|
1239
|
+
mask_truncated_completions: bool = False
|
|
1240
|
+
# 为 vLLM 启用睡眠模式,以在空闲时卸载显存
|
|
1241
|
+
vllm_enable_sleep_mode: bool | None
|
|
1242
|
+
|
|
1243
|
+
vllm: VllmConfig | None
|
|
1244
|
+
# 对于 VllmConfig:
|
|
1245
|
+
# VLLM 使用的设备
|
|
1246
|
+
device: str | None = auto
|
|
1247
|
+
# VLLM 的张量并行大小
|
|
1248
|
+
tensor_parallel_size: int | None
|
|
1249
|
+
# VLLM 的数据并行大小
|
|
1250
|
+
data_parallel_size: int | None
|
|
1251
|
+
# VLLM 的 GPU 显存利用率
|
|
1252
|
+
gpu_memory_utilization: float | None = 0.9
|
|
1253
|
+
# VLLM 的数据类型
|
|
1254
|
+
dtype: str | None = auto
|
|
1255
|
+
# VLLM 的模型上下文最大长度
|
|
1256
|
+
max_model_len: int | None
|
|
1257
|
+
# 为 VLLM 启用前缀缓存
|
|
1258
|
+
enable_prefix_caching: bool | None
|
|
1259
|
+
# 启动 vLLM 服务器的主机
|
|
1260
|
+
host: str | None = 0.0.0.0
|
|
1261
|
+
# 启动 vLLM 服务器的端口
|
|
1262
|
+
port: int | None = 8000
|
|
1263
|
+
|
|
1264
|
+
# 为 VLLM 启用推理
|
|
1265
|
+
enable_reasoning: bool | None
|
|
1266
|
+
# VLLM 的推理解析器
|
|
1267
|
+
reasoning_parser: str | None
|
|
1268
|
+
|
|
1269
|
+
qat: QATConfig | None
|
|
1270
|
+
# 对于 QATConfig:
|
|
1271
|
+
# 用于激活量化的伪量化布局。
|
|
1272
|
+
activation_dtype: TorchAOQuantDType | None
|
|
1273
|
+
# 用于权重张量的伪量化布局。
|
|
1274
|
+
weight_dtype: TorchAOQuantDType = TorchAOQuantDType.int8
|
|
1275
|
+
# 量化 embedding
|
|
1276
|
+
quantize_embedding: bool | None = False
|
|
1277
|
+
# 每组伪量化中每组的元素数量
|
|
1278
|
+
group_size: int | None = 32
|
|
1279
|
+
# 应用伪量化之前的步数
|
|
1280
|
+
fake_quant_after_n_steps: int | None
|
|
1281
|
+
|
|
1282
|
+
quantization: PTQConfig | None
|
|
1283
|
+
# 对于 PTQConfig:
|
|
1284
|
+
# 用于权重张量的伪量化布局。
|
|
1285
|
+
weight_dtype: TorchAOQuantDType = TorchAOQuantDType.int8
|
|
1286
|
+
# 用于激活量化的伪量化布局。
|
|
1287
|
+
activation_dtype: TorchAOQuantDType | None
|
|
1288
|
+
# 是否量化 embedding 层。
|
|
1289
|
+
quantize_embedding: bool | None
|
|
1290
|
+
# 每组伪量化中每组的元素数量
|
|
1291
|
+
group_size: int | None = 32
|
|
1292
|
+
|
|
1293
|
+
# 奖励建模:`True` 或 `False`
|
|
1294
|
+
reward_model: bool | None
|
|
1295
|
+
# 过程奖励建模:`True` 或 `False`
|
|
1296
|
+
process_reward_model: bool | None
|
|
1297
|
+
# 激励奖励模型输出均值为零的奖励的系数(由
|
|
1298
|
+
# https://huggingface.co/papers/2312.09244, Eq. 2 提出)。推荐值:`0.01`。
|
|
1299
|
+
center_rewards_coefficient: float | None
|
|
1300
|
+
num_labels: int | None
|
|
1301
|
+
|
|
1302
|
+
# 是否在 DPO 训练器中执行加权
|
|
1303
|
+
dpo_use_weighting: bool | None
|
|
1304
|
+
dpo_use_logits_to_keep: bool | None
|
|
1305
|
+
dpo_label_smoothing: float | None
|
|
1306
|
+
dpo_norm_loss: bool | None
|
|
1307
|
+
dpo_padding_free: bool | None
|
|
1308
|
+
dpo_generate_during_eval: bool | None
|
|
1309
|
+
|
|
1310
|
+
# 用于微调模型的一个或多个数据集列表
|
|
1311
|
+
datasets: Annotated[list[SFTDataset | DPODataset | KTODataset | StepwiseSupervisedDataset], MinLen(1)] | None
|
|
1312
|
+
# 对于 SFTDataset:
|
|
1313
|
+
# HuggingFace 数据集仓库 | s3:// | gs:// | 本地文件或目录的路径
|
|
1314
|
+
path: str | None
|
|
1315
|
+
# 要加载的数据集拆分的名称
|
|
1316
|
+
split: str | None
|
|
1317
|
+
# 训练要使用的提示词类型。[alpaca, gpteacher, oasst, reflection]
|
|
1318
|
+
type: str | UserDefinedPrompterType | None
|
|
1319
|
+
# 对于 UserDefinedPrompterType:
|
|
1320
|
+
# 自定义用户指令提示词
|
|
1321
|
+
system_prompt: str | None
|
|
1322
|
+
# 使用 {system} 作为要替换的键
|
|
1323
|
+
system_format: str | None
|
|
1324
|
+
field_system: str | None
|
|
1325
|
+
field_instruction: str | None
|
|
1326
|
+
field_input: str | None
|
|
1327
|
+
field_output: str | None
|
|
1328
|
+
|
|
1329
|
+
# 可自定义为单行或多行。使用 {instruction}/{input} 作为要替换的键。
|
|
1330
|
+
# 'format' 可以包含 {input}
|
|
1331
|
+
format: str | None
|
|
1332
|
+
# 'no_input_format' 不能包含 {input}
|
|
1333
|
+
no_input_format: str | None
|
|
1334
|
+
input_transform: str | None
|
|
1335
|
+
# 将数据集拆分为 N 份(与 shards_idx 配合使用)
|
|
1336
|
+
shards: int | None
|
|
1337
|
+
# 要使用的分片数据集的索引
|
|
1338
|
+
shards_idx: int | None
|
|
1339
|
+
# 为了内存效率,将数据集按 N 个连续块进行处理(与
|
|
1340
|
+
# `shards` 互斥)
|
|
1341
|
+
preprocess_shards: int | None
|
|
1342
|
+
conversation: str | None
|
|
1343
|
+
|
|
1344
|
+
# 训练使用的聊天模板名称,支持以下值:
|
|
1345
|
+
# tokenizer_default: 使用 tokenizer_config.json 中可用的聊天模板。
|
|
1346
|
+
# 如果 tokenizer 中没有聊天模板,将引发错误。这是默认设置。
|
|
1347
|
+
# alpaca/inst/chatml/gemma/cohere/llama3/phi_3/deepseek_v2/jamba: 这些聊天模板
|
|
1348
|
+
# 可以在 axolotl 代码库的 src/axolotl/utils/chat_templates.py 中找到。
|
|
1349
|
+
# tokenizer_default_fallback_*: 其中 * 是当 tokenizer 没有聊天模板时回退到的聊天模板名称,
|
|
1350
|
+
# 否则默认使用 tokenizer。例如:tokenizer_default_fallback_chatml。
|
|
1351
|
+
# jinja: 为聊天模板使用自定义的 jinja 模板。自定义 jinja 模板应该在 chat_template_jinja 字段中提供。
|
|
1352
|
+
chat_template: ChatTemplate | str | None
|
|
1353
|
+
# 自定义 jinja 聊天模板或 jinja 文件的路径。仅在 `chat_template:
|
|
1354
|
+
# jinja` 或为空时使用。
|
|
1355
|
+
chat_template_jinja: str | None
|
|
1356
|
+
# 源数据文件的路径
|
|
1357
|
+
data_files: str | list[str] | None
|
|
1358
|
+
input_format: str | None
|
|
1359
|
+
# 要加载的数据集配置名称
|
|
1360
|
+
name: str | None
|
|
1361
|
+
# 当 path 为文件时定义的数据类型
|
|
1362
|
+
ds_type: str | None
|
|
1363
|
+
# 仅适用于 `completion` 数据集,使用提供的字段而不是 `text` 列
|
|
1364
|
+
field: str | None
|
|
1365
|
+
field_human: str | None
|
|
1366
|
+
field_model: str | None
|
|
1367
|
+
# 包含消息的键(默认:"messages")
|
|
1368
|
+
field_messages: str | None
|
|
1369
|
+
# 包含工具的键(默认:"tools")。必须是 list[dict] 并且遵循 [JSON
|
|
1370
|
+
# schema](https://json-schema.org/learn/getting-started-step-by-step)。
|
|
1371
|
+
field_tools: str | None
|
|
1372
|
+
# 包含推理轨迹的键(默认:"reasoning_content")。
|
|
1373
|
+
field_thinking: str | None
|
|
1374
|
+
# 聊天模板所期望的、指示推理轨迹的键。
|
|
1375
|
+
template_thinking_key: str | None
|
|
1376
|
+
|
|
1377
|
+
message_field_role: str | None
|
|
1378
|
+
|
|
1379
|
+
message_field_content: str | None
|
|
1380
|
+
# 将输入数据集的属性映射到聊天模板。(默认:
|
|
1381
|
+
# message_property_mappings={'role':'role', 'content':'content'})
|
|
1382
|
+
# 如果模板中存在某属性但此映射中不存在,系统将尝试使用该属性名作为键直接从消息中加载。
|
|
1383
|
+
# 示例:在下面的映射中,'from' 从输入数据集加载并用作 'role',
|
|
1384
|
+
# 而 'value' 加载并用作聊天模板中的 'content'。
|
|
1385
|
+
message_property_mappings: dict[str, str] | None
|
|
1386
|
+
# 消息轮次中的键,通过布尔值指示是否应考虑对该轮次进行训练。
|
|
1387
|
+
# 除了 `roles_to_train` 之外,还可用于选择性地训练某些轮次。
|
|
1388
|
+
message_field_training: str | None
|
|
1389
|
+
# 消息轮次中包含训练细节的键。用于选择性地训练轮次中的某些 tokens。
|
|
1390
|
+
# 该键的值是一个 List[Dict],包含 `begin_offset`(内容中的起始字符索引)、
|
|
1391
|
+
# `end_offset`(内容中的结束字符索引)和 `train`(指示是否训练的布尔值)。
|
|
1392
|
+
message_field_training_detail: str | None
|
|
1393
|
+
#(仅适用于 Qwen3 模板)是否根据包含在分隔标签内的推理轨迹来拆分助手内容
|
|
1394
|
+
split_thinking: bool | None
|
|
1395
|
+
logprobs_field: str | None
|
|
1396
|
+
temperature: float | None
|
|
1397
|
+
# 要训练的角色。来自这些角色的 tokens 将计入损失。
|
|
1398
|
+
roles_to_train: list[str] | None
|
|
1399
|
+
# 在对话中要训练哪些 EOS tokens。可能的值为:all:训练所有 EOS tokens,
|
|
1400
|
+
# turn(默认):训练每个可训练轮次结束时的 EOS token,
|
|
1401
|
+
# last:训练对话中的最后一个 EOS token
|
|
1402
|
+
train_on_eos: Literal['all', 'turn', 'last'] | None
|
|
1403
|
+
# 消息中的角色映射。格式为 {target_role: [source_roles]}。所有
|
|
1404
|
+
# 源角色将被映射到目标角色。默认为:user: ["human",
|
|
1405
|
+
# "user"], assistant: ["gpt", "assistant"], system: ["system"], tool: ["tool"]
|
|
1406
|
+
roles: dict[str, list[str]] | None
|
|
1407
|
+
# 是否从数据集中丢弃系统轮次。仅适用于 chat_template。
|
|
1408
|
+
# 如果存在,这不会从 chat_template 中丢弃默认系统消息。如果
|
|
1409
|
+
# 您希望这样做,我们建议使用移除了默认系统消息的自定义 jinja 模板,
|
|
1410
|
+
# 或者添加一个内容为空的系统轮次。
|
|
1411
|
+
drop_system_message: bool | None
|
|
1412
|
+
# 对不受信任的源信任远程代码
|
|
1413
|
+
trust_remote_code: bool | None = False
|
|
1414
|
+
# 从 Hugging Face Hub 加载时要使用的数据集特定版本。
|
|
1415
|
+
# 这可以是提交哈希、标签或分支名称。如果未指定,将使用最新版本。
|
|
1416
|
+
# 本地数据集将忽略此参数。
|
|
1417
|
+
revision: str | None
|
|
1418
|
+
|
|
1419
|
+
# 对于 DPODataset:
|
|
1420
|
+
path: str | None
|
|
1421
|
+
split: str | None
|
|
1422
|
+
type: UserDefinedDPOType | str | None
|
|
1423
|
+
# 对于 UserDefinedDPOType:
|
|
1424
|
+
field_system: str | None
|
|
1425
|
+
field_prompt: str | None
|
|
1426
|
+
field_chosen: str | None
|
|
1427
|
+
field_rejected: str | None
|
|
1428
|
+
prompt_format: str | None
|
|
1429
|
+
chosen_format: str | None
|
|
1430
|
+
rejected_format: str | None
|
|
1431
|
+
data_files: list[str] | None
|
|
1432
|
+
revision: str | None
|
|
1433
|
+
field_messages: str | None
|
|
1434
|
+
|
|
1435
|
+
# 对于 KTODataset:
|
|
1436
|
+
path: str | None
|
|
1437
|
+
split: str | None
|
|
1438
|
+
type: UserDefinedKTOType | str | None
|
|
1439
|
+
# 对于 UserDefinedKTOType:
|
|
1440
|
+
field_system: str | None
|
|
1441
|
+
field_prompt: str | None
|
|
1442
|
+
field_completion: str | None
|
|
1443
|
+
field_label: bool | None
|
|
1444
|
+
prompt_format: str | None
|
|
1445
|
+
completion_format: str | None
|
|
1446
|
+
data_files: list[str] | None
|
|
1447
|
+
trust_remote_code: bool | None = False
|
|
1448
|
+
revision: str | None
|
|
1449
|
+
|
|
1450
|
+
# 对于 StepwiseSupervisedDataset:
|
|
1451
|
+
path: str | None
|
|
1452
|
+
split: str | None
|
|
1453
|
+
data_files: list[str] | None
|
|
1454
|
+
revision: str | None
|
|
1455
|
+
step_separator: str | None
|
|
1456
|
+
max_completion_length: int | None
|
|
1457
|
+
train_on_last_step_only: bool | None
|
|
1458
|
+
|
|
1459
|
+
# 用于评估模型的一个或多个数据集列表。您可以使用
|
|
1460
|
+
# test_datasets 或 val_set_size,但不能同时使用两者。
|
|
1461
|
+
test_datasets: Annotated[list[SFTDataset | DPODataset | KTODataset | StepwiseSupervisedDataset], MinLen(1)] | None
|
|
1462
|
+
# 对于 SFTDataset:
|
|
1463
|
+
# HuggingFace 数据集仓库 | s3:// | gs:// | 本地文件或目录的路径
|
|
1464
|
+
path: str | None
|
|
1465
|
+
# 要加载的数据集拆分的名称
|
|
1466
|
+
split: str | None
|
|
1467
|
+
# 训练要使用的提示词类型。[alpaca, gpteacher, oasst, reflection]
|
|
1468
|
+
type: str | UserDefinedPrompterType | None
|
|
1469
|
+
# 对于 UserDefinedPrompterType:
|
|
1470
|
+
# 自定义用户指令提示词
|
|
1471
|
+
system_prompt: str | None
|
|
1472
|
+
# 使用 {system} 作为要替换的键
|
|
1473
|
+
system_format: str | None
|
|
1474
|
+
field_system: str | None
|
|
1475
|
+
field_instruction: str | None
|
|
1476
|
+
field_input: str | None
|
|
1477
|
+
field_output: str | None
|
|
1478
|
+
|
|
1479
|
+
# 可自定义为单行或多行。使用 {instruction}/{input} 作为要替换的键。
|
|
1480
|
+
# 'format' 可以包含 {input}
|
|
1481
|
+
format: str | None
|
|
1482
|
+
# 'no_input_format' 不能包含 {input}
|
|
1483
|
+
no_input_format: str | None
|
|
1484
|
+
input_transform: str | None
|
|
1485
|
+
# 将数据集拆分为 N 份(与 shards_idx 配合使用)
|
|
1486
|
+
shards: int | None
|
|
1487
|
+
# 要使用的分片数据集的索引
|
|
1488
|
+
shards_idx: int | None
|
|
1489
|
+
# 为了内存效率,将数据集按 N 个连续块进行处理(与
|
|
1490
|
+
# `shards` 互斥)
|
|
1491
|
+
preprocess_shards: int | None
|
|
1492
|
+
conversation: str | None
|
|
1493
|
+
|
|
1494
|
+
# 训练使用的聊天模板名称,支持以下值:
|
|
1495
|
+
# tokenizer_default: 使用 tokenizer_config.json 中可用的聊天模板。
|
|
1496
|
+
# 如果 tokenizer 中没有聊天模板,将引发错误。这是默认设置。
|
|
1497
|
+
# alpaca/inst/chatml/gemma/cohere/llama3/phi_3/deepseek_v2/jamba: 这些聊天模板
|
|
1498
|
+
# 可以在 axolotl 代码库的 src/axolotl/utils/chat_templates.py 中找到。
|
|
1499
|
+
# tokenizer_default_fallback_*: 其中 * 是当 tokenizer 没有聊天模板时回退到的聊天模板名称,
|
|
1500
|
+
# 否则默认使用 tokenizer。例如:tokenizer_default_fallback_chatml。
|
|
1501
|
+
# jinja: 为聊天模板使用自定义的 jinja 模板。自定义 jinja 模板应该在 chat_template_jinja 字段中提供。
|
|
1502
|
+
chat_template: ChatTemplate | str | None
|
|
1503
|
+
# 自定义 jinja 聊天模板或 jinja 文件的路径。仅在 `chat_template:
|
|
1504
|
+
# jinja` 或为空时使用。
|
|
1505
|
+
chat_template_jinja: str | None
|
|
1506
|
+
# 源数据文件的路径
|
|
1507
|
+
data_files: str | list[str] | None
|
|
1508
|
+
input_format: str | None
|
|
1509
|
+
# 要加载的数据集配置名称
|
|
1510
|
+
name: str | None
|
|
1511
|
+
# 当 path 为文件时定义的数据类型
|
|
1512
|
+
ds_type: str | None
|
|
1513
|
+
# 仅适用于 `completion` 数据集,使用提供的字段而不是 `text` 列
|
|
1514
|
+
field: str | None
|
|
1515
|
+
field_human: str | None
|
|
1516
|
+
field_model: str | None
|
|
1517
|
+
# 包含消息的键(默认:"messages")
|
|
1518
|
+
field_messages: str | None
|
|
1519
|
+
# 包含工具的键(默认:"tools")。必须是 list[dict] 并且遵循 [JSON
|
|
1520
|
+
# schema](https://json-schema.org/learn/getting-started-step-by-step)。
|
|
1521
|
+
field_tools: str | None
|
|
1522
|
+
# 包含推理轨迹的键(默认:"reasoning_content")。
|
|
1523
|
+
field_thinking: str | None
|
|
1524
|
+
# 聊天模板所期望的、指示推理轨迹的键。
|
|
1525
|
+
template_thinking_key: str | None
|
|
1526
|
+
|
|
1527
|
+
message_field_role: str | None
|
|
1528
|
+
|
|
1529
|
+
message_field_content: str | None
|
|
1530
|
+
# 将输入数据集的属性映射到聊天模板。(默认:
|
|
1531
|
+
# message_property_mappings={'role':'role', 'content':'content'})
|
|
1532
|
+
# 如果模板中存在某属性但此映射中不存在,系统将尝试使用该属性名作为键直接从消息中加载。
|
|
1533
|
+
# 示例:在下面的映射中,'from' 从输入数据集加载并用作 'role',
|
|
1534
|
+
# 而 'value' 加载并用作聊天模板中的 'content'。
|
|
1535
|
+
message_property_mappings: dict[str, str] | None
|
|
1536
|
+
# 消息轮次中的键,通过布尔值指示是否应考虑对该轮次进行训练。
|
|
1537
|
+
# 除了 `roles_to_train` 之外,还可用于选择性地训练某些轮次。
|
|
1538
|
+
message_field_training: str | None
|
|
1539
|
+
# 消息轮次中包含训练细节的键。用于选择性地训练轮次中的某些 tokens。
|
|
1540
|
+
# 该键的值是一个 List[Dict],包含 `begin_offset`(内容中的起始字符索引)、
|
|
1541
|
+
# `end_offset`(内容中的结束字符索引)和 `train`(指示是否训练的布尔值)。
|
|
1542
|
+
message_field_training_detail: str | None
|
|
1543
|
+
#(仅适用于 Qwen3 模板)是否根据包含在分隔标签内的推理轨迹来拆分助手内容
|
|
1544
|
+
split_thinking: bool | None
|
|
1545
|
+
logprobs_field: str | None
|
|
1546
|
+
temperature: float | None
|
|
1547
|
+
# 要训练的角色。来自这些角色的 tokens 将计入损失。
|
|
1548
|
+
roles_to_train: list[str] | None
|
|
1549
|
+
# 在对话中要训练哪些 EOS tokens。可能的值为:all:训练所有 EOS tokens,
|
|
1550
|
+
# turn(默认):训练每个可训练轮次结束时的 EOS token,
|
|
1551
|
+
# last:训练对话中的最后一个 EOS token
|
|
1552
|
+
train_on_eos: Literal['all', 'turn', 'last'] | None
|
|
1553
|
+
# 消息中的角色映射。格式为 {target_role: [source_roles]}。所有
|
|
1554
|
+
# 源角色将被映射到目标角色。默认为:user: ["human",
|
|
1555
|
+
# "user"], assistant: ["gpt", "assistant"], system: ["system"], tool: ["tool"]
|
|
1556
|
+
roles: dict[str, list[str]] | None
|
|
1557
|
+
# 是否从数据集中丢弃系统轮次。仅适用于 chat_template。
|
|
1558
|
+
# 如果存在,这不会从 chat_template 中丢弃默认系统消息。如果
|
|
1559
|
+
# 您希望这样做,我们建议使用移除了默认系统消息的自定义 jinja 模板,
|
|
1560
|
+
# 或者添加一个内容为空的系统轮次。
|
|
1561
|
+
drop_system_message: bool | None
|
|
1562
|
+
# 对不受信任的源信任远程代码
|
|
1563
|
+
trust_remote_code: bool | None = False
|
|
1564
|
+
# 从 Hugging Face Hub 加载时要使用的数据集特定版本。
|
|
1565
|
+
# 这可以是提交哈希、标签或分支名称。如果未指定,将使用最新版本。
|
|
1566
|
+
# 本地数据集将忽略此参数。
|
|
1567
|
+
revision: str | None
|
|
1568
|
+
|
|
1569
|
+
# 对于 DPODataset:
|
|
1570
|
+
path: str | None
|
|
1571
|
+
split: str | None
|
|
1572
|
+
type: UserDefinedDPOType | str | None
|
|
1573
|
+
# 对于 UserDefinedDPOType:
|
|
1574
|
+
field_system: str | None
|
|
1575
|
+
field_prompt: str | None
|
|
1576
|
+
field_chosen: str | None
|
|
1577
|
+
field_rejected: str | None
|
|
1578
|
+
prompt_format: str | None
|
|
1579
|
+
chosen_format: str | None
|
|
1580
|
+
rejected_format: str | None
|
|
1581
|
+
data_files: list[str] | None
|
|
1582
|
+
revision: str | None
|
|
1583
|
+
field_messages: str | None
|
|
1584
|
+
|
|
1585
|
+
# 对于 KTODataset:
|
|
1586
|
+
path: str | None
|
|
1587
|
+
split: str | None
|
|
1588
|
+
type: UserDefinedKTOType | str | None
|
|
1589
|
+
# 对于 UserDefinedKTOType:
|
|
1590
|
+
field_system: str | None
|
|
1591
|
+
field_prompt: str | None
|
|
1592
|
+
field_completion: str | None
|
|
1593
|
+
field_label: bool | None
|
|
1594
|
+
prompt_format: str | None
|
|
1595
|
+
completion_format: str | None
|
|
1596
|
+
data_files: list[str] | None
|
|
1597
|
+
trust_remote_code: bool | None = False
|
|
1598
|
+
revision: str | None
|
|
1599
|
+
|
|
1600
|
+
# 对于 StepwiseSupervisedDataset:
|
|
1601
|
+
path: str | None
|
|
1602
|
+
split: str | None
|
|
1603
|
+
data_files: list[str] | None
|
|
1604
|
+
revision: str | None
|
|
1605
|
+
step_separator: str | None
|
|
1606
|
+
max_completion_length: int | None
|
|
1607
|
+
train_on_last_step_only: bool | None
|
|
1608
|
+
|
|
1609
|
+
# 如果为 false,数据集将不会被随机打乱,并将保持在
|
|
1610
|
+
# `datasets` 中的原始顺序。这同样适用于 `test_datasets` 选项和
|
|
1611
|
+
# `pretraining_dataset` 选项。默认为 true。
|
|
1612
|
+
shuffle_merged_datasets: bool | None = True
|
|
1613
|
+
# 如果为 true,`datasets` 中的每个数据集将在合并之前被打乱。这允许
|
|
1614
|
+
# 在数据集级别应用课程学习策略。默认为 false。
|
|
1615
|
+
shuffle_before_merging_datasets: bool | None = False
|
|
1616
|
+
# Axolotl 尝试在打包数据后将数据集保存为 arrow 格式,以便
|
|
1617
|
+
# 随后的训练尝试加载得更快,相对路径
|
|
1618
|
+
dataset_prepared_path: str | None
|
|
1619
|
+
# 整个数据集的分片数
|
|
1620
|
+
dataset_shard_num: int | None
|
|
1621
|
+
# 要使用的整个数据集分片的索引
|
|
1622
|
+
dataset_shard_idx: int | None
|
|
1623
|
+
skip_prepare_dataset: bool | None = False
|
|
1624
|
+
# 保存准备好数据集的分片数量
|
|
1625
|
+
num_dataset_shards_to_save: int | None
|
|
1626
|
+
|
|
1627
|
+
# 设置为 type: 'completion' 的 HF 数据集,以流式传输而非预分词
|
|
1628
|
+
pretraining_dataset: Annotated[list[PretrainingDataset | SFTDataset], MinLen(1)] | None
|
|
1629
|
+
# 对于 PretrainingDataset:
|
|
1630
|
+
name: str | None
|
|
1631
|
+
path: str | None
|
|
1632
|
+
split: str | None = train
|
|
1633
|
+
text_column: str | None = text
|
|
1634
|
+
type: str | None = pretrain
|
|
1635
|
+
trust_remote_code: bool | None = False
|
|
1636
|
+
data_files: str | None
|
|
1637
|
+
skip: int | None
|
|
1638
|
+
|
|
1639
|
+
# 对于 SFTDataset:
|
|
1640
|
+
# HuggingFace 数据集仓库 | s3:// | gs:// | 本地文件或目录的路径
|
|
1641
|
+
path: str | None
|
|
1642
|
+
# 要加载的数据集拆分的名称
|
|
1643
|
+
split: str | None
|
|
1644
|
+
# 训练要使用的提示词类型。[alpaca, gpteacher, oasst, reflection]
|
|
1645
|
+
type: str | UserDefinedPrompterType | None
|
|
1646
|
+
# 对于 UserDefinedPrompterType:
|
|
1647
|
+
# 自定义用户指令提示词
|
|
1648
|
+
system_prompt: str | None
|
|
1649
|
+
# 使用 {system} 作为要替换的键
|
|
1650
|
+
system_format: str | None
|
|
1651
|
+
field_system: str | None
|
|
1652
|
+
field_instruction: str | None
|
|
1653
|
+
field_input: str | None
|
|
1654
|
+
field_output: str | None
|
|
1655
|
+
|
|
1656
|
+
# 可自定义为单行或多行。使用 {instruction}/{input} 作为要替换的键。
|
|
1657
|
+
# 'format' 可以包含 {input}
|
|
1658
|
+
format: str | None
|
|
1659
|
+
# 'no_input_format' 不能包含 {input}
|
|
1660
|
+
no_input_format: str | None
|
|
1661
|
+
input_transform: str | None
|
|
1662
|
+
# 将数据集拆分为 N 份(与 shards_idx 配合使用)
|
|
1663
|
+
shards: int | None
|
|
1664
|
+
# 要使用的分片数据集的索引
|
|
1665
|
+
shards_idx: int | None
|
|
1666
|
+
# 为了内存效率,将数据集按 N 个连续块进行处理(与
|
|
1667
|
+
# `shards` 互斥)
|
|
1668
|
+
preprocess_shards: int | None
|
|
1669
|
+
conversation: str | None
|
|
1670
|
+
|
|
1671
|
+
# 训练使用的聊天模板名称,支持以下值:
|
|
1672
|
+
# tokenizer_default: 使用 tokenizer_config.json 中可用的聊天模板。
|
|
1673
|
+
# 如果 tokenizer 中没有聊天模板,将引发错误。这是默认设置。
|
|
1674
|
+
# alpaca/inst/chatml/gemma/cohere/llama3/phi_3/deepseek_v2/jamba: 这些聊天模板
|
|
1675
|
+
# 可以在 axolotl 代码库的 src/axolotl/utils/chat_templates.py 中找到。
|
|
1676
|
+
# tokenizer_default_fallback_*: 其中 * 是当 tokenizer 没有聊天模板时回退到的聊天模板名称,
|
|
1677
|
+
# 否则默认使用 tokenizer。例如:tokenizer_default_fallback_chatml。
|
|
1678
|
+
# jinja: 为聊天模板使用自定义的 jinja 模板。自定义 jinja 模板应该在 chat_template_jinja 字段中提供。
|
|
1679
|
+
chat_template: ChatTemplate | str | None
|
|
1680
|
+
# 自定义 jinja 聊天模板或 jinja 文件的路径。仅在 `chat_template:
|
|
1681
|
+
# jinja` 或为空时使用。
|
|
1682
|
+
chat_template_jinja: str | None
|
|
1683
|
+
# 源数据文件的路径
|
|
1684
|
+
data_files: str | list[str] | None
|
|
1685
|
+
input_format: str | None
|
|
1686
|
+
# 要加载的数据集配置名称
|
|
1687
|
+
name: str | None
|
|
1688
|
+
# 当 path 为文件时定义的数据类型
|
|
1689
|
+
ds_type: str | None
|
|
1690
|
+
# 仅适用于 `completion` 数据集,使用提供的字段而不是 `text` 列
|
|
1691
|
+
field: str | None
|
|
1692
|
+
field_human: str | None
|
|
1693
|
+
field_model: str | None
|
|
1694
|
+
# 包含消息的键(默认:"messages")
|
|
1695
|
+
field_messages: str | None
|
|
1696
|
+
# 包含工具的键(默认:"tools")。必须是 list[dict] 并且遵循 [JSON
|
|
1697
|
+
# schema](https://json-schema.org/learn/getting-started-step-by-step)。
|
|
1698
|
+
field_tools: str | None
|
|
1699
|
+
# 包含推理轨迹的键(默认:"reasoning_content")。
|
|
1700
|
+
field_thinking: str | None
|
|
1701
|
+
# 聊天模板所期望的、指示推理轨迹的键。
|
|
1702
|
+
template_thinking_key: str | None
|
|
1703
|
+
|
|
1704
|
+
message_field_role: str | None
|
|
1705
|
+
|
|
1706
|
+
message_field_content: str | None
|
|
1707
|
+
# 将输入数据集的属性映射到聊天模板。(默认:
|
|
1708
|
+
# message_property_mappings={'role':'role', 'content':'content'})
|
|
1709
|
+
# 如果模板中存在某属性但此映射中不存在,系统将尝试使用该属性名作为键直接从消息中加载。
|
|
1710
|
+
# 示例:在下面的映射中,'from' 从输入数据集加载并用作 'role',
|
|
1711
|
+
# 而 'value' 加载并用作聊天模板中的 'content'。
|
|
1712
|
+
message_property_mappings: dict[str, str] | None
|
|
1713
|
+
# 消息轮次中的键,通过布尔值指示是否应考虑对该轮次进行训练。
|
|
1714
|
+
# 除了 `roles_to_train` 之外,还可用于选择性地训练某些轮次。
|
|
1715
|
+
message_field_training: str | None
|
|
1716
|
+
# 消息轮次中包含训练细节的键。用于选择性地训练轮次中的某些 tokens。
|
|
1717
|
+
# 该键的值是一个 List[Dict],包含 `begin_offset`(内容中的起始字符索引)、
|
|
1718
|
+
# `end_offset`(内容中的结束字符索引)和 `train`(指示是否训练的布尔值)。
|
|
1719
|
+
message_field_training_detail: str | None
|
|
1720
|
+
#(仅适用于 Qwen3 模板)是否根据包含在分隔标签内的推理轨迹来拆分助手内容
|
|
1721
|
+
split_thinking: bool | None
|
|
1722
|
+
logprobs_field: str | None
|
|
1723
|
+
temperature: float | None
|
|
1724
|
+
# 要训练的角色。来自这些角色的 tokens 将计入损失。
|
|
1725
|
+
roles_to_train: list[str] | None
|
|
1726
|
+
# 在对话中要训练哪些 EOS tokens。可能的值为:all:训练所有 EOS tokens,
|
|
1727
|
+
# turn(默认):训练每个可训练轮次结束时的 EOS token,
|
|
1728
|
+
# last:训练对话中的最后一个 EOS token
|
|
1729
|
+
train_on_eos: Literal['all', 'turn', 'last'] | None
|
|
1730
|
+
# 消息中的角色映射。格式为 {target_role: [source_roles]}。所有
|
|
1731
|
+
# 源角色将被映射到目标角色。默认为:user: ["human",
|
|
1732
|
+
# "user"], assistant: ["gpt", "assistant"], system: ["system"], tool: ["tool"]
|
|
1733
|
+
roles: dict[str, list[str]] | None
|
|
1734
|
+
# 是否从数据集中丢弃系统轮次。仅适用于 chat_template。
|
|
1735
|
+
# 如果存在,这不会从 chat_template 中丢弃默认系统消息。如果
|
|
1736
|
+
# 您希望这样做,我们建议使用移除了默认系统消息的自定义 jinja 模板,
|
|
1737
|
+
# 或者添加一个内容为空的系统轮次。
|
|
1738
|
+
drop_system_message: bool | None
|
|
1739
|
+
# 对不受信任的源信任远程代码
|
|
1740
|
+
trust_remote_code: bool | None = False
|
|
1741
|
+
# 从 Hugging Face Hub 加载时要使用的数据集特定版本。
|
|
1742
|
+
# 这可以是提交哈希、标签或分支名称。如果未指定,将使用最新版本。
|
|
1743
|
+
# 本地数据集将忽略此参数。
|
|
1744
|
+
revision: str | None
|
|
1745
|
+
|
|
1746
|
+
# 预处理输入数据集时使用的最大进程数。如果未设置,
|
|
1747
|
+
# 默认为 `os.cpu_count()`。对于 Runpod 虚拟机,它将通过 RUNPOD_CPU_COUNT 默认为 vCPU 的数量。
|
|
1748
|
+
dataset_processes: int | None
|
|
1749
|
+
# 预处理输入数据集时使用的最大进程数。如果未设置,
|
|
1750
|
+
# 默认为 `os.cpu_count()`。对于 Runpod 虚拟机,它将通过 RUNPOD_CPU_COUNT 默认为 vCPU 的数量。
|
|
1751
|
+
dataset_num_proc: int | None
|
|
1752
|
+
|
|
1753
|
+
# 对具有相同条目的 datasets 和 test_datasets 进行去重
|
|
1754
|
+
dataset_exact_deduplication: bool | None
|
|
1755
|
+
# 在预处理期间将数据集保留在内存中。仅当缓存的数据集占用
|
|
1756
|
+
# 过多存储空间时才需要
|
|
1757
|
+
dataset_keep_in_memory: bool | None
|
|
1758
|
+
dataloader_pin_memory: bool | None
|
|
1759
|
+
dataloader_num_workers: int | None
|
|
1760
|
+
dataloader_prefetch_factor: int | None
|
|
1761
|
+
dataloader_drop_last: bool | None
|
|
1762
|
+
|
|
1763
|
+
accelerator_config: dict[str, Any] | None
|
|
1764
|
+
|
|
1765
|
+
remove_unused_columns: bool | None
|
|
1766
|
+
|
|
1767
|
+
# 将准备好的数据集推送到中心仓库 - repo_org/repo_name
|
|
1768
|
+
push_dataset_to_hub: str | None
|
|
1769
|
+
# 加载数据集时是否使用 hf `use_auth_token`。适用于获取私有
|
|
1770
|
+
# 数据集。与 `push_dataset_to_hub` 结合使用时必须设置为 true
|
|
1771
|
+
hf_use_auth_token: bool | None
|
|
1772
|
+
|
|
1773
|
+
device: Any | None
|
|
1774
|
+
# 在没有启动 accelerate 加载模型时直接传递给 transformers。
|
|
1775
|
+
# 在使用模型并行训练时使用 `sequential` 以限制内存
|
|
1776
|
+
device_map: Any | None
|
|
1777
|
+
world_size: int | None
|
|
1778
|
+
# 不要乱动这个,这是为 accelerate 和 torchrun 准备的
|
|
1779
|
+
local_rank: int | None
|
|
1780
|
+
ddp: bool | None
|
|
1781
|
+
|
|
1782
|
+
# 用于可复现性的随机种子
|
|
1783
|
+
seed: int | None
|
|
1784
|
+
# 高级 DDP 参数 - 超时
|
|
1785
|
+
ddp_timeout: int | None
|
|
1786
|
+
# 高级 DDP 参数 - 桶容量上限(以 MB 为单位)
|
|
1787
|
+
ddp_bucket_cap_mb: int | None
|
|
1788
|
+
# 高级 DDP 参数 - 广播缓冲区
|
|
1789
|
+
ddp_broadcast_buffers: bool | None
|
|
1790
|
+
ddp_find_unused_parameters: bool | None
|
|
1791
|
+
|
|
1792
|
+
# 取决于批次大小,发送到 wandb 的预测的大致数量。大于
|
|
1793
|
+
# 0 时启用。默认为 0
|
|
1794
|
+
eval_table_size: int | None
|
|
1795
|
+
# 发送到 wandb 的预测生成的 tokens 总数。默认为 128
|
|
1796
|
+
eval_max_new_tokens: int | None
|
|
1797
|
+
# 是否在 `eval_causal_lm_metrics` 中对指标运行因果语言模型评估
|
|
1798
|
+
do_causal_lm_eval: bool | None
|
|
1799
|
+
# 评估期间使用的 HF evaluate 指标。默认为 ['sacrebleu', 'comet', 'ter',
|
|
1800
|
+
# 'chrf', 'perplexity']
|
|
1801
|
+
eval_causal_lm_metrics: list[str] | None
|
|
1802
|
+
do_bench_eval: bool | None
|
|
1803
|
+
bench_dataset: str | None
|
|
1804
|
+
bench_split: str | None
|
|
1805
|
+
metric_for_best_model: str | None
|
|
1806
|
+
greater_is_better: bool | None
|
|
1807
|
+
|
|
1808
|
+
# 高损失值,表明学习已经崩溃(一个较好的估计值是训练开始时损失的 2 倍)
|
|
1809
|
+
loss_watchdog_threshold: float | None
|
|
1810
|
+
# 训练器中止之前连续出现高损失的步数(默认:3)
|
|
1811
|
+
loss_watchdog_patience: int | None
|
|
1812
|
+
|
|
1813
|
+
# 每 `gc_steps` 步运行一次垃圾回收。-1 将在 epoch 结束和评估之前运行。
|
|
1814
|
+
# 默认为 0(禁用)。
|
|
1815
|
+
gc_steps: int | None
|
|
1816
|
+
|
|
1817
|
+
# 使用 CUDA bf16。bool 或 'full' 用于 `bf16_full_eval`,或 'auto' 用于自动检测。
|
|
1818
|
+
# 需要 >=ampere
|
|
1819
|
+
bf16: Literal['auto'] | bool | None = auto
|
|
1820
|
+
# 使用 CUDA fp16
|
|
1821
|
+
fp16: bool | None
|
|
1822
|
+
# 使用 TorchAO 启用 FP8 混合精度训练。最好与
|
|
1823
|
+
# torch.compile 结合使用。
|
|
1824
|
+
fp8: bool | None
|
|
1825
|
+
# 为 FP8 训练启用 FSDP float8 全聚合优化。在启用
|
|
1826
|
+
# FSDP 时可将训练速度提高 10-15%。
|
|
1827
|
+
fp8_enable_fsdp_float8_all_gather: bool | None
|
|
1828
|
+
# 无 AMP(自动混合精度)- 需要 >=ampere
|
|
1829
|
+
bfloat16: bool | None
|
|
1830
|
+
# 无 AMP(自动混合精度)
|
|
1831
|
+
float16: bool | None
|
|
1832
|
+
# 使用 CUDA tf32 - 需要 >=ampere
|
|
1833
|
+
tf32: bool | None
|
|
1834
|
+
float32: bool | None
|
|
1835
|
+
|
|
1836
|
+
# 是否使用梯度检查点。可用选项有:true, false, 'offload',
|
|
1837
|
+
# 'offload_disk'。
|
|
1838
|
+
# https://huggingface.co/docs/transformers/v4.18.0
|
|
1839
|
+
|
|
1840
|
+
##
|
|
1841
|
+
|
|
1842
|
+
**URL:** https://docs.axolotl.ai
|
|
1843
|
+
|
|
1844
|
+
**Contents:**
|
|
1845
|
+
- 🎉 最新更新
|
|
1846
|
+
- ✨ 概览
|
|
1847
|
+
- 🚀 快速开始 - 几分钟内微调 LLM
|
|
1848
|
+
- Google Colab
|
|
1849
|
+
- 安装
|
|
1850
|
+
- 使用 pip
|
|
1851
|
+
- 使用 Docker
|
|
1852
|
+
- 云服务商
|
|
1853
|
+
- 你的第一次微调
|
|
1854
|
+
- 📚 文档
|
|
1855
|
+
|
|
1856
|
+
一个免费且开源的 LLM 微调框架
|
|
1857
|
+
|
|
1858
|
+
Axolotl 是一个免费且开源的工具,旨在简化最新大型语言模型的后训练与微调。
|
|
1859
|
+
|
|
1860
|
+
使用 Docker 安装通常比在你自己的环境中安装更不容易出错。
|
|
1861
|
+
|
|
1862
|
+
其他安装方法请见此处。
|
|
1863
|
+
|
|
1864
|
+
就这些啦!请查看我们的《快速开始指南》以获取更详细的操作步骤。
|
|
1865
|
+
|
|
1866
|
+
欢迎参与贡献!详情请参阅我们的贡献指南。
|
|
1867
|
+
|
|
1868
|
+
有兴趣赞助吗?请通过 [email protected] 联系我们
|
|
1869
|
+
|
|
1870
|
+
如果你在研究或项目中使用了 Axolotl,请按以下格式引用:
|
|
1871
|
+
|
|
1872
|
+
本项目采用 Apache 2.0 许可证授权 - 详情请参阅 LICENSE 文件。
|
|
1873
|
+
|
|
1874
|
+
**示例:**
|
|
1875
|
+
|
|
1876
|
+
示例 1 (bash):
|
|
1877
|
+
```bash
|
|
1878
|
+
pip3 install -U packaging==23.2 setuptools==75.8.0 wheel ninja
|
|
1879
|
+
pip3 install --no-build-isolation axolotl[flash-attn,deepspeed]
|
|
1880
|
+
|
|
1881
|
+
# Download example axolotl configs, deepspeed configs
|
|
1882
|
+
axolotl fetch examples
|
|
1883
|
+
axolotl fetch deepspeed_configs # OPTIONAL
|
|
1884
|
+
```
|
|
1885
|
+
|
|
1886
|
+
示例 2 (bash):
|
|
1887
|
+
```bash
|
|
1888
|
+
docker run --gpus '"all"' --rm -it axolotlai/axolotl:main-latest
|
|
1889
|
+
```
|
|
1890
|
+
|
|
1891
|
+
示例 3 (bash):
|
|
1892
|
+
```bash
|
|
1893
|
+
# Fetch axolotl examples
|
|
1894
|
+
axolotl fetch examples
|
|
1895
|
+
|
|
1896
|
+
# Or, specify a custom path
|
|
1897
|
+
axolotl fetch examples --dest path/to/folder
|
|
1898
|
+
|
|
1899
|
+
# Train a model using LoRA
|
|
1900
|
+
axolotl train examples/llama-3/lora-1b.yml
|
|
1901
|
+
```
|
|
1902
|
+
|
|
1903
|
+
示例 4 (unknown):
|
|
1904
|
+
```unknown
|
|
1905
|
+
@software{axolotl,
|
|
1906
|
+
title = {Axolotl: Open Source LLM Post-Training},
|
|
1907
|
+
author = {{Axolotl maintainers and contributors}},
|
|
1908
|
+
url = {https://github.com/axolotl-ai-cloud/axolotl},
|
|
1909
|
+
license = {Apache-2.0},
|
|
1910
|
+
year = {2023}
|
|
1911
|
+
}
|
|
1912
|
+
```
|
|
1913
|
+
|
|
1914
|
+
---
|
|
1915
|
+
|
|
1916
|
+
## 快速开始
|
|
1917
|
+
|
|
1918
|
+
**URL:** https://docs.axolotl.ai/docs/getting-started.html
|
|
1919
|
+
|
|
1920
|
+
**Contents:**
|
|
1921
|
+
- 快速开始
|
|
1922
|
+
- 1 快速示例
|
|
1923
|
+
- 2 理解流程
|
|
1924
|
+
- 2.1 配置文件
|
|
1925
|
+
- 2.2 训练
|
|
1926
|
+
- 3 你的第一次自定义训练
|
|
1927
|
+
- 4 常见任务
|
|
1928
|
+
- 4.1 测试你的模型
|
|
1929
|
+
- 4.2 使用 UI
|
|
1930
|
+
- 4.3 预处理数据
|
|
1931
|
+
|
|
1932
|
+
本指南将带你完成使用 Axolotl 的第一个模型微调项目。
|
|
1933
|
+
|
|
1934
|
+
让我们先从使用 LoRA 微调一个小型语言模型开始。此示例使用一个 10 亿 (1B) 参数的模型,以确保它能在大多数 GPU 上运行。假设你已经安装了 axolotl(如果没有,请参阅我们的安装指南)
|
|
1935
|
+
|
|
1936
|
+
就这些啦!让我们来了解一下刚才发生了什么。
|
|
1937
|
+
|
|
1938
|
+
YAML 配置文件控制着关于你训练的一切。以下是我们示例配置(部分)的样子:
|
|
1939
|
+
|
|
1940
|
+
load_in_8bit: true 和 adapter: lora 启用了 LoRA 适配器微调。
|
|
1941
|
+
|
|
1942
|
+
请参阅我们的配置选项以获取更多详细信息。
|
|
1943
|
+
|
|
1944
|
+
当你运行 axolotl train 时,Axolotl 会:
|
|
1945
|
+
|
|
1946
|
+
让我们为你的数据修改一下示例:
|
|
1947
|
+
|
|
1948
|
+
这个特定的配置用于使用 alpaca 数据集格式(格式如下)对带有指令微调数据的模型进行 LoRA 微调:
|
|
1949
|
+
|
|
1950
|
+
请参阅我们的《数据集格式》以获取更多数据集格式及其格式化方法。
|
|
1951
|
+
|
|
1952
|
+
训练、推理和合并均使用同一个 yaml 文件。
|
|
1953
|
+
|
|
1954
|
+
训练完成后,测试你的模型:
|
|
1955
|
+
|
|
1956
|
+
更多详细信息可在推理中找到。
|
|
1957
|
+
|
|
1958
|
+
启动 Gradio 界面:
|
|
1959
|
+
|
|
1960
|
+
对于大型数据集,请先进行预处理:
|
|
1961
|
+
|
|
1962
|
+
请确保在配置中设置 dataset_prepared_path:,以指定准备好的数据集的保存路径。
|
|
1963
|
+
|
|
1964
|
+
更多详细信息可在数据集预处理中找到。
|
|
1965
|
+
|
|
1966
|
+
要将 LoRA 权重合并回基础模型,请运行:
|
|
1967
|
+
|
|
1968
|
+
合并后的模型将保存在 {output_dir}/merged 目录中。
|
|
1969
|
+
|
|
1970
|
+
更多详细信息可在合并 LoRA 权重中找到。
|
|
1971
|
+
|
|
1972
|
+
现在你已经掌握了基础知识,你可能想要:
|
|
1973
|
+
|
|
1974
|
+
请查看我们的其他指南以获取有关这些主题的详细信息:
|
|
1975
|
+
|
|
1976
|
+
**示例:**
|
|
1977
|
+
|
|
1978
|
+
示例 1 (bash):
|
|
1979
|
+
```bash
|
|
1980
|
+
axolotl fetch examples
|
|
1981
|
+
```
|
|
1982
|
+
|
|
1983
|
+
示例 2 (bash):
|
|
1984
|
+
```bash
|
|
1985
|
+
axolotl train examples/llama-3/lora-1b.yml
|
|
1986
|
+
```
|
|
1987
|
+
|
|
1988
|
+
示例 3 (yaml):
|
|
1989
|
+
```yaml
|
|
1990
|
+
base_model: NousResearch/Llama-3.2-1B
|
|
1991
|
+
|
|
1992
|
+
load_in_8bit: true
|
|
1993
|
+
adapter: lora
|
|
1994
|
+
|
|
1995
|
+
datasets:
|
|
1996
|
+
- path: teknium/GPT4-LLM-Cleaned
|
|
1997
|
+
type: alpaca
|
|
1998
|
+
dataset_prepared_path: last_run_prepared
|
|
1999
|
+
val_set_size: 0.1
|
|
2000
|
+
output_dir: ./outputs/lora-out
|
|
2001
|
+
```
|
|
2002
|
+
|
|
2003
|
+
示例 4 (yaml):
|
|
2004
|
+
```yaml
|
|
2005
|
+
base_model: NousResearch/Nous-Hermes-llama-1b-v1
|
|
2006
|
+
|
|
2007
|
+
load_in_8bit: true
|
|
2008
|
+
adapter: lora
|
|
2009
|
+
|
|
2010
|
+
# Training settings
|
|
2011
|
+
micro_batch_size: 2
|
|
2012
|
+
num_epochs: 3
|
|
2013
|
+
learning_rate: 0.0003
|
|
2014
|
+
|
|
2015
|
+
# Your dataset
|
|
2016
|
+
datasets:
|
|
2017
|
+
- path: my_data.jsonl # Your local data file
|
|
2018
|
+
type: alpaca # Or other format
|
|
2019
|
+
```
|
|
2020
|
+
|
|
2021
|
+
---
|
|
2022
|
+
|
|
2023
|
+
## Multipack (样本打包)
|
|
2024
|
+
|
|
2025
|
+
**URL:** https://docs.axolotl.ai/docs/multipack.html
|
|
2026
|
+
|
|
2027
|
+
**Contents:**
|
|
2028
|
+
- Multipack (样本打包)
|
|
2029
|
+
- 使用 Flash Attention 的 Multipack 可视化
|
|
2030
|
+
- 不使用 Flash Attention 的 Multipack
|
|
2031
|
+
|
|
2032
|
+
因为 Flash Attention 直接丢弃了注意力掩码,所以我们不需要构建 4D 注意力掩码。我们只需要将序列拼接成单个批次,并让 Flash Attention 知道每个新序列从哪里开始。
|
|
2033
|
+
|
|
2034
|
+
4k 上下文,bsz =4,每个字符代表 256 个 Token,X 代表填充 Token
|
|
2035
|
+
|
|
2036
|
+
在每步中对最长输入进行填充之后
|
|
2037
|
+
|
|
2038
|
+
使用打包(注意,每步有效的 Token 数量相同,但实际 bsz 为 1)
|
|
2039
|
+
|
|
2040
|
+
cu_seqlens: [[ 0, 11, 17, 24, 28, 36, 41 44, 48, 51, 55, 60, 64]]
|
|
2041
|
+
|
|
2042
|
+
在没有 Flash Attention 的情况下仍然可以实现 Multipack,但打包效率较低,因为如果没有 Flash Attention,由于上下文长度限制,我们无法将多个批次合并为一个批次。我们可以使用 Pytorch 的缩放点积注意力实现或原生 Pytorch 注意力实现,并结合 4D 注意力掩码将序列打包在一起,从而避免交叉注意力。
|
|
2043
|
+
|
|
2044
|
+
**示例:**
|
|
2045
|
+
|
|
2046
|
+
示例 1 (unknown):
|
|
2047
|
+
```unknown
|
|
2048
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
|
2049
|
+
[[ A A A A A A A A A A A ]
|
|
2050
|
+
B B B B B B ]
|
|
2051
|
+
C C C C C C C ]
|
|
2052
|
+
D D D D ]]
|
|
2053
|
+
|
|
2054
|
+
[[ E E E E E E E E ]
|
|
2055
|
+
[ F F F F ]
|
|
2056
|
+
[ G G G ]
|
|
2057
|
+
[ H H H H ]]
|
|
2058
|
+
|
|
2059
|
+
[[ I I I ]
|
|
2060
|
+
[ J J J ]
|
|
2061
|
+
[ K K K K K]
|
|
2062
|
+
[ L L L ]]
|
|
2063
|
+
```
|
|
2064
|
+
|
|
2065
|
+
示例 2 (unknown):
|
|
2066
|
+
```unknown
|
|
2067
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
|
2068
|
+
[[ A A A A A A A A A A A ]
|
|
2069
|
+
B B B B B B X X X X X X ]
|
|
2070
|
+
C C C C C C C X X X X ]
|
|
2071
|
+
D D D D X X X X X X X ]]
|
|
2072
|
+
|
|
2073
|
+
[[ E E E E E E E E ]
|
|
2074
|
+
[ F F F F X X X X ]
|
|
2075
|
+
[ G G G X X X X X ]
|
|
2076
|
+
[ H H H H X X X X ]]
|
|
2077
|
+
|
|
2078
|
+
[[ I I I X X ]
|
|
2079
|
+
[ J J J X X ]
|
|
2080
|
+
[ K K K K K ]
|
|
2081
|
+
[ L L L X X ]]
|
|
2082
|
+
```
|
|
2083
|
+
|
|
2084
|
+
示例 3 (unknown):
|
|
2085
|
+
```unknown
|
|
2086
|
+
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
|
|
2087
|
+
[[ A A A A A A A A A A A B B B B B
|
|
2088
|
+
B C C C C C C C D D D D E E E E
|
|
2089
|
+
E E E E F F F F F G G G H H H H
|
|
2090
|
+
I I I J J J J K K K K K L L L X ]]
|
|
2091
|
+
```
|
|
2092
|
+
|
|
2093
|
+
---
|
|
2094
|
+
|
|
2095
|
+
## 批次大小与梯度累积
|
|
2096
|
+
|
|
2097
|
+
**URL:** https://docs.axolotl.ai/docs/batch_vs_grad.html
|
|
2098
|
+
|
|
2099
|
+
**Contents:**
|
|
2100
|
+
- 批次大小与梯度累积
|
|
2101
|
+
|
|
2102
|
+
梯度累积是指在多个小批次上累积梯度,然后再更新模型权重。当每个批次中的样本具有多样性时,这种技术不会对学习产生显著影响。
|
|
2103
|
+
|
|
2104
|
+
这种方法允许使用更大的有效批次大小进行有效训练,而不需要按比例增加内存。原因如下:
|
|
2105
|
+
|
|
2106
|
+
批次大小对内存消耗的影响:增加批次大小影响内存的主要原因是存储中间激活值的需求。当你通过网络对一个批次进行前向传播时,你必须为批次中的每个样本在每一层存储激活值,因为这些激活值会在反向传播期间用于计算梯度。因此,更大的批次意味着更多的激活值,从而导致更高的 GPU 内存消耗。
|
|
2107
|
+
|
|
2108
|
+
梯度累积:通过梯度累积,你可以通过在多个较小的批次(或微批次)上累积梯度来有效地模拟更大的批次大小。但是,在任何特定时间,你只对一个微批次进行前向和反向传播。这意味着你只需存储微批次的激活值,而不是完整的累积批次的激活值。因此,你可以模拟更大批次大小的效果,而不需要承担存储大批次激活值的内存成本。
|
|
2109
|
+
|
|
2110
|
+
示例 1: 微批次大小: 3 梯度累积步数: 2 GPU 数量: 3 总批次大小 = 3 * 2 * 3 = 18
|
|
2111
|
+
|
|
2112
|
+
示例 2: 微批次大小: 2 梯度累积步数: 1 GPU 数量: 3 总批次大小 = 2 * 1 * 3 = 6
|
|
2113
|
+
|
|
2114
|
+
**示例:**
|
|
2115
|
+
|
|
2116
|
+
示例 1 (unknown):
|
|
2117
|
+
```unknown
|
|
2118
|
+
| GPU 1 | GPU 2 | GPU 3 |
|
|
2119
|
+
|----------------|----------------|----------------|
|
|
2120
|
+
| S1, S2, S3 | S4, S5, S6 | S7, S8, S9 |
|
|
2121
|
+
| e1, e2, e3 | e4, e5, e6 | e7, e8, e9 |
|
|
2122
|
+
|----------------|----------------|----------------|
|
|
2123
|
+
| → (accumulate) | → (accumulate) | → (accumulate) |
|
|
2124
|
+
|----------------|----------------|----------------|
|
|
2125
|
+
| S10, S11, S12 | S13, S14, S15 | S16, S17, S18 |
|
|
2126
|
+
| e10, e11, e12 | e13, e14, e15 | e16, e17, e18 |
|
|
2127
|
+
|----------------|----------------|----------------|
|
|
2128
|
+
| → (apply) | → (apply) | → (apply) |
|
|
2129
|
+
|
|
2130
|
+
Accumulated gradient for the weight w1 after the second iteration (considering all GPUs):
|
|
2131
|
+
Total gradient for w1 = e1 + e2 + e3 + e4 + e5 + e6 + e7 + e8 + e9 + e10 + e11 + e12 + e13 + e14 + e15 + e16 + e17 + e18
|
|
2132
|
+
|
|
2133
|
+
Weight update for w1:
|
|
2134
|
+
w1_new = w1_old - learning rate x (Total gradient for w1 / 18)
|
|
2135
|
+
```
|
|
2136
|
+
|
|
2137
|
+
示例 2 (unknown):
|
|
2138
|
+
```unknown
|
|
2139
|
+
| GPU 1 | GPU 2 | GPU 3 |
|
|
2140
|
+
|-----------|-----------|-----------|
|
|
2141
|
+
| S1, S2 | S3, S4 | S5, S6 |
|
|
2142
|
+
| e1, e2 | e3, e4 | e5, e6 |
|
|
2143
|
+
|-----------|-----------|-----------|
|
|
2144
|
+
| → (apply) | → (apply) | → (apply) |
|
|
2145
|
+
|
|
2146
|
+
Accumulated gradient for the weight w1 (considering all GPUs):
|
|
2147
|
+
Total gradient for w1 = e1 + e2 + e3 + e4 + e5 + e6
|
|
2148
|
+
|
|
2149
|
+
Weight update for w1:
|
|
2150
|
+
w1_new = w1_old - learning rate × (Total gradient for w1 / 6)
|
|
2151
|
+
```
|
|
2152
|
+
|
|
2153
|
+
---
|
|
2154
|
+
|
|
2155
|
+
## 调试
|
|
2156
|
+
|
|
2157
|
+
**URL:** https://docs.axolotl.ai/docs/debugging.html
|
|
2158
|
+
|
|
2159
|
+
**Contents:**
|
|
2160
|
+
- 调试
|
|
2161
|
+
- 目录
|
|
2162
|
+
- 常规提示
|
|
2163
|
+
- 使用 VSCode 调试
|
|
2164
|
+
- 背景
|
|
2165
|
+
- 配置
|
|
2166
|
+
- 远程主机
|
|
2167
|
+
- 配置
|
|
2168
|
+
- 自定义你的调试器
|
|
2169
|
+
- 视频教程
|
|
2170
|
+
|
|
2171
|
+
本文档提供了一些调试 Axolotl 的提示和技巧。它还提供了一个使用 VSCode 调试的示例配置。良好的调试设置对于理解 Axolotl 代码的幕后工作原理至关重要。
|
|
2172
|
+
|
|
2173
|
+
在调试时,尽可能简化你的测试场景会很有帮助。以下是一些执行此操作的提示:
|
|
2174
|
+
|
|
2175
|
+
[!重要] 所有这些提示都已整合到下面使用 VSCode 调试的示例配置中。
|
|
2176
|
+
|
|
2177
|
+
确保你使用的是最新版本的 axolotl:这个项目变动频繁,且错误修复得很快。检查你的 git 分支并确保你已拉取了 main 分支的最新更改。
|
|
2178
|
+
|
|
2179
|
+
消除并发:将训练和数据预处理的进程数限制为 1:
|
|
2180
|
+
|
|
2181
|
+
使用小型数据集:构建或从 HF Hub 使用一个小型数据集。当使用小型数据集时,你通常必须确保 sample_packing: False 和 eval_sample_packing: False 以避免错误。如果你时间紧迫,没有时间构建小型数据集,但想使用 HF Hub 上的数据,你可以对数据进行分片(这仍会对整个数据集进行 Tokenize,但只会使用其中一部分数据进行训练。例如,要将数据集分为 20 个分片,请将以下内容添加到你的 axolotl 配置中):
|
|
2182
|
+
|
|
2183
|
+
使用小型模型:TinyLlama/TinyLlama-1.1B-Chat-v1.0 是一个小型模型的好例子。
|
|
2184
|
+
|
|
2185
|
+
最小化迭代时间:使用这些设置,确保训练循环尽可能快地完成。
|
|
2186
|
+
|
|
2187
|
+
清除缓存:Axolotl 会缓存某些步骤,底层的 HuggingFace 训练器也是如此。在调试时,你可能希望清除其中一些缓存。
|
|
2188
|
+
|
|
2189
|
+
下面的示例展示了如何配置 VSCode 以调试 chat_template 格式的数据预处理。这是当你在 axolotl 配置中包含以下内容时使用的格式:
|
|
2190
|
+
|
|
2191
|
+
[!重要] 如果你已经熟悉高级的 VSCode 调试,你可以跳过下面的解释,直接查看文件 .vscode/launch.json 和 .vscode/tasks.json 中的示例配置。
|
|
2192
|
+
|
|
2193
|
+
[!提示] 如果你更喜欢看视频而不是阅读,你可以直接跳到下面的视频教程(但建议两者都做)。
|
|
2194
|
+
|
|
2195
|
+
确保你已进行了 Axolotl 的可编辑安装,这能确保你对代码所做的更改能在运行时反映出来。在此项目的根目录下运行以下命令:
|
|
2196
|
+
|
|
2197
|
+
如果你在远程主机上进行开发,你可以轻松地使用 VSCode 进行远程调试。为此,你需要遵循这个 Remote - SSH 指南。你也可以观看下面关于 Docker 和远程 SSH 调试的视频。
|
|
2198
|
+
|
|
2199
|
+
最简单的入门方法是修改此项目中的 .vscode/launch.json 文件。这只是一个示例配置,因此你可能需要对其进行修改或复制以满足你的需求。
|
|
2200
|
+
|
|
2201
|
+
例如,要模拟命令 cd devtools && CUDA_VISIBLE_DEVICES=0 accelerate launch -m axolotl.cli.train dev_chat_template.yml,你可以使用下面的配置 1。请注意,我们添加了额外的标志来覆盖 axolotl 配置,并结合了上述提示(参见注释)。我们还将工作目录设置为 devtools,并将环境变量 HF_HOME 设置为一个稍后会被部分删除的临时文件夹。这是因为我们希望在每次运行之前删除 HF 数据集缓存,以确保数据预处理代码是从头开始运行的。
|
|
2202
|
+
|
|
2203
|
+
关于此配置的附加说明:
|
|
2204
|
+
|
|
2205
|
+
[!提示] 你可能不想删除这些文件夹。例如,如果你在调试模型训练而不是数据预处理,你可能不想删除缓存或输出文件夹。根据你的使用情况,你可能还需要向 tasks.json 文件添加额外的任务。
|
|
2206
|
+
|
|
2207
|
+
下面是定义了 cleanup-for-dataprep 任务的 ./vscode/tasks.json 文件。当你使用上述配置时,此任务会在每次调试会话之前运行。请注意这里有两个任务分别删除了上面提到的两个文件夹。第三个任务 cleanup-for-dataprep 是一个组合了这两个任务的复合任务。使用复合任务是必要的,因为 VSCode 不允许你在 launch.json 文件的 preLaunchTask 参数中指定多个任务。
|
|
2208
|
+
|
|
2209
|
+
你的调试用例可能与上面的示例不同。最简单的做法是将你自己的 axolotl 配置放在 devtools 文件夹中,并修改 launch.json 文件以使用你的配置。你可能还希望修改 preLaunchTask 以删除不同的文件夹或根本不删除任何内容。
|
|
2210
|
+
|
|
2211
|
+
下面的视频教程详细讲解了上述配置,并演示了如何使用 VSCode 进行调试(点击下方图片观看):
|
|
2212
|
+
|
|
2213
|
+
使用官方的 Axolotl Docker 镜像是调试代码的好方法,这也是使用 Axolotl 非常受欢迎的方式。将 VSCode 附加到 Docker 需要多几个步骤。
|
|
2214
|
+
|
|
2215
|
+
在运行 axolotl 的主机上(例如:如果你使用的是远程主机),克隆 axolotl 仓库并将当前目录更改为根目录:
|
|
2216
|
+
|
|
2217
|
+
[!提示] 如果你的主机上已经克隆了 axolotl,请确保你拥有最新更改,并进入项目的根目录。
|
|
2218
|
+
|
|
2219
|
+
接下来,运行所需的 docker 镜像并挂载当前目录。下面是一个你可以运行以执行此操作的 docker 命令:2
|
|
2220
|
+
|
|
2221
|
+
[!提示] 要了解有哪些可用的容器,请参阅 README 的 Docker 部分和 DockerHub 仓库。有关 Docker 容器是如何构建的详细信息,请参阅 axolotl 的 Docker CI 构建。
|
|
2222
|
+
|
|
2223
|
+
你现在将进入容器中。接下来,执行 Axolotl 的可编辑安装:
|
|
2224
|
+
|
|
2225
|
+
接下来,如果你使用的是远程主机,请使用 VSCode 远程连接到此主机。如果你使用的是本地主机,则可以跳过此步骤。
|
|
2226
|
+
|
|
2227
|
+
接下来,在 VSCode 中使用命令面板 (CMD + SHIFT + P) 选择 Dev Containers: Attach to 运行 Container...。系统会提示你选择要附加到的容器。选择你刚刚创建的容器。你现在将位于容器中,工作目录即为项目的根目录。你对代码所做的任何更改都将反映在容器和主机上。
|
|
2228
|
+
|
|
2229
|
+
现在你已准备好如上所述进行调试(请参阅使用 VSCode 调试)。
|
|
2230
|
+
|
|
2231
|
+
这是一个短视频,演示了如何附加到远程主机上的 Docker 容器:
|
|
2232
|
+
|
|
2233
|
+
该配置实际上模拟了命令 CUDA_VISIBLE_DEVICES=0 python -m accelerate.commands.launch -m axolotl.cli.train devtools/chat_template.yml,但两者是一样的。↩︎
|
|
2234
|
+
|
|
2235
|
+
以下许多标志是 Nvidia 在使用 nvidia-container-toolkit 时推荐的最佳实践。你可以在这里阅读有关这些标志的更多信息。↩︎
|
|
2236
|
+
|
|
2237
|
+
**示例:**
|
|
2238
|
+
|
|
2239
|
+
示例 1 (yaml):
|
|
2240
|
+
```yaml
|
|
2241
|
+
datasets:
|
|
2242
|
+
...
|
|
2243
|
+
shards: 20
|
|
2244
|
+
```
|
|
2245
|
+
|
|
2246
|
+
示例 2 (yaml):
|
|
2247
|
+
```yaml
|
|
2248
|
+
datasets:
|
|
2249
|
+
- path: <path to your chat_template formatted dataset> # example on HF Hub: fozziethebeat/alpaca_messages_2k_test
|
|
2250
|
+
type: chat_template
|
|
2251
|
+
```
|
|
2252
|
+
|
|
2253
|
+
示例 3 (bash):
|
|
2254
|
+
```bash
|
|
2255
|
+
pip3 install packaging
|
|
2256
|
+
pip3 install --no-build-isolation -e '.[flash-attn,deepspeed]'
|
|
2257
|
+
```
|
|
2258
|
+
|
|
2259
|
+
示例 4 (json):
|
|
2260
|
+
```json
|
|
2261
|
+
// .vscode/launch.json
|
|
2262
|
+
{
|
|
2263
|
+
"version": "0.2.0",
|
|
2264
|
+
"configurations": [
|
|
2265
|
+
{
|
|
2266
|
+
"name": "Debug axolotl prompt - chat_template",
|
|
2267
|
+
"type": "python",
|
|
2268
|
+
"module": "accelerate.commands.launch",
|
|
2269
|
+
"request": "launch",
|
|
2270
|
+
"args": [
|
|
2271
|
+
"-m", "axolotl.cli.train", "dev_chat_template.yml",
|
|
2272
|
+
// The flags below simplify debugging by overriding the axolotl config
|
|
2273
|
+
// with the debugging tips above. Modify as needed.
|
|
2274
|
+
"--dataset_num_proc=1", // limits data preprocessing to one process
|
|
2275
|
+
"--max_steps=1", // limits training to just one step
|
|
2276
|
+
"--batch_size=1", // minimizes batch size
|
|
2277
|
+
"--micro_batch_size=1", // minimizes batch size
|
|
2278
|
+
"--val_set_size=0", // disables validation
|
|
2279
|
+
"--sample_packing=False", // disables sample packing which is necessary for small datasets
|
|
2280
|
+
"--eval_sample_packing=False",// disables sample packing on eval set
|
|
2281
|
+
"--dataset_prepared_path=temp_debug/axolotl_outputs/data", // send data outputs to a temp folder
|
|
2282
|
+
"--output_dir=temp_debug/axolotl_outputs/model" // send model outputs to a temp folder
|
|
2283
|
+
],
|
|
2284
|
+
"console": "integratedTerminal", // show output in the integrated terminal
|
|
2285
|
+
"cwd": "${workspaceFolder}/devtools", // set working directory to devtools from the root of the project
|
|
2286
|
+
"justMyCode": true, // step through only axolotl code
|
|
2287
|
+
"env": {"CUDA_VISIBLE_DEVICES": "0", // Since we aren't doing distributed training, we need to limit to one GPU
|
|
2288
|
+
"HF_HOME": "${workspaceFolder}/devtools/temp_debug/.hf-cache"}, // send HF cache to a temp folder
|
|
2289
|
+
"preLaunchTask": "cleanup-for-dataprep", // delete temp folders (see below)
|
|
2290
|
+
}
|
|
2291
|
+
]
|
|
2292
|
+
}
|
|
2293
|
+
```
|
|
2294
|
+
|
|
2295
|
+
---
|
|
2296
|
+
|
|
2297
|
+
## Docker
|
|
2298
|
+
|
|
2299
|
+
**URL:** https://docs.axolotl.ai/docs/docker.html
|
|
2300
|
+
|
|
2301
|
+
**Contents:**
|
|
2302
|
+
- Docker
|
|
2303
|
+
- Base
|
|
2304
|
+
- Image
|
|
2305
|
+
- Tags format
|
|
2306
|
+
- Main
|
|
2307
|
+
- Image
|
|
2308
|
+
- Tags format
|
|
2309
|
+
- Cloud
|
|
2310
|
+
- Image
|
|
2311
|
+
- Tags format
|
|
2312
|
+
|
|
2313
|
+
本节介绍了 AxolotlAI 在 Docker Hub 上发布的不同 Docker 镜像。
|
|
2314
|
+
|
|
2315
|
+
对于 Blackwell GPU,请使用带有 PyTorch 2.7.1 和 CUDA 12.8 的标签。
|
|
2316
|
+
|
|
2317
|
+
基础镜像是可以安装 Axolotl 的最小化镜像。它基于 nvidia/cuda 镜像。它包含 python、torch、git、git-lfs、awscli、pydantic 等。
|
|
2318
|
+
|
|
2319
|
+
主镜像是用于运行 Axolotl 的镜像。它基于 axolotlai/axolotl-base 镜像,包含 Axolotl 代码库、依赖项等。
|
|
2320
|
+
|
|
2321
|
+
镜像后可能附加了一些额外的标签,例如 -vllm,用于安装这些软件包。
|
|
2322
|
+
|
|
2323
|
+
云镜像是用于在云中运行 Axolotl 的镜像。它基于 axolotlai/axolotl 镜像,并为不同的云提供商设置了 ENV 变量,例如用于卷挂载的 HuggingFace 缓存目录、tmux 等。
|
|
2324
|
+
|
|
2325
|
+
Jupyter lab 默认会运行。在环境变量中设置 JUPYTER_DISABLE=1 可禁用它。
|
|
2326
|
+
|
|
2327
|
+
这里使用与主镜像相同的标签。
|
|
2328
|
+
|
|
2329
|
+
我们建议将卷挂载到 /workspace/data 以实现数据持久化。/workspace/axolotl 包含源代码,并且是临时的。
|
|
2330
|
+
|
|
2331
|
+
这与云镜像相同,但没有 tmux。
|
|
2332
|
+
|
|
2333
|
+
命名可能有点令人困惑,因为它的末尾附加了 -term。
|
|
2334
|
+
|
|
2335
|
+
这里使用与云镜像相同的标签。
|
|
2336
|
+
|
|
2337
|
+
**示例:**
|
|
2338
|
+
|
|
2339
|
+
示例 1 (unknown):
|
|
2340
|
+
```unknown
|
|
2341
|
+
axolotlai/axolotl-base
|
|
2342
|
+
```
|
|
2343
|
+
|
|
2344
|
+
示例 2 (bash):
|
|
2345
|
+
```bash
|
|
2346
|
+
main-base-py{python_version}-cu{cuda_version}-{pytorch_version}
|
|
2347
|
+
```
|
|
2348
|
+
|
|
2349
|
+
示例 3 (unknown):
|
|
2350
|
+
```unknown
|
|
2351
|
+
axolotlai/axolotl
|
|
2352
|
+
```
|
|
2353
|
+
|
|
2354
|
+
示例 4 (bash):
|
|
2355
|
+
```bash
|
|
2356
|
+
# on push to main
|
|
2357
|
+
main-py{python_version}-cu{cuda_version}-{pytorch_version}
|
|
2358
|
+
|
|
2359
|
+
# latest main (currently torch 2.6.0, python 3.11, cuda 12.4)
|
|
2360
|
+
main-latest
|
|
2361
|
+
|
|
2362
|
+
# nightly build
|
|
2363
|
+
{branch}-{date_in_YYYYMMDD}-py{python_version}-cu{cuda_version}-{pytorch_version}
|
|
2364
|
+
|
|
2365
|
+
# tagged release
|
|
2366
|
+
{version}
|
|
2367
|
+
```
|