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 thấy từ “time” ở đâu cả, vì chúng ta đã cấm token đó một cách hiệu quả bằng logit_bias.
Ví dụ 2: Định hướng bằng các giá trị thiên lệch logit có mục tiêu
Hãy xem qua một ví dụ khác, sử dụng câu lệnh cho trình tạo công thức nấu ăn.
Nhiều công thức gợi ý dùng nồi, nhưng giả sử chúng ta không có nồi. Chúng ta sẽ muốn loại bỏ từ pot để nó không được tạo ra như một phần của phần hoàn thành. “Pot” được tách token thành 1787, nên chúng ta có thể loại bỏ từ này khỏi quá trình tạo bằng cách đặt logit_bias như bên dưới.
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 một từ xuất hiện
Giả sử chúng ta muốn tăng khả năng một từ xuất hiện.
Ví dụ, có thể chúng ta đang vận hành một trang web cung cấp các công thức nấu ăn có thể làm bằng lò vi sóng, nên chúng ta muốn đảm bảo rằng từ “microwave” xuất hiện trong công thức. “Microwave” được tách token thành ID 27000. Chúng ta có thể tăng khả năng token này xuất hiện bằng cách đặt logit_bias dương, như sau:
logit_bias={27000:5}Giờ đây, phần hoàn thành của chúng ta có nhiều khả năng bao gồm từ “microwave” hơn.
Chúng ta đặt logit_bias thành 5, vì nhận thấy rằng việc đặt logit_bias thành 1 thường không khiến từ “microwave” xuất hiện trong phần hoàn thành, trong khi các giá trị logit_bias cao hơn như 10 lại khiến từ “ microwave” xuất hiện trong phần hoàn thành quá thường xuyên.
