run_infer.sh 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #!/bin/bash
  2. set -eo pipefail
  3. source "evaluation/utils/version_control.sh"
  4. MODEL_CONFIG=$1
  5. COMMIT_HASH=$2
  6. AGENT=$3
  7. EVAL_LIMIT=$4
  8. MAX_ITER=$5
  9. NUM_WORKERS=$6
  10. DATASET=$7
  11. SPLIT=$8
  12. if [ -z "$NUM_WORKERS" ]; then
  13. NUM_WORKERS=1
  14. echo "Number of workers not specified, use default $NUM_WORKERS"
  15. fi
  16. checkout_eval_branch
  17. if [ -z "$AGENT" ]; then
  18. echo "Agent not specified, use default CodeActAgent"
  19. AGENT="CodeActAgent"
  20. fi
  21. if [ -z "$MAX_ITER" ]; then
  22. echo "MAX_ITER not specified, use default 30"
  23. MAX_ITER=30
  24. fi
  25. if [ -z "$USE_INSTANCE_IMAGE" ]; then
  26. echo "USE_INSTANCE_IMAGE not specified, use default true"
  27. USE_INSTANCE_IMAGE=true
  28. fi
  29. if [ -z "$DATASET" ]; then
  30. echo "DATASET not specified, use default princeton-nlp/SWE-bench_Lite"
  31. DATASET="princeton-nlp/SWE-bench_Lite"
  32. fi
  33. if [ -z "$SPLIT" ]; then
  34. echo "SPLIT not specified, use default test"
  35. SPLIT="test"
  36. fi
  37. export USE_INSTANCE_IMAGE=$USE_INSTANCE_IMAGE
  38. echo "USE_INSTANCE_IMAGE: $USE_INSTANCE_IMAGE"
  39. get_agent_version
  40. echo "AGENT: $AGENT"
  41. echo "AGENT_VERSION: $AGENT_VERSION"
  42. echo "MODEL_CONFIG: $MODEL_CONFIG"
  43. echo "DATASET: $DATASET"
  44. echo "SPLIT: $SPLIT"
  45. # Default to NOT use Hint
  46. if [ -z "$USE_HINT_TEXT" ]; then
  47. export USE_HINT_TEXT=false
  48. fi
  49. echo "USE_HINT_TEXT: $USE_HINT_TEXT"
  50. EVAL_NOTE="$AGENT_VERSION"
  51. # if not using Hint, add -no-hint to the eval note
  52. if [ "$USE_HINT_TEXT" = false ]; then
  53. EVAL_NOTE="$EVAL_NOTE-no-hint"
  54. fi
  55. if [ -n "$EXP_NAME" ]; then
  56. EVAL_NOTE="$EVAL_NOTE-$EXP_NAME"
  57. fi
  58. echo "EVAL_NOTE: $EVAL_NOTE"
  59. unset SANDBOX_ENV_GITHUB_TOKEN # prevent the agent from using the github token to push
  60. COMMAND="poetry run python evaluation/swe_bench/run_infer.py \
  61. --agent-cls $AGENT \
  62. --llm-config $MODEL_CONFIG \
  63. --max-iterations $MAX_ITER \
  64. --max-chars 10000000 \
  65. --eval-num-workers $NUM_WORKERS \
  66. --eval-note $EVAL_NOTE \
  67. --dataset $DATASET \
  68. --split $SPLIT"
  69. if [ -n "$EVAL_LIMIT" ]; then
  70. echo "EVAL_LIMIT: $EVAL_LIMIT"
  71. COMMAND="$COMMAND --eval-n-limit $EVAL_LIMIT"
  72. fi
  73. # Run the command
  74. eval $COMMAND
  75. checkout_original_branch