run_infer.sh 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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. unset SANDBOX_ENV_GITHUB_TOKEN # prevent the agent from using the github token to push
  56. COMMAND="poetry run python evaluation/swe_bench/run_infer.py \
  57. --agent-cls $AGENT \
  58. --llm-config $MODEL_CONFIG \
  59. --max-iterations $MAX_ITER \
  60. --max-chars 10000000 \
  61. --eval-num-workers $NUM_WORKERS \
  62. --eval-note $EVAL_NOTE \
  63. --dataset $DATASET \
  64. --split $SPLIT"
  65. if [ -n "$EVAL_LIMIT" ]; then
  66. echo "EVAL_LIMIT: $EVAL_LIMIT"
  67. COMMAND="$COMMAND --eval-n-limit $EVAL_LIMIT"
  68. fi
  69. # Run the command
  70. eval $COMMAND
  71. checkout_original_branch