<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SummerofReproducibility24 | UCSC OSPO</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/category/summerofreproducibility24/</link><atom:link href="https://deploy-preview-1007--ucsc-ospo.netlify.app/category/summerofreproducibility24/index.xml" rel="self" type="application/rss+xml"/><description>SummerofReproducibility24</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Wed, 06 Aug 2025 00:00:00 +0000</lastBuildDate><image><url>https://deploy-preview-1007--ucsc-ospo.netlify.app/media/logo_hub6795c39d7c5d58c9535d13299c9651f_74810_300x300_fit_lanczos_3.png</url><title>SummerofReproducibility24</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/category/summerofreproducibility24/</link></image><item><title>Midterm Report: Simulation, Comparison, and Conclusion of Cache Eviction</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre25/harvard/cachebench/2025-08-06-haochengxia/</link><pubDate>Wed, 06 Aug 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre25/harvard/cachebench/2025-08-06-haochengxia/</guid><description>&lt;h2 id="project-overview">Project Overview&lt;/h2>
&lt;p>&lt;strong>CacheBench&lt;/strong> is a benchmarking suite designed for comprehensive cache performance evaluation, with a particular focus on analyzing the miss ratios of various cache eviction algorithms.&lt;/p>
&lt;p>At the core of CacheBench lie two key components: the high-performance cache simulator, &lt;a href="https://github.com/1a1a11a/libCacheSim" target="_blank" rel="noopener">libCacheSim&lt;/a>, and the extensive &lt;a href="https://github.com/cacheMon/cache_dataset" target="_blank" rel="noopener">open-source cache datasets&lt;/a>, which collectively contain over 8,000 traces from diverse applications. This ensures broad coverage across a range of realistic workloads.&lt;/p>
&lt;p>Our primary goal is to evaluate all major and widely-used cache eviction algorithms on thousands of traces, in order to gain insights into their behaviors and design trade-offs. Additionally, we aim to identify and distill representative workloads, making benchmarking more efficient and comprehensive for future cache research.&lt;/p>
&lt;h2 id="progress-and-pain-points">Progress and Pain Points&lt;/h2>
&lt;p>We began by benchmarking prevalent eviction algorithms, including FIFO, LRU, CLOCK, LFU, Random, Belady (BeladySize), CAR, ARC, LIRS, LHD, Hyperbolic, GDSF, W-TinyLFU, 2Q, SLRU, S3-FIFO, SIEVE, and LeCaR. As we developed the suite, we made progressive improvements to both the simulator and dataset infrastructure. Our progress can be summarized as follows:&lt;/p>
&lt;ul>
&lt;li>Collected miss ratio results for all listed algorithms across 8,000+ traces.&lt;/li>
&lt;li>Identified best- and worst-performing traces for each algorithm, and conducted feature analysis of these traces.&lt;/li>
&lt;li>Developed Python bindings: To increase accessibility, we provided a Python package that allows users to easily download traces and run simulation analyses using &lt;a href="https://github.com/1a1a11a/libCacheSim" target="_blank" rel="noopener">libCacheSim&lt;/a> and the &lt;a href="https://github.com/cacheMon/cache_dataset" target="_blank" rel="noopener">cache datasets&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>However, analysis remains challenging because there is no universally accepted metric or baseline for objectively comparing cache eviction algorithms&amp;rsquo; performance across all workloads.&lt;/p>
&lt;h2 id="next-steps">Next Steps&lt;/h2>
&lt;p>For the second half of the project, my focus will shift to:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Evaluating More Complex Eviction Algorithms&lt;/strong>: Having concentrated mainly on static eviction policies so far (which are generally more deterministic and understandable), I will now investigate learning-based eviction algorithms such as LRB and 3L-Cache. These models incorporate learning components and incur additional computational overhead, making simulations slower and more complex.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Detailed Trace Analysis&lt;/strong>: Since eviction algorithms can have highly variable performance on the same trace, I plan to analyze why certain algorithms excel on specific traces while others do not. Understanding these factors is crucial to characterizing both the algorithms and the workload traces.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Constructing Representative Workload Sets&lt;/strong>: Based on ongoing simulations and trace analyses, I aim to identify a minimal but representative subset of traces that can serve as a basic evaluation suite, simplifying testing and improving accessibility.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="reflection">Reflection&lt;/h2>
&lt;p>This project has truly been the highlight of my summer. By evaluating a wide range of cache eviction algorithms, I&amp;rsquo;ve significantly deepened my understanding of cache design and its underlying principles.&lt;/p>
&lt;p>I&amp;rsquo;m especially grateful to my mentors for their constant support, patience, and guidance throughout this journey. It’s been a privilege to learn from you!&lt;/p>
&lt;p>I&amp;rsquo;m excited to see the final results of CacheBench!&lt;/p></description></item><item><title>Building a Benchmarking Suite for Cache Performance Evaluation</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre25/harvard/cachebench/2025-06-21-haochengxia/</link><pubDate>Sat, 21 Jun 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre25/harvard/cachebench/2025-06-21-haochengxia/</guid><description>&lt;p>Hi! I&amp;rsquo;m Haocheng Xia, a Computer Science student at the &lt;strong>University of Illinois Urbana-Champaign&lt;/strong>, passionate about the intersection of &lt;strong>machine learning and storage systems&lt;/strong>. Specifically, I&amp;rsquo;m keen on &lt;strong>workload analysis&lt;/strong> and &lt;strong>KV cache management for large language models&lt;/strong>.&lt;/p>
&lt;p>This summer, I&amp;rsquo;m happy to be a part of &lt;strong>SoR 2025&lt;/strong> and &lt;strong>OSRE 2025&lt;/strong>. I&amp;rsquo;m contributing to the &lt;strong>CacheBench&lt;/strong> project. My initiative, &lt;strong>&amp;lsquo;Building a Benchmarking Suite for Cache Performance Evaluation,&amp;rsquo;&lt;/strong> will create a robust platform. This involves extensive simulation of existing eviction algorithms using &lt;a href="https://github.com/cacheMon/libCacheSim" target="_blank" rel="noopener">libCacheSim&lt;/a>, developing microbenchmarks, and building a user-friendly platform for researchers to effortlessly evaluate novel cache designs. The ultimate goal is to establish a competitive leaderboard.&lt;/p>
&lt;p>My contributions will include a comprehensive dataset detailing simulated &lt;strong>miss ratios&lt;/strong> and &lt;strong>throughput&lt;/strong> of current cache eviction algorithms, an extension to &lt;a href="https://github.com/cacheMon/libCacheSim" target="_blank" rel="noopener">libCacheSim&lt;/a> for executing microbenchmarks both locally and on our online platform, and the creation and ongoing maintenance of a public web leaderboard. I&amp;rsquo;m grateful to be mentored by &lt;strong>Juncheng Yang&lt;/strong> and &lt;strong>Yazhuo Zhang&lt;/strong>.&lt;/p>
&lt;p>I&amp;rsquo;m thrilled to be part of building tools that empower users and advance the vision of a more decentralized web. Looking forward to a productive summer!&lt;/p></description></item><item><title>[Final] ScaleRep: Reproducing and benchmarking scalability bugs hiding in cloud systems</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/osu/scalerep/20240918-imzahra/</link><pubDate>Wed, 18 Sep 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/osu/scalerep/20240918-imzahra/</guid><description>&lt;p>Hello everyone,&lt;/p>
&lt;p>In my SoR 2024 project, &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/osu/scalerep/">ScaleRep project&lt;/a> for SoR 2024 under the mentorship of &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/bogdan-bo-stoica/">Bogdan &amp;quot;Bo&amp;quot; Stoica&lt;/a> and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/yang-wang/">Yang Wang&lt;/a>. I’m excited to share the final progress and insights we’ve gathered on tackling scalability bugs in large-scale distributed systems. I aimed to tackle the reproducibility challenges posed by scalability bugs in large-scale distributed systems. Below is a detailed summary of the investigations and findings we&amp;rsquo;ve conducted on scalability bugs in large-scale distributed systems.&lt;/p>
&lt;h2 id="project-overview">Project Overview&lt;/h2>
&lt;p>As you may recall, our project, ScaleRep, aimed to tackle the challenge of scalability bugs—those insidious issues that often arise in large-scale distributed systems under heavy workloads. These bugs, when triggered, can lead to significant system issues such as downtime, performance bottlenecks, and even data loss. They are particularly difficult to catch using traditional testing methods.&lt;/p>
&lt;p>Our primary focus was on reproducing these bugs, documenting the challenges involved, and providing insights into how these bugs manifest under various conditions. This documentation will help researchers identify, benchmark, and resolve similar issues in the future.&lt;/p>
&lt;h2 id="progress">Progress&lt;/h2>
&lt;p>Since the midterm update, several Apache Ignite bugs have been investigated, some of which have been successfully reproduced and uploaded to Trovi for the research community to access and reuse. Below is the progress on the bugs investigated:&lt;/p>
&lt;h3 id="bugs-investigated">Bugs Investigated&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>&lt;a href="https://issues.apache.org/jira/browse/IGNITE-20614" target="_blank" rel="noopener">IGNITE-20614&lt;/a>&lt;/strong>&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://issues.apache.org/jira/browse/IGNITE-17407" target="_blank" rel="noopener">IGNITE-17407&lt;/a>&lt;/strong>&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://issues.apache.org/jira/browse/IGNITE-20602" target="_blank" rel="noopener">IGNITE-20602&lt;/a>&lt;/strong>&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://issues.apache.org/jira/browse/IGNITE-16600" target="_blank" rel="noopener">IGNITE-16600&lt;/a>&lt;/strong>&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://issues.apache.org/jira/browse/IGNITE-16072" target="_blank" rel="noopener">IGNITE-16072&lt;/a>&lt;/strong>&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://issues.apache.org/jira/browse/IGNITE-16582" target="_blank" rel="noopener">IGNITE-16582&lt;/a>&lt;/strong>&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://issues.apache.org/jira/browse/IGNITE-16581" target="_blank" rel="noopener">IGNITE-16581&lt;/a>&lt;/strong>&lt;/li>
&lt;/ol>
&lt;h2 id="key-insights--challenges">Key Insights &amp;amp; Challenges&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>Complexity of Scalability Bugs
Many scalability bugs involve subtle and complex interactions that are not easily detected in standard testing environments. For instance, IGNITE-20602 only manifested under certain high-load conditions and required a specific workload and environment to reliably trigger the issue. This highlights the importance of large-scale testing when investigating scalability issues.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Dependency and Documentation Gaps
We encountered significant challenges with outdated dependencies and incomplete documentation, particularly in older bugs like IGNITE-16072. In these cases, reproducing the bug required extensive modifications or wasn’t feasible without investing disproportionate effort in updating dependencies.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Effectiveness of Trovi and Chameleon
Packaging and sharing our reproducible investigations through Trovi and Chameleon have proven highly effective. By providing researchers with pre-configured environments and detailed documentation, we’ve laid the groundwork for future collaboration and further research on these bugs. We expect this to greatly benefit others attempting to reproduce similar issues.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Impact of Speed-Based Throttling
Our investigation into IGNITE-16600 revealed several important insights into speed-based throttling and its impact on system performance under high-load conditions. By analyzing the checkpoint starvation and thread throttling mechanisms, we were able to identify areas for improvement in the latest Ignite releases.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="next-steps">Next Steps&lt;/h2>
&lt;p>Expanding Collaboration: The packaged bugs and replayable Trovi experiments will be made available to the broader research community, encouraging further investigation and enhancements to large-scale distributed systems.&lt;/p>
&lt;p>The ScaleRep project has been an exciting journey into the world of scalability bugs, pushing the boundaries of what’s possible in terms of reproducibility and benchmarking. Through this project, we’ve demonstrated the importance of rigorous testing and comprehensive documentation in improving the reliability of distributed systems.&lt;/p></description></item><item><title>Understanding Data Leakage in Machine Learning: A Focus on TF-IDF</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/nyu/data-leakage/20240905-kyrillosishak/</link><pubDate>Thu, 05 Sep 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/nyu/data-leakage/20240905-kyrillosishak/</guid><description>&lt;p>Hello again!&lt;/p>
&lt;p>This is my final blog post, and I will be discussing the second material I created for the 2024 Summer of Reproducibility Fellowship. As you may recall from my first post, I am working on the &lt;strong>Exploring Data Leakage in Applied ML: Reproducing Examples of Irreproducibility&lt;/strong> project with &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/fraida-fund/">Fraida Fund&lt;/a> and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mohamed-saeed/">Mohamed Saeed&lt;/a> as my mentors.&lt;/p>
&lt;p>This blog post will explore how data leakage can occur during feature extraction, particularly with the commonly used &lt;strong>TF-IDF&lt;/strong> vectorizer, and its impact on model generalization.&lt;/p>
&lt;h1 id="introduction">Introduction&lt;/h1>
&lt;p>In machine learning, data leakage is a critical issue that can severely impact model performance. It occurs when information from outside the training dataset is improperly used to create the model, leading to overly optimistic performance during evaluation. One common source of leakage comes from how features, such as those extracted using &lt;strong>TF-IDF&lt;/strong> (Term Frequency-Inverse Document Frequency), are handled. In this post, we&amp;rsquo;ll explore how data leakage can happen during feature extraction with TF-IDF and how it affects model accuracy.&lt;/p>
&lt;h1 id="what-is-tf-idf">What is TF-IDF?&lt;/h1>
&lt;p>TF-IDF is a method used to evaluate how important a word is in a document relative to a collection of documents. It consists of two components:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Term Frequency (TF)&lt;/strong>: Measures how frequently a term appears in a document.&lt;/li>
&lt;li>&lt;strong>Inverse Document Frequency (IDF)&lt;/strong>: Reduces the importance of terms that appear frequently across many documents.&lt;/li>
&lt;/ol>
&lt;p>Together, they provide a weighted value for each word, reflecting its importance relative to the dataset.&lt;/p>
&lt;h1 id="how-data-leakage-occurs-with-tf-idf">How Data Leakage Occurs with TF-IDF&lt;/h1>
&lt;p>Data leakage with TF-IDF happens when the inverse document frequency (IDF) is calculated using the entire dataset (including the test set) before splitting it into training and test sets. This means the model has access to information from the test set during training, leading to artificially inflated results. This is a subtle form of data leakage, as it often goes unnoticed.&lt;/p>
&lt;p>For example, when calculating the TF-IDF score, if the word &amp;ldquo;banana&amp;rdquo; appears more frequently in the test set but is considered during training, the model downplays its significance. As a result, the model may fail to predict correctly when &amp;ldquo;banana&amp;rdquo; is important in the test data.&lt;/p>
&lt;h1 id="why-does-this-matter">Why Does This Matter?&lt;/h1>
&lt;p>If the test data is included when calculating the IDF, the model gains unintended insight into the test set&amp;rsquo;s word distribution. In real-world scenarios, the test data is supposed to be unseen during training. By allowing the model to see this information, you&amp;rsquo;re essentially reducing the uncertainty that the model should have about future data.&lt;/p>
&lt;h1 id="impact-of-data-leakage-on-model-performance">Impact of Data Leakage on Model Performance&lt;/h1>
&lt;p>Let&amp;rsquo;s consider two cases to understand the impact of data leakage in detail:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>When a word is rare in the training set but common in the test set&lt;/strong>: The model will underestimate the importance of this word during training, leading to poor performance when the word is critical in test documents.&lt;/li>
&lt;li>&lt;strong>When a word is common in the training set but rare in the test set&lt;/strong>: The model will overemphasize the word during training, leading to poor predictions when the word doesn’t appear as often in unseen data.&lt;/li>
&lt;/ol>
&lt;h3 id="case-study-data-leakage-in-tf-idf">Case Study: Data Leakage in TF-IDF&lt;/h3>
&lt;p>To see this effect in action, consider a small toy dataset where the presence of the word &amp;ldquo;banana&amp;rdquo; determines the label. If the word &amp;ldquo;banana&amp;rdquo; appears in a sentence, the label is 1; otherwise, the label is 0. Using &lt;strong>TF-IDF&lt;/strong> to vectorize the text, we train a machine learning model to predict this label.&lt;/p>
&lt;p>In the &lt;strong>first scenario&lt;/strong>, we calculate the &lt;strong>TF-IDF&lt;/strong> using the entire dataset before splitting it into training and testing sets. This causes data leakage since the model now knows the distribution of words across both sets. For instance, if &amp;ldquo;banana&amp;rdquo; is more common in the test set than the training set, the &lt;strong>IDF&lt;/strong> score for &amp;ldquo;banana&amp;rdquo; will be lower across the entire dataset, leading the model to downplay its importance.&lt;/p>
&lt;p>In the &lt;strong>second scenario&lt;/strong>, we calculate &lt;strong>TF-IDF&lt;/strong> only on the training set, ensuring that the test set remains unseen. This preserves the integrity of the test set, giving us a more realistic evaluation of the model&amp;rsquo;s performance.&lt;/p>
&lt;p>In both scenarios, the model&amp;rsquo;s accuracy is drastically different. When leakage is present, performance is artificially high during training but poor when tested on unseen data. Without leakage, the model generalizes better, as it is evaluated on truly unseen data.&lt;/p>
&lt;h1 id="avoiding-data-leakage">Avoiding Data Leakage&lt;/h1>
&lt;p>Avoiding data leakage is essential for building reliable machine learning models that generalize well to new data. Here are a few guidelines to help prevent leakage:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Split the dataset before feature extraction&lt;/strong>: Always divide your data into training and test sets before applying any feature engineering techniques.&lt;/li>
&lt;li>&lt;strong>Ensure proper cross-validation&lt;/strong>: When using cross-validation, ensure that the training and test splits do not overlap in any way that can leak information between them.&lt;/li>
&lt;li>&lt;strong>Be cautious with time-series data&lt;/strong>: In time-series models, avoid using future data to predict past events, as this can lead to leakage.&lt;/li>
&lt;/ol>
&lt;h1 id="conclusion">Conclusion&lt;/h1>
&lt;p>Avoiding data leakage is crucial for building robust machine learning models. In the case of TF-IDF, ensuring that feature extraction is done &lt;strong>only on the training set&lt;/strong> and not on the entire dataset is key to preventing leakage. Properly addressing this issue leads to better generalization and more reliable models in real-world applications.&lt;/p>
&lt;p>This blog post provided a case study on how TF-IDF can introduce data leakage and why it&amp;rsquo;s important to carefully handle your dataset before feature extraction. By splitting your data properly and ensuring that no test data &amp;ldquo;leaks&amp;rdquo; into the training process, you can build models that truly reflect real-world performance.&lt;/p>
&lt;p>Thanks for reading!&lt;/p></description></item><item><title>Reproducing and addressing Data Leakage issue : Duplicates in dataset</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/nyu/data-leakage/20240823-kyrillosishak/</link><pubDate>Fri, 23 Aug 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/nyu/data-leakage/20240823-kyrillosishak/</guid><description>&lt;p>Hello!&lt;/p>
&lt;p>In this blog post, I will explore a common issue in machine learning called data leakage, using an example from the paper:&lt;/p>
&lt;blockquote>
&lt;p>Benedetti, P., Perri, D., Simonetti, M., Gervasi, O., Reali, G., Femminella, M. (2020). Skin Cancer Classification Using Inception Network and Transfer Learning. In: Gervasi, O., et al. Computational Science and Its Applications – ICCSA 2020. ICCSA 2020. Lecture Notes in Computer Science(), vol 12249. Springer, Cham. &lt;a href="https://doi.org/10.1007/978-3-030-58799-4_39" target="_blank" rel="noopener">https://doi.org/10.1007/978-3-030-58799-4_39&lt;/a> &lt;a href="https://arxiv.org/pdf/2111.02402v1" target="_blank" rel="noopener">arXiv&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;h1 id="overview-of-the-paper">Overview of the Paper&lt;/h1>
&lt;p>In this paper, the authors use transfer learning on a pretrained convolutional neural network (CNN) to classify skin lesions in dermatoscopic images from the HAM10000 (Human Against Machine with 10,000 training images) dataset. The paper reports a final accuracy of 78.9% on the validation set.&lt;/p>
&lt;p>While this reported result appears to be impressive, there are concerns regarding the validity of this performance metric due to data leakage. Data leakage occurs when the model is trained or evaluated on data that it would not have access to during real-world deployment, leading to an overestimation of the model&amp;rsquo;s true performance.&lt;/p>
&lt;h1 id="identifying-data-leakage-in-the-original-paper">Identifying Data Leakage in the Original Paper&lt;/h1>
&lt;p>Upon closer inspection, it appears that the original experiment suffers from data leakage in two significant ways:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Duplicate Images in Training and Validation Sets:&lt;/p>
&lt;p>The HAM10000 dataset contains near-duplicate images of the same lesions in both the training and validation sets. This results in the model seeing very similar images during training and then again during validation. Consequently, the model&amp;rsquo;s performance is artificially inflated because it has already been &amp;ldquo;trained&amp;rdquo; on images similar to those in the validation set, making the task easier than it should be.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Lesions" srcset="
/report/osre24/nyu/data-leakage/20240823-kyrillosishak/Near-duplicate_HAM10000_hu729e02c2ef4cc1a337c6f61174a87df8_81762_dd4057c4bb0e4dc6092a43699881c4f4.webp 400w,
/report/osre24/nyu/data-leakage/20240823-kyrillosishak/Near-duplicate_HAM10000_hu729e02c2ef4cc1a337c6f61174a87df8_81762_95478285e99e3f18a8b724b5a0a3dbb5.webp 760w,
/report/osre24/nyu/data-leakage/20240823-kyrillosishak/Near-duplicate_HAM10000_hu729e02c2ef4cc1a337c6f61174a87df8_81762_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/nyu/data-leakage/20240823-kyrillosishak/Near-duplicate_HAM10000_hu729e02c2ef4cc1a337c6f61174a87df8_81762_dd4057c4bb0e4dc6092a43699881c4f4.webp"
width="620"
height="104"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Lesions2" srcset="
/report/osre24/nyu/data-leakage/20240823-kyrillosishak/Near-duplicate2_HAM10000_hu1c922099c4dc23532306de6197bf4d86_99960_a0e705292db1f7f683a77cd92f29edc0.webp 400w,
/report/osre24/nyu/data-leakage/20240823-kyrillosishak/Near-duplicate2_HAM10000_hu1c922099c4dc23532306de6197bf4d86_99960_fae997e88feee11018435aebd9ed6c88.webp 760w,
/report/osre24/nyu/data-leakage/20240823-kyrillosishak/Near-duplicate2_HAM10000_hu1c922099c4dc23532306de6197bf4d86_99960_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/nyu/data-leakage/20240823-kyrillosishak/Near-duplicate2_HAM10000_hu1c922099c4dc23532306de6197bf4d86_99960_a0e705292db1f7f683a77cd92f29edc0.webp"
width="620"
height="104"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Using the Validation Set for Early Stopping and Final Evaluation:&lt;/p>
&lt;p>Another critical issue is the use of the validation set for both early stopping and final model evaluation. Early stopping is a technique where training is halted when the model&amp;rsquo;s performance on a validation set no longer improves, preventing overfitting. However, if this same validation set is later used to evaluate the model&amp;rsquo;s final performance, it can lead to overfitting on the validation data itself, resulting in an overly optimistic estimate of model accuracy.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h1 id="our-reproduction-and-results">Our Reproduction and Results&lt;/h1>
&lt;p>To demonstrate the impact of these data leakage issues, we reproduced the experiment with corrected methodologies:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Corrected Data Split: We ensured that there were no duplicate images between the training and validation sets. This setup is crucial to simulate a realistic scenario where the model encounters completely unseen data during validation.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Separate Validation and Test Sets: We introduced a distinct test set to evaluate the final model performance, independent of the data used for early stopping.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Results Comparison&lt;/strong>&lt;/p>
&lt;table>
&lt;tr>
&lt;td>&lt;/td>
&lt;td>Original results&lt;/td>
&lt;td>Our results&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>
Accuracy
&lt;/td>
&lt;td>
78.9%
&lt;/td>
&lt;td>
78.6%
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>
Number of epochs
&lt;/td>
&lt;td>
Approx. 42 epochs
&lt;/td>
&lt;td>
40 epochs
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>
Training size
&lt;/td>
&lt;td>
Unknown
&lt;/td>
&lt;td>
7000 samples
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>
Validation size
&lt;/td>
&lt;td>
478 samples
&lt;/td>
&lt;td>
478 samples
&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>
Confusion martix
&lt;/td>
&lt;td>
&lt;img src="https://raw.githubusercontent.com/kyrillosishak/re-SkinCancer/main/assets/paper's_results.jpeg" />
&lt;/td>
&lt;td>
&lt;img src="https://raw.githubusercontent.com/kyrillosishak/re-SkinCancer/main/assets/Our_results.jpeg" />
&lt;/td>
&lt;/tr>
&lt;/table>
&lt;h1 id="analysis-of-the-results">Analysis of the Results&lt;/h1>
&lt;p>While our reproduced accuracy of 78.6% is close to the original reported accuracy, it is based on a properly separated training and validation set, avoiding the data leakage pitfalls of the original paper. The slight drop in accuracy further highlights the overestimation of the original model&amp;rsquo;s performance due to data leakage.&lt;/p>
&lt;p>Moreover, using a separate test set for final evaluation provides a more reliable measure of the model&amp;rsquo;s ability to generalize to new, unseen data. The confusion matrices show that our model&amp;rsquo;s performance is consistent across different lesion classes, confirming the robustness of the evaluation.&lt;/p>
&lt;h1 id="conclusion">Conclusion&lt;/h1>
&lt;p>Data leakage is a common and often overlooked problem in applied machine learning, leading to misleading performance metrics and irreproducible results. By carefully examining and correcting these issues in our reproduction, we hope to provide a clearer understanding of the importance of proper data handling and validation practices.&lt;/p>
&lt;p>It is crucial for researchers and practitioners to be vigilant about data leakage and ensure that their models are trained, validated, and tested under realistic conditions. This not only ensures the credibility of their results but also enhances the real-world applicability of their models.&lt;/p>
&lt;p>Thank you for reading, and stay tuned for more insights on machine learning reproducibility!&lt;/p></description></item><item><title>[MidTerm] ScaleRep: Reproducing and benchmarking scalability bugs hiding in cloud systems</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/osu/scalerep/20240801-imzahra/</link><pubDate>Thu, 01 Aug 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/osu/scalerep/20240801-imzahra/</guid><description>&lt;p>Hey there, scalability enthusiasts and fellow researchers! I’m excited to share my progress on the &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/osu/scalerep/">ScaleRep project&lt;/a> for SoR 2024 under the mentorship of &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/bogdan-bo-stoica/">Bogdan &amp;quot;Bo&amp;quot; Stoica&lt;/a> and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/yang-wang/">Yang Wang&lt;/a>. Here’s a glimpse into how we’re tackling scalability bugs in large-scale distributed systems.&lt;/p>
&lt;h2 id="project-overview">Project Overview&lt;/h2>
&lt;p>Large-scale distributed systems are the backbone of modern computing, powering various applications and services. However, these systems often face challenges related to reliability and performance, particularly scalability bugs. These bugs manifest in large-scale deployments, causing issues such as system downtime, reduced responsiveness, and data loss. Traditional bug-finding methods fall short in detecting these bugs, which are triggered by factors like component count, system load, workload size, recovery protocol reliability, and intermediate failure magnitude.&lt;/p>
&lt;p>Our project, ScaleRep, aims to address these challenges by analyzing recent scalability issues from ten popular open-source large-scale systems. We are providing detailed accounts of bug reproduction experiences, identifying common challenges, and developing protocols for triggering and quantifying the impact of scalability bugs.&lt;/p>
&lt;h2 id="progress-highlights">Progress Highlights&lt;/h2>
&lt;p>So far, I have been working on the following bugs and have successfully uploaded some of them to Trovi. Here’s a brief overview of my progress:&lt;/p>
&lt;h3 id="bugs-worked-on">Bugs Worked On:&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>&lt;a href="https://issues.apache.org/jira/browse/IGNITE-20614" target="_blank" rel="noopener">IGNITE-20614&lt;/a>&lt;/strong>: Uploaded to Trovi &lt;a href="https://www.chameleoncloud.org/experiment/share/9f045059-011e-4089-90d4-0f5845ef3c73" target="_blank" rel="noopener">Trovi Link&lt;/a>&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://issues.apache.org/jira/browse/IGNITE-17407" target="_blank" rel="noopener">IGNITE-17407&lt;/a>&lt;/strong>: Uploaded to Trovi &lt;a href="https://www.chameleoncloud.org/experiment/share/9cfd42b7-c7c9-4b6b-a538-b6c496eb1bed" target="_blank" rel="noopener">Trovi Link&lt;/a>&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://issues.apache.org/jira/browse/IGNITE-20692" target="_blank" rel="noopener">IGNITE-20692&lt;/a>&lt;/strong>&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://issues.apache.org/jira/browse/IGNITE-16600" target="_blank" rel="noopener">IGNITE-16600&lt;/a>&lt;/strong>&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://issues.apache.org/jira/browse/IGNITE-16072" target="_blank" rel="noopener">IGNITE-16072&lt;/a>&lt;/strong>&lt;/li>
&lt;/ol>
&lt;h2 id="what-is-chameleon-and-trovi">What is Chameleon and Trovi?&lt;/h2>
&lt;p>&lt;strong>&lt;a href="https://chameleoncloud.org/" target="_blank" rel="noopener">Chameleon&lt;/a>&lt;/strong> is a configurable experimental environment for large-scale cloud research. It provides a platform for running and testing distributed systems at scale, allowing researchers to reproduce and study scalability issues in a controlled setting.&lt;/p>
&lt;p>&lt;strong>&lt;a href="https://chameleoncloud.org/experiment/share/" target="_blank" rel="noopener">Trovi&lt;/a>&lt;/strong> is a platform that facilitates the sharing of reproducible artifacts. By uploading our bug reproduction artifacts to Trovi, we enable other researchers to easily reproduce scalability bugs, fostering collaboration and advancing the field of distributed systems research.&lt;/p>
&lt;h2 id="short-description-of-the-bugs">Short Description of the Bugs&lt;/h2>
&lt;ol>
&lt;li>&lt;a href="https://issues.apache.org/jira/browse/IGNITE-20614" target="_blank" rel="noopener">IGNITE-20614&lt;/a>
This bug refers to an issue where the Ignite service grid experiences degradation or hangs under specific conditions related to service deployment and node restarts.&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Root Causes&lt;/strong>: The root cause is a race condition during the deployment and undeployment of services in the service grid, particularly when nodes are restarted or when there is a significant amount of concurrent service deployment and undeployment activity.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>: The impact of this bug includes potential service grid hangs, degraded performance, and possible inability to deploy or undeploy services as expected, which can disrupt the overall operation of the Ignite cluster.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>: The fix involves adding proper synchronization mechanisms to handle concurrent service deployment and undeployment operations more gracefully, ensuring that race conditions are avoided.&lt;/p>
&lt;ol start="2">
&lt;li>&lt;a href="https://issues.apache.org/jira/browse/IGNITE-17407" target="_blank" rel="noopener">IGNITE-17407&lt;/a>
This issue pertains to the incorrect behavior of the Ignite thin client protocol, particularly when dealing with binary objects and schema changes.&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Root Causes&lt;/strong>: The root cause lies in the way the thin client handles binary object schema changes. The thin client was not correctly updating the schema cache, leading to inconsistencies and incorrect behavior when deserializing binary objects.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>: Users of the thin client may experience issues with binary object deserialization, leading to potential data corruption, incorrect query results, and overall application instability.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>: The fix involves updating the thin client protocol to properly handle schema changes by ensuring that the schema cache is correctly updated and synchronized with the server.&lt;/p>
&lt;ol start="3">
&lt;li>&lt;a href="https://issues.apache.org/jira/browse/IGNITE-20692" target="_blank" rel="noopener">IGNITE-20692&lt;/a>
This bug is related to the performance degradation observed in the Ignite SQL engine when executing certain complex queries.&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Root Causes&lt;/strong>: The root cause is identified as inefficient query planning and execution strategies for specific types of complex SQL queries, leading to excessive resource consumption and slow query performance.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>: Users running complex SQL queries may experience significant performance degradation, leading to slower response times, increased CPU and memory usage, and potentially impacting the overall performance of the Ignite cluster.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>: The fix involves optimizing the SQL query planner and executor to handle complex queries more efficiently, including better indexing strategies, improved query plan caching, and more effective resource management during query execution.&lt;/p>
&lt;ol start="4">
&lt;li>&lt;a href="https://issues.apache.org/jira/browse/IGNITE-16600" target="_blank" rel="noopener">IGNITE-16600&lt;/a>
This bug involves an issue with speed-based throttling in the checkpoint process, leading to possible starvation of the checkpoint thread under heavy load.&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Root Causes&lt;/strong>: The root cause is the absence of proper mechanisms to wake up throttled threads when they no longer need to be throttled, resulting in unnecessary waiting and potential starvation of the checkpoint thread.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>: Under heavy load, the checkpoint process can be significantly delayed, leading to slower checkpoint completion times, increased risk of data loss, and overall degraded performance of the Ignite cluster.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>: The fix includes implementing methods to wake up throttled threads when they no longer need to be throttled (tryWakeupThrottledThreads and shouldThrottle), ensuring that the checkpoint process can proceed without unnecessary delays.&lt;/p>
&lt;ol start="5">
&lt;li>&lt;a href="https://issues.apache.org/jira/browse/IGNITE-16072" target="_blank" rel="noopener">IGNITE-16072&lt;/a>
This issue pertains to the incorrect handling of SQL queries involving NULL values in the Ignite SQL engine, leading to unexpected query results.&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Root Causes&lt;/strong>: The root cause is an incorrect implementation of SQL semantics for handling NULL values in certain query conditions, particularly in the presence of complex joins and subqueries.&lt;/p>
&lt;p>&lt;strong>Impact&lt;/strong>: Users may experience incorrect query results when NULL values are involved, leading to potential data inconsistencies and incorrect application behavior.&lt;/p>
&lt;p>&lt;strong>Fix&lt;/strong>: The fix involves correcting the SQL engine&amp;rsquo;s implementation to properly handle NULL values according to the SQL standard, ensuring that queries involving NULL values produce the expected results.&lt;/p>
&lt;h2 id="whats-next">What&amp;rsquo;s Next?&lt;/h2>
&lt;h4 id="continued-bug-reproduction">Continued Bug Reproduction:&lt;/h4>
&lt;ul>
&lt;li>Focus on reproducing more scalability bugs&lt;/li>
&lt;/ul>
&lt;h4 id="documentation-of-challenges">Documentation of Challenges:&lt;/h4>
&lt;ul>
&lt;li>Breakdown specific challenges encountered during attempts to reproduce scalability bugs.&lt;/li>
&lt;li>Categorize challenges, including technical complexities, environmental dependencies, and lack of documentation in bug reports.&lt;/li>
&lt;/ul>
&lt;h4 id="finalizing-project-deliverables">Finalizing Project Deliverables:&lt;/h4>
&lt;ul>
&lt;li>Package artifacts using Jupyter notebook scripts for convenient replay of investigation steps.&lt;/li>
&lt;li>Upload the package to Trovi for replayable artifacts, enabling other researchers to easily reproduce scalability bugs for our benchmark applications.&lt;/li>
&lt;/ul>
&lt;h3 id="conclusion">Conclusion&lt;/h3>
&lt;p>The ScaleRep project has made significant strides in reproducing and benchmarking scalability bugs in large-scale distributed systems. By successfully reproducing and documenting scalability bugs, we are contributing valuable insights to the research community, aiding in the development of more robust distributed systems. The protocols and methodologies devised in this project will serve as valuable tools for researchers exploring similar issues.&lt;/p>
&lt;p>Stay tuned for more updates as we continue to tackle scalability bugs and improve the reliability and performance of large-scale distributed systems.&lt;/p></description></item><item><title>Data leakage in applied ML: reproducing examples of irreproducibility</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/nyu/data-leakage/20240614-kyrillosishak/</link><pubDate>Fri, 14 Jun 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/nyu/data-leakage/20240614-kyrillosishak/</guid><description>&lt;p>Hello,&lt;/p>
&lt;p>I am Kyrillos Ishak I am happy to be part of SOR 2024, I am working on &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/nyu/data-leakage/">Data leakage in applied ML: reproducing examples of irreproducibility&lt;/a> project. My &lt;a href="https://drive.google.com/file/d/1u9FGQqxlPMhceKwS_NJxIhkIrQVGIp-0/view" target="_blank" rel="noopener">proposal&lt;/a> was accepted.&lt;/p>
&lt;p>I am excited to work with &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/fraida-fund/">Fraida Fund&lt;/a> and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/mohamed-saeed/">Mohamed Saeed&lt;/a> as my mentors. The objective of the project is to develop educational resources that can be adjusted by professors/instructors to explain specific data leakage problems. This involves ensuring the reproducibility of certain research papers that contain data preprocessing issues, then fixing these issues to demonstrate how they can affect the results.&lt;/p>
&lt;p>Data leakage is a problem caused when information from outside the training dataset is used to create the model. This issue can lead to overly optimistic performance estimates and, ultimately, models that do not perform well on new, unseen data.&lt;/p>
&lt;p>Despite the importance of addressing data leakage, many people from fields not closely related to computer science, are often unfamiliar with it, even if they are aware of best practices for data preprocessing. Developing educational materials on this topic will greatly benefit them.&lt;/p>
&lt;p>I am excited to dive into the topic of data leakage in machine learning. Throughout the summer, I will be sharing regular updates and insightful blog posts on this subject. Stay tuned for more information!&lt;/p></description></item><item><title>ScaleRep: Reproducing and benchmarking scalability bugs hiding in cloud systems</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/osu/scalerep/20240608-imzahra/</link><pubDate>Sat, 08 Jun 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/osu/scalerep/20240608-imzahra/</guid><description>&lt;p>Hi! I&amp;rsquo;m Zahra, an undergraduate at Universitas Dian Nuswantoro, Indonesia.
As part of the &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/osu/scalerep/">ScaleRep&lt;/a> my &lt;a href="https://drive.google.com/file/d/1Jfk7lRNIWfhFLkVHHN_ZkNQiTg4f8-xp/view?usp=sharing" target="_blank" rel="noopener">proposal&lt;/a> under the mentorship of &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/bogdan-bo-stoica/">Bogdan &amp;quot;Bo&amp;quot; Stoica&lt;/a> and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/yang-wang/">Yang Wang&lt;/a> aims to systematically understand, characterize, and document the challenges associated with scalability bugs in large-scale distributed systems.&lt;/p>
&lt;p>ScaleRep proposes a two-fold strategy to address scalability bugs in large-scale distributed systems. First, Bug Analysis and Documentation involves studying recent scalability issues across popular open-source systems such as Cassandra, Hadoop, HDFS, Ignite, and Spark to understand bug causes, symptoms, and solutions. This includes pinpointing common challenges hindering bug reproduction and devising protocols to trigger and measure scalability bug impacts. Second, Implementation and Artifact Packaging focuses on identifying, reproducing, and documenting scalability bugs, then packaging artifacts with &lt;a href="https://chameleoncloud.org/experiment/share/" target="_blank" rel="noopener">Chameleon Trovi&lt;/a>. This method emphasizes precise bug analysis, establishing reproducible environments, and detailed documentation to ensure artifact reliability and usability.&lt;/p></description></item></channel></rss>