Документация

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, сохраняйте её лицензию и указание авторства.