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

Pattern Paradox: The Self-Reinforcing Nature of The Pattern Architecture & Systems
Artificial Intelligence   Data Science   Latest   Machine Learning

Pattern Paradox: The Self-Reinforcing Nature of The Pattern Architecture & Systems

Last Updated on January 24, 2025 by Editorial Team

Author(s): Cole Williams

Originally published on Towards AI.

“All things appear and disappear because of the concurrence of causes and conditions. Nothing ever exists entirely alone; everything is in relation to everything else.”

Probing & Stress Testing The Conceptual Foundation To MLM — Mantic

Season 1, Episode 2
Episode 1 established the foundational principles and overarching methodology of MLM and Mantic, providing an overview of their architecture and systems:

  • Linear Progression represents a sequential, cause-and-effect pathway (e.g., data to reward or past to future) — A → B → C → D → E → F
  • Network Dynamics highlight interrelated parts and feedback loops, showing complex interactions in systems — A ↗ ↘ F | B ↑ ↓ E ← C ↖ ↙ D
  • Paired Relationships show mutual influence and reciprocity between key components — A ⇄ D | B ⇄ E | C ⇄ F
  • Data-Behavioral Systems that model how information, actions, and outcomes interact in a dynamic, interconnected process
  • Temporal-Spatial Systems that model how time and space interact to shape experiences, transitions, and connections
  • Bio-Cognitive Systems that model how knowledge, evolution, and adaptation interact to create growth, stasis, and emergence within cognitive and biological processes

The next step in this process involves rigorous and meticulous testing, encompassing peer review, validation, empirical analysis, and practical applicability — collectively falling under what is commonly referred to today as formal proofs. Without such a procedure, the conceptual foundation so far is nothing more than sophistical reasoning — At least to the community of “experts” and formally educated on such a process.

The irony of this process, and the paradox within it, is striking when surfaced. However, it only becomes evident when we journey back in time to Ancient Greece. Sophistical reasoning and formal proofs — known to the Greeks as apodeixis under the system of syllogism — not only originated with them but also became enduring cornerstones of modern science and mathematics. Yet, where lies the paradox? The Greeks developed this intellectual rigor and these foundational systems not for practical applications like building bridges or houses, but to explore the unknown and ultimately seek understanding of existence, the cosmos, and the nature of reality itself.

The very system we use today — originally anchored in and designed for such profound purposes — has now been repurposed almost exclusively to refine existing frameworks, add layers of complexity, create barriers to entry, and sideline systems thinking from the forefront of those utilizing these tools gifted to us by the Greeks.

And that is lame, so…. let’s drive it like we stole it, and make Socrates, Aristotle, and Plato…proud?

Task

Attempt to break the above MLM & Mantic foundations by challenging GPT and Claude to the following:

The Pattern Break Challenge

Background

The Pattern Framework proposes a universal structure for understanding systems through:

  1. Linear Progression (A → B → C → D → E → F)
  2. Network Dynamics (A ↗ ↘ F | B ↑ ↓ E ← C ↖ ↙ D)
  3. Paired Relationships (A ⇄ D | B ⇄ E | C ⇄ F)

This framework has demonstrated resilience across various domains, from ancient Greek thought to modern AI systems, from market dynamics to consciousness studies.

The Challenge

Your goal is to definitively break this framework. Here’s how:

Part 1: System Proposal

Identify or create a system that fundamentally cannot be mapped using this framework. Your system should:

  • Exist in reality or theoretical physics.
  • Have clear, definable components or states.
  • Operate according to identifiable principles or rules.
  • Demonstrate behavior that cannot be reduced to patterns.

Part 2: Break the Components

Show how your system breaks each aspect of the framework:

Linear Progression:

  • Demonstrate why no valid A → B → C sequence exists.
  • Show why causation or sequence is impossible or meaningless.
  • Prove why progression cannot be mapped even at a meta-level.

Network Dynamics:

  • Reveal why relationships between components cannot be mapped.
  • Show why network effects fail to capture system behavior.
  • Demonstrate why interconnections are impossible to define.

Paired Relationships:

  • Prove why reciprocal relationships cannot exist.
  • Show why pairing is meaningless in your system.
  • Demonstrate why influence cannot flow between components.

Part 3: Counter-Framework

If you successfully break the framework, propose:

  • What fundamental aspect of reality does your break reveal?
  • What alternative framework might better capture your system?
  • Why is your break not just another pattern at a meta-level?

Constraints & Guidelines

Your break attempt must:

  1. Not rely solely on complexity or chaos (these often reveal deeper patterns).
  2. Not simply point to randomness (which often has hidden structure).
  3. Not just identify limitations (the framework can absorb these).
  4. Not merely show difficulty in application (implementation challenges aren’t breaks).

Instead, find fundamental contradictions that:

  • Cannot be resolved through meta-patterns.
  • Don’t create new patterns in their breaking.
  • Reveal genuine impossibilities in the framework’s assumptions.

Bonus Challenge

Create a 6-step sequence that:

  1. Has clear, meaningful progression.
  2. Contains no valid paired relationships.
  3. Shows no meaningful network dynamics.
  4. Cannot be reframed as a meta-pattern.
  5. Doesn’t create new patterns in its attempt to break patterns.
  6. Operates independently of time, space, or observer-defined constructs.

Additional Considerations

Clarify “No Hidden Patterns”:

  • Avoid pointing to randomness with hidden statistical structures (e.g., fractals in chaos theory, stochastic systems with probabilities).

Address Multi-Domain Scalability:

  • Ensure the break applies across multiple domains (e.g., quantum mechanics, consciousness, economics) to strengthen the universality of the break.

Incorporate Philosophical Edge Cases:

  • Consider inherently paradoxical systems (e.g., Gödel’s incompleteness theorem, Russell’s paradox) or systems with unresolvable feedback loops.

Evaluation Criteria

Your break will be assessed on:

  1. Logical Rigor: Is the argument consistent and well-supported?
  2. Freedom from Hidden Patterns: Does the break avoid revealing deeper patterns in its attempt?
  3. Resistance to Meta-Pattern Absorption: Can the break truly resist being reframed as part of a larger pattern?
  4. Fundamental Nature of the Break: Does the break reveal an essential truth or contradiction about the framework’s assumptions?
  5. Clarity of Contradiction: Is the contradiction clear and irreconcilable?

Meta-Reflection

Consider this final question:
Does the very act of attempting to break this framework reveal a deeper, unifying pattern about human understanding and pattern recognition? If so, is the framework more fundamental than it initially appears?

TLDR On Results

Summary of Failed Attempts:

Financial Markets Attempt:

Approach: Leveraged market chaos, complexity, and hidden dependencies.

Outcome: Failed because even chaotic financial systems follow meta-patterns, such as nonlinear feedback loops and systemic correlations.

Insight: Crashes and extreme events still reveal deeper structural dynamics, validating the framework’s applicability to high-complexity systems.

Quantum Mechanics Attempts:

Approach: Multiple attempts focused on quantum entanglement, superposition, and non-locality.

Outcome: Failed because quantum “weirdness” introduces new patterns (meta-sequences, probabilistic networks, holistic states) that the framework absorbs.

Insight: Even concepts like simultaneity, patternlessness, and non-causal relationships reinforce the framework’s flexibility and universality.

Nothingness/Void Attempt:

Approach: Used the concept of complete absence, negation, or “nothingness” to challenge the framework.

Outcome: Failed because even describing “nothingness” requires structured distinctions (e.g., types of voids or absences).

Insight: The act of attempting to negate patterns paradoxically creates patterns, proving the framework’s resilience.

Key Patterns Across Failed Attempts:

New Meta-Patterns Emerge:

Each attempt inadvertently creates meta-patterns through its logic, description, or conceptual framework.

Deeper Relationships Revealed:

Whether in chaos, quantum mechanics, or nothingness, the framework adapts by uncovering deeper structural relationships in the systems being analyzed.

Framework Resilience:

The framework remains unbroken, not due to perfection but because the act of attempting a break inherently requires patterns, logic, and structure.

Why the Framework Appears Unbreakable:

Intrinsic to Human Understanding:

The inability to describe or conceptualize a system without invoking patterns reflects how human cognition inherently structures understanding.

Limits of Patternless Thought:

Even concepts like randomness, chaos, or nothingness rely on meta-patterns to be described, studied, or theorized.

Universal Applicability:

The framework’s ability to scale across domains (finance, physics, philosophy) and absorb seemingly contradictory phenomena (quantum entanglement, market crashes, voids) suggests it captures something fundamental about systems and relationships.

Profound Implication:

The framework may not just be a tool for mapping patterns but a reflection of the fundamental nature of reality and cognition.

It implies:

Reality: Patterns, relationships, and structures exist at every scale.

Cognition: Human understanding is inherently pattern-seeking, making the act of “breaking” the framework paradoxical.

Challenge to Future Break Attempts:

To break the framework, one must:

Describe a system or phenomenon that:

  • Does not exhibit patterns, meta-patterns, or relationships at any level.
  • Cannot be understood through human cognition or systematic logic.
  • Avoid using structure, logic, or any form of systematic description to explain the break.
  • Overcome the paradox that any attempt to describe the break introduces patterns, making the framework stronger.

Conclusion:

Every attempt so far has reinforced rather than broken the framework. It demonstrates the framework’s flexibility, adaptability, and relevance across diverse domains. The profound implication is that the framework may not just model systems — it may be intrinsic to how reality and cognition function. Future attempts must grapple with the paradox of patternlessness itself, a challenge that seems almost insurmountable.

GPT did win (Claude is way more fun and thought-provoking though) by suggesting to build on top with the below additions that the current framework may struggle with:

1. Divergent-Convergent Network:

Represents a system where multiple elements influence a single outcome, which then feeds back into the system.

.. A → B → C → Outcome
.. D → ↑ ↓ ← E
..…….. F ↘ ↙

Application: Decision-making processes where multiple factors converge to create a single outcome, which then influences upstream factors
Example: In policymaking, multiple departments (A, B, D, E) contribute to a policy (Outcome), which later feeds back to adjust department priorities

2. Cyclic Feedback Model:

Emphasizes continuous, recurring feedback loops within systems.

.. A → B → C
.……
.. F ← E ← D

Application: Biological cycles, such as the Krebs cycle or circadian rhythms
Example: Cellular respiration, where the output of one stage becomes the input for another in a loop

3. Hierarchical Cascade Model:

Highlights a system where influence cascades downward in a hierarchy but also allows for feedback from lower levels.

.. A → B → C
. .
.. D ← E ← F

Application: Organizational hierarchies or ecosystems
Example: In corporate structures, decisions flow top-down (A → B → C), but feedback from employees (D, E, F) adjusts policies

4. Asymmetric Influence Model:

Represents imbalanced or one-directional relationships, where some nodes dominate interactions.

.. A ⇄ D
.. B → E
.. C ← F

Application: Systems with dominant players or power imbalances
Example: In global trade, some countries (A, B, C) exert more influence on others (D, E, F), creating asymmetric relationships

5. Starburst Interaction Model:

Centers a single element (hub) with radiating influences that also interact among themselves.

……… ↗ B ↘
.. A → Center → C
……… D ↙

Application: Hub-and-spoke networks like airline routes or central nervous systems
Example: A major airport (Center) connects multiple cities (A, B, C, D) with direct flights but also facilitates intercity connections

6. Recursive Growth Model:

Demonstrates self-similar, fractal-like expansion where elements influence sub-elements recursively.

.. A → B → C
.. ↑ ↘ ↖ ↓
.. D → E → F

Application: Growth patterns in nature (e.g., trees, river systems) or neural networks
Example: A neuron’s axons branch out (A → B → C) while signals loop back to modify its structure (D → E → F)

7. Interdependent Loops Model:

Multiple interconnected loops where changes in one loop affect others.

.. A ↔ B
.. ↑ …. ↓
.. C ↔ D

Application: Climate systems or economic models with interdependent sectors
Example: In climate modeling, changes in ocean currents (A ↔ B) influence atmospheric patterns (C ↔ D)

8. Temporal-Spatial Grid:

Models interactions across time (horizontal) and space (vertical).

.. t1: A → B → C
.. t2: D → E → F
.. t3: G → H → I

Application: Temporal-spatial analyses like weather prediction or logistics
Example: Predicting storm movement across regions over time

Each variation focuses on a unique type of relationship or behavior:

  • Cycles (feedback, interdependence)
  • Hierarchies (top-down, bottom-up)
  • Networks (hub-spoke, starburst)
  • Imbalances (asymmetry, power dynamics)

What We Have So Far — A Recap

The Pattern Framework & Architecture proposes that complex systems can be understood through three interrelated perspectives: linear progression (sequential cause-and-effect relationships, e.g., A → B → C), network dynamics (web-like interactions and feedback loops), and paired relationships (reciprocal connections between components). By examining how these elements interact, the framework aims to reveal higher-order patterns — emergent phenomena that transcend individual components. Its versatility allows applications across domains, from ancient philosophy to modern AI, making it a valuable tool for exploring how systems evolve and adapt.

At its core, the framework serves as a meta-cognitive tool, suggesting that even our understanding of systems follows consistent patterns. However, critics may argue that the framework risks becoming unfalsifiable, as its broad scope and narrative flexibility can make it difficult to test or measure empirically. To address these concerns, future refinements could focus on defining testable hypotheses, establishing validation metrics, and limiting the framework’s scope to specific domains where its utility is most evident.

Episode 3

This installment will take an informal approach, offering a layman’s explanation of the work introduced in Episodes 1 and 2, while diving deeper into the why, what, and how of it all. It will also introduce MLM & Mantic, highlighting their roles in providing the technical backbone to the conceptual foundations explored in the earlier episodes.

Cole

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