From 6c0b70fac17b4b6b1fdf3a0f76c2315524fbd46e Mon Sep 17 00:00:00 2001 From: Zach Lasiuk Date: Fri, 17 Jan 2025 15:53:58 -0600 Subject: [PATCH] finalized RAG example --- .../aaaaaaRAGexample/_index.md | 37 --- .../aaaaaaRAGexample/llama-chatbot.md | 279 ------------------ .../aaaaaaRAGexample/llama-server.md | 145 --------- .../servers-and-cloud-computing/rag/_demo.md | 17 +- .../{aaaaaaRAGexample => rag}/_next-steps.md | 6 +- .../rag/_review.md | 45 --- .../rag/config-diagram-dark.png | Bin 37241 -> 37465 bytes .../rag/config-diagram.png | Bin 34778 -> 35078 bytes .../partials/demo-components/config-rag.html | 5 +- .../llm-chatbot/javascript--llm-chatbot.html | 32 ++ 10 files changed, 48 insertions(+), 518 deletions(-) delete mode 100644 content/learning-paths/servers-and-cloud-computing/aaaaaaRAGexample/_index.md delete mode 100644 content/learning-paths/servers-and-cloud-computing/aaaaaaRAGexample/llama-chatbot.md delete mode 100644 content/learning-paths/servers-and-cloud-computing/aaaaaaRAGexample/llama-server.md rename content/learning-paths/servers-and-cloud-computing/{aaaaaaRAGexample => rag}/_next-steps.md (79%) delete mode 100644 content/learning-paths/servers-and-cloud-computing/rag/_review.md diff --git a/content/learning-paths/servers-and-cloud-computing/aaaaaaRAGexample/_index.md b/content/learning-paths/servers-and-cloud-computing/aaaaaaRAGexample/_index.md deleted file mode 100644 index f4f925daa7..0000000000 --- a/content/learning-paths/servers-and-cloud-computing/aaaaaaRAGexample/_index.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: RAG example - -minutes_to_complete: 30 - -who_is_this_for: This is an introductory topic for developers interested in running LLMs on Arm-based servers. - -learning_objectives: - - Download and build llama.cpp on your Arm server. - - Download a pre-quantized Llama 3.1 model from Hugging Face. - - Re-quantize the model weights to take advantage of the Arm KleidiAI kernels. - - Compare the pre-quantized Llama 3.1 model weights performance to the re-quantized weights on your Arm CPU. - -prerequisites: - - An AWS Graviton3 c7g.16xlarge instance to test Arm performance optimizations, or any [Arm based instance](/learning-paths/servers-and-cloud-computing/csp/) from a cloud service provider or an on-premise Arm server. - -author_primary: Pareena Verma, Jason Andrews, and Zach Lasiuk - -### Tags -skilllevels: Introductory -subjects: ML -armips: - - Neoverse -operatingsystems: - - Linux -tools_software_languages: - - LLM - - GenAI - - Python - - -### FIXED, DO NOT MODIFY -# ================================================================================ -weight: 1 # _index.md always has weight of 1 to order correctly -layout: "learningpathall" # All files under learning paths have this same wrapper -learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. ---- diff --git a/content/learning-paths/servers-and-cloud-computing/aaaaaaRAGexample/llama-chatbot.md b/content/learning-paths/servers-and-cloud-computing/aaaaaaRAGexample/llama-chatbot.md deleted file mode 100644 index 1f3b41cce7..0000000000 --- a/content/learning-paths/servers-and-cloud-computing/aaaaaaRAGexample/llama-chatbot.md +++ /dev/null @@ -1,279 +0,0 @@ ---- -title: Run a Large Language model (LLM) chatbot on Arm servers -weight: 3 - -### FIXED, DO NOT MODIFY -layout: learningpathall ---- - -## Before you begin -The instructions in this Learning Path are for any Arm server running Ubuntu 22.04 LTS. You need an Arm server instance with at least four cores and 8GB of RAM to run this example. Configure disk storage up to at least 32 GB. The instructions have been tested on an AWS Graviton3 c7g.16xlarge instance. - -## Overview - -Arm CPUs are widely used in traditional ML and AI use cases. In this Learning Path, you learn how to run generative AI inference-based use cases like a LLM chatbot on Arm-based CPUs. You do this by deploying the [Llama-3.1-8B model](https://huggingface.co/cognitivecomputations/dolphin-2.9.4-llama3.1-8b-gguf) on your Arm-based CPU using `llama.cpp`. - -[llama.cpp](https://github.com/ggerganov/llama.cpp) is an open source C/C++ project developed by Georgi Gerganov that enables efficient LLM inference on a variety of hardware - both locally, and in the cloud. - -## About the Llama 3.1 model and GGUF model format - -The [Llama-3.1-8B model](https://huggingface.co/cognitivecomputations/dolphin-2.9.4-llama3.1-8b-gguf) from Meta belongs to the Llama 3.1 model family and is free to use for research and commercial purposes. Before you use the model, visit the Llama [website](https://llama.meta.com/llama-downloads/) and fill in the form to request access. - - -The [Meta Llama 3.1 collection of models](https://github.com/meta-llama/llama-models/blob/main/models/llama3_1/MODEL_CARD.md) perform general natural language processing (NLP) tasks such as text generation. -The Llama 3.1 family of models range in size from 8 billion to 405 billion parameters. The greater the number of parameters, the more information the model can store. This directly affects how well the model understands language and the model's general capabilities. LLMs that run efficiently on CPUs typically have lower numbers of parameters. For this example, the 8 billion (8B) model is ideal for retaining quality chatbot capability while also running efficiently on your Arm-based CPU. - -Traditionally, the training and inference of LLMs has been done on GPUs using full-precision 32-bit (FP32) or half-precision 16-bit (FP16) data type formats for the model parameter and weights. Recently, a new binary model format called GGUF was introduced by the `llama.cpp` team. This new GGUF model format uses compression and quantization techniques that remove the dependency on using FP32 and FP16 data type formats. For example, GGUF supports quantization where model weights that are generally stored as FP16 data types are scaled down to 4-bit integers. This significantly reduces the need for computational resources and the amount of RAM required. These advancements made in the model format and the data types used make Arm CPUs a great fit for running LLM inferences. - -## Install dependencies - -Install the following packages on your Arm based server instance: - -```bash -sudo apt update -sudo apt install make cmake -y -``` - -You also need to install `gcc` on your machine: - -```bash -sudo apt install gcc g++ -y -sudo apt install build-essential -y -``` - -## Download and build llama.cpp - -You are now ready to start building `llama.cpp`. - -Clone the source repository for llama.cpp: - -```bash -git clone https://github.com/ggerganov/llama.cpp -``` - -By default, `llama.cpp` builds for CPU only on Linux and Windows. You don't need to provide any extra switches to build it for the Arm CPU that you run it on. - -Run `make` to build it: - -```bash -cd llama.cpp -make GGML_NO_LLAMAFILE=1 -j$(nproc) -``` - -Check that `llama.cpp` has built correctly by running the help command: - -```bash -./llama-cli -h -``` - -If `llama.cpp` has built correctly on your machine, you will see the help options being displayed. A snippet of the output is shown below: - -```output -usage: ./llama-cli [options] - -general: - - -h, --help, --usage print usage and exit - --version show version and build info - -v, --verbose print verbose information - --verbosity N set specific verbosity level (default: 0) - --verbose-prompt print a verbose prompt before generation (default: false) - --no-display-prompt don't print prompt at generation (default: false) - -co, --color colorise output to distinguish prompt and user input from generations (default: false) - -s, --seed SEED RNG seed (default: -1, use random seed for < 0) - -t, --threads N number of threads to use during generation (default: 4) - -tb, --threads-batch N number of threads to use during batch and prompt processing (default: same as --threads) - -td, --threads-draft N number of threads to use during generation (default: same as --threads) - -tbd, --threads-batch-draft N number of threads to use during batch and prompt processing (default: same as --threads-draft) - --draft N number of tokens to draft for speculative decoding (default: 5) - -ps, --p-split N speculative decoding split probability (default: 0.1) - -lcs, --lookup-cache-static FNAME - path to static lookup cache to use for lookup decoding (not updated by generation) - -lcd, --lookup-cache-dynamic FNAME - path to dynamic lookup cache to use for lookup decoding (updated by generation) - -c, --ctx-size N size of the prompt context (default: 0, 0 = loaded from model) - -n, --predict N number of tokens to predict (default: -1, -1 = infinity, -2 = until context filled) - -b, --batch-size N logical maximum batch size (default: 2048) -``` - - -## Install Hugging Face Hub - -There are a few different ways you can download the Meta Llama-3.1 8B model. In this Learning Path, you download the model from Hugging Face. - -{{% notice Note %}} Use of Llama 3.1 8B model is governed by the Meta license. Before you proceed to download the model, please visit the Llama [website](https://llama.meta.com/llama-downloads/) and fill in the form. {{% /notice %}} - -[Hugging Face](https://huggingface.co/) is an open source AI community where you can host your own AI models, train them and collaborate with others in the community. You can browse through the thousands of models that are available for a variety of use cases like NLP, audio, and computer vision. - -The `huggingface_hub` library provides APIs and tools that let you easily download and fine-tune pre-trained models. You will use `huggingface-cli` to download the [Llama-3.1 8B model](https://huggingface.co/cognitivecomputations/dolphin-2.9.4-llama3.1-8b-gguf). - -Install the required Python packages: - -```bash -sudo apt install python-is-python3 python3-pip python3-venv -y -``` - -Create and activate a Python virtual environment: - -```bash -python -m venv venv -source venv/bin/activate -``` - -Your terminal prompt now has the `(venv)` prefix indicating the virtual environment is active. Use this virtual environment for the remaining commands. - -Install the `huggingface_hub` python library using `pip`: - -```bash -pip install huggingface_hub -``` - -You can now download the model using the huggingface cli: - -```bash -huggingface-cli download cognitivecomputations/dolphin-2.9.4-llama3.1-8b-gguf dolphin-2.9.4-llama3.1-8b-Q4_0.gguf --local-dir . --local-dir-use-symlinks False -``` -Before you proceed and run this model, take a quick look at what `Q4_0` in the model name denotes. - -## Quantization format - -`Q4_0` in the model name refers to the quantization method the model uses. The goal of quantization is to reduce the size of the model (to reduce the memory space required) and faster (to reduce memory bandwidth bottlenecks transferring large amounts of data from memory to a processor). The primary trade-off to keep in mind when reducing a model's size is maintaining quality of performance. Ideally, a model is quantized to meet size and speed requirements while not having a negative impact on performance. - -This model is `llama3.1-8b-Q4_0.gguf`, so what does each component mean in relation to the quantization level? The main thing to note is the number of bits per parameter, which is denoted by 'Q4' in this case or 4-bit integer. As a result, by only using 4 bits per parameter for 8 billion parameters, the model drops to be 4.7Gb in size. - -Here is a quick lookup to the rest of the quantization parts for the Llama-2 model family as it exists today: - -| quantization-method | # of bits per parameter | quantization format (does not apply to quantization method 'IQ') | quantization method specifics | -| ------------------- | ----------------------- | ---------------------------------------------------------------- | ------------------ | -| Q, IQ, F, FP | 2,3,4,5,6,7,8,16,32 | _0, _1, _K | _XXS, _XS, _S, _M, _L | - -Some examples: - -* Q8_0 --> Straightforward quantization method (indicated with _0 or _1), with an 8 bit integer per parameter. -* Q4_K_M --> K-quant method (indicated with _K), with a 4 bit integer per parameter, with the _M quantization mix type used. -* IQ2_XXS --> I-quant method (indicated with _IQ), with the _XXS quantization mix type used. -* F16 --> Using a 16 bit floating point number per parameter (no other quantization method used, only rounding a number if starting from a 32 bit floating point number). - -Each quantization method has a unique approach to quantizing parameters. The deeper technical details of different quantization methodologies are outside the scope of this guide. The main takeaway is that selecting the right model quantization is critical to running an LLM effectively on your hardware, and the most impactful quantization decision is the number of bits per parameter. You will need also need to check you have enough system memory before deploying larger models or models with higher precision/quantization. - -In this guide, you will not use any other quantization methods, because Arm has not made kernel optimizations for other quantization types. - -## Re-quantize the model weights - -To see improvements for Arm optimized kernels, you need to generate a new weights file with rearranged Q4_0 weights. As of [llama.cpp commit 0f1a39f3](https://github.com/ggerganov/llama.cpp/commit/0f1a39f3), Arm has contributed code for three types of GEMV/GEMM kernels corresponding to three processor types: - -* AWS Graviton2, where you only have NEON support (you will see less improvement for these GEMV/GEMM kernels), -* AWS Graviton3, where the GEMV/GEMM kernels exploit both SVE 256 and MATMUL INT8 support, and -* AWS Graviton4, where the GEMV/GEMM kernels exploit NEON/SVE 128 and MATMUL_INT8 support - -To re-quantize optimally for Graviton3, run - -```bash -./llama-quantize --allow-requantize dolphin-2.9.4-llama3.1-8b-Q4_0.gguf dolphin-2.9.4-llama3.1-8b-Q4_0_8_8.gguf Q4_0_8_8 -``` - -This will output a new file, `dolphin-2.9.4-llama3.1-8b-Q4_0_8_8.gguf`, which contains reconfigured weights that allow `llama-cli` to use SVE 256 and MATMUL_INT8 support. - -{{% notice Note %}} -This requantization is optimal only for Graviton3. For Graviton2, requantization should optimally be done in `Q4_0_4_4` format, and for Graviton4, `Q4_0_4_8` is the optimal requantization format. -{{% /notice %}} - -## Compare the pre-quantized Llama-3.1-8B LLM model weights to the optimized weights - -First, run the pre-quantized llama-3.1-8b model exactly as the weights were downloaded from huggingface: - -```bash -./llama-cli -m dolphin-2.9.4-llama3.1-8b-Q4_0.gguf -p "Building a visually appealing website can be done in ten simple steps:" -n 512 -t 64 -``` - -This command will use the downloaded model (`-m` flag), with the specified prompt (`-p` flag), and target a 512 token completion (`-n` flag), using 64 threads (`-t` flag). - -You will see lots of interesting statistics being printed from llama.cpp about the model and the system, followed by the prompt and completion. The tail of the output from running this model on an AWS Graviton3 c7g.16xlarge instance is shown below: - -```output -llm_load_tensors: ggml ctx size = 0.14 MiB -llm_load_tensors: CPU buffer size = 4437.82 MiB -....................................................................................... -llama_new_context_with_model: n_ctx = 131072 -llama_new_context_with_model: n_batch = 2048 -llama_new_context_with_model: n_ubatch = 512 -llama_new_context_with_model: flash_attn = 0 -llama_new_context_with_model: freq_base = 500000.0 -llama_new_context_with_model: freq_scale = 1 -llama_kv_cache_init: CPU KV buffer size = 16384.00 MiB -llama_new_context_with_model: KV self size = 16384.00 MiB, K (f16): 8192.00 MiB, V (f16): 8192.00 MiB -llama_new_context_with_model: CPU output buffer size = 0.49 MiB -llama_new_context_with_model: CPU compute buffer size = 8480.01 MiB -llama_new_context_with_model: graph nodes = 1030 -llama_new_context_with_model: graph splits = 1 - -system_info: n_threads = 64 (n_threads_batch = 64) / 64 | AVX = 0 | AVX_VNNI = 0 | AVX2 = 0 | AVX512 = 0 | AVX512_VBMI = 0 | AVX512_VNNI = 0 | AVX512_BF16 = 0 | FMA = 0 | NEON = 1 | SVE = 1 | ARM_FMA = 1 | F16C = 0 | FP16_VA = 1 | RISCV_VECT = 0 | WASM_SIMD = 0 | BLAS = 0 | SSE3 = 0 | SSSE3 = 0 | VSX = 0 | MATMUL_INT8 = 1 | LLAMAFILE = 0 | -sampling seed: 4210375779 -sampling params: - repeat_last_n = 64, repeat_penalty = 1.000, frequency_penalty = 0.000, presence_penalty = 0.000 - top_k = 40, tfs_z = 1.000, top_p = 0.950, min_p = 0.050, typical_p = 1.000, temp = 0.800 - mirostat = 0, mirostat_lr = 0.100, mirostat_ent = 5.000 -sampler constr: - logits -> logit-bias -> penalties -> top-k -> tail-free -> typical -> top-p -> min-p -> temp-ext -> softmax -> dist -generate: n_ctx = 131072, n_batch = 2048, n_predict = 512, n_keep = 1 - - -Building a visually appealing website can be done in ten simple steps: Plan, design, wireframe, write content, optimize for SEO, choose the right platform, add interactive elements, test and fix bugs, launch, and finally, maintain. These steps are crucial for creating a user-friendly and effective website that attracts visitors and converts them into customers. -1. Planning the Website -Planning is the first and most crucial stage in building a website. It involves determining your target audience, identifying their needs, and outlining what the website will offer them. The planning process also includes setting goals for the website and figuring out how it will be used. This stage is essential as it will guide the design, content, and functionality of your website. -2. Designing the Website -Once you have a clear plan, you can proceed to design the website. The design stage involves creating a visual representation of your website, including its layout, color scheme, typography, and imagery. A well-designed website is crucial for capturing the attention of your target audience and encouraging them to engage with your content. -3. Creating a Wireframe -A wireframe is a simple, low-fidelity version of your website that outlines its structure and layout. It is a critical stage in the website-building process as it helps you visualize how your website will look and function before you invest in the design and development stages. A wireframe also allows you to gather feedback from stakeholders and refine your design before it goes live. -4. Writing Quality Content -Content is the lifeblood of any website. It is essential to create high-quality, engaging, and informative content that resonates with your target audience. The content should be well-researched, optimized for SEO, and written in a style that is easy to understand. It is also essential to keep your content fresh and up-to-date to keep your audience engaged. -5. Optimizing for SEO -Search Engine Optimization (SEO) is the process of optimizing your website to rank higher in search engine results pages (SERPs). It involves optimizing your website's content, structure, and technical aspects to make it more visible and accessible to search engines. SEO is critical for driving organic traffic to your website and increasing its visibility online. -6. Choosing the Right Platform -Choosing the right platform for your website is essential for its success. There are various website-building platforms available, such as WordPress, Squarespace, and Wix. Each platform has its strengths and weaknesses, and it is essential to choose the one that best suits your needs. -7. Adding Interactive Elements -Interactive elements, such as videos, quizzes, and gam -llama_perf_sampler_print: sampling time = 41.44 ms / 526 runs ( 0.08 ms per token, 12692.44 tokens per second) -llama_perf_context_print: load time = 4874.27 ms -llama_perf_context_print: prompt eval time = 87.00 ms / 14 tokens ( 6.21 ms per token, 160.92 tokens per second) -llama_perf_context_print: eval time = 11591.53 ms / 511 runs ( 22.68 ms per token, 44.08 tokens per second) -llama_perf_context_print: total time = 11782.00 ms / 525 tokens -``` - -The `system_info` printed from llama.cpp highlights important architectural features present on your hardware that improve the performance of the model execution. In the output shown above from running on an AWS Graviton3 instance, you will see: - - * NEON = 1 This flag indicates support for Arm's Neon technology which is an implementation of the Advanced SIMD instructions - * ARM_FMA = 1 This flag indicates support for Arm Floating-point Multiply and Accumulate instructions - * MATMUL_INT8 = 1 This flag indicates support for Arm int8 matrix multiplication instructions - * SVE = 1 This flag indicates support for the Arm Scalable Vector Extension - - -The end of the output shows several model timings: - -* load time refers to the time taken to load the model. -* prompt eval time refers to the time taken to process the prompt before generating the new text. In this example, it shows that it evaluated 16 tokens in 1998.79 ms. -* eval time refers to the time taken to generate the output. Generally anything above 10 tokens per second is faster than what humans can read. - -You can compare these timings to the optimized model weights by running: - -```bash -./llama-cli -m dolphin-2.9.4-llama3.1-8b-Q4_0_8_8.gguf -p "Building a visually appealing website can be done in ten simple steps:" -n 512 -t 64 -``` - -This is the same command as before, but with the model file swapped out for the re-quantized file. - -The timings on this one look like: - -```output -llama_perf_sampler_print: sampling time = 41.13 ms / 526 runs ( 0.08 ms per token, 12789.96 tokens per second) -llama_perf_context_print: load time = 4846.73 ms -llama_perf_context_print: prompt eval time = 48.22 ms / 14 tokens ( 3.44 ms per token, 290.32 tokens per second) -llama_perf_context_print: eval time = 11233.92 ms / 511 runs ( 21.98 ms per token, 45.49 tokens per second) -llama_perf_context_print: total time = 11385.65 ms / 525 tokens - -``` - -As you can see, load time improves, but the biggest improvement can be seen in prompt eval times. - -You have successfully run a LLM chatbot with Arm optimizations, all running on your Arm AArch64 CPU on your server. You can continue experimenting and trying out the model with different prompts. - diff --git a/content/learning-paths/servers-and-cloud-computing/aaaaaaRAGexample/llama-server.md b/content/learning-paths/servers-and-cloud-computing/aaaaaaRAGexample/llama-server.md deleted file mode 100644 index 2729e44860..0000000000 --- a/content/learning-paths/servers-and-cloud-computing/aaaaaaRAGexample/llama-server.md +++ /dev/null @@ -1,145 +0,0 @@ ---- -title: Access the chatbot using the OpenAI-compatible API -weight: 4 - -### FIXED, DO NOT MODIFY -layout: learningpathall ---- - -You can use the `llama.cpp` server program and submit requests using an OpenAI-compatible API. -This enables applications to be created which access the LLM multiple times without starting and stopping it. You can also access the server over the network to another machine hosting the LLM. - -One additional software package is required for this section. Install `jq` on your computer using: - -```bash -sudo apt install jq -y -``` - -The server executable has already compiled during the stage detailed in the previous section, when you ran `make`. - -Start the server from the command line, it listens on port 8080: - -```bash -./llama-server -m dolphin-2.9.4-llama3.1-8b-Q4_0_8_8.gguf --port 8080 -``` - -## Use curl - -You can access the API using the `curl` command. - -In another terminal, use a text editor to create a file named `curl-test.sh` with the commands below: - -```bash -curl http://localhost:8080/v1/chat/completions -H "Content-Type: application/json" -d '{ - "model": "any-model", - "messages": [ - { - "role": "system", - "content": "You are a coding assistant, skilled in programming." - }, - { - "role": "user", - "content": "Write a hello world program in C++." - } - ] - }' 2>/dev/null | jq -C -``` - -The `model` value in the API is not used, you can enter any value. This is because there is only one model loaded in the server. - -Run the script: - -```bash -bash ./curl-test.sh -``` - -The `curl` command accesses the LLM and you see the output: - -```output -{ - "choices": [ - { - "finish_reason": "stop", - "index": 0, - "message": { - "content": "#include \n\nint main() {\n std::cout << \"Hello, World!\" << std::endl;\n return 0;\n}", - "role": "assistant" - } - } - ], - "created": 1726252907, - "model": "any-model", - "object": "chat.completion", - "usage": { - "completion_tokens": 30, - "prompt_tokens": 33, - "total_tokens": 63 - }, - "id": "chatcmpl-wh33d82OqWKibRF0s7waublCpl9YytkI" -} -``` - -In the returned JSON data you see the LLM output, including the content created from the prompt. - -## Use Python - -You can also use a Python program to access the OpenAI-compatible API. - -Create a Python `venv`: - -```bash -python -m venv pytest -source pytest/bin/activate -``` - -Install the OpenAI Python package: -```bash -pip install openai==1.45.0 -``` - -Use a text editor to create a file named `python-test.py` with the content below: - -```python -from openai import OpenAI - -client = OpenAI( - base_url='http://localhost:8080/v1', - api_key='no-key' - ) - -completion = client.chat.completions.create( - model="not-used", - messages=[ - {"role": "system", "content": "You are a coding assistant, skilled in programming.."}, - {"role": "user", "content": "Write a hello world program in C++."} - ], - stream=True, -) - -for chunk in completion: - print(chunk.choices[0].delta.content or "", end="") -``` - -Run the Python file (make sure the server is still running): - -```bash -python ./python-test.py -``` - -You see the output generated by the LLM: - -```output -Here's a simple Hello World program in C++: - -```cpp -#include - -int main() { - std::cout << "Hello, World!" << std::endl; - return 0; -} - -This program includes the standard input/output library, `iostream`. It defines a `main` function, which is the entry point of the program. Inside `main`, `std::cout` is used to output the string "Hello, World!" to the console, and then `std::endl` is used to print a new line. The `return 0;` statement indicates that the program exited successfully -``` - -You can continue to experiment with different large language models and write scripts to try them. diff --git a/content/learning-paths/servers-and-cloud-computing/rag/_demo.md b/content/learning-paths/servers-and-cloud-computing/rag/_demo.md index 20af058137..b8f321a74e 100644 --- a/content/learning-paths/servers-and-cloud-computing/rag/_demo.md +++ b/content/learning-paths/servers-and-cloud-computing/rag/_demo.md @@ -2,13 +2,17 @@ title: Run a llama.cpp chatbot powered by Arm Kleidi technology overview: | - Some description of this sucker. + This Arm learning path shows how to use a single c4a-standard-64 Google Axion instance -- powered by an Arm Neoverse CPU -- to build a simple "Token as a Service" RAG-enabled server, used below to provide a chatbot to serve a small number of concurrent users. + + This architecture would be suitable for businesses looking to deploy the latest Generative AI technologies with RAG capabilities using their existing CPU compute capacity and deployment pipelines. It enables semantic search over chunked documents using FAISS vector store. The demo uses the open source llama.cpp framework, which Arm has enhanced by contributing the latest Arm Kleidi technologies. Further optimizations are achieved by using the smaller 8 billion parameter Llama 3.1 model, which has been quantized to optimize memory usage. + + Chat with the Llama-3.1-8B RAG-enabled LLM below to see the performance for yourself, then follow the learning path to build your own Generative AI service on Arm Neoverse. demo_steps: - Type & send a message to the chatbot. - - Receive the chatbot's reply. - - View stats showing how well AWS Graviton runs LLMs. + - Receive the chatbot's reply, including references from RAG data. + - View stats showing how well Google Axion runs LLMs. diagram: config-diagram-dark.png diagram_blowup: config-diagram.png @@ -18,9 +22,10 @@ terms_and_conditions: demo-terms-and-conditions.txt prismjs: true # enable prismjs rendering of code snippets example_user_prompts: - - Do Hyperscan and Snort3 work on Graviton4? - - How can I easily build multi-architecture Docker images? - + - How can I build multi-architecture Docker images? + - How do I test Java performance on Google Axion instances? + + rag_data_cutoff_date: 2025/01/17 title_chatbot_area: Arm RAG Demo diff --git a/content/learning-paths/servers-and-cloud-computing/aaaaaaRAGexample/_next-steps.md b/content/learning-paths/servers-and-cloud-computing/rag/_next-steps.md similarity index 79% rename from content/learning-paths/servers-and-cloud-computing/aaaaaaRAGexample/_next-steps.md rename to content/learning-paths/servers-and-cloud-computing/rag/_next-steps.md index 01f4b230cb..683e14ef4a 100644 --- a/content/learning-paths/servers-and-cloud-computing/aaaaaaRAGexample/_next-steps.md +++ b/content/learning-paths/servers-and-cloud-computing/rag/_next-steps.md @@ -1,6 +1,6 @@ --- next_step_guidance: > - Thank you for completing this Learning path on how to run a LLM chatbot on an Arm-based server. You might be interested in learning how to run a NLP sentiment analysis model on an Arm-based server. + Thank you for completing this Learning path on how to run a RAG-enabled LLM chatbot on an Arm-based server. You might be interested in learning how to run a NLP sentiment analysis model on an Arm-based server. recommended_path: "/learning-paths/servers-and-cloud-computing/nlp-hugging-face/" @@ -17,10 +17,6 @@ further_reading: title: Democratizing Generative AI with CPU-based inference link: https://blogs.oracle.com/ai-and-datascience/post/democratizing-generative-ai-with-cpu-based-inference type: blog - - resource: - title: Llama-2-7B-Chat-GGUF - link: https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF - type: website # ================================================================================ diff --git a/content/learning-paths/servers-and-cloud-computing/rag/_review.md b/content/learning-paths/servers-and-cloud-computing/rag/_review.md deleted file mode 100644 index df0d24aaf6..0000000000 --- a/content/learning-paths/servers-and-cloud-computing/rag/_review.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -review: - - questions: - question: > - What is the primary purpose of using RAG in an LLM chatbot? - answers: - - To reduce the size of the model. - - To enhance the chatbot's responses with contextually-relevant information. - - To increase the training speed of the model. - - To simplify the deployment process. - correct_answer: 2 - explanation: > - RAG (Retrieval Augmented Generation) enhances the chatbot's responses by retrieving and incorporating contextually-relevant information from a vector database. - - - questions: - question: > - Which framework is used to create the web interface for the RAG-based LLM server? - answers: - - Django. - - Flask. - - Streamlit. - - FastAPI. - correct_answer: 3 - explanation: > - Streamlit is used to create the web interface for the RAG-based LLM server, allowing users to interact with the backend. - - - questions: - question: > - What is the role of FAISS in the RAG-based LLM server? - answers: - - To train the LLM model. - - To store and retrieve vectorized documents. - - To handle HTTP requests. - - To manage user authentication. - correct_answer: 2 - explanation: > - FAISS is used to store and retrieve vectorized documents, enabling the RAG-based LLM server to provide contextually relevant responses. - -# ================================================================================ -# FIXED, DO NOT MODIFY -# ================================================================================ -title: "Review" # Always the same title -weight: 6 # Set to always be larger than the content in this path -layout: "learningpathall" # All files under learning paths have this same wrapper ---- diff --git a/content/learning-paths/servers-and-cloud-computing/rag/config-diagram-dark.png b/content/learning-paths/servers-and-cloud-computing/rag/config-diagram-dark.png index 356c8c1abca9715ca570851b0ba517cac09f0b3b..72c2c1fc3f7cd2a162ac57928675aebcd7127e97 100644 GIT binary patch literal 37465 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

f#u|eZSLKt7_Va_`>@)$2~(W9$@r!Ji@SJz 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 literal 37241 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 literal 34778 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 AEC2ui diff --git a/themes/arm-design-system-hugo-theme/layouts/partials/demo-components/config-rag.html b/themes/arm-design-system-hugo-theme/layouts/partials/demo-components/config-rag.html index d5dcac1876..0f266dce4a 100644 --- a/themes/arm-design-system-hugo-theme/layouts/partials/demo-components/config-rag.html +++ b/themes/arm-design-system-hugo-theme/layouts/partials/demo-components/config-rag.html @@ -22,7 +22,10 @@

RAG Vector Store Details

-

This app uses all data on this site, learn.arm.com, as the RAG data set. The Markdown formatted content across Learning Paths and Install Guides was segmented into labeled chunks, and vector embeddings were generated. FAISS is used for the embedded similarity search. The LLM demo below references this vector store for your query.

+

This application uses all data on learn.arm.com + as the RAG dataset. The content across Learning Paths and Install Guides is segmented into labeled chunks, + and vector embeddings are generated. + This LLM demo references the FAISS vector store to answer your query.

Note: Data was sourced on {{.Params.rag_data_cutoff_date}}.

diff --git a/themes/arm-design-system-hugo-theme/layouts/partials/demo-components/llm-chatbot/javascript--llm-chatbot.html b/themes/arm-design-system-hugo-theme/layouts/partials/demo-components/llm-chatbot/javascript--llm-chatbot.html index 8ceb165680..fdbefbf28c 100644 --- a/themes/arm-design-system-hugo-theme/layouts/partials/demo-components/llm-chatbot/javascript--llm-chatbot.html +++ b/themes/arm-design-system-hugo-theme/layouts/partials/demo-components/llm-chatbot/javascript--llm-chatbot.html @@ -232,6 +232,38 @@ const renderer = new marked.Renderer(); + renderer.link = (link) => { + // Extract the link parts + const href = link.href; + const text = link.text; + const title = link.title; + + // Escape href to prevent XSS attacks + const escapedHref = href + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + + // Escape title if it exists + const escapedTitle = title + ? title + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, ''') + : ''; + + // Create the link element with target="_blank" + return ` + + ${text} + + `.replace(/\n\s+/g, ''); // Remove unnecessary newlines and spaces + }; + // Customize the code block rendering renderer.code = (code, language) => { var language = code['lang'];