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 #69
Artificial Intelligence   Latest   Machine Learning

This AI newsletter is all you need #69

Last Updated on November 5, 2023 by Editorial Team

Author(s): Towards AI Editorial Team

Originally published on Towards AI.

What happened this week in AI by Louie

Google joined the likes of Microsoft and Adobe to announce that they will be committed to safeguarding users of their AI services from potential lawsuits related to Intellectual Property violations, provided that these users utilize Google Cloud (Vertex AI) and Workspace (Duet AI) platforms. The press release, however, made no mention of the AI ChatBot Bard and clarified that it would not extend its protection to situations in which users deliberately attempt to “infringe the rights of others.” Although it is true that AI-related lawsuits typically focus on the companies that have implemented the technology rather than the end-users utilizing the platform, it still seems like a wise reassurance for corporations to incorporate Google AI services into their products.

In other news, XLANG Lab has unveiled Lemur-70B and its chat variant, with the goal of developing a model that excels in text generation, coding capabilities and agent tasks. This sets it apart from other open source models that typically specialize in one area or the other. The concept centers around the notion that for an agent to excel in reasoning and executing real-world tasks, it must demonstrate a high level of accuracy in both language comprehension and coding skills. They pre-trained the LLaMA-2 model using a 90B token dataset, which maintained a 1-to-1 ratio between text and coding samples to create the Lemur mode. They then applied supervised fine-tuning using a dataset comprising 300,000 examples to fine-tune the model, leading to the development of Lemur-Chat. The model can outperform other open-source models by a significant margin while achieving performance similar to that of GPT-3.5. They have also made their code and, most importantly, their dataset available, which will contribute to advancing the field.

– Louie Peters — Towards AI Co-founder and CEO

This issue is brought to you thanks to AI Infrastructure Alliance:

This AI newsletter is all you need #69

The AI Infrastructure Alliance just released a big technical guide to Agents, LLMs, and Smart Apps. It covers prompt engineering, major frameworks like LlamaIndex, LangChain, and Semantic Kernel, vector DBs, fine-tuning, open and closed source models, common app design patterns, LLM logic and reasoning, and more. GPT created the current generative AI craze, but its apps that do real work will unleash the next wave of AI software, and this guide gets you started building those apps right.

Get your free copy now!

Announcing Towards AI’s AI Tutor

Last week, we released our LLM course. We are excited to announce another related project: our own AI tutor!

Thanks to the thousands of articles published under the Towards AI publication, all the content from our LangChain and LLM course, and other great available sources like Huggingface Transformers and Wikipedia, we were able to build a powerful retrieval augmented generation (RAG)-based chatbot that can answer any AI-related question and even credit its sources!

RAG is a powerful approach to reducing hallucination risks and providing a way to reference the knowledge shared by a chatbot so you can dive in and learn more. So, the only thing required to build such an AI tutor is an excellent chatbot (GPT), a great knowledge base (Towards AI), and some handwork.

We are excited to announce it is live and free! Please try it and give us feedback on how to improve it! Are the responses too short, too detailed, and wrong sources…? Help us make it better for you! We plan to keep improving it and keep it free for all our students!

Try our question-and-answer (Q&A) chatbot built for the GenAI 360 suite, which can answer questions for anything LLM-related!

Hottest News

1.AI Just Deciphered an Ancient Herculaneum Scroll Without Unrolling It

A 21-year-old student from the University of Nebraska-Lincoln used AI to decipher Greek letters from an unopened scroll discovered after the eruption of Mount Vesuvius in 79 AD. Using a machine learning algorithm, the student successfully identified over 10 Greek characters, including “porphyras,” meaning purple, and won the Vesuvius Challenge.

2. Google To Defend Generative AI Users From Copyright Claims

Google has joined other tech giants in defending users of generative artificial intelligence systems in its Google Cloud and Workspace platforms if they are accused of intellectual property violations. While they offer indemnity for software such as Vertex AI and Duet AI, intentional content manipulation for copyright infringement is not covered.

3. Introducing Lemur: Open Foundation Models for Language Agents

XLANG Lab introduced Lemur-70B, a new open-source LLM. It surpasses other models in agent benchmarks and excels in language and coding tasks. It achieves performance levels similar to GPT-3.5-turbo on code tasks, narrowing the performance gap with commercial models in agent abilities.

4. ChatGPT’s Mobile App Hit a Record of $4.58M in Revenue Last Month, but Growth Is Slowing

In September, ChatGPT’s mobile app experienced record downloads and revenue globally, with 15.6 million downloads and $4.6 million in revenue. However, the growth rate has decreased from 30% to 20%, suggesting possible market saturation for the $19.99 ChatGPT+ subscription.

5. OpenAI Has Quietly Changed Its ‘Core Values’

OpenAI quietly revised all of the “Core Values” listed on its website in recent weeks, emphasizing the development of AGI. It described AGI as “highly autonomous systems that outperform humans at most economically valuable work.” The previous values resemble those of a research lab, while the new ones are more similar to startup jargon.

Five 5-minute reads/videos to keep you learning

1.Free Course on Training & Fine-Tuning LLMs for Production

This free course on training & fine-tuning LLMs for production provides insights into topics such as the introduction to LLMs, understanding Transformers and GPT architectures, training and fine-tuning LLMs, improving LLMs with RLHF and deploying LLMs.

2. A Case for GPT-4’s Capacity To Reason

The ability to reason and solve problems remains a topic of interest in LLMs like GPT. This article presents how GPT-4 can simulate human-like reasoning when prompted with riddles and logic puzzles. Still, biases and hallucinations can impact its judgment.

3. Fine-Tuning ChatGPT Surpassing GPT-4 Summarization Performance

Researchers have found that by using a synthetic dataset created with GPT-4 and the CoD prompting technique, GPT3.5 can outperform GPT-4 in news article summarization. This fine-tuned version of GPT3.5 is not only 11 times faster but also 63% more cost-effective compared to GPT-4 zero-shot while still achieving similar performance with CoD prompting.

4. 7 Tips To Mitigate Hallucinations and Biases in Large Language Models

This article dives deeper into the strategies to mitigate hallucinations and biases in large language models. It discusses tips to combat these tendencies of LLMs, such as inference parameter tweaking, prompt engineering, and more advanced techniques to enhance the reliability and accuracy of your LLMs.

5. Researchers Discover Emergent Linear Structures in How LLMs Represent Truth

Researchers have discovered linear structures in Large Language Models that separate true and false examples, indicating the presence of an internal “truth axis.” Their work provides several strands of evidence that LLM representations may contain a specific “truth direction” denoting factual truth values.

Papers & Repositories

1.Prometheus: Inducing Fine-grained Evaluation Capability in Language Models

Prometheus, an open-source LLM, offers a cost-effective alternative to proprietary LLMs like GPT-4 for large-scale task evaluation. Using score rubrics and user-defined instructions, Prometheus demonstrates comparable performance to GPT-4 and outperforms models like ChatGPT, as indicated by experimental results.

2. Fine-tuning Aligned Language Models Compromises Safety, Even When Users Do Not Intend To

Finetuning LLMs can compromise their safety alignment and lead to potential risks. Even a few adversarial training examples can jailbreak the safety guardrails of models like GPT-3.5 Turbo. Fine-tuning with harmful and benign datasets can inadvertently degrade the safety alignment of language models.

3. The Dawn of LMMs: Preliminary Explorations with GPT-4V(ision)

A study on GPT-4V reveals that we are at the beginning of Large Multimodal Models (LMMs), showcasing its potential in various tasks such as image descriptions, object localization, multimodal knowledge, coding with vision, emotional quotient tests, and applications in industries like medical and auto insurance.

4. SWE-bench: Can Language Models Resolve Real-World GitHub Issues?

Language models like LLMs have a long way to go in resolving real-world issues on GitHub, according to a recent study. Proprietary models such as Claude 2 and GPT-4 were able to solve only a small percentage of cases in an evaluation framework called SWE-bench.

5. Retrieval meets Long Context Large Language Models

A study comparing retrieval-augmentation and extended context window approaches in downstream tasks found that using a 4K context window with simple retrieval techniques can achieve similar performance to a 16K window. The best-performing model, retrieval-augmented LLaMA2–70B, with a 32K window, outperformed GPT-3.5-turbo-16k in question-answering and summarization tasks.

Enjoy these papers and news summaries? Get a daily recap in your inbox!

The Learn AI Together Community section!

Meme of the week!

Meme shared by rucha8062

Featured Community post from the Discord

Hassan_0707 created Oria Windows, allowing users to control their PC with OpenAI. It integrates Open Interpreter and ChatGPT into the Windows environment to offer the power of automation, data manipulation, web scraping, and natural language understanding. Check it out here and support a fellow community member! Share your feedback and questions in the thread.

AI poll of the week!

Join the discussion on Discord.

TAI Curated section

Article of the week

Top Important LLM Papers for the Week from 2/10 to 8/10 by Youssef Hosni

This article summarizes some of the most essential LLM papers published during the first week of October. The papers cover various topics shaping the next generation of language models, from model optimization and scaling to reasoning, benchmarking, and enhancing performance. The final sections discuss papers on training LLMs safely and ensuring their behavior remains beneficial.

Our must-read articles

LangChain 101: Part 2d. Fine-tuning LLMs with Human Feedback by Ivan Reznikov

A Gentle Introduction To Large Language Models by Abhishek Chaudhary

Inventory Optimization with Data Science: Hands-On Tutorial with Python by Peyman Kor

If you are interested in publishing 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

AI Technical Writer and Developer for LLMs @Towards AI Inc (Freelancer/Remote)

Principal, Open Source ML Engineer @Amazon (USA/Remote)

Sr. Product Manager — AI @Softheon (Remote)

Data QA Engineer @Zyte (Remote)

Machine Learning Engineer @Sifted.eu (Remote)

ML Data Associate II @Amazon (India/Remote)

Product Manager, Hive Data @Hive (San Francisco, CA, USA)

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!

https://www.confetti.ai/

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