【PyCharm】将包含多个参数的 shell 脚本配置到执行文件来调试 Python 程序

要配置 PyCharm 以使用包含多个参数的 shell 脚本(如 run.sh)来调试 Python 程序,您可以按照以下步骤操作:

  1. 创建一个新的运行/调试配置
    • 在 PyCharm 中,点击"运行"菜单旁边的齿轮图标,选择"编辑配置"(或使用快捷键 Ctrl+Shift+Alt+S)。
    • 点击左上角的"+"号,选择"Python"。
  2. 配置脚本参数
    • 在新创建的配置中,您需要设置"脚本路径"为您的 Python 脚本路径(在这个例子中是 inference_pangu_vllm.py)。
    • 在"参数"字段中,您需要输入所有传递给 Python 脚本的参数。这些参数可以从 run.sh 脚本中的 command 变量获得。您可以将这些参数复制并粘贴到 PyCharm 的参数字段中,确保格式正确。
  3. 设置环境变量
    • 在 PyCharm 的运行/调试配置中,有一个"环境变量"部分。在这里,您需要添加 run.sh 脚本中设置的所有环境变量,例如 PRECHECKPOINT_PATH, VOCAB_PATH, MICRO_BATCH_SIZE 等。
  4. 配置工作目录
    • 在"工作目录"字段中,设置为您项目的工作目录,通常是 PROJECT_DIR 指定的路径。
      以下是一个示例配置:
  • 脚本路径: ./pangu/torch/streaming_decode/inference_pangu_vllm.py

  • 参数:

    复制代码
    --num-layers 62 
    --hidden-size 6144 
    --ffn-hidden-size 27648 
    --num-attention-heads 48 
    --group-query-attention 
    --num-query-groups 8 
    --swiglu 
    --untie-embeddings-and-output-weights 
    --disable-bias-linear 
    --position-embedding-type rope 
    --rotary-base 1000000 
    --rope-cache 
    --use-rope-fp32 
    --use-fused-rotary-pos-emb 
    --use-rotary-position-embeddings 
    --shape-format BSH --use-flash-attn --sparse-mode 2 
    --tokenizer-type PretrainedFromHF 
    --tokenizer-not-use-fast 
    --padded-vocab-size 165664 
    --fp16 
    --tokenizer-name-or-path ${VOCAB_PATH} 
    --use_prefix_txt_for_prompt 
    --eos_id 165569 
    --actual-vocab-size 165664 
    --attention-softmax-in-fp32 
    --normalization RMSNorm 
    --norm-epsilon 1e-5 
    --use-fused-rmsnorm 
    --use-gemma-post-norm 
    --max-position-embeddings 32768 
    --no-top-query-layer 
    --make-vocab-size-divisible-by 16 
    --language ${LANGUAGE} 
    --nlp-only 
    --use-act-seq-len --use_FIA --inner_precise 0  
    --kvselect_mode topk
  • 环境变量:

    复制代码
    SCRIPT_DIR=/path/to/script_dir
    PROJECT_DIR=/path/to/project_dir
    PRECHECKPOINT_PATH=/data/models/Pangu_38B_3.1.34.B101_32K/Deploy/Checkpoint
    VOCAB_PATH=/path/to/resource/vocab/pangu_tokenizer_llama3_expand_13b_v2_deleted
    MICRO_BATCH_SIZE=1
    EN_SEQ_LEN=32000
    DE_SEQ_LEN=40
    RUN_SCRIPT=./pangu/torch/streaming_decode/inference_pangu_vllm.py
    DISTRIBUTED_ARGS=...
    INFERENCE_ARGS=...
    OUTPUT_TEXT_DIR=...
    LANGUAGE=...
  1. 启动调试
    • 配置完成后,点击 PyCharm 中的 debug 按钮(通常是绿色甲虫图标)。
      请注意,您可能需要根据实际情况调整路径和环境变量。如果 DISTRIBUTED_ARGSINFERENCE_ARGS 在其他地方定义,您也需要将它们添加到环境变量或参数中。
相关推荐
Dxy12393102162 分钟前
Python如何使用DrissionPage做自动化:简单入门指南
开发语言·python·自动化
石去皿4 分钟前
从本地知识库到“活”知识——RAG 落地全景指南
c++·python·大模型·rag
hui函数8 分钟前
Python系列Bug修复PyCharm控制台pip install报错:如何解决 pip install 网络报错 企业网关拦截 User-Agent 问题
python·pycharm·bug
猫头虎8 分钟前
Claude Code 永动机:ralph-loop 无限循环迭代插件详解(安装 / 原理 / 最佳实践 / 避坑)
ide·人工智能·langchain·开源·编辑器·aigc·编程技术
a努力。10 分钟前
虾皮Java面试被问:JVM Native Memory Tracking追踪堆外内存泄漏
java·开发语言·jvm·后端·python·面试
Kratzdisteln11 分钟前
【Python】Flask
开发语言·python·flask
sa1002728 分钟前
基于Python的京东评论爬虫
开发语言·爬虫·python
我命由我1234531 分钟前
Android Studio - Android Studio 去除 import 的未使用的类
android·java·ide·学习·java-ee·android studio·学习方法
Cigaretter71 小时前
Day 38 早停策略和模型权重的保存
python·深度学习·机器学习
sunywz1 小时前
【JVM】(2)java类加载机制
java·jvm·python