From d8c8db85468971f96f96b18c24b970cbd394816e Mon Sep 17 00:00:00 2001 From: tharun571 <63015429+tharun571@users.noreply.github.com> Date: Fri, 18 Oct 2024 19:38:43 +0530 Subject: [PATCH] Add Integrate a Large Language Model with the xeus-cpp Jupyter kernel final blogpost for GSoC 24 (#259) --- ...-xeus-cpp-jupyter-kernel_final_blogpost.md | 132 ++++++++++++++++++ images/blog/codeflow.png | Bin 0 -> 41229 bytes images/blog/gemini.png | Bin 0 -> 36877 bytes 3 files changed, 132 insertions(+) create mode 100644 _posts/2024-10-17-integrate-a-large-language-model-with-the-xeus-cpp-jupyter-kernel_final_blogpost.md create mode 100644 images/blog/codeflow.png create mode 100644 images/blog/gemini.png diff --git a/_posts/2024-10-17-integrate-a-large-language-model-with-the-xeus-cpp-jupyter-kernel_final_blogpost.md b/_posts/2024-10-17-integrate-a-large-language-model-with-the-xeus-cpp-jupyter-kernel_final_blogpost.md new file mode 100644 index 0000000..d332ab4 --- /dev/null +++ b/_posts/2024-10-17-integrate-a-large-language-model-with-the-xeus-cpp-jupyter-kernel_final_blogpost.md @@ -0,0 +1,132 @@ +--- +title: "Integrate a Large Language Model with the xeus-cpp Jupyter kernel - Final Report" +layout: post +excerpt: "Integrate a Large Language Model with the xeus-cpp Jupyter kernel, part of Google Summer of Code 2024, aims to integrate a large langauge model into the xeus kernel for users to interactively generate and execute code." +sitemap: false +author: Tharun Anandh +permalink: blogs/gsoc24_tharun_anandh_final_blog/ +date: 2024-10-17 +tags: gsoc xeus xeus-cpp cpp llm +--- + +### Introduction + +I am Tharun A, this summer I contributed to Xeus-cpp, started by the wonderful developers at the Compiler Research Group and Quantstack. My project was implementing large language models with the xeus kernel. + +**Mentors**: Anutosh Bhat, Johan Mabille, Aaron Jomy, David Lange, Vassil Vassilev + +--- + +### Project Overview + +Xeus-cpp is a Jupyter kernel for C++ built on the native Jupyter protocol, enabling interactive coding with REPL functionality for quick prototyping without separate compilation. This project aims to integrate a large language model with the xeus-cpp kernel, allowing users to generate and execute C++ code interactively with AI-powered assistance. + +--- + +### Implementation + +![Codeflow](./images/blog/codeflow.png) + +I created a magic function called XAssist that connects to a specific LLM based on the user's preference. It utilizes utility functions and the cURL library to connect with the LLM and retrieve the respective response. The user saves the API keys for OpenAI and Gemini, sets the URL for Ollama, saves a particular model, and then uses the LLM. + +#### Coding Phase 1 + +1. **Establishing Test Coverage** + - Focused on creating test coverage, which was instrumental in understanding the codebase. + - Tracked every function to comprehend its purpose and behavior, enhancing familiarity with the project. + +2. **Setting Up a Testing Framework** + - Developed a testing framework to ensure that the Jupyter notebooks functioned as intended. + - This allowed for early identification of issues and ensured smooth functionality. + +3. **Understanding the Functionality of XMagics** + - Gained insights into the functionality of `xmagics`, which was critical for my project. + - This understanding laid the groundwork for further development and integration. + +4. **Research on OpenLLM** + - Conducted research on OpenLLM to evaluate its potential application in the project. + - Determined that OpenLLM was not suitable, leading to the decision to build a custom framework. + +5. **Building a Custom Framework for LLM Integration** + - Developed a framework to connect with various LLMs using C++ and the **cURL library**. + - Key functionalities included: + - **Support for OpenAI and Gemini**: Integrated support for these specific LLMs, expanding the framework’s capabilities. + - **API Key Management**: Saved API keys in text files to maintain security and accessibility. + - **Customized JSON Calls**: Created tailored JSON requests for each model, ensuring proper integration. + +#### Coding Phase 2 + +1. **Fixing Issues with the Initial PR** + - Focused on addressing feedback from the initial pull request (PR) to improve code quality. + - Made necessary adjustments to meet project standards and enhance functionality. + +2. **Debugging Windows-Specific Issues** + - Encountered challenges with importing the **cURL library** on Windows systems. + - Investigated and resolved compatibility issues to ensure the framework worked across different platforms. + +3. **Adding Context (Chat History) to LLM Calls** + - Enhanced user experience by implementing the ability to include conversation context in LLM calls. + - Allowed users to engage in seamless and continuous conversations with the LLM, improving interactivity. + +4. **Providing Flexibility in Model Selection** + - Introduced the option for users to select from multiple LLM models based on their preferences. + - This flexibility empowered users to tailor their interactions with the LLMs to better meet their needs. + +5. **Integrating Support for Ollama (Open Source Model)** + - Added support for **Ollama**, enabling users to utilize their private models within the `xeus` kernel. + - This feature expanded the project’s utility, allowing for greater customization and flexibility. + +6. **Improving Documentation** + - Updated and enhanced project documentation to make it more comprehensive and user-friendly. + - Focused on providing clear instructions for setup, usage, and functionality, benefiting future contributors and users. + +--- + +### Contributions + +| PR | Description | +|----|-------------| +| [#47](https://github.com/compiler-research/xeus-cpp/pull/47), [#104](https://github.com/compiler-research/xeus-cpp/pull/104), [#107](https://github.com/compiler-research/xeus-cpp/pull/107), [#109](https://github.com/compiler-research/xeus-cpp/pull/109), [#112](https://github.com/compiler-research/xeus-cpp/pull/112), [#116](https://github.com/compiler-research/xeus-cpp/pull/116), [#124](https://github.com/compiler-research/xeus-cpp/pull/124), [#128](https://github.com/compiler-research/xeus-cpp/pull/128) | Increase test coverage | +| [#64](https://github.com/compiler-research/xeus-cpp/pull/64), [#93](https://github.com/compiler-research/xeus-cpp/pull/93) | Update tutorials, debug documentation | +| [#142](https://github.com/compiler-research/xeus-cpp/pull/142) | Testing framework for notebooks | +| [#151](https://github.com/compiler-research/xeus-cpp/pull/151) | XAssist Implementation - support for OpenAI and Gemini, Context aware, Documentation, Tests | +| [#156](https://github.com/compiler-research/xeus-cpp/pull/156) | XAssist Implementation - support for Ollama, Model freedom, Documentation, Tests | +| [#160](https://github.com/compiler-research/xeus-cpp/pull/160) | XAssist Implementation - Update tests | +| [#161](https://github.com/compiler-research/xeus-cpp/pull/161) | XAssist Implementation - Handle prompts with special cases | + +--- + +### Result + +Here is an example that demonstrates how one can use XAssist. + +![Gemini](./images/blog/gemini.png) + +--- + +### Future Work + +Potential enhancements to XAssist that could significantly increase its usefulness include enabling the LLM to output code directly into subsequent cells, allowing the entire notebook to be analyzed for potential errors, and refining the output format to improve readability and presentation. This has been opened as an issue at [#162](https://github.com/compiler-research/xeus-cpp/issues/162). + +--- + +### Conclusion + +This project will help developers seamlessly integrate OpenAI, Gemini, and Ollama into their workflows, enabling smoother adoption of advanced language models and making development tasks easier and more efficient. By automating complex interactions and streamlining API usage, XAssist aims to reduce manual effort, improve productivity, and enhance the developer experience across various domains. + +--- + +### Acknowledgements + +From day one, the learning experience has been immensely rewarding. I would first like to express my gratitude to Vassil for his patience in addressing my doubts and guiding me through every stage of the process. I am also grateful to Johan for his valuable insights and code reviews, and to Anutosh for helping me understand the broader context. A special thanks to Matthew for always providing thoughtful feedback whenever I sought it. I would also like to acknowledge my peers and fellow contributors from the compiler research organization for their invaluable support and collaboration. + +These past few months have been transformative for my professional growth, helping me refine my technical skills and enhance my problem-solving abilities. Looking ahead, I plan to continue contributing to xeus-cpp and other projects within the organization, deepen my engagement with open-source initiatives, and explore new areas where I can make meaningful contributions to the community. + +--- + +### Related Links + +- [Xeus-cpp Repository](https://github.com/compiler-research/xeus-cpp) +- [Project Description](https://hepsoftwarefoundation.org/gsoc/2024/proposal_XeusCpp-LLM.html) +- [GSoC Project Proposal](/assets/docs/TharunA_GSoC_Proposal_2024-Xeus-Cpp.pdf) +- [My GitHub Profile](https://github.com/tharun571) diff --git a/images/blog/codeflow.png b/images/blog/codeflow.png new file mode 100644 index 0000000000000000000000000000000000000000..7f2ca70b554275ae086ea9c04bcfa97efe4cb6a9 GIT binary patch literal 41229 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 Co7CC> literal 0 HcmV?d00001