【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 在其他地方定义,您也需要将它们添加到环境变量或参数中。
相关推荐
IVEN_2 小时前
只会Python皮毛?深入理解这几点,轻松进阶全栈开发
python·全栈
Ray Liang4 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
AI攻城狮4 小时前
如何给 AI Agent 做"断舍离":OpenClaw Session 自动清理实践
python
千寻girling4 小时前
一份不可多得的 《 Python 》语言教程
人工智能·后端·python
AI攻城狮7 小时前
用 Playwright 实现博客一键发布到稀土掘金
python·自动化运维
曲幽7 小时前
FastAPI分布式系统实战:拆解分布式系统中常见问题及解决方案
redis·python·fastapi·web·httpx·lock·asyncio
孟健1 天前
Karpathy 用 200 行纯 Python 从零实现 GPT:代码逐行解析
python
码路飞1 天前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
曲幽1 天前
FastAPI压力测试实战:Locust模拟真实用户并发及优化建议
python·fastapi·web·locust·asyncio·test·uvicorn·workers