From a4e3e728633901c4facf1a24d755fd2da10d0ead Mon Sep 17 00:00:00 2001 From: Mars Ultor Date: Wed, 30 Apr 2025 01:03:24 -0500 Subject: [PATCH] almost done --- EEMLA.aux | 5 +- EEMLA.blg | 30 +++--- EEMLA.log | 92 ++++++++++++------ EEMLA.pdf | Bin 147544 -> 163025 bytes EEMLA.tex | 38 ++++++-- ...B0060FE72ED7A036EB8243444.highlight.minted | 3 + ...2321818118B3501A042F1B7E5.highlight.minted | 3 + ...8DD504542F352049F6401D587.highlight.minted | 3 + ...4D1BC1BF5E5BC7A5A7CCC382C.highlight.minted | 6 ++ ...E72A4F78D4332765469A7A0E9.highlight.minted | 6 ++ ...FA573AC6BDDC923342CB6518C.highlight.minted | 3 + ...A082EFD60976D581C36A6E9EA.highlight.minted | 3 + ...4DC88718EF2B9D35BC605B86C9E60.index.minted | 9 +- 13 files changed, 144 insertions(+), 57 deletions(-) create mode 100644 _minted/2B22D1BB0060FE72ED7A036EB8243444.highlight.minted create mode 100644 _minted/9C4740B2321818118B3501A042F1B7E5.highlight.minted create mode 100644 _minted/B0420CD8DD504542F352049F6401D587.highlight.minted create mode 100644 _minted/B189EEB4D1BC1BF5E5BC7A5A7CCC382C.highlight.minted create mode 100644 _minted/DF772CCE72A4F78D4332765469A7A0E9.highlight.minted create mode 100644 _minted/E1F5AF9FA573AC6BDDC923342CB6518C.highlight.minted create mode 100644 _minted/F9EE4BCA082EFD60976D581C36A6E9EA.highlight.minted diff --git a/EEMLA.aux b/EEMLA.aux index b06841e..5e3f5b8 100644 --- a/EEMLA.aux +++ b/EEMLA.aux @@ -30,6 +30,7 @@ \abx@aux@segm{0}{0}{deepseekai2025deepseekv3technicalreport} \abx@aux@cite{0}{cuda_programming_guide_2025} \abx@aux@segm{0}{0}{cuda_programming_guide_2025} +\@writefile{toc}{\contentsline {section}{\numberline {1}Implementation in Rust Using Burn}{10}{}\protected@file@percent } \abx@aux@read@bbl@mdfivesum{A4BF38394F3D8B19FB0185ACC0064B31} \abx@aux@defaultrefcontext{0}{ahn2024largelanguagemodelsmathematical}{nty/global//global/global/global} \abx@aux@defaultrefcontext{0}{cobbe2021trainingverifierssolvemath}{nty/global//global/global/global} @@ -41,5 +42,5 @@ \abx@aux@defaultrefcontext{0}{app14020744}{nty/global//global/global/global} \abx@aux@defaultrefcontext{0}{vaswani2023attentionneed}{nty/global//global/global/global} \abx@aux@defaultrefcontext{0}{Wang2024}{nty/global//global/global/global} -\xdef \mintedoldcachechecksum{\detokenize{27DB95EA8F56C67A42C668E77E57246D:2}} -\gdef \@abspage@last{10} +\xdef \mintedoldcachechecksum{\detokenize{F97D47BB20F0BD69D0F92961482F0074:10}} +\gdef \@abspage@last{11} diff --git a/EEMLA.blg b/EEMLA.blg index 48903d1..f807473 100644 --- a/EEMLA.blg +++ b/EEMLA.blg @@ -1,18 +1,18 @@ [0] Config.pm:308> INFO - This is Biber 2.20 [0] Config.pm:311> INFO - Logfile is 'EEMLA.blg' -[39] biber:340> INFO - === Tue Apr 29, 2025, 23:58:53 +[39] biber:340> INFO - === Wed Apr 30, 2025, 01:03:12 [47] Biber.pm:420> INFO - Reading 'EEMLA.bcf' -[81] Biber.pm:994> INFO - Found 10 citekeys in bib section 0 -[89] Biber.pm:4463> INFO - Processing section 0 -[94] Biber.pm:4654> INFO - Looking for bibtex file 'references.bib' for section 0 -[94] bibtex.pm:1713> INFO - LaTeX decoding ... -[98] bibtex.pm:1519> INFO - Found BibTeX data source 'references.bib' -[321] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'normalization = NFD' with 'normalization = prenormalized' -[321] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'variable = shifted' with 'variable = non-ignorable' -[322] Biber.pm:4283> INFO - Sorting list 'nty/global//global/global/global' of type 'entry' with template 'nty' and locale 'en-US' -[322] Biber.pm:4289> INFO - No sort tailoring available for locale 'en-US' -[333] bbl.pm:676> INFO - Writing 'EEMLA.bbl' with encoding 'UTF-8' -[372] bbl.pm:779> INFO - Output to EEMLA.bbl -[372] Biber.pm:131> WARN - legacy month field 'Oct' in entry 'Wang2024' is not an integer - this will probably not sort properly. -[373] Biber.pm:131> WARN - legacy month field 'Feb' in entry 'cuda_programming_guide_2025' is not an integer - this will probably not sort properly. -[373] Biber.pm:133> INFO - WARNINGS: 2 +[83] Biber.pm:994> INFO - Found 10 citekeys in bib section 0 +[91] Biber.pm:4463> INFO - Processing section 0 +[95] Biber.pm:4654> INFO - Looking for bibtex file 'references.bib' for section 0 +[96] bibtex.pm:1713> INFO - LaTeX decoding ... +[100] bibtex.pm:1519> INFO - Found BibTeX data source 'references.bib' +[312] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'normalization = NFD' with 'normalization = prenormalized' +[313] UCollate.pm:68> INFO - Overriding locale 'en-US' defaults 'variable = shifted' with 'variable = non-ignorable' +[313] Biber.pm:4283> INFO - Sorting list 'nty/global//global/global/global' of type 'entry' with template 'nty' and locale 'en-US' +[313] Biber.pm:4289> INFO - No sort tailoring available for locale 'en-US' +[323] bbl.pm:676> INFO - Writing 'EEMLA.bbl' with encoding 'UTF-8' +[359] bbl.pm:779> INFO - Output to EEMLA.bbl +[359] Biber.pm:131> WARN - legacy month field 'Oct' in entry 'Wang2024' is not an integer - this will probably not sort properly. +[359] Biber.pm:131> WARN - legacy month field 'Feb' in entry 'cuda_programming_guide_2025' is not an integer - this will probably not sort properly. +[359] Biber.pm:133> INFO - WARNINGS: 2 diff --git a/EEMLA.log b/EEMLA.log index 7dca1e9..8eb412a 100644 --- a/EEMLA.log +++ b/EEMLA.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2026/dev/Arch Linux) (preloaded format=pdflatex 2025.4.29) 29 APR 2025 23:58 +This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2026/dev/Arch Linux) (preloaded format=pdflatex 2025.4.29) 30 APR 2025 01:03 entering extended mode \write18 enabled. %&-line parsing enabled. @@ -803,11 +803,11 @@ Package fancyhdr Warning: \headheight is too small (12.0pt): \pydata@fh@_EEE4DC88718EF2B9D35BC605B86C9E60.data.minted=\write6 \openout6 = `_EEE4DC88718EF2B9D35BC605B86C9E60.data.minted'. -runsystem(latexminted config --timestamp 20250429235855 EEE4DC88718EF2B9D35BC6 +runsystem(latexminted config --timestamp 20250430010315 EEE4DC88718EF2B9D35BC6 05B86C9E60)...executed. (./_EEE4DC88718EF2B9D35BC605B86C9E60.config.minted) -runsystem(latexminted cleanconfig --timestamp 20250429235855 EEE4DC88718EF2B9D +runsystem(latexminted cleanconfig --timestamp 20250430010315 EEE4DC88718EF2B9D 35BC605B86C9E60)...executed. @@ -820,11 +820,6 @@ LaTeX Font Info: Trying to load font information for OT1+pcr on input line 3 File: ot1pcr.fd 2001/06/04 font definitions for OT1/pcr. )) -LaTeX Warning: Reference `tb:model-sizes' on page 8 undefined on input line 191 -. - - - Package fancyhdr Warning: \headheight is too small (12.0pt): (fancyhdr) Make it at least 14.49998pt, for example: @@ -842,6 +837,32 @@ Package fancyhdr Warning: \headheight is too small (12.0pt): (fancyhdr) \addtolength{\topmargin}{-2.49998pt}. [9] +! Misplaced alignment tab character &. + Implementation Hardware & + Software +l.196 ...extbf{Implementation Hardware & Software} + } +? +(./_minted/F9EE4BCA082EFD60976D581C36A6E9EA.highlight.minted) +(./_minted/B0420CD8DD504542F352049F6401D587.highlight.minted) +(./_minted/E1F5AF9FA573AC6BDDC923342CB6518C.highlight.minted) +(./_minted/DF772CCE72A4F78D4332765469A7A0E9.highlight.minted) +(./_minted/B0420CD8DD504542F352049F6401D587.highlight.minted) +! FancyVerb Error: + Extraneous input ` use burn::module::Module; use burn::tensor::backend::WgpuB +ackend; use log::{info, warn};' between \begin{minted}[] and line en +d +. +\FV@Error ... {FancyVerb Error: +\space \space #1 +} + +l.211 ...kend::WgpuBackend; use log::{info, warn}; + +? +(./_minted/B189EEB4D1BC1BF5E5BC7A5A7CCC382C.highlight.minted) +(./_minted/9C4740B2321818118B3501A042F1B7E5.highlight.minted) +(./_minted/2B22D1BB0060FE72ED7A036EB8243444.highlight.minted) Package fancyhdr Warning: \headheight is too small (12.0pt): @@ -850,41 +871,48 @@ Package fancyhdr Warning: \headheight is too small (12.0pt): (fancyhdr) You might also make \topmargin smaller: (fancyhdr) \addtolength{\topmargin}{-2.49998pt}. -[10] (./EEMLA.aux) +[10] + + +Package fancyhdr Warning: \headheight is too small (12.0pt): +(fancyhdr) Make it at least 14.49998pt, for example: +(fancyhdr) \setlength{\headheight}{14.49998pt}. +(fancyhdr) You might also make \topmargin smaller: +(fancyhdr) \addtolength{\topmargin}{-2.49998pt}. + +[11] (./EEMLA.aux) *********** LaTeX2e <2024-11-01> patch level 2 L3 programming layer <2025-01-18> *********** - - -LaTeX Warning: There were undefined references. - Package logreq Info: Writing requests to 'EEMLA.run.xml'. \openout1 = `EEMLA.run.xml'. - ) + ) +(\end occurred when \ifx on line 211 was incomplete) Here is how much of TeX's memory you used: - 17009 strings out of 475171 - 359050 string characters out of 5767095 - 1349252 words of memory out of 5000000 - 39792 multiletter control sequences out of 15000+600000 - 572034 words of font info for 66 fonts, out of 8000000 for 9000 + 17079 strings out of 475171 + 362138 string characters out of 5767095 + 1349253 words of memory out of 5000000 + 39836 multiletter control sequences out of 15000+600000 + 574682 words of font info for 71 fonts, out of 8000000 for 9000 14 hyphenation exceptions out of 8191 74i,18n,81p,1547b,2647s stack positions out of 10000i,1000n,20000p,200000b,200000s -< -/usr/share/texmf-dist/fonts/type1/urw/times/utmr8a.pfb> -Output written on EEMLA.pdf (10 pages, 147544 bytes). + +Output written on EEMLA.pdf (11 pages, 163025 bytes). PDF statistics: - 98 PDF objects out of 1000 (max. 8388607) - 61 compressed objects within 1 object stream + 106 PDF objects out of 1000 (max. 8388607) + 66 compressed objects within 1 object stream 0 named destinations out of 1000 (max. 500000) 1 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/EEMLA.pdf b/EEMLA.pdf index 8570aac416b2f890cbffc8d039912f6d975c7e67..4d1941b239a4303b4dc7bf2b08868d99e37ce672 100644 GIT binary patch delta 42784 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 delta 27731 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 D^AD}3 diff --git a/EEMLA.tex b/EEMLA.tex index ec1a25d..eb2776c 100644 --- a/EEMLA.tex +++ b/EEMLA.tex @@ -68,7 +68,7 @@ February 28 2025\\ %%%%Title \begin{center} \vspace{1em} -Rule-based Tensor Mutations Embedded within LLMs for Low-Cost Mathematical Comptuation +Rule-based Tensor Mutations Embedded within LLMs for Low-Cost Mathematical Computation \end{center} @@ -92,9 +92,9 @@ In recent years, a specialized kind of Machine Learning models have hit the mark These techniques were later commercialized with the advent of GPT-2, GPT-3, and BERT from AI labs like OpenAI and Google's DeepMind \parencite[3]{Wang2024}. With increased supply of Graphical Processing Units (GPUs) and Tensor Processing Units (TPUs), these models began snowballing in scale. This was especially evident starting in 2019 with an iteration of GPT-2 being released with a production size of 1.5 billion parameters. In 2020, GPT-3 scaled up to 175 billion parameters --- achieving true coherence in reasoning for the first time ever for a machine. GPT-4 was released by OpenAI in 2023, with an undisclosed scale in the trillions of parameters. Development investment also climbed into the hundreds of billions of dollars, with new firms such as Anthropic, Grok, etc. Open sourced projects also gained popularity, some backed by multi-billion dollar R\&D teams such as Meta's Llama series. -Functionally, there is no fundamental algorithmic difference between generative and classification models. Indeed, most LLMs are initially trained to generate new sequences of words by setting the loss function to expect the next word in the series of an existing corpus, through a process known as Casual Language Modeling (CLM). For the purposes of commercialization, they have been re-purposed to be prompted as chat-bots by users. This is done by performing backpropagation based on the generation of conversational sequences, with the LLM often instructed to act as if filling out a conversation's transcript. +Functionally, there is no fundamental algorithmic difference between generative and classification models. Indeed, most LLMs are initially trained to generate new sequences of words by setting the loss function to expect the next word in the series of an existing corpus, through a process known as Casual Language Modeling (CLM). For the purposes of commercialization, they have been re-purposed to be prompted as chat-bots by users. This is done by performing back propagation based on the generation of conversational sequences, with the LLM often instructed to act as if filling out a conversation's transcript. -Several underlying technologies are involved in the lifecycle of an LLM. The process of creating one usually starts with the definition of a vocabulary. Sequences of language are broken into tokens by algorithms called tokenizers. Tokenizers split text into smaller units, which are then encoded into a vector by another MLP. This is done to develop a sense of meaning via the mathematical similarity of similar words. The similarity of two vectors can be calculated using the cosine-similarity formula, which calculates the angle $\phi$ between two vectors. +Several underlying technologies are involved in the life cycle of an LLM. The process of creating one usually starts with the definition of a vocabulary. Sequences of language are broken into tokens by algorithms called tokenism's. Tokenizers split text into smaller units, which are then encoded into a vector by another MLP. This is done to develop a sense of meaning via the mathematical similarity of similar words. The similarity of two vectors can be calculated using the cosine-similarity formula, which calculates the angle $\phi$ between two vectors. \[ \cos\phi=\frac{\vec{A}\cdot\vec{B}}{||\vec{A}||||\vec{B}||} \] @@ -145,14 +145,14 @@ This research aims to investigate the potential integration of rule-based tensor \textbf{RQ:} How can deterministic rule-based tensor mutations be embedded within LLM architectures to enable more accurate and efficient mathematical operations? \end{quote} -The significance of this line of inquiry lies in its potential to address a fundamental limitation of current generative AI systems like ChatGPT, Anthropic's Claude, etc. While specialized numeric compute systems exist (e.g. RAG with Wolphram Alpha), they operate independently of the SIMD, low-latency systems of LLMS, leading to sizable latency in communication. This is especially prevalent in workflows involving both mathematical and linguistic reasoning. The integration of computational resources required for such workflows within LLMs could substantially reduce the computational resources required for complex tasks that involve both natural and language processing and mathematical reasoning. +The significance of this line of inquiry lies in its potential to address a fundamental limitation of current generative AI systems like ChatGPT, Anthropic's Claude, etc. While specialized numeric compute systems exist (e.g. RAG with Wolfram Alpha), they operate independently of the SIMD, low-latency systems of LLMS, leading to sizable latency in communication. This is especially prevalent in workflows involving both mathematical and linguistic reasoning. The integration of computational resources required for such workflows within LLMs could substantially reduce the computational resources required for complex tasks that involve both natural and language processing and mathematical reasoning. -This infestation focuses specifically on the following mathematical operations: +This investigation focuses specifically on the following mathematical operations: \begin{itemize} \item Basic arithmetic (addition, subtraction, multiplication, division) \item Matrix Operations (multiplication, inversion, determinant) -\item Binary Opertaions (XOR, AND, NAND, left shift, right shift, OR, complement) +\item Binary Operations (XOR, AND, NAND, left shift, right shift, OR, complement) \item Array Operations (array sum, as well as the mean, median, mode, standard deviation, variance, and other single variable metrics of a data set) \end{itemize} @@ -188,10 +188,34 @@ The implementation architecture utilizes predetermined index relationships withi Each mathematical operation type is assigned specific input and output indices within the tensor, creating a predictable computational graph that can be optimized during compilation using the CUDA compiler, \mintinline{c}|gcc|, and manual assembler optimization like with DeepSeekV3 \parencite[16]{deepseekai2025deepseekv3technicalreport}. Addition operations, for instance, use indices $(i,j)$ and $(i+1,j)$ as inputs, with results stored at $(i,j+d/2)$, effectively partitioning the embedding space into operand and result regions. Multiplication operations utilize indices $(i,j)$ and $(i,j+1)$ as inputs, with results projected to $(i+1,j+d/2)$, maintaining a consistent pattern of spatial relationships within the tensor. More complex operations like matrix determinant calculations employ a $3\times3$ submatrix starting at index $(i,j)$ with results consolidated at $(i+3,j)$. This systematic approach to index mapping enables highly efficient computation on GPU architectures, as the fixed patterns allow for optimized memory access patterns due to hard-coded indexing at compile time, and reduced cache thrashing during tensor operations. Modern GPUs excel at these fixed-pattern operations, particularly when they can be expressed as fused operations within CUDA kernels or optimized through tensor cores designed specifically for matrix multiplication\parencite{cuda_programming_guide_2025}. -The architecture maintains parallel processing paths that preserve the dual nature of the system's capabilities. The standard language processing path continues to leverage the probabilistic, statistical nature of the transformer architecture, preserving the original LLM capabilities that have proven effective for natural language understanding and generation. Simultaneously, the mathematical computation path applies fixed-index transformations for specific operations, creating a deterministic subsystem within the larger stochastically variant network. These parallel streams capitalize on the inherent parallelism of GPU architectures, allowing different CUDA cores and cache regions to process distinct streams simultaneously. The fixed-index nature of the mathematical operations enables compiler optimizations that can allocate dedicated tensor cores for these operations, maximizing throughput and minimizing latency. Existing models, as shown in Figure \ref{tb:model-sizes} tend to use far more VRAM than cores, leading to an allocation inefficient in terms of performance per millisecond of inference. The paths are later merged through concatenation and a projection layer, a process that similarly benefits from the warp-level primitives available in modern GPU architectures for efficient tensor manipulation. +The architecture maintains parallel processing paths that preserve the dual nature of the system's capabilities. The standard language processing path continues to leverage the probabilistic, statistical nature of the transformer architecture, preserving the original LLM capabilities that have proven effective for natural language understanding and generation. Simultaneously, the mathematical computation path applies fixed-index transformations for specific operations, creating a deterministic subsystem within the larger stochastically variant network. These parallel streams capitalize on the inherent parallelism of GPU architectures, allowing different CUDA cores and cache regions to process distinct streams simultaneously. The fixed-index nature of the mathematical operations enables compiler optimizations that can allocate dedicated tensor cores for these operations, maximizing throughput and minimizing latency. Existing models, as shown in Figure \ref{tab:model-sizes} tend to use far more VRAM than cores, leading to an allocation inefficient in terms of performance per millisecond of inference. The paths are later merged through concatenation and a projection layer, a process that similarly benefits from the warp-level primitives available in modern GPU architectures for efficient tensor manipulation. The attention mechanism serves as a noise filter and integration component, allowing the model to selectively focus on either standard language representations or mathematically transformed representations based on input context. This selective focusing behavior effectively routes information through the appropriate pathway based on the input's semantic requirements. From a hardware acceleration perspective, this mechanism benefits from the recent advancements in GPU architecture specifically designed for transformer models. The attention operations leverage dedicated tensor cores in NVIDIA's Ampere and Hopper architectures, which provide specialized hardware acceleration for matrix multiplication and accumulation operations at various precisions. The fixed-index nature of the approach enables further optimization of these operations through persistent CUDA kernels that maintain tensor data in high-bandwidth on-chip memory (L3-L4 cache), reducing expensive global memory access operations during the attention computation phase. +\newpage +{\raggedright \normalsize \textbf{Implementation Hardware & Software}} + +\section{Implementation in Rust Using Burn} + +Rust was selected for its memory safety guarantees, zero-cost abstractions, and deterministic concurrency model. The neural network is implemented using the \mintinline{toml}{burn} crate, a modular, backend-agnostic deep learning framework designed for Rust. Burn enables explicit architectural definition via trait-based modules and supports GPU acceleration using backends such as \mintinline{toml}{burn-wgpu} and \mintinline{toml}{burn-candle}. This design aligns with IB Computer Science principles of modularity, abstraction, and system performance. + +\begin{minted}{toml} +[dependencies] +burn = "0.12" +burn-wgpu = "0.12" log = "0.4" +env_logger = "0.10" +\end{minted} + +The system targets an MSI RTX 4090 (24GB VRAM, 900W), utilizing \mintinline{toml}{burn-wgpu} to leverage WebGPU for training on tensor cores. This setup maximizes throughput for floating-point operations critical in gradient descent and backpropagation. + +\begin{minted}{rust} use burn::module::Module; use burn::tensor::backend::WgpuBackend; use log::{info, warn}; + +fn main() { + env_logger::init(); info!("Training initialized"); +} +\end{minted} + +The \mintinline{toml}{log} crate provides structured runtime logging, while \mintinline{toml}{env_logger} parses environment variables to configure log levels. Logging supports traceability, a key aspect of IB standards emphasizing system reliability and maintainability. Modular logging also illustrates core software engineering practices, such as separation of concerns and system observability, during neural network training and mutation processes. %%%%Works cited \newpage \begin{center} diff --git a/_minted/2B22D1BB0060FE72ED7A036EB8243444.highlight.minted b/_minted/2B22D1BB0060FE72ED7A036EB8243444.highlight.minted new file mode 100644 index 0000000..dc9a8fa --- /dev/null +++ b/_minted/2B22D1BB0060FE72ED7A036EB8243444.highlight.minted @@ -0,0 +1,3 @@ +\begin{MintedVerbatim}[commandchars=\\\{\}] +\PYG{n}{env\PYGZus{}logger} +\end{MintedVerbatim} diff --git a/_minted/9C4740B2321818118B3501A042F1B7E5.highlight.minted b/_minted/9C4740B2321818118B3501A042F1B7E5.highlight.minted new file mode 100644 index 0000000..b67ade0 --- /dev/null +++ b/_minted/9C4740B2321818118B3501A042F1B7E5.highlight.minted @@ -0,0 +1,3 @@ +\begin{MintedVerbatim}[commandchars=\\\{\}] +\PYG{n}{log} +\end{MintedVerbatim} diff --git a/_minted/B0420CD8DD504542F352049F6401D587.highlight.minted b/_minted/B0420CD8DD504542F352049F6401D587.highlight.minted new file mode 100644 index 0000000..f867bf6 --- /dev/null +++ b/_minted/B0420CD8DD504542F352049F6401D587.highlight.minted @@ -0,0 +1,3 @@ +\begin{MintedVerbatim}[commandchars=\\\{\}] +\PYG{n}{burn\PYGZhy{}wgpu} +\end{MintedVerbatim} diff --git a/_minted/B189EEB4D1BC1BF5E5BC7A5A7CCC382C.highlight.minted b/_minted/B189EEB4D1BC1BF5E5BC7A5A7CCC382C.highlight.minted new file mode 100644 index 0000000..c449a8a --- /dev/null +++ b/_minted/B189EEB4D1BC1BF5E5BC7A5A7CCC382C.highlight.minted @@ -0,0 +1,6 @@ +\begin{MintedVerbatim}[commandchars=\\\{\}] + +\PYG{k}{fn}\PYG{+w}{ }\PYG{n+nf}{main}\PYG{p}{(}\PYG{p}{)}\PYG{+w}{ }\PYG{p}{\PYGZob{}} +\PYG{+w}{ }\PYG{n}{env\PYGZus{}logger}\PYG{p}{::}\PYG{n}{init}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;}\PYG{+w}{ }\PYG{n}{info}\PYG{o}{!}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{Training initialized}\PYG{l+s}{\PYGZdq{}}\PYG{p}{)}\PYG{p}{;} +\PYG{p}{\PYGZcb{}} +\end{MintedVerbatim} diff --git a/_minted/DF772CCE72A4F78D4332765469A7A0E9.highlight.minted b/_minted/DF772CCE72A4F78D4332765469A7A0E9.highlight.minted new file mode 100644 index 0000000..bf43704 --- /dev/null +++ b/_minted/DF772CCE72A4F78D4332765469A7A0E9.highlight.minted @@ -0,0 +1,6 @@ +\begin{MintedVerbatim}[commandchars=\\\{\}] +\PYG{k}{[}\PYG{k}{dependencies}\PYG{k}{]} +\PYG{n}{burn}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{0.12}\PYG{l+s+s2}{\PYGZdq{}} +\PYG{n}{burn\PYGZhy{}wgpu}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{0.12}\PYG{l+s+s2}{\PYGZdq{}}\PYG{+w}{ }\PYG{n}{log}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{0.4}\PYG{l+s+s2}{\PYGZdq{}} +\PYG{n}{env\PYGZus{}logger}\PYG{+w}{ }\PYG{o}{=}\PYG{+w}{ }\PYG{l+s+s2}{\PYGZdq{}}\PYG{l+s+s2}{0.10}\PYG{l+s+s2}{\PYGZdq{}} +\end{MintedVerbatim} diff --git a/_minted/E1F5AF9FA573AC6BDDC923342CB6518C.highlight.minted b/_minted/E1F5AF9FA573AC6BDDC923342CB6518C.highlight.minted new file mode 100644 index 0000000..0e943fc --- /dev/null +++ b/_minted/E1F5AF9FA573AC6BDDC923342CB6518C.highlight.minted @@ -0,0 +1,3 @@ +\begin{MintedVerbatim}[commandchars=\\\{\}] +\PYG{n}{burn\PYGZhy{}candle} +\end{MintedVerbatim} diff --git a/_minted/F9EE4BCA082EFD60976D581C36A6E9EA.highlight.minted b/_minted/F9EE4BCA082EFD60976D581C36A6E9EA.highlight.minted new file mode 100644 index 0000000..f656ec8 --- /dev/null +++ b/_minted/F9EE4BCA082EFD60976D581C36A6E9EA.highlight.minted @@ -0,0 +1,3 @@ +\begin{MintedVerbatim}[commandchars=\\\{\}] +\PYG{n}{burn} +\end{MintedVerbatim} diff --git a/_minted/_EEE4DC88718EF2B9D35BC605B86C9E60.index.minted b/_minted/_EEE4DC88718EF2B9D35BC605B86C9E60.index.minted index 5d691a4..48d9248 100644 --- a/_minted/_EEE4DC88718EF2B9D35BC605B86C9E60.index.minted +++ b/_minted/_EEE4DC88718EF2B9D35BC605B86C9E60.index.minted @@ -1,9 +1,16 @@ { "jobname": "EEMLA", "md5": "EEE4DC88718EF2B9D35BC605B86C9E60", - "timestamp": "20250429235425", + "timestamp": "20250430004509", "cachefiles": [ + "2B22D1BB0060FE72ED7A036EB8243444.highlight.minted", "3CECE1A7C91B2352D5EE067F42BA06E6.highlight.minted", + "9C4740B2321818118B3501A042F1B7E5.highlight.minted", + "B0420CD8DD504542F352049F6401D587.highlight.minted", + "B189EEB4D1BC1BF5E5BC7A5A7CCC382C.highlight.minted", + "DF772CCE72A4F78D4332765469A7A0E9.highlight.minted", + "E1F5AF9FA573AC6BDDC923342CB6518C.highlight.minted", + "F9EE4BCA082EFD60976D581C36A6E9EA.highlight.minted", "_EEE4DC88718EF2B9D35BC605B86C9E60.index.minted", "default.style.minted" ]