一、服务部署
使用zeroMQ的Python实现PyZMQ,它提供了轻量级和快速的消息传递实现。C/S消息传递的简单使用示例如下:
import zmq
import zmq.decorators as zmqd
@zmqd.socket(zmq.PUSH)
def send(sock):
sock.bind('tcp://*:5555')
sock.send(b'hello')
# in another process
@zmqd.socket(zmq.PULL)
def recv(sock):
sock.connect('tcp://localhost:5555')
print(sock.recv()) # shows b'hello'
二、服务加速
服务加速整体架构图如下:
- freezed: 将动态图转化为静态图,将变量转换为常量,即tf.Variable --> tf.Constant
- Pruned: 删除图中所有用不到的节点和边
- Quantized: 将tf.float32转换成tf.float16或者tf.unit8
tensorflow提供了freezing和pruning的api,只需要定义好输入和输出的节点即可,比如:
input_tensors = [input_ids, input_mask,