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

Artificial Intelligence   Latest   Machine Learning

TAI #108:Conflicting Developments in the AI Regulation Debate

Author(s): Towards AI Editorial Team

Originally published on Towards AI.

What happened this week in AI by Louie

The ongoing debate over AI regulation gained focus again this week, with both positive and negative newsflow for the future of open-source AI. There is an inevitable tension between innovation and regulatory efforts to ensure AI safety. Do open-source AI and open-weight models aid safety by distributing power and allowing more eyes to investigate and address LLM safety risks? Or is it a safety risk as it makes it easier for bad actors to adapt these models to their purposes? Are some lobbying for AI safety primarily concerned with safety or establishing barriers to competition? Proposed regulations like California’s SB 1047 are at the center of this discussion, which has sparked considerable concern among AI researchers and developers. Antitrust concerns over big tech’s dominance in AI were also in focus, with Microsoft giving up its OpenAI board seat.

Andrew Ng added his voice to this debate, expressing deep concerns about California’s SB 1047, which continues to progress through the assembly. Ng argued that the bill’s vague and complex requirements could stifle innovation and disproportionately harm open-source contributors. He advocated for regulations focused on specific AI applications rather than broad, ambiguous mandates.

With unhelpful timing, the U.S. Department of Justice announced a successful operation to disrupt a Russian government-backed AI-enabled propaganda campaign. While LLM-assisted propaganda so far has perhaps been less widespread than feared, and in any case, we haven’t solved human propaganda either, this highlights the potential for AI to be used in harmful ways and adds risks of stricter regulations.

Contrasting with the potential open-source AI regulatory crackdown in California, the Federal Trade Commission (FTC) expressed strong support for open-weight and open-source AI models. The FTC noted that these models can drive innovation, reduce costs, and increase consumer choice, providing significant public benefits. However, the FTC also acknowledged the challenges and potential risks associated with open-source AI, calling for careful consideration of their impact on the market and consumers.

Finally — Donald Trump’s choice of Senator J.D. Vance as his vice-presidential candidate is potentially significant for AI regulation. Vance has voiced strong opinions on the risks associated with AI bias, particularly criticizing what he perceives as a left-wing bias in AI models. His comments highlighted fears that biased AI models could corrupt the information economy and emphasized the importance of open-source models as a solution to counteract these influences.

Why should you care?

The future of AI regulation is a key issue for the future pace of AI innovation and the concentration of power as AI adoption grows. For developers, understanding and navigating these regulations will be essential. The fear of legal repercussions could deter innovation, limit the release of new AI technologies, and particularly impact individuals and smaller startups. For the public, these developments underscore the importance of AI governance in protecting against misuse while fostering innovation that can benefit society.

As AI continues to evolve, the decisions made now regarding its regulation will have long-lasting impacts. Stakeholders across the board must engage in these discussions to ensure a balanced approach that promotes both safety and innovation. The open-source community, in particular, faces a pivotal moment that will determine its role in the future of AI. Let’s stay informed and proactive in shaping a future where AI can be both safe and innovative!

Louie Peters — Towards AI Co-founder and CEO

If you enjoy reading our newsletterplease forward it to friends and colleagues! We try to add value by filtering and adding our thoughts to the overwhelming AI newsflow each week, and help sharing our content is always appreciated.

We are excited to announce our latest ‘shortcut’ video series on LLMs and GenAI research, an extension of our partnership with O’Reilly.

What’s Inside? Access to 10-minute introductory videos on the latest concepts and research in LLMs.

LLMs [Series 1]: Learn the latest approaches and techniques, including RAG, MoE models, building multimodal models, and improving LLM performance.

Generative AI Research Papers [Series 2]: Explore cutting-edge research in Generative AI with easy-to-understand explanations of the latest papers.

If you are an O’Reilly subscriber, you can watch the video series or read our latest book for free. Or sign up for a 10-day free trial here!

Hottest News

1.FlashAttention-3: Fast and Accurate Attention with Asynchrony and Low-precision

FlashAttention-2 is widely used by most libraries to accelerate Transformer training and inference, already making attention faster on GPUs by minimizing memory reads/writes, but it has yet to take advantage of the latest H100s. FlashAttention-3 achieves a 1.5–2x speedup, reaching up to 740 TFLOPS on FP16 and nearly 1.2 PFLOPS on FP8. This increases GPU utilization to 75% of the theoretical maximum on H100s, up from 35% for FlashAttention-2. We think this is an important step in reducing the cost of the next generation of LLMs and may trigger the start of some major training runs.

2. New Leading 8k Output Tokens Available for Sonnet 3.5 in Claude API

Anthropic doubled the ‘maximum output’ token limit for Claude 3.5 Sonnet from 4096 to 8192 in the Anthropic API — we think this is significant as, despite the huge progress in expanding input token context windows (to 2 million+), output tokens can still be a constraint for many applications (such as translation and conversion tasks). Anthropic also made fine-tuning available for Haiku 3.0 in Amazon Bedrock. The fine-tuning API is currently available in preview.

3. Excitement Growing for Imminent New LLM Releases: LLama 3 405B and New Models in LMSYS Arena

The Information reported that META will release LLama 3 405B on July 23rd. We also saw three more new models appear for testing in LMSYS Arena; ‘upcoming-gpt-mini’, ‘column-u’, and ‘column-r’. This is where GPT4o was first secretly tested shortly before release, but it is unclear which company or companies the new models come from.

4. Microsoft Gives Up Observer Seat on OpenAI Board

Microsoft has stepped down from its observer seat on OpenAI’s board, which OpenAI noted reflected confidence in OpenAI’s trajectory under CEO Sam Altman. The move streamlines Microsoft’s relationship with OpenAI and we think it is likely motivated in part to address and reduce antitrust concerns regarding Microsoft’s influence over the company. OpenAI will not offer future observer roles, preferring direct partnership interactions, as with Microsoft and Apple.

5. OpenAI Secret Project “Strawberry” Aims To Boost AI Reasoning Power

Project Strawberry is OpenAI’s latest effort to improve AI reasoning. While the exact details are kept under wraps, it’s reportedly a significant leap forward in LLM capability. The project aims to enable AI models to plan ahead, understand the world more like humans do, and easily tackle complex multi-step problems. A different source also noted that internal models at OpenAI had scored over 90% on a MATH dataset (championship math problems).

6. OpenAI unveils five-level scale to AGI, aims to reach level 2 soon

OpenAI has created an internal five-level scale to track its large language models’ progress toward AGI. Potentially related to its project “Strawberry” above, it is reportedly on the cusp of achieving Level 2. Level 2 is “Reasoner,” demonstrating human-like problem-solving and characterized by advanced logic and reasoning. Level 3 is AI Agents that work on tasks and actions for days at a time.

7. Meta Researchers Distill System 2 Thinking Into LLMs, Improving Performance on Complex Reasoning

In a new paper, researchers at Meta FAIR present “System 2 distillation,” a technique that teaches LLMs complex tasks without requiring intermediate steps. In this research, Meta integrated System 2’s intricate reasoning methods (such as Chain-of-Thought) into the faster System 1 processes in LLMs.

Five 5-minute reads/videos to keep you learning

1. In-Depth Understanding of Vector Search for RAG and Generative AI Applications

This article focuses on vector search in RAG; it discusses why we need a vector search in RAG applications and how vectors and vector databases work. It also explores what makes Azure AI Search a good retrieval system and how it integrates.

2. Prompt Engineering Techniques and Best Practices: Learn by Doing With Anthropic’s Claude 3 on Amazon Bedrock

This post shows how to build efficient prompts for your applications. It uses Amazon Bedrock playgrounds and Anthropic’s Claude 3 models to demonstrate how to build efficient prompts by applying simple techniques. It also talks about the anatomy of a prompt and presents an in-depth prompt example for Retrieval Augmented Generation.

3. Principles of Reinforcement Learning: An Introduction With Python

This article introduces fundamental principles and offers a beginner-friendly example of reinforcement learning. It explains the key terms in RL, its steps, algorithms, and implementation in Python.

4. Preventing Prompt Injection in OpenAI: A Case Study With Priceline’s OpenAI Tool “Penny”

This article suggests steps to mitigate prompt injections. It also proposes solutions like testing a better model, fully adapting a list of known patterns, running adversarial finetuning, and more.

5. A Data Leader’s Technical Guide to Scaling Gen AI

This article will cover three actions that data and AI leaders can consider to move from gen AI pilots to scaling data solutions. It focuses on how organizations can strengthen the quality and readiness of their data, examines how organizations can use gen AI to build better data products, and explores key data-management considerations.

Repositories & Tools

  1. Storm is an LLM-powered knowledge curation system that researches a topic and generates a full-length report with citations.
  2. MobileLLM optimizes sub-billion parameter language models for on-device use cases.
  3. LightRAG is a modular library like PyTorch for building LLM applications like chatbots and code generation, featuring a RAG pipeline.
  4. Tabby is a self-hosted AI coding assistant offering an open-source and on-premises alternative to GitHub Copilot.

Top Papers of The Week

  1. CRAG — Comprehensive RAG Benchmark

This paper introduces the Comprehensive RAG Benchmark (CRAG), a factual question-answering benchmark of 4,409 question-answer pairs, and mock APIs to simulate web and Knowledge Graph (KG) search. It contains diverse questions across five domains and eight question categories. It reflects varied entity popularity from popular to long-tail and temporal dynamisms ranging from years to seconds.

2. MambaVision: A Hybrid Mamba-Transformer Vision Backbone

This paper proposes a novel hybrid Mamba-transformer backbone. The work redesigns the Mamba formulation to enhance its capability for efficient modeling of visual features. The MambaVision models achieve a new State-of-the-Art (SOTA) performance in terms of Top-1 accuracy and image throughput.

3. MJ-Bench: Is Your Multimodal Reward Model Really a Good Judge for Text-to-Image Generation?

MJ-Bench is a new benchmark for evaluating multimodal reward models that provide feedback on text-to-image generation technologies, such as DALLE-3 and Stable Diffusion. It tests models on criteria such as alignment, safety, image quality, and bias. Notably, the benchmark found that closed-source VLMs like GPT-4o excel in providing effective feedback.

4. Distilling System 2 into System 1

This work examines the integration of System 2’s intricate reasoning methods (such as Chain-of-Thought) into the faster System 1 processes in LLMs. By employing self-supervised learning, the authors have improved System 1 performance and lowered computation costs by embedding System 2’s reasoning capabilities into System 1, suggesting a more efficient approach to handling complex reasoning in AI.

Quick Links

1. Towards AI recently tested Launchpad by Latitude.sh, a container-based GPU cloud for inference and fine-tuning. Launchpad’s notable feature is its advanced, high-level dedicated container-based GPUs, capable of handling the significant computational demands of AI workloads.

2. Our friends at Mira have come out of stealth and announced their $9m seed raise. Mira is building decentralized AI infrastructure. They abstract AI infrastructure into “Flows”, a new AI building block that combines models, data & compute into a specific instruction set. Developers leverage Flows to minimize overhead & contributors publish diverse Flows on Mira, creating an ecosystem of AI resources. Mira already has over a dozen teams leveraging their Flow Market, contributing complex AI products across various sectors. Get early access to their platform here!

3. Amazon’s AI-powered shopping assistant, Rufus, is now available for all U.S. customers in the Amazon mobile app. The AI chatbot has been trained on Amazon’s product catalog, customer reviews, community Q&As, and other public information.

4. AWS launched App Studio to build internal enterprise applications from a written prompt. Amazon defines enterprise apps as having multiple UI pages that can pull from various data sources, perform complex operations like joins and filters, and embed business logic.

5. Patronus AI unveiled Lynx, an open-source model designed to detect and mitigate hallucinations in LLMs. Lynx outperforms industry giants like OpenAI’s GPT-4 and Anthropic’s Claude 3 in hallucination detection tasks, representing a significant leap forward in AI trustworthiness.

6. Intel Capital Backs AI Construction Startup That Could Boost Intel’s Own Manufacturing Prospects Intel Capital is leading a $15 million investment into Buildots, a company that uses AI and computer vision to create a digital twin of construction sites. Buildots, which uses AI and computer vision to create digital twins of construction sites, has now raised $121 million.

Who’s Hiring in AI

Senior Machine Learning Engineer, Generative AI, AGI Inference Engine @Amazon (Poland)

Senior Software Engineer — Frontend, Generative AI @Scale AI (New York, NY, USA)

Solutions Architect, Generative AI Specialist @NVIDIA (USA/Remote)

Senior Generative AI Developer @Varicent (Canada/Remote)

Senior ML/AI Researcher — Game AI @Regression Games (USA/Remote)

Data Entry Specialist @Capri Healthcare Ltd (UK/Remote)

Technical Consultant @Salesforce (USA/Remote)

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

If you are enjoying our latest book, Building LLMs for Production, could you take a moment to drop an honest review?

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