def deploy_(clipper_conn): python_deployer.create_endpoint( clipper_conn, "testapp0-model", "doubles", feature_sum, registry=CLIPPER_CONTAINER_REGISTRY)
def deploy_(clipper_conn, use_kubernetes=False): if use_kubernetes: python_deployer.create_endpoint(clipper_conn, "testapp0-model", "doubles", feature_sum, registry=CLIPPER_CONTAINER_REGISTRY) else: python_deployer.create_endpoint(clipper_conn, "testapp0-model", "doubles", feature_sum)
def test_deployed_models_are_logged(self): # Deploy models python_deployer.create_endpoint(self.clipper_conn, "simple-example", "doubles", feature_sum, num_replicas=2) time.sleep(2) self.logger.info( "Making 100 predictions using two model container; Should takes 25 seconds." ) for _ in range(100): predict(self.clipper_conn.get_query_addr(), np.random.random(200)) time.sleep(0.2) self.check_fluentd_has_correct_model_logs(self.clipper_conn, 'simple-example')
from clipper_admin import ClipperConnection, DockerContainerManager from clipper_admin.deployers import python as py_deployer import random cl = ClipperConnection(DockerContainerManager()) cl.stop_all() cl.start_clipper() # cl.register_application(name="pong", input_type="doubles", slo_micros=1000000, default_output="1") def random_predict(xs): action = random.randint(0, 2) return [str(action) for _ in xs] # cl.register_application(name="pong", input_type="doubles", default_output="-1.0", slo_micros=100000) # py_deployer.deploy_python_closure(cl, name="rand-model", version=1, input_type="doubles", func=random_predict, registry="hsubbaraj") # cl.link_model_to_app(app_name="pong", model_name="rand-model") py_deployer.create_endpoint(cl, name="pong", input_type="doubles", func=random_predict, default_output="0", slo_micros=100000) print("CLIPPER ADDRESS: " + cl.get_query_addr())
return [size] # Stop Clipper on Ctrl-C def signal_handler(signal, frame): print("Stopping Clipper...") clipper_conn = ClipperConnection(DockerContainerManager()) clipper_conn.stop_all() sys.exit(0) if __name__ == '__main__': signal.signal(signal.SIGINT, signal_handler) parser = argparse.ArgumentParser( description='Use Clipper to Query Images.') parser.add_argument('image', nargs='+', help='Path to an image') imgs = parser.parse_args().image clipper_conn = ClipperConnection(DockerContainerManager()) clipper_conn.start_clipper() python_deployer.create_endpoint(clipper_conn, "image-example", "bytes", image_size) time.sleep(2) try: for f in imgs: if f.endswith('.jpg') or f.endswith('.png'): predict(clipper_conn.get_query_addr(), f) except Exception as e: clipper_conn.stop_all()
elif i % 5 == 0: return produce_query_arr_for_ms(100) elif i % 3 == 0: return produce_query_arr_for_ms(50) else: return produce_query_arr_for_ms(10) if __name__ == '__main__': signal.signal(signal.SIGINT, signal_handler) clipper_conn = ClipperConnection(DockerContainerManager()) clipper_conn.start_clipper() print("Starting Clipper") python_deployer.create_endpoint(clipper_conn, "simple-example", "doubles", feature_sum, num_replicas=2) time.sleep(2) print("Starting Prediction") try: counter = 0 while True: print(counter) predict(clipper_conn.get_query_addr(), fizz_buzz(counter)) counter += 1 time.sleep(0.2) except Exception as e: clipper_conn.stop_all()
print("'%s', %f ms" % (r.text, latency)) # Stop Clipper on Ctrl-C def signal_handler(signal, frame): print("Stopping Clipper...") clipper_conn = ClipperConnection(DockerContainerManager()) clipper_conn.stop_all() sys.exit(0) if __name__ == '__main__': signal.signal(signal.SIGINT, signal_handler) clipper_conn = ClipperConnection(DockerContainerManager()) clipper_conn.start_clipper() python_deployer.create_endpoint(clipper_conn, "ham-spam-classifier", "strings", predict_spam) sleep(2) try: queue = deque(queries) while True: query = queue.pop() print("Length {} query sent!".format(len(query))) predict(clipper_conn.get_query_addr(), query) queue.append(query) shuffle(queue) sleep(0.2) except Exception as e: print(e) clipper_conn.stop_all()
tmp = tempfile.NamedTemporaryFile('wb', delete=False, suffix='.png') tmp.write(io.BytesIO(imgs[i]).getvalue()) tmp.close() # Use PIL to read in the file and compute size size = PIL.Image.open(tmp.name, 'r').size # Remove the temp file os.unlink(tmp.name) sizes.append(size) return sizes from clipper_admin import ClipperConnection, DockerContainerManager from clipper_admin.deployers import python as python_deployer clipper_conn = ClipperConnection(DockerContainerManager()) clipper_conn.start_clipper() python_deployer.create_endpoint(clipper_conn=clipper_conn, name="image-size", input_type="bytes", func=image_size, pkgs_to_install=['pillow']) print('clipper_conn.get_query_addr()' + clipper_conn.get_query_addr()) # To test # query(clipper_conn.get_query_addr(), 'imgs/clipper-logo.png')