Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
624f13f
turbo quant rest experiments
IvanPleshkov Apr 2, 2026
69eb6d5
cascade tq experiments
IvanPleshkov Apr 5, 2026
a01260e
one more test
IvanPleshkov Apr 5, 2026
3967876
Mount experiments into container
tellet-q Apr 5, 2026
8729b6a
Fix config name and jupyter notebook
tellet-q Apr 7, 2026
b211735
Add option to split by dataset to plots.html
tellet-q Apr 7, 2026
043cd31
no rescoring
IvanPleshkov Apr 7, 2026
363f897
More improvements
tellet-q Apr 7, 2026
ace005b
Set log_lvl to error
tellet-q Apr 7, 2026
19e7bd3
qdrant_hybrid
IvanPleshkov Apr 7, 2026
2f27bbf
Run server and client on the same machine
tellet-q Apr 8, 2026
1afe913
6bit experiments
IvanPleshkov Apr 8, 2026
1ed2cfa
more search params
IvanPleshkov Apr 8, 2026
283b077
Change serach and add another viz
tellet-q Apr 8, 2026
8d45806
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Apr 8, 2026
09c213a
Add script to merge final results into one
tellet-q Apr 8, 2026
1ef92a1
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Apr 8, 2026
889e585
params to start
IvanPleshkov Apr 8, 2026
c2980a0
Add custom config
tellet-q Apr 8, 2026
63e3400
Allow 20 machines at once
tellet-q Apr 8, 2026
a658f12
Freeze dev version and fix engine name
tellet-q Apr 9, 2026
147abaa
Add tq6 cascade set
tellet-q Apr 9, 2026
358c2cc
Remove tq6 from turbo_quant
tellet-q Apr 9, 2026
c67cd34
line for orig vectors
IvanPleshkov Apr 9, 2026
3bdac8b
Enable repeats and clean results
tellet-q Apr 9, 2026
751bba7
Use 12 machines
tellet-q Apr 9, 2026
ba78022
Fix cleanup
tellet-q Apr 9, 2026
7010d34
Fix cleanup
tellet-q Apr 9, 2026
46115a8
less tests, fix line
IvanPleshkov Apr 10, 2026
0269779
Shuffle
tellet-q Apr 10, 2026
d5883ad
Reduce number of machines
tellet-q Apr 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 30 additions & 5 deletions .github/workflows/manual-benchmarks-cascade.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ jobs:
CONFIG_FILE="benchmark_cascade/benchmark-configs.json"
BENCHMARK_SET="${{ inputs.benchmark_set }}"
CURRENT_BATCH=${{ inputs.current_batch || 0 }}
BATCH_SIZE=10
BATCH_SIZE=12

echo "benchmark_set=$BENCHMARK_SET" >> $GITHUB_OUTPUT

Expand All @@ -102,6 +102,9 @@ jobs:
exit 1
fi

# Expand per-item "repeat" field: each item with "repeat": N becomes N copies (default 1)
BENCHMARK_CONFIGS=$(jq '[.[] | . as $c | range($c.repeat // 1) | $c | del(.repeat)]' <<< "$BENCHMARK_CONFIGS")

# Apply params_override if provided
PARAMS_OVERRIDE='${{ inputs.params_override }}'
if [ "$PARAMS_OVERRIDE" != "{}" ]; then
Expand All @@ -111,16 +114,31 @@ jobs:
OVERRIDE_PARAMS=$(echo "$PARAMS_OVERRIDE" | jq -r '.params // {}')

if [ "$OVERRIDE_PARAMS" != "{}" ]; then
# Extract and remove repeat before passing to generate_configs.py
OVERRIDE_REPEAT=$(echo "$OVERRIDE_PARAMS" | jq -r '.repeat // 1')
OVERRIDE_PARAMS=$(echo "$OVERRIDE_PARAMS" | jq 'del(.repeat)')

# Generate all parameter combinations using separate Python script
if ! BENCHMARK_CONFIGS=$(python3 benchmark_cascade/generate_configs.py "$OVERRIDE_PARAMS" "$BENCHMARK_CONFIGS"); then
echo "Error: Failed to generate benchmark configurations"
exit 1
fi

echo "Generated $(echo "$BENCHMARK_CONFIGS" | jq length) configurations after applying params_override"

# Apply override repeat to all generated configs
if [ "$OVERRIDE_REPEAT" -gt 1 ]; then
BENCHMARK_CONFIGS=$(jq --argjson n "$OVERRIDE_REPEAT" '[.[] as $c | range($n) | $c]' <<< "$BENCHMARK_CONFIGS")
echo "Applied repeat=$OVERRIDE_REPEAT, total configs: $(echo "$BENCHMARK_CONFIGS" | jq length)"
fi
fi
fi

# Shuffle so that repeated configs land on different machines/batches
# Use the first workflow run ID as seed for deterministic shuffle across batches
SHUFFLE_SEED=$(echo "$WORKFLOW_RUN_IDS" | cut -d',' -f1)
BENCHMARK_CONFIGS=$(python3 -c "import json, random, sys; d=json.load(sys.stdin); random.seed(int(sys.argv[1])); random.shuffle(d); print(json.dumps(d))" "$SHUFFLE_SEED" <<< "$BENCHMARK_CONFIGS")

TOTAL_CONFIGS=$(echo "$BENCHMARK_CONFIGS" | jq length)
START_INDEX=$((CURRENT_BATCH * BATCH_SIZE))
END_INDEX=$((START_INDEX + BATCH_SIZE - 1))
Expand Down Expand Up @@ -184,7 +202,7 @@ jobs:
MACHINES_FIRST=false

SERVER_NAME="benchmark-cascade-server-${i}"
CLIENT_NAME="benchmark-cascade-client-${i}"
CLIENT_NAME="benchmark-cascade-server-${i}"
MACHINES_INFO="${MACHINES_INFO}{\"server_name\":\"$SERVER_NAME\",\"client_name\":\"$CLIENT_NAME\"}"
done

Expand Down Expand Up @@ -234,7 +252,7 @@ jobs:
if: inputs.process_results == false
runs-on: ubuntu-latest
strategy:
max-parallel: 10
max-parallel: 12
fail-fast: false
matrix:
config: ${{ fromJSON(needs.prepareBenchmarks.outputs.matrix) }}
Expand Down Expand Up @@ -273,7 +291,7 @@ jobs:
max_retries: 5

- name: Create Client
if: ${{ inputs.machines_per_bench == true || inputs.current_batch == 0 }}
if: ${{ (inputs.machines_per_bench == true || inputs.current_batch == 0) && steps.extract_names.outputs.client_name != steps.extract_names.outputs.server_name }}
uses: ./.github/workflows/actions/create-server-with-retry
with:
server_name: ${{ steps.extract_names.outputs.client_name }}
Expand All @@ -289,7 +307,7 @@ jobs:
contents: read
packages: read
strategy:
max-parallel: 10
max-parallel: 12
fail-fast: false
matrix:
config: ${{ fromJSON(needs.prepareBenchmarks.outputs.matrix) }}
Expand Down Expand Up @@ -329,6 +347,13 @@ jobs:
fi

bash -x tools/setup_ci.sh

# Clear previous results on remote client to avoid mixing data from different runs
source tools/ssh.sh
CLOUD_NAME=${CLOUD_NAME:-"hetzner"}
IP_OF_THE_CLIENT=$(bash "tools/${CLOUD_NAME}/get_public_ip.sh" "$CLIENT_NAME")
ssh_with_retry -o StrictHostKeyChecking=no "root@${IP_OF_THE_CLIENT}" "rm -rf ~/results" || true

bash -x tools/run_ci.sh

- name: Upload benchmark results
Expand Down
Loading
Loading