Tolok Ukur Pribadi Model Pembelajaran Mesin
Status Proyek
Peringatan : Ini adalah prototipe pembuktian konsep akademis dan belum menerima tinjauan kode yang cermat. Implementasi ini TIDAK siap untuk penggunaan produksi.
poin
Deskripsi Proyek
Proyek ini bertujuan untuk membuat platform yang memungkinkan pengguna melakukan benchmarking pribadi terhadap model pembelajaran mesin. Platform ini memfasilitasi evaluasi model berdasarkan tingkat kepercayaan yang berbeda antara pemilik model dan pemilik kumpulan data.
Repositori ini menyediakan kode pendamping untuk makalah https://arxiv.org/abs/2403.00393
TRUCE: Tolok Ukur Swasta untuk Mencegah Kontaminasi dan Meningkatkan Evaluasi Komparatif LLM
Tanmay Rajore, Nishanth Chandran, Sunayana Sitaram, Divya Gupta, Rahul Sharma, Kashish Mittal, Manohar Swaminathan
Instalasi
untuk build lengkap dan dukungan EzPC LLM
- ubah file setup.sh sesuai dengan konfigurasi sistem Anda untuk Driver Nvidia dan versi CUDA (defaultnya adalah 11.8 dan arsitektur GPU adalah 90 Hopper)
(In setup.sh)
line 42: export CUDA_VERSION=11.8
line 43: export GPU_ARCH=90
- jalankan file setup.sh
./setup.sh
Enter the Server IP address:
- File setup.sh akan menginstal dependensi yang diperlukan dan mengatur lingkungan agar platform dapat berjalan. Berkas .env berisi kunci rahasia Django yang dapat diubah sesuai kebutuhan pengguna. Untuk penyimpanan terkait kunci apa pun, pengguna sebaiknya hanya menggunakan berkas .env.
hanya platformnya
- CATATAN: Perlu mengatur variabel lingkungan ENCRYPTION_KEY agar server TTP/TEE dapat menjalankan kunci (32 byte/256 bit) dan file .env secara manual agar platform dapat berjalan dan alamat IP untuk menjalankan platform.
pip install -r requirements.txt
cd eval_website/eval_website
python manage.py makemigrations
python manage.py migrate
python manage.py runserver 0.0.0.0:8000
Penggunaan
Untuk menggunakan proyek setelah kunjungan instalasi.
http://127.0.0.1:8000 (di Localhost) atau http://:8000 (di IP Publik)
Contoh Kredensial Pengguna
- Pemilik Model
- nama pengguna: Pemilik Model
- kata sandi: haloTeman
- Pemilik Kumpulan Data
- nama pengguna: Pemilik Kumpulan Data
- kata sandi: haloTeman
port tertentu telah ditetapkan sebelumnya sebagai berikut:
- 8000: untuk website utama
- 8001: untuk komunikasi aman EzPC LLM dengan server pihak ketiga Tepercaya
- 7000: untuk lingkungan eksekusi Tepercaya untuk berkomunikasi dengan situs web
- 7001: agar server pihak ketiga tepercaya menerima file model
- 7002: agar server pihak ketiga tepercaya menerima file kumpulan data
- 9000: untuk komunikasi pemilik Kumpulan Data dengan situs web untuk menerima file kunci untuk EzPC
- 9001: untuk komunikasi pemilik Model dengan situs web untuk menerima file kunci untuk EzPC
Server Pihak Ketiga Tepercaya (TTP).
- Server TTP adalah server terpisah yang digunakan untuk melakukan komputasi model yang aman. Server TTP harus berjalan agar komputasi aman dapat dilakukan. Server TTP dapat dimulai dengan menjalankan perintah berikut.
cd utils/TTP_TEE_files
python ttp_server.py
- Asumsi :
- Detail terkait server TTP diatur dalam database Backend platform.
- Server TTP perlu menerima file model dan dataset untuk evaluasi dari masing-masing pihak pada port 7001 dan 7002.
- Server TTP akan melakukan komputasi aman dan mengembalikan hasilnya ke platform.
- Server TTP juga memerlukan file server.crt dan server.key ada di direktori yang sama dengan file ttp_server.py. File-file ini digunakan untuk komunikasi aman antara server TTP dan platform menggunakan CA yang dihasilkan oleh Platform setelah pertama kali dijalankan dan perlu dibuat menggunakan perintah berikut.
openssl req -newkey rsa:2048 -nodes -keyout " ./server.key " -out server.csr -subj /CN=127.0.0.1
openssl x509 -req -in server.csr -CA path/ca.crt(generated by eval_website root) -CAkey /path/ca.key(generated by eval_website root) -CAcreateserial -out ./server.crt -days xxx
- Variabel Lingkungan ENCRYPTION_KEY perlu diatur agar server TTP/TEE dapat menjalankan kunci (32 byte/256 bit).
export ENCRYPTION_KEY="32 bytes key"
#generate a 32 bytes key using the following command
python -c 'import os, binascii; print(binascii.hexlify(os.urandom(32)).decode("utf-8"))'
Lingkungan Eksekusi Tepercaya (TEE)
- Lingkungan Eksekusi Tepercaya adalah server terpisah yang digunakan untuk melakukan komputasi model yang aman (berdasarkan skrip TTP). Lingkungan Eksekusi Tepercaya harus berjalan agar komputasi aman dapat dilakukan. Petunjuk terperinci untuk menyiapkan Lingkungan Eksekusi Tepercaya dapat ditemukan di TTP/TEE.
EzPC LLM
saat ini EzPC mendukung model berikut
- bert-kecil
- bert-base
- bert-besar
- gpt2
- gpt-neo
- llama7b
- llama13b
untuk informasi lebih lanjut tentang cara menggunakan EzPC LLM, lihat EzPC LLM.
Evaluasi Artefak
Evaluasi artefak untuk makalah yang akan menghasilkan Tabel dapat ditemukan di Evaluasi Artefak.
Berkontribusi
Jika Anda ingin berkontribusi pada proyek ini, silakan ikuti pedoman yang diuraikan dalam file kontribusi.md.
Lisensi
Proyek ini dilisensikan di bawah lisensi [MIT]. Silakan lihat file LISENSI untuk informasi lebih lanjut.