ลองใช้ Front-End เวอร์ชันเบต้าของเราสิ! นอกจากนี้ โปรดตรวจสอบทวีตเปิดตัวของเราเพื่อดูวิสัยทัศน์ของเราในการสร้าง LLM แบบโอเพ่นซอร์สที่ดีที่สุดในโลก
หมายเหตุ: เอกสารต่อไปนี้ถือว่าคุณคุ้นเคยกับแนวคิดพื้นฐานของ Bittensor: นักขุด เครื่องมือตรวจสอบ และสิ่งจูงใจ หากคุณต้องการไพรเมอร์ โปรดตรวจสอบ https://docs.bittensor.com/learn/bittensor-building-blocks
Dippy เป็นหนึ่งในแอปคู่หู AI ชั้นนำของโลกที่มี ผู้ใช้มากกว่า 1 ล้านคน แอปนี้อยู่ในอันดับ ที่ 3 ใน App Store ในประเทศต่างๆ เช่น เยอรมนี และครอบคลุมโดยสื่อสิ่งพิมพ์อย่าง นิตยสาร Wired และผู้ใช้ Dippy โดยเฉลี่ย ใช้เวลาบนแอปมากกว่า 1 ชั่วโมง
ซับเน็ต Dippy Roleplay บน Bittensor มีเป้าหมายเพื่อสร้าง LLM สวมบทบาทโอเพ่นซอร์สที่ดีที่สุดในโลก โดยใช้ประโยชน์จากความพยายามร่วมกันของชุมชนโอเพ่นซอร์ส ซับเน็ตนี้จัดการปัญหาวิกฤติของความเหงา ซึ่งส่งผลกระทบต่อประชากรส่วนสำคัญ และเชื่อมโยงกับปัญหาสุขภาพจิตและร่างกายต่างๆ
SOTA LLM ในปัจจุบัน (Claude, OpenAI ฯลฯ) ได้รับการออกแบบมาสำหรับกรณีใช้งานของผู้ช่วยและขาดคุณสมบัติที่เห็นอกเห็นใจซึ่งจำเป็นสำหรับการเป็นเพื่อนกัน ในขณะที่บางบริษัท (เช่น Character AI และ Inflection) ได้พัฒนา LLM แบบสวมบทบาทแบบโอเพ่นซอร์ส แต่ทางเลือกแบบโอเพ่นซอร์สกลับล้าหลังอย่างมากในด้านประสิทธิภาพ
เนื่องจากความซับซ้อนของการสร้าง LLM การแสดงบทบาทสมมติที่ล้ำสมัย เราจึงวางแผนที่จะแบ่งกระบวนการออกเป็น 3 ระยะที่แตกต่างกัน
ระยะที่ 1:
ระยะที่ 2:
ระยะที่ 3:
นักขุด จะใช้เฟรมเวิร์กที่มีอยู่ เทคนิคการปรับแต่งอย่างละเอียด หรือ MergeKit เพื่อฝึกฝน ปรับแต่ง หรือรวมโมเดลเพื่อสร้าง LLM สวมบทบาทที่ไม่เหมือนใคร โมเดลเหล่านี้จะถูกส่งไปยัง Hugging Face Pool ที่ใช้ร่วมกัน
ผู้ตรวจสอบ จะประเมินและประเมินประสิทธิภาพของโมเดลผ่านโปรโตคอลของเรา และจัดอันดับการส่งตามเกณฑ์ชี้วัดต่างๆ (ความเห็นอกเห็นใจ ความกระชับ ฯลฯ) เราจะจัดเตรียมชุดการทดสอบและเกณฑ์มาตรฐานพร้อมชุดข้อมูลที่ทันสมัย
ในการเริ่มต้น ให้โคลนพื้นที่เก็บข้อมูลและ cd
ไปที่:
git clone https://github.com/impel-intelligence/dippy-bittensor-subnet.git
cd dippy-bittensor-subnet
pip install -e .
ในฐานะนักขุด คุณต้องรับผิดชอบในการใช้ประโยชน์จากวิธีการทั้งหมดที่มีอยู่ รวมถึงแต่ไม่จำกัดเพียงการฝึกโมเดลใหม่ การรวมโมเดลที่มีอยู่ (เราขอแนะนำ MergeKit) การปรับแต่งโมเดลที่มีอยู่อย่างละเอียด และอื่นๆ เพื่อผลักดัน LLM แบบสวมบทบาทไปข้างหน้า
เราสรุปเกณฑ์ต่อไปนี้สำหรับระยะที่ 1:
เมื่อคุณพอใจกับประสิทธิภาพของโมเดลสำหรับการใช้งาน Roleplay แล้ว คุณสามารถส่งไปที่ Hugging Face ? แล้วใช้คำสั่งต่อไปนี้:
python3 dippy_subnet/upload_model.py --hf_repo_id HF_REPO --wallet.name WALLET --wallet.hotkey HOTKEY --chat_template MODEL_CHAT_TEMPLATE --model_dir PATH_TO_MODEL
wandb
(ดูด้านล่าง) ก่อนที่จะเรียกใช้เครื่องมือตรวจสอบของคุณ ขอแนะนำให้ตั้งค่า Weights & Biases ( wandb
) วัตถุประสงค์ของ wandb
คือเพื่อติดตามตัวชี้วัดที่สำคัญระหว่างเครื่องมือตรวจสอบความถูกต้องไปยังหน้าที่เข้าถึงได้แบบสาธารณะ ที่นี่. เรา ขอแนะนำให้ ผู้ตรวจสอบความถูกต้องใช้ wandb เนื่องจากจะช่วยให้นักพัฒนาเครือข่ายย่อยและนักขุดสามารถวินิจฉัยปัญหาได้รวดเร็วและมีประสิทธิภาพยิ่งขึ้น เช่น ในกรณีที่ต้องตั้งค่าตัวตรวจสอบน้ำหนักที่ผิดปกติ บันทึก Wandb จะถูกรวบรวมตามค่าเริ่มต้น และดำเนินการในลักษณะที่ไม่ระบุชื่อ แต่เราขอแนะนำให้ตั้งค่าบัญชีเพื่อให้ง่ายต่อการแยกความแตกต่างระหว่างเครื่องมือตรวจสอบความถูกต้องเมื่อค้นหาการเรียกใช้บนแดชบอร์ดของเรา หากคุณ ไม่ ต้องการเรียกใช้ WandB คุณสามารถทำได้โดยไม่ต้องระบุแฟล็ก --wandb-key
เมื่อเรียกใช้เครื่องมือตรวจสอบของคุณ
ก่อนที่จะเริ่มต้น ดังที่ได้กล่าวไว้ก่อนหน้านี้ คุณจะต้องลงทะเบียนบัญชี wandb
ก่อน จากนั้นจึงตั้งค่าคีย์ API บนระบบของคุณ คำแนะนำทีละขั้นตอนเกี่ยวกับวิธีการทำเช่นนี้บน Ubuntu:
ก่อนเข้าสู่ระบบ ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งแพ็คเกจ wandb
Python แล้ว หากคุณยังไม่ได้ติดตั้ง คุณสามารถทำได้โดยใช้ pip:
# Should already be installed with the repo
pip install wandb
หากต้องการกำหนดค่าคีย์ WANDB API บนเครื่อง Ubuntu ให้ทำตามขั้นตอนเหล่านี้:
เข้าสู่ระบบ WANDB : รันคำสั่งต่อไปนี้ในเทอร์มินัล:
wandb login
ป้อนคีย์ API ของคุณ : เมื่อได้รับแจ้ง ให้วางคีย์ API ที่คุณคัดลอกมาจากการตั้งค่าบัญชี WANDB ของคุณ
Enter
การตรวจสอบการเข้าสู่ระบบ : เพื่อตรวจสอบว่าคีย์ API ได้รับการตั้งค่าอย่างถูกต้อง คุณสามารถเริ่มสคริปต์ทดสอบขนาดเล็กใน Python ที่ใช้ WANDB ได้ หากทุกอย่างถูกต้อง สคริปต์ควรทำงานโดยไม่มีข้อผิดพลาดในการตรวจสอบสิทธิ์
การตั้งค่าตัวแปรสภาพแวดล้อมของคีย์ API (ไม่บังคับ) : หากคุณไม่ต้องการเข้าสู่ระบบทุกครั้ง คุณสามารถตั้งค่าคีย์ API ของคุณเป็นตัวแปรสภาพแวดล้อมในไฟล์ ~/.bashrc
หรือ ~/.bash_profile
ของคุณ:
echo ' export WANDB_API_KEY=your_api_key ' >> ~ /.bashrc
source ~ /.bashrc
แทนที่ your_api_key
ด้วยคีย์ API จริง วิธีนี้จะตรวจสอบสิทธิ์คุณโดยอัตโนมัติด้วย wandb ทุกครั้งที่คุณเปิดเซสชันเทอร์มินัลใหม่
ในการเริ่มต้น ให้โคลนพื้นที่เก็บข้อมูลและ cd
ไปที่:
git clone https://github.com/impel-intelligence/dippy-bittensor-subnet.git
cd dippy-bittensor-subnet
pip install -e .
หากต้องการรันการประเมิน เพียงใช้คำสั่งต่อไปนี้:
python neurons/validator.py --wallet.name WALLET_NAME --wallet.hotkey WALLET_HOT_NAME --wandb-key WANDBKEY
หากต้องการเรียกใช้เครื่องมือตรวจสอบการอัปเดตอัตโนมัติด้วย PM2 (แนะนำ):
pm2 start --name sn11-vali-updater --interpreter python scripts/start_validator.py -- --pm2_name sn11-vali --wallet.name WALLET_NAME --wallet.hotkey WALLET_HOT_NAME [other vali flags]
โปรดทราบว่าเครื่องมือตรวจสอบนี้จะเรียกใช้บริการตรวจสอบโมเดลที่โฮสต์โดยเจ้าของซับเน็ต Dippy หากคุณต้องการใช้บริการตรวจสอบโมเดลภายในเครื่อง โปรดปฏิบัติตามคำแนะนำด้านล่าง
หมายเหตุ : ขณะนี้ (17 มิถุนายน 2024) มีปัญหาบางอย่างกับ API การประเมินในเครื่อง เราขอแนะนำให้ใช้ API การตรวจสอบระยะไกลเป็นการชั่วคราว
การเริ่มต้นเครื่องมือตรวจสอบความถูกต้องโดยใช้ API เครื่องมือตรวจสอบในเครื่องของคุณ จำเป็นต้องเริ่มต้นเครื่องมือตรวจสอบความถูกต้องด้วยแฟล็ก --use-local-validation-api
นอกจากนี้ จำเป็นต้องมีคิวโมเดลเพื่อส่งโมเดลไปยัง API การตรวจสอบความถูกต้อง
หมายเหตุ : จำเป็นต้องติดตั้ง Validator API ใน venv ที่แตกต่างจากตัวตรวจสอบความถูกต้องเนื่องจากความขัดแย้งของเวอร์ชัน pydantic
ติดตั้ง Git Lfs หากไม่ได้ติดตั้ง
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
หากคุณใช้งานบน runpod คุณอาจต้องติดตั้ง 'netstat' ด้วย
apt-get install net-tools
ในการเริ่มต้น ให้โคลนพื้นที่เก็บข้อมูลและ cd
ลงไป:
git clone https://github.com/impel-intelligence/dippy-bittensor-subnet.git
cd dippy-bittensor-subnet
python3 -m venv model_validation_venv
source model_validation_venv/bin/activate
model_validation_venv/bin/pip install -e . --no-deps
model_validation_venv/bin/pip install -r requirements_val_api.txt
(หมายเหตุ: ขณะนี้มีการเปลี่ยนแปลงที่สำคัญซึ่งก่อให้เกิดความท้าทายในการเรียกใช้บริการ API การตรวจสอบความถูกต้องในเครื่อง งานใดๆ ที่ต้องใช้ env vars ADMIN_KEY
หรือ DIPPY_KEY
จะมีผลใช้ที่นี่)
cd dippy_validation_api
chmod +x start_validation_service.sh
./start_validation_service.sh
python3 test_api.py
และคุณควรเห็น json แสดงว่าสถานะของโมเดลเป็น "QUEUED" เมื่อรันคำสั่งเดิมอีกครั้งเพื่อความมีสติ คุณควรเห็นสถานะของโมเดลเป็น "RUNNING"
chmod +x kill_validation_api.sh
./kill_validation_api.sh
# Make a separate venv for the validator because of pydantic version conflict
python -m venv validator_venv
validator_venv/bin/pip install -e .
validator_venv/bin/python neurons/validator.py --wallet.name WALLET_NAME --wallet.hotkey WALLET_HOT_NAME --use-local-validation-api
# Run model queue to push models to validation api to be evaluated
validator_venv/bin/python neurons/model_queue.py --use-local-validation-api
รุ่นเล็กจะได้คะแนนสูงกว่ารุ่นใหญ่ ขนาดโมเดลคือพื้นที่ดิสก์ที่ repo โมเดลจาก HF ครอบครอง ขนาดโมเดลสูงสุดจำกัดอยู่ที่ 72GB
โมเดลที่เร็วกว่าจะได้คะแนนสูงกว่าโมเดลที่ช้า
เมื่อประเมินโดยเทียบกับชุดข้อมูล แบบจำลองที่สร้างการตอบสนองที่คล้ายคลึงกันต่อความจริงจะมีคะแนนสูงกว่า
แบบจำลองที่สามารถสร้างเอาต์พุตที่มีความยาวใกล้เคียงกับอินพุตจะได้คะแนนสูงกว่า
codebase ของเราสร้างขึ้นบนซับเน็ตของ Nous Research และ MyShell
ซับเน็ต Dippy Bittensor ได้รับการเผยแพร่ภายใต้ใบอนุญาต MIT