{"id":1924,"date":"2025-02-19T07:03:17","date_gmt":"2025-02-19T07:03:17","guid":{"rendered":"https:\/\/mailitics.com\/index.php\/2025\/02\/19\/how-llms-work-pre-training-to-post-training-neural-networks-hallucinations-and-inference\/"},"modified":"2025-02-19T07:03:17","modified_gmt":"2025-02-19T07:03:17","slug":"how-llms-work-pre-training-to-post-training-neural-networks-hallucinations-and-inference","status":"publish","type":"post","link":"https:\/\/mailitics.com\/index.php\/2025\/02\/19\/how-llms-work-pre-training-to-post-training-neural-networks-hallucinations-and-inference\/","title":{"rendered":"How LLMs Work: Pre-Training to Post-Training, Neural Networks, Hallucinations, and Inference"},"content":{"rendered":"<p>    How LLMs Work: Pre-Training to Post-Training, Neural Networks, Hallucinations, and Inference<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n    <!-- no image --><br \/>\n \t<BR><br \/>\n<BR><\/BR><\/p>\n<div>\n<p class=\"wp-block-paragraph\">With the recent explosion of interest in large language models (LLMs), they often seem almost magical. But let\u2019s demystify them.<\/p>\n<p class=\"wp-block-paragraph\">I wanted to step back and unpack the fundamentals\u200a\u2014\u200abreaking down how LLMs are built, trained, and fine-tuned to become the AI systems we interact with today.<\/p>\n<p class=\"wp-block-paragraph\">This <strong>two-part deep dive<\/strong> is something I\u2019ve been meaning to do for a while and was also inspired by <a href=\"https:\/\/www.youtube.com\/watch?app=desktop&amp;v=7xTGNNLPyMI\">Andrej Karpathy\u2019s widely popular 3.5-hour YouTube<\/a> video, which has racked up 800,000+ views in just 10 days. Andrej is a founding member of OpenAI, his insights are gold\u2014 you get the idea.<\/p>\n<p class=\"wp-block-paragraph\">If you have the time, <strong>his video is definitely worth watching<\/strong>. But let\u2019s be real\u200a\u2014\u200a3.5 hours is a long watch. So, for all the busy folks who don\u2019t want to miss out, I\u2019ve distilled the key concepts from the first 1.5 hours into this <strong>10-minute read<\/strong>, adding my own breakdowns to help you build a solid intuition.<\/p>\n<h2 class=\"wp-block-heading\"><strong>What you\u2019ll get<\/strong><\/h2>\n<p class=\"wp-block-paragraph\">Part 1 (this article): Covers the fundamentals of LLMs, including pre-training to post-training, neural networks, <a href=\"https:\/\/towardsdatascience.com\/tag\/hallucinations\/\" title=\"Hallucinations\">Hallucinations<\/a>, and inference.<\/p>\n<p class=\"wp-block-paragraph\">Part 2: Reinforcement learning with human\/AI feedback, investigating o1 models, DeepSeek R1, AlphaGo<\/p>\n<p class=\"wp-block-paragraph\">Let\u2019s go! I\u2019ll start with looking at how LLMs are being built.<\/p>\n<p class=\"wp-block-paragraph\">At a high level, there are 2 key phases: pre-training and post-training.<\/p>\n<h3 class=\"wp-block-heading\"><strong>1. Pre-training<\/strong><\/h3>\n<p class=\"wp-block-paragraph\">Before an LLM can generate text, it must first learn how language works. This happens through pre-training, a highly computationally intensive task.<\/p>\n<h4 class=\"wp-block-heading\">Step 1: Data collection and preprocessing<\/h4>\n<p class=\"wp-block-paragraph\">The first step in training an LLM is gathering as much high-quality text as possible. The goal is to create a massive and diverse dataset containing a wide range of human knowledge.<\/p>\n<p class=\"wp-block-paragraph\">One source is <a href=\"https:\/\/commoncrawl.org\/\">Common Crawl<\/a>, which is a free, open repository of web crawl data containing 250 billion web pages over 18 years. However, raw web data is noisy\u200a\u2014\u200acontaining spam, duplicates and low quality content\u200a\u2014\u200aso preprocessing is essential.If you\u2019re interested in preprocessed datasets, FineWeb offers a curated version of Common Crawl, and is made available on <a href=\"https:\/\/huggingface.co\/spaces\/HuggingFaceFW\/blogpost-fineweb-v1\">Hugging Face<\/a>.<\/p>\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" data-dominant-color=\"1d2b54\" data-has-transparency=\"true\" style=\"--dominant-color: #1d2b54;\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"583\" src=\"https:\/\/i0.wp.com\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.25.27%25E2%2580%25AFAM-1024x583.png?resize=1024%2C583&#038;ssl=1\" alt=\"\" class=\"wp-image-598062 has-transparency\" srcset=\"https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.25.27\u202fAM-1024x583.png 1024w, https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.25.27\u202fAM-300x171.png 300w, https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.25.27\u202fAM-768x437.png 768w, https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.25.27\u202fAM-1536x874.png 1536w, https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.25.27\u202fAM.png 1870w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\"><\/figure>\n<p class=\"wp-block-paragraph\">Once cleaned, the text corpus is ready for tokenization.<\/p>\n<h4 class=\"wp-block-heading\">Step 2: Tokenization<\/h4>\n<p class=\"wp-block-paragraph\">Before a neural network can process text, it must be converted into numerical form. This is done through <strong>tokenization<\/strong>, where words, subwords, or characters are mapped to unique numerical tokens.<\/p>\n<p class=\"wp-block-paragraph\">Think of tokens as the building blocks\u200a\u2014\u200athe fundamental building blocks of all language models. In GPT4, there are 100,277 possible tokens.A popular tokenizer, <a href=\"https:\/\/tiktokenizer.vercel.app\/\">Tiktokenizer<\/a>, allows you to experiment with tokenization and see how text is broken down into tokens. Try entering a sentence, and you\u2019ll see each word or subword assigned a series of numerical IDs.<\/p>\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" data-dominant-color=\"edeeef\" data-has-transparency=\"true\" style=\"--dominant-color: #edeeef;\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"611\" src=\"https:\/\/i0.wp.com\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.25.48%25E2%2580%25AFAM-1024x611.png?resize=1024%2C611&#038;ssl=1\" alt=\"\" class=\"wp-image-598063 has-transparency\" srcset=\"https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.25.48\u202fAM-1024x611.png 1024w, https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.25.48\u202fAM-300x179.png 300w, https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.25.48\u202fAM-768x458.png 768w, https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.25.48\u202fAM-1536x917.png 1536w, https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.25.48\u202fAM.png 1900w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\"><\/figure>\n<h4 class=\"wp-block-heading\">Step 3: Neural network training<\/h4>\n<p class=\"wp-block-paragraph\">Once the text is tokenized, the neural network learns to predict the next token based on its context. As shown above, the model takes an input sequence of tokens (e.g., <em>\u201cwe are cook ing\u201d<\/em>) and processes it through a giant mathematical expression\u200a\u2014\u200awhich represents the model\u2019s architecture\u200a\u2014\u200ato predict the next token.<\/p>\n<p class=\"wp-block-paragraph\">A neural network consists of 2 key parts:<\/p>\n<ol class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">\n<strong>Parameters (weights)<\/strong>\u200a\u2014\u200athe learned numerical values from training.<\/li>\n<li class=\"wp-block-list-item\">\n<strong>Architecture (mathematical expression)\u200a<\/strong>\u2014\u200athe structure defining how the input tokens are processed to produce outputs.<\/li>\n<\/ol>\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" data-dominant-color=\"f5f6f7\" data-has-transparency=\"true\" style=\"--dominant-color: #f5f6f7;\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"527\" src=\"https:\/\/i0.wp.com\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.26.09%25E2%2580%25AFAM-1024x527.png?resize=1024%2C527&#038;ssl=1\" alt=\"\" class=\"wp-image-598064 has-transparency\" srcset=\"https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.26.09\u202fAM-1024x527.png 1024w, https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.26.09\u202fAM-300x154.png 300w, https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.26.09\u202fAM-768x395.png 768w, https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.26.09\u202fAM-1536x791.png 1536w, https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.26.09\u202fAM.png 1966w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\"><\/figure>\n<p class=\"wp-block-paragraph\">Initially, the model\u2019s predictions are random, but as training progresses, it learns to assign probabilities to possible next tokens.<\/p>\n<p class=\"wp-block-paragraph\">When the correct token (e.g. \u201cfood\u201d) is identified, the model adjusts its billions of parameters (weights) through <strong>backpropagation<\/strong>\u200a\u2014\u200aan optimization process that reinforces correct predictions by increasing their probabilities while reducing the likelihood of incorrect ones.<\/p>\n<p class=\"wp-block-paragraph\">This process is repeated billions of times across massive datasets.<\/p>\n<h4 class=\"wp-block-heading\"><strong>Base model\u200a\u2014\u200athe output of pre-training<\/strong><\/h4>\n<p class=\"wp-block-paragraph\">At this stage, the base model has learned:<\/p>\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">How words, phrases and sentences relate to each other<\/li>\n<li class=\"wp-block-list-item\">Statistical patterns in your training data<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">However, <strong>base models are not yet optimised for real-world tasks<\/strong>. You can think of them as an advanced autocomplete system\u200a\u2014\u200athey predict the next token based on probability, but with limited instruction-following ability.<\/p>\n<p class=\"wp-block-paragraph\">A base model can sometimes recite training data verbatim and can be used for certain applications through <strong>in-context learning<\/strong>, where you guide its responses by providing examples in your prompt. However, to make the model truly useful and reliable, it requires further training.<\/p>\n<h3 class=\"wp-block-heading\">2. Post training\u200a\u2014\u200aMaking the model useful<\/h3>\n<p class=\"wp-block-paragraph\">Base models are raw and unrefined. To make them helpful, reliable, and safe, they go through post-training, where they are fine-tuned on smaller, specialised datasets.<\/p>\n<p class=\"wp-block-paragraph\">Because the model is a neural network, it cannot be explicitly programmed like traditional software. <strong>Instead, we \u201cprogram\u201d it implicitly by training it on structured labeled datasets that represent examples of desired interactions.<\/strong><\/p>\n<h4 class=\"wp-block-heading\">How post training works<\/h4>\n<p class=\"wp-block-paragraph\">Specialised datasets are created, consisting of structured examples on how the model should respond in different situations.\u00a0<\/p>\n<p class=\"wp-block-paragraph\">Some types of post training include:<\/p>\n<ol class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">\n<strong>Instruction\/conversation fine tuning<br \/> <\/strong>Goal: To teach the model to follow instructions, be task oriented, engage in multi-turn conversations, follow safety guidelines and refuse malicious requests, etc.<br \/>Eg: <a href=\"https:\/\/arxiv.org\/abs\/2203.02155\">InstructGPT (2022)<\/a>: OpenAI hired some 40 contractors to create these labelled datasets. These human annotators wrote prompts and provided ideal responses based on safety guidelines. Today, many datasets are generated automatically, with humans reviewing and editing them for quality.<\/li>\n<li class=\"wp-block-list-item\">\n<strong>Domain specific fine tuning<\/strong><strong><br \/><\/strong>Goal: Adapt the model for specialised fields like medicine, law and programming.<\/li>\n<\/ol>\n<p class=\"wp-block-paragraph\">Post training also introduces <strong>special tokens\u200a<\/strong>\u2014\u200asymbols that were not used during pre-training\u200a\u2014\u200ato help the model understand the structure of interactions. These tokens signal where a user\u2019s input starts and ends and where the AI\u2019s response begins, ensuring that the model correctly distinguishes between prompts and replies.<\/p>\n<p class=\"wp-block-paragraph\">Now, we\u2019ll move on to some other key concepts.<\/p>\n<h2 class=\"wp-block-heading\"><strong>Inference\u200a\u2014\u200ahow the model generates new text<\/strong><\/h2>\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/towardsdatascience.com\/tag\/inference\/\" title=\"Inference\">Inference<\/a> can be performed at any stage, even midway through pre-training, to evaluate how well the model has learned.<\/p>\n<p class=\"wp-block-paragraph\">When given an input sequence of tokens, the model assigns probabilities to all possible next tokens based on patterns it has learned during training.<\/p>\n<p class=\"wp-block-paragraph\"><strong>Instead of always choosing the most likely token, it samples from this probability distribution\u200a\u2014\u200asimilar to flipping a biased coin, where higher-probability tokens are more likely to be selected.<\/strong><\/p>\n<p class=\"wp-block-paragraph\">This process repeats iteratively, with each newly generated token becoming part of the input for the next prediction.\u00a0<\/p>\n<p class=\"wp-block-paragraph\">Token selection is <strong>stochastic <\/strong>and<strong> <\/strong>the same input can produce different outputs. Over time, the model generates text that wasn\u2019t explicitly in its training data but follows the same statistical patterns.<\/p>\n<h2 class=\"wp-block-heading\"><strong>Hallucinations\u200a\u2014\u200awhen LLMs generate false info<\/strong><\/h2>\n<h3 class=\"wp-block-heading\"><strong>Why do hallucinations occur?<\/strong><\/h3>\n<p class=\"wp-block-paragraph\">Hallucinations happen because LLMs do not \u201cknow\u201d facts\u200a\u2014\u200athey simply predict the most statistically likely sequence of words based on their training data.<\/p>\n<p class=\"wp-block-paragraph\">Early models struggled significantly with hallucinations.<\/p>\n<p class=\"wp-block-paragraph\">For instance, in the example below, if the training data contains many \u201cWho is\u2026\u201d questions with definitive answers, the model learns that such queries should always have confident responses, even when it lacks the necessary knowledge.<\/p>\n<p class=\"wp-block-paragraph\">When asked about an unknown person, the model does not default to \u201cI don\u2019t know\u201d because this pattern was not reinforced during training. Instead, it generates its best guess, often leading to fabricated information.<\/p>\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" data-dominant-color=\"f2efde\" data-has-transparency=\"true\" style=\"--dominant-color: #f2efde;\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"583\" src=\"https:\/\/i0.wp.com\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.26.24%25E2%2580%25AFAM-1024x583.png?resize=1024%2C583&#038;ssl=1\" alt=\"\" class=\"wp-image-598065 has-transparency\" srcset=\"https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.26.24\u202fAM-1024x583.png 1024w, https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.26.24\u202fAM-300x171.png 300w, https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.26.24\u202fAM-768x437.png 768w, https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.26.24\u202fAM-1536x875.png 1536w, https:\/\/towardsdatascience.com\/wp-content\/uploads\/2025\/02\/Screenshot-2025-02-18-at-9.26.24\u202fAM.png 1910w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\"><\/figure>\n<h3 class=\"wp-block-heading\"><strong>How do you reduce hallucinations?<\/strong><\/h3>\n<h4 class=\"wp-block-heading\">Method 1: Saying \u201cI don\u2019t know\u201d<\/h4>\n<p class=\"wp-block-paragraph\">Improving factual accuracy requires explicitly training the model to recognise what it does not know\u200a\u2014\u200aa task that is more complex than it seems.<\/p>\n<p class=\"wp-block-paragraph\">This is done via <strong>self interrogation<\/strong>, a process that helps define the model\u2019s knowledge boundaries.<\/p>\n<p class=\"wp-block-paragraph\">Self interrogation can be automated using another AI model, which generates questions to probe knowledge gaps. If it produces a false answer, new training examples are added, where the correct response is: <em>\u201cI\u2019m not sure. Could you provide more context?\u201d<\/em><\/p>\n<p class=\"wp-block-paragraph\">If a model has seen a question many times in training, it will assign a high probability to the correct answer.<\/p>\n<p class=\"wp-block-paragraph\"><strong>If the model has not encountered the question before, it distributes probability more evenly across multiple possible tokens, making the output more randomised. No single token stands out as the most likely choice.<\/strong><\/p>\n<p class=\"wp-block-paragraph\">Fine tuning explicitly trains the model to handle low-confidence outputs with predefined responses.\u00a0<\/p>\n<p class=\"wp-block-paragraph\">For example, when I asked ChatGPT-4o, \u201c<em>Who is asdja rkjgklfj?<\/em>\u201d, it correctly responded: \u201cI\u2019m not sure who that is. Could you provide more context?\u201d<\/p>\n<h4 class=\"wp-block-heading\">Method 2: Doing a web search<\/h4>\n<p class=\"wp-block-paragraph\">A more advanced method is to extend the model\u2019s knowledge beyond its training data by giving it access to external search tools.<\/p>\n<p class=\"wp-block-paragraph\">At a high level, when a model detects uncertainty, it can trigger a web search. The search results are then inserted into a model\u2019s context window\u200a\u2014\u200aessentially allowing this new data to be part of it\u2019s working memory. The model references this new information while generating a response.<\/p>\n<h2 class=\"wp-block-heading\">Vague recollections vs working memory<\/h2>\n<p class=\"wp-block-paragraph\">Generally speaking, LLMs have two types of knowledge access.<\/p>\n<ol class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Vague recollections\u200a\u2014\u200athe knowledge stored in the model\u2019s parameters from pre-training. This is based on patterns it learned from vast amounts of internet data but is not precise nor searchable.<\/li>\n<li class=\"wp-block-list-item\">Working memory\u200a\u2014\u200athe information that is available in the model\u2019s context window, which is directly accessible during inference. Any text provided in the prompt acts as a short term memory, allowing the model to recall details while generating responses.<\/li>\n<\/ol>\n<p class=\"wp-block-paragraph\">Adding relevant facts within the context window significantly improves response quality.<\/p>\n<h2 class=\"wp-block-heading\">Knowledge of self\u00a0<\/h2>\n<p class=\"wp-block-paragraph\">When asked questions like <em>\u201cWho are you?\u201d<\/em> or <em>\u201cWhat built you?\u201d<\/em>, an LLM will generate a statistical best guess based on its training data, unless explicitly programmed to respond accurately.\u00a0<\/p>\n<p class=\"wp-block-paragraph\">LLMs do not have true self-awareness, their responses depend on patterns seen during training.<\/p>\n<p class=\"wp-block-paragraph\">One way to provide the model with a consistent identity is by using a <strong>system prompt<\/strong>, which sets predefined instructions about how it should describe itself, its capabilities, and its limitations.<\/p>\n<h2 class=\"wp-block-heading\">To end off<\/h2>\n<p class=\"wp-block-paragraph\">That\u2019s a wrap for Part 1! I hope this has helped you build intuition on how LLMs work. In Part 2, we\u2019ll dive deeper into reinforcement learning and some of the latest models.<\/p>\n<p class=\"wp-block-paragraph\">Got questions or ideas for what I should cover next? Drop them in the comments\u200a\u2014\u200aI\u2019d love to hear your thoughts. See you in Part 2! <img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/1f642.png?ssl=1\" alt=\"\ud83d\ude42\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\"><\/p>\n<p>The post <a href=\"https:\/\/towardsdatascience.com\/how-llms-work-pre-training-to-post-training-neural-networks-hallucinations-and-inference\/\">How LLMs Work: Pre-Training to Post-Training, Neural Networks, Hallucinations, and Inference<\/a> appeared first on <a href=\"https:\/\/towardsdatascience.com\/\">Towards Data Science<\/a>.<\/p>\n<\/div>\n<p> \t<BR><br \/>\n <BR><\/BR><br \/>\n    Clara Chong<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n<a href=\"https:\/\/towardsdatascience.com\/how-llms-work-pre-training-to-post-training-neural-networks-hallucinations-and-inference\/\">Go to original source<\/a><br \/>\n \t<BR><br \/>\n <BR><\/BR><\/p>\n","protected":false},"excerpt":{"rendered":"<p>How LLMs Work: Pre-Training to Post-Training, Neural Networks, Hallucinations, and Inference With the recent explosion of interest in large language models (LLMs), they often seem almost magical. But let\u2019s demystify them. I wanted to step back and unpack the fundamentals\u200a\u2014\u200abreaking down how LLMs are built, trained, and fine-tuned to become the AI systems we interact [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[62,862,513,71,70,1780,1781],"tags":[318,1164,319],"class_list":["post-1924","post","type-post","status-publish","format-standard","hentry","category-aimldsaimlds","category-hallucinations","category-inference","category-large-language-models","category-machine-learning","category-neural-network","category-pretraining","tag-llms","tag-pre","tag-training"],"_links":{"self":[{"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/posts\/1924"}],"collection":[{"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/comments?post=1924"}],"version-history":[{"count":0,"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/posts\/1924\/revisions"}],"wp:attachment":[{"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/media?parent=1924"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/categories?post=1924"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/tags?post=1924"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}