{"id":925,"date":"2024-05-09T07:14:54","date_gmt":"2024-05-09T07:14:54","guid":{"rendered":"https:\/\/tbekk.com\/devstream\/?p=925"},"modified":"2024-05-09T07:14:54","modified_gmt":"2024-05-09T07:14:54","slug":"top-devtools-to-build-ai-ml-applications","status":"publish","type":"post","link":"https:\/\/tbekk.com\/devstream\/2024\/05\/09\/top-devtools-to-build-ai-ml-applications\/","title":{"rendered":"Top DevTools to Build AI\/ML Applications!"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-text-color has-medium-gray-color has-alpha-channel-opacity has-medium-gray-background-color has-background is-style-wide\"\/>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em><strong>Link:<\/strong><\/em> <a href=\"https:\/\/levelup.gitconnected.com\/top-devtools-to-build-ai-ml-applications-3bda6ef4791d\"><em>levelup.gitconnected.com<\/em><\/a><\/li>\n\n\n\n<li><strong><em>Author:<\/em><\/strong> <a href=\"https:\/\/medium.com\/@pavanbelagatti?source=post_page-----3bda6ef4791d--------------------------------\"><em>Pavan Belagatti<\/em><\/a><\/li>\n\n\n\n<li><em><strong>Publication date:<\/strong><\/em> May 1, 2024<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-text-color has-medium-gray-color has-alpha-channel-opacity has-medium-gray-background-color has-background is-style-wide\"\/>\n\n\n\n<p id=\"e6f0\"><strong>1. Programming Language<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"6014\"><a href=\"https:\/\/git.new\/winglang\" rel=\"noreferrer noopener\" target=\"_blank\">Wing<\/a><\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1400\/1*e56uBfWsHVW4DVilskteLg.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"9fbe\">I tried to play with many languages and what I found was that most of the languages are overhyped. Yes, and that is when I met one of the communities talking about this new language made for cloud and AI applications. That was the first time I tried the Wing programming language and found it pretty impressive.<\/p>\n\n\n\n<p id=\"cace\">You might ask \u2014 why Wing? Wing offers a unified programming model that consolidates infrastructure and application code within a cohesive framework. This unique approach allows developers to streamline their workflow, eliminating the need for constant context switching and significantly enhancing productivity and creativity.<\/p>\n\n\n\n<p id=\"493c\">This is what exactly you need while building AI\/ML applications, focusing more on the core features rather than the underlying infrastructure. I encountered their Open AI Joker application, which generates and translates jokes into different languages. It was amazing to see how smooth the entire framework was. Just a note that Wing is still under active development.<\/p>\n\n\n\n<p id=\"39b7\">You can build any AI\/ML application with minimal code. Let\u2019s see how the Joker application works. The application generates jokes using OpenAI and translates them to different languages. There is a comedian, an Open AI assistant that generates jokes and whenever it generates jokes, the joke gets put\/stored in a bucket. There are two translators, Spanish and Hebrew. These translators subscribe to a topic. Whenever a joke is generated, they receive it and translate it. Also, they put the translated joke into the bucket as well. Pretty simple.<\/p>\n\n\n\n<p id=\"0d68\">Below is a technical overview image of this example of how to use OpenAI\u2019s<a href=\"https:\/\/github.com\/winglang\/examples\/tree\/main\/examples\/openai-joker\" rel=\"noreferrer noopener\" target=\"_blank\">&nbsp;API with Wing<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1400\/1*C-2kOGafW6qBieFIWhHJIg.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"48c5\">If you haven\u2019t tried Winglang yet, you can easily try it with a simple command<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">npm install -g winglang<\/pre>\n\n\n\n<p id=\"70df\">Copy the code to your local computer using this git clone command<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git clone https:\/\/github.com\/winglang\/wing.git<\/pre>\n\n\n\n<p id=\"0101\">Go to the examples folder<\/p>\n\n\n\n<p id=\"5630\">Then run the following commands in the terminal:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">npm install<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">wing it<\/pre>\n\n\n\n<p id=\"0286\">Invoke the \u201cSTART HERE\u201d function, and see the results in the \u201cJoke Store\u201d.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"0511\">2. Vector Data Storage and Analysis Tool<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"3d17\">SingleStore &amp; Notebooks<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:960\/1*f67pAou8tRF7y44nxGvDXw.jpeg\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"721a\">For AI\/ML applications, you need a database to store the unstructured data. I joined SingleStore almost 8 months back and I was new to AI\/ML and vector databases. With all the hype around vector databases, I started learning about vector databases and found out how SingleStore is an amazing addition to the industry as a vector database. It is not just used to store the vector data but companies use SingleStore for real-time analytics also. Now, see the power of vector data storage supporting real-time analytics, that\u2019s a superpower.<\/p>\n\n\n\n<p id=\"5262\">Let me introduce SingleStore to you all; it is a cloud-based database management system (RDBMS) that is designed for data-intensive applications. It is known for its speed in data ingestion, transaction processing, and query processing. SingleStore started supporting vector storage long back in 2017<\/p>\n\n\n\n<p id=\"c425\">SingleStore\u2019s Notebook feature is based on the popular Jupyter Notebook, which is widely used in data science and machine learning communities. The SingleStore Notebook extends the capabilities of Jupyter Notebook to enable data professionals to easily work with SingleStore\u2019s distributed SQL database while providing great extensibility in language and data sources.<\/p>\n\n\n\n<p id=\"e3da\"><a href=\"https:\/\/www.singlestore.com\/cloud-trial\/?utm_medium=referral&amp;utm_source=pavan&amp;utm_term=med&amp;utm_content=aimltools\" rel=\"noreferrer noopener\" target=\"_blank\">Try SingleStore and get $600 worth of free credits<\/a>.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"97b0\">3. Data Manipulation and Analysis Tool<\/h1>\n\n\n\n<p id=\"6909\">I just love working with data and doing different experiments taking publicly available datasets like wine dataset, titanic dataset, etc to name a few. I was mesmerized to see the capabilities of NumPy and Pandas in data exploration and coming up with different solutions.<\/p>\n\n\n\n<p id=\"1bd4\">Pandas and NumPy are two of the most popular libraries in the Python ecosystem for data analysis and scientific computing<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"48b3\">Pandas and NumPy<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1400\/1*aYwAe-uo3DaZU7qKZ1-Msw.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"8886\">At the heart of any AI\/ML application is data. Tools like Pandas and NumPy are foundational for data manipulation and analysis in Python. Pandas provide high-level data structures and operations for manipulating numerical tables and time series, making it ideal for preprocessing and cleaning data before it\u2019s used for training models. NumPy adds support for large, multi-dimensional arrays and matrices, along with a large collection of mathematical functions to operate on these arrays, crucial for performance-heavy operations in data preprocessing and model training.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"d973\">4. AI &amp; Machine Learning Frameworks<\/h1>\n\n\n\n<p id=\"5062\">I have used TensorFlow, PyTorch and recently came across LangChain and LlamaIndex and was impressed by their ability to help AI\/ML engineers with all the toolkits required such as APIs, vector storage functionalities, logic, reasoning, etc to build robust applications. Let\u2019s go through them one by one to see their superpowers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"79c6\">TensorFlow and PyTorch<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1400\/1*WUA31civiwn4Cxd3Vox6bg.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"8c0b\"><a href=\"https:\/\/www.tensorflow.org\/\" rel=\"noreferrer noopener\" target=\"_blank\">TensorFlow,<\/a>&nbsp;developed by Google, and&nbsp;<a href=\"https:\/\/pytorch.org\/\" rel=\"noreferrer noopener\" target=\"_blank\">PyTorch<\/a>, developed by Facebook, are two of the most popular frameworks for building and training complex machine learning models. TensorFlow is known for its flexibility and robust scalability, making it suitable for both research prototypes and production deployments. PyTorch is praised for its ease of use, simplicity, and dynamic computational graph that allows for more intuitive coding of complex AI models. Both frameworks support a wide range of AI models, from simple linear regression to complex deep neural networks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"e5f3\"><strong>LangChain<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1244\/1*qgTxFRveVr0Ry1c6i8M1zQ.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"011f\">Developed by Harrison Chase, and debuted in October 2022,&nbsp;<a href=\"https:\/\/www.langchain.com\/\" rel=\"noreferrer noopener\" target=\"_blank\">LangChain<\/a>&nbsp;serves as an open-source platform designed for constructing sturdy applications powered by Large Language Models, such as chatbots like ChatGPT and various tailor-made applications.<\/p>\n\n\n\n<p id=\"e9d9\">Langchain seeks to equip data engineers with an all-encompassing toolkit for utilizing LLMs in diverse use cases, such as chatbots, automated question-answering, text summarization, and beyond.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"d079\"><strong>LlamaIndex<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1280\/1*cEw5o62dErwK0HaO7diEHg.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"23e2\"><a href=\"https:\/\/www.llamaindex.ai\/\" rel=\"noreferrer noopener\" target=\"_blank\">LlamaIndex<\/a>&nbsp;is an advanced orchestration framework designed to amplify the capabilities of LLMs like GPT-4. While LLMs are inherently powerful, having been trained on vast public datasets, they often lack the means to interact with private or domain-specific data.<\/p>\n\n\n\n<p id=\"2bb1\">LlamaIndex bridges this gap, offering a structured way to ingest, organize, and harness various data sources \u2014 including APIs, databases, and PDFs. By indexing this data into formats optimized for LLMs, LlamaIndex facilitates natural language querying, enabling users to seamlessly converse with their private data without the need to retrain the models.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"d6ba\">5. Deep Learning Model<\/h1>\n\n\n\n<p id=\"a58b\">As a beginner, I was looking for something simple and flexible for developing deep learning models and that is when I found&nbsp;<a href=\"https:\/\/keras.io\/\" rel=\"noreferrer noopener\" target=\"_blank\">Keras<\/a>. Many AI\/ML professionals appreciate Keras for its simplicity and efficiency in prototyping and developing deep learning models, making it a preferred choice, especially for beginners and for projects requiring rapid development.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"524f\">Keras<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1400\/1*HhuuayTnQvND8aZZIrHwow.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"dd38\">For developers looking for a high-level neural networks API, Keras, which is now integrated into TensorFlow, offers a simpler interface to build and train deep learning models. Keras abstracts away much of the complexity of building neural networks, making it accessible for beginners while still being powerful enough for research.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"fc35\">6. Development and Version Control Platforms<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"fce8\">GitHub and DVC<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1400\/1*fQaKam6TCIHXmc4ZBkbaDw.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"06ac\">Collaboration and version control are crucial in AI\/ML development projects due to the iterative nature of model development and the need for reproducibility.&nbsp;<a href=\"https:\/\/github.com\/\" rel=\"noreferrer noopener\" target=\"_blank\">GitHub<\/a>&nbsp;is the leading platform for source code management, allowing teams to collaborate on code, track issues, and manage project milestones.&nbsp;<a href=\"https:\/\/dvc.org\/\" rel=\"noreferrer noopener\" target=\"_blank\">DVC<\/a>&nbsp;(Data Version Control) complements Git by handling large data files, data sets, and machine learning models that Git can\u2019t manage effectively, enabling version control for the data and model files used in AI projects.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"b83e\">7. AI Model Deployment and Monitoring<\/h1>\n\n\n\n<p id=\"41c9\">I built some AI\/ML applications but how and where to deploy them? That is where my mind jumped to the two main tools in this category:&nbsp;<a href=\"https:\/\/www.docker.com\/\" rel=\"noreferrer noopener\" target=\"_blank\">Docker<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/kubernetes.io\/\" rel=\"noreferrer noopener\" target=\"_blank\">Kubernetes<\/a>. Like I said before, I come from DevOps parts of the world and I have already worked with these tools and I know how they work. While Docker containerizes your application, Kubernetes is used to deploy your applications for scale.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"627c\">Docker and Kubernetes<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1400\/1*VRN-qwdP53s1aNS5uBLJPA.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"b76f\">Deploying AI models into production requires tools that can package applications and manage them at scale. Docker simplifies the deployment of AI applications by containerizing them, ensuring that the application runs smoothly in any environment. Kubernetes, an orchestration system for Docker containers, allows for the automated deployment, scaling, and management of containerized applications, essential for AI applications that need to scale across multiple servers or cloud environments.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"d81d\">8. Cloud Platforms for AI<\/h1>\n\n\n\n<p id=\"a0c7\">You cannot scale anything without cloud platforms like&nbsp;<a href=\"https:\/\/www.geeksforgeeks.org\/aws-vs-google-cloud-platform-vs-azure\/\" rel=\"noreferrer noopener\" target=\"_blank\">AWS, Google, and Azure<\/a>. While AWS is my favorite, I have also explored other options and mentioned all three major cloud providers here.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ee7f\">AWS, Google Cloud, and Azure<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1400\/1*ITwooQgBmuz0MNgBaZJ_NA.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"47ae\">Cloud platforms like Amazon Web Services (AWS), Google Cloud Platform (GCP), and Microsoft Azure offer a range of AI and machine learning services that abstract away much of the infrastructure required to train and deploy AI models. These platforms provide managed services for machine learning model training, deployment, and monitoring, along with a vast array of computational resources scalable to the needs of any AI project.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"ebca\">9. Specialized AI Development Tools<\/h1>\n\n\n\n<p id=\"293f\">While I still prefer using the SingleStore Notebook feature, I know most of you are already using Jupyter Notebooks for your data explorations and analysis. I sometimes use Jupyter Notebooks and one more interesting tool is MLflow which will help you with end-to-end ML workflow.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"b302\">Jupyter Notebooks<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:416\/1*-v25l5tmBUN69lLWCAdzwg.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"757e\">For exploratory data analysis, model development, and documentation, Jupyter Notebooks are an indispensable tool. They allow developers to create and share documents that contain live code, equations, visualizations, and narrative text, making it an excellent tool for collaborative AI research and development.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"57ff\">MLflow<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1400\/1*ZQ2UK__Wr0ql-gy4MnqMPg.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"d71d\"><a href=\"https:\/\/mlflow.org\/\" rel=\"noreferrer noopener\" target=\"_blank\">MLflow<\/a>&nbsp;is an open-source platform for managing the end-to-end machine learning lifecycle. It includes features for experiment tracking, model versioning, and deployment, enabling developers to track and compare experiments, package models into reproducible runs, and manage model deployment across multiple environments.<\/p>\n\n\n\n<p id=\"13a9\"><strong>Some final thoughts:<\/strong><\/p>\n\n\n\n<p id=\"005a\">The AI\/ML landscape is growing like an ocean. Every day we will see one or the other language model making its debut with lots of expectations. There are numerous amazing developer tools that can still be part of this list but from my personal experience, I believe these tools are a good start for every AI\/ML Engineer to start building their AI\/ML applications.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Programming Language Wing I tried to play with many languages and what I found was that most of the languages are overhyped. Yes, and that is when I met&#8230; <a class=\"read-more-link\" href=\"https:\/\/tbekk.com\/devstream\/2024\/05\/09\/top-devtools-to-build-ai-ml-applications\/\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[181,51,19,158],"tags":[27,343,63,198,20,184],"class_list":["post-925","post","type-post","status-publish","format-standard","hentry","category-ai-2","category-article","category-ml","category-mlops","tag-ai","tag-ai-ml-applications","tag-devtools","tag-generative-ai","tag-ml","tag-tools"],"_links":{"self":[{"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/posts\/925","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/comments?post=925"}],"version-history":[{"count":1,"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/posts\/925\/revisions"}],"predecessor-version":[{"id":926,"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/posts\/925\/revisions\/926"}],"wp:attachment":[{"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/media?parent=925"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/categories?post=925"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tbekk.com\/devstream\/wp-json\/wp\/v2\/tags?post=925"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}