Deploying Data Science Tools: Part 1
🇬🇧 English
If a data science tool sits only on your laptop, its value is limited to your time and your ability to explain its outputs. A deployed tool lets business partners, customers and co-workers use its predictions and recommendations directly, without you in the middle.
This multi-part series walks through the path from source code on a laptop to full CI/CD deployment of an optimization tool. This first article tackles the classic 'it works on my computer, but not yours' problem. It covers cloning code from GitHub, Python virtual environments, Docker and containerization, and introduces the example tool being deployed.
The example is the Cutting Stock Planner, which solves the stock cutting problem. Using linear programming and a simple FastAPI-based UI, it produces an optimal cut plan that minimizes the number of stock pieces you need to buy. For instance, if you need to make a chair from 8-foot stock with several required cut lengths, you enter the stock length and cut list, click Create Cut Plan, and receive an optimal layout on screen.
The simplest way to share the tool is to distribute its code through version control on GitHub. Users can clone the repository, navigate to its base directory, and run a uvicorn command to launch the UI locally. This works well for collaborative development, but as a deployment method it has significant drawbacks. Most of the deployment responsibility and difficulty falls on the user, who needs Git installed, must clone the repository, and must set up the environment correctly before the tool will run.
🇸🇦 العربية
نشر أدوات علم البيانات: الجزء 1
إذا كانت أداة علم البيانات موجودة على حاسوبك المحمول فقط، فإن قيمتها تقتصر على وقتك وقدرتك على شرح مخرجاتها للآخرين. أما الأداة المنشورة فتتيح لشركائك في العمل وعملائك وزملائك استخدام توقعاتها وتوصياتها مباشرةً، دون الحاجة إلى وجودك كوسيط.
تتناول هذه السلسلة متعددة الأجزاء الطريق من الشيفرة المصدرية على الحاسوب المحمول وصولاً إلى النشر الكامل لأداة تحسين عبر CI/CD. يتناول هذا المقال الأول المشكلة الكلاسيكية "إنها تعمل على حاسوبي لكنها لا تعمل على حاسوبك". ويغطي استنساخ الشيفرة من GitHub، وبيئات Python الافتراضية، وDocker والحاويات، ويقدم الأداة التطبيقية التي سيجري نشرها.
المثال المستخدم هو Cutting Stock Planner، وهو أداة لحل مشكلة قطع المخزون. باستخدام البرمجة الخطية وواجهة مستخدم بسيطة قائمة على FastAPI، تنتج الأداة خطة قطع مثلى تقلل عدد قطع المخزون التي تحتاج إلى شرائها. على سبيل المثال، إذا أردت صنع كرسي من مواد مخزون طولها 8 أقدام مع أطوال قطع مطلوبة متعددة، تُدخل طول المخزون وقائمة القطع، وتنقر على Create Cut Plan، فتحصل على مخطط قطع مثالي على الشاشة.
أبسط طريقة لمشاركة الأداة هي توزيع شيفرتها عبر التحكم في الإصدارات على GitHub. يمكن للمستخدمين استنساخ المستودع والانتقال إلى مجلده الأساسي وتشغيل أمر uvicorn لتشغيل الواجهة محلياً. يعمل هذا الأسلوب جيداً للتطوير التعاوني، لكنه كطريقة نشر له عيوب كبيرة. فمعظم مسؤولية النشر وصعوبته تقع على عاتق المستخدم، الذي يجب أن يثبت Git، وأن يستنسخ المستودع، وأن يهيئ البيئة بشكل صحيح قبل أن تعمل الأداة.
لماذا تُعد مشاركة الشيفرة المصدرية عبر GitHub طريقة محدودة لنشر أداة علم بيانات؟
تضع مشاركة الشيفرة عبر GitHub معظم أعباء النشر على المستخدم، الذي يجب أن يثبت Git ويستنسخ المستودع ويهيئ البيئة. وبدون الحاويات أو بيئة مُدارة، قد لا تعمل الأداة بشكل متسق على الأجهزة المختلفة.
🇧🇩 বাংলা
ডেটা সায়েন্স টুলস স্থাপন: পর্ব ১
যদি কোনো ডেটা সায়েন্স টুল শুধু আপনার ল্যাপটপে থাকে, তবে এর মূল্য আপনার সময় এবং এর ফলাফল ব্যাখ্যা করার সামর্থ্যের মধ্যেই সীমাবদ্ধ। একটি স্থাপিত টুল ব্যবসায়িক অংশীদার, গ্রাহক ও সহকর্মীদের এর পূর্বাভাস ও সুপারিশ সরাসরি ব্যবহার করতে দেয়, আপনাকে মাঝখানে না রেখেই।
এই বহু-পর্বের সিরিজটি একটি ল্যাপটপের সোর্স কোড থেকে একটি অপ্টিমাইজেশন টুলের সম্পূর্ণ CI/CD স্থাপন পর্যন্ত পথ ধরে এগিয়েছে। এই প্রথম নিবন্ধটি ক্লাসিক "এটি আমার কম্পিউটারে চলে, কিন্তু তোমারটায় চলে না" সমস্যাটির সমাধান নিয়ে আলোচনা করে। এতে GitHub থেকে কোড ক্লোন করা, Python ভার্চুয়াল এনভায়রনমেন্ট, Docker ও কনটেইনারাইজেশন অন্তর্ভুক্ত এবং স্থাপন করা হবে এমন উদাহরণ টুলের পরিচয় দেওয়া হয়েছে।
উদাহরণটি হলো Cutting Stock Planner, যা স্টক কাটিং সমস্যার সমাধান করে। রৈখিক প্রোগ্রামিং এবং একটি সহজ FastAPI-ভিত্তিক UI ব্যবহার করে, এটি একটি সর্বোত্তম কাট পরিকল্পনা তৈরি করে যা আপনাকে কেনা স্টক টুকরোর সংখ্যা কমিয়ে আনে। উদাহরণস্বরূপ, আপনি যদি 8 ফুট স্টক থেকে একাধিক প্রয়োজনীয় কাট দৈর্ঘ্যসহ একটি চেয়ার বানাতে চান, তবে স্টকের দৈর্ঘ্য ও কাটের তালিকা দিয়ে Create Cut Plan বোতামে ক্লিক করলে পর্দায় একটি সর্বোত্তম লেআউট পাবেন।
টুলটি ভাগ করে নেওয়ার সবচেয়ে সহজ উপায় হলো GitHub-এ ভার্সন কন্ট্রোলের মাধ্যমে এর কোড বিতরণ করা। ব্যবহারকারীরা রিপোজিটরি ক্লোন করতে পারেন, এর বেস ডিরেক্টরিতে যেতে পারেন এবং স্থানীয়ভাবে UI চালু করতে uvicorn কমান্ড চালাতে পারেন। সহযোগিতামূলক উন্নয়নের জন্য এটি ভালো কাজ করে, কিন্তু স্থাপনের পদ্ধতি হিসেবে এর উল্লেখযোগ্য সীমাবদ্ধতা রয়েছে। স্থাপনের বেশিরভাগ দায়িত্ব ও কঠিনতা ব্যবহারকারীর ওপর পড়ে, যাকে Git ইনস্টল করতে হয়, রিপোজিটরি ক্লোন করতে হয় এবং টুল চালানোর আগে এনভায়রনমেন্ট সঠিকভাবে সেট আপ করতে হয়।
কেন GitHub-এ সোর্স কোড ভাগ করা একটি ডেটা সায়েন্স টুল স্থাপনের সীমিত উপায়?
GitHub-এর মাধ্যমে কোড ভাগ করলে স্থাপনের বেশিরভাগ কাজ ব্যবহারকারীর ওপর চাপে, যাকে Git ইনস্টল করতে, রিপোজিটরি ক্লোন করতে এবং এনভায়রনমেন্ট কনফিগার করতে হয়। কনটেইনারাইজেশন বা পরিচালিত এনভায়রনমেন্ট ছাড়া, টুলটি বিভিন্ন মেশিনে ধারাবাহিকভাবে নাও চলতে পারে।
🇩🇪 Deutsch
Bereitstellung von Data-Science-Tools: Teil 1
Liegt ein Data-Science-Tool nur auf Ihrem Laptop, ist sein Nutzen auf Ihre Zeit und Ihre Fähigkeit beschränkt, die Ergebnisse zu erklären. Ein bereitgestelltes Tool ermöglicht es Geschäftspartnern, Kunden und Kollegen, dessen Prognosen und Empfehlungen direkt zu nutzen, ohne dass Sie als Vermittler dazwischenstehen.
Diese mehrteilige Serie führt vom Quellcode auf dem Laptop bis zur vollständigen CI/CD-Bereitstellung eines Optimierungstools. Dieser erste Artikel befasst sich mit dem klassischen Problem "Bei mir funktioniert es, aber bei dir nicht". Er behandelt das Klonen von Code aus GitHub, Python-virtuelle Umgebungen, Docker und Containerisierung und stellt das Beispieltool vor, das bereitgestellt wird.
Das Beispiel ist der Cutting Stock Planner, der das Zuschnittproblem für Materialbestände löst. Mithilfe linearer Programmierung und einer einfachen FastAPI-basierten Oberfläche erstellt er einen optimalen Schnittplan, der die Anzahl der zu kaufenden Materialstücke minimiert. Wenn Sie beispielsweise einen Stuhl aus 8-Fuß-Material mit mehreren benötigten Schnittlängen bauen möchten, geben Sie die Materiallänge und die Schnittliste ein, klicken auf Create Cut Plan und erhalten auf dem Bildschirm eine optimale Schnittaufteilung.
Die einfachste Möglichkeit, das Tool weiterzugeben, besteht darin, seinen Code über die Versionsverwaltung auf GitHub zu verteilen. Nutzer können das Repository klonen, in dessen Basisverzeichnis wechseln und einen uvicorn-Befehl ausführen, um die Oberfläche lokal zu starten. Für die gemeinsame Entwicklung funktioniert das gut, als Bereitstellungsmethode hat es jedoch erhebliche Nachteile. Der Großteil der Verantwortung und des Aufwands für die Bereitstellung liegt beim Nutzer, der Git installieren, das Repository klonen und die Umgebung korrekt einrichten muss, bevor das Tool läuft.
Warum ist das Teilen von Quellcode auf GitHub eine eingeschränkte Methode, ein Data-Science-Tool bereitzustellen?
Das Teilen von Code über GitHub überträgt den Großteil der Bereitstellungsarbeit auf den Nutzer, der Git installieren, das Repository klonen und die Umgebung konfigurieren muss. Ohne Containerisierung oder eine verwaltete Umgebung läuft das Tool auf verschiedenen Rechnern möglicherweise nicht einheitlich.
🇪🇸 Español
Despliegue de herramientas de ciencia de datos: Parte 1
Si una herramienta de ciencia de datos solo está en tu portátil, su valor se limita a tu tiempo y a tu capacidad para explicar sus resultados. Una herramienta desplegada permite a socios comerciales, clientes y compañeros de trabajo usar sus predicciones y recomendaciones directamente, sin que tú tengas que estar en medio.
Esta serie de varias partes recorre el camino desde el código fuente en un portátil hasta el despliegue completo de CI/CD de una herramienta de optimización. Este primer artículo aborda el clásico problema de "en mi ordenador funciona, pero en el tuyo no". Cubre la clonación de código desde GitHub, los entornos virtuales de Python, Docker y la contenedorización, y presenta la herramienta de ejemplo que se va a desplegar.
El ejemplo es el Cutting Stock Planner, que resuelve el problema del corte de material en stock. Usando programación lineal y una sencilla interfaz basada en FastAPI, produce un plan de corte óptimo que minimiza el número de piezas de material que necesitas comprar. Por ejemplo, si necesitas fabricar una silla a partir de material de 8 pies con varias longitudes de corte requeridas, introduces la longitud del material y la lista de cortes, haces clic en Create Cut Plan y recibes en pantalla una disposición de corte óptima.
La forma más sencilla de compartir la herramienta es distribuir su código mediante control de versiones en GitHub. Los usuarios pueden clonar el repositorio, ir a su directorio base y ejecutar un comando uvicorn para lanzar la interfaz en local. Esto funciona bien para el desarrollo colaborativo, pero como método de despliegue tiene inconvenientes importantes. La mayor parte de la responsabilidad y la dificultad del despliegue recae en el usuario, que necesita tener Git instalado, debe clonar el repositorio y debe configurar correctamente el entorno antes de que la herramienta funcione.
¿Por qué compartir código fuente en GitHub es una forma limitada de desplegar una herramienta de ciencia de datos?
Compartir código a través de GitHub traslada la mayor parte del trabajo de despliegue al usuario, que debe instalar Git, clonar el repositorio y configurar el entorno. Sin contenedorización ni un entorno gestionado, la herramienta puede no funcionar de forma consistente en distintas máquinas.
🇫🇷 Français
Déploiement d'outils de data science : Partie 1
Si un outil de data science ne se trouve que sur votre ordinateur portable, sa valeur est limitée à votre temps et à votre capacité à expliquer ses résultats. Un outil déployé permet à vos partenaires commerciaux, clients et collègues d'utiliser directement ses prédictions et recommandations, sans que vous ayez besoin d'être au milieu.
Cette série en plusieurs parties retrace le chemin qui mène du code source sur un ordinateur portable jusqu'au déploiement complet en CI/CD d'un outil d'optimisation. Ce premier article s'attaque au problème classique « ça marche sur mon ordinateur, mais pas sur le tien ». Il couvre le clonage de code depuis GitHub, les environnements virtuels Python, Docker et la conteneurisation, et présente l'outil d'exemple à déployer.
L'exemple est le Cutting Stock Planner, qui résout le problème de découpe de stock. Grâce à la programmation linéaire et à une interface simple basée sur FastAPI, il produit un plan de découpe optimal qui minimise le nombre de pièces de stock à acheter. Par exemple, si vous voulez fabriquer une chaise à partir de stock de 8 pieds avec plusieurs longueurs de coupe requises, vous saisissez la longueur du stock et la liste des coupes, cliquez sur Create Cut Plan, et obtenez à l'écran une disposition de coupe optimale.
La façon la plus simple de partager l'outil consiste à distribuer son code via le contrôle de version sur GitHub. Les utilisateurs peuvent cloner le dépôt, se rendre dans son répertoire de base et exécuter une commande uvicorn pour lancer l'interface en local. Cela fonctionne bien pour le développement collaboratif, mais comme méthode de déploiement, cela présente des inconvénients importants. La plus grande part de la responsabilité et de la difficulté du déploiement incombe à l'utilisateur, qui doit installer Git, cloner le dépôt et configurer correctement l'environnement avant que l'outil ne fonctionne.
Pourquoi partager le code source sur GitHub est-il une méthode limitée pour déployer un outil de data science ?
Partager le code via GitHub reporte l'essentiel du travail de déploiement sur l'utilisateur, qui doit installer Git, cloner le dépôt et configurer l'environnement. Sans conteneurisation ni environnement géré, l'outil peut ne pas fonctionner de manière cohérente d'une machine à l'autre.
🇮🇳 हिन्दी
डेटा साइंस टूल्स की तैनाती: भाग 1
यदि कोई डेटा साइंस टूल केवल आपके लैपटॉप पर है, तो उसका मूल्य आपके समय और उसके आउटपुट समझाने की आपकी क्षमता तक सीमित है। एक तैनात टूल व्यावसायिक साझेदारों, ग्राहकों और सहकर्मियों को उसके पूर्वानुमान और सिफारिशें सीधे उपयोग करने देता है, बिना आपको बीच में रखे।
यह बहु-भागीय श्रृंखला लैपटॉप पर स्रोत कोड से लेकर एक ऑप्टिमाइज़ेशन टूल की पूर्ण CI/CD तैनाती तक का मार्ग बताती है। यह पहला लेख क्लासिक "यह मेरे कंप्यूटर पर चलता है, लेकिन तुम्हारे पर नहीं" समस्या को संबोधित करता है। इसमें GitHub से कोड क्लोन करना, Python वर्चुअल एनवायरनमेंट, Docker और कंटेनराइज़ेशन शामिल हैं, और तैनात किए जा रहे उदाहरण टूल का परिचय दिया गया है।
उदाहरण Cutting Stock Planner है, जो स्टॉक कटिंग समस्या को हल करता है। रैखिक प्रोग्रामिंग और एक सरल FastAPI-आधारित UI का उपयोग करके, यह एक इष्टतम कट योजना बनाता है जो आपको खरीदने पड़ने वाले स्टॉक टुकड़ों की संख्या को कम करती है। उदाहरण के लिए, यदि आपको 8 फुट के स्टॉक से कई आवश्यक कट लंबाई वाली कुर्सी बनानी है, तो आप स्टॉक की लंबाई और कट सूची दर्ज करते हैं, Create Cut Plan बटन दबाते हैं, और स्क्रीन पर इष्टतम लेआउट पाते हैं।
टूल को साझा करने का सबसे सरल तरीका GitHub पर version control के माध्यम से उसका कोड वितरित करना है। उपयोगकर्ता रिपॉज़िटरी क्लोन कर सकते हैं, उसकी आधार निर्देशिका में जा सकते हैं, और UI को स्थानीय रूप से चलाने के लिए uvicorn कमांड चला सकते हैं। यह सहयोगात्मक विकास के लिए अच्छा काम करता है, लेकिन तैनाती की विधि के रूप में इसकी काफी कमियाँ हैं। तैनाती की अधिकांश ज़िम्मेदारी और कठिनाई उपयोगकर्ता पर आती है, जिसे Git इंस्टॉल करना होता है, रिपॉज़िटरी क्लोन करनी होती है, और टूल चलने से पहले पर्यावरण को सही ढंग से सेट करना होता है।
GitHub पर स्रोत कोड साझा करना डेटा साइंस टूल तैनात करने का सीमित तरीका क्यों है?
GitHub के माध्यम से कोड साझा करने से तैनाती का अधिकांश काम उपयोगकर्ता पर आ जाता है, जिसे Git इंस्टॉल करना, रिपॉज़िटरी क्लोन करना और एनवायरनमेंट कॉन्फ़िगर करना होता है। कंटेनराइज़ेशन या प्रबंधित एनवायरनमेंट के बिना, टूल विभिन्न मशीनों पर लगातार नहीं चल सकता।
🇮🇩 Bahasa Indonesia
Menerapkan Alat Ilmu Data: Bagian 1
Jika alat ilmu data hanya berada di laptop Anda, nilainya terbatas pada waktu Anda dan kemampuan Anda menjelaskan hasilnya. Alat yang telah diterapkan memungkinkan mitra bisnis, pelanggan, dan rekan kerja menggunakan prediksi serta rekomendasinya secara langsung, tanpa Anda harus menjadi perantara.
Seri multi-bagian ini membahas jalan dari kode sumber di laptop hingga penerapan CI/CD penuh untuk alat optimasi. Artikel pertama ini membahas masalah klasik "di komputer saya berjalan, tapi di komputer Anda tidak". Topiknya mencakup kloning kode dari GitHub, lingkungan virtual Python, Docker dan kontainerisasi, serta pengenalan alat contoh yang akan diterapkan.
Contohnya adalah Cutting Stock Planner, yang memecahkan masalah pemotongan stok. Dengan menggunakan pemrograman linear dan UI sederhana berbasis FastAPI, alat ini menghasilkan rencana pemotongan optimal yang meminimalkan jumlah potongan stok yang perlu Anda beli. Misalnya, jika Anda ingin membuat kursi dari stok sepanjang 8 kaki dengan beberapa panjang potongan yang dibutuhkan, Anda memasukkan panjang stok dan daftar potongan, mengklik Create Cut Plan, dan mendapatkan tata letak optimal di layar.
Cara paling sederhana untuk membagikan alat ini adalah dengan mendistribusikan kodenya melalui kontrol versi di GitHub. Pengguna dapat mengkloning repositori, masuk ke direktori dasarnya, dan menjalankan perintah uvicorn untuk meluncurkan UI secara lokal. Cara ini cukup baik untuk pengembangan kolaboratif, tetapi sebagai metode penerapan, cara ini memiliki kelemahan yang signifikan. Sebagian besar tanggung jawab dan kesulitan penerapan jatuh pada pengguna, yang harus memasang Git, mengkloning repositori, dan mengatur lingkungan dengan benar sebelum alat dapat berjalan.
Mengapa membagikan kode sumber melalui GitHub merupakan cara terbatas untuk menerapkan alat ilmu data?
Membagikan kode melalui GitHub membebankan sebagian besar pekerjaan penerapan kepada pengguna, yang harus memasang Git, mengkloning repositori, dan mengonfigurasi lingkungan. Tanpa kontainerisasi atau lingkungan terkelola, alat mungkin tidak berjalan secara konsisten di berbagai mesin.
🇯🇵 日本語
データサイエンスツールのデプロイ:パート1
データサイエンスツールがノートパソコンにあるだけでは、その価値はあなたの時間と、結果を説明する能力に限られます。デプロイされたツールであれば、ビジネスパートナーや顧客、同僚があなたを介さずに、その予測や推奨を直接利用できます。
この複数回のシリーズでは、ノートパソコン上のソースコードから、最適化ツールの完全なCI/CDデプロイまでの道のりを解説します。この第1回では、古典的な「自分のコンピュータでは動くのに、あなたのコンピュータでは動かない」という問題を扱います。GitHubからのコードのクローン、Python仮想環境、Dockerとコンテナ化について取り上げ、デプロイする例のツールを紹介します。
例として使うのはCutting Stock Plannerで、これは材料の切断問題を解くツールです。線形計画法と、シンプルなFastAPIベースのUIを使い、必要な材料の本数を最小化する最適な切断計画を作成します。たとえば、8フィートの材料から、いくつかの必要な長さに切り出して椅子を作りたい場合、材料の長さと切断リストを入力し、Create Cut Planをクリックすると、画面に最適な配置が表示されます。
ツールを共有する最も簡単な方法は、GitHubのバージョン管理を通じてコードを配布することです。ユーザーはリポジトリをクローンし、ベースディレクトリに移動して、uvicornコマンドを実行すれば、UIをローカルで起動できます。これは共同開発には有効ですが、デプロイ方法としては大きな欠点があります。デプロイの責任と難しさの大部分はユーザーに降りかかります。ユーザーはGitをインストールし、リポジトリをクローンし、ツールが動くまでに環境を正しく設定しなければなりません。
GitHubでソースコードを共有することが、データサイエンスツールのデプロイ方法として限界があるのはなぜですか?
GitHubを通じたコード共有では、デプロイ作業の大部分がユーザーに任されます。ユーザーはGitのインストール、リポジトリのクローン、環境の設定を行う必要があります。コンテナ化やマネージド環境がなければ、ツールは複数のマシンで一貫して動作しないことがあります。
🇧🇷 Português
Implantação de ferramentas de ciência de dados: Parte 1
Se uma ferramenta de ciência de dados fica apenas no seu notebook, seu valor se limita ao seu tempo e à sua capacidade de explicar seus resultados. Uma ferramenta implantada permite que parceiros de negócios, clientes e colegas de trabalho usem suas previsões e recomendações diretamente, sem que você precise estar no meio.
Esta série em várias partes percorre o caminho do código-fonte no notebook até a implantação completa de CI/CD de uma ferramenta de otimização. Este primeiro artigo aborda o clássico problema "funciona na minha máquina, mas não na sua". Ele trata da clonagem de código do GitHub, dos ambientes virtuais do Python, do Docker e da conteinerização, e apresenta a ferramenta de exemplo que será implantada.
O exemplo é o Cutting Stock Planner, que resolve o problema de corte de estoque. Usando programação linear e uma interface simples baseada em FastAPI, ele produz um plano de corte ótimo que minimiza o número de peças de estoque que você precisa comprar. Por exemplo, se você quer fazer uma cadeira com estoque de 8 pés e vários comprimentos de corte necessários, informa o comprimento do estoque e a lista de cortes, clica em Create Cut Plan e recebe na tela um layout de corte otimizado.
A maneira mais simples de compartilhar a ferramenta é distribuir seu código por meio de controle de versão no GitHub. Os usuários podem clonar o repositório, navegar até o diretório base e executar um comando uvicorn para iniciar a interface localmente. Isso funciona bem para o desenvolvimento colaborativo, mas, como método de implantação, tem desvantagens significativas. A maior parte da responsabilidade e da dificuldade da implantação recai sobre o usuário, que precisa ter o Git instalado, clonar o repositório e configurar corretamente o ambiente antes que a ferramenta funcione.
Por que compartilhar código-fonte no GitHub é uma forma limitada de implantar uma ferramenta de ciência de dados?
Compartilhar código pelo GitHub transfere a maior parte do trabalho de implantação para o usuário, que precisa instalar o Git, clonar o repositório e configurar o ambiente. Sem conteinerização ou um ambiente gerenciado, a ferramenta pode não rodar de forma consistente em diferentes máquinas.
🇷🇺 Русский
Развертывание инструментов data science: часть 1
Если инструмент data science существует только на вашем ноутбуке, его ценность ограничена вашим временем и вашей способностью объяснять его результаты. Развернутый инструмент позволяет деловым партнерам, клиентам и коллегам напрямую использовать его прогнозы и рекомендации, без необходимости, чтобы вы были посредником.
Эта многочастная серия проводит путь от исходного кода на ноутбуке до полного развертывания инструмента оптимизации с помощью CI/CD. Первая статья посвящена классической проблеме «у меня на компьютере работает, а у тебя нет». В ней рассматриваются клонирование кода из GitHub, виртуальные окружения Python, Docker и контейнеризация, а также представляется пример инструмента, который будет развертываться.
Примером служит Cutting Stock Planner, который решает задачу раскроя материала. Используя линейное программирование и простой пользовательский интерфейс на основе FastAPI, он формирует оптимальный план раскроя, минимизирующий количество заготовок, которые нужно купить. Например, если вы хотите сделать стул из 8-футового материала с несколькими нужными отрезками, вы вводите длину заготовки и список отрезков, нажимаете Create Cut Plan и получаете на экране оптимальную схему раскроя.
Самый простой способ поделиться инструментом — распространять его код через систему контроля версий на GitHub. Пользователи могут клонировать репозиторий, перейти в его корневой каталог и запустить команду uvicorn, чтобы локально открыть интерфейс. Это хорошо работает для совместной разработки, но как способ развертывания имеет существенные недостатки. Основная часть ответственности и сложности развертывания ложится на пользователя, которому нужно установить Git, клонировать репозиторий и правильно настроить окружение, прежде чем инструмент заработает.
Почему обмен исходным кодом через GitHub — ограниченный способ развертывания инструмента data science?
Обмен кодом через GitHub перекладывает основную часть работы по развертыванию на пользователя, которому нужно установить Git, клонировать репозиторий и настроить окружение. Без контейнеризации или управляемого окружения инструмент может работать на разных машинах несогласованно.
🇨🇳 简体中文
部署数据科学工具:第一部分
如果数据科学工具只存在于你的笔记本电脑上,它的价值就受限于你的时间以及你向他人解释其输出结果的能力。部署后的工具可以让业务合作伙伴、客户和同事直接使用其预测和建议,无需你从中协助。
本系列文章为多部分系列,将介绍如何把笔记本电脑上的源代码一路推进到优化工具的完整 CI/CD 部署。第一篇文章将解决经典的“在我的电脑上能运行,在你的电脑上却不行”问题。内容包括从 GitHub 克隆代码、Python 虚拟环境、Docker 与容器化,并介绍即将部署的示例工具。
示例工具是切割库存规划器(Cutting Stock Planner),用于解决库存切割问题。它使用线性规划和一个基于 FastAPI 的简单用户界面,生成最优切割方案,使你需要购买的库存件数最少。例如,如果你要用 8 英尺长的库存材料制作一把椅子,并且需要若干指定长度的切段,你只需输入库存长度和切割清单,点击“创建切割方案”,屏幕上就会显示最优的切割布局。
分享该工具最简单的方式是通过 GitHub 的版本控制分发其代码。用户可以克隆代码仓库,进入其根目录,然后运行 uvicorn 命令在本地启动界面。这种方式适合协作开发,但作为部署方法存在明显缺陷。大部分部署责任和难度都落在用户身上:用户需要安装 Git、克隆代码仓库,并在工具能够运行之前正确配置环境。
为什么通过 GitHub 分享源代码是一种有限的数据科学工具部署方式?
通过 GitHub 分享代码会把大部分部署工作交给用户,用户必须安装 Git、克隆代码仓库并配置环境。如果没有容器化或受管理的运行环境,该工具在不同机器上可能无法保持一致地运行。