+1

Rust For Machine Learning - Tạo sinh văn bản - Phần 01

Tạo sinh văn bản mà bản chất là suy luận các từ ngữ phù hợp kế tiếp từ một đoạn văn đầu vào có lẽ là ứng dụng LLM cơ bản nhất. Dường như phần lớn các dòng LLM đều bắt đầu với một mô hình “pre-trained” dạng này.

Thư viện Candle của HF hỗ trợ khá đầy đủ cho việc xây dựng các ứng dụng tạo sinh văn bản dựa trên LLM, về cơ bản một ứng dụng như vậy sẽ gồm các bước:

01- Tải mô hình về máy
02- Khởi tạo các đối tượng mô hình dành cho nhiệm vụ suy luận
03- Chuẩn bị dữ liệu đầu vào cho mô hình
04- Thực hiện vòng lặp suy luận từng từ
05- Tái tạo văn bản tạo sinh từ kết quả trả về của mô hình

Cốt lõi của bước 04 có lẽ là mấy lệnh sau:

let mut logits_processor = LogitsProcessor::new(123456789, Some(0.8), Some(1.0));
for ... {
  ...
  let logits = model.forward(&input_ids, context_len)?;
  let logits = logits.squeeze(0)?.i(logits.dim(1)? - 1)?;
  let next_token_id = logits_processor.sample(&logits)?;
  ...
}

Có thể bạn sẽ thắc mắc trùng lặp hai lệnh let logits? Đó không phải trùng lặp nhé, đó là kỹ thuật “shadowing” trong Rust.

Hãy cùng RustDev Vietnam tìm hiểu cách xây dựng một ứng dụng tạo sinh văn bản cơ bản trong video “#0051 - Rust for Machine Learning - Tạo sinh văn bản - Phần 01” trên kênh Youtube RustDev Vietnam.

Các bạn cũng đừng quên nhấn đăng ký kênh để không bỏ lỡ bất kỳ video nào của chúng tôi nhé!


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í