eprints (HSR Hochschule für Technik Rapperswil)
Not a member yet
1196 research outputs found
Sort by
Cloud-Native Network Controller
The philosophy in application operations has changed significantly over the last few years. Most applications no longer run on dedicated servers but have been migrated to virtual machines. For some time, they were used as best practices. Nowadays, applications are already developed in a cloud-native manner for easy deployment in container-based infrastructures. What happened in the meantime in the domain of network configuration management? The focus was set on automation enhancement with popular tools like Ansible and various proprietary solutions. They provide a one-shot way of deployment, where the configuration will be applied but still leave the possibility open to overwrite the changes manually. In this approach, there is no built-in self-healing of configuration drift. A group of network engineers is developing a tool stack around Kubernetes, allowing the user to leverage its cloud-native advantages for network configuration.
The objective of this bachelor thesis is to analyze the main component of the tool stack SDC (Schema Driven Configuration) in the use case of automating an EVPN fabric. The analysis shall examine the operating principle of SDC while also considering its place in the cloud-native ecosystem from data source to the device. Based on the analysis, a verdict should be given on SDC’s fulfillment of requirements, multi-vendor compatibility, and readiness for use in production.
The findings prove that SDC follows great principles: It is designed to be vendor agnostic, working with virtually every vendor that supports Netconf or gNMI as a configuration interface and is customizable. This facilitates avoiding vendor lock-in. Being comprised of Kubernetes resources, SDC works completely declaratively and uses a mechanism for continuous reconciliation. The tool is open-source. Therefore, it is possible for anyone to use and improve it.
Since SDC is still in heavy development, the authors also found a few minor bugs - some of which have been fixed during this project. The more significant issue lies in the usage of YANG: SDC uses YANG schemas to validate the configuration before writing it to the devices. It was found that SDC often has trouble loading these schemas either because of bugs in SDCs loading mechanism or due to the fact, that some of the (vendor-supplied) schemas contain many deviations which lead to breaking the configuration tree. Therefore, using SDC in production requires a fair amount of effort to rework the available YANG schemas for the devices.
SDC integrates with Kubenet as the configuration generation component. It first enables the creation of an abstract configuration, which will then be transformed into the device-specific configuration. Due to some disadvantages of running the configuration creation in Kubernetes, such as the lack of a good way to do a dry run, a new tool called Choreo exists. It replicates the API functionality of Kubernetes while providing additional functionality, such as running to completion with either a successful or failed result. These tools’ customizability enables extreme flexibility but also increases their complexity, and many components for their functionality must still be created. This development is expected to be done by the user or the community as they have not (yet) been provided by the developers. As can be seen, SDC still needs some time for development to be entirely usable in productive environments. Nevertheless, it has many exceptional traits, making it inimitable in the current market
Einkaufshelfer Android App
Das Ziel dieser Bachelorarbeit ist die
Entwicklung einer Android-App, die Verbrauchern hilft, Ihre Einkaufserlebnisse durch effiziente
Preisvergleiche und die Verfolgung von Preisentwicklungen zu optimieren. Im Kontext der
steigenden Inflation und Preisvolatilität steht die Notwendigkeit für einkommensschwache
Bevölkerungsschichten, Preise von Produkten aus verschiedenen Geschäften zu vergleichen, im
Vordergrund. Dies wird durch die Erstellung einer App ermöglicht, die mittels Optical Character Recognition
(OCR) Technologie die Produktnamen und Preise aus Kassenbelegen extrahiert und vergleicht.
Wesentliche Aspekte dieser Arbeit umfassen die Evaluation geeigneter Technologien für die
automatische und manuelle Erkennung der relevanten Bereiche auf dem Kassenbeleg und die
Textzeichenerkennung mittels einer OCR-Bibliothek. Die App soll es den Nutzern ermöglichen, ohne
Vorkenntnisse Kassenbelege scannen zu können, damit die App automatisch Preisänderungen ermitteln
kann.
Folgende Probleme wurden gelöst: die Erkennung von Textzeichen, relevanten
Textbereichen auf Kassenbelegen und Preisdifferenzen gleichnamiger Produkte aus dem
gleichen Laden. Der entwickelte Prototyp ermöglicht es Nutzern, Belege in der App zu erfassen und
Preisschwankungen seit dem letzten Einkauf zu sehen. Dabei werden nur selbst erfasste Daten
genutzt, ohne Berücksichtigung von Rabattaktionen. Anfangs wurde für die Texterkennung die OCRLibrary des Google ML Kits verwendet, wobei der
Benutzer den relevanten Textbereich zuschneiden musste. Mit einer Regex wurden die Informationen
strukturiert ausgelesen. Um die Texterkennung zu verbessern, wurde experimentell festgestellt, dass
homogene Beleuchtung wichtig ist, um einen effizienten Binarisierungsalgorithmus anzuwenden,
der den Text vom Rest des Bildes löst. Da der Ansatz mit OCR und Regex ein bestimmtes Format der
Kassenbelege erfordert, wurde später die Google Gemini API verwendet. Gemini führt Texterkennung
und automatische Bereichserkennung durch, sodass verschiedene Belegstrukturen besser ausgelesen
werden können. Der Benutzer muss den relevanten Bereich nicht mehr manuell zuschneiden.
Experimentell wurde festgestellt, dass Gemini besser mit Bildern bei schlechter Beleuchtung umgehen
kann, wahrscheinlich durch eigene Bildverarbeitungsschritte wie Binarisierung. Der
Nachteil von Gemini ist die erforderliche Internetverbindung und die längere Verarbeitungszeit.
In einer Weiterentwicklung könnten die erfassten Daten anonymisiert gesammelt und an alle Benutzer
zur Verfügung gestellt werden, um aktuellere Preisänderungen anzuzeigen. Dies eröffnet
Möglichkeiten für ein Empfehlungssystem, z.B. ob ein Produkt an einem anderen Standort günstiger ist oder
ob ein Rabatt wirklich ein Rabatt ist, oder ob zuvor der Preis erhöht wurde.
Die Entwicklung einer App, die Kassenbelege scannen und relevante Informationen daraus
extrahieren kann, ist eine grosse Herausforderung, da Kassenbelege sehr unterschiedliche Formate haben
und die Daten beliebig strukturiert sein können. Modelle, die maschinelles Lernen verwenden, sind
besonders vielversprechend, um mit den verschiedenen Kassenbeleg Formaten umgehen zu
können. In der Arbeit wurde eine Grundlage erarbeitet, auf der ein schnelles und robustes System
zur Lösung der genannten Probleme entwickelt werden kann
Natural Language to GraphQL
In-context learning enables large language models (LLMs) to comprehend and respond based on the context of the input, allowing them to adapt to a wide range of domain-specific tasks without additional training. However, they have notable limitations in accessing real-time or domain-specific data because they operate primarily on the knowledge they were trained on. Natural language-to-SQL (NL-to-SQL) systems offer a practical solution, enabling LLMs to transform natural language into SQL commands. This makes data accessible to people without technical expertise. GraphQL, having emerged as a flexible alternative to REST, enables software clients to specify the precise data they require from an API based on a schema.
Based on this research, the project aimed to evaluate the best practices for building a natural language interface for GraphQL by adapting the concepts of NL-to-SQL to the GraphQL domain. By understanding the concepts and evaluating a few optimal strategies, a strong foundation was laid for future development.
Upon starting the project, in-depth research was conducted to understand the current state-of-the-art, focusing on NL-to-SQL due to its similarities and substantial literature available. Key findings were documented, and possible strategies were defined. After a proof-of-concept, two strategies, with a few sub-variants, were established for implementation. The first strategy solely relies on the capabilities of LLMs to directly follow instructions and, using in-context learning, enhance the prompt with relevant samples. The second strategy focuses on using entity extraction to identify entities in the user's question, match them to the schema, and then build the operation based on an abstract syntax tree. During implementation, a third strategy combining the benefits of both previous approaches evolved that overcomes the context size limitation of LLMs. In order to measure the strategies' performance in various metrics, an evaluator was built to efficiently test different implementations against a test set. The latter was inspired by the Spider dataset, a widely used benchmark for NL-to-SQL solutions.
The evaluation has seen 7 different LLMs tested against the 4 most mature variants. The results were analyzed to determine the best-performing combinations. While the first strategy showed promising results for simple test cases, it demonstrated limitations in terms of quality and consistency for more complex ones. The best performing combination uses entity extraction and algorithmic query generation, which is capable of correcting intermediate errors and always produces valid output, making it reliable enough to be used in experimental environments. In general, OpenAI models (GPT-4) are reliable in following instructions, while open source models (Llama3, Mistral) have trouble consistently generating valid structures such as JSON. Hallucinations, though occurring on both OpenAI and open source models, can be drastically reduced with prompt engineering, making the output more consistent. However, both strategies are limited by the context size of the LLM used, making them cost-inefficient or even non-processable for large schemas. To overcome this limitation, future research should focus on an iterative entity extraction approach, enabling large schemas to be processed. Additionally, the shot sampling process can be optimized to further benefit from the LLM's in-context learning capabilities
AI-assisted Digitalization of Landscaping plans
This thesis proposes a full-stack solution for the digitisation process of the Swiss Archive for Landscape Architecture (ASLA).
A desktop app is developed using Tauri, enabling the management of the archive’s data as well as the correction of AI predictions.
The AI pipeline is containerised using Docker and is accessible via a web API. Each plan is formatted and preprocessed, before three deep learning models are applied: a pretrained layout model (LayoutLMv3) to detect all text occurrences with k-means clustering to group text boxes into logical blocks, and a transformer-based OCR model (TrOCR) to extract text. Relevant entities are then identified using a custom-trained German BERT model. The output undergoes post-processing for formatting and normalisation, with project-specific keywords like the architect’s name filtered out. The predicted metadata is sent back to the client app where metadata files track all changes to the image, ensuring non-destructive editing.
Every weekend, the machine learning models are retrained on all the manually changed predictions. The thesis focuses more on implementing a robust pipeline and continuous retraining than on improving the models because continuous retraining is expected to enhance the AI pipeline’s performance over time.
The app significantly speeds up the digitisation process for the archive and is a substantial improvement over the old Excel-based workflow. The AI pipeline’s prediction accuracy varies by model. Marker detection is 100% reliable, and the OCR model reaches 98% ac- curacy after retraining on only 77 images. The NER model, currently at 46% accuracy, is about 10% better than the model from the SA project. If the accuracy continues to increase with additional training data, an F1-score of over 80% can be foreseen with 600 images. Thanks to the new app, these images can be collected in less than a month of archival work
Antimony
The current tooling for emulating network topologies at OST relies heavily on an in-house solution called the Lab Topology Builder. While the LTB provides basic functionality, it has limited support for more advanced features and due to its in-house origins is also less likely to be maintained in the future. To combat this, OST decided to switch to an open-source alternative called Containerlab / Clabernetes which is currently being developed by SRL Labs.
The problem with this tooling, though, is that it's purely command-line based and there does not exist a graphical interface to this date. With Antimony, we want to provide an open-source solution to this issue. We aim to combine the existing, configuration-based, workflow with a graphical one which should help people, who are less experienced with Containerlab, to design and deploy their own network topologies with ease. Antimony provides a clean web-based editor which allows for editing of Containerlab / Clabernetes topology files, side-by-side with an interactive visualization of the network. Furthermore, it should serve as a platform to deploy new and manage existing network instances by lab maintainers as well as students.
It is important to note, that this is still a prototype and there is no connecting backend that talks to any Containerlab / Clabernetes software to actually deploy the labs. The backend to Antimony as well as a list of outstanding features are planned to be implemented in a future bachelors project at OST. Currently, Antimony is fully functional as a standalone Containerlab / Clabernetes topology editor
Design of a locomotive UI for system testing (SA)
This project presents a novel UI prototype for a locomotive testing system that specifically targets the driver's cab.
Starting from the cluttered and unstructured LabVIEW application, our goal was to design and develop a new application that was user-friendly and structured.
By aligning the structure with the real locomotive, the prototype aims to provide an intuitive user experience.
The resulting prototype takes a component-based approach and focuses on design, extensibility and modularization.
The design was developed with Figma and implemented using web technologies; more specifically an Electron application combined with React was implemented.
A key feature is the customization capability through a configuration file in CSV format, allowing flexible configuration of modules and variants.
To simulate the prospective interface connection, a mock-backend was created, as the actual backend implementation is pending.
This project provides a solid foundation for further development and demonstrates the possibilities of extending the application with additional views and functionality, ultimately serving as a valuable platform for ongoing work in this area
Study Buddy
The emergence of large language models (LLM) changes the way we search for information. LLMs allow us to ask questions directly and receive answers in natural language. However, the knowledge of LLMs is limited to the information they have been trained on and is therefore often outdated. This limitation can be overcome by using the retrieval augmented generation (RAG) technique. This technique combines the user’s prompt with contextual information from a custom knowledge base before asking the LLM to generate an answer. The technique relies on semantic search using embeddings to find relevant content related to the user’s prompt in the knowledge base. RAG significantly improves the quality of the answers received from the LLM, especially when specific knowledge beyond what the LLM has been trained on is required.
The goal of this project was to implement a chatbot in Python and React that uses the RAG technique to answer a student's questions about lecture-related content, such as PDF lecture notes. In addition to providing correct answers, the bot should also list the sources used to generate the answers, allowing the student to verify the answer.
A chatbot was implemented using open- source components. The focus was on the LLama2 LLM family and LLamaIndex, a data framework in Python for connecting LLM. The chatbot was tested using slides from the C++ and OOP lectures at OST. We found that the RAG technique works well for answering questions based on text-based notes. However, we encountered difficulties in retrieving relevant context when dealing with bullet points and images in lecture slides, resulting in the LLM generating inaccurate answers. To reduce the impact of these limitations, we conducted tests to evaluate an embedding model that best fits our use case. During our testing we could not find any model, including Llama2, that performed adequate with languages other than English. This problem can only be addressed by fine tuning a model. So we focused our evaluation on English texts. We have also provided a guide for lecturers and students on how to use chatbots like this one efficiently
upsi - a decentralized STI tracing approach
Introduction
Sexually Transmitted Infections (STIs) are a significant global public health challenge. While in Switzerland the incidence of Human Immunodeficiency Virus (HIV) has been declining since the 1980s pandemic, other STIs such as Chlamydia, Gonorrhea, and Syphilis exhibit an upward trend. Effective partner notification is essential to mitigate the spread of STIs. However, it is not practiced sufficiently, and no dedicated technical solution currently addresses this challenge.
During the COVID19 pandemic, proximity tracing mobile apps were successfully deployed to combat the spread of SARSCoV2. Various system architectures were employed, utilizing different approaches concerning privacy and data sovereignty.
Objective
The primary objective of this thesis is to design and develop upsi, a mobile application for STI partner notification. Inspired by the COVID19 proximity tracing apps, upsi aims to enhance partner notification, thereby mitigating the spread of STIs. Experts in the field of STIs will be consulted to evaluate the feasibility and importance of upsi.
Approach
Research was conducted to understand the current STI situation and existing solutions for STI partner notification and COVID19 proximity contact tracing. A concept for upsi was developed based on insights gained from the research and presented to leading STI experts. The expert feedback was integrated into the solution design. A minimum viable product (MVP) was developed using the most feasible technologies evaluated.
Results
upsi, a partner notification application for STI rapid tests, was developed with a focus on privacy and decentralization. The solution consists of a Flutter mobile app for users, which provides contact exchange and partner notification, and a second mobile app for test center employees to ensure trustworthy notifications. A .NET Core server application deployed to Azure handles the publication of positive test results onto the Optimism blockchain and simplifies wallet handling for the test center employees.
STI experts responded positively to the proposed concept and provided helpful inputs and insights that were integrated into upsi. While technical solutions for partner notification are discussed among experts, integration into existing IT systems remains challenging due to the large number of test centers, each using its own IT solution.
Further Work
Further development of the app is suggested, including the extension to iOS mobile devices and additional features to enhance user experience and functionality. Integration into existing STI test center IT systems should be carried out to also handle laboratory tests. Additionally, a study to evaluate the effectiveness and acceptance of upsi among users should be conducted
Bluetooth LE Audio Test Infrastructure
The introduction of Bluetooth® Core Specification 5.2 has paved the way for new audio transmission features, like LE Audio and Auracast™, revolutionizing the audio technology landscape. This bachelor thesis, conducted in collaboration with Sonova Holding AG, aims to develop a test infrastructure to facilitate the testing of Auracast™ features in Bluetooth® LE Audio devices.
Given the limited adoption and support for Auracast™, there were not many existing solutions for testing available at the start of this thesis. The main goal of this thesis is to extend the existing test infrastructure of Sonova with a controlled environment for testing broadcast receivers, ensuring they can effectively receive and process Auracast™ broadcasts.
The test setup comprises two Nordic nRF5340 Audio Development Kits, configured as broadcast transmitter and assistant. A .NET-based library manages communication between the boards and the existing test infrastructure, allowing to set up an Auracast™ environment. Existing sample applications for the Nordic boards were translated from C to C++ and customized to meet the project’s requirements. Additionally, a small console application was developed to test the setup locally.
The successful implementation of this project will contribute to the advancement of audio technologies, enhancing the use of end-user devices and enabling the development of innovative audio products. This thesis serves as a first step in adding Auracast™ capabilities to the test environment, which Sonova will continue to adjust to meet their evolving needs.
The future of Auracast™ appears promising, with many companies quickly adopting the trend. Some earbuds and smartphones already support the new features, and we are hopeful to see more widespread adoption in the near future
Observability in Natural Language Processing (NLP) Systems
Observability is a key concept in modern software engineering that allows engineers and operators to understand the health of a system by observing its external outputs. Upon discovery of issues, corrective action can be taken to ensure that a system performs as expected. Instead of hunting for issues, teams can focus on fixing them. With the recent rise of generative Natural Language Processing (NLP) systems, the need for observability in such systems has become apparent. While observability for classical software systems is increasingly popular, hardly any research exists on the same concept for generative NLP systems. This report calls for more research in the field, and explores how to transfer selected key concepts of observability to the field of generative NLP systems, discussing some common challenges and proposing a refined definition of observability for generative NLP systems. Challenges in generative text models like data drift, concept drift and adherence to topic and goals are discussed and evaluated. Speculative approaches to address these challenges are outlined