Browse Source

metadata type changed to bytes (#491)

Type of metadata field in Expert Request/Response changed to more native type `bytes` and some compatibility fixes are done to the tests to fit different `torch` versions

(cherry picked from commit fe7a4ef042a5ef902d3c0112c76dc1015fae4a15)
Pavel Samygin 3 years ago
parent
commit
94dcbf01d5
2 changed files with 5 additions and 3 deletions
  1. 2 2
      hivemind/proto/runtime.proto
  2. 3 1
      tests/test_compression.py

+ 2 - 2
hivemind/proto/runtime.proto

@@ -12,12 +12,12 @@ message ExpertInfo {
 message ExpertRequest {
   string uid = 1;
   repeated Tensor tensors = 2;
-  string metadata = 3;
+  bytes metadata = 3;
 }
 
 message ExpertResponse {
   repeated Tensor tensors = 2;
-  string metadata = 3;
+  bytes metadata = 3;
 }
 
 enum CompressionType{

+ 3 - 1
tests/test_compression.py

@@ -210,5 +210,7 @@ def test_adaptive_compression():
     assert FLOAT32.mp_part_size.value == 1250  # four-byte tensors
 
     averager1.load_state_from_peers()
-    assert STATE_FP16.mp_counter.value == STATE_FP32.mp_counter.value == 9
+    state_metadata, state_tensors, infos = averager1.get_current_state()
+    assert STATE_FP16.mp_counter.value == len([tensor for tensor in state_tensors if tensor.numel() >= 500])
+    assert STATE_FP32.mp_counter.value == len([tensor for tensor in state_tensors if tensor.numel() < 500])
     assert STATE_FP16.mp_part_size.value == STATE_FP32.mp_part_size.value == 0  # not partitioned