Cog adalah alat sumber terbuka yang memungkinkan Anda mengemas model pembelajaran mesin dalam wadah standar yang siap produksi.
Anda dapat menyebarkan model paket Anda ke infrastruktur Anda sendiri, atau ke Replikasi.
Kontainer Docker tanpa rasa sakit. Menulis Dockerfile
Anda sendiri bisa menjadi proses yang membingungkan. Dengan Cog, Anda mendefinisikan lingkungan Anda dengan file konfigurasi sederhana dan menghasilkan image Docker dengan semua praktik terbaik: image dasar Nvidia, cache dependensi yang efisien, menginstal versi Python tertentu, default variabel lingkungan yang masuk akal, dan sebagainya.
Tidak ada lagi CUDA neraka. Cog mengetahui kombo CUDA/cuDNN/PyTorch/Tensorflow/Python mana yang kompatibel dan akan mengatur semuanya dengan benar untuk Anda.
Tentukan masukan dan keluaran untuk model Anda dengan Python standar. Kemudian, Cog membuat skema OpenAPI dan memvalidasi input dan output dengan Pydantic.
Server prediksi HTTP otomatis : Tipe model Anda digunakan untuk menghasilkan API HTTP RESTful secara dinamis menggunakan FastAPI.
Pekerja antrian otomatis. Model pembelajaran mendalam atau pemrosesan batch yang berjalan lama paling baik dirancang dengan antrean. Model roda gigi melakukan hal ini secara out of the box. Redis saat ini didukung, dan masih banyak lagi yang sedang dikembangkan.
Penyimpanan awan. File dapat dibaca dan ditulis langsung ke Amazon S3 dan Google Cloud Storage. (Segera hadir.)
Siap untuk produksi. Terapkan model Anda di mana pun image Docker dijalankan. Infrastruktur Anda sendiri, atau Replikasi.
Tentukan lingkungan Docker yang dijalankan model Anda dengan cog.yaml
:
build: gpu: true system_packages: - "libgl1-mesa-glx" - "libglib2.0-0" python_version: "3.12" python_packages: - "torch==2.3"prediksi: "predict.py:Predictor"
Tentukan bagaimana prediksi dijalankan pada model Anda predict.py
:
dari cog import BasePredictor, Input, Pathimport torchclass Predictor(BasePredictor): def setup(self): """Muat model ke dalam memori agar menjalankan beberapa prediksi menjadi efisien""" self.model = torch.load("./weights. pth") # Argumen dan tipe yang diambil model sebagai masukan defprediksi(diri, gambar: Jalur = Input(description="Grayscale input image") ) -> Jalur: """Jalankan prediksi tunggal pada model"""processed_image = preprocess(image) output = self.model(processed_image) return postprocess(output)
Sekarang, Anda dapat menjalankan prediksi pada model ini:
$ cog prediksi -i [email protected]> Membangun image Docker...--> Menjalankan Prediksi...--> Output ditulis ke output.jpg
Atau, buat image Docker untuk penerapan:
$ cog build -t my-colorization-model--> Membangun image Docker...--> Membuat my-colorization-model:latest$ docker run -d -p 5000:5000 --gpus all my-colorization-model$ curl http://localhost:5000/predictions -X POST -H 'Jenis Konten: application/json' -d '{"input": {"image": "https://.../input.jpg"}}'
Sangat sulit bagi peneliti untuk mengirimkan model pembelajaran mesin ke produksi.
Salah satu solusinya adalah Docker, tetapi cara membuatnya berfungsi sangat rumit: Dockerfiles, pra-/pasca-pemrosesan, server Flask, versi CUDA. Lebih sering daripada tidak, peneliti harus duduk bersama seorang insinyur untuk menerapkannya.
Andreas dan Ben menciptakan Cog. Andreas pernah bekerja di Spotify, tempat dia membuat alat untuk membuat dan menerapkan model ML dengan Docker. Ben bekerja di Docker, tempat dia membuat Docker Compose.
Kami menyadari bahwa, selain Spotify, perusahaan lain juga menggunakan Docker untuk membangun dan menerapkan model pembelajaran mesin. Uber dan lainnya telah membangun sistem serupa. Jadi, kami membuat versi open source sehingga orang lain juga bisa melakukannya.
Hubungi kami jika Anda tertarik menggunakannya atau ingin berkolaborasi dengan kami. Kami ada di Discord atau kirim email kepada kami di [email protected].
macOS, Linux atau Windows 11 . Cog berfungsi di macOS, Linux dan Windows 11 dengan WSL 2
buruh pelabuhan . Cog menggunakan Docker untuk membuat wadah untuk model Anda. Anda harus menginstal Docker sebelum dapat menjalankan Cog. Jika Anda menginstal Docker Engine dan bukan Docker Desktop, Anda juga perlu menginstal Buildx.
Jika Anda menggunakan macOS, Anda dapat menginstal Cog menggunakan Homebrew:
roda gigi pemasangan minuman
Anda juga dapat mengunduh dan menginstal rilis terbaru menggunakan skrip instalasi kami:
# fish shellsh (curl -fsSL https://cog.run/install.sh | psub)# bash, zsh, dan shellssh lainnya <(curl -fsSL https://cog.run/install.sh)# unduh dengan wget dan jalankan dalam perintah terpisahwget -qO- https://cog.run/install.sh sh ./install.sh
Anda dapat menginstal rilis terbaru Cog secara manual langsung dari GitHub dengan menjalankan perintah berikut di terminal:
sudo curl -o /usr/local/bin/cog -L "https://github.com/replication/cog/releases/latest/download/cog_$(uname -s)_$(uname -m)"sudo chmod +x /usr/local/bin/roda gigi
Alternatifnya, Anda dapat membuat Cog dari sumber dan menginstalnya dengan perintah berikut:
makesudo membuat instalasi
Atau jika Anda menggunakan buruh pelabuhan:
RUN sh -c "INSTALL_DIR="/usr/local/bin" SUDO="" $(curl -fsSL https://cog.run/install.sh)"
Jika Anda menggunakan macOS dan sebelumnya Anda menginstal Cog dengan Homebrew, jalankan perintah berikut:
membuat roda gigi peningkatan
Jika tidak, Anda dapat meningkatkan ke versi terbaru dengan menjalankan perintah yang sama dengan yang Anda gunakan untuk menginstalnya.
Mulailah dengan contoh model
Mulailah dengan model Anda sendiri
Menggunakan Cog dengan buku catatan
Menggunakan Cog dengan Windows 11
Lihatlah beberapa contoh penggunaan Cog
Terapkan model dengan Cog
referensi cog.yaml
untuk mempelajari cara menentukan lingkungan model Anda
Referensi antarmuka prediksi untuk mempelajari cara kerja antarmuka Predictor
Referensi antarmuka pelatihan untuk mempelajari cara menambahkan API penyesuaian ke model Anda
Referensi HTTP API untuk mempelajari cara menggunakan HTTP API yang dilayani model
Bergabunglah dengan kami di #roda di Discord.