Cog เป็นเครื่องมือโอเพ่นซอร์สที่ช่วยให้คุณจัดแพคเกจโมเดล Machine Learning ไว้ในคอนเทนเนอร์มาตรฐานที่พร้อมใช้งานจริง
คุณสามารถปรับใช้โมเดลแพ็กเกจของคุณกับโครงสร้างพื้นฐานของคุณเองหรือเพื่อจำลองแบบก็ได้
คอนเทนเนอร์นักเทียบท่าโดยไม่มีความเจ็บปวด การเขียน Dockerfile
ของคุณเองอาจเป็นกระบวนการที่น่าสับสน ด้วย Cog คุณจะกำหนดสภาพแวดล้อมของคุณด้วยไฟล์การกำหนดค่าง่ายๆ และสร้างอิมเมจ Docker พร้อมแนวทางปฏิบัติที่ดีที่สุดทั้งหมด: อิมเมจพื้นฐานของ Nvidia, การแคชการขึ้นต่อกันที่มีประสิทธิภาพ, การติดตั้งเวอร์ชัน Python เฉพาะ, ค่าเริ่มต้นของตัวแปรสภาพแวดล้อมที่สมเหตุสมผล และอื่นๆ
ไม่มีนรก CUDA อีกต่อไป Cog รู้ว่าคอมโบ CUDA/cuDNN/PyTorch/Tensorflow/Python ใดที่เข้ากันได้ และจะตั้งค่าทั้งหมดอย่างถูกต้องสำหรับคุณ
กำหนดอินพุตและเอาต์พุตสำหรับโมเดลของคุณด้วย Python มาตรฐาน จากนั้น Cog จะสร้างสคีมา OpenAPI และตรวจสอบอินพุตและเอาต์พุตด้วย Pydantic
เซิร์ฟเวอร์การทำนาย HTTP อัตโนมัติ : ประเภทของโมเดลของคุณใช้เพื่อสร้าง RESTful HTTP API แบบไดนามิกโดยใช้ FastAPI
พนักงานจัดคิวอัตโนมัติ โมเดลการเรียนรู้เชิงลึกหรือการประมวลผลแบบแบตช์ที่ใช้งานมายาวนานได้รับการออกแบบทางสถาปัตยกรรมที่ดีที่สุดพร้อมกับคิว โมเดลฟันเฟืองทำสิ่งนี้ตั้งแต่แกะกล่อง ปัจจุบันรองรับ Redis แล้ว และยังมีอีกหลายอย่างที่อยู่ในขั้นตอนการพัฒนา
ที่เก็บข้อมูลบนคลาวด์ สามารถอ่านและเขียนไฟล์ไปยัง Amazon S3 และ Google Cloud Storage ได้โดยตรง (เร็วๆ นี้.)
พร้อมสำหรับการผลิต ปรับใช้โมเดลของคุณทุกที่ที่อิมเมจ Docker ทำงาน โครงสร้างพื้นฐานของคุณเองหรือจำลองแบบ
กำหนดสภาพแวดล้อม Docker ที่โมเดลของคุณทำงานด้วย cog.yaml
:
สร้าง: gpu: จริง system_packages: - "libgl1-เมซ่า-glx" - "libglib2.0-0" python_version: "3.12" python_packages: - "torch==2.3"ทำนาย: "predict.py:Predictor"
กำหนดวิธีการดำเนินการคาดการณ์กับโมเดลของคุณด้วย predict.py
:
จากการนำเข้าฟันเฟือง BasePredictor, Input, Pathimport torchclass Predictor(BasePredictor): การตั้งค่า def(self): """โหลดโมเดลลงในหน่วยความจำเพื่อให้การรันการคาดการณ์หลายรายการมีประสิทธิภาพ""" self.model = torch.load("./weights. pth") # อาร์กิวเมนต์และประเภทที่โมเดลใช้เป็นอินพุต def ทำนาย(self, image: Path = Input(description="Grayscale input image") ) -> เส้นทาง: """เรียกใช้การคาดการณ์เพียงครั้งเดียวในโมเดล"""processed_image = preprocess(image) output = self.model(processed_image) return postprocess(output)
ตอนนี้คุณสามารถเรียกใช้การคาดการณ์กับโมเดลนี้ได้:
$ cog ทำนาย -i [email protected]> การสร้างอิมเมจ Docker...--> กำลังรันการคาดการณ์...--> เอาต์พุตเขียนไปยัง output.jpg
หรือสร้างอิมเมจ Docker สำหรับการปรับใช้:
$ cog build -t my-colorization-model--> การสร้างอิมเมจ Docker...--> สร้าง my-colorization-model:latest$ docker run -d -p 5000:5000 --gpus all my-colorization-model$ curl http://localhost:5000/predictions -X POST -H 'ประเภทเนื้อหา: application/json' -d '{"input": {"image": "https://.../input. jpg"}}'
เป็นเรื่องยากสำหรับนักวิจัยที่จะจัดส่งโมเดลการเรียนรู้ของเครื่องไปยังการผลิต
ส่วนหนึ่งของโซลูชันคือ Docker แต่การทำให้ใช้งานได้นั้นซับซ้อนมาก: Dockerfiles, การประมวลผลล่วงหน้า/หลัง, เซิร์ฟเวอร์ Flask, เวอร์ชัน CUDA บ่อยครั้งที่นักวิจัยต้องนั่งคุยกับวิศวกรเพื่อนำสิ่งเลวร้ายไปใช้งาน
Andreas และ Ben ได้สร้าง Cog Andreas เคยทำงานที่ Spotify ซึ่งเขาได้สร้างเครื่องมือสำหรับการสร้างและปรับใช้โมเดล ML ด้วย Docker เบ็นทำงานที่ Docker ซึ่งเขาได้สร้าง Docker Compose
เราตระหนักว่านอกเหนือจาก Spotify แล้ว บริษัทอื่นๆ ยังใช้ Docker เพื่อสร้างและปรับใช้โมเดลการเรียนรู้ของเครื่องอีกด้วย Uber และบริษัทอื่นๆ ได้สร้างระบบที่คล้ายกัน ดังนั้นเราจึงสร้างเวอร์ชันโอเพ่นซอร์สเพื่อให้ผู้อื่นสามารถทำสิ่งนี้ได้เช่นกัน
ติดต่อเราหากคุณสนใจที่จะใช้หรือต้องการร่วมงานกับเรา เรากำลังอยู่ใน Discord หรือส่งอีเมลถึงเราที่ [email protected]
macOS, Linux หรือ Windows 11 Cog ทำงานบน macOS, Linux และ Windows 11 พร้อม WSL 2
นักเทียบท่า Cog ใช้ Docker เพื่อสร้างคอนเทนเนอร์สำหรับโมเดลของคุณ คุณจะต้องติดตั้ง Docker ก่อนจึงจะสามารถเรียกใช้ Cog ได้ หากคุณติดตั้ง Docker Engine แทน Docker Desktop คุณจะต้องติดตั้ง Buildx ด้วย
หากคุณใช้ macOS คุณสามารถติดตั้ง Cog โดยใช้ Homebrew ได้:
ชงติดตั้งฟันเฟือง
คุณยังสามารถดาวน์โหลดและติดตั้งรุ่นล่าสุดได้โดยใช้สคริปต์การติดตั้งของเรา:
# fish shellsh (curl -fsSL https://cog.run/install.sh | psub)# bash, zsh และ shellssh อื่น ๆ <(curl -fsSL https://cog.run/install.sh)# ดาวน์โหลดด้วย wget และรันในคำสั่งแยกต่างหากwget -qO- https://cog.run/install.sh ช ./install.sh
คุณสามารถติดตั้ง Cog รุ่นล่าสุดได้ด้วยตนเองโดยตรงจาก GitHub โดยการรันคำสั่งต่อไปนี้ในเทอร์มินัล:
sudo curl -o /usr/local/bin/cog -L "https://github.com/replicate/cog/releases/latest/download/cog_$(uname -s)_$(uname -m)"sudo chmod +x /usr/local/bin/cog
หรือคุณสามารถสร้าง Cog จากแหล่งที่มาและติดตั้งด้วยคำสั่งเหล่านี้:
makesudo ทำการติดตั้ง
หรือถ้าคุณอยู่บนนักเทียบท่า:
RUN sh -c "INSTALL_DIR="/usr/local/bin" SUDO="" $(curl -fsSL https://cog.run/install.sh)"
หากคุณใช้ macOS และเคยติดตั้ง Cog ด้วย Homebrew ให้ดำเนินการดังต่อไปนี้:
ชงอัพเกรดฟันเฟือง
มิฉะนั้น คุณสามารถอัปเกรดเป็นเวอร์ชันล่าสุดได้โดยการรันคำสั่งเดียวกับที่คุณใช้ในการติดตั้ง
เริ่มต้นด้วยโมเดลตัวอย่าง
เริ่มต้นด้วยโมเดลของคุณเอง
การใช้ Cog กับโน้ตบุ๊ก
การใช้ Cog กับ Windows 11
ดูตัวอย่างการใช้ Cog
ปรับใช้โมเดลด้วย Cog
การอ้างอิง cog.yaml
เพื่อเรียนรู้วิธีกำหนดสภาพแวดล้อมของโมเดลของคุณ
การอ้างอิงอินเทอร์เฟซการทำนายเพื่อเรียนรู้วิธีการทำงานของอินเทอร์เฟซ Predictor
การอ้างอิงอินเทอร์เฟซการฝึกอบรมเพื่อเรียนรู้วิธีเพิ่ม API การปรับแต่งให้กับโมเดลของคุณ
การอ้างอิง HTTP API เพื่อเรียนรู้วิธีใช้ HTTP API ที่โมเดลต่างๆ ให้บริการ
เข้าร่วมกับเราใน #cog บน Discord