Nemo Skills API参考:核心接口和命令行工具详解

发布时间:2026/7/19 16:05:25
Nemo Skills API参考:核心接口和命令行工具详解 Nemo Skills API参考核心接口和命令行工具详解【免费下载链接】SkillsA project to improve skills of large language models项目地址: https://gitcode.com/gh_mirrors/ne/SkillsNemo Skills是一个强大的开源框架专门用于提升大型语言模型LLM的各项技能。无论你是初学者还是经验丰富的开发者掌握Nemo Skills的API和命令行工具都是高效使用这个框架的关键。本文将详细介绍Nemo Skills的核心接口、命令行工具以及实用技巧帮助你快速上手这个强大的LLM技能提升工具。 什么是Nemo SkillsNemo Skills是一个全面的LLM开发工具箱支持从合成数据生成、模型训练到多种基准测试评估的完整流程。它的核心优势在于灵活性和可扩展性——你可以从本地工作站开始开发只需一行代码就能迁移到大规模的Slurm集群上运行。核心功能亮点灵活的LLM推理无缝切换API提供商、本地服务器和大规模Slurm作业多样化的模型托管支持TensorRT-LLM、vLLM、sglang或Megatron等多种后端全面的模型评估覆盖数学、代码、科学知识、指令遵循、长上下文等众多基准测试大规模扩展能力从单GPU到数万GPU的集群都能轻松应对 安装与基础配置快速安装方法git clone https://gitcode.com/gh_mirrors/ne/Skills.git cd Skills pip install -e .推荐使用可编辑模式安装这样可以确保在数据集准备过程中创建的文件能够正确工作。配置集群环境Nemo Skills通过集群配置文件来管理不同的运行环境。运行以下命令创建你的第一个配置ns setup系统会引导你创建本地或Slurm集群配置包括容器设置、环境变量和挂载路径。 核心命令行工具详解Nemo Skills提供了一个强大的命令行工具ns它集成了所有主要功能。让我们深入了解各个子命令的使用方法。1. 数据生成ns generatens generate是使用最频繁的命令之一用于运行LLM推理生成数据。基本用法示例ns generate \ --clusterlocal \ --server_typevllm \ --modelQwen/Qwen2.5-1.5B-Instruct \ --server_gpus1 \ --output_dir./generation \ --input_file./input.jsonl \ prompt_config./prompt.yaml关键参数说明--cluster: 指定集群配置local或slurm--server_type: 推理后端类型trtllm、vllm、nemo、openai--model: 模型路径或API模型名称--server_gpus: 运行模型所需的GPU数量prompt_config: 提示模板配置文件2. 模型评估ns evalns eval命令用于在各种基准测试上评估模型性能。评估示例ns eval \ --clusterslurm \ --model/workspace/models/QwQ-32B \ --server_typetrtllm \ --output_dir/workspace/results \ --benchmarksaime24:64,aime25:64 \ --num_jobs16 \ --server_gpus8支持的基准测试类型数学推理AIME、HMMT、Minif2F等代码能力SWE-Bench、LiveCodeBench等科学知识HLE、SciCode、GPQA等指令遵循IFBench、IFEval等长上下文Ruler、AALCR等3. 数据准备ns prepare_data在运行评估之前需要准备相应的数据集ns prepare_data aime24 aime25 swe-bench这个命令会自动下载和处理指定基准测试的数据为后续评估做好准备。4. 结果汇总ns summarize_results评估完成后使用此命令汇总和分析结果ns summarize_results --clusterslurm /workspace/results输出结果会显示各种评估指标如pass1、majority64等。 Python API接口详解除了命令行工具Nemo Skills还提供了完整的Python API让你可以在脚本中灵活调用所有功能。核心导入模块from nemo_skills.pipeline.cli import wrap_arguments, generate, eval, prepare_dataAPI使用示例数据生成示例from nemo_skills.pipeline.cli import wrap_arguments, generate generate( clusterlocal, server_typevllm, modelQwen/Qwen2.5-1.5B-Instruct, server_gpus1, output_dir/workspace/generation, input_file/workspace/input.jsonl, ctxwrap_arguments( prompt_config/workspace/prompt.yaml inference.temperature0.7 inference.tokens_to_generate2048 ), )链式作业调度from nemo_skills.pipeline.cli import wrap_arguments, eval, run_cmd # 下载模型 run_cmd( ctxwrap_arguments( hf download Qwen/QwQ-32B --local-dir /workspace/models/QwQ-32B ), clusterslurm, expnamedownload-model, log_dir/workspace/download-logs ) # 运行评估依赖下载任务 eval( ctxwrap_arguments( inference.tokens_to_generate16000 inference.temperature0.6 parse_reasoningTrue ), clusterslurm, model/workspace/models/QwQ-32B, server_typetrtllm, output_dir/workspace/results/, run_afterdownload-model, # 等待下载完成 benchmarksaime24:64,aime25:64, num_jobs16, server_gpus8, ) 项目结构概览了解Nemo Skills的项目结构有助于更好地使用其APInemo_skills/ ├── pipeline/ # 核心管道模块 │ ├── cli.py # 命令行接口主入口 │ ├── generate.py # 数据生成管道 │ ├── eval.py # 评估管道 │ └── ... ├── inference/ # 推理相关模块 ├── dataset/ # 数据集处理模块 │ ├── aime24/ # AIME 2024数据集 │ ├── aime25/ # AIME 2025数据集 │ ├── swe-bench/ # SWE-Bench数据集 │ └── ... # 其他50数据集 └── code_execution/ # 代码执行沙箱 高级配置技巧1. 提示模板配置创建自定义提示模板文件prompt.yamlsystem: 你是一个专业的数学问题解决助手。请逐步推理并给出最终答案。 user: |- 问题{question} 选项A{option_a} 选项B{option_b} 请选择正确答案并解释你的推理过程。2. 集群配置文件自定义集群配置cluster_configs/my_cluster.yamlexecutor: slurm containers: trtllm: nvcr.io/nvidia/tensorrt-llm/release:1.3.0rc8 vllm: dockerfile:dockerfiles/Dockerfile.vllm nemo-skills: dockerfile:dockerfiles/Dockerfile.nemo-skills env_vars: - HF_HOME/models - HF_TOKEN${HF_TOKEN} mounts: - /mnt/models:/models - /home/user/workspace:/workspace slurm: account: my_account partition: gpu qos: normal3. 使用配置文件传递复杂参数对于包含特殊字符的参数使用YAML配置文件# reasoning_config.yaml end_reasoning_string: /think parallel_thinking: end_reasoning_string: /think max_parallel_thoughts: 5然后在命令中引用ns generate \ --config-path/nemo_run/code/configs \ --config-namereasoning_config \ prompt_configmath/reasoning 调试与问题排查查看详细日志# 查看特定实验的日志 nemo experiment logs experiment_name # 查看Slurm作业状态 squeue -u $USER # 检查容器日志 docker logs container_id常见问题解决路径挂载问题使用--check_mounted_paths参数检查路径是否正确挂载容器启动失败检查Docker/NVIDIA Container Toolkit安装API密钥问题确保设置了正确的环境变量NVIDIA_API_KEY或OPENAI_API_KEY内存不足调整--server_gpus参数或使用更小的模型 性能优化建议1. 批量处理优化# 使用多个并行作业加速处理 ns eval \ --num_jobs32 \ --benchmarksaime24:256,aime25:256 \ --server_gpus42. 内存优化配置# 调整vLLM内存利用率 ns generate \ --server_typevllm \ --server_args--gpu-memory-utilization0.95 \ --modellarge-model3. 缓存策略# 重用已上传的代码 ns generate \ --reuse_code_expprevious_experiment \ --expnamenew_experiment 实战案例完整的评估流程让我们通过一个完整的例子来展示如何使用Nemo Skills APIfrom nemo_skills.pipeline.cli import wrap_arguments, prepare_data, eval, summarize_results # 1. 准备数据 prepare_data(aime24, aime25, swe-bench) # 2. 运行评估 eval( ctxwrap_arguments( inference.tokens_to_generate12000 inference.temperature0.7 parse_reasoningTrue end_reasoning_string/think ), clusterslurm, model/workspace/models/llama-3.1-70b, server_typetrtllm, output_dir/workspace/eval-results, benchmarksaime24:32,aime25:32,swe-bench:8, num_jobs8, server_gpus4, expnamellama-3.1-eval ) # 3. 汇总结果 summarize_results( clusterslurm, results_dir/workspace/eval-results ) 最佳实践建议1. 版本控制集成将你的配置文件和脚本纳入版本控制git add prompt.yaml cluster_configs/ scripts/ git commit -m 添加Nemo Skills配置2. 实验管理使用有意义的实验名称ns generate --expnamemath-eval-$(date %Y%m%d)-v13. 资源监控# 监控GPU使用情况 nvidia-smi # 查看作业状态 nemo experiment status4. 渐进式测试从小规模开始逐步扩大# 第一步单样本测试 ns generate --input_filetest_samples.jsonl --num_samples1 # 第二步小批量测试 ns generate --input_filesmall_batch.jsonl --num_samples10 # 第三步完整评估 ns eval --benchmarksaime24:256 --num_jobs32 未来发展方向Nemo Skills正在持续发展未来版本将带来更多功能更多模型支持扩展对新兴模型架构的支持更丰富的基准测试增加更多领域的评估数据集性能优化进一步优化大规模集群的运行效率用户体验改进简化配置流程提供更多示例和教程 学习资源官方文档访问项目的完整文档了解最新信息教程示例查看tutorials目录获取更多实用示例社区支持在项目仓库中提出问题或参与讨论论文与发布查看releases了解最新的研究成果和模型发布 开始你的Nemo Skills之旅现在你已经掌握了Nemo Skills API和命令行工具的核心知识。无论你是要评估模型性能、生成训练数据还是构建复杂的LLM应用流水线Nemo Skills都能为你提供强大的支持。记住最好的学习方式就是动手实践。从简单的API调用开始逐步尝试更复杂的集群配置和并行处理你会发现Nemo Skills的强大之处在于它的灵活性和可扩展性。祝你在大语言模型技能提升的旅程中取得成功【免费下载链接】SkillsA project to improve skills of large language models项目地址: https://gitcode.com/gh_mirrors/ne/Skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考