Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test Llama, rebalancing, throughput eval, and all CLI scripts #452

Merged
merged 32 commits into from
Aug 8, 2023
Merged
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
69abacc
Show argparse defaults, fix docstring
borzunov Aug 8, 2023
ca2850e
Test petals.cli.run_dht
borzunov Aug 8, 2023
816401e
Increase mean_block_selection_delay
borzunov Aug 8, 2023
7330653
Test rebalancing
borzunov Aug 8, 2023
a00e79d
Add help to benchmark argparse
borzunov Aug 8, 2023
5b3d4c4
Use less RAM
borzunov Aug 8, 2023
2b765b9
Don't set default model in benchmarks
borzunov Aug 8, 2023
fae58d9
Fix sleep time
borzunov Aug 8, 2023
856f53f
Test --throughput eval
borzunov Aug 8, 2023
05dc383
Fix flapping test
borzunov Aug 8, 2023
18e5b00
Use AutoDistributed{Config,Model} in tests
borzunov Aug 8, 2023
168e478
Add Maykeye/TinyLLama-v0 to tests
borzunov Aug 8, 2023
5760b15
Test using includes only
borzunov Aug 8, 2023
015238a
Adjust --num_blocks and --block_indices for 8-layer TinyLlama-v0
borzunov Aug 8, 2023
17cae64
Refactor matrix
borzunov Aug 8, 2023
b7b7464
Fix commands
borzunov Aug 8, 2023
c907990
Skip TP tests for llama
borzunov Aug 8, 2023
0040539
Fix test_greedy_generation() for llama
borzunov Aug 8, 2023
a5a95c4
Fix commands
borzunov Aug 8, 2023
c3e7638
Fix test_server_info()
borzunov Aug 8, 2023
b622a14
Fix server layout
borzunov Aug 8, 2023
8a379aa
Try reducing RAM usage
borzunov Aug 8, 2023
ecd7d3f
Check if benchmarks work
borzunov Aug 8, 2023
6ffbc28
Watch free RAM (common issue in CI)
borzunov Aug 8, 2023
033a3ca
Reduce RAM further
borzunov Aug 8, 2023
f06cebd
Tune constants to save RAM
borzunov Aug 8, 2023
47d2d53
Speed benchmark tests
borzunov Aug 8, 2023
d8e08e6
Fix flapping test
borzunov Aug 8, 2023
315c5c6
Try --no_relay
borzunov Aug 8, 2023
5cbb33b
Increase swap space
borzunov Aug 8, 2023
54cd213
Fix flapping test
borzunov Aug 8, 2023
1e34dfd
Fix flapping test
borzunov Aug 8, 2023
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
Prev Previous commit
Next Next commit
Test rebalancing
  • Loading branch information
borzunov committed Aug 8, 2023
commit 7330653a1360d1ee2b21bc7eb7d90db768bf2a80
35 changes: 19 additions & 16 deletions .github/workflows/run-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,41 +35,44 @@ jobs:
export REF_NAME=bigscience/bloom-560m
export ADAPTER_NAME=artek0chumak/bloom-560m-safe-peft

python -m petals.cli.run_dht --identity tests/test.id --host_maddrs /ip4/127.0.0.1/tcp/31337
python -m petals.cli.run_dht --identity tests/test.id --host_maddrs /ip4/127.0.0.1/tcp/31337 &> bootstrap.log &
BOOTSTRAP_PID=$!

export INITIAL_PEERS=/ip4/127.0.0.1/tcp/31337/p2p/QmS9KwZptnVdB9FFV7uGgaTq4sEKBwcYeKZDfSpyKDUd1g
# ^-- multiaddr in INITIAL_PEERS is determined by --identity and --host_maddrs

sleep 5 # wait for DHT init

python -m petals.cli.run_server --converted_model_name_or_path $MODEL_NAME --block_indices 0:12 \
python -m petals.cli.run_server --converted_model_name_or_path $MODEL_NAME --num_blocks 3 \
--initial_peers $INITIAL_PEERS --throughput 1 --torch_dtype float32 --adapters $ADAPTER_NAME \
--attn_cache_tokens 2048 --max_chunk_size_bytes 1024 &> server1.log &
--mean_balance_check_period 10 &> server1.log &
SERVER1_PID=$!
# ^-- this server should choose blocks 0:3, then see that blocks 22:24 are not covered and move to 21:24

python -m petals.cli.run_server --converted_model_name_or_path $MODEL_NAME --block_indices 12:22 \
--initial_peers $INITIAL_PEERS --throughput 1 --torch_dtype float32 --adapters $ADAPTER_NAME &> server2.log &
sleep 5 # wait for the 1st server to choose blocks

python -m petals.cli.run_server --converted_model_name_or_path $MODEL_NAME --block_indices 0:12 \
--initial_peers $INITIAL_PEERS --throughput 1 --torch_dtype float32 --adapters $ADAPTER_NAME \
--attn_cache_tokens 2048 --max_chunk_size_bytes 1024 &> server2.log &
SERVER2_PID=$!

python -m petals.cli.run_server --converted_model_name_or_path $MODEL_NAME --block_indices 12:15 \
--initial_peers $INITIAL_PEERS --throughput 1 --torch_dtype float32 --tensor_parallel_devices cpu cpu &> server3.log &
python -m petals.cli.run_server --converted_model_name_or_path $MODEL_NAME --block_indices 12:22 \
--initial_peers $INITIAL_PEERS --throughput 1 --torch_dtype float32 --adapters $ADAPTER_NAME &> server3.log &
SERVER3_PID=$!

sleep 10 # wait for initial servers to declare blocks, then let server decide which blocks to serve

python -m petals.cli.run_server --converted_model_name_or_path $MODEL_NAME --num_blocks 3 \
--initial_peers $INITIAL_PEERS --throughput 1 --torch_dtype float32 --adapters $ADAPTER_NAME &> server4.log &
python -m petals.cli.run_server --converted_model_name_or_path $MODEL_NAME --block_indices 12:15 \
--initial_peers $INITIAL_PEERS --throughput 1 --torch_dtype float32 --tensor_parallel_devices cpu cpu &> server4.log &
SERVER4_PID=$!

tail -n 100 -f server*.log &
tail -n 100 -f bootstrap.log server*.log &
LOGGER_PID=$!
sleep 30 # wait for servers to download layers
sleep 30 # wait for servers to download layers and rebalance

kill -0 $SERVER1_PID $SERVER2_PID $SERVER3_PID $SERVER4_PID # ensure all servers survived init
kill -0 $BOOTSTRAP_PID $SERVER1_PID $SERVER2_PID $SERVER3_PID $SERVER4_PID # ensure all peers survived init

pytest tests --durations=0 --durations-min=1.0 -v

kill -0 $SERVER1_PID $SERVER2_PID $SERVER3_PID $SERVER4_PID # ensure all servers survived tests
kill -0 BOOTSTRAP_PID $SERVER1_PID $SERVER2_PID $SERVER3_PID $SERVER4_PID # ensure all peers survived tests

kill -s SIGINT $SERVER1_PID $SERVER2_PID $SERVER3_PID $SERVER4_PID $LOGGER_PID
kill -s SIGINT $BOOTSTRAP_PID $SERVER1_PID $SERVER2_PID $SERVER3_PID $SERVER4_PID $LOGGER_PID
echo "Done!"
Loading