OpenAI
Trang này được dịch bằng máy học. Xem bài viết gốc bằng tiếng Anh.

Dùng logit bias để thay đổi xác suất token với API OpenAI

Tìm hiểu cách dùng tham số logit bias để sửa đổi đầu ra của mô hình

Đã cập nhật: 5 days ago

Logit_bias là một tham số tùy chọn điều chỉnh khả năng các token được chỉ định xuất hiện trong đầu ra do mô hình tạo ra.

Tham số này nhận một đối tượng JSON ánh xạ token tới một giá trị thiên lệch liên quan từ -100 (trong hầu hết các trường hợp sẽ chặn token đó được tạo ra) đến 100 (chọn riêng token đó, khiến token có nhiều khả năng được tạo ra hơn). Các giá trị vừa phải như -1 và 1 sẽ thay đổi xác suất một token được chọn ở mức độ nhỏ hơn.

Vì tham số nhận token chứ không phải văn bản, bạn nên dùng công cụ tách token để chuyển văn bản thành ID token. Hãy xem qua một vài ví dụ.

Ví dụ 1: Loại bỏ “time”

Nếu chúng ta gọi điểm cuối Completions với câu lệnh “Once upon a,” thì phần hoàn thành rất có khả năng sẽ bắt đầu bằng “ time.”

Từ “time” được tách token thành ID 2435, còn từ “ time” (có dấu cách ở đầu) được tách token thành ID 640. Chúng ta có thể truyền các token này qua logit_bias với giá trị -100 để cấm chúng xuất hiện trong phần hoàn thành, như sau:

completion = client.chat.completions.create( 
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "Bạn hoàn thành câu của người dùng."},
"role": "user", "content": "Once upon a"} ]
logit_bias={2435:-100, 640:-100}
)

Giờ đây, câu lệnh “Once upon a” tạo ra phần hoàn thành “midnight dreary, while I pondered, weak and weary.”

Lưu ý rằng không hề có từ “time”, vì chúng ta đã chặn token đó bằng logit_bias.

Ví dụ 2: Định hướng bằng các giá trị độ lệch logit có chọn lọc

Hãy xem một ví dụ khác sử dụng câu lệnh tạo công thức nấu ăn.

Nhiều công thức yêu cầu dùng nồi, nhưng giả sử chúng ta không có nồi. Chúng ta cần ngăn từ “pot” xuất hiện trong phần hoàn thành. “Pot” được token hóa thành 1787, vì vậy chúng ta có thể loại từ này khỏi nội dung được tạo bằng cách đặt logit_bias như dưới đây.

logit_bias={1787:-100}

Giờ đây, phần hoàn thành của chúng ta có thể bao gồm từ “saucepan” thay vào đó. Hoàn hảo!

Ví dụ 3: Tăng khả năng xuất hiện của một từ

Giả sử chúng ta muốn tăng khả năng xuất hiện của một từ.

Ví dụ, giả sử chúng ta vận hành một trang web cung cấp các công thức có thể chế biến bằng lò vi sóng, nên muốn đảm bảo từ “microwave” xuất hiện trong công thức. “Microwave” được token hóa thành ID 27000. Chúng ta có thể tăng khả năng xuất hiện của token này bằng cách đặt logit_bias thành một giá trị dương như sau:

logit_bias={27000:5}

Giờ đây, phần hoàn thành có nhiều khả năng chứa từ “microwave” hơn.

Chúng ta đặt logit_bias thành 5 vì nhận thấy rằng khi đặt logit_bias thành 1, từ “microwave” thường không xuất hiện trong phần hoàn thành, còn các giá trị logit_bias cao hơn như 10 lại khiến từ “ microwave” xuất hiện quá thường xuyên.

Bài viết này có hữu ích không?