text-generation-inference/router/src/main.rs

57 lines
1.6 KiB
Rust
Raw Normal View History

2022-10-08 10:30:12 +00:00
use bloom_inference_client::ShardedClient;
2022-10-17 16:27:33 +00:00
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
2022-10-17 12:59:00 +00:00
use text_generation_router::server;
use tokenizers::Tokenizer;
2022-10-17 16:27:33 +00:00
use clap::Parser;
/// App Configuration
#[derive(Parser, Debug)]
#[clap(author, version, about, long_about = None)]
struct Args {
#[clap(default_value = "32", long, short, env)]
max_batch_size: usize,
#[clap(default_value = "3000", long, short, env)]
port: u16,
#[clap(default_value = "/tmp/bloom-inference-0", long, env)]
shard_uds_path: String,
#[clap(default_value = "bigscience/bloom", long, env)]
tokenizer_name: String,
}
2022-10-08 10:30:12 +00:00
fn main() -> Result<(), std::io::Error> {
2022-10-17 16:27:33 +00:00
// Get args
let args = Args::parse();
// Pattern match configuration
let Args {
max_batch_size,
port,
shard_uds_path,
tokenizer_name,
} = args;
let tokenizer = Tokenizer::from_pretrained(tokenizer_name, None).unwrap();
tokio::runtime::Builder::new_multi_thread()
.enable_all()
.build()
.unwrap()
.block_on(async {
tracing_subscriber::fmt::init();
2022-10-08 10:30:12 +00:00
2022-10-17 16:27:33 +00:00
let sharded_client = ShardedClient::connect_uds(shard_uds_path)
2022-10-17 12:59:00 +00:00
.await
.expect("Could not connect to server");
sharded_client
.clear_cache()
.await
.expect("Unable to clear cache");
tracing::info!("Connected");
2022-10-08 10:30:12 +00:00
2022-10-17 16:27:33 +00:00
let addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)), port);
2022-10-08 10:30:12 +00:00
2022-10-17 16:27:33 +00:00
server::run(max_batch_size, sharded_client, tokenizer, addr).await;
2022-10-11 16:14:39 +00:00
Ok(())
})
2022-10-08 10:30:12 +00:00
}