Chatbot
Chatbot là phần mềm trò chuyện bằng ngôn ngữ tự nhiên qua văn bản hoặc giọng nói, từ các tập lệnh đối chiếu từ khóa như ELIZA đến ứng dụng trò chuyện dùng LLM như ChatGPT.
Chatbot là chương trình máy tính trò chuyện với mọi người bằng ngôn ngữ tự nhiên qua văn bản hoặc giọng nói. ELIZA của Joseph Weizenbaum, được viết tại MIT và công bố năm 1966, thường được xem là chatbot đầu tiên: tập lệnh DOCTOR mô phỏng một nhà trị liệu tâm lý bằng cách khớp từ khóa và chuyển lời người dùng thành câu hỏi, còn Weizenbaum đã bàng hoàng khi thấy người dùng, kể cả thư ký của chính ông, tâm sự với chương trình như thể chương trình hiểu họ. Kể từ đó, chatbot đã trải qua ba thế hệ, từ tập lệnh dựa trên quy tắc, đến bot dựa trên ý định, rồi đến mô hình ngôn ngữ lớn (LLM). ChatGPT của OpenAI, ra mắt ngày 30 tháng 11 năm 2022, đã đưa thế hệ thứ ba trở nên phổ biến, và ngày nay “chatbot” thường chỉ giao diện trò chuyện với LLM như ChatGPT, Claude hoặc Gemini.
Cách chatbot hoạt động#
- Chatbot dựa trên quy tắc: Đối chiếu từ ngữ của người dùng với các mẫu được viết thủ công và trả lời bằng mẫu có sẵn. Chúng dễ dự đoán và chi phí thấp, nhưng thất bại với mọi cách diễn đạt mà người tạo ra chúng không lường trước.
- Chatbot dựa trên ý định: Bộ phân loại hiểu ngôn ngữ tự nhiên (NLU) ánh xạ từng tin nhắn vào một ý định, chẳng hạn như kiểm tra số dư, đồng thời trích xuất thông tin như tài khoản hoặc ngày tháng; sau đó, luồng hội thoại do nhà thiết kế xây dựng sẽ quyết định câu trả lời. Ngân hàng, hãng hàng không và công ty viễn thông xây dựng bot dịch vụ khách hàng theo cách này vì có thể xem xét trước mọi câu trả lời.
- Chatbot LLM: Tạo từng câu trả lời theo từng token dựa trên nội dung hội thoại cho đến thời điểm đó. System prompt xác định vai trò và quy tắc của bot, còn model xử lý những cách diễn đạt mà không ai lường trước.
Model đứng sau chatbot LLM là một Transformer được huấn luyện cho hội thoại bằng tinh chỉnh theo chỉ dẫn và học tăng cường từ phản hồi của con người (RLHF), và model không có bộ nhớ giữa các lần gọi. Ứng dụng lưu cuộc hội thoại và gửi toàn bộ nội dung, được định dạng theo chat template của model, cùng với mỗi tin nhắn mới:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("HuggingFaceTB/SmolLM2-135M-Instruct")
# Chatbot lưu cuộc hội thoại và gửi toàn bộ nội dung theo từng lượt mới
messages = [
{"role": "system", "content": "You are a support assistant for an online store."},
{"role": "user", "content": "Where is my order?"},
{"role": "assistant", "content": "Could you share your order number?"},
{"role": "user", "content": "It's 4417."},
]
# Chat template làm phẳng lịch sử hội thoại thành một prompt duy nhất để model tiếp tục
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
print(prompt)Prompt được in ra bao bọc mỗi lượt bằng các dấu <|im_start|> và <|im_end|> cùng với vai trò tương ứng, rồi kết thúc bằng một dòng <|im_start|>assistant chưa hoàn chỉnh; vì vậy, các token tiếp theo của model trở thành câu trả lời, và câu “Là 4417” chỉ có nghĩa khi câu hỏi trước đó nằm trong cùng prompt. Mỗi lượt khiến prompt dài thêm, vì vậy các cuộc hội thoại dài sẽ bị cắt bớt hoặc tóm tắt trước khi vượt quá cửa sổ ngữ cảnh, còn bộ nhớ đệm prompt tránh xử lý lại phần lịch sử không đổi ở mỗi lượt.
Cung cấp ngữ cảnh nền, Công cụ và Hình ảnh#
Chatbot hỗ trợ chỉ trả lời dựa trên dữ liệu huấn luyện sẽ tự tin đưa ra chính sách sai, vì vậy bot dùng trong môi trường production trước tiên truy xuất tài liệu và dữ liệu tài khoản liên quan bằng tạo sinh tăng cường truy xuất (RAG), kiểm tra đầu vào và bản nháp bằng cơ chế bảo vệ AI, rồi chuyển cho nhân viên khi không có căn cứ hỗ trợ câu trả lời:
Chatbot gọi công cụ thông qua gọi hàm, chẳng hạn như tra cứu đơn hàng, đang dần trở thành tác tử AI, còn chatbot đa phương thức nhận ảnh và ảnh chụp màn hình trong một lượt thông qua mô hình thị giác-ngôn ngữ (VLM). Giao diện LLM của Ultralytics gửi prompt, hình ảnh hoặc toàn bộ lịch sử tin nhắn đến bất kỳ model trò chuyện tương thích OpenAI nào và trả về đối tượng phản hồi của chính nhà cung cấp; nhờ đó, một pipeline YOLO26 có thể yêu cầu model đa phương thức mô tả cảnh chỉ sau khi phát hiện có người trong đó.
Rủi ro#
Ảo giác có thể dẫn đến trách nhiệm pháp lý khi doanh nghiệp triển khai bot. Trong vụ Moffatt kiện Air Canada, được xét xử vào tháng 2 năm 2024, chatbot trên trang web của hãng hàng không đã nói với một hành khách đang chịu tang rằng họ có thể yêu cầu giảm giá vé tang chế sau chuyến đi, trái với chính sách thực tế của hãng. Tòa Trọng tài Giải quyết Dân sự British Columbia bác lập luận của Air Canada rằng chatbot phải tự chịu trách nhiệm về phát ngôn của mình và buộc hãng trả phần chênh lệch. Chatbot cũng phải đối mặt với các nỗ lực tiêm nhiễm prompt và bẻ khóa; các model được tinh chỉnh để làm hài lòng người dùng có thể rơi vào tình trạng nịnh hót trong AI, đồng tình với những khẳng định sai thay vì đính chính.
Chatbot và các thuật ngữ liên quan#
- Trợ lý ảo: Phần mềm như Siri hoặc Alexa thực hiện yêu cầu trên nhiều ứng dụng và thiết bị. Chatbot thường hoạt động trên một trang web, ứng dụng hoặc kênh nhắn tin duy nhất và tập trung vào hội thoại.
- Tác tử AI: Hệ thống theo đuổi mục tiêu bằng cách lựa chọn và thực hiện hành động, thường qua nhiều bước mà không cần người tham gia. Chatbot trở thành tác tử khi bắt đầu thực hiện hành động thông qua công cụ, ngoài việc trả lời.
- AI hội thoại: Lĩnh vực rộng hơn bao gồm các công nghệ nền tảng cho chatbot và trợ lý, như nhận dạng giọng nói, NLU, quản lý hội thoại và chuyển văn bản thành giọng nói.










