Ключевые моменты
- Определение шаблона чата: Шаблон чата в Mistral определяет структурированные роли (например, «пользователь» и «ассистент») и правила форматирования, которые управляют обработкой диалоговых данных, обеспечивая связное и контекстно-зависимое взаимодействие при генерации диалогов с помощью ИИ.
- Руководство по использованию шаблона чата Mistral: Это подробное руководство включает настройку среды, создание и применение шаблона чата.
- Эффективность автоматизированного пайплайна: Внедрение автоматизированного чат-пайплайна упрощает применение шаблонов чата, повышая эффективность генерации ответов, адаптированных к конкретным контекстам беседы.
Введение
Хотите освоить использование шаблона чата Mistral? Погрузитесь в наше пошаговое руководство! Прежде чем перейти к инструкции, мы разберём, как работает шаблон чата, чтобы углубить ваше понимание. Кроме того, мы представим автоматизированный чат-пайплайн для повышения эффективности. Если вам интересно, читайте дальше!
Что такое шаблон чата Mistral?
Коротко говоря, «Шаблон чата Mistral» означает шаблон чата для моделей Mistral.
Серия моделей Mistral

Серия моделей Mixtral входит в состав открытых генеративных моделей ИИ от Mixtral AI, доступных по лицензии Apache 2.0. Mistral AI предоставляет модели Mixtral с открытым исходным кодом, что позволяет разработчикам и компаниям использовать и настраивать их для различных приложений. В частности, существуют две версии моделей Mixtral: Mixtral 8x7B и Mixtral 8x22B.
Знакомство с шаблоном чата
Использование LLM для чат-приложений становится всё более популярным. В отличие от традиционных языковых моделей, обрабатывающих текст как непрерывную последовательность, LLM в чат-среде работают с текущим диалогом, состоящим из нескольких сообщений. Каждое сообщение в этом диалоге характеризуется определённой ролью, например «пользователь» или «ассистент», а также текстом сообщения.
Как и в случае токенизации, разные LLM требуют разных форматов ввода для чат-взаимодействий. Для решения этой проблемы были внедрены шаблоны чата. Эти шаблоны интегрированы в функциональность токенизатора и описывают метод преобразования списка диалоговых сообщений в единую строку, специфичную для модели и подлежащую токенизации.

Как работает шаблон чата?
Структура сообщения
Каждое сообщение в шаблоне чата обычно представляется как объект или словарь, содержащий два основных атрибута:
- Роль: Определяет роль говорящего, например «user» (пользователь) или «assistant» (ассистент).
- Содержание: Фактический текст или содержимое сообщения.
{"role": "user", "content": "Hello, how are you?"}
{"role": "assistant", "content": "I'm doing great. How can I help you today?"}
Правила форматирования
Шаблоны чата определяют, как эти сообщения объединяются или разделяются для формирования связной входной строки для модели. Это может включать добавление пробелов, знаков препинания или специальных токенов, указывающих структуру диалога.
Пример:
- Простой шаблон (BlenderBot):
" Hello, how are you? I'm doing great. How can I help you today? I'd like to show off how chat templating works!</s>"
- Сложный шаблон (Mistral-7B-Instruct):
"<s>[INST] Hello, how are you? [/INST]I'm doing great. How can I help you today?</s> [INST] I'd like to show off how chat templating works! [/INST]"
В Mistral-7B-Instruct, например, токены [INST] и [/INST] используются для обозначения сообщений пользователя, указывая на определённую структурную информацию, которую модель обучена интерпретировать.
Интеграция с токенизатором
Шаблоны чата интегрированы в токенизатор модели, чтобы гарантировать, что отформатированные диалоговые данные преобразуются в токенизированный формат, который модель может эффективно обработать. Эта токенизация критически важна для того, чтобы модель генерировала соответствующие ответы на основе контекста, предоставленного диалогом.
Как использовать шаблон чата Mistral?
Чтобы использовать модель Mistral-7B-Instruct-v0.2 с шаблонами чата для генерации диалогов, выполните следующие шаги на основе предоставленной информации:
Настройка и конфигурация
Сначала убедитесь, что у вас есть необходимые импорты и настройка среды, включая получение API модели Mistral от Novita AI:
from transformers import AutoModelForCausalLM, AutoTokenizer
# Предполагается, что вы уже импортировали OpenAI и настроили клиент
# from openai import OpenAI
# client = OpenAI(base_url="https://api.novita.ai/v3/openai", api_key="<YOUR Novita AI API Key>")
# Определите модель и токенизатор
model_name = "mistralai/Mistral-7B-Instruct-v0.2"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# Установите устройство (CPU или GPU)
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device)
Создание шаблона чата
Определите ваш диалог как список сообщений, где каждое сообщение включает роль («user» или «assistant») и содержимое сообщения:
messages = [
{"role": "user", "content": "What is your favourite condiment?"},
{"role": "assistant", "content": "Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!"},
{"role": "user", "content": "Do you have mayonnaise recipes?"}
]
Применение шаблона чата
Используйте метод apply_chat_template(), предоставляемый токенизатором, для форматирования сообщений в соответствии с требованиями шаблона чата Mistral:
encodeds = tokenizer.apply_chat_template(messages, return_tensors=“pt”)
model_inputs = encodeds.to(device)
Генерация ответов
Сгенерируйте ответы с помощью модели Mistral:
generated_ids = model.generate(model_inputs['input_ids'], max_new_tokens=1000, do_sample=True)
decoded_responses = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)
print(decoded_responses)
Пояснение:
- Токенизация: Метод
apply_chat_template()преобразует список сообщений (messages) в формат, ожидаемый моделью Mistral. Он обрабатывает добавление необходимых токенов, таких как[INST]и[/INST], для обозначения ввода пользователя согласно спецификации. - Инференс модели:
model.generate()используется для генерации ответов на основе отформатированного ввода. Настройтеmax_new_tokensпо необходимости для контроля длины генерируемых ответов.do_sample=Trueвключает семплирование из распределения модели, что может улучшить разнообразие ответов. - Декодирование:
tokenizer.batch_decode()декодирует сгенерированные идентификаторы токенов в читаемый текст, пропуская специальные токены, такие как<s>и</s>.
Примечания:
- Убедитесь, что ваша среда обладает достаточными ресурсами (CPU/GPU) для инференса модели, особенно для больших моделей, таких как Mistral-7B.
- Настройте параметры, такие как
max_new_tokensиdo_sample, в зависимости от конкретных требований вашего приложения к длине ответа и стратегии генерации.
Как использовать автоматический пайплайн для чата?
Помимо использования шаблонов чата, например шаблона чата Mistral, автоматизированный пайплайн генерации текста от Hugging Face Transformers упрощает интеграцию диалоговых моделей ИИ. Использование «TextGenerationPipeline», который теперь включает функциональность, ранее обрабатываемую устаревшим «ConversationalPipeline», позволяет легко генерировать ответы на основе структурированных чат-сообщений.
Ключевые моменты
- Интеграция пайплайна: «TextGenerationPipeline» поддерживает чат-ввод, автоматически обрабатывая токенизацию и применение шаблона чата.
- Устаревшая функциональность: Более старый класс «ConversationalPipeline» упразднён в пользу унифицированного подхода с «TextGenerationPipeline».
- Пример с моделью Mistral: Демонстрирует использование пайплайна с моделью Mistral-7B-Instruct-v0.2. Сообщения структурированы с ролями («system» или «user») и содержимым, отформатированным в соответствии с шаблоном чата Mistral.
- Упрощение использования: Инициализация пайплайна и передача ему списка структурированных сообщений автоматизирует токенизацию и применение шаблона.
- Пример вывода: Ответ ассистента генерируется на основе входного сообщения, сохраняя контекст и стиль, заданные моделью Mistral.
Пример кода
from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer
# Инициализируйте пайплайн генерации текста с моделью Mistral
model_name = "mistralai/Mistral-7B-Instruct-v0.2"
pipe = pipeline("text-generation", model=model_name)
# Определите чат-сообщения с ролями и содержимым
messages = [
{"role": "system", "content": "You are a friendly chatbot."},
{"role": "user", "content": "Explain the concept of artificial intelligence."},
]
# Сгенерируйте ответ с помощью пайплайна
response = pipe(messages, max_new_tokens=128)[0]['generated_text']
# Выведите ответ ассистента
print(response)
В этом примере кода:
- Инициализация: Пайплайн инициализируется с моделью Mistral-7B-Instruct-v0.2 с помощью
pipeline("text-generation", model="mistralai/Mistral-7B-Instruct-v0.2"). - Формат сообщений: Сообщения структурированы с ролями («system» или «user») и содержимым, следуя формату шаблона чата Mistral.
- Генерация ответа: Пайплайн обрабатывает токенизацию и автоматически применяет шаблон чата. Сгенерированный ответ отражает контекст ввода и стиль, заданный моделью Mistral.
Этот подход использует возможности Hugging Face Transformers для упрощения реализации диалоговых моделей ИИ, обеспечивая эффективную и результативную интеграцию в чат-приложения.
Реальные применения шаблона чата
Чат-боты поддержки клиентов:
- Сценарий: Клиент взаимодействует с чат-ботом для устранения неполадок или получения помощи.
- Шаблон чата: Шаблон структурирует диалог с ролями, такими как «user» (клиент) и «assistant» (чат-бот), обеспечивая понимание запросов пользователя и предоставление соответствующих ответов.
- Преимущества: Повышает эффективность решения проблем клиентов за счёт сохранения контекста в нескольких взаимодействиях.
Образовательные чат-боты:
- Сценарий: Студенты взаимодействуют с чат-ботами, чтобы задавать вопросы, искать объяснения или получать репетиторскую помощь.
- Шаблон чата: Структурированные роли, такие как «student» (студент) и «tutor» (тьютор), направляют представление и обсуждение учебного материала.
- Преимущества: Способствует персонализированному обучению, адаптируя подачу контента на основе запросов студента и целей обучения.
Консультации в здравоохранении:
- Сценарий: Пациенты взаимодействуют с виртуальными медицинскими ассистентами для получения медицинских советов, проверки симптомов или записи на приём.
- Шаблон чата: Определяет структурирование ввода от пациента (симптомы, проблемы) и ответов/советов медицинского характера.
- Преимущества: Обеспечивает точную передачу медицинской информации, соблюдение правил конфиденциальности и непрерывность ухода.
Симуляции собеседований:
- Сценарий: Кандидаты на работу участвуют в виртуальных собеседованиях, проводимых ИИ-интервьюерами.
- Шаблон чата: Структурирует диалог собеседования с ролями, такими как «interviewer» (интервьюер) и «candidate» (кандидат), направляя поток вопросов и ответов.
- Преимущества: Обеспечивает реалистичную практику собеседований, обратную связь по коммуникативным навыкам и подготовку к реальным собеседованиям.
Заключение
В заключение, освоение использования шаблона чата Mistral включает понимание его структурированного подхода к обработке диалоговых данных. Мы рассмотрели, как работают шаблоны чата, особенно в контексте моделей Mistral, таких как Mistral-7B-Instruct-v0.2. Разобрав эти компоненты, мы выделили бесшовную интеграцию шаблонов чата с токенизатором и моделью Mistral, обеспечивающую связную и контекстно-зависимую генерацию диалогов. Кроме того, мы представили автоматизированный чат-пайплайн, который ещё больше упрощает процесс, заменяя устаревшие методы унифицированным подходом через TextGenerationPipeline.
Обладая этими знаниями и инструментами, разработчики и компании могут эффективно использовать возможности Mistral для различных приложений в диалоговых системах на базе ИИ.
Novita AI — это универсальная облачная платформа, которая воплощает ваши амбиции в области ИИ. Благодаря бесшовно интегрированным API, бессерверным вычислениям и ускорению GPU мы предоставляем экономически эффективные инструменты, необходимые для быстрого создания и масштабирования вашего бизнеса на базе ИИ. Устраните проблемы с инфраструктурой и начните бесплатно — Novita AI превращает ваши мечты об ИИ в реальность.
Рекомендуемое чтение
Знакомство с моделью Mixtral 8x7B от Mistral: всё, что нужно знать
