{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/ai-news-content-farms-are-easy-to-make-and","title":"AI \"News\" Content Farms Are Easy to Make and Hard to Detect: A Case Study in Italian","arxiv_id":"2406.12128","date":"2024-06-17","proceeding":null,"authors":["Giovanni Puccetti","Anna Rogers","Chiara Alzetta","Felice Dell'Orletta","Andrea Esuli"],"abstract":"Large Language Models (LLMs) are increasingly used as \"content farm\" models (CFMs), to generate synthetic text that could pass for real news articles. This is already happening even for languages that do not have high-quality monolingual LLMs. We show that fine-tuning Llama (v1), mostly trained on English, on as little as 40K Italian news articles, is sufficient for producing news-like texts that native speakers of Italian struggle to identify as synthetic. We investigate three LLMs and three methods of detecting synthetic texts (log-likelihood, DetectGPT, and supervised classification), finding that they all perform better than human raters, but they are all impractical in the real world (requiring either access to token likelihood information or a large dataset of CFM texts). We also explore the possibility of creating a proxy CFM: an LLM fine-tuned on a similar dataset to one used by the real \"content farm\". We find that even a small amount of fine-tuning data suffices for creating a successful detector, but we need to know which base LLM is used, which is a major challenge. Our results suggest that there are currently no practical methods for detecting synthetic news-like texts 'in the wild', while generating them is too easy. We highlight the urgency of more NLP research on this problem.","url_abs":"https://arxiv.org/abs/2406.12128v2","url_pdf":"https://arxiv.org/pdf/2406.12128v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[],"tasks":[{"task_slug":"articles","task_name":"Articles"}],"methods":[{"method_slug":"base","method_name":"BASE"},{"method_slug":"llama","method_name":"LLaMA"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2406.12128","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2406.12128"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/gpucce/synthetic_llm_data","reach":{"status":"ok"}}],"summary":{"ran":12,"unverified":5},"by_repo_kind":{"found_in_text":{"samples":17,"ran":12,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":17,"samples":[{"code_sha256_prefix":"943eedc90e8e6bc7","entry":"add_newline","repo":"gpucce/synthetic_llm_data","repo_kind":"found_in_text","path":"src/data_generation/utils.py","file_url":"https://github.com/gpucce/synthetic_llm_data/blob/HEAD/src/data_generation/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"943eedc90e8e6bc7"}},{"code_sha256_prefix":"f6146e20fb11a100","entry":"camoscio_preprocessing_function","repo":"gpucce/synthetic_llm_data","repo_kind":"found_in_text","path":"src/data_generation/utils.py","file_url":"https://github.com/gpucce/synthetic_llm_data/blob/HEAD/src/data_generation/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f6146e20fb11a100"}},{"code_sha256_prefix":"2a148d835d745f22","entry":"compute_loglikelihood","repo":"gpucce/synthetic_llm_data","repo_kind":"found_in_text","path":"src/synthetic_detection/detect_gpt/utils/detect_gpt_utils.py","file_url":"https://github.com/gpucce/synthetic_llm_data/blob/HEAD/src/synthetic_detection/detect_gpt/utils/detect_gpt_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2a148d835d745f22"}},{"code_sha256_prefix":"2e7fdfbb51f8c89a","entry":"compute_loss","repo":"gpucce/synthetic_llm_data","repo_kind":"found_in_text","path":"src/synthetic_detection/detect_gpt/utils/detect_gpt_utils.py","file_url":"https://github.com/gpucce/synthetic_llm_data/blob/HEAD/src/synthetic_detection/detect_gpt/utils/detect_gpt_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2e7fdfbb51f8c89a"}},{"code_sha256_prefix":"39e8c5fc99f312a7","entry":"cut_to_shortest","repo":"gpucce/synthetic_llm_data","repo_kind":"found_in_text","path":"src/synthetic_detection/detect_gpt/dataset_lm_modification.py","file_url":"https://github.com/gpucce/synthetic_llm_data/blob/HEAD/src/synthetic_detection/detect_gpt/dataset_lm_modification.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"39e8c5fc99f312a7"}},{"code_sha256_prefix":"e386851e40fd0d0e","entry":"generate","repo":"gpucce/synthetic_llm_data","repo_kind":"found_in_text","path":"src/data_generation/data_complete.py","file_url":"https://github.com/gpucce/synthetic_llm_data/blob/HEAD/src/data_generation/data_complete.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e386851e40fd0d0e"}},{"code_sha256_prefix":"ed8e545820c2fa55","entry":"generate_synthetic","repo":"gpucce/synthetic_llm_data","repo_kind":"found_in_text","path":"src/data_generation/data_complete.py","file_url":"https://github.com/gpucce/synthetic_llm_data/blob/HEAD/src/data_generation/data_complete.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ed8e545820c2fa55"}},{"code_sha256_prefix":"95eed0750de95437","entry":"per_sequence_crossentropy","repo":"gpucce/synthetic_llm_data","repo_kind":"found_in_text","path":"src/synthetic_detection/detect_gpt/utils/detect_gpt_utils.py","file_url":"https://github.com/gpucce/synthetic_llm_data/blob/HEAD/src/synthetic_detection/detect_gpt/utils/detect_gpt_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"95eed0750de95437"}},{"code_sha256_prefix":"bde233f26f94d406","entry":"postprocess_record","repo":"gpucce/synthetic_llm_data","repo_kind":"found_in_text","path":"src/clean_json.py","file_url":"https://github.com/gpucce/synthetic_llm_data/blob/HEAD/src/clean_json.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bde233f26f94d406"}},{"code_sha256_prefix":"235d787a54e2e314","entry":"register_list_cleaner","repo":"gpucce/synthetic_llm_data","repo_kind":"found_in_text","path":"src/clean_json.py","file_url":"https://github.com/gpucce/synthetic_llm_data/blob/HEAD/src/clean_json.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"235d787a54e2e314"}},{"code_sha256_prefix":"1df59dccab26e34d","entry":"register_record_cleaner","repo":"gpucce/synthetic_llm_data","repo_kind":"found_in_text","path":"src/clean_json.py","file_url":"https://github.com/gpucce/synthetic_llm_data/blob/HEAD/src/clean_json.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1df59dccab26e34d"}},{"code_sha256_prefix":"4aff19c47a533360","entry":"split_by_full_stop","repo":"gpucce/synthetic_llm_data","repo_kind":"found_in_text","path":"src/data_generation/utils.py","file_url":"https://github.com/gpucce/synthetic_llm_data/blob/HEAD/src/data_generation/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4aff19c47a533360"}},{"code_sha256_prefix":"e2954c86d261f558","entry":"generate","repo":"gpucce/synthetic_llm_data","repo_kind":"found_in_text","path":"src/data_generation/data_generate.py","file_url":"https://github.com/gpucce/synthetic_llm_data/blob/HEAD/src/data_generation/data_generate.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e2954c86d261f558"}},{"code_sha256_prefix":"71ab34fce0425525","entry":"generate_synthetic","repo":"gpucce/synthetic_llm_data","repo_kind":"found_in_text","path":"src/data_generation/data_generate.py","file_url":"https://github.com/gpucce/synthetic_llm_data/blob/HEAD/src/data_generation/data_generate.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"71ab34fce0425525"}},{"code_sha256_prefix":"18e76676f374297a","entry":"get_model_and_tokenizer","repo":"gpucce/synthetic_llm_data","repo_kind":"found_in_text","path":"src/data_generation/data_complete.py","file_url":"https://github.com/gpucce/synthetic_llm_data/blob/HEAD/src/data_generation/data_complete.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"18e76676f374297a"}},{"code_sha256_prefix":"767de70809e6c45e","entry":"get_model_tokenizer_and_params","repo":"gpucce/synthetic_llm_data","repo_kind":"found_in_text","path":"src/data_generation/data_generate.py","file_url":"https://github.com/gpucce/synthetic_llm_data/blob/HEAD/src/data_generation/data_generate.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"767de70809e6c45e"}},{"code_sha256_prefix":"4c60a84182cba83c","entry":"tokenize_mask_extract_and_apply","repo":"gpucce/synthetic_llm_data","repo_kind":"found_in_text","path":"src/synthetic_detection/detect_gpt/dataset_lm_modification.py","file_url":"https://github.com/gpucce/synthetic_llm_data/blob/HEAD/src/synthetic_detection/detect_gpt/dataset_lm_modification.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4c60a84182cba83c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}