Refat Talks: Tech & AI
@nobilix
Стандарты в промптинге: как экономить токены и получать предсказуемый output
Я уже писал про то, как люблю стандарты - они спасают сотни часов разработки, а иногда и жизни. Сейчас хочу поделиться простой техникой, которая сильно упрощает работу со structured output.
Суть в том, что LLM отлично понимают широко-используемые стандарты (ISO и не только) и им не нужно объяснять что это такое - достаточно просто назвать. Вместо "в этом поле укажи язык" (и потом парсить "English", "english", "eng", "английский") - просто говоришь "ISO 639-1" и получаешь чёткий "en".
Что это дает:
- Меньше токенов на выходе - "US" вместо "United States of America"
- Детерминированность - никаких вариаций и неточностей
- Проще парсить - не надо городить регулярки на все случаи жизни
- Совместимость - стандарты работают со всеми библиотеками и API, а еще легко найти готовые маппинги/справочники типа такого
Все стандарты запомнить невозможно, поэтому у меня такой подход: перед тем как составить схему/промпт, спрашиваю себя (и AI) - а есть ли тут стандарт? Дальше разбираюсь какие есть варианты, насколько они общеприняты, и просто ссылаюсь в промпте.
Собрал для вас список наиболее полезных стандартов (список раскрывается)
Паттерн в промпте простой: "Extract X from this text. Return ONLY in [STANDARD NAME] format (e.g., "example1", "example2"). If uncertain, return null."
💡 Pro-tip: Когда стандарт найден - идете на github и ищите его название - скорее всего выйдете много полезного: справочники, библиотеки и тд. Справочники можно искать прямо в gist по фильтру JSON: пример.
Попробуйте на своих задачах. Скорее всего для вашего кейса уже есть стандарт, который LLM знает лучше вас и вам же будет проще это использовать в остальном коде.
🔥➕🔁 P.S.в тг все еще нет органики, поэтому делитесь если понравилось
Я уже писал про то, как люблю стандарты - они спасают сотни часов разработки, а иногда и жизни. Сейчас хочу поделиться простой техникой, которая сильно упрощает работу со structured output.
Суть в том, что LLM отлично понимают широко-используемые стандарты (ISO и не только) и им не нужно объяснять что это такое - достаточно просто назвать. Вместо "в этом поле укажи язык" (и потом парсить "English", "english", "eng", "английский") - просто говоришь "ISO 639-1" и получаешь чёткий "en".
Что это дает:
- Меньше токенов на выходе - "US" вместо "United States of America"
- Детерминированность - никаких вариаций и неточностей
- Проще парсить - не надо городить регулярки на все случаи жизни
- Совместимость - стандарты работают со всеми библиотеками и API, а еще легко найти готовые маппинги/справочники типа такого
Все стандарты запомнить невозможно, поэтому у меня такой подход: перед тем как составить схему/промпт, спрашиваю себя (и AI) - а есть ли тут стандарт? Дальше разбираюсь какие есть варианты, насколько они общеприняты, и просто ссылаюсь в промпте.
Собрал для вас список наиболее полезных стандартов (список раскрывается)
Языки и локализация
- ISO 639-1 для языков: "en", "ru", "zh"
- ISO 639-2/T (Alpha-3): "eng", "rus", "chi"
- BCP 47 для локалей: "en-US", "zh-Hans", "pt-BR"
- Unicode (UTF-8) для кодировки символов
География
- ISO 3166-1 alpha-2 для стран: "US", "DE", "JP"
- ISO 3166-1 alpha-3 для стран: "USA", "DEU", "JPN"
- ISO 3166-2 для регионов: "US-CA", "DE-BY"
- IANA/Olson для таймзон: "America/New_York", "Europe/Moscow"
- WGS 84 (EPSG:4326) для координат GPS: "55.7558, 37.6173"
Даты и время
- ISO 8601 для дат: "2024-03-15", "2024-03-15T14:30:00Z"
- ISO 8601 duration для периодов: "P3Y6M", "PT2H30M"
- Cron expression для расписаний: "0 9 * * 1-5"
- RRULE (RFC 5545) для повторений: "FREQ=WEEKLY;BYDAY=MO,WE,FR"
Финансы
- ISO 4217 для валют: "USD", "EUR", "BTC"
- IBAN / BIC / SWIFT (ISO 9362) - для счетов и банков
Контакты
- E.164 для телефонов: "+14155551234"
- vCard (RFC 6350) для обмена контактами
Прочие
- MIME types для файлов: "application/pdf", "image/png"
- Hex RGB для цветов: "#FF5733" (а также HSL / HSLA)
- Транслитерация BGN/PCGN
- конечно же база: помните про СИ из школьной физики?
Паттерн в промпте простой: "Extract X from this text. Return ONLY in [STANDARD NAME] format (e.g., "example1", "example2"). If uncertain, return null."
💡 Pro-tip: Когда стандарт найден - идете на github и ищите его название - скорее всего выйдете много полезного: справочники, библиотеки и тд. Справочники можно искать прямо в gist по фильтру JSON: пример.
Попробуйте на своих задачах. Скорее всего для вашего кейса уже есть стандарт, который LLM знает лучше вас и вам же будет проще это использовать в остальном коде.
🔥➕🔁 P.S.
🔥 73
👍 22
❤ 9
🙏 1
12 149 5.8K
Обсуждение 12
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram