Skip to content

Commit

Permalink
test: 测试现在从环境变量获取模型路径
Browse files Browse the repository at this point in the history
Signed-off-by: YdrMaster <[email protected]>
  • Loading branch information
YdrMaster committed Apr 12, 2024
1 parent 75eca4f commit f89a3fc
Show file tree
Hide file tree
Showing 11 changed files with 92 additions and 17 deletions.
1 change: 1 addition & 0 deletions common/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@ pub type utok = u32;
pub type upos = u32;

mod blob;
pub mod test_model;

pub use blob::Blob;
38 changes: 38 additions & 0 deletions common/src/test_model.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
//!
use std::{
env::var_os,
fs::canonicalize,
path::{Path, PathBuf},
process::Command,
str::from_utf8,
};

///
pub fn find() -> Option<PathBuf> {
let model = var_os("TEST_MODEL")?;
if let Ok(path) = canonicalize(&model) {
return Some(path.into());
}

let output = Command::new(env!("CARGO"))
.arg("locate-project")
.arg("--workspace")
.arg("--message-format=plain")
.output()
.unwrap()
.stdout;
let workspace = Path::new(from_utf8(&output).unwrap().trim())
.parent()
.unwrap();
if let Ok(path) = canonicalize(workspace.join(model)) {
return Some(path.into());
}

None
}

#[test]
fn test_find() {
println!("{:?}", find());
}
2 changes: 1 addition & 1 deletion nvidia/common/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ mod rms_norm;
mod rotary_embedding;
mod swiglu;

pub use common::utok;
pub use common::{test_model, utok};
pub use tensor::{slice, udim, DataType, LocalSplitable, Tensor};

use cublas::{Cublas, CublasSpore};
Expand Down
10 changes: 6 additions & 4 deletions nvidia/distributed/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,11 @@ fn test() {
use simple_logger::SimpleLogger;
use transformer::Transformer as _;

let Some(model_dir) = common_nv::test_model::find() else {
return;
};
println!("model_dir: {}", model_dir.display());

const N: usize = 1;

cuda::init();
Expand All @@ -259,10 +264,7 @@ fn test() {
SimpleLogger::new().with_level(Trace).init().unwrap();

let time = Instant::now();
let transformer = Transformer::new(
"../../../TinyLlama-1.1B-Chat-v1.0_F16",
&[Device::fetch().unwrap()],
);
let transformer = Transformer::new(model_dir, &[Device::fetch().unwrap()]);
info!("load {:?}", time.elapsed());

let time = Instant::now();
Expand Down
7 changes: 6 additions & 1 deletion nvidia/distributed/src/parameters.rs
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,11 @@ fn test_load() {
use std::io::ErrorKind::NotFound;
use transformer::{Memory, SafeTensorError};

let Some(model_dir) = common_nv::test_model::find() else {
return;
};
println!("model_dir: {}", model_dir.display());

const N: usize = 1;

cuda::init();
Expand All @@ -157,7 +162,7 @@ fn test_load() {
SimpleLogger::new().with_level(Trace).init().unwrap();

let time = Instant::now();
let safetensors = Memory::load_safetensors_from_dir("../../../TinyLlama-1.1B-Chat-v1.0_F16");
let safetensors = Memory::load_safetensors_from_dir(model_dir);
info!("mmap {:?}", time.elapsed());

let model = match safetensors {
Expand Down
9 changes: 4 additions & 5 deletions service/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -118,14 +118,13 @@ fn tokenizer(model_dir: impl AsRef<Path>) -> Box<dyn Tokenizer + Send + Sync> {
#[test]
fn test() {
use colored::{Color, Colorize};
use std::{io::Write, iter::zip, path::Path, time::Duration};
use std::{io::Write, iter::zip, time::Duration};
use tokio::{runtime::Builder, task::JoinSet, time::sleep};

let model_dir = "../../TinyLlama-1.1B-Chat-v1.0_F16/";
if !Path::new(model_dir).exists() {
println!("model not exist");
let Some(model_dir) = common::test_model::find() else {
return;
}
};
println!("model_dir: {}", model_dir.display());

let runtime = Builder::new_current_thread().enable_time().build().unwrap();
let _rt = runtime.enter();
Expand Down
14 changes: 12 additions & 2 deletions tokenizer/src/bpe.rs
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,12 @@ impl Tokenizer for BPE {

#[test]
fn read_tokenizer() {
if let Ok(bpe) = BPE::from_model_file("../../TinyLlama-1.1B-Chat-v1.0/tokenizer.model") {
let Some(model_dir) = common::test_model::find() else {
return;
};
println!("model_dir: {}", model_dir.display());

if let Ok(bpe) = BPE::from_model_file(model_dir.join("tokenizer.model")) {
for i in 0..bpe.offsets.len() {
println!("{}: {}", bpe.get_piece(i as utok), bpe.get_score(i as utok));
}
Expand All @@ -151,8 +156,13 @@ fn read_tokenizer() {

#[test]
fn once_upon_a_time() {
let Some(model_dir) = common::test_model::find() else {
return;
};
println!("model_dir: {}", model_dir.display());

use std::time::Instant;
if let Ok(bpe) = BPE::from_model_file("../../TinyLlama-1.1B-Chat-v1.0/tokenizer.model") {
if let Ok(bpe) = BPE::from_model_file(model_dir.join("tokenizer.model")) {
const PROMPT: &str = "▁Once▁upon▁a▁time,";
let tokens = bpe.encode(PROMPT);
let t0 = Instant::now();
Expand Down
7 changes: 6 additions & 1 deletion transformer-cpu/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -325,8 +325,13 @@ fn test_build() {
use std::{io::ErrorKind::NotFound, time::Instant};
use transformer::{Memory, SafeTensorError};

let Some(model_dir) = common::test_model::find() else {
return;
};
println!("model_dir: {}", model_dir.display());

let t0 = Instant::now();
let safetensors = Memory::load_safetensors_from_dir("../../TinyLlama-1.1B-Chat-v1.0_F16");
let safetensors = Memory::load_safetensors_from_dir(model_dir);
let t1 = Instant::now();
println!("mmap {:?}", t1 - t0);

Expand Down
7 changes: 6 additions & 1 deletion transformer/src/parameters/distribute.rs
Original file line number Diff line number Diff line change
Expand Up @@ -286,8 +286,13 @@ fn test() {
use super::{Memory, SafeTensorError};
use std::{io::ErrorKind::NotFound, time::Instant};

let Some(model_dir) = common::test_model::find() else {
return;
};
println!("model_dir: {}", model_dir.display());

let time = Instant::now();
let safetensors = Memory::load_safetensors_from_dir("../../TinyLlama-1.1B-Chat-v1.0");
let safetensors = Memory::load_safetensors_from_dir(model_dir);
println!("mmap {:?}", time.elapsed());

let model = match safetensors {
Expand Down
7 changes: 6 additions & 1 deletion transformer/src/parameters/memory.rs
Original file line number Diff line number Diff line change
Expand Up @@ -183,8 +183,13 @@ fn test_load() {
use super::SafeTensorError;
use std::{io::ErrorKind::NotFound, time::Instant};

let Some(model_dir) = common::test_model::find() else {
return;
};
println!("model_dir: {}", model_dir.display());

let t0 = Instant::now();
let safetensors = Memory::load_safetensors_from_dir("../../TinyLlama-1.1B-Chat-v1.0");
let safetensors = Memory::load_safetensors_from_dir(model_dir);
let t1 = Instant::now();
println!("mmap {:?}", t1 - t0);

Expand Down
7 changes: 6 additions & 1 deletion transformer/src/parameters/safe_tensors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,12 @@ fn concat0(tensors: &[&Tensor<Storage>]) -> Tensor<Storage> {

#[test]
fn test_load() {
let file = match std::fs::File::open("../../TinyLlama-1.1B-Chat-v1.0/model.safetensors") {
let Some(model_dir) = common::test_model::find() else {
return;
};
println!("model_dir: {}", model_dir.display());

let file = match std::fs::File::open(model_dir.join("model.safetensors")) {
Ok(f) => f,
Err(e) if e.kind() == std::io::ErrorKind::NotFound => return,
Err(e) => panic!("{e:?}"),
Expand Down

0 comments on commit f89a3fc

Please sign in to comment.