แพลตฟอร์ม AI กำเนิด p2p
มีคอมพิวเตอร์ส่วนบุคคลและโฮมแล็บมากมายที่มีการประมวลผลจำนวนมากที่ไม่ได้ใช้งาน โครงการนี้มีจุดมุ่งหมายเพื่อสร้างตลาดสำหรับผู้ที่มีคอมพิวเตอร์สำรองและผู้ที่มีความต้องการด้านคอมพิวเตอร์ โปรดทราบว่านี่ไม่ใช่ตลาดการเงิน แต่มีวัตถุประสงค์เพื่อเป็นสินค้าสาธารณะ หากใครๆ ก็สามารถคาดเดาได้ แต่ฉันจะบริจาคคอมพิวเตอร์ทุกเครื่องที่สามารถทำได้ในระหว่างนี้ทันทีที่สิ่งนี้เริ่มต้นขึ้น
สร้างสภาพแวดล้อมเสมือนจริง:
$ python -m venv env
คุณอาจต้องแทนที่ python
ในคำสั่งด้านบนด้วย python3
ทั้งนี้ขึ้นอยู่กับสภาพแวดล้อมของคุณ
สำหรับการแจกแจงแบบ Debian คุณอาจต้องติดตั้ง venv เพิ่มเติมก่อน หากยังไม่ได้ติดตั้ง:
apt install python3.12-venv
เปิดใช้งานสภาพแวดล้อมเสมือนจริง:
source env/bin/activate
. e nv S cripts a ctivate
หากคำสั่งนี้ใช้ไม่ได้ (เช่น Activate.ps1 cannot be loaded because running scripts is disabled on this system
) คุณอาจต้องเรียกใช้คำสั่งต่อไปนี้ในเซสชันผู้ดูแลระบบ PowerShell:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
คุณอาจขาดการพึ่งพา CMAKE บางอย่าง
บน Debian คุณสามารถเรียกใช้สิ่งต่อไปนี้ได้
sudo apt-get install build-essential cmake
สิ่งที่ต้องทำ: คำแนะนำสำหรับระบบปฏิบัติการทั่วไปอื่นๆ
จากนั้นให้รัน:
pip install -r requirements.txt
หากคุณต้องการใช้ GPU ของคุณด้วย (แทนที่จะใช้เพียง CPU) ให้ทำตามคำแนะนำเฉพาะแพลตฟอร์มเหล่านี้
นี่คือทรัพยากรที่ฉันใช้เพื่อให้สิ่งต่าง ๆ ทำงานได้ในที่สุด: https://medium.com/@piyushbatra1999/installing-llama-cpp-python-with-nvidia-gpu-acceleration-on-windows-a-short-guide-0dfac475002d
สรุป:
ข้อกำหนดเบื้องต้น
ขั้นตอนต่อไปจะต้องดำเนินการในสภาพแวดล้อมเสมือนเดียวกันกับที่คุณตั้งค่าไว้ด้านบน คุณจะเห็นบางอย่างเช่น (env) ที่ด้านล่างซ้ายในเทอร์มินัลของคุณ (อาจไม่เป็นจริงในทุกแพลตฟอร์มในเทอร์มินัลทั้งหมด)
สิ่งนี้จะแทนที่ llama-cpp-python ที่คุณติดตั้งผ่าน pip install -r requirements.txt
และจะสั่งให้ใช้ cuBLAS
หากคุณใช้พรอมต์คำสั่ง
set CMAKE_ARGS=-DLLAMA_CUBLAS=on
set FORCE_CMAKE=1
pip install llama-cpp-python --force-reinstall --upgrade --no-cache-dir --verbose
หากคุณใช้ Powershell
$env:CMAKE_ARGS = "-DLLAMA_CUBLAS=on"
$env:FORCE_CMAKE=1
pip install llama-cpp-python --force-reinstall --upgrade --no-cache-dir --verbose
เมื่อคุณเรียกใช้ server.py
ถัดไป คุณจะเห็น BLAS = 1
ในกลุ่มบรรทัดที่มีลักษณะดังนี้:
AVX = 1 | AVX_VNNI = 0 | AVX2 = 1 | AVX512 = 0 | AVX512_VBMI = 0 | AVX512_VNNI = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 1 | SSSE3 = 0 | VSX = 0 |
สิ่งนี้บ่งชี้ว่า server.py
สามารถเข้าถึงทรัพยากร GPU ของคุณได้อย่างถูกต้อง
llama_cpp_python เริ่มต้นได้ดังนี้:
llm = Llama (
model_path = model_path ,
n_gpu_layers = - 1 ,
n_ctx = 8192 ,
chat_format = "llama-3"
)
n_gpu_layers
สั่งให้ llama ใช้ทรัพยากร GPU ของคุณให้ได้มากที่สุด
สิ่งที่ต้องทำ
สิ่งที่ต้องทำ
คุณจะต้องมีวิธีในการสลับระหว่างแท็บเทอร์มินัล (เช่น แท็บเทอร์มินัล tmux, VS Code)
เปิดตัวรีเลย์ซึ่งทำงานบน http://localhost:5000:
python relay.py
จากนั้นในแท็บเทอร์มินัลแยกต่างหาก ให้เปิดเซิร์ฟเวอร์ซึ่งทำงานบน http://localhost:3000:
python server.py
หมายเหตุ: เมื่อเปิดตัวครั้งแรก หรือหากไม่มีไฟล์โมเดล (ปัจจุบันมีเพียง Llama 7B Chat GGUF โดย TheBloke) สคริปต์จะดาวน์โหลดโมเดล (ประมาณ 4GB) และจะบันทึกไว้ในไดเร็กทอรี models/
ในไดเร็กทอรีโครงการของคุณภายใต้ ชื่อไฟล์เดียวกัน สิ่งนี้จะถูกควบคุมโดยการโต้ตอบของผู้ใช้ในอนาคต เพื่อป้องกันการดาวน์โหลดไฟล์ขนาดใหญ่โดยไม่ได้รับความยินยอมจากผู้ใช้ ในที่สุดคุณก็จะเรียกดูโมเดลและเลือกโมเดลจากรายการ
relay.py
ทำหน้าที่เป็นพร็อกซีระหว่างไคลเอนต์ (รวมถึงแต่ไม่จำกัดเพียง client.py
ของ repo นี้) และ server.py
ซึ่งทำให้ IP สาธารณะของกันและกันสับสนจากกันและกัน แก้ปัญหาข้อ จำกัด ใหญ่ประการหนึ่งของเครือข่าย P2P (เช่น .ทอร์เรนต์) ในเวอร์ชันต่อๆ ไป relay.py
จะไม่เห็นเนื้อหาของการสนทนาระหว่างเซิร์ฟเวอร์และไคลเอนต์ด้วยการเข้ารหัสจากต้นทางถึงปลายทาง ใครๆ ก็สามารถแยกโปรเจ็กต์นี้และรันรีเลย์ของคุณเองได้ ซึ่งมีการประมวลผลจาก server.py
ต่างๆ ที่ทำงานบนฮาร์ดแวร์ผู้บริโภคต่างๆ
คุณสามารถทดสอบสิ่งต่าง ๆ ได้โดยใช้ไคลเอนต์บรรทัดคำสั่งอย่างง่าย client.py
:
python client.py
พิมพ์ข้อความของคุณเมื่อได้รับพร้อมท์แล้วกด Enter ทั้งหมดนี้เกิดขึ้นบนฮาร์ดแวร์ในเครื่องของคุณแล้ว ต้องขอบคุณ llama_cpp_python
ซึ่งเป็นการเชื่อมโยง llama.cpp
หากต้องการออก ให้กด Ctrl+C/Cmd+C
หรือคุณสามารถไปที่ http://localhost:5000 ในเบราว์เซอร์ของคุณ
สิ่งที่ต้องทำ