@article{OedingenEngelhardtDenzetal.2024, author = {Marc Oedingen and Raphael C. Engelhardt and Robin Denz and Maximilian Hammer and Wolfgang Konen}, title = {ChatGPT Code Detection: Techniques for Uncovering the Source of Code}, series = {AI}, volume = {5}, number = {3}, editor = {Kenji Suzuki and Demos T. Tsahalis and Antony Bryant and Roberto Montemanni and Min Chen and Paolo Bellavista and Jeanine Treffers-Daller}, publisher = {MDPI}, issn = {2673-2688}, doi = {10.3390/ai5030053}, url = {https://nbn-resolving.org/urn:nbn:de:hbz:832-epub4-27321}, pages = {1066 -- 1094}, year = {2024}, abstract = {In recent times, large language models (LLMs) have made significant strides in generating computer code, blurring the lines between code created by humans and code produced by artificial intelligence (AI). As these technologies evolve rapidly, it is crucial to explore how they influence code generation, especially given the risk of misuse in areas such as higher education. The present paper explores this issue by using advanced classification techniques to differentiate between code written by humans and code generated by ChatGPT, a type of LLM. We employ a new approach that combines powerful embedding features (black-box) with supervised learning algorithms including Deep Neural Networks, Random Forests, and Extreme Gradient Boosting to achieve this differentiation with an impressive accuracy of 98\%. For the successful combinations, we also examine their model calibration, showing that some of the models are extremely well calibrated. Additionally, we present white-box features and an interpretable Bayes classifier to elucidate critical differences between the code sources, enhancing the explainability and transparency of our approach. Both approaches work well, but provide at most 85–88\% accuracy. Tests on a small sample of untrained humans suggest that humans do not solve the task much better than random guessing. This study is crucial in understanding and mitigating the potential risks associated with using AI in code generation, particularly in the context of higher education, software development, and competitive programming.}, language = {en} }