Energy-Based Modelling for Discrete and Mixed Data via Heat Equations on Structured Spaces

Energy-based models (EBMs) offer a flexible framework for probabilistic modelling across various data domains. However, training EBMs on data in discrete or mixed state spaces poses significant challenges due to the lack of robust and fast sampling methods. In this work, we propose to train discrete EBMs with Energy Discrepancy, a loss function which only requires the evaluation of the energy function at data points and their perturbed counterparts, thus eliminating the need for Markov chain Monte Carlo. We introduce perturbations of the data distribution by simulating a diffusion process on the discrete state space endowed with a graph structure. This allows us to inform the choice of perturbation from the structure of the modelled discrete variable, while the continuous time parameter enables fine-grained control of the perturbation. Empirically, we demonstrate the efficacy of the proposed approaches in a wide range of applications, including the estimation of discrete densities with non-binary vocabulary and binary image modelling. Finally, we train EBMs on tabular data sets with applications in synthetic data generation and calibrated classification.

Paper

References (73)

Scroll for more · 38 remaining

Similar papers

Peer review

Reviewer t2RA6/10 · confidence 4/52024-07-08

Summary

This article, "Energy-based modelling for discrete and mixed data via heat equations on structured spaces", proposes to perform the training on EBM, using the Energy Discrepancy (ED) loss, in the case where having multi-modal dataset mixing eventually continuous inputs but also discrete (categorical) ones. The work describes into details how to parametrize in different setting the inclusion of discrete variables, and they apply it to various datasets. The main contributions are the design of the continuous time Markov chain transition probability that lies at the heart of the ED approach and the application to tabular dataset for which generative approach is usually hard.

Strengths

The authors show how their method can be efficiently used on Tabular dataset. In particular, they apply to several dataset and show that in average the EBM trained with Energy-Discrepancy using a discrete implementation of the Markov chain transition probability outperform the concurrent approach, ref[Xu et al 2019]. The authors also show experimental results on image modelling.

Weaknesses

The authors extend the formalism of Energy Discrepancy to the case of including discrete state in addition to continuous features. Whether or not this justifies an entire publication can be debated, Although it should be emphasized that the datasets under consideration are quite original. It might be because I'm not an expert on ED, but while traditional EBM relies on MCMC to compute the gradient, ED does not. However, it is not clear to me if sampling the EBM trained in such way need MCMC to be generative ? If so, the article should provide more details on the implementation. They should also check that the trained model is at equilibrium (the generated samples corresponds to the equilibrium properties of the model). More importantly, the comparison for the tabular dataset is only done at the level of the AUC curves. Can at least the authors compare the frequency and correlations amongst the generated samples and the true ones ?

Questions

The authors said that their work is one of the first dealing with tabular data, I at least find this one dealing with EBM and tabular dataset: https://arxiv.org/abs/1912.09382, the authors might check if it is relevant w.r.t. their work. Also, this article https://arxiv.org/abs/2405.15376 deals with generative and categorical variables for EBM.

Rating

6

Confidence

4

Soundness

3

Presentation

3

Contribution

3

Limitations

The limitations are correctly discussed in the article.

Reviewer FxWc6/10 · confidence 4/52024-07-09

Summary

This paper extends the Energy Discrepancies framework introduced by Schroder et al. to the setting of discrete data. In order to do this, the authors first describe ways to perturb discrete data by modeling the perturbation process as a CTMC. They describe suitable perturbation choices for different types of discrete data (e.g. binary, categorical, ordinal, cyclical) and describe different considerations for the time parameter in the CTMC. They then propose an approach that performs a Monte-Carlo estimate of the contrastive potential needed for the Energy Discrepencies loss and compare their method to existing methods for training discrete EBMs.

Strengths

Originality: Energy discrepancy is a relatively new approach. While the original paper proposed some extensions to discrete data, this paper goes into extending energy discrepancy to discrete data in much more depth and includes new mathematical and experimental analyses. Clarity: Overall, the paper is well written. Quality: I believe the paper is technically sound. Significance: The authors show on toy examples that their method outcompetes contrastive divergence. The authors appear to generally outperform two methods proposed in 2019 along with contrastive divergence. While I have some minor concerns about these baselines, outperforming these baselines is at least demonstrating some empirical benefit of this approach.

Weaknesses

Clarity: The clarity can be improved a bit (see my questions below). Significance: Despite demonstrating that the method can work empirically, I have some concerns with the overall significance. It seems that while the method works well on toy examples, the results are less impressive on real-world image modeling tasks. I am unfamiliar with the field of tabular data modeling and therefore, cannot properly assess the significance of the results. Beyond contrastive divergence the main baselines is a method from 2019 with 2,000 citations. Are there better baselines to compare against among these 2,000 citations?

Questions

In section 3 on lines 93-95 the authors describe two key criteria for defining useful perturbation processes. The first criterion is described as “the negative samples obtained through $q$ are informative for training the EBM when only finite amounts of data are available.” I struggled to understand precisely what this statement meant. What are examples of processes that are more and less informative? I am confused about the connections to the heat equation, which is likely due to my own lack of understanding but may also indicate that the clarity could be better. My understanding is that we need to define a process that perturbs our data, $p(y | x)$. Such processes have been described in the ML literature, which the authors cite and can be solved through the matrix exponential. While normally this matrix exponentially may be hard to solve, since the noise process is applied independently across the dimensions, it should scale with O(S^3). It was unclear why small timesteps were introduced and why Euler integration was needed. Was the point that for some problems S^3 is too big and so for these problems we will restrict ourselves to small timesteps in order to avoid computing the matrix exponential? Overall, I was left confused about why we need to talk about heat equations at all and why we don’t just describe this as a CTMC with initial conditions? Is there something that the heat equation view is really buying us? Lines 176-181 describe the subsection “Localization to random grid”. Related to my comment above about the lack of clarity regarding when the negative samples are “informative for training” the authors say that adding uniform noise to categorical variables “introduce too much noise to inform the EBM about the correlations in the data set.” Can the authors make this statement more precise in the text? I think I can intuitively see that if make random uniform perturbations at each dimension then you are sampling from a uniform distribution and this will be uninformative in some sense. However, I think this notion needs to be explicitly connected to the optimization objective / loss functional in order to make this clear. Furthermore, it is not clear why this isn’t solved by taking smaller timesteps so that only a few dimensions will on average be changed. Can the authors please clarify this? Overall, I am confused about the choice of time parameter and I think this needs to be better written in the manuscript. Section 3 establishes that as $t$ goes to infinity, “the energy discrepancy loss converges to maximum likelihood estimation.” The authors describe why maximum likelihood may have statistical advantages for finite data sets but then immediately move on in Section 3.1 to small timescales. This seemed like an odd transition and immediately made me ask “why not just use large times since this is maximum likelihood?” I suspect the answer lays in Section 4.2 where it becomes apparent that the contrastive potential must be estimated with Monte-Carlo sampling. It seems that larger timescales induce higher entropy distributions that would require more MC samples to approximate the expectation on line 192? For the related works, I felt the “Contrastive loss functions” paragraph needs more discussion. Energy discrepancies seems very closely related, if not exactly, to contrastive loss functions for training energy-based models. Can the authors please provide a more thorough comparison of these different methods? Similarly, I did not see a discussion on pseudolikehood loss functions. For small timesteps, the loss function seems very closely related to pseudolikelihood estimation and it seems that when MC sampling must be used in this method to approximate an otherwise intractable integral, that the MC sampling can be seen as an MC approximation to pseudolikelihood? The authors make a point of saying that ED is much more efficient that CD and point to timing experiments in the appendix. However, it appears that authors are only reporting timing for M=4 samples when in the paper M=32 is used. If I extrapolate and multiply the ED time by 8 (since 32 = 8*4) then ED is more expensive then all of these methods. Can the authors please clarify this? I suggest changing Table 6 to M=32 if that is what is used in the paper. The biggest experimental win seems to come from the Tabular Dataset. I am not very familiar with this area so I have a limited ability to evaluate the significance here. While the results seem reasonable I have two questions: 1) since the baseline methods were published in 2019 are there more sensible baselines to compare with? I again emphasize that I am not requiring that the authors’ method is SOTA – it is okay if other methods beat their method. 2) Since these methods have mixed continuous and discrete data can the authors do a separate benchmark that only models the discrete columns? I think it would be helpful to tease apart whether the best strength of this method is in modeling mixed continuous-discrete data or also purely discrete data. I was confused by the statement that method is sensitive to the assumption that the data distribution is positive on the whole space. Why is this more of an issue for ED than other EBM training techniques? Intuitively, it seems that you can always avoid the assumption that the data distribution is positive by just assuming that the energy in these regions is so high that the probability that you sample these regions is vanishingly low. Either way, can the authors point me to where this assumption of a low-dimensional manifold is investigated in the paper / SI?

Rating

6

Confidence

4

Soundness

4

Presentation

3

Contribution

3

Limitations

I would like more honest discussion throughout the paper of the relative strength and drawbacks of their method. For example, while it is true that this method is “MCMC-free” it still requires Monte-Carlo estimation and the relative tradeoffs here are not adequately discussed. I would also like to see more comparisons of CD with large numbers of MCMC steps v.s. ED with large numbers of samples.

Authorsrebuttal2024-08-06

Complementary Answers and Information 1/2

Thank you for your thorough review and apologies that we could not fit all responses in the rebuttal. We now want to respond to the questions left out in the rebuttal. We follow the chronological order of your review and the rebuttal. > It was unclear why small timesteps were introduced and why Euler integration was needed. > We don't use the Euler discretisation in practice and our method is simulation-free. For the uniform perturbation, the exact solution is given by $$ q_t(y \vert a) = \left(\frac{1}{S} + \frac{S-1}{S}e^{-St}\right) \delta(y, a) + \left(\frac{1}{S} - \frac{1}{S}e^{-St}\right) \sum_{k \neq a}\delta(y, k) $$ This is equivalent to equation (7) via the time rescaling $t \leftarrow (1/S(1-e^{-St}))\in [0, 1/S)$ We are going to replace equation (7) with the closed form solution. > [...] since the noise process is applied independently across the dimensions, it should scale with O(S^3). [...] Was the point that for some problems S^3 is too big [...]? > Thank you for this comment! We missed that one could diagonalise any graph Laplacian in $O(S^3)$ time before running the training which extends the generality of our suggested method significantly. We consider this for the revision of this work. > [...] the authors say that adding uniform noise [...] “introduce too much noise to inform the EBM about the correlations in the data set.” Can the authors make this statement more precise in the text? [...] it is not clear why this isn’t solved by taking smaller timesteps [...] > The intuition is the same as our earlier response on informative perturbations. We will revise the statement in the paper. The grid perturbation always changes exactly one entry of the data vector which is the main different to the uniform perturbation with small $t$. We observed empirically that sometimes this is beneficial, e.g. for the binary image data the grid perturbation outperforms the heat perturbation (a Bernoulli distribution) with a small time step. For tabular data, one can also condition the negative samples on the column that was perturbed, so that the parameter update is only informed by the change of a single column. We have not quantified the benefit of this analytically. > For the related works, I felt the “Contrastive loss functions” paragraph needs more discussion. [...] > We will revise our discussion of related contrastive loss functions. Without giving proofs, we want to give a brief summary of the connections we see: The following papers are based on the same functional as energy discrepancy: - ED is equivalent to KL contractions [10]. However, [10] does not turn the KL contraction into a training loss, and does not explore the influence of the perturbing distribution. - ED for Gaussian perturbation is equivalent to the diffusion recovery likelihood functional [11]. However, [11] uses a large number of noise scales, an MCMC scheme, no stabilisation, and only one negative sample to produce a training algorithm, so methodologically it sits between ED and CD training approaches. - ED is equivalent to the concurrent work Noise Contrastive Divergence [12]. However, [12] approximates the loss with a variant of score matching, thus turning it into a different loss in practice. - ED is strongly related to the concurrent work Contrastive Latent Energy Learning [13]. Again, the loss function implemented in practice by CLEL is very different as it only considers a single negative sample obtained from a latent code. - If the perturbation satisfies the detailed balance relation, ED becomes equivalent to the contrastive divergence loss [9]. - As remarked by your review, pseudo-likelihood methods can be seen as a special case of ED. The following works discuss a similar training objective as ED: - The stabilised ED loss is equivalent to the prior contrastive estimation (PCE) bound [14] because both losses are based on approximations of KL divergences. However, PCE is not used to learn a probabilistic model but to find an optimal Bayesian experimental design, a very different learning task. - Similarly, the stabilised ED is structurally similar to InfoNCE [15], a loss used in representation learning. - The stabilised ED is related to the log loss [16]. However, the log-loss was introduced without connection to learning the EBM as a probabilistic model, introducing meaningful ways to obtain contrastive samples, or providing theoretical guarantees, and we could not find experimental results for this loss. It should be noted that none of these references apply to discrete or mixed data like our work.

Authorsrebuttal2024-08-06

Complementary Answers and Information 2/2

> [...]For small timesteps, the loss function seems very closely related to pseudolikelihood estimation [...] > Thank you for raising this point. It seems that pseudo likelihood can be derived from energy-discrepancy as follows: Define $q(\mathbf y \vert \mathbf x) = \frac{1}{d} \sum \delta( y_i, \ast)$ which masks exactly one entry of the data vector. Then, energy discrepancy is given for a sampled perturbation $y = x_{\neg I}$ as $$ U_\theta(\mathbf x) + \log \sum_{x} q(\mathbf x_{\neg i} \vert \mathbf x) \exp(-U_\theta(\mathbf x)) = -\log \frac{\exp(-U_\theta(\mathbf x))}{\sum_{s \in \{1, 2, \dots, S\}}\exp(-U_\theta(\mathbf x_1, \dots, \mathbf x_i = s, \dots, \mathbf x_d))}= -\log p_\theta(\mathbf x_i \vert \mathbf x_{\neg i}) $$ Hence, this specific ED loss function is indeed a MC approximation of pseudo-likelihood. Energy discrepancy is appealing because it is more general and more tunable through the choice of $t$ and $M$. We will discuss this connection in our revised version. > Since these methods have mixed continuous and discrete data can the authors do a separate benchmark that only models the discrete columns? > The performance on continuous data is compared in prior work [9]. In this work, we benchmark ED on various discrete data sets. For a separate benchmark on discrete/continuous variables in tabular data we are missing baselines that perform the same experiment, and an implementation of comparative experiments was not possible in the given time frame. > I was confused by the statement that method is sensitive to the assumption that the data distribution is positive on the whole space. Why is this more of an issue for ED than other EBM training techniques? [...] > Other training techniques for EBMs are adaptive, i.e. the negative samples are created by attempting to self-sample from the model. If the sampler is well-tuned, this produces smoothed estimates of the data distribution (see e.g. Figures 2, 7 to see the smoothing effect compared to ED). Thus, these methods produce biased estimates which can be advantageous when training on image data, where the data support is small compared to the ambient space. ED produces more accurate estimates, but tends to oversaturate quickly when the diffusion produces uninformative negative samples. > I would also like to see more comparisons of CD with large numbers of MCMC steps v.s. ED with large numbers of samples. > - Table 2 reports results for CD with 40 MCMC steps. CD with larger numbers of MCMC steps is rarely used due to the cost of training. - Similarly, ED with large number of samples would loose the key advantage of ED of being cheaper to compute than CD or MLE with MC approximated normalisation constant. A major difficulty with increasing the number of MCMC steps in CD is that the sampler likely needs to be retuned. For all these reasons, we chose to compare CD with a typical number of MCMC steps (e.g. 40 steps) and ED with M = 32, i.e. maximising the parallelisation capabilities of our GPU. Finally, here are the references mentioned in the rebuttal and in the following comments. [1] Du et al. Compositional Visual Generation with Energy Based Models, NeurIPS 2020 [2] Glaser et al. Maximum Likelihood Learning of Unnormalized Models for Simulation-Based Inference [3] Grathwohl et al. Your Classifier is Secretly an Energy Based Model and You Should Treat it Like One, ICLR 2020 [4] Grathwohl et al. Oops I took a Gradient: Oops I Took A Gradient: Scalable Sampling for Discrete Distributions, ICML 2021 [5] Xu et al. Modeling Tabular Data using Conditional GAN, NeurIPS 2019 [6] Kotelnikov et al. TabDDPM: Modelling Tabular Data with Diffusion Models, ICML 2023 [7] Campbell et al. A Continuous Time Framework for Discrete Denoising Models, NeurIPS 2022 [8] Lou et al. Discrete Diffusion Modeling by Estimating the Ratios of the Data Distribution, ICML 2024 [9] Schroeder et al. Energy Discrepancies: A Score independent Loss for Energy-Based Models, NeurIPS 2023 [10] Lyu S. Unifying non-maximum likelihood learning objectives with minimum kl con- traction., NeurIPS 2011 [11] Gao et al. Learning energy-based models by diffusion recovery likelihood. ICLR 2020 [12] Luo et al. Training Energy-Based Models with Diffusion Contrastive Divergences [13] Lee et al. GUIDING ENERGY-BASED MODELSVIA CONTRASTIVE LATENT VARIABLES, ICLR 2023 [14] Foster et al. A Unified Stochastic Gradient Approach to Designing Bayesian-Optimal Experiments, AISTATS 2020 [15] van den Oord et al. Representation Learning with Contrastive Predictive Coding [16] Le Cun et al. A Tutorial on Energy-Based Learning

Reviewer FxWc2024-08-08

Reply to author rebuttal / comments

Thank you to the authors for their thorough reply. I have read through it and the replies answer my questions and satisfies my main critiques. At this time I do not have any further questions.

Reviewer qwnm6/10 · confidence 3/52024-07-11

Summary

The paper proposes a suite of methods for training energy-based models for discrete and mixed data using the Energy Discrepancy loss, a recently proposed method for training EBMs. Compared to contrastive divergence, it does not require MCMC sampling from the model distribution during training, improving training efficiency. This is done by simulating a diffusion process on the discrete states and effectively using those noisier samples as the negative samples. The paper introduces a connection between the new method and maximum likelihood estimation, showing that energy discrepancy as applied to discrete state spaces can converge to the negative log-likelihood. In experiments, the new method behaves favourably compared to contrastive divergence-based methods on synthetic data sets, on average better than baselines on real-world tabular data sets, and comparably to many competing methods generation on discrete image modelling. An application of the trained EBM on classification and improving uncertainty quantification compared to a direct classifier is also shown.

Strengths

- The paper proposes a relevant extension to recently published work. Especially Theorem 1 does not seem obvious, and the paper may open up the use of the Energy Discrepancy loss to a much wider variety of use-cases. - The method is also quite simple, and seems simple to implement. - The paper connections to recent work on discrete diffusion models, and proposes a variety of methods to estimate the energy discrepancy loss. - The results are good compared to standard contrastive divergence based methods - The paper is well written, and I found it easy enough to understand even without prior knowledge on the Energy Discrepancy method.

Weaknesses

- As noted in the limitations, the application to data such as images seems to be challenging as the noisy negative samples may not give very useful training signal in this case. - Although the energy discrepancy method has already been proposed and published in previous work, I found the justification for the method slightly confusing while reading this paper. What is Theorem 1 exactly saying? (see questions) The loss also is, in practice, approximated with something slightly different than the proposed loss, which seems conceptually a bit confusing. However, this is not a major concern given that the base method has been proposed and published in previous work.

Questions

- How should I interpret the left side of the equation in Theorem 1, and the fact that the right side approaches zero with large enough t? How does this link ED to maximum likelihood, exactly? - What is Avg. Rank in Table 1? Overall, the paper seems like a solid contribution in advancing the training of this branch of energy-based generative models. However, I was not aware of ED before reading this paper, and am not very up-to-date on the most recent work on energy-based models. As such, I give tentatively a weak accept.

Rating

6

Confidence

3

Soundness

3

Presentation

4

Contribution

3

Limitations

Addressed adequately.

Reviewer 9ZAB6/10 · confidence 3/52024-07-12

Summary

: The paper introduces a novel method for training energy-based models (EBMs) on discrete and mixed data using heat equations on structured spaces. This method employs the Energy Discrepancy (ED) loss function, which eliminates the need for Markov chain Monte Carlo (MCMC) by using graph-structured perturbations. The proposed approach is evaluated on several applications, including discrete density estimation, synthetic data generation, and calibrated classification, demonstrating significant improvements in training efficiency and model performance.

Strengths

The paper successfully extends the Energy Discrepancy method to discrete and mixed data with solid theoretical analysis, addressing the challenge of robust and fast sampling in these space. The designed experiments demonstrate the method's ability to accurately capture complex data structures and generate high-quality synthetic data, highlighting its practical applicability.

Weaknesses

1. Despite the method's solid contributions and experimental design, the motivations behind each step and their presentations are not very clear, making it hard to follow. For instance, in Section 3.1, the paper discusses different structured and unstructured categorical values, introducing the four types {cyc, ord, unif, abs}. However, it is not clear why these specific structures are chosen. Are they meant to cover all categorical values comprehensively, or are they the most common in tabular data? Providing a clearer rationale would help readers understand the choices made. 2. The scalability of the proposed method in such scenarios is a significant concern. An analysis or discussion on how the method handles large categorical values would be beneficial. This could include potential modifications or considerations to ensure that the method remains efficient and practical when applied to datasets with large categorical variables. What’s more, I strongly recommend moving these algorithms from the appendix into the main body of the paper. This would make the paper easier to follow and more accessible to readers who need to understand the detailed workings of the method.

Questions

See weakness

Rating

6

Confidence

3

Soundness

3

Presentation

2

Contribution

3

Limitations

See weakness

Reviewer 9ZAB2024-08-11

I appreciate the authors' efforts in rebuttal, and I decided to keep my score.

Reviewer t2RA2024-08-12

I thank the author for the clarifications. The only thing that remains unclear to me is how the author ensure the convergence of the MCMC chains during sampling. In many systems, in particular EBM, can have metastable states or long mixing time. I understand that the authors use the algorithm 2 for the sampling but I'm wondering how the authors ensure that the samples correspond to the learned distribution.

Authorsrebuttal2024-08-12

Thank you for this question. In this work, we did not employ quantitative MCMC diagnostics to assess the convergence of Markov chains as we were mostly concerned with learning the data distribution. We will work on additional MCMC diagnostics for the revision of our work. > I'm wondering how the authors ensure that the samples correspond to the learned distribution. Some energy-based models are trained with short-run MCMC, i.e. the samples during training are not at equilibrium. As a consequence, one also needs to employ non-convergent short-run MCMC at inference time to produce good samples [1], and in these settings one may be concerned about a mismatch between model and samples. Our setting is different: Since we do not require MCMC at training time, the estimated energies are generally more accurate representations of the data distribution (with theoretical guarantees). In principle, running MCMC for longer will also produce more accurate samples from the model. For improved mode coverage, each sample is initialised from an independent noise sample and the Markov chain is simulated until we observe high-quality samples. We then evaluate the quality of the produced samples indirectly in various metrics: - For tabular data, we generate synthetic data with 200 rounds of interleaved discrete/continuous updates, and assess the sample quality indirectly by showing that a random forest classifier trained on our synthetic samples and trained on the actual training data displays comparable performance. (Table 1) - For samples generated from lower-dimensional discrete densities, we compare the training data with the MCMC samples in the maximum mean discrepancy and use the MCMC samples to compute the negative log-likelihood of the data under the model. (Table 3 and 4) - The negative log likelihood for discrete image data is computed with 300,000 steps of annealed importance sampling. Annealed importance sampling helps with the convergence of the MCMC chains. This is the same setup as in earlier work [2, 3], where it was noted that AIS for discrete image data converges after 30,000 steps. According to this heuristic we assume that the sampler has converged in our case as well. Similarly, we use the same number of sampling steps for the experiments on Ising models as [2, 3]. - In all experiments, we assume that a non-convergent sampler would produce sub-optimal results due to the assumed accuracy of the learned energy. In addition, the samples (and in some cases the learned distributions) can be visually assessed (Figure 2, 3, 10, 12), demonstrating great agreement between data, learned distribution, and MCMC samples. While we can not rule out metastable samples that match the data distribution better than the model, we consider this unlikely across multiple baseline data sets, performance metrics, and dimensionalities. We will work on providing additional more rigorous MCMC diagnostics for the revision of our work. We agree that this may be important when wanting to apply our method in generative downstream tasks. Please, let us know if we left your question unanswered. [1] Nijkamp et al. On the Anatomy of MCMC-Based Maximum Likelihood Learning of Energy-Based Models, AAAI 2020 [2] Zhang et al. A Langevin-like Sampler for Discrete Distributions, ICML 2022 [3] Grathwohl et al. Oops I took a Gradient: Oops I Took A Gradient: Scalable Sampling for Discrete Distributions, ICML 2021

Reviewer qwnm2024-08-12

Answer to rebuttal.

I thank the reviewers for the comprehensive explanations to the questions! I have no further concerns, and will keep my accepting score.

Program Chairsdecision2024-09-25

Decision

Accept (poster)

© 2026 NYSGPT2525 LLC