Modelfile
Modelfile описывает производную модель: базовую модель плюс вопросы, которые она должна задавать всегда, и, опционально, переобученную калибровку, зафиксированную точность, лицензию и описание. Соберите её с помощью ollaya create, а затем запускайте по имени, передав только состояние.
ollaya create triage -f Modelfile
ollaya run triage "I was charged twice for my subscription this month."
Пример
# Support ticket triage
FROM laya:en
QUESTIONS """
{
"department": {
"type": "choice",
"instructions": "Which team should handle this ticket?",
"criteria": {
"billing": "Payments, invoices and refunds",
"technical": "Bugs, errors and outages",
"account": "Login, profile and settings"
}
},
"urgency": {
"type": "score",
"instructions": "How urgent is this ticket?",
"criteria": ["Can wait", "Needs attention this week", "Needs attention today"]
},
"refund": {
"type": "noul",
"instructions": "Does the customer ask for money back?"
}
}
"""
CALIBRATION ./calibration.json
PARAMETER precision fp32
DESCRIPTION Support ticket triage
LICENSE ./LICENSE
Инструкции
| Инструкция | Обязательно | Значение |
|---|---|---|
FROM |
да | Базовая модель, например laya:en, или маршрутизатор вроде laya |
QUESTIONS |
нет | Встроенные вопросы: тот же объект, что questions в API |
CALIBRATION |
нет | Температуры, которые заменяют температуры базовой модели |
PARAMETER |
нет | precision fp16 или precision fp32, чтобы зафиксировать один граф |
DESCRIPTION |
нет | Одна строка, показываемая ollaya show и /v1/models |
LICENSE |
нет | Текст лицензии для производной модели |
- Синтаксис. Директивы нечувствительны к регистру;
#начинает строку комментария. - Значения.
QUESTIONS,CALIBRATIONиLICENSEпринимают путь относительно Modelfile (~/работает), встроенный JSON в одну строку или блок между"""на несколько строк. - Неизвестный ввод. Любая другая директива или параметр — это ошибка.
- Загрузка.
ollaya createсначала загружаетFROM, если её нет на этой машине.
Всё, что вы опустите, наследуется от базовой модели. Когда запрос отправляет свои questions, они заменяют встроенные для этого запроса.
FROM
Модель, на которой строить. Маршрутизатор тоже подойдёт; тогда производная модель маршрутизирует как её база:
FROM laya
QUESTIONS
Вопросы, которые модель задаёт, когда запрос не приносит ни одного; проверяются как запрос решения (1–256 вопросов):
QUESTIONS ./questions.json
CALIBRATION
Вероятности полезны для порогов только если они калиброваны. Ollaya калибрует масштабированием температуры: логиты делятся на температуру для каждого типа вопроса и числа вариантов. CALIBRATION заменяет температуры базовой модели на переобученные на ваших собственных размеченных данных:
{
"temperature": [1.6, 1.25, 1.98],
"temperature_by_options": {
"choice:2": 1.9,
"choice:3-5": 1.76,
"score:3-5": 1.25,
"noul:2": 1.98
}
}
temperature хранит один запасной вариант на тип вопроса (choice, score, noul). Ключи temperature_by_options — <type>:<2|3-5|6-10|11+>, по числу вариантов вопроса.
PARAMETER
Единственный параметр — precision. Голая модель несёт граф fp16 и граф fp32 и выбирает один при загрузке (fp16 на GPU CUDA, fp32 на CPU). PARAMETER precision fp32 фиксирует граф fp32 везде, например чтобы точно совпасть с эталоном fp32.
PARAMETER precision fp32
DESCRIPTION
DESCRIPTION Support ticket triage
LICENSE
Текст лицензии, поставляемый с моделью и показываемый ollaya show --license. Когда вы строите на модели Apache-2.0, такой как Laya, сохраняйте её лицензию и указание авторства.