Cấu hình đầu ra của LLM

Sách: Kỹ thuật thiết lập câu lệnh - Tác giả: Lee Boonstra


Cấu hình đầu ra của LLM

Once you choose your model you will need to figure out the model configuration. Most LLMs come with various configuration options that control the LLM's output. Effective prompt engineering requires setting these configurations optimally for your task.

Khi bạn chọn mô hình của mình, bạn sẽ cần tìm ra cấu hình của mô hình. Hầu hết các LLM đi kèm với các tùy chọn cấu hình khác nhau kiểm soát đầu ra của LLM. Kỹ thuật tạo câu lệnh hiệu quả đòi hỏi phải đặt các cấu hình này một cách tối ưu cho nhiệm vụ của bạn.

Độ dài đầu ra

Một thiết lập cấu hình quan trọng là số lượng token cần tạo ra trong một phản hồi. Việc tạo ra nhiều token hơn đòi hỏi nhiều tính toán hơn từ LLM, dẫn đến tiêu thụ năng lượng cao hơn, thời gian phản hồi có thể chậm hơn và chi phí cao hơn.

Việc giảm độ dài đầu ra của LLM không làm cho LLM trở nên súc tích hơn về mặt phong cách hoặc văn bản trong đầu ra mà nó tạo ra, nó chỉ khiến LLM ngừng dự đoán thêm token khi đạt đến giới hạn. Nếu nhu cầu của bạn yêu cầu độ dài đầu ra ngắn, bạn cũng có thể cần phải thiết kế câu lệnh của mình để phù hợp.

Giới hạn độ dài đầu ra đặc biệt quan trọng đối với một số kỹ thuật tạo câu lệnh, như ReAct, nơi LLM sẽ tiếp tục phát ra các token vô dụng sau phản hồi bạn muốn.

Lưu ý, việc tạo ra nhiều token hơn đòi hỏi nhiều tính toán hơn từ LLM, dẫn đến tiêu thụ năng lượng cao hơn và thời gian phản hồi có thể chậm hơn, điều này dẫn đến chi phí cao hơn.

Kiểm soát mẫu

LLM không chính thức dự đoán một token duy nhất. Thay vào đó, LLM dự đoán xác suất cho token tiếp theo có thể là gì, với mỗi token trong từ vựng của LLM nhận được một xác suất. Các xác suất token đó sau đó được lấy mẫu để xác định token đầu ra tiếp theo sẽ là gì. Nhiệt độ (Temperature), top-K và top-P là các cài đặt cấu hình phổ biến nhất xác định cách xử lý các xác suất token được dự đoán để chọn một token đầu ra duy nhất.

Nhiệt độ (Temperature)

Nhiệt độ kiểm soát mức độ ngẫu nhiên trong việc lựa chọn token. Nhiệt độ thấp hơn phù hợp cho các câu lệnh mong đợi một phản hồi xác định hơn, trong khi nhiệt độ cao hơn có thể dẫn đến các kết quả đa dạng hoặc bất ngờ hơn. Nhiệt độ 0 (greedy decoding) là xác định: token có xác suất cao nhất luôn được chọn (mặc dù lưu ý rằng nếu hai token có cùng xác suất dự đoán cao nhất, tùy thuộc vào cách xử lý trường hợp, bạn có thể nhận được những đầu ra khác nhau cùng một đầu ra với nhiệt độ 0).

Nhiệt độ gần mức tối đa có xu hướng tạo ra đầu ra ngẫu nhiên hơn. Và khi nhiệt độ ngày càng cao, tất cả các token trở nên có khả năng như nhau để trở thành token được dự đoán tiếp theo.

Việc kiểm soát nhiệt độ của Gemini có thể được hiểu tương tự như hàm softmax được sử dụng trong học máy. Cài đặt nhiệt độ thấp phản ánh nhiệt độ softmax thấp (T), nhấn mạnh một nhiệt độ ưa thích duy nhất với độ chắc chắn cao. Cài đặt nhiệt độ Gemini cao hơn giống như nhiệt độ softmax cao, làm cho một phạm vi nhiệt độ rộng hơn xung quanh cài đặt đã chọn trở nên chấp nhận được hơn. Sự gia tăng mức độ không chắc chắn này phù hợp với các tình huống mà một nhiệt độ chính xác, cứng nhắc có thể không cần thiết, ví dụ như khi thử nghiệm với các kết quả sáng tạo.

Top-K top-P

Top-K và top-P (còn được gọi là lấy mẫu hạt nhân - nucleus sampling) là hai cài đặt lấy mẫu được sử dụng trong LLM để giới hạn token tiếp theo được dự đoán đến từ các token có xác suất dự đoán cao nhất. Giống như nhiệt độ, các cài đặt lấy mẫu này kiểm soát tính ngẫu nhiên và đa dạng của văn bản được tạo ra.

  • Top-K: Lấy mẫu Top-K chọn K token có khả năng xảy ra cao nhất từ phân phối dự đoán của mô hình. Top-K càng cao, đầu ra của mô hình càng sáng tạo và đa dạng; top-K càng thấp, đầu ra của mô hình càng hạn chế và dựa trên thực tế. Top-K bằng 1 tương đương với nhiệt độ 0 (greedy decoding)

  • Top-P: Lấy mẫu Top-P chọn các token hàng đầu có xác suất tích lũy không vượt quá một giá trị nhất định (P). Các giá trị cho P nằm trong khoảng từ 0 (greedy decoding) đến 1 (tất cả các token trong từ vựng của LLM).

Cách tốt nhất để chọn giữa top-K và top-P là thử nghiệm với cả hai phương pháp (hoặc cả hai cùng nhau) và xem phương pháp nào tạo ra kết quả bạn đang tìm kiếm.

Kết hợp tất cả

Việc lựa chọn giữa top-K, top-P, nhiệt độ và số lượng token cần tạo ra phụ thuộc vào ứng dụng cụ thể và kết quả mong muốn, và tất cả các cài đặt đều tác động lẫn nhau. Điều quan trọng là phải đảm bảo bạn hiểu cách mô hình bạn chọn kết hợp các cài đặt lấy mẫu khác nhau lại với nhau.

Nếu nhiệt độ, top-K và top-P đều có sẵn (như trong Vertex Studio), các token đáp ứng cả tiêu chí top-K và top-P là ứng cử viên cho token được dự đoán tiếp theo, và sau đó nhiệt độ được áp dụng để lấy mẫu từ các token đã vượt qua tiêu chí top-K và top-P. Nếu chỉ có top-K hoặc top-P, hành vi tương tự nhưng chỉ có cài đặt top-K hoặc P đó được sử dụng.

Nếu nhiệt độ không có sẵn, bất kỳ token nào đáp ứng tiêu chí top-K và/hoặc top-P sau đó sẽ được chọn ngẫu nhiên để tạo ra một token được dự đoán tiếp theo duy nhất.

Ở các cài đặt cực trị của một giá trị cấu hình lấy mẫu, cài đặt lấy mẫu đó hoặc là sẽ triệt tiêu các cài đặt cấu hình khác hoặc trở nên không liên quan.

  • Nếu bạn đặt nhiệt độ thành 0, top-K và top-P trở nên không liên quan – token có xác suất cao nhất trở thành token được dự đoán tiếp theo. Nếu bạn đặt nhiệt độ cực cao (trên 1 – thường là vào khoảng 10), nhiệt độ trở nên không liên quan và bất kỳ token nào vượt qua tiêu chí top-K và/hoặc top-P sau đó sẽ được lấy mẫu ngẫu nhiên để chọn token tiếp theo.

  • Nếu bạn đặt top-K là 1, nhiệt độ và top-P trở nên không liên quan. Chỉ có một token vượt qua tiêu chí top-K, và token đó là token được dự đoán tiếp theo. Nếu bạn đặt top-K cực cao, chẳng hạn như bằng kích thước từ vựng của LLM, bất kỳ token nào có xác suất khác 0 sẽ là token tiếp theo sẽ đáp ứng tiêu chí top-K và không có token nào bị loại bỏ.

  • Nếu bạn đặt top-P là 0 (hoặc một giá trị rất nhỏ), hầu hết các triển khai lấy mẫu LLM sau đó sẽ chỉ xem xét token có xác suất cao nhất để đáp ứng tiêu chí top-P, làm cho nhiệt độ và top-K trở nên không liên quan. Nếu bạn đặt top-P thành 1, bất kỳ token nào có xác suất khác 0 sẽ là token tiếp theo sẽ đáp ứng tiêu chí top-P, và không có token nào bị loại bỏ.

Như một điểm khởi đầu chung, nhiệt độ 0.2, top-P 0.95 và top-K 30 sẽ cho bạn kết quả tương đối mạch lạc, có thể sáng tạo nhưng không quá mức. Nếu bạn muốn kết quả đặc biệt sáng tạo, hãy thử bắt đầu với nhiệt độ 0.9, top-P 0.99 và top-K 40. Và nếu bạn muốn kết quả ít sáng tạo hơn, hãy thử bắt đầu với nhiệt độ 0.1, top-P 0.9 và top-K 20. Cuối cùng, nếu nhiệm vụ của bạn luôn có một câu trả lời đúng duy nhất (ví dụ: trả lời một bài toán), hãy bắt đầu với nhiệt độ 0.

LƯU Ý: Với nhiều tự do hơn (nhiệt độ, top-K, top-P và token đầu ra cao hơn), LLM có thể tạo ra văn bản ít liên quan hơn.

CẢNH BÁO: Bạn đã bao giờ thấy những những câu trả lời dài dằng dặc, mà phần lớn lại là những từ ngữ vô nghĩa, lặp đi lặp lại từ LLMs hay chưa? Đấy chính là "lỗi vòng lặp" (repetition loop bug), một "bệnh" thường gặp ở các Mô hình Ngôn ngữ Lớn.

Vậy "lỗi vòng lặp" là gì?

Nói một cách đơn giản, LLM bị "mắc kẹt" trong một vòng lặp, cứ thế lặp đi lặp lại một từ, một cụm từ hoặc một cấu trúc câu nhất định. Tình trạng này càng tệ hơn nếu bạn cài đặt các thông số nhiệt độ (temperature) và top-k/top-p không phù hợp.

Tại sao lại xảy ra "lỗi lặp vòng"?

  • Nhiệt độ thấp: Khi nhiệt độ quá thấp, mô hình trở nên quá "chắc chắn", chỉ bám vào những kết quả có khả năng xảy ra cao nhất. Nếu kết quả đó lặp lại những gì đã tạo ra trước đó, nó sẽ rơi vào vòng lặp.

  • Nhiệt độ cao: Ngược lại, khi nhiệt độ quá cao, đầu ra của mô hình lại trở nên quá "ngẫu hứng". Điều này làm tăng khả năng mô hình chọn phải một từ hoặc cụm từ tình cờ dẫn nó quay lại trạng thái cũ, tạo ra vòng lặp do có quá nhiều lựa chọn.

Hậu quả?

Trong cả hai trường hợp, quá trình tạo văn bản của mô hình bị "đơ", dẫn đến những đoạn văn bản nhàm chán và vô nghĩa, cho đến khi lấp đầy hết "cửa sổ" đầu ra.

Giải pháp?

Để khắc phục, chúng ta cần điều chỉnh cẩn thận các giá trị nhiệt độ và top-k/top-p. Mục tiêu là tìm ra sự cân bằng hoàn hảo giữa việc tạo ra văn bản "chắc chắn" và "ngẫu hứng", để mô hình không bị rơi vào vòng lặp.