การเปรียบเทียบแบบส่วนตัวของโมเดลการเรียนรู้ของเครื่อง
สถานะโครงการ
คำเตือน : นี่คือต้นแบบการพิสูจน์แนวคิดทางวิชาการ และยังไม่ได้รับการตรวจสอบโค้ดอย่างรอบคอบ การใช้งานนี้ไม่พร้อมสำหรับการใช้งานจริง
คะแนน
รายละเอียดโครงการ
โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อสร้างแพลตฟอร์มที่ช่วยให้ผู้ใช้สามารถดำเนินการเปรียบเทียบโมเดลการเรียนรู้ของเครื่องแบบส่วนตัวได้ แพลตฟอร์มดังกล่าวอำนวยความสะดวกในการประเมินแบบจำลองตามระดับความไว้วางใจที่แตกต่างกันระหว่างเจ้าของโมเดลและเจ้าของชุดข้อมูล
พื้นที่เก็บข้อมูลนี้มีรหัสประกอบสำหรับกระดาษ https://arxiv.org/abs/2403.00393
TRUCE: การเปรียบเทียบส่วนตัวเพื่อป้องกันการปนเปื้อนและปรับปรุงการประเมินเปรียบเทียบของ LLM
ทันเมย์ ราจอร์, นิชานธ์ จันดราน, สุนายา สิตาราม, ดิฟยา กุปต้า, ราหุล ชาร์มา, คาชิช มิททัล, มาโนฮาร์ สวามินาธาน
การติดตั้ง
สำหรับการสร้างที่สมบูรณ์และการสนับสนุน EzPC LLM
- แก้ไขไฟล์ setup.sh ให้เป็นไปตามการกำหนดค่าระบบของคุณสำหรับไดรเวอร์ Nvidia และเวอร์ชัน CUDA (ค่าเริ่มต้นคือ 11.8 และสถาปัตยกรรม GPU คือ 90 Hopper)
(In setup.sh)
line 42: export CUDA_VERSION=11.8
line 43: export GPU_ARCH=90
- เรียกใช้ไฟล์ setup.sh
./setup.sh
Enter the Server IP address:
- ไฟล์ setup.sh จะติดตั้งการขึ้นต่อกันที่จำเป็นและตั้งค่าสภาพแวดล้อมสำหรับแพลตฟอร์มที่จะทำงาน ไฟล์ .env มีคีย์ลับ django ซึ่งสามารถเปลี่ยนแปลงได้ตามความต้องการของผู้ใช้ สำหรับพื้นที่เก็บข้อมูลที่เกี่ยวข้องกับคีย์ ผู้ใช้ควรใช้ไฟล์ .env เท่านั้น
เฉพาะแพลตฟอร์มเท่านั้น
- หมายเหตุ: จำเป็นต้องตั้งค่าตัวแปรสภาพแวดล้อม ENCRYPTION_KEY สำหรับเซิร์ฟเวอร์ TTP/TEE เพื่อรันคีย์ (32 ไบต์/256 บิต) และไฟล์ .env ด้วยตนเองเพื่อให้แพลตฟอร์มทำงานและที่อยู่ IP สำหรับแพลตฟอร์มที่จะทำงาน
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
การใช้งาน
เพื่อใช้งานโครงการหลังการติดตั้งเยี่ยมชม
http://127.0.0.1:8000 (บน Localhost) หรือ http://:8000 (บน IP สาธารณะ)
ตัวอย่างข้อมูลรับรองผู้ใช้
- เจ้าของโมเดล
- ชื่อผู้ใช้: ModelOwner
- รหัสผ่าน: สวัสดีเพื่อน
- เจ้าของชุดข้อมูล
- ชื่อผู้ใช้: DatasetOwner
- รหัสผ่าน: สวัสดีเพื่อน
พอร์ต บางพอร์ตถูกกำหนดไว้ล่วงหน้าดังนี้:
- 8000: สำหรับเว็บไซต์หลัก
- 8001: สำหรับการสื่อสารที่ปลอดภัยของ EzPC LLM กับเซิร์ฟเวอร์บุคคลที่สามที่เชื่อถือได้
- 7000: สำหรับสภาพแวดล้อมการดำเนินการที่เชื่อถือได้เพื่อสื่อสารกับเว็บไซต์
- 7001: สำหรับเซิร์ฟเวอร์บุคคลที่สามที่เชื่อถือได้เพื่อรับไฟล์โมเดล
- 7002: สำหรับเซิร์ฟเวอร์บุคคลที่สามที่เชื่อถือได้เพื่อรับไฟล์ชุดข้อมูล
- 9000: สำหรับการสื่อสารกับเจ้าของชุดข้อมูลกับเว็บไซต์เพื่อรับไฟล์สำคัญสำหรับ EzPC
- 9001: สำหรับการสื่อสารของเจ้าของโมเดลกับเว็บไซต์เพื่อรับไฟล์สำคัญสำหรับ EzPC
เซิร์ฟเวอร์บุคคลที่สามที่เชื่อถือได้ (TTP)
- เซิร์ฟเวอร์ TTP เป็นเซิร์ฟเวอร์แยกต่างหากที่ใช้ในการคำนวณโมเดลอย่างปลอดภัย จำเป็นต้องใช้เซิร์ฟเวอร์ TTP เพื่อดำเนินการคำนวณที่ปลอดภัย เซิร์ฟเวอร์ TTP สามารถเริ่มต้นได้โดยการรันคำสั่งต่อไปนี้
cd utils/TTP_TEE_files
python ttp_server.py
- สมมติฐาน :
- รายละเอียดที่เกี่ยวข้องกับเซิร์ฟเวอร์ TTP ได้รับการตั้งค่าไว้ในฐานข้อมูลแบ็กเอนด์ของแพลตฟอร์ม
- เซิร์ฟเวอร์ TTP ต้องการรับไฟล์โมเดลและชุดข้อมูลสำหรับการประเมินจากฝ่ายที่เกี่ยวข้องบนพอร์ต 7001 และ 7002 ตามลำดับ
- เซิร์ฟเวอร์ TTP จะดำเนินการคำนวณอย่างปลอดภัยและส่งคืนผลลัพธ์ไปยังแพลตฟอร์ม
- เซิร์ฟเวอร์ TTP ยังต้องการให้ไฟล์ server.crt และ server.key ปรากฏในไดเร็กทอรีเดียวกันกับไฟล์ ttp_server.py ไฟล์เหล่านี้ใช้สำหรับการสื่อสารที่ปลอดภัยระหว่างเซิร์ฟเวอร์ TTP และแพลตฟอร์มโดยใช้ CA ที่สร้างโดยแพลตฟอร์มหลังจากการรันครั้งแรก และจำเป็นต้องสร้างโดยใช้คำสั่งต่อไปนี้
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
- จำเป็นต้องตั้งค่าตัวแปรสภาพแวดล้อม ENCRYPTION_KEY เพื่อให้เซิร์ฟเวอร์ TTP/TEE ทำงาน (32 ไบต์/256 บิต)
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"))'
สภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE)
- Trusted Execution Environment เป็นเซิร์ฟเวอร์แยกต่างหากที่ใช้ในการคำนวณโมเดลอย่างปลอดภัย (ขึ้นอยู่กับสคริปต์ TTP) จำเป็นต้องมีการรัน Trusted Execution Environment เพื่อดำเนินการคำนวณที่ปลอดภัย คำแนะนำโดยละเอียดสำหรับการตั้งค่า Trusted Execution Environment มีอยู่ใน TTP/TEE
อีซพีซี แอลแอลเอ็ม
การประเมินสิ่งประดิษฐ์
การประเมินสิ่งประดิษฐ์สำหรับกระดาษเพื่อสร้างตารางสามารถพบได้ในการประเมินสิ่งประดิษฐ์
มีส่วนร่วม
หากคุณต้องการมีส่วนร่วมในโครงการนี้ โปรดปฏิบัติตามแนวทางที่ระบุไว้ในไฟล์ contributing.md
ใบอนุญาต
โครงการนี้ได้รับอนุญาตภายใต้ใบอนุญาต [MIT] โปรดดูไฟล์ใบอนุญาตสำหรับข้อมูลเพิ่มเติม