Promptwright adalah perpustakaan Python dari Stacklok yang dirancang untuk menghasilkan kumpulan data sintetis besar menggunakan LLM lokal. Pustaka ini menawarkan serangkaian antarmuka yang fleksibel dan mudah digunakan, memungkinkan pengguna untuk menghasilkan kumpulan data sintetis yang dipimpin dengan cepat.
Promptwright terinspirasi oleh redotvideo/pluto, sebenarnya ini dimulai sebagai fork, namun akhirnya menjadi penulisan ulang, untuk memungkinkan pembuatan kumpulan data terhadap model LLM lokal, dibandingkan dengan OpenAI yang biayanya bisa sangat mahal.
Pustaka ini berinteraksi dengan Ollama, sehingga memudahkan untuk menarik model dan menjalankan Promptwright.
Integrasi Klien LLM Lokal : Berinteraksi dengan model berbasis Ollama
Instruksi dan Perintah yang Dapat Dikonfigurasi : Tentukan instruksi khusus dan perintah sistem
Push to Hugging Face : Dorong kumpulan data yang dihasilkan ke Hugging Face Hub.
Python 3.11+
perpustakaan promptwright
diinstal
Ollama CLI diinstal dan dijalankan (lihat Instalasi Ollama
Model yang ditarik melalui Ollama (lihat Kompatibilitas Model)
Untuk menginstal prasyarat, Anda dapat menggunakan perintah berikut:
pip instal promptwright ollama melayani ollama pull {model_name} # model mana pun yang ingin Anda gunakan
Ada beberapa contoh di direktori examples
yang menunjukkan cara menggunakan perpustakaan untuk menghasilkan kumpulan data berbasis topik yang berbeda.
Untuk menjalankan contoh:
Pastikan Anda telah memulai Ollama dengan menjalankan ollama serve
.
Verifikasi bahwa model yang diperlukan telah diunduh (misalnya llama3.2:latest
).
Atur model_name
pada file contoh yang dipilih ke model yang telah Anda unduh.
engine = LocalDataEngine( args=LocalEngineArguments( instruction="Buat perintah menulis kreatif dan contoh respons.", system_prompt="Anda adalah instruktur menulis kreatif yang memberikan perintah menulis dan contoh respons.", model_name="llama3.2:latest", temperatur =0,9, # Suhu lebih tinggi untuk variasi yang lebih kreatif max_retries=2,
Jalankan file contoh pilihan Anda:
contoh python/creative_writing.py
Kumpulan data yang dihasilkan akan disimpan ke file JSONL ke apa pun yang disetel dalam dataset.save()
.
{ "pesan": [ { "role": "system", "content": "Anda ditugaskan untuk merancang pengalaman realitas virtual mendalam yang membawa pengguna ke dunia penuh keajaiban." }, { "role": "user", "content": "Buat bagian deskriptif tentang karakter yang menemukan bakat terpendamnya." }, { "role": "assistant", "content": "Saat dia menatap kanvas, jari-jari Emma melayang di atas kuas, seolah ragu untuk melepaskan warna-warna yang telah terkunci di dalam dirinya. Sapuan dimulai dengan pengabaian yang berani, berputar-putar warna biru dan hijau menyatu menjadi tarian cahaya dan bayangan yang memesona. Seiring berlalunya waktu, ia merasa dirinya telah menjadi karya seni – esensi dirinya meresap ke dalam kanvas seperti cat air di tengah badai musim semi simfoni warna dan kreasi." } ] }
Dataset : Kelas untuk mengelola kumpulan data yang dihasilkan.
LocalDataEngine : Mesin utama yang bertanggung jawab untuk berinteraksi dengan klien LLM dan menghasilkan kumpulan data.
LocalEngineArguments : Kelas konfigurasi yang mendefinisikan instruksi, prompt sistem, suhu nama model, percobaan ulang, dan templat prompt yang digunakan untuk menghasilkan data.
OllamaClient : Kelas klien untuk berinteraksi dengan API Ollama
HFUploader : Kelas utilitas untuk mengunggah kumpulan data ke Hugging Face (meneruskan jalur ke kumpulan data dan token).
Jika Anda mengalami kesalahan saat menjalankan skrip, berikut beberapa langkah pemecahan masalah yang umum:
Mulai ulang Ollama :
bunuh semua ollama && ollama sajikan
Verifikasi Instalasi Model :
ollama tarik {model_name}
Periksa Log Ollama :
Periksa log untuk setiap pesan kesalahan yang mungkin memberikan lebih banyak konteks tentang apa yang salah, ini dapat ditemukan di direktori ~/.ollama/logs
.
Perpustakaan harus bekerja dengan sebagian besar model LLM. Sejauh ini telah diuji dengan model berikut:
LLaMA3 : Pustaka dirancang untuk bekerja dengan model LLaMA, khususnya model llama3:latest
.
Mistral : Pustaka ini kompatibel dengan model Mistral, yang merupakan cabang dari model GPT-3.
Jika Anda menguji lagi, silakan buat permintaan tarik untuk memperbarui daftar ini!
Jika ada yang bisa diperbaiki di sini, silakan buka masalah atau kirimkan permintaan penarikan.
Proyek ini dilisensikan di bawah Lisensi Apache 2. Lihat file LICENSE
untuk lebih jelasnya.