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

This AI newsletter is all you need #40
Latest   Machine Learning

This AI newsletter is all you need #40

Last Updated on July 25, 2023 by Editorial Team

Author(s): Towards AI Editorial Team

Originally published on Towards AI.

What happened this week in AI by Louis

With the surging demand for generative AI, this week saw preparatory developments for the next wave of AI. Companies are fast-tracking the development of AI products, and generative AI tools are closer to becoming consumer products than ever before. They are already becoming powerful assistants for writers and programmers and rapidly taking on more challenges. The open-source community is also making significant progress in running local LLMs.

For instance, Facebook’s LLama model has continued to be a focal point for building in the academic and open source community following the leaked weights on 4Chan. One outcome of this is the development of llama.cpp, authored by the creator of whisper.cpp. This new tool has demonstrated that it is possible to run an LLM on an M1 Mac. Following the recent Llama Alpaca model Databricks has also recently released Dolly, which can equip an outdated open-source large language model (LLM) with ChatGPT-like instruction-following abilities. This is done by training it on high-quality data for 30 minutes on a single machine. This ability doesn’t require the latest or largest models, as Dolly only has 6 billion parameters, much less than GPT-3’s 175 billion. The code for Dolly is open-sourced, and the paper outlines how to create it on Databricks. Models like Llama Alpaca and Dolly may help to democratize LLMs, making them an accessible commodity that can be tailored to every company’s needs.

With the pace of generative AI development, Nvidia has accelerated the rollout of new hardware as well as a new AI cloud business model. NVIDIA’s latest product announcements at GTC have positioned the company’s AI compute platforms, such as the NVIDIA H100 NVL, L4, L40, and Grace Hopper to meet the growing demand for AI and are tailored for specific training and inferencing tasks.

OpenAI has continued its rapid execution of news and feature releases with the announcement of ChatGPT plugins. These plugins can significantly enhance the capabilities of GPT 3 and 4 with browsing, information retrieval, code execution, and also third-party plugins. This has fueled lots of speculation on whether these plugins will become the new “App store” for LLMs or even something more, for example, the excellent blog from Not Boring — OpenAI’s ChatGPT Plugins and the emergence of an Apex Aggregator.

The increased availability of generative AI-specific compute, the progress towards open-source tools, the increased capabilities of leading LLMs and a product-oriented approach to generative AI applications indicate that we have entered a new phase in the commercialization of AI. This is where AI is revealing more of its true power to revolutionize the way we work, interact, create, play, and engage with technology, information, and people. Although current leading LLM AI models may still be challenging to run on personal hardware, we might soon see a demo showcasing an open-source model running on a phone.

Hottest News

  1. ChatGPT plugins

OpenAI is currently testing new ChatGPT plugins with select users before launching them for widespread use. These plugins are tools that are specifically designed for language models, with safety as a core principle. They assist ChatGPT in accessing up-to-date information, running computations, and utilizing third-party services.

2. Stable Diffusion Reimagine — Stability AI

Stability AI has recently launched Stable Diffusion Reimagine, a new Clipdrop tool that enables users to generate multiple variations of a single image without any limitations. However, the tool has certain limitations and biases, but the company has plans to open-source it soon to make further improvements.

3. GitHub Copilot X: The AI-powered developer experience

GitHub has launched GitHub Copilot X, which leverages OpenAI’s GPT-4 to provide a chat interface and voice-to-code AI for developers. This new developer experience enables Copilot to work with pull requests, command lines, and documentation to answer questions about your projects.

4. Meet Bard

Bard, a Google AI experiment, aims to enhance creativity and productivity by collaborating with users. It employs generative AI technology to facilitate collaboration. Bard includes safety controls and feedback mechanisms; however, it may occasionally display inaccurate information or offensive statements.

5. Releasing Alpaca-30B

A recent paper from Tatsu Lab introduced Alpaca, an “instruction-tuned” version of Facebook’s Llama model. The post details the release of Alpaca-30B, the benefits of fine-tuning, usage instructions, and community involvement.

Three 5-minute reads/videos to keep you learning

  1. AI trends in 2023: Graph Neural Networks

GNNs, or graph neural networks, are powerful tools for processing graph data and understanding entity relationships. They have seen exponential growth in published research and are expected to continue to rise in popularity. This article will recap some of the highly impactful applications of GNNs and provide an overview of what to expect for the next big wave in AI.

2. Using AI to make teaching easier & more impactful

AI has been shown to enhance learning in classrooms by offering tailored experiences, generating examples, providing feedback, creating study groups, and conducting diagnostic tests. This article provides a summary of the five effective teaching strategies discussed in the paper titled “Using AI to Implement Effective Teaching Strategies in Classrooms: Five Strategies, Including Prompts”.

3. ChatGPT + Code Interpreter = Magic

OpenAI’s ChatGPT has expanded its capabilities with the integration of third-party tools, including a Code Interpreter that enables the generation and execution of code, data analysis, and spreadsheet graphing. This article explores the new features and expanded capabilities of ChatGPT, providing a range of examples for integrating tools such as the Code Interpreter.

4. The Age of AI has begun

The advancements in AI are set to revolutionize various aspects of life, including work, education, healthcare, travel, and communication. This article delves into the opportunities and responsibilities that come with the Age of AI and discusses its impact on industries such as healthcare and education.

5. Getting started with Pytorch 2.0 and Hugging Face Transformers

This blog post offers a comprehensive guide on how to leverage the new features of PyTorch 2.0, such as TorchDynamo, AOTAutograd, PrimTorch, and TorchInductor, to enhance performance. It also provides step-by-step instructions on how to use PyTorch 2.0 and Hugging Face Transformers to fine-tune a BERT model for text classification.

Papers & Repositories

  1. Databricks’ Dolly

Dolly, a large language model trained on the Databricks Machine Learning Platform, shows that a two-year-old open-source model like GPT-J can exhibit high-quality instruction following behavior. Fine-tuning Dolly for just 30 minutes on a focused corpus of 50k records (Stanford Alpaca) demonstrates an impressive level of performance not characteristic of the foundation model on which it is based.

2. Sparks of Artificial General Intelligence

This paper investigates the early version of GPT-4 during its active development at OpenAI. The focus of this report is on identifying its limitations and the challenges that lie ahead in advancing toward deeper and more comprehensive versions of AGI. It also explores the possibility of pursuing a new paradigm that goes beyond next-word prediction.

3. GPTs are GPTs: An Early Look at the Labor Market Impact Potential of Large Language Models

This paper explores the potential implications of large language models (LLMs), specifically Generative Pre-trained Transformers (GPTs), on the U.S. labor market. The study found that GPTs could potentially displace tasks performed by up to 10% of workers, with 80% of workers facing some level of displacement, and 19% experiencing more than 50% displacement.

4. MM-ReAct: Prompting ChatGPT for Multimodal Reasoning and Action

This paper presents MM-REACT, which integrates ChatGPT with a pool of vision experts to achieve multimodal reasoning and action. It explores advanced vision tasks that may exceed the capabilities of existing models and introduces a textual prompt design that represents text descriptions, textualized spatial coordinates, and dense visual signals, such as images and videos, as aligned file names.

5. Vid2Seq: a pretrained visual language model for describing multi-event videos

Google has introduced a paper titled “Vid2Seq: Large-Scale Pretraining of a Visual Language Model for Dense Video Captioning” which will appear at CVPR 2023. The paper describes the Vid2Seq architecture, which adds time tokens to a language model, enabling it to predict event boundaries and textual descriptions in the same output sequence.

The Learn AI Together Community section!

Upcoming Community Events

The Learn AI Together Discord community hosts weekly AI seminars to help the community learn from industry experts, ask questions, and get a deeper insight into the latest research in AI. Join us for free, interactive video sessions hosted live on Discord weekly by attending our upcoming events.

  1. NN Architecture Seminar, emptyshore on 3D- PMRNN

This week, emptyshore will present the neural network architecture described in the paper “3D-PMRNN: Reconstructing three-dimensional porous media from two-dimensional images with recurrent neural network” during a seminar. The session will not be recorded, so join us live for the first seminar here or add it to your calendar here!

Date & Time: 28th March, 9:00 pm EST

Add our Google calendar to see all our free AI events!

Meme of the week!

Meme shared by Recruiter6061#8864

Featured Community post from the Discord

We’re excited to share that FromCommunity has seen tremendous success since we enabled invite-only access just 2 months ago and received over 2,500 job applications from talented developers from amazing tech communities. FromCommunity helps companies hire directly from open-source and Tech communities. And now, with the help of ChatGPT, we’re expanding our platform’s capabilities by evaluating candidates’ coding skills and automating our communication with them. Find us on ProductHunt, your support, and feedback would mean the world to us!

AI poll of the week!

Join the discussion on Discord.

TAI Curated section

Article of the week

Drift Detection Using TorchDrift for Tabular and Time-series Data by Rahul Veettil

Machine learning models are created to make predictions based on data. However, the data in the real world is constantly changing, and this can affect the model’s accuracy. This phenomenon is known as data drift, which can cause incorrect predictions and poor performance. In this blog post, the author discusses how to detect data drift using the Python library TorchDrift.

Our must-read articles

Correlation and Causation: What are the Differences? by Cornellius Yudha Wijaya

Unlocking New Insights with Vision Transformer by Anay Dongre

If you want to publish with Towards AI, check our guidelines and sign up. We will publish your work to our network if it meets our editorial policies and standards.

Job offers

Lead Data Engineer, Kafka @ASAPP (Hybrid/Bangalore, India)

Senior DevOps Engineer @Labelbox (Remote)

Senior Software Engineer @Mercari (Remote)

Director/ Sr. Director, Scientific Data Design @Treeline Biosciences (Remote)

Senior Data Engineer @Grindr (Remote)

Senior AI Software Engineer @ Spot AI (Remote)

Interested in sharing a job opportunity here? Contact sponsors@towardsai.net.

If you are preparing your next machine learning interview, don’t hesitate to check out our leading interview preparation website, confetti!

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

JOIN NOW!

Gain exclusive access to top AI tutorials, courses, and books to elevate your skills.

    We won't send you spam. Unsubscribe at any time.

    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'); -->