The 8-file subproject reproduces one NeurIPS 2022 result
Buried inside Google's 23,143-file research monorepo is a much smaller artifact: 8 files devoted to one paper. The problem is learning a linear yes-or-no classifier without seeing each training label. Instead, examples arrive in bags and the learner sees only the proportion of positive labels in each bag. The NeurIPS 2022 paper gives approximation results for this setting, including a semidefinite-programming approach for bags of size 3 and a weaker guarantee for sizes of 4 or more.
The subproject turns part of that theory into 4 experiment scripts and 2 result-processing scripts. Each experiment creates synthetic vectors, builds a CVXPY optimization problem, rounds its matrix solution into a classifier, and compares that classifier with a random threshold. The defaults try dimensions 10 and 40, bag counts 50 and 100, 25 runs, and 5 Gaussian rounding attempts. Two final scripts summarize CSV output and write LaTeX tables. That is useful reproduction material, provided you want the experiment the author encoded.
The 4 experiment scripts have fixed synthetic inputs
There is no library surface to call from an application. The scripts execute their work at module level, with dimensions, bag counts, random seeds, run counts, and solver selection written directly into the source. Changing the study means editing those constants or refactoring the files. No command-line arguments accept a dataset, no documented schema describes bags from disk, and no trained model interface is exposed. The output is a pair of CSV files per bag size, followed by summarized LaTeX tables.
The environment is equally specific. requirements.txt targets Linux, Python 3.9.6, CVXPY 1.1.13, NumPy 1.21.1, pandas 1.3.1, SciPy 1.7.0, and SCS 2.1.4. No account, API key, hosted service, or database is involved. That makes the method inspectable offline. It also leaves environment modernization to the reader, because the README supplies a Conda instruction and a three-command sequence without explaining solver behavior, expected numerical output, or how long the experiments should take.
What happened when we ran it
Our sandbox installed 35 packages in 7 seconds and added 37 MB on disk. The recorded build completed successfully in 0 seconds. We ran commit e1e8d86 in a fresh Debian container with 3 CPUs and 8 GB of RAM, using Python 3.12. The entire checkout was 1,283 MB, with 23,143 files and roughly 2,481,843 lines of source, which supports the root README's advice to download only the subdirectory you need.
There was no test script or target, so our harness skipped tests rather than reporting a pass. The repository scan also found 0 CI workflow files, no Dockerfile, and no tests directory. Pip-audit reported 0 known vulnerabilities among the installed packages. Those results say the dependency set installed cleanly in our container. They do not verify the numerical experiments, compare generated tables with the paper, or show that every script reaches its expected CSV output.
A 7-second install can create false confidence here. The build took 0 seconds because there is no compiled application to assemble, while the substantive work lives in scripts that solve repeated optimization problems. Our measurement did not produce a benchmark or a validated research result, so we will not invent either. Before relying on the method, record solver status, preserve raw CSV files, compare the summaries with the paper, and add checks around bag construction and evaluation.
The 19-line README contains a broken command
For each bag size, the README tells you to run small_margin_q-sized_LLP_LTF.py. Both checked-in small-margin files use a hyphen in LLP-LTF instead, so the documented filename does not exist. The mismatch is easy to repair once spotted, yet it matters in a 19-line setup guide with no troubleshooting section. A reader following the only command example receives no warning that the name differs. The large-margin and processing filenames do match their documented patterns.
The four-item small-margin script has a more serious problem. Inside its scoring loop, it loads bag["x3"] and immediately overwrites that variable with bag["x4"]; it never assigns the current bag's fourth point to x4. Earlier, its four-item test list is sampled with random.randrange(3), which can select only indices 0 through 2. These are source-level correctness defects, not failures observed by the lab harness. They still make that path unsafe to quote without a fix, a rerun, and independent result checks.
The monorepo is active, while this artifact has stood still since 2022
Google's repository was pushed on September 21, 2026, and GitHub listed 38,812 stars plus 1,995 open issues and pull requests when fetched. That activity belongs to a monorepo spanning thousands of projects. The label-proportions subdirectory entered the repository on October 11, 2022. Later path commits in 2023, 2024, 2025, and 2026 changed copyright years rather than experiment logic, and GitHub issue search found no report naming this subdirectory or its small-margin filename.
Apache-2.0 licensing leaves room to reuse the method, but the maintenance record says to take ownership of any fork. For a paper reader, the 6 scripts are short enough to trace and the fixed seeds make their intended experiment easier to follow. For an applied team, Covariate Shifted LLP has dataset preprocessing and training machinery, while LLP-VAT addresses neural image classification. Choose this Google Research artifact when the 2022 linear-threshold result itself is the reason you are here, then verify every output you plan to cite.

