Skip to content

christinajoslin/faq-generation

Repository files navigation

CLiFF (Clustering & Language model integration for FAQ Formation)

About the Project

CLiFF is a research-driven pipeline that automates the generation of frequently asked questions (FAQs) from technical support tickets in high-performance computing (HPC) environments. It aims to reduce support ticket volume and streamline issue resolution through the use of Natural Language Processing (NLP), semantic embeddings, and instruction-tuned Large Language Models (LLMs).

This project was designed to adapt to evolving support trends through dynamic, data-driven methods. Instead of relying on static, manually curated FAQs, CLiFF enables:

  • Ticket filtering based on anomaly frequency to prioritize high-impact issues
  • Summarization of ticket content into issue-resolution pairs using LLMs
  • Semantic subclustering of ticket issues, followed by ranking and selection of subclusters by size, cohesion, and separation
  • LLM-based FAQ generation for each high-quality subcluster

Data Availability

The raw and cleaned support ticket datasets used in this project are not included in this public repository due to privacy, confidentiality, and institutional data restrictions.

This repository provides the full pipeline implementation (cleaning, summarization, clustering, and FAQ generation) so the workflow can be reproduced on comparable datasets with a similar schema.


Pipeline Overview

CLiFF Pipeline Diagram

The CLiFF pipeline processes support tickets through the following steps:

  1. Filtering: Select recent tickets based on anomaly frequency
  2. Cleaning & Summarization: Use an instruction-tuned LLM to extract issue-resolution pairs
  3. Subclustering: Embed and group similar issues within topic clusters using sentence embeddings
  4. Ranking & Generation: Identify top 15 subclusters and generate one FAQ per subcluster

Repository Structure

  • /1_clean_tickets: Filters and preprocesses raw ticket data
  • /2_summarize_tickets: Summarizes ticket content using an instruction-tuned LLM
  • /3_select_tickets: Embeds, subclusters, and ranks high-quality ticket groupings
  • /4_generate_faqs: Generates one FAQ per top-ranked subcluster
  • CLiFF_Pipeline_Diagram.png: Visual representation of the pipeline
  • requirements.txt: Python libraries needed to run the pipeline

Each pipeline stage directory contains:

  • A README.md describing the purpose and usage of the stage
  • Scripts used in the production pipeline
  • Training and experimental Jupyter notebooks

How to Run

  1. Install dependencies
    Ensure your environment has Python 3.9+ and install required packages:

    pip install -r requirements.txt
  2. Follow each stage
    Navigate through each subfolder (/1_clean_tickets,/2_summarize_tickets, etc.) and follow the README.md instructions within each directory to run the pipeline step-by-step.

  3. Run scripts or notebooks
    You can either:

    • Execute the scripts directly for production runs, or
    • Use the provided Jupyter notebooks for testing, training, and experimentation

Project Team

  • Christina Joslin — Primary Author, Student Intern
  • David Burns — Co-author, Student Intern
  • Ashish — Mentor, Senior Research Data Scientist
  • Elham J. Barezi, PhD — Technical Advisor, Lead Research AI Scientist

Citation

Joslin, C., Burns, D., Ashish, A., & Barezi, E. J. (2025, November). Generating Frequently Asked Questions from Technical Support Tickets using Large Language Models. Proceedings of the SC ’25 Workshops of the International Conference for High Performance Computing, Networking, Storage, and Analysis (pp. 715-726). Association for Computing Machinery. https://doi.org/10.1145/3731599.3767429

About

CLiFF (Clustering & Language model integration for FAQ Formation)

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages