add techy-temporary#222
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
WalkthroughAdds a linked Markdown interview-preparation library covering data science, machine learning, deep learning, NLP, LLMs, RAG, graph ML, fine-tuning, evaluation, and hallucination detection. ChangesStudy Guide Content
Estimated code review effort: 3 (Moderate) | ~25 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Note
Due to the large number of review comments, Critical severity comments were prioritized as inline comments.
🟠 Major comments (27)
techy/01-data-science.md-464-466 (1)
464-466: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winShow SMOTE only inside the training pipeline.
The example does not state that SMOTE must be applied after splitting and independently within each training fold. Resampling the full dataset leaks information and produces optimistic evaluation results; use an
imblearnpipeline and retain the natural class distribution in the test set. (imbalanced-learn.org)🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/01-data-science.md` around lines 464 - 466, Update the credit-card fraud SMOTE example to specify that data is split before resampling, with SMOTE applied only to each training fold through an imblearn pipeline. Preserve the test set’s natural class distribution and clarify that reported metrics come from evaluation on the untouched test data.Source: MCP tools
techy/index.md-9-11 (1)
9-11: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winAlign the index links with the chapter filenames.
The supplied stack identifies
techy/03-deep-learning-and-nlp.md, but this index links to03-deep-learning.mdand04-nlp.md. Update the table to match the actual chapter layout before merging.Proposed fix
-| 3 | Deep Learning | [03-deep-learning.md](./03-deep-learning.md) | -| 4 | Natural Language Processing | [04-nlp.md](./04-nlp.md) | +| 3 | Deep Learning and NLP | [03-deep-learning-and-nlp.md](./03-deep-learning-and-nlp.md) |🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/index.md` around lines 9 - 11, Update the chapter links in the index table so the Deep Learning and Natural Language Processing entries point to the actual combined chapter file techy/03-deep-learning-and-nlp.md, and remove the outdated separate 03-deep-learning.md and 04-nlp.md references while preserving the remaining LLMs link.techy/01-data-science.md-252-253 (1)
252-253: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winClarify dbt lineage scope in this answer
Intechy/01-data-science.md:252-253, dbt’s native column-level lineage is based onSELECTexpressions in compiled SQL; it does not generally infer lineage fromJOINconditions or filters. If you want to mention that behavior, frame it as a limitation or attribute it to an external parser/catalog tool instead.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/01-data-science.md` around lines 252 - 253, Update the dbt lineage answer to state that native column-level lineage is derived from SELECT expressions in compiled SQL. Remove the claim that dbt infers column lineage from JOIN conditions, or clearly attribute that capability to an external parser or catalog tool as a limitation of dbt’s native lineage.Source: MCP tools
techy/01-data-science.md-520-535 (1)
520-535: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winCorrect the Shapiro-Wilk thresholds and kurtosis notation. Replace the fixed
n < 20/n = 20–2,000guidance with SciPy’s documented caveat that p-values may be unreliable forN > 5000, and rewrite the kurtosis rule to clearly use either Pearson kurtosis or excess kurtosis consistently.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/01-data-science.md` around lines 520 - 535, Update the Shapiro-Wilk guidance in the sample-size discussion and related interview answer to state SciPy’s documented p-value reliability caveat for N > 5,000 instead of presenting fixed n < 20 and n = 20–2,000 thresholds. Revise every kurtosis reference in this section to use one clearly identified convention consistently—Pearson kurtosis near 3 or excess kurtosis near 0—and adjust the stated rule accordingly.Source: MCP tools
techy/02-machine-learning.md-105-107 (1)
105-107: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winCorrect the Random Forest variance formula.
σ²/ρhas the wrong behavior: lowering tree correlation would increase the stated variance. ForBtrees, useσ²[ρ + (1−ρ)/B](under the usual equal-variance/equal-correlation simplification), which approachesσ²/Bfor independent trees andρσ²asBgrows.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/02-machine-learning.md` around lines 105 - 107, Update the Random Forest variance expression in the paragraph describing ensemble averaging to use σ²[ρ + (1−ρ)/B], defining B as the number of trees if needed, and retain the stated limiting behavior for independent trees and large ensembles.techy/02-machine-learning.md-342-343 (1)
342-343: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winCorrect the MAPE limitation.
MAPE is not asymmetric for equal absolute deviations from the same actual value. Its key limitations are undefined behavior at
yᵢ = 0, extreme weighting of small actuals, and sensitivity to the actual-value scale.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/02-machine-learning.md` around lines 342 - 343, Update the MAPE description in the regression metrics paragraph to remove the claim that it is asymmetric. Retain the stated formula and document its actual limitations: undefined behavior when yᵢ = 0, extreme weighting of small actual values, and sensitivity to actual-value scale.techy/02-machine-learning.md-45-45 (1)
45-45: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winDo not describe OvR as handling multilabel classes directly.
OvR assumes one class is selected among mutually exclusive classes. For non-mutually-exclusive labels, describe a multilabel setup with independently thresholded classifiers instead.
Also applies to: 59-60
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/02-machine-learning.md` at line 45, Update the multi-class classification description near the OvR and Softmax discussion to state that OvR assumes mutually exclusive classes; for non-mutually-exclusive labels, describe multilabel classification as independent binary classifiers with separate thresholds. Remove the claim that OvR directly handles non-mutually-exclusive classes while preserving the existing Softmax explanation.techy/02-machine-learning.md-627-631 (1)
627-631: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winCorrect the log-loss example and baseline.
For a binary null model predicting
p=0.25, log loss is-[0.25 log(0.25)+0.75 log(0.75)] ≈ 0.562, not1.39. The model comparisons also cannot be derived from class-average probabilities alone; log loss must be averaged per example (or from average log probabilities), sincelog(mean(p))is not the mean log loss.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/02-machine-learning.md` around lines 627 - 631, Correct the log-loss example by replacing the binary null-model calculation with the per-example baseline formula using the 25% positive and 75% negative class proportions, yielding approximately 0.562. Revise the Model A/B/C comparison wording and values so they are not calculated from class-average probabilities; state that log loss must use per-example predicted probabilities or average log probabilities, and avoid presenting unsupported numeric results from those averages.techy/02-machine-learning.md-49-49 (1)
49-49: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winFix the logistic-regression example’s probability and coefficient interpretation.
With
z = 17,P(default) = sigmoid(17) ≈ 0.99999996, not0.00000004. The example’s coefficients also imply that higher credit score increases default odds while higher DTI decreases them; reverse the signs or revise the narrative if the intended behavior is the opposite.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/02-machine-learning.md` at line 49, Correct the Loan default prediction example’s sigmoid calculation so z = 17 yields P(default) ≈ 0.99999996. Align the coefficient interpretation with the displayed signs: credit_score increases default odds by e^(0.03), while DTI_ratio decreases them by e^(-0.05); alternatively, revise the coefficients if the narrative intends the opposite behavior.techy/02-machine-learning.md-517-519 (1)
517-519: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winRecalculate and reconcile the Isolation Forest example.
The example is internally inconsistent:
contamination=0.0017is not the same ascontamination="auto";2^(-4.2/10.5)is approximately0.76, not0.87; and 359 true positives plus 227 false positives gives precision near 61%, not 68%. Recompute the metrics from one consistent configuration.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/02-machine-learning.md` around lines 517 - 519, Recalculate the entire Isolation Forest credit-card fraud example around the stated contamination setting, ensuring the configuration uses either 0.0017 or "auto" consistently. Correct the anomaly-score arithmetic and reconcile recall, precision, true positives, false positives, and false-positive rate so all reported metrics derive from the same results; update the comparative claims if those results change.techy/02-machine-learning.md-8-8 (1)
8-8: 🎯 Functional Correctness | 🟠 Major | 🏗️ Heavy liftQualify the OLS closed-form formula.
(XᵀX)⁻¹is undefined when features are linearly dependent, and the displayed equation only includes an intercept ifXhas already been augmented with a column of ones. State these assumptions or use the Moore–Penrose pseudoinverse as the general formulation.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/02-machine-learning.md` at line 8, Update the linear regression explanation around the OLS solution to either state that X has full column rank and includes an intercept column of ones, or replace the inverse-based expression with the Moore–Penrose pseudoinverse formulation. Ensure the displayed formula accurately covers linearly dependent features and intercept handling.techy/02-machine-learning.md-74-78 (1)
74-78: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winQualify categorical and missing-value support. The “naturally handle categorical features” and surrogate-split claims are implementation-dependent; scikit-learn’s
DecisionTree*needs numeric input and doesn’t provide native missing-value/surrogate-split handling. Narrow the wording or add an encoding/imputation caveat.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/02-machine-learning.md` around lines 74 - 78, Update the decision-tree discussion to qualify categorical-feature and missing-value handling: avoid claiming native support, note that scikit-learn’s DecisionTree implementations require numeric encoding and appropriate missing-value treatment, and frame surrogate splits as implementation-dependent rather than generally available.techy/05-llm-rag-graph.md-328-328 (1)
328-328: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winDo not teach logit bias as a JSON-enforcement mechanism.
Biasing brace, quote, or punctuation tokens cannot guarantee grammatical JSON because tokenization and contextual probabilities still permit invalid sequences. The sample payload also contains an empty token-ID key. Recommend constrained decoding or structured-output APIs, followed by parsing and validation.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/05-llm-rag-graph.md` at line 328, Revise the logit-bias guidance in the surrounding JSON-output section: remove the recommendation to force JSON by biasing punctuation or natural-language tokens and remove the invalid empty token-ID example. Instead, recommend constrained decoding or structured-output APIs, then explicitly parse and validate the resulting output.techy/05-llm-rag-graph.md-92-92 (1)
92-92: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winDistinguish syntactically valid JSON from schema-valid output.
The text treats JSON mode and constrained decoding as interchangeable guarantees. Valid JSON does not necessarily satisfy the intended schema; production guidance should require server-side parsing and schema validation even when structured-output features are enabled.
Also applies to: 118-120
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/05-llm-rag-graph.md` at line 92, Update the structured-output guidance around the JSON-mode and constrained-decoding discussion to distinguish syntactically valid JSON from schema-valid output. Require server-side parsing and schema validation after generation, even when structured-output features are enabled, and avoid claiming these mechanisms alone guarantee the intended schema.techy/05-llm-rag-graph.md-62-62 (1)
62-62: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winRemove the claim that citations make hallucinations impossible.
A prompt requiring citations can reduce hallucinations but cannot guarantee that the model will only state supported facts or produce valid citations. Replace this with a probabilistic claim and recommend faithfulness/citation validation.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/05-llm-rag-graph.md` at line 62, Update the final sentence of the Company policy Q&A system description to remove the guarantee that citations prevent hallucinations. State instead that citation requirements can reduce unsupported claims but do not guarantee faithfulness or valid citations, and recommend validating answer faithfulness and citations against the retrieved PDF context.techy/05-llm-rag-graph.md-963-965 (1)
963-965: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winCorrect the IA³ parameter-count example.
IA³ scales key, value, and feed-forward activations; the feed-forward vector is generally larger than the hidden dimension. Therefore
3 × num_layers × hidden_dimand the resulting 393K figure are not generally valid for a 7B LLaMA-style model. Compute the count from the actual K/V/FFN dimensions.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/05-llm-rag-graph.md` around lines 963 - 965, Correct the IA³ parameter-count explanation and LLaMA-7B example by summing the per-layer key, value, and feed-forward scaling-vector dimensions rather than using 3 × num_layers × hidden_dim. Use the model’s actual K/V and FFN dimensions to recalculate the trainable-parameter total and update the related percentage/example figures consistently.techy/05-llm-rag-graph.md-214-214 (1)
214-214: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winMake the fine-tuning memory figures internally consistent.
Line 214 gives approximately 56 GB for 7B full fine-tuning, while the comparison table gives approximately 120 GB for the same FP16 case. These figures depend on weights, gradients, optimizer states, activations, sequence length, and checkpointing; define the accounting assumptions and use one consistent estimate.
Also applies to: 1008-1012
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/05-llm-rag-graph.md` at line 214, The full fine-tuning memory estimates in the prose and comparison table are inconsistent. Update the fine-tuning discussion around the 7B and 70B figures and the corresponding table entries to state explicit accounting assumptions, then use one consistent FP16 training estimate that includes the same components—weights, gradients, optimizer states, activations, sequence length, and checkpointing—throughout.techy/05-llm-rag-graph.md-766-766 (1)
766-766: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winCorrect the Node2Vec BFS/DFS mapping.
q < 1drives outward, DFS-like walks, whileq > 1keeps walks local and BFS-like.ponly discourages immediate backtracking; it doesn’t flip BFS/DFS behavior on its own. The currentp > 1 + q < 1 = BFS-likephrasing is inverted.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/05-llm-rag-graph.md` at line 766, Update the Node2Vec explanation so q < 1 is described as promoting outward, DFS-like exploration and q > 1 as favoring local, BFS-like neighborhoods. Clarify that p only controls immediate backtracking and does not independently determine BFS/DFS behavior.techy/05-llm-rag-graph.md-262-262 (1)
262-262: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winExclude Context Recall from the reference-free claim
techy/05-llm-rag-graph.md:262 — The lead-in says all four RAGAS metrics are computed without ground-truth answers, but Context Recall uses a reference answer/reference contexts. Reword that sentence so it only covers the metrics that are actually reference-free.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/05-llm-rag-graph.md` at line 262, The RAGAS metric overview incorrectly describes all four metrics as reference-free. Update the lead-in sentence in the RAGAS description to exclude Context Recall from the reference-free claim, while preserving the existing explanations of all four metrics and their evaluation requirements.techy/05-llm-rag-graph.md-20-20 (1)
20-20: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winAvoid presenting GPT-4’s parameter count and context window as facts. OpenAI doesn’t disclose a 1.7T parameter count, and GPT-4 was documented with 8K/32K context windows, not 100K. Use a version-specific, sourced example or mark these figures as illustrative.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/05-llm-rag-graph.md` at line 20, Update the GPT-4 description in the introductory comparison to remove the unsupported 1.7-trillion parameter and 100K context-window claims; replace them with documented, version-specific figures and cite their source, or clearly label the values as illustrative rather than factual.techy/03-deep-learning-and-nlp.md-791-791 (1)
791-791: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winReverse the perplexity direction.
Catastrophic forgetting worsens general language modeling, so perplexity on general text should increase, not “drop significantly.”
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` at line 791, Correct the perplexity statement in the catastrophic-forgetting explanation so that fine-tuning causes perplexity on general text to increase significantly, while leaving the surrounding causes and prevention strategies unchanged.techy/03-deep-learning-and-nlp.md-937-937 (1)
937-937: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winDo not call GNMT a Transformer system.
The original GNMT architecture is an 8-layer LSTM encoder/decoder with attention and residual connections. Transformer-based systems should be described separately. (arxiv.org)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` at line 937, Revise the paragraph’s GNMT description to identify it as an 8-layer LSTM encoder/decoder architecture with attention and residual connections, not as a Transformer system. Keep the Transformer discussion separate and retain the existing GNMT engineering details and translation-error result where accurate.Source: MCP tools
techy/03-deep-learning-and-nlp.md-1044-1044 (1)
1044-1044: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winDo not use
[MASK]in a next-token perplexity example.
[MASK]implies a masked-language-model objective, while autoregressive perplexity evaluates the probability of the actual next token. Either remove[MASK]or explicitly label this as a masked-token example.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` at line 1044, Update the next-token prediction example to remove “[MASK]” from the sequence, while preserving the probability and perplexity discussion; alternatively, explicitly relabel the example as masked-token prediction if the placeholder must remain.techy/03-deep-learning-and-nlp.md-576-576 (1)
576-576: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winCorrect the GroupNorm endpoint comparison.
GroupNorm with one group is LayerNorm-like, but GroupNorm with one channel per group is InstanceNorm-like—not BatchNorm. BatchNorm normalizes using batch statistics, whereas GroupNorm is independent of batch size. (arxiv.org)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` at line 576, Correct the Group Normalization comparison in the normalization discussion: retain that one group is LayerNorm-like, but replace the “H groups of size 1” BatchNorm comparison with the accurate InstanceNorm-like endpoint. Clarify that GroupNorm does not use batch statistics and is independent of batch size.Source: MCP tools
techy/03-deep-learning-and-nlp.md-516-520 (1)
516-520: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winMake the dropout scaling convention consistent.
Line 516 says to scale outputs by
(1-p)at inference, while line 520 correctly describes inverted dropout, which scales retained activations during training and requires no inference scaling. Choose one convention and keep the equations consistent. (jmlr2020.csail.mit.edu)🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` around lines 516 - 520, Update the inference-time description in the dropout discussion to consistently use the inverted-dropout convention established by the training equation: state that dropout is disabled with no additional output scaling during inference, and remove the conflicting `(1-p)` scaling claim while preserving the remaining explanation.Source: MCP tools
techy/03-deep-learning-and-nlp.md-415-415 (1)
415-415: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winBias-correct both Adam moments in the update formula.
The displayed update uses (m_t) but only bias-corrects (v_t). The standard Adam update uses (\hat m_t / (\sqrt{\hat v_t}+\epsilon)). (alphaxiv.org)
Proposed correction
- θ_t = θ_{t-1} - η·m_t/(√v̂_t + ε) + θ_t = θ_{t-1} - η·m̂_t/(√v̂_t + ε)🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` at line 415, Update the Adam update formula in the optimizer description to use the bias-corrected first moment m̂_t in the numerator, alongside the existing bias-corrected second moment v̂_t in the denominator. Keep the surrounding moment definitions and explanation unchanged.Source: MCP tools
techy/03-deep-learning-and-nlp.md-601-601 (1)
601-601: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winAvoid presenting He initialization as the default for ViT/Transformer models
PyTorch’s referencenn.Transformeruses Xavier uniform for multidimensional parameters, and Vision Transformer initializations vary by implementation; He init is not the general default here.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` at line 601, Revise the He initialization paragraph to remove the claim that He initialization is standard or generally default for Vision Transformers and modern Transformer architectures. State that initialization varies by implementation, noting Xavier uniform as used by PyTorch’s reference nn.Transformer where appropriate, while preserving the ReLU-specific guidance.Source: MCP tools
🟡 Minor comments (28)
techy/index.md-15-15 (1)
15-15: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winSpecify the fenced-block language.
This triggers markdownlint MD040.
-``` +```markdown🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/index.md` at line 15, Update the fenced code block in the Markdown content to specify its language as markdown, using the existing empty block and preserving its contents.Source: Linters/SAST tools
techy/01-data-science.md-163-167 (1)
163-167: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winUse version-neutral SLA language or scope this to Airflow 2. Airflow 3 removed legacy SLAs and replaced them with Deadline Alerts, so this should avoid “SLA compliance” wording unless it is explicitly limited to Airflow 2.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/01-data-science.md` around lines 163 - 167, Update the orchestration paragraph’s “SLA compliance” reference to version-neutral deadline/alert monitoring, or explicitly scope the SLA terminology to Airflow 2; keep the surrounding pipeline monitoring examples unchanged.Source: MCP tools
techy/01-data-science.md-341-356 (1)
341-356: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winCorrect the β/power notation and sample-size formula.
βis the Type II error rate, sopower = 1 − β; with 80% power,β = 0.20, not0.80. The sample-size formula should also useZ_(1−β)(orZ_power) instead ofZ_β.Suggested edit
- significance level α = 0.05 (5% chance of Type I error — false positive), power β = 0.80 (20% chance of Type II error — false negative) + significance level α = 0.05 (5% chance of Type I error — false positive), Type II error β = 0.20, and power 1 − β = 0.80 ... - Formula: n = (Z_α/2 + Z_β)² + Formula: n = (Z_(1−α/2) + Z_(1−β))²🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/01-data-science.md` around lines 341 - 356, Correct the A/B testing notation so β is identified as the 20% Type II error rate and power as 1 − β = 0.80. In the sample-size formula under the interview question, replace Z_β with the quantile for 1 − β, such as Z_(1−β) or Z_power, while preserving the surrounding explanation and calculations.Source: MCP tools
techy/01-data-science.md-295-297 (1)
295-297: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winReplace
dvc runwithdvc stage addin the example.dvc runis deprecated, so this copy-paste command should use the current DVC stage command.Suggested edit
-`dvc run -n train -d data/processed_features.csv -m metrics.json python train.py`. +`dvc stage add -n train -d data/processed_features.csv -m metrics.json python train.py`.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/01-data-science.md` around lines 295 - 297, Update the DVC command in the churn prediction example to use the current `dvc stage add` syntax instead of deprecated `dvc run`, preserving the existing stage name, dependencies, metrics output, and training command.Source: MCP tools
techy/01-data-science.md-79-79 (1)
79-79: 🔒 Security & Privacy | 🟡 Minor | ⚡ Quick winTighten the GDPR wording
techy/01-data-science.md#L79-L79: pseudonymization reduces exposure risk, but it doesn’t make ETL an automatic GDPR-compliance guarantee or ensure PII can never be exposed.techy/01-data-science.md#L193-L193: GDPR doesn’t impose a fixed 7-year retention period; frame this as a policy or jurisdiction-specific rule.techy/01-data-science.md#L200-L201: erasure has legal exceptions, and backup handling depends on the backup/keying design; key rotation isn’t universally sufficient.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/01-data-science.md` at line 79, Tighten the GDPR statements at techy/01-data-science.md lines 79-79, 193-193, and 200-201: clarify that pseudonymization reduces exposure risk but does not guarantee GDPR compliance or prevent PII exposure; present seven-year retention as a policy- or jurisdiction-specific rule rather than a GDPR requirement; and note that erasure has legal exceptions and backup treatment depends on the backup and keying design, without implying key rotation is universally sufficient.Source: MCP tools
techy/concept-reference.md-30-30 (1)
30-30: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winPoint “Supervised Learning” to the supervised-learning section.
This row links to
#semi-supervised-learning; the supplied target attechy/01-data-science.md:364-374is explicitly a Semi-supervised Learning section. Readers following the Supervised Learning entry therefore land on the wrong concept. Link to the actual supervised-learning section, or mark supervised learning as not covered.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/concept-reference.md` at line 30, Update the Supervised Learning row in the concept reference table so its link targets the actual supervised-learning section in 01-data-science.md rather than `#semi-supervised-learning`; if no supervised-learning section exists, mark the concept as not covered instead.techy/concept-reference.md-49-49 (1)
49-49: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winDo not classify PCA as feature selection.
PCA performs dimensionality reduction through feature extraction; it does not select a subset of the original features. This also conflicts with the missing-concepts entry at Line 468. Link Feature Selection to a genuine feature-selection section or mark it as uncovered.
Proposed correction
-| Feature Selection | PCA as dim reduction [02-machine-learning.md](./02-machine-learning.md#pca-principal-component-analysis) | [02](./02-machine-learning.md#pca-principal-component-analysis) | +| Feature Selection | Not covered as a dedicated section | [02](./02-machine-learning.md) |🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/concept-reference.md` at line 49, Update the “Feature Selection” entry in the concept reference table so it no longer links to the PCA section; link it to a genuine feature-selection section if one exists, otherwise mark the concept as uncovered, keeping PCA classified only as feature extraction/dimensionality reduction.techy/02-machine-learning.md-109-109 (1)
109-109: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winAvoid calling OOB error unbiased.
Describe OOB error as an approximately independent, built-in estimate of generalization performance; its bias and variance depend on the dataset and forest configuration.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/02-machine-learning.md` at line 109, Revise the Random Forest OOB error description to remove the claim that it is an “unbiased” estimate. Describe aggregated OOB predictions as an approximately independent, built-in estimate of generalization performance, and note that its bias and variance depend on the dataset and forest configuration.techy/02-machine-learning.md-155-156 (1)
155-156: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winClarify zero handling in XGBoost —
techy/02-machine-learning.md:155-156: zero is not inherently missing here; only sparse omissions or the configuredmissingsentinel are skipped. Rephrase this as sparse-input handling, not as “treats zeros as missing.”🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/02-machine-learning.md` around lines 155 - 156, Update the XGBoost explanation near the sparsity-aware learning discussion to remove the claim that zeros are inherently treated as missing. Clarify that sparse omissions, or values matching the configured missing sentinel, are skipped while explicit zero values remain valid unless configured otherwise.techy/05-llm-rag-graph.md-310-314 (1)
310-314: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winResolve the repeated heading warnings.
The reusable
### Theory & Explanation,### Example, and### Interview Questionsheadings are repeated throughout the document, triggering MD024 and producing duplicate anchors. Use unique section-prefixed headings or configure the linter intentionally if duplicate anchors are acceptable.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/05-llm-rag-graph.md` around lines 310 - 314, Update the repeated Theory & Explanation, Example, and Interview Questions headings throughout the document to include a unique section-specific prefix, preserving their hierarchy and content while eliminating duplicate anchors and MD024 warnings.Source: Linters/SAST tools
techy/05-llm-rag-graph.md-602-609 (1)
602-609: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winAdd language identifiers to both fenced code blocks.
The extraction and QA examples use unlabeled fences, triggering MD040. Mark them as
textorjsonas appropriate.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/05-llm-rag-graph.md` around lines 602 - 609, Add language identifiers to both fenced code blocks in the extraction and QA examples: label schema/instruction text fences as text and JSON-output fences as json, preserving their contents.Source: Linters/SAST tools
techy/05-llm-rag-graph.md-346-346 (1)
346-346: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winCorrect the beam-search complexity claim.
Line 341 already gives the approximate cost as
O(b × vocabulary × sequence_length), but this line calls the cost quadratic in beam width. Replace “quadratic” with “roughly linear in beam width, subject to implementation details.”🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/05-llm-rag-graph.md` at line 346, Update the beam-search cost description in the paragraph beginning “Wider beams” to replace the “quadratic computational cost” claim with “roughly linear in beam width, subject to implementation details,” while preserving the surrounding quality, diversity, repetition, and task guidance.techy/05-llm-rag-graph.md-174-174 (1)
174-174: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winEscape the matrix index expression.
Markdown parses
A[i][j]as a reference-style link whose label isj, producing the reported MD052 warning and potentially rendering the formula incorrectly. Wrap the expression in backticks or escape the brackets.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/05-llm-rag-graph.md` at line 174, In the graph concepts description, update the adjacency-matrix expression in the sentence defining A so `A[i][j]` is rendered as literal text by wrapping it in inline code or escaping its brackets, while preserving the surrounding explanation.Source: Linters/SAST tools
techy/05-llm-rag-graph.md-376-376 (1)
376-376: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winFix the sliding-window attention direction. Token 1 cannot attend to token 4097; token 4097 attends backward within its window, and that information can propagate forward across layers.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/05-llm-rag-graph.md` at line 376, Correct the sliding-window attention explanation in the paragraph about Mistral: state that token 4097 attends backward to token 1 within its window, and that information propagates forward across layers; do not claim token 1 attends to token 4097.techy/05-llm-rag-graph.md-918-918 (1)
918-918: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winCorrect the PageRank example
Under the stated formula with standard dangling-node handling, the fixed point is roughly A: 0.161, B: 0.298, C: 0.415, D: 0.126, so the current hard-coded scores and “B is most important” conclusion are off. Either show the calculation and dangling-node convention used, or remove the scores.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/05-llm-rag-graph.md` at line 918, Correct the PageRank example by removing the inaccurate hard-coded scores and “B is most important” conclusion, or replace them with values derived from the stated formula using an explicitly described standard dangling-node convention. If retaining scores, show enough calculation to support the fixed point approximately A: 0.161, B: 0.298, C: 0.415, D: 0.126.techy/03-deep-learning-and-nlp.md-736-736 (1)
736-736: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winFix the bottleneck-computation claim.
With 256 input/output channels and a 64-channel bottleneck, a standard two-layer (3\times3) block costs about 1.18M multiply-add weights, while the (1\times1)-(3\times3)-(1\times1) bottleneck costs about 69.6K—roughly 17× fewer, not 4×.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` at line 736, Update the bottleneck computation statement in the ResNet-50 discussion to say it reduces computation by roughly 17×, replacing the inaccurate 4× claim. Keep the surrounding architecture and performance details unchanged.techy/03-deep-learning-and-nlp.md-1049-1049 (1)
1049-1049: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winCorrect the BPC formula’s log-base conversion.
If the logarithm is natural log, dividing by character count yields nats per character, not bits per character. Convert by dividing by
ln(2)or use base-2 logarithms.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` at line 1049, Update the BPC definition in the perplexity/tokenization explanation so it uses base-2 logarithms or divides the natural-log negative log-likelihood by ln(2), ensuring the result is bits per character rather than nats per character.techy/03-deep-learning-and-nlp.md-961-961 (1)
961-961: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winRemove the “guaranteed factual correctness” claim for extractive summaries.
Extractive summarization avoids generating new wording, but selected sentences can still be misleading, incomplete, or incorrect when removed from context. Replace this with a weaker claim such as “lower risk of introducing novel factual content.”
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` at line 961, Update the extractive summarization advantages in the paragraph describing TextRank and BERT-based sentence scoring: replace the “guaranteed factual correctness” claim with a qualified statement such as lower risk of introducing novel factual content, while preserving the surrounding fluency and disadvantage discussion.techy/03-deep-learning-and-nlp.md-685-685 (1)
685-685: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winSelect anomaly thresholds on held-out validation data.
Deriving the threshold from the training reconstruction-error distribution can produce an overly optimistic cutoff, especially if anomalies or memorized examples are present. Use a clean validation/calibration set or explicitly state the assumption.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` at line 685, Update the autoencoder-based anomaly detection paragraph to recommend selecting the reconstruction-error threshold using a clean held-out validation or calibration set instead of the training distribution. Revise the MSE example accordingly, or explicitly state the assumption that the training set is clean and representative when retaining it.techy/03-deep-learning-and-nlp.md-1061-1061 (1)
1061-1061: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winRemove the ReLU explanation for embedding signs.
GloVe and BERT embeddings are not generally constrained to the positive orthant, and their components are not positive “due to ReLU.” Negative cosine similarities are possible and should be explained in terms of the embedding model, not an assumed activation function.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` at line 1061, Update the cosine similarity explanation near the NLP embedding discussion to remove the claim that embeddings are usually positive due to ReLU activations. State instead that cosine similarity distributions depend on the embedding model, while preserving that negative values are possible.techy/03-deep-learning-and-nlp.md-1077-1077 (1)
1077-1077: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winFix the cosine-distance arithmetic.
For (B=(1,1)) and (C=(0,1)), (\cos(B,C)=1/\sqrt2), so the distance is approximately
0.29, not0.50. The triangle-inequality counterexample still works after correcting the value.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` at line 1077, Correct the cosine-distance calculation for vectors B and C in the example: use cos(B,C) = 1/√2 and cosine distance ≈ 0.29 instead of 1/2 and 0.50. Update the triangle-inequality sum accordingly while preserving the conclusion that the example violates the inequality.techy/03-deep-learning-and-nlp.md-46-46 (1)
46-46: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winDo not describe GELU as dropout.
GELU is the deterministic activation (x\Phi(x)). The original paper motivates it using an input-dependent stochastic gate, but GELU itself does not perform dropout or stochastic regularization. (arxiv.org)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` at line 46, Update the GELU description to state that it is the deterministic activation x·Φ(x), and remove the claim that it combines dropout or provides stochastic regularization. You may mention the original paper’s stochastic-gating motivation only if clearly distinguished from GELU’s actual behavior.Source: MCP tools
techy/03-deep-learning-and-nlp.md-832-843 (1)
832-843: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winClarify that CRF transitions are learned scores, not universal BIO rules.
A
B-PERtag may legally be followed byB-ORGwhen two entities are adjacent; it is not restricted toI-PERorO. Explain that CRFs learn transition preferences, unless explicit BIO constraints are added during decoding.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` around lines 832 - 843, Correct the BiLSTM-CRF explanation and the “Why does the CRF layer improve NER” answer to describe transition values as learned preferences rather than universal BIO validity rules. Explicitly note that adjacent entities such as B-PER followed by B-ORG can be legal, and state that hard BIO constraints apply only if explicitly added during decoding; revise the example accordingly.techy/03-deep-learning-and-nlp.md-236-236 (1)
236-236: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winDo not call the displayed IDF formula smoothed.
log(N / df)is the unsmoothed formula. If smoothing is intended, show the actual smoothed expression; also,df = 0is not a division-by-zero case for terms already present in the vocabulary.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` at line 236, Correct the TF-IDF explanation by removing the claim that log(N/df) uses smoothing and that it prevents division by zero. Either describe this as the unsmoothed IDF formula or replace it with an explicitly smoothed expression, ensuring the discussion accurately handles terms present in the vocabulary.techy/03-deep-learning-and-nlp.md-384-384 (1)
384-384: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winRemove RoBERTa from the relative-position examples. RoBERTa uses learned absolute position embeddings; XLNet/Transformer-XL are the relative-position examples here. Update the matching sentence below as well.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` at line 384, Update the sequence-length guidance to remove RoBERTa from the relative positional encoding examples, leaving XLNet and Transformer-XL as the relative-position models. Apply the same correction to the matching sentence below while preserving the surrounding model-selection guidance.Source: MCP tools
techy/03-deep-learning-and-nlp.md-563-563 (1)
563-563: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winName the BatchNorm momentum convention. This update rule matches TensorFlow/Keras; PyTorch uses the opposite
momentumdefinition. Since both frameworks are mentioned, call out the convention explicitly or add the PyTorch equivalent to avoid ambiguity.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` at line 563, Clarify in the BatchNorm explanation that the displayed momentum update uses the TensorFlow/Keras convention, and state the equivalent PyTorch convention or its reversed parameter relationship. Keep the running-statistics behavior and framework references otherwise unchanged.Source: MCP tools
techy/03-deep-learning-and-nlp.md-208-214 (1)
208-214: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winSeparate the SentencePiece and GPT tokenizer examples. The
▁whitespace marker is SentencePiece-style, not GPT-4/tiktoken. Rename this example to SentencePiece or replace it with output from the specific GPT tokenizer you’re describing.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` around lines 208 - 214, Update the tokenization example under the “Example” section so its label and token output consistently represent either SentencePiece or a specifically identified GPT tokenizer. Do not use the SentencePiece “▁” whitespace markers while describing GPT-4/BPE output; either rename that example to SentencePiece or replace the tokens with accurate output from the named GPT tokenizer.Source: MCP tools
techy/03-deep-learning-and-nlp.md-159-159 (1)
159-159: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winTighten the Transformer examples
- Line 173: soften GPT-4 to a qualified example, since its public report doesn’t disclose the architecture.
- Line 355: remove the encoder-decoder cross-attention mention; GPT-style decoder-only blocks use causal self-attention only.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/03-deep-learning-and-nlp.md` at line 159, Update the Transformer examples so GPT-4 is presented only as a qualified, non-definitive example because its architecture is not publicly disclosed, and remove the encoder-decoder cross-attention reference from the GPT-style decoder-only description while preserving causal self-attention.Source: MCP tools
🧹 Nitpick comments (1)
techy/concept-reference.md (1)
28-28: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAdd blank lines before the Markdown tables.
markdownlint-cli2reports MD058 at these table starts. Add one blank line between each preceding heading/paragraph and its table so the index passes the configured Markdown lint rule.Also applies to: 46-46, 52-52, 58-58, 63-63, 75-75, 81-81, 103-103, 109-109, 121-121, 128-128, 135-135, 141-141, 146-146, 155-155, 160-160, 166-166, 181-181, 204-204, 224-224, 235-235, 246-246, 260-260, 271-271, 306-306, 313-313
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@techy/concept-reference.md` at line 28, Insert one blank line immediately before every Markdown table in concept-reference.md, including the table beginning with the Concept/Section/File header and all specified table starts, so each table is separated from the preceding heading or paragraph and satisfies MD058.Source: Linters/SAST tools
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 59f4c7f6-27a9-4b0c-9e5c-dba886cd0823
📒 Files selected for processing (6)
techy/01-data-science.mdtechy/02-machine-learning.mdtechy/03-deep-learning-and-nlp.mdtechy/05-llm-rag-graph.mdtechy/concept-reference.mdtechy/index.md
Description
Please include a summary of the change and which issue is fixed.
Fixes #(issue)
Type of change
How Has This Been Tested?
Please describe the tests that you ran to verify your changes.
bun testpassesbun run typecheckpassesbun run lintpasses (if applicable)Checklist:
Summary by CodeRabbit