Name: Towards AI Legal Name: Towards AI, Inc. Description: Towards AI is the world's leading artificial intelligence (AI) and technology publication. Read by thought-leaders and decision-makers around the world. Phone Number: +1-650-246-9381 Email: pub@towardsai.net
228 Park Avenue South New York, NY 10003 United States
Website: Publisher: https://towardsai.net/#publisher Diversity Policy: https://towardsai.net/about Ethics Policy: https://towardsai.net/about Masthead: https://towardsai.net/about
Name: Towards AI Legal Name: Towards AI, Inc. Description: Towards AI is the world's leading artificial intelligence (AI) and technology publication. Founders: Roberto Iriondo, , Job Title: Co-founder and Advisor Works for: Towards AI, Inc. Follow Roberto: X, LinkedIn, GitHub, Google Scholar, Towards AI Profile, Medium, ML@CMU, FreeCodeCamp, Crunchbase, Bloomberg, Roberto Iriondo, Generative AI Lab, Generative AI Lab Denis Piffaretti, Job Title: Co-founder Works for: Towards AI, Inc. Louie Peters, Job Title: Co-founder Works for: Towards AI, Inc. Louis-François Bouchard, Job Title: Co-founder Works for: Towards AI, Inc. Cover:
Towards AI Cover
Logo:
Towards AI Logo
Areas Served: Worldwide Alternate Name: Towards AI, Inc. Alternate Name: Towards AI Co. Alternate Name: towards ai Alternate Name: towardsai Alternate Name: towards.ai Alternate Name: tai Alternate Name: toward ai Alternate Name: toward.ai Alternate Name: Towards AI, Inc. Alternate Name: towardsai.net Alternate Name: pub.towardsai.net
5 stars – based on 497 reviews

Frequently Used, Contextual References

TODO: Remember to copy unique IDs whenever it needs used. i.e., URL: 304b2e42315e

Resources

Take our 85+ lesson From Beginner to Advanced LLM Developer Certification: From choosing a project to deploying a working product this is the most comprehensive and practical LLM course out there!

Publication

Remove the Fluff: Five Important Questions Businesses Should Ask Before Implementing AI in Their Workflows.
Latest   Machine Learning

Remove the Fluff: Five Important Questions Businesses Should Ask Before Implementing AI in Their Workflows.

Last Updated on May 9, 2024 by Editorial Team

Author(s): Claudio Mazzoni

Originally published on Towards AI.

Photo by Waldemar on Unsplash

I recently attended an Artificial Intelligence Users meeting, it was my first time since the pandemic that I attended a technical get together like it. The room was filled with very smart folks, people from all walks of life and careers, some were technical, others were business users. To me the highlight of the night were the two speakers.

The first one talked about how AI is revolutionizing the music industry, how AI models are helping with the inception of music and finally to how Machine Learning is helping bridge gaps between producers and listeners at the distribution phase.

Meanwhile the second speaker showcased how he leveraged an ‘Agentic’ architecture to build an AI assistant app that is able to navigate, comprehend and work with his client through the client’s ecosystem such as slack or Outlook to deliver multi step solutions that are otherwise hard to automate.

Many attendees at the event were non-technical industry leaders, intrigued by AI’s potential to transform their businesses but lacking a clear understanding of its capabilities and limitations. Surrounded by diverse perspectives on AI’s impact, I gained new insights into its challenges and possibilities.

This article will explore how non-technical individuals can effectively navigate the AI revolution and outline five crucial questions to consider before incorporating AI into organizational workflows.

DISCLAIMER: This article will be non-technical, focusing on current trends, key methodologies, and frameworks for AI development, some technical lingo might be also used but be highlighted for your review. The term “AI” will primarily refer to large language models (LLMs) like GPT or Claude, though it’s evolving to include models that understand and generate images and videos.

Finally, this article exclusively represents my personal opinion in the matter, to be honest each point can be its own article. Having said that if you disagree or have more to add to the conversation, please feel free to add your comments below.

One: To AI or not to AI. What have companies like OpenAI brought up that is different from previously existing solutions?

To say that artificial intelligence technologies have evolved in the past three years is an understatement.

In the beginning if you needed a solution that required AI, organizations would use traditional Machine Learning.

Transformer models, the predecessors to Generative Pretrained Transformer (GPT), dominated the solutions landscape. These solutions, were well crafter but could only perform a single task such as Sentiment Analysis or Text Summarization and required a high level of Data Science knowledge to be leveraged.

Then came OpenAI with ChatGPT with its distinctive approach and capabilities but set them apart from earlier solutions was how little knowledge you needed to leverage its capabilities.

Here are a few key aspects where companies like OpenAI have made a difference:

  • Advanced Natural Language Processing (NLP): These AI models can understand and generate human-like text, providing an interaction quality that closely mimics human conversation.
  • Generalization Capabilities: Unlike traditional AI systems that are often designed for specific tasks, new models demonstrate a broader generalization capability. For example, these models can perform a variety of tasks like translation, summarization, code generation, and even image creation, without needing task-specific training and little knowledge.
  • Instruction and reasoning. Some of the new models have been trained to both understand human instructions and work out basic reasoning. Enabling its use in ways not possible before.
  • Accessibility and Scalability: OpenAI, Anthropic and Google have focused on making powerful AI models more accessible to the general public and businesses of all sizes. By offering APIs and cloud-based services, they’ve lowered the barriers to entry for using advanced AI, which allows even small startups to implement state-of-the-art AI technologies even with little to knowledge.
  • Open-Source Contributors: OpenAI’s work is not open-source; if you want to use their models, you have to pay. However its models build upon an open source architecture and most of the internet data available. Both things are free. Because of this other companies and organizations have taken up the mantle of contributing to an open-source alternative. For example, Meta’s ‘LLama’ models, or Mistrals ‘8–7B Mixtral of Experts’ have proven to be as good if not better than OpenAI in some benchmarks, helping to democratize AI development, usage and encourage innovation across the global tech community.

As AI and its uses continues to evolve, ongoing innovations will likely continue, new methodologies and approaches will to not only serve us but also transform our interaction with technology, democratizing it and changing it in fundamental ways.

Two: Build it in-house or use a vendor. Are my AI goals better served in-house, or can a third party deliver them?

Integrating artificial intelligence (AI) into business workflows presents a critical decision: whether to develop AI capabilities in-house or to outsource them to a specialized vendor. This choice should be informed by an analysis of the business’s specific needs, capabilities, and long-term goals.

In-house development:

From: https://www.reddit.com/r/ProgrammerHumor/

Pros:

  • Customization: Tailoring AI solutions specifically to the unique needs and nuances of the business. Vendors' goal is to deliver you the product you want, but at the end of the road, they are here to make money. Some companies will try to upsell or will cut corners to ensure that their profit margins meet their expectations regardless of your goals.
  • Control: Greater oversight over the development process, data security, and intellectual property. OpenAI is not discrete about the fact that every API call to its model is recorded and used to finetune its models. Depending on the size and type of work you are doing, using applications powered by it can potentially put you at risk of compromising company or client data or potentially sharing your intellectual property with competitors using the platform.
  • Integration: Easier integration with existing systems and workflows, allowing for more cohesive operational alignment.

Cons:

  • Cost: Significant upfront investment in talent acquisition, technology infrastructure, and ongoing maintenance.
  • Time: Longer development timelines, especially if starting without an established AI expertise base.
  • Risk: There is a higher risk of failure due to the potential lack of experience and the evolving nature of AI technologies.

Outsourcing to a vendor:

From: https://www.reddit.com/r/ProgrammerHumor/

Pros:

  • Expertise: Access to specialized knowledge and experience that can accelerate deployment and innovation.
  • Cost-efficiency: Potentially lower costs by avoiding the overhead associated with in-house development teams and infrastructure.
  • Scalability: Easier to scale solutions as the vendor likely has the resources and frameworks in place to support growth.

Cons:

  • Less customization: While some customization is possible, solutions may not be as tailored compared to in-house developed ones.
  • Dependency: Increased reliance on external entities for critical updates, support, and future development.
  • Data security: Potential concerns over data privacy and security, depending on the vendor’s protocols and the sensitivity of business data.

Businesses must weigh these factors based on their specific circumstances, including current technological capabilities, strategic focus, and resource availability. Whether building AI in-house or using a third-party vendor, the key is to ensure alignment with the business’s overarching goals and the flexibility to adapt as those goals evolve.

Three: A Sledgehammer for cracking nuts. Is AI the best solution for my organization's needs?

DALLE Generated Image

When considering integrating AI into your business processes, it’s crucial to determine whether AI is the right tool for the job. In this day in age avoiding the feeling of FOMO (fear of missing out) is as fundamental as being innovative. Before moving forward with AI, assess the specific challenges and needs of your organization.

Ask questions like: Is the problem we’re trying to solve complex enough to require AI? Could simpler solutions be more effective? A little secret no AI professional dears to share is that many business requirements can be delivered using traditional automation and programming. At the moment, traditional engineering is cheaper, more reliable, and more easy to build than AI applications.

A rule of thumb to determine if AI is the right tool for the job is to first ask yourself is if the inputs or the outputs are ambiguous in nature. LLMs are really good at understanding nuance and can further be finetuned to improve on this factor. For example a finetuned model used as a chatbot might be able to understand industry terminology (input) and then generate a response that matches what the users are looking for (output).

On the other hand, if your data is coming from a normalized/ standard source such as a database with well-defined structures and fields (inputs) and the output is a standard report to be sent to clients in relation to a standard subject (outputs), then engineering might be all you need.

Ensure that the implementation of AI doesn’t complicate processes unnecessarily. Choosing AI should be about enhancing efficiency and effectiveness, not just about adopting new technology for its own sake.

Four: Whoever gossips to you will gossip about you. How to leverage AI while being mindful of my organizations privacy and security needs?

Photo by Ansia Lasa on Unsplash

This section builds on the second point, delving more deeply into the themes of privacy and security.

When incorporating AI into your business operations, privacy and security must be paramount. It’s crucial to determine whether the AI models provided by vendors are “open source” or “closed source.” What does this mean? A “closed source” model, such as OpenAI’s ChatGPT 4, does not grant ownership of the model’s weights (the learned aspects) and files to the user. Interaction with such models typically occurs via an API call: user queries are sent through the API to generate responses, which are then relayed back to the user over the internet. Conversely, an “open source” model is hosted on a dedicated, often private server, which may be owned by you or a service provider such as AWS or Google Cloud Services.

It’s important to note that data used in interactions with many closed source models may be utilized to further refine these AI systems by the companies providing the service. Meaning that this could inadvertently expose sensitive information, such as personal client details, proprietary strategic insights, or copyrighted content to third parties. Be mindful, many vendors of AI solutions will not disclose the fact during their sales pitches, or they may claim that safeguards are in place to prevent data leaks from their end. Nonetheless, the risk remains.

On the flip side, using open-source AI models can offer greater control over your data, enhance privacy, and allow for model fine-tuning to meet specific needs. Open source models like Mixtral 8x 22b can rival the performance of top closed source models like Claude 3 Sonet, and some well-finuned small models can do better at some given tasks than models like Goolges Gemini.

However, opting for open source AI entails its own challenges, including the need for continuous maintenance and potentially significant expenses related to cloud hosting to handle the required computational power needed to generate them. Whether you use a vendor or manage it independently, these costs will ultimately be borne by the user. Carefully weigh these factors to ensure that your AI integration complies with your organization’s privacy and security standards while being mindful of the cost each approach can bring.

Five: Growth potential. Can AI integration help me now? How can it enable me reach my organizations full potential?

Photo by Markus Spiske on Unsplash

Integrating AI into your business operations offers immediate enhancements in efficiency and decision-making capabilities while also setting the stage for long-term growth.

However, to start, you must consider the cost associated with AI. Close source models pricing strategy usually comes to charging users by a number of ‘Tokens’ (a processed unit of data, in the NLP world usually a number of characters, around 3 to 5 on average) inputted and generated per inference. On the other hand open source models cost comes from hosting them. Larger LLMs (70 billion parameters +) usually require big expensive machines to run, while smaller (and not as good performing) can be cheaper to run but at the cost of less accuracy.

Whatever approach you decide to take, AI can automate routine tasks such as email generation, refine customer service through personalized interactions, and improve data analysis for the most challenging of sources, allowing you to make more informed decisions quickly.

Over time, since the first craze with GPT 3, models capabilities have increase dramatically, many models now have been highly trained to take instructions meaning that their use can evolve with your business, continuously improving processes based on new data via finetuning.

This dynamic adaptation not only helps maintain a competitive edge but also supports the scaling of operations without a proportional increase in overheads. Thus, AI integration not only meets immediate needs but also paves the way for achieving your organization’s full potential by driving innovation and delivering access to levels of operations that otherwise would be too cost prohibiting.

Conclusion:

As AI continues to evolve and become increasingly embedded in our everyday processes, you, as the user or implementer, must remain vigilant and informed. By asking the right questions, you can be empowered to harness the potential of AI to enhance efficiency, innovate, and ultimately drive sustainable growth, all while safeguarding your most valuable assets and adhering to high levels of privacy and security standards.

I hope you found this information valuable. If you have any further questions or comments, please feel free to leave them in the comments below. Thank you for reading.

Join thousands of data leaders on the AI newsletter. Join over 80,000 subscribers and keep up to date with the latest developments in AI. From research to projects and ideas. If you are building an AI startup, an AI-related product, or a service, we invite you to consider becoming a sponsor.

Published via Towards AI

Feedback ↓

Sign Up for the Course
`; } else { console.error('Element with id="subscribe" not found within the page with class "home".'); } } }); // Remove duplicate text from articles /* Backup: 09/11/24 function removeDuplicateText() { const elements = document.querySelectorAll('h1, h2, h3, h4, h5, strong'); // Select the desired elements const seenTexts = new Set(); // A set to keep track of seen texts const tagCounters = {}; // Object to track instances of each tag elements.forEach(el => { const tagName = el.tagName.toLowerCase(); // Get the tag name (e.g., 'h1', 'h2', etc.) // Initialize a counter for each tag if not already done if (!tagCounters[tagName]) { tagCounters[tagName] = 0; } // Only process the first 10 elements of each tag type if (tagCounters[tagName] >= 2) { return; // Skip if the number of elements exceeds 10 } const text = el.textContent.trim(); // Get the text content const words = text.split(/\s+/); // Split the text into words if (words.length >= 4) { // Ensure at least 4 words const significantPart = words.slice(0, 5).join(' '); // Get first 5 words for matching // Check if the text (not the tag) has been seen before if (seenTexts.has(significantPart)) { // console.log('Duplicate found, removing:', el); // Log duplicate el.remove(); // Remove duplicate element } else { seenTexts.add(significantPart); // Add the text to the set } } tagCounters[tagName]++; // Increment the counter for this tag }); } removeDuplicateText(); */ // Remove duplicate text from articles function removeDuplicateText() { const elements = document.querySelectorAll('h1, h2, h3, h4, h5, strong'); // Select the desired elements const seenTexts = new Set(); // A set to keep track of seen texts const tagCounters = {}; // Object to track instances of each tag // List of classes to be excluded const excludedClasses = ['medium-author', 'post-widget-title']; elements.forEach(el => { // Skip elements with any of the excluded classes if (excludedClasses.some(cls => el.classList.contains(cls))) { return; // Skip this element if it has any of the excluded classes } const tagName = el.tagName.toLowerCase(); // Get the tag name (e.g., 'h1', 'h2', etc.) // Initialize a counter for each tag if not already done if (!tagCounters[tagName]) { tagCounters[tagName] = 0; } // Only process the first 10 elements of each tag type if (tagCounters[tagName] >= 10) { return; // Skip if the number of elements exceeds 10 } const text = el.textContent.trim(); // Get the text content const words = text.split(/\s+/); // Split the text into words if (words.length >= 4) { // Ensure at least 4 words const significantPart = words.slice(0, 5).join(' '); // Get first 5 words for matching // Check if the text (not the tag) has been seen before if (seenTexts.has(significantPart)) { // console.log('Duplicate found, removing:', el); // Log duplicate el.remove(); // Remove duplicate element } else { seenTexts.add(significantPart); // Add the text to the set } } tagCounters[tagName]++; // Increment the counter for this tag }); } removeDuplicateText(); //Remove unnecessary text in blog excerpts document.querySelectorAll('.blog p').forEach(function(paragraph) { // Replace the unwanted text pattern for each paragraph paragraph.innerHTML = paragraph.innerHTML .replace(/Author\(s\): [\w\s]+ Originally published on Towards AI\.?/g, '') // Removes 'Author(s): XYZ Originally published on Towards AI' .replace(/This member-only story is on us\. Upgrade to access all of Medium\./g, ''); // Removes 'This member-only story...' }); //Load ionic icons and cache them if ('localStorage' in window && window['localStorage'] !== null) { const cssLink = 'https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css'; const storedCss = localStorage.getItem('ionicons'); if (storedCss) { loadCSS(storedCss); } else { fetch(cssLink).then(response => response.text()).then(css => { localStorage.setItem('ionicons', css); loadCSS(css); }); } } function loadCSS(css) { const style = document.createElement('style'); style.innerHTML = css; document.head.appendChild(style); } //Remove elements from imported content automatically function removeStrongFromHeadings() { const elements = document.querySelectorAll('h1, h2, h3, h4, h5, h6, span'); elements.forEach(el => { const strongTags = el.querySelectorAll('strong'); strongTags.forEach(strongTag => { while (strongTag.firstChild) { strongTag.parentNode.insertBefore(strongTag.firstChild, strongTag); } strongTag.remove(); }); }); } removeStrongFromHeadings(); "use strict"; window.onload = () => { /* //This is an object for each category of subjects and in that there are kewords and link to the keywods let keywordsAndLinks = { //you can add more categories and define their keywords and add a link ds: { keywords: [ //you can add more keywords here they are detected and replaced with achor tag automatically 'data science', 'Data science', 'Data Science', 'data Science', 'DATA SCIENCE', ], //we will replace the linktext with the keyword later on in the code //you can easily change links for each category here //(include class="ml-link" and linktext) link: 'linktext', }, ml: { keywords: [ //Add more keywords 'machine learning', 'Machine learning', 'Machine Learning', 'machine Learning', 'MACHINE LEARNING', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, ai: { keywords: [ 'artificial intelligence', 'Artificial intelligence', 'Artificial Intelligence', 'artificial Intelligence', 'ARTIFICIAL INTELLIGENCE', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, nl: { keywords: [ 'NLP', 'nlp', 'natural language processing', 'Natural Language Processing', 'NATURAL LANGUAGE PROCESSING', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, des: { keywords: [ 'data engineering services', 'Data Engineering Services', 'DATA ENGINEERING SERVICES', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, td: { keywords: [ 'training data', 'Training Data', 'training Data', 'TRAINING DATA', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, ias: { keywords: [ 'image annotation services', 'Image annotation services', 'image Annotation services', 'image annotation Services', 'Image Annotation Services', 'IMAGE ANNOTATION SERVICES', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, l: { keywords: [ 'labeling', 'labelling', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, pbp: { keywords: [ 'previous blog posts', 'previous blog post', 'latest', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, mlc: { keywords: [ 'machine learning course', 'machine learning class', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, }; //Articles to skip let articleIdsToSkip = ['post-2651', 'post-3414', 'post-3540']; //keyword with its related achortag is recieved here along with article id function searchAndReplace(keyword, anchorTag, articleId) { //selects the h3 h4 and p tags that are inside of the article let content = document.querySelector(`#${articleId} .entry-content`); //replaces the "linktext" in achor tag with the keyword that will be searched and replaced let newLink = anchorTag.replace('linktext', keyword); //regular expression to search keyword var re = new RegExp('(' + keyword + ')', 'g'); //this replaces the keywords in h3 h4 and p tags content with achor tag content.innerHTML = content.innerHTML.replace(re, newLink); } function articleFilter(keyword, anchorTag) { //gets all the articles var articles = document.querySelectorAll('article'); //if its zero or less then there are no articles if (articles.length > 0) { for (let x = 0; x < articles.length; x++) { //articles to skip is an array in which there are ids of articles which should not get effected //if the current article's id is also in that array then do not call search and replace with its data if (!articleIdsToSkip.includes(articles[x].id)) { //search and replace is called on articles which should get effected searchAndReplace(keyword, anchorTag, articles[x].id, key); } else { console.log( `Cannot replace the keywords in article with id ${articles[x].id}` ); } } } else { console.log('No articles found.'); } } let key; //not part of script, added for (key in keywordsAndLinks) { //key is the object in keywords and links object i.e ds, ml, ai for (let i = 0; i < keywordsAndLinks[key].keywords.length; i++) { //keywordsAndLinks[key].keywords is the array of keywords for key (ds, ml, ai) //keywordsAndLinks[key].keywords[i] is the keyword and keywordsAndLinks[key].link is the link //keyword and link is sent to searchreplace where it is then replaced using regular expression and replace function articleFilter( keywordsAndLinks[key].keywords[i], keywordsAndLinks[key].link ); } } function cleanLinks() { // (making smal functions is for DRY) this function gets the links and only keeps the first 2 and from the rest removes the anchor tag and replaces it with its text function removeLinks(links) { if (links.length > 1) { for (let i = 2; i < links.length; i++) { links[i].outerHTML = links[i].textContent; } } } //arrays which will contain all the achor tags found with the class (ds-link, ml-link, ailink) in each article inserted using search and replace let dslinks; let mllinks; let ailinks; let nllinks; let deslinks; let tdlinks; let iaslinks; let llinks; let pbplinks; let mlclinks; const content = document.querySelectorAll('article'); //all articles content.forEach((c) => { //to skip the articles with specific ids if (!articleIdsToSkip.includes(c.id)) { //getting all the anchor tags in each article one by one dslinks = document.querySelectorAll(`#${c.id} .entry-content a.ds-link`); mllinks = document.querySelectorAll(`#${c.id} .entry-content a.ml-link`); ailinks = document.querySelectorAll(`#${c.id} .entry-content a.ai-link`); nllinks = document.querySelectorAll(`#${c.id} .entry-content a.ntrl-link`); deslinks = document.querySelectorAll(`#${c.id} .entry-content a.des-link`); tdlinks = document.querySelectorAll(`#${c.id} .entry-content a.td-link`); iaslinks = document.querySelectorAll(`#${c.id} .entry-content a.ias-link`); mlclinks = document.querySelectorAll(`#${c.id} .entry-content a.mlc-link`); llinks = document.querySelectorAll(`#${c.id} .entry-content a.l-link`); pbplinks = document.querySelectorAll(`#${c.id} .entry-content a.pbp-link`); //sending the anchor tags list of each article one by one to remove extra anchor tags removeLinks(dslinks); removeLinks(mllinks); removeLinks(ailinks); removeLinks(nllinks); removeLinks(deslinks); removeLinks(tdlinks); removeLinks(iaslinks); removeLinks(mlclinks); removeLinks(llinks); removeLinks(pbplinks); } }); } //To remove extra achor tags of each category (ds, ml, ai) and only have 2 of each category per article cleanLinks(); */ //Recommended Articles var ctaLinks = [ /* ' ' + '

Subscribe to our AI newsletter!

' + */ '

Take our 85+ lesson From Beginner to Advanced LLM Developer Certification: From choosing a project to deploying a working product this is the most comprehensive and practical LLM course out there!

'+ '

Towards AI has published Building LLMs for Production—our 470+ page guide to mastering LLMs with practical projects and expert insights!

' + '
' + '' + '' + '

Note: Content contains the views of the contributing authors and not Towards AI.
Disclosure: This website may contain sponsored content and affiliate links.

' + 'Discover Your Dream AI Career at Towards AI Jobs' + '

Towards AI has built a jobs board tailored specifically to Machine Learning and Data Science Jobs and Skills. Our software searches for live AI jobs each hour, labels and categorises them and makes them easily searchable. Explore over 10,000 live jobs today with Towards AI Jobs!

' + '
' + '

🔥 Recommended Articles 🔥

' + 'Why Become an LLM Developer? Launching Towards AI’s New One-Stop Conversion Course'+ 'Testing Launchpad.sh: A Container-based GPU Cloud for Inference and Fine-tuning'+ 'The Top 13 AI-Powered CRM Platforms
' + 'Top 11 AI Call Center Software for 2024
' + 'Learn Prompting 101—Prompt Engineering Course
' + 'Explore Leading Cloud Providers for GPU-Powered LLM Training
' + 'Best AI Communities for Artificial Intelligence Enthusiasts
' + 'Best Workstations for Deep Learning
' + 'Best Laptops for Deep Learning
' + 'Best Machine Learning Books
' + 'Machine Learning Algorithms
' + 'Neural Networks Tutorial
' + 'Best Public Datasets for Machine Learning
' + 'Neural Network Types
' + 'NLP Tutorial
' + 'Best Data Science Books
' + 'Monte Carlo Simulation Tutorial
' + 'Recommender System Tutorial
' + 'Linear Algebra for Deep Learning Tutorial
' + 'Google Colab Introduction
' + 'Decision Trees in Machine Learning
' + 'Principal Component Analysis (PCA) Tutorial
' + 'Linear Regression from Zero to Hero
'+ '

', /* + '

Join thousands of data leaders on the AI newsletter. It’s free, we don’t spam, and we never share your email address. Keep up to date with the latest work in AI. From research to projects and ideas. If you are building an AI startup, an AI-related product, or a service, we invite you to consider becoming a sponsor.

',*/ ]; var replaceText = { '': '', '': '', '
': '
' + ctaLinks + '
', }; Object.keys(replaceText).forEach((txtorig) => { //txtorig is the key in replacetext object const txtnew = replaceText[txtorig]; //txtnew is the value of the key in replacetext object let entryFooter = document.querySelector('article .entry-footer'); if (document.querySelectorAll('.single-post').length > 0) { //console.log('Article found.'); const text = entryFooter.innerHTML; entryFooter.innerHTML = text.replace(txtorig, txtnew); } else { // console.log('Article not found.'); //removing comment 09/04/24 } }); var css = document.createElement('style'); css.type = 'text/css'; css.innerHTML = '.post-tags { display:none !important } .article-cta a { font-size: 18px; }'; document.body.appendChild(css); //Extra //This function adds some accessibility needs to the site. function addAlly() { // In this function JQuery is replaced with vanilla javascript functions const imgCont = document.querySelector('.uw-imgcont'); imgCont.setAttribute('aria-label', 'AI news, latest developments'); imgCont.title = 'AI news, latest developments'; imgCont.rel = 'noopener'; document.querySelector('.page-mobile-menu-logo a').title = 'Towards AI Home'; document.querySelector('a.social-link').rel = 'noopener'; document.querySelector('a.uw-text').rel = 'noopener'; document.querySelector('a.uw-w-branding').rel = 'noopener'; document.querySelector('.blog h2.heading').innerHTML = 'Publication'; const popupSearch = document.querySelector$('a.btn-open-popup-search'); popupSearch.setAttribute('role', 'button'); popupSearch.title = 'Search'; const searchClose = document.querySelector('a.popup-search-close'); searchClose.setAttribute('role', 'button'); searchClose.title = 'Close search page'; // document // .querySelector('a.btn-open-popup-search') // .setAttribute( // 'href', // 'https://medium.com/towards-artificial-intelligence/search' // ); } // Add external attributes to 302 sticky and editorial links function extLink() { // Sticky 302 links, this fuction opens the link we send to Medium on a new tab and adds a "noopener" rel to them var stickyLinks = document.querySelectorAll('.grid-item.sticky a'); for (var i = 0; i < stickyLinks.length; i++) { /* stickyLinks[i].setAttribute('target', '_blank'); stickyLinks[i].setAttribute('rel', 'noopener'); */ } // Editorial 302 links, same here var editLinks = document.querySelectorAll( '.grid-item.category-editorial a' ); for (var i = 0; i < editLinks.length; i++) { editLinks[i].setAttribute('target', '_blank'); editLinks[i].setAttribute('rel', 'noopener'); } } // Add current year to copyright notices document.getElementById( 'js-current-year' ).textContent = new Date().getFullYear(); // Call functions after page load extLink(); //addAlly(); setTimeout(function() { //addAlly(); //ideally we should only need to run it once ↑ }, 5000); }; function closeCookieDialog (){ document.getElementById("cookie-consent").style.display = "none"; return false; } setTimeout ( function () { closeCookieDialog(); }, 15000); console.log(`%c 🚀🚀🚀 ███ █████ ███████ █████████ ███████████ █████████████ ███████████████ ███████ ███████ ███████ ┌───────────────────────────────────────────────────────────────────┐ │ │ │ Towards AI is looking for contributors! │ │ Join us in creating awesome AI content. │ │ Let's build the future of AI together → │ │ https://towardsai.net/contribute │ │ │ └───────────────────────────────────────────────────────────────────┘ `, `background: ; color: #00adff; font-size: large`); //Remove latest category across site document.querySelectorAll('a[rel="category tag"]').forEach(function(el) { if (el.textContent.trim() === 'Latest') { // Remove the two consecutive spaces (  ) if (el.nextSibling && el.nextSibling.nodeValue.includes('\u00A0\u00A0')) { el.nextSibling.nodeValue = ''; // Remove the spaces } el.style.display = 'none'; // Hide the element } }); // Add cross-domain measurement, anonymize IPs 'use strict'; //var ga = gtag; ga('config', 'G-9D3HKKFV1Q', 'auto', { /*'allowLinker': true,*/ 'anonymize_ip': true/*, 'linker': { 'domains': [ 'medium.com/towards-artificial-intelligence', 'datasets.towardsai.net', 'rss.towardsai.net', 'feed.towardsai.net', 'contribute.towardsai.net', 'members.towardsai.net', 'pub.towardsai.net', 'news.towardsai.net' ] } */ }); ga('send', 'pageview'); -->