Transformers documentation
Các mẫu tin nhắn trò chuyện
Các mẫu tin nhắn trò chuyện
Các mô hình chat kỳ vọng hội thoại dưới dạng một danh sách các từ điển. Mỗi từ điển sử dụng các khóa role và content. Khóa content chứa thông điệp của người dùng được truyền vào mô hình. Các mô hình ngôn ngữ lớn chấp nhận văn bản và công cụ, còn các mô hình đa phương thức kết hợp văn bản với hình ảnh, video và âm thanh.
Transformers sử dụng một định dạng thống nhất trong đó mỗi loại modality được chỉ định rõ ràng, giúp việc kết hợp và phối hợp các đầu vào trong một tin nhắn duy nhất trở nên đơn giản.
Hướng dẫn này bao gồm các mẫu định dạng tin nhắn cho từng phương thức, công cụ, suy luận theo lô và các cuộc hội thoại nhiều lượt.
Văn bản
Text là loại nội dung cơ bản nhất. Nó là nền tảng cho tất cả các mẫu khác. Truyền thông điệp của bạn vào "content" dưới dạng chuỗi.
message = [
{
"role": "user",
"content": "Explain the French Bread Law."
}
]Bạn cũng có thể sử dụng định dạng "type": "text" tường minh để giữ cho mã của bạn nhất quán khi thêm hình ảnh, video hoặc âm thanh sau này.
message = [
{
"role": "user",
"content": [{"type": "text", "text": "Explain the French Bread Law."}]
}
]Công cụ
Công cụ là các hàm mà mô hình chat có thể gọi, chẳng hạn như lấy dữ liệu thời tiết theo thời gian thực, thay vì tự sinh ra chúng.
Vai assistant xử lý yêu cầu công cụ. Đặt "type": "function" trong khóa "tool_calls" và cung cấp công cụ của bạn vào khóa "function". Thêm yêu cầu công cụ của trợ lý vào tin nhắn của bạn.
weather = {"name": "get_current_temperature", "arguments": {"location": "Paris, France", "unit": "celsius"}}
message.append(
{
"role": "assistant",
"tool_calls": [{"type": "function", "function": weather}]
}
)Vai tool xử lý kết quả. Thêm nó vào "content". Giá trị này luôn phải là chuỗi.
message.append({"role": "tool", "content": "22"})Đa phương thức
Mô hình đa phương thức mở rộng định dạng này để xử lý hình ảnh, video và âm thanh. Mỗi đầu vào chỉ định "type" của nó và cung cấp phương tiện bằng "url" hoặc "path".
Hình ảnh
Đặt "type": "image" và sử dụng "url" cho các liên kết hoặc "path" cho các tệp cục bộ.
message = [
{
"role": "user",
"content": [
{"type": "image", "url": "https://assets.bonappetit.com/photos/57ad4ebc53e63daf11a4ddc7/master/w_1280,c_limit/kouign-amann.jpg"},
{"type": "text", "text": "What pastry is shown in the image?"}
]
}
]Video
Đặt "type": "video" và sử dụng "url" cho các liên kết hoặc "path" cho các tệp cục bộ.
message = [
{
"role": "user",
"content": [
{"type": "video", "url": "https://static01.nyt.com/images/2019/10/01/dining/01Sourdough-GIF-1/01Sourdough-GIF-1-superJumbo.gif"},
{"type": "text", "text": "What is shown in this video?"}
]
}
]Âm thanh
Đặt "type": "audio" và sử dụng "url" cho các liên kết hoặc "path" cho các tệp cục bộ.
message = [
{
"role": "user",
"content": [
{"type": "audio", "url": "https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac"},
{"type": "text", "text": "Transcribe the speech."}
]
}
]Nhiều hỗn hợp
Danh sách content chấp nhận bất kỳ tổ hợp loại nào. Mô hình xử lý tất cả các đầu vào cùng nhau, cho phép so sánh hoặc suy luận liên phương thức.
message = [
{
"role": "user",
"content": [
{"type": "image", "url": "https://assets.bonappetit.com/photos/57ad4ebc53e63daf11a4ddc7/master/w_1280,c_limit/kouign-amann.jpg"},
{"type": "video", "url": "https://static01.nyt.com/images/2019/10/01/dining/01Sourdough-GIF-1/01Sourdough-GIF-1-superJumbo.gif"},
{"type": "text", "text": "What does the image and video share in common?"},
],
},
{
"role": "user",
"content": [
{"type": "image", "url": "https://assets.bonappetit.com/photos/57ad4ebc53e63daf11a4ddc7/master/w_1280,c_limit/kouign-amann.jpg"},
{"type": "image", "url": "https://assets.bonappetit.com/photos/57e191f49f19b4610e6b7693/master/w_1600%2Cc_limit/undefined"},
{"type": "text", "text": "What type of pastries are these?"},
],
}
]Đóng gói
Suy luận theo lô (Batched inference) xử lý nhiều cuộc trò chuyện trong một lần truyền tiến (forward pass) để cải thiện thông lượng và hiệu suất. Bọc mỗi cuộc trò chuyện trong một danh sách riêng, sau đó truyền chúng cùng nhau dưới dạng một danh sách các danh sách.
messages = [
[
{"role": "user",
"content": [
{"type": "image", "url": "https://assets.bonappetit.com/photos/57ad4ebc53e63daf11a4ddc7/master/w_1280,c_limit/kouign-amann.jpg"},
{"type": "text", "text": "What type of pastry is this?"}
]
},
],
[
{"role": "user",
"content": [
{"type": "image", "url": "https://assets.bonappetit.com/photos/57e191f49f19b4610e6b7693/master/w_1600%2Cc_limit/undefined"},
{"type": "text", "text": "What type of pastry is this?"}
]
},
],
]Nhiều lượt
Các cuộc hội thoại trải dài qua nhiều lượt trao đổi, luân phiên giữa vai trò "user" và "assistant". Mỗi lượt thêm một tin nhắn mới vào danh sách, cho phép mô hình truy cập toàn bộ lịch sử hội thoại. Ngữ cảnh này giúp mô hình tạo ra các phản hồi phù hợp hơn.
message = [
{
"role": "user",
"content": [
{"type": "image", "url": "https://assets.bonappetit.com/photos/57ad4ebc53e63daf11a4ddc7/master/w_1280,c_limit/kouign-amann.jpg"},
{"type": "text", "text": "What pastry is shown in the image?"}
]
},
{
"role": "assistant",
"content": [{"type": "text", "text": "This is kouign amann, a laminated dough pastry (i.e., dough folded with layers of butter) that also incorporates sugar between layers so that during baking the sugar caramelizes."}]
},
{
"role": "user",
"content": [
{"type": "image", "url": "https://static01.nyt.com/images/2023/07/21/multimedia/21baguettesrex-hbkc/21baguettesrex-hbkc-videoSixteenByNineJumbo1600.jpg"},
{"type": "text", "text": "Compare it to this image now."}
]
}
]