0

Rust for Machine Learning - So sánh ngữ nghĩa - Phần 02

Trong bài trước chúng ta đã cùng nhau viết mã để tìm và tải về một mô hình “sentence transformers” từ HF dựa trên cấu trúc ApiBuilder (thiết kế theo kiểu “Builder Pattern”):

    let access_token = std::env::var("HF_TOKEN").map_err(|e| format!("{e}"))?;
    let api = ApiBuilder::new()
        .with_progress(true)
        .with_token(Some(access_token))
        .build()?;

Chúng ta cũng đã cùng thực hành việc tải nạp một mô hình ngôn ngữ vào bộ nhớ thi hành dùng GPU, dựa trên cấu trúc nền tảng VarBuilder và các thông tin mô tả kiến trúc của mô hình ngôn ngữ:

...
unsafe {
   VarBuilder::from_mmaped_safetensors(
       &[path], DType::F32, device
   )
}
let model = BertModel::load(vb, &config)?;
...

Chúng ta cũng đã thực hiện việc chuyển đổi văn bản đầu vào thành các “token ID” thông qua thư viện Tokenizer của HF.

Để tiếp tục thực hiện các bước so sánh ngữ nghĩa các đoạn văn bản, chúng ta sẽ cần dùng mô hình ngôn ngữ để tạo sinh các “embedding” thể hiện tương quan ngữ nghĩa các từ trong văn bản và cuối cùng là một “embedding” đại diện ngữ nghĩa toàn bộ đoạn văn bản. Bước cuối cùng chúng ta sẽ thực hiện so sánh ngữ nghĩa dựa trên các “embedding” thu được.

Hãy cùng RustDEV Vietnam tiếp tục hoàn thiện chương trình này qua video "#0046 - Rust for Machine Learning - So sánh ngữ nghĩa hai đoạn văn - Phần 02" trên kênh Youtube RustDEV Vietnam.

Cảm ơn các bạn.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí