From 6704dbdcd4c377503344efa9157fe5108e085aca Mon Sep 17 00:00:00 2001 From: Mehrdad Farahani Date: Wed, 30 Aug 2023 19:04:48 +0200 Subject: [PATCH 1/3] Add the first draft --- .../2023/students/mehrdad_farahani/.DS_Store | Bin 0 -> 6148 bytes ...Assignment_2_WASP_Software_Engineering.pdf | Bin 0 -> 59146 bytes .../2023/students/mehrdad_farahani/main.tex | 69 ++++++++++++++++++ .../students/mehrdad_farahani/references.bib | 22 ++++++ 4 files changed, 91 insertions(+) create mode 100644 assignments/2023/students/mehrdad_farahani/.DS_Store create mode 100644 assignments/2023/students/mehrdad_farahani/Assignment_2_WASP_Software_Engineering.pdf create mode 100644 assignments/2023/students/mehrdad_farahani/main.tex create mode 100644 assignments/2023/students/mehrdad_farahani/references.bib diff --git a/assignments/2023/students/mehrdad_farahani/.DS_Store b/assignments/2023/students/mehrdad_farahani/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ec042b62bdde9d14b3a835c5cd89e18854d57cce GIT binary patch literal 6148 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%0D<@B_GH<7#$SOQEn^X3hC_JU+X2{MGR*Eq1gbjv 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 SX9fy88y5;SwIoOi<^KSYXvB;F literal 0 HcmV?d00001 diff --git a/assignments/2023/students/mehrdad_farahani/main.tex b/assignments/2023/students/mehrdad_farahani/main.tex new file mode 100644 index 0000000..44e0507 --- /dev/null +++ b/assignments/2023/students/mehrdad_farahani/main.tex @@ -0,0 +1,69 @@ +\documentclass[11pt]{article} +\usepackage[english]{babel} +\usepackage[a4paper,top=2cm,bottom=2cm,left=3cm,right=3cm,marginparwidth=1.75cm]{geometry} + +% Useful packages +\usepackage{mathptmx} +\usepackage{amsmath} +\usepackage{graphicx} +\usepackage[colorlinks=true, allcolors=blue]{hyperref} + +\title{WASP Software Engineering and Cloud Computing 2023 \\ Assignment 1} +\author{Mehrdad Farahani} + +\begin{document} +\maketitle + +\section{Introduce your research/area (max 400 words)} +My doctoral research primarily centers on representation learning for conversational AI, which applies to various modalities. For conversational AI, representation learning is crucial since it captures and encodes the underlying structure and information. Developing more effective representations allows systems to understand human language better and generate more coherent, contextually appropriate responses. \\ \\ +My initial studies focused exclusively on the "Text" modality, exploring the generative models (decoder-only) employed in open-domain dialogue systems like GPT-2. However, since open-domain dialogues are not limited to specific topics or domains, they pose a more complex and challenging task to the systems. This exploration involved an examination of the impact of multi-objectives on decoder-only models and different components of conversation, such as personas and utterances, to identify that multi-objectives can enhance the model's ability to comprehend the information exchanged between conversational participants and yield more consistent, contextually or personality appropriate responses. However, despite the potential benefit of these multi-objectives for improving models' ability to generate coherent responses, they continue to struggle with generating fabricated responses, a phenomenon known as hallucination. \\ \\ +To address this concern, the second phase of my research examined a range of possible solutions and architectures designed to alleviate it, focusing on the precise impact they would have on representations. I am considering Retrieval-Augmented Generation (RAG) \cite{lewis2020retrievalaugmented} models to accomplish this, particularly in open-domain dialogue systems. The RAG model combines the benefits of generative and retrieval models. Retrieval-based models find and return suitable responses from a predefined dataset, while generative models generate text tokens. The RAG model utilizes both approaches to enhance the quality and relevance of generated responses. + +\section{Two principles/ideas/concepts/techniques from Robert's lectures} + +\subsection{AI/ML Software Testing} + +Engineers work with explicitly programmed, deterministic systems as part of traditional software testing. However, AI and machine learning (ML) models introduce new layers of complexity. Contrary to conventional software, where code paths are systematically explored and validated, AI/ML models are probabilistic and data-driven, making them difficult to test. Models such as these learn from data, and their behavior is often difficult to predict without considering that data. Consequently, AI/ML software testing involves verifying that the software works as expected and validating that the underlying models provide reliable, accurate, and safe results across various inputs and conditions. \\\\ +Our research focuses on representation learning in conversational AI, particularly in generating more effective, coherent, and contextually appropriate dialogues that cannot be proven accurate without robust testing methodologies, so AI/ML software testing is highly relevant to our research. \\\\ +According to the research theme, models may generate fabricated or incorrect responses, resulting in hallucinations. Finding the root cause of these hallucinations can be extremely difficult. A prime example of the importance of AI/ML software testing techniques can be found here. Several techniques may be used to examine how small changes in input parameters or model parameters affect the output, such as sensitivity analysis, ablation studies, or adversarial testing. By conducting such a test, it might be possible to identify which aspects of the representation learning may contribute to hallucinations. \\\\ +For example, we integrate Retrieval-Augmented Generation (RAG) models to combat hallucination. The AI/ML testing approach could systematically evaluate how well the RAG model retrieves relevant information under various conditions and its robustness against hallucinations compared to decoder-only models. This way, we can provide empirical evidence for the research findings and solutions to the hallucination problem. + + +\subsection{AI/ML Deployment and Challenges} + +Building and testing AI/ML models is already complex, but putting them into real-world use is entirely new. We must consider many things, such as how fast the system will run when users grow and how we will protect people's personal information. There is no doubt that speed is an essential factor, especially when it comes to chatbots and other tools that need to respond almost immediately. Let us simplify things by focusing on two key points. First, scalability, or how well the system can handle more users. Then, latency is all about keeping response times snappy no matter what. \\\\ +Now, consider RAG models designed to pull from massive databases to make conversations more natural and accurate. To provide a more insightful answer, imagine the model has access to an extensive database of universal knowledge. That could take time, which is a problem, especially in open-domain dialogue systems where users are expecting quick responses. It is, therefore, a real technical challenge to strike the right balance between accurate answers and fast response times. + +\section{Two principles/ideas/concepts/techniques from one of the three guest lectures} + +\subsection{AI/ML Generalization and AutoML from Fabio Calefato} + +When it comes to machine learning, the ability of a model to perform well on data that it has not seen before is known as generalization. This is especially important in fields like conversational AI, where the model will encounter many user inputs not part of the training set. AutoML aims to make machine learning more accessible by automating some parts of the process, improving efficiency, and speeding up research efforts. \\\\ +A relevant question related to generalization is whether a system trained in one language, such as English, can still perform well in other languages while maintaining conversational quality. This would require considering both linguistic and cultural differences and could involve extending the multi-objective framework currently being researched.\\\\ +AutoML could be an excellent option for our team or users who are not experts in the field. It makes it easier for them to customize or extend our conversational AI models. Additionally, it can enhance the efficiency of the model development process by automating the search for the most optimal hyperparameters and architectures, particularly for research with multiple objectives and modes. Suppose we want to swiftly adapt our dialogue system to different languages or specialized domains. In that case, AutoML can automate the tedious parameter tuning process for each new setting, quickly recognizing the best configurations. + +\section{Two Topics} + +\subsection{Continuous Deployment} + +Continuous Deployment (CD) is an extension of continuous integration to ensure that we can quickly release new changes to our customers sustainably. This approach ensures that software can be automatically released to production, resulting in many daily production deployments. This method has been widely adopted in traditional software engineering but presents unique challenges when applied to AI/ML projects. In contrast with conventional software, which remains static until updated, machine learning models may degrade over time as data distributions change. This requires continuous model performance monitoring. AI/ML Continuous Deployment must account for this by automatically updating the model or triggering alerts for manual intervention. In the course of updating models, it is essential to ensure that they still work well with other components of the system. To accomplish this, new validation techniques are required to ensure the deployed models perform as they should. On the other hand, due to rapid deployment cycles, changes can be implemented quickly, making it crucial to ensure that new model versions comply with all ethical and regulatory requirements.\\\\ +Areas of opportunity regarding our research: +\begin{itemize} + \item \textbf{Validation and testing (hallucination metric):} With a continuous deployment system equipped with robust monitoring tools, it would be possible to detect instances in which hallucinations increase after deploying a new version, triggering further investigation or reverting to a previous release. + \item \textbf{Boosting experimentation:} It could facilitate rapid testing; as a result, different model architectures or multi-objective settings could be tested, allowing us to examine differences in conversational quality, contextual relevance, and other metrics more quickly. +\end{itemize} + + +\subsection{Regulations and Compliance} +Regulatory frameworks for AI/ML are in place to tackle a range of ethical, legal, and social issues. Regulatory bodies are examining these technologies to ensure they comply with established criteria, such as data privacy, system security, and accountability. Laws like Europe's GDPR and California's CCPA set rigorous guidelines for gathering, storing, and utilizing data. In specific industries like healthcare and finance, there is a particular emphasis on the algorithms being both transparent and easy to understand. Additionally, maintaining logs of data handling, model training, and decision processes could be mandated for legal or compliance purposes.\\\\ +Areas of opportunity regarding our research: +\begin{itemize} + \item \textbf{Ethical Dialogues \cite{Sun2022MoralDialAF}:} The aim of our work in dialogue-based AI is to create systems that produce replies that are not just contextually relevant, but also considerate of moral and cultural nuances. This would make our models more readily compliant with emerging regulations around algorithmic fairness. + \item \textbf{Preserving Data Privacy in Representation Learning \cite{Carlini2020ExtractingTD}:} We can explore methods that either anonymize the data or protect its privacy in some other way when used in dialogue models. This would make our work compliant with data protection laws such as GDPR. +\end{itemize} + + +\bibliographystyle{unsrt} +\bibliography{references} + +\end{document} \ No newline at end of file diff --git a/assignments/2023/students/mehrdad_farahani/references.bib b/assignments/2023/students/mehrdad_farahani/references.bib new file mode 100644 index 0000000..c9e7716 --- /dev/null +++ b/assignments/2023/students/mehrdad_farahani/references.bib @@ -0,0 +1,22 @@ +@misc{lewis2020retrievalaugmented, + title = {Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks}, + author = {Patrick Lewis and Ethan Perez and Aleksandra Piktus and Fabio Petroni and Vladimir Karpukhin and Naman Goyal and Heinrich Küttler and Mike Lewis and Wen-tau Yih and Tim Rocktäschel and Sebastian Riedel and Douwe Kiela}, + year = 2020, + eprint = {2005.11401}, + archiveprefix = {arXiv}, + primaryclass = {cs.CL} +} +@inproceedings{Sun2022MoralDialAF, + title = {MoralDial: A Framework to Train and Evaluate Moral Dialogue Systems via Moral Discussions}, + author = {Hao Sun and Zhexin Zhang and Fei Mi and Yasheng Wang and W. Liu and Jianwei Cui and Bin Wang and Qun Liu and Minlie Huang}, + year = 2022, + booktitle = {Annual Meeting of the Association for Computational Linguistics}, + url = {https://api.semanticscholar.org/CorpusID:258947011} +} +@inproceedings{Carlini2020ExtractingTD, + title = {Extracting Training Data from Large Language Models}, + author = {Nicholas Carlini and Florian Tram{\`e}r and Eric Wallace and Matthew Jagielski and Ariel Herbert-Voss and Katherine Lee and Adam Roberts and Tom B. Brown and Dawn Xiaodong Song and {\'U}lfar Erlingsson and Alina Oprea and Colin Raffel}, + year = 2020, + booktitle = {USENIX Security Symposium}, + url = {https://api.semanticscholar.org/CorpusID:229156229} +} From 87f42ca6bbf51e95f3aacdcadaa93c418cc0dfa1 Mon Sep 17 00:00:00 2001 From: Mehrdad Farahani Date: Wed, 30 Aug 2023 19:05:56 +0200 Subject: [PATCH 2/3] remove dot file --- assignments/.DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 assignments/.DS_Store diff --git a/assignments/.DS_Store b/assignments/.DS_Store deleted file mode 100644 index 0f6f32b83fce60ef05d493152caa6f6eb5814bc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%}T>S5Z-O8-BN@c6nYGJEm+%95HBIt7cim+m70*C!I&*gVh^Q|v%Zi|;`2DO zy8(+icoMNQu=!@^XLsj=>d3OO0ylfDc}u(ceNu0Uh5Gh_*q;V5t#2 zAY7*c>Qru?7+j}=-8ONK!BV46XI#w;y{Z<~HwKlYSXebz0q5=Z?#w7qcxR3OdQ~Pby aA9ly4159`%S~7S From 23aaeed64708bd5202f2f3bba18202f2a47eec37 Mon Sep 17 00:00:00 2001 From: Mehrdad Farahani Date: Wed, 30 Aug 2023 19:07:31 +0200 Subject: [PATCH 3/3] Delete .DS_Store --- .../2023/students/mehrdad_farahani/.DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 assignments/2023/students/mehrdad_farahani/.DS_Store diff --git a/assignments/2023/students/mehrdad_farahani/.DS_Store b/assignments/2023/students/mehrdad_farahani/.DS_Store deleted file mode 100644 index ec042b62bdde9d14b3a835c5cd89e18854d57cce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKy-ve05dN+dsfdA&jGoxb6Qor-FoBeT71}~TYMY85vF1s58wMVL=Yj9+E20W8 z6@=(rbobe3pHKHWiemsWxS#ZZE`SbIv9&|yW=l1 zpnG?KK5qG3v<7&3xx=UGWEwd`mt(Hzt9-m*1pZZL+<{XnB&#|~_@U-O1(HU?C zHj@EKWp{QrvwW}G8E^)^VL-nRfvT7p)(PXMgC<@9h;6!~u&uv+8WRjN!#W{HD3U^n zDOBu=At{{xVDmD=I$;Wj*yTekv)BzqVs@?{;&e!s(5*Az46HJ+mAYL$|A$}S|5t;& z=L|Rl|B3-==S4nXNp`k2iqo?;P|v6;IPXEiaA%0;(clq`hzxznPHuf9*X}6 ML>k;U1Ha0^8#)