Promptwright — это библиотека Python от Stacklok, предназначенная для создания больших синтетических наборов данных с использованием локального LLM. Библиотека предлагает гибкий и простой в использовании набор интерфейсов, позволяющий пользователям быстро создавать синтетические наборы данных.
Promptwright был вдохновлен redotvideo/pluto, на самом деле он начинался как форк, но в конечном итоге был переписан, чтобы позволить генерировать наборы данных на основе локальной модели LLM, в отличие от OpenAI, где затраты могут быть непомерно высокими.
Библиотека взаимодействует с Ollama, что позволяет легко получить модель и запустить Promptwright.
Интеграция локального клиента LLM : взаимодействие с моделями на основе Ollama
Настраиваемые инструкции и подсказки : определение пользовательских инструкций и системных подсказок.
Push to Hugging Face : отправьте сгенерированный набор данных в Hugging Face Hub.
Питон 3.11+
установлена библиотека promptwright
Интерфейс командной строки Ollama установлен и запущен (см. раздел Установка Ollama).
Модель, полученная через Олламу (см. Совместимость моделей).
Чтобы установить необходимые компоненты, вы можете использовать следующие команды:
автор установки pip оллама подавать ollama pull {model_name} # какую модель вы хотите использовать
В каталоге examples
есть несколько примеров, демонстрирующих, как использовать библиотеку для создания наборов данных по различным темам.
Чтобы запустить пример:
Убедитесь, что вы запустили Ollama, запустив ollama serve
.
Убедитесь, что необходимая модель загружена (например, llama3.2:latest
).
Задайте model_name
в выбранном файле примера для модели, которую вы скачали.
engine = LocalDataEngine( args=LocalEngineArguments( Instructions="Создавайте подсказки для творческого письма и примеры ответов.", system_prompt="Вы являетесь инструктором по творческому письму, предоставляя подсказки для написания и примеры ответов.", model_name="llama3.2:latest", temp =0.9, # Более высокая температура для более творческих вариаций max_retries=2,
Запустите выбранный вами файл примера:
пример Python/creative_writing.py
Сгенерированный набор данных будет сохранен в файл JSONL в соответствии с тем, что установлено в dataset.save()
.
{ "сообщения": [ { "role": "system", "content": "Вам поручено разработать захватывающую виртуальную реальность, которая переносит пользователей в фантастический мир чудес." }, { "role": "user", "content": "Создайте описательный отрывок о персонаже, раскрывающем свои скрытые таланты." }, { "role": "assistant", "content": "Когда она смотрела на холст, пальцы Эммы зависли над кистями, как будто не решаясь высвободить цвета, которые были заперты в ней. Мазки начались с смелой энергией, вихрем синие и зеленые цвета сливаются в завораживающий танец света и тени. С каждым мгновением она чувствовала, что становится искусством – сама ее сущность просачивалась на холст, как акварель в весеннюю бурю. Мир вокруг нее таял, оставляя только яркое. симфония цвета и творчества». } ] }
Dataset : класс для управления сгенерированными наборами данных.
LocalDataEngine : основной механизм, отвечающий за взаимодействие с клиентом LLM и создание наборов данных.
LocalEngineArguments : класс конфигурации, который определяет инструкции, системное приглашение, температуру имени модели, повторные попытки и шаблоны приглашений, используемые для генерации данных.
OllamaClient : клиентский класс для взаимодействия с API Ollama.
HFUploader : служебный класс для загрузки наборов данных в Hugging Face (передайте путь к набору данных и токен).
Если при запуске скрипта вы столкнулись с какими-либо ошибками, вот несколько распространенных шагов по устранению неполадок:
Перезапустите Олламу :
киллалл оллама и& оллама подача
Проверьте установку модели :
оллама тянет {model_name}
Проверьте журналы Олламы :
Проверьте журналы на наличие сообщений об ошибках, которые могут предоставить дополнительную информацию о том, что пошло не так. Их можно найти в каталоге ~/.ollama/logs
.
Библиотека должна работать с большинством моделей LLM. На данный момент протестировано со следующими моделями:
LLaMA3 : библиотека предназначена для работы с моделью LLaMA, в частности с моделью llama3:latest
.
Mistral : библиотека совместима с моделью Mistral, которая является ответвлением модели GPT-3.
Если вы еще тестируете, сделайте запрос на включение, чтобы обновить этот список!
Если что-то здесь можно улучшить, откройте проблему или отправьте запрос на включение.
Этот проект распространяется по лицензии Apache 2. Дополнительные сведения см. в файле LICENSE
.