Lịch sử hội thoại
Một cuộc hội thoại dài sẽ đụng phải một bức tường cứng: cửa sổ ngữ cảnh của mô hình. Mọi thứ trên trang này tồn tại vì bức tường đó, và phần thú vị nằm ở chỗ cái gì bị vứt đi, cái gì được giữ lại, và cái gì có thể lấy lại được.
Bốn cách thu hồi ngữ cảnh
Phần tiêu đề “Bốn cách thu hồi ngữ cảnh”Chúng không hẳn là những lựa chọn thay thế cho nhau mà giống một cái thang hơn, rẻ nhất trước.
| Cơ chế | Chi phí | Giữ lại | Mất đi |
|---|---|---|---|
| Lược bỏ | Không gì | Mọi từ của bản tường thuật | Kết quả công cụ cũ không có gì đáng chú ý |
| Bỏ bớt hình ảnh | Không gì | Phần văn bản xung quanh chúng | Ảnh chụp màn hình cũ |
| Ảnh chụp nhanh | Không gì | Mọi từ, dưới dạng điểm ảnh | Khả năng đọc được đối với mô hình không có thị giác |
| Tóm tắt | Một lần gọi mô hình | Một bản tường thuật | Những chi tiết nó không chọn |
Lược bỏ và bỏ bớt hình ảnh chạy trước vì chúng miễn phí và không mất mát theo đúng cách quan trọng: chúng loại đi khối lượng mà không ai định đọc lại.
Vì sao tóm tắt là phương án cuối cùng
Phần tiêu đề “Vì sao tóm tắt là phương án cuối cùng”Tóm tắt là cách duy nhất trong bốn cách tiêu tốn một lần gọi mô hình và cũng là cách duy nhất quyết định thay bạn điều gì là quan trọng. Cả hai đều là chi phí thật. Lần gọi mô hình là điểm đáng bàn hơn, vì thời điểm nó diễn ra.
Việc nén thường chạy trước khi chạm bức tường, theo một ngưỡng. Nhưng nó cũng chạy theo phản ứng, sau khi chính nhà cung cấp từ chối một yêu cầu vì quá lớn — ước lượng theo kinh nghiệm đã đếm thiếu so với mức nhà cung cấp thực sự đo được. Trong tình huống đó, bộ nén kiểu tóm tắt phải gửi một yêu cầu để thu nhỏ ngữ cảnh, mà yêu cầu nó gửi lại chính là yêu cầu vừa bị tràn.
Ảnh chụp nhanh
Phần tiêu đề “Ảnh chụp nhanh”Nén bằng ảnh chụp nhanh kết xuất phần lịch sử bị loại bỏ lên những trang dày đặc ký tự điểm ảnh rồi trả lại chúng dưới dạng hình ảnh.
Tiền đề nằm ở một điểm lạ trong cách tính phí: mô hình có thị giác tính phí cho một hình ảnh theo mức cố định hoặc theo diện tích, không liên quan gì đến số ký tự có trong đó. Mười hai nghìn ký tự hội thoại bị loại bỏ tốn lượng token văn bản tương đương mười hai nghìn ký tự. Cùng số ký tự đó, khi kết xuất lên một trang, chỉ tốn một hình ảnh.
Điều khiến nó đáng có chứ không chỉ là một mẹo hay là nó cần không lần gọi mô hình, không khóa và không mạng. Đây là chiến lược duy nhất luôn sẵn dùng trong quá trình khắc phục tràn ngữ cảnh.
Hình dạng tái dựng là: phần đầu nguyên văn, phần giữa dưới dạng hình ảnh, phần cuối nguyên văn. Phần đầu là nhiệm vụ và những ràng buộc mà mọi thứ phía sau đều tham chiếu tới; phần cuối là nơi công việc đang diễn ra. Phần giữa là chỗ ít được đọc lại nhất mà tốn kém nhất.
Ảnh chụp nhanh được kết xuất lại từ văn bản nguồn được giữ lại ở mỗi lượt, không bao giờ từ điểm ảnh của lượt trước. Chụp ảnh lên một hình ảnh sẽ làm các ký tự suy giảm một thế hệ mỗi lần nén cho đến khi không gì đọc được chúng.
Một lượt chạy thực sự khôi phục từ đâu
Phần tiêu đề “Một lượt chạy thực sự khôi phục từ đâu”Trước đây, mỗi lượt chạy của khung thực thi đều bắt đầu từ lịch sử rỗng và dựng lại mạch liên tục từ một khối <context> trong prompt — một bản tóm tắt cuộc hội thoại chứ không phải chính cuộc hội thoại. Ba hệ quả kéo theo từ đó:
- Khôi phục chỉ là kể lại. Mô hình không bao giờ thấy lập luận trước đó của chính nó hay đúng những byte mà công cụ của nó trả về, mà chỉ thấy phần mô tả chúng.
- Tua lại chết cùng tiến trình.
checkpointlà một chỉ mục trong danh sách tin nhắn đang sống, nên việc khởi động lại làm mất mọi nhãn mà mô hình đã đặt. - Thử lại không phân biệt được “không có gì để thử lại” với “không tải được gì”. Sau khi khởi động lại, lượt thất bại đều biến mất khỏi trạng thái sống trong cả hai trường hợp.
Cả ba đều được khắc phục bằng cách lưu bền bản ghi hội thoại. Bản ghi được lưu ở mọi ranh giới lượt và không bao giờ lưu giữa lượt: một lịch sử được ghi lại giữa lúc gọi công cụ và lúc nhận kết quả là lịch sử mà không nhà cung cấp nào chấp nhận, nên một cú sập đúng lúc đó sẽ khôi phục lượt trước đó thay vì một nửa lượt không thể phát lại.
Một lượt chạy được khôi phục sẽ được cắt gọn về những tin nhắn mới nhất, cắt tại một ranh giới không phải là kết quả công cụ mồ côi — một kết quả mà lời gọi của nó đã bị cắt bỏ là yêu cầu bị nhà cung cấp từ chối thẳng, và một bản ghi không thể gửi đi còn tệ hơn một bản ghi ngắn.
Cây phiên
Phần tiêu đề “Cây phiên”Mỗi tin nhắn ghi lại tin nhắn mà nó tiếp nối, và mỗi cuộc hội thoại chỉ định đầu nhánh hiện tại của nó. Chỉ một quyết định đó đã làm nên toàn bộ tính năng.
Tạo nhánh không ghi gì cả. Nó chỉ di chuyển con trỏ. Đường đi bạn rời bỏ vẫn còn nguyên, nên quay lại chỉ là một lần di chuyển con trỏ khác thay vì khôi phục — và việc sửa một prompt để chạy lại không còn khiến bạn mất câu trả lời đang đối chiếu.
Nếu không có nó, mọi cách quay lại đều phải ẩn hoặc xóa tin nhắn, mà ẩn đi là một lời nói dối khiến người đọc kế tiếp không thể nhìn thấu.
Nhánh so với tách nhánh
Phần tiêu đề “Nhánh so với tách nhánh”| Nhánh | Tách nhánh | |
|---|---|---|
| Điều xảy ra | Con trỏ di chuyển | Đường đi được sao chép |
| Đi tới đâu | Cùng cuộc hội thoại | Một cuộc hội thoại mới |
| Chi phí | Không gì | Một bản sao của nhánh |
Một lần tách nhánh sao chép với id mới thay vì dùng chung các hàng. Hai cuộc hội thoại dùng chung hàng sẽ cho thấy những tin nhắn về sau của nhau, đó là điều duy nhất mà việc tách nhánh không được phép làm.
Tua lại cũng dựa trên con trỏ đó
Phần tiêu đề “Tua lại cũng dựa trên con trỏ đó”Cặp checkpoint / rewind trong lượt chạy đánh dấu một ranh giới lượt sạch sẽ và quay lại đó sau một bước khám phá, đồng thời giữ lại một bản tóm lược. Vì checkpoint được lưu bền cùng với bản ghi hội thoại, một nhãn mà mô hình đặt trước khi khởi động lại vẫn hạ cánh đúng nơi nó được đặt. Một checkpoint mà đích của nó không sống sót qua lần cắt gọn sẽ bị loại bỏ, chứ không bị kẹp lại — tua lại “đến nhãn” mà lại hạ cánh ở chỗ khác chính là kiểu thất bại mà một nhãn sinh ra để ngăn chặn.
Liên quan
Phần tiêu đề “Liên quan”- Nhánh một cuộc hội thoại — trình điều hướng cây, tách nhánh và xuất
- Ngữ cảnh công cụ và bộ nhớ đệm prompt — nửa còn lại của những gì lấp đầy một cửa sổ ngữ cảnh
- Lệnh slash —
/compact,/shake,/context,/tree