pub struct GgufFile<R> { /* private fields */ }
Implementations§
Source§impl<R: Read + Seek> GgufFile<R>
impl<R: Read + Seek> GgufFile<R>
Sourcepub fn from_reader(reader: R) -> Result<Self, PllmError>
pub fn from_reader(reader: R) -> Result<Self, PllmError>
Examples found in repository?
examples/gemma.rs (line 14)
9fn main() {
10 let f = File::open("testdata/gemma2b").unwrap();
11 // let mmap = unsafe { Mmap::map(&f).unwrap() };
12 // let reader = io::Cursor::new(&mmap[..]);
13 let reader = BufReader::new(f);
14 let mut gf = GgufFile::from_reader(reader).unwrap();
15
16 let config = Config::from_gguf(&gf).unwrap();
17 println!("{:?}", config.clone());
18
19 let tokenizer = Tokenizer::from_gguf(&gf).unwrap();
20
21 let mut weights = Weights::new(config.clone());
22 weights.load_from_gguf(&mut gf, config.clone()).unwrap();
23
24 let iterator = LLM::new(config, tokenizer, weights)
25 .inference("why the sky is blue?".to_string(), 0.8)
26 .unwrap();
27
28 let mut token_count = 0;
29 let start = Instant::now();
30 for (_, t) in iterator.enumerate() {
31 print!("{}", t.unwrap());
32 io::stdout().flush().unwrap();
33 token_count += 1;
34 }
35 println!(
36 "\ntoken/s: {}\n",
37 (token_count as f64 - 1.0) / start.elapsed().as_millis() as f64 * 1000.0
38 );
39}
pub fn metadata(&self) -> &Metadata
pub fn get_tensor(&mut self, name: &str) -> Result<Tensor, PllmError>
Trait Implementations§
Auto Trait Implementations§
impl<R> Freeze for GgufFile<R>where
R: Freeze,
impl<R> RefUnwindSafe for GgufFile<R>where
R: RefUnwindSafe,
impl<R> Send for GgufFile<R>where
R: Send,
impl<R> Sync for GgufFile<R>where
R: Sync,
impl<R> Unpin for GgufFile<R>where
R: Unpin,
impl<R> UnwindSafe for GgufFile<R>where
R: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more