OpenLLM

OpenLLM: Open Source Library for LLM

10 min


[vc_row][vc_column][vc_headings linewidth=”0″ borderwidth=”1″ borderclr=”#000000″ title=”OpenLLM” google_fonts=”font_family:Comfortaa%3A300%2Cregular%2C700|font_style:700%20bold%20regular%3A700%3Anormal” titlesize=”60″ titleclr=”#000000″]Open Source Library for LLM[/vc_headings][vc_single_image image=”3056″ alignment=”center”][vc_column_text]OpenLLM is an open-source library for large language models. It provides a unified framework for training, deploying, and serving state-of-the-art natural language processing models. OpenLLM is built on top of BentoML, a platform-agnostic model serving solution.[/vc_column_text][vc_separator][/vc_column][/vc_row][vc_row][vc_column][vc_headings style=”theme4″ borderclr=”#000000″ style2=”image” title=”OpenLLM Features” google_fonts=”font_family:Comfortaa%3A300%2Cregular%2C700|font_style:700%20bold%20regular%3A700%3Anormal” lineheight=”3″ titlesize=”40″ titleclr=”#000000″ image_id=”2871″][/vc_headings][evc_icon_with_text type=”icon-left” icon_library=”fontawesome” title_tag=”” icon_fontawesome=”fas fa-shapes” title=”Built-in support for state-of-the-art LLMs” text=”You can use OpenLLM to fine-tune, serve, deploy, and monitor any open-source LLMs and model runtime, including StableLM, Falcon, Dolly, Flan-T5, ChatGLM, StarCoder and more.” text_color=”#0a0000″][evc_icon_with_text type=”icon-left” icon_library=”fontawesome” title_tag=”” icon_fontawesome=”fas fa-plug” title=”Flexible APIs” text=”You can serve LLMs over RESTful API or gRPC with one command, query via WebUI, CLI, our Python/Javascript client, or any HTTP client.” text_color=”#0a0000″][evc_icon_with_text type=”icon-left” icon_library=”fontawesome” title_tag=”” icon_fontawesome=”fas fa-code-branch” title=”Freedom to build” text=”You can easily create your own AI apps by composing LLMs with other models and services. OpenLLM has first-class support for LangChain, BentoML and Hugging Face.” text_color=”#0a0000″][evc_icon_with_text type=”icon-left” icon_library=”fontawesome” title_tag=”” icon_fontawesome=”fas fa-cloud-upload-alt” title=”Streamline deployment” text=”You can automatically generate your LLM server Docker Images or deploy as serverless endpoint via BentoCloud.” text_color=”#0a0000″][evc_icon_with_text type=”icon-left” icon_library=”fontawesome” title_tag=”” icon_fontawesome=”fas fa-cogs” title=”Bring your own LLM” text=”You can fine-tune any LLM to suit your needs with LLM.tuning().” text_color=”#0a0000″][vc_separator color=”sandy_brown” border_width=”3″][/vc_column][/vc_row][vc_row][vc_column][vc_headings style=”theme4″ borderclr=”#000000″ style2=”image” title=”Getting Started 🚀” google_fonts=”font_family:Comfortaa%3A300%2Cregular%2C700|font_style:700%20bold%20regular%3A700%3Anormal” lineheight=”3″ titlesize=”40″ titleclr=”#000000″ image_id=”2854″][/vc_headings][vc_column_text]

OpenLLM requires Python 3.8+ and pip on your system. To avoid package conflicts, use a Virtual Environment.

You can install OpenLLM with the “pip” command :

pip install openllm

To make sure that it is correctly installed, run:

$ openllm -h

Usage: openllm [OPTIONS] COMMAND [ARGS]...

   ██████╗ ██████╗ ███████╗███╗   ██╗██╗     ██╗     ███╗   ███╗
  ██╔═══██╗██╔══██╗██╔════╝████╗  ██║██║     ██║     ████╗ ████║
  ██║   ██║██████╔╝█████╗  ██╔██╗ ██║██║     ██║     ██╔████╔██║
  ██║   ██║██╔═══╝ ██╔══╝  ██║╚██╗██║██║     ██║     ██║╚██╔╝██║
  ╚██████╔╝██║     ███████╗██║ ╚████║███████╗███████╗██║ ╚═╝ ██║
   ╚═════╝ ╚═╝     ╚══════╝╚═╝  ╚═══╝╚══════╝╚══════╝╚═╝     ╚═╝

  An open platform for operating large language models in production.
  Fine-tune, serve, deploy, and monitor any LLMs with ease.

Starting an LLM Server

To launch an LLM server, use the command openllm start. To start an OPT server, for example, you can use:

openllm start opt

[/vc_column_text][vc_message]After this step, you can access a Web UI at http://localhost:3000 to try out the endpoints and sample input prompts.[/vc_message][vc_column_text]You can use the Python client that comes with OpenLLM to communicate with the model. Open another terminal window or a Jupyter notebook and create a client object to start working with the model:

>>> import openllm
>>> client = openllm.client.HTTPClient('http://localhost:3000')
>>> client.query('Explain to me the difference between "further" and "farther"')

Another way to interact with the model is to run the openllm query This allows you to enter queries and get responses from the model directly.:

export OPENLLM_ENDPOINT=http://localhost:3000
openllm query 'Explain to me the difference between "further" and "farther"'

For OpenLLM’s API specifications, visit http://localhost:3000/docs.json.

To serve different model variants, users can provide the --model-id argument, for example:

openllm start flan-t5 --model-id google/flan-t5-large

To view the supported models and variants in OpenLLM, run the openllm models command.

[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]

🧩 Supported Models

OpenLLM supports these models. You need extra dependencies to run some models. Follow these steps to install them:[/vc_column_text][vc_raw_html]JTNDJTIxRE9DVFlQRSUyMGh0bWwlMjBQVUJMSUMlMjAlMjItJTJGJTJGVzNDJTJGJTJGRFREJTIwSFRNTCUyMDQuMDElMkYlMkZFTiUyMiUyMCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGVFIlMkZodG1sNCUyRnN0cmljdC5kdGQlMjIlM0UlMEElM0NodG1sJTNFJTBBJTIwJTIwJTNDaGVhZCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUzQ21ldGElMjBodHRwLWVxdWl2JTNEJTIyQ29udGVudC1UeXBlJTIyJTIwY29udGVudCUzRCUyMnRleHQlMkZodG1sJTNCJTIwY2hhcnNldCUzRHV0Zi04JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTNDbWV0YSUyMG5hbWUlM0QlMjJnZW5lcmF0b3IlMjIlMjBjb250ZW50JTNEJTIyUGhwU3ByZWFkc2hlZXQlMkMlMjBodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZQSFBPZmZpY2UlMkZQaHBTcHJlYWRzaGVldCUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUzQ21ldGElMjBuYW1lJTNEJTIyYXV0aG9yJTIyJTIwY29udGVudCUzRCUyMkJlbG1lY2hyaSUyMEhlY2hhY2huYSUyMiUyMCUyRiUzRSUwQSUyMCUyMCUyMCUyMCUzQ3N0eWxlJTIwdHlwZSUzRCUyMnRleHQlMkZjc3MlMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjBodG1sJTIwJTdCJTIwZm9udC1mYW1pbHklM0FDYWxpYnJpJTJDJTIwQXJpYWwlMkMlMjBIZWx2ZXRpY2ElMkMlMjBzYW5zLXNlcmlmJTNCJTIwZm9udC1zaXplJTNBMTFwdCUzQiUyMGJhY2tncm91bmQtY29sb3IlM0F3aGl0ZSUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMGEuY29tbWVudC1pbmRpY2F0b3IlM0Fob3ZlciUyMCUyQiUyMGRpdi5jb21tZW50JTIwJTdCJTIwYmFja2dyb3VuZCUzQSUyM2ZmZCUzQiUyMHBvc2l0aW9uJTNBYWJzb2x1dGUlM0IlMjBkaXNwbGF5JTNBYmxvY2slM0IlMjBib3JkZXIlM0ExcHglMjBzb2xpZCUyMGJsYWNrJTNCJTIwcGFkZGluZyUzQTAuNWVtJTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwYS5jb21tZW50LWluZGljYXRvciUyMCU3QiUyMGJhY2tncm91bmQlM0FyZWQlM0IlMjBkaXNwbGF5JTNBaW5saW5lLWJsb2NrJTNCJTIwYm9yZGVyJTNBMXB4JTIwc29saWQlMjBibGFjayUzQiUyMHdpZHRoJTNBMC41ZW0lM0IlMjBoZWlnaHQlM0EwLjVlbSUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMGRpdi5jb21tZW50JTIwJTdCJTIwZGlzcGxheSUzQW5vbmUlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjB0YWJsZSUyMCU3QiUyMGJvcmRlci1jb2xsYXBzZSUzQWNvbGxhcHNlJTNCJTIwcGFnZS1icmVhay1hZnRlciUzQWFsd2F5cyUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMC5ncmlkbGluZXMlMjB0ZCUyMCU3QiUyMGJvcmRlciUzQTFweCUyMGRvdHRlZCUyMGJsYWNrJTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwLmdyaWRsaW5lcyUyMHRoJTIwJTdCJTIwYm9yZGVyJTNBMXB4JTIwZG90dGVkJTIwYmxhY2slMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAuYiUyMCU3QiUyMHRleHQtYWxpZ24lM0FjZW50ZXIlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAuZSUyMCU3QiUyMHRleHQtYWxpZ24lM0FjZW50ZXIlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAuZiUyMCU3QiUyMHRleHQtYWxpZ24lM0FyaWdodCUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMC5pbmxpbmVTdHIlMjAlN0IlMjB0ZXh0LWFsaWduJTNBbGVmdCUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMC5uJTIwJTdCJTIwdGV4dC1hbGlnbiUzQXJpZ2h0JTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwLnMlMjAlN0IlMjB0ZXh0LWFsaWduJTNBbGVmdCUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMHRkLnN0eWxlMCUyMCU3QiUyMHZlcnRpY2FsLWFsaWduJTNBYm90dG9tJTNCJTIwYm9yZGVyLWJvdHRvbSUzQW5vbmUlMjAlMjMwMDAwMDAlM0IlMjBib3JkZXItdG9wJTNBbm9uZSUyMCUyMzAwMDAwMCUzQiUyMGJvcmRlci1sZWZ0JTNBbm9uZSUyMCUyMzAwMDAwMCUzQiUyMGJvcmRlci1yaWdodCUzQW5vbmUlMjAlMjMwMDAwMDAlM0IlMjBjb2xvciUzQSUyMzAwMDAwMCUzQiUyMGZvbnQtZmFtaWx5JTNBJTI3Q2FsaWJyaSUyNyUzQiUyMGZvbnQtc2l6ZSUzQTExcHQlM0IlMjBiYWNrZ3JvdW5kLWNvbG9yJTNBd2hpdGUlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjB0aC5zdHlsZTAlMjAlN0IlMjB2ZXJ0aWNhbC1hbGlnbiUzQWJvdHRvbSUzQiUyMGJvcmRlci1ib3R0b20lM0Fub25lJTIwJTIzMDAwMDAwJTNCJTIwYm9yZGVyLXRvcCUzQW5vbmUlMjAlMjMwMDAwMDAlM0IlMjBib3JkZXItbGVmdCUzQW5vbmUlMjAlMjMwMDAwMDAlM0IlMjBib3JkZXItcmlnaHQlM0Fub25lJTIwJTIzMDAwMDAwJTNCJTIwY29sb3IlM0ElMjMwMDAwMDAlM0IlMjBmb250LWZhbWlseSUzQSUyN0NhbGlicmklMjclM0IlMjBmb250LXNpemUlM0ExMXB0JTNCJTIwYmFja2dyb3VuZC1jb2xvciUzQXdoaXRlJTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwdGQuc3R5bGUxJTIwJTdCJTIwdmVydGljYWwtYWxpZ24lM0FtaWRkbGUlM0IlMjB0ZXh0LWFsaWduJTNBbGVmdCUzQiUyMHBhZGRpbmctbGVmdCUzQTE4cHglM0IlMjBib3JkZXItYm90dG9tJTNBMXB4JTIwc29saWQlMjAlMjMwMDAwMDAlMjAlMjFpbXBvcnRhbnQlM0IlMjBib3JkZXItdG9wJTNBMXB4JTIwc29saWQlMjAlMjMwMDAwMDAlMjAlMjFpbXBvcnRhbnQlM0IlMjBib3JkZXItbGVmdCUzQTFweCUyMHNvbGlkJTIwJTIzMDAwMDAwJTIwJTIxaW1wb3J0YW50JTNCJTIwYm9yZGVyLXJpZ2h0JTNBMXB4JTIwc29saWQlMjAlMjMwMDAwMDAlMjAlMjFpbXBvcnRhbnQlM0IlMjB0ZXh0LWRlY29yYXRpb24lM0F1bmRlcmxpbmUlM0IlMjBjb2xvciUzQSUyMzA1NjNDMSUzQiUyMGZvbnQtZmFtaWx5JTNBJTI3Q2FsaWJyaSUyNyUzQiUyMGZvbnQtc2l6ZSUzQTExcHQlM0IlMjBiYWNrZ3JvdW5kLWNvbG9yJTNBd2hpdGUlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjB0aC5zdHlsZTElMjAlN0IlMjB2ZXJ0aWNhbC1hbGlnbiUzQW1pZGRsZSUzQiUyMHRleHQtYWxpZ24lM0FsZWZ0JTNCJTIwcGFkZGluZy1sZWZ0JTNBMThweCUzQiUyMGJvcmRlci1ib3R0b20lM0ExcHglMjBzb2xpZCUyMCUyMzAwMDAwMCUyMCUyMWltcG9ydGFudCUzQiUyMGJvcmRlci10b3AlM0ExcHglMjBzb2xpZCUyMCUyMzAwMDAwMCUyMCUyMWltcG9ydGFudCUzQiUyMGJvcmRlci1sZWZ0JTNBMXB4JTIwc29saWQlMjAlMjMwMDAwMDAlMjAlMjFpbXBvcnRhbnQlM0IlMjBib3JkZXItcmlnaHQlM0ExcHglMjBzb2xpZCUyMCUyMzAwMDAwMCUyMCUyMWltcG9ydGFudCUzQiUyMHRleHQtZGVjb3JhdGlvbiUzQXVuZGVybGluZSUzQiUyMGNvbG9yJTNBJTIzMDU2M0MxJTNCJTIwZm9udC1mYW1pbHklM0ElMjdDYWxpYnJpJTI3JTNCJTIwZm9udC1zaXplJTNBMTFwdCUzQiUyMGJhY2tncm91bmQtY29sb3IlM0F3aGl0ZSUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMHRkLnN0eWxlMiUyMCU3QiUyMHZlcnRpY2FsLWFsaWduJTNBbWlkZGxlJTNCJTIwdGV4dC1hbGlnbiUzQWNlbnRlciUzQiUyMGJvcmRlci1ib3R0b20lM0ExcHglMjBzb2xpZCUyMCUyMzAwMDAwMCUyMCUyMWltcG9ydGFudCUzQiUyMGJvcmRlci10b3AlM0ExcHglMjBzb2xpZCUyMCUyMzAwMDAwMCUyMCUyMWltcG9ydGFudCUzQiUyMGJvcmRlci1sZWZ0JTNBMXB4JTIwc29saWQlMjAlMjMwMDAwMDAlMjAlMjFpbXBvcnRhbnQlM0IlMjBib3JkZXItcmlnaHQlM0ExcHglMjBzb2xpZCUyMCUyMzAwMDAwMCUyMCUyMWltcG9ydGFudCUzQiUyMGZvbnQtd2VpZ2h0JTNBYm9sZCUzQiUyMGNvbG9yJTNBJTIzMDAwMDAwJTNCJTIwZm9udC1mYW1pbHklM0ElMjdTZWdvZSUyMFVJJTI3JTNCJTIwZm9udC1zaXplJTNBMTRwdCUzQiUyMGJhY2tncm91bmQtY29sb3IlM0F3aGl0ZSUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMHRoLnN0eWxlMiUyMCU3QiUyMHZlcnRpY2FsLWFsaWduJTNBbWlkZGxlJTNCJTIwdGV4dC1hbGlnbiUzQWNlbnRlciUzQiUyMGJvcmRlci1ib3R0b20lM0ExcHglMjBzb2xpZCUyMCUyMzAwMDAwMCUyMCUyMWltcG9ydGFudCUzQiUyMGJvcmRlci10b3AlM0ExcHglMjBzb2xpZCUyMCUyMzAwMDAwMCUyMCUyMWltcG9ydGFudCUzQiUyMGJvcmRlci1sZWZ0JTNBMXB4JTIwc29saWQlMjAlMjMwMDAwMDAlMjAlMjFpbXBvcnRhbnQlM0IlMjBib3JkZXItcmlnaHQlM0ExcHglMjBzb2xpZCUyMCUyMzAwMDAwMCUyMCUyMWltcG9ydGFudCUzQiUyMGZvbnQtd2VpZ2h0JTNBYm9sZCUzQiUyMGNvbG9yJTNBJTIzMDAwMDAwJTNCJTIwZm9udC1mYW1pbHklM0ElMjdTZWdvZSUyMFVJJTI3JTNCJTIwZm9udC1zaXplJTNBMTRwdCUzQiUyMGJhY2tncm91bmQtY29sb3IlM0F3aGl0ZSUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMHRkLnN0eWxlMyUyMCU3QiUyMHZlcnRpY2FsLWFsaWduJTNBbWlkZGxlJTNCJTIwdGV4dC1hbGlnbiUzQWxlZnQlM0IlMjBwYWRkaW5nLWxlZnQlM0E5cHglM0IlMjBib3JkZXItYm90dG9tJTNBMXB4JTIwc29saWQlMjAlMjMwMDAwMDAlMjAlMjFpbXBvcnRhbnQlM0IlMjBib3JkZXItdG9wJTNBMXB4JTIwc29saWQlMjAlMjMwMDAwMDAlMjAlMjFpbXBvcnRhbnQlM0IlMjBib3JkZXItbGVmdCUzQTFweCUyMHNvbGlkJTIwJTIzMDAwMDAwJTIwJTIxaW1wb3J0YW50JTNCJTIwYm9yZGVyLXJpZ2h0JTNBMXB4JTIwc29saWQlMjAlMjMwMDAwMDAlMjAlMjFpbXBvcnRhbnQlM0IlMjB0ZXh0LWRlY29yYXRpb24lM0F1bmRlcmxpbmUlM0IlMjBjb2xvciUzQSUyMzA1NjNDMSUzQiUyMGZvbnQtZmFtaWx5JTNBJTI3Q2FsaWJyaSUyNyUzQiUyMGZvbnQtc2l6ZSUzQTExcHQlM0IlMjBiYWNrZ3JvdW5kLWNvbG9yJTNBd2hpdGUlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjB0aC5zdHlsZTMlMjAlN0IlMjB2ZXJ0aWNhbC1hbGlnbiUzQW1pZGRsZSUzQiUyMHRleHQtYWxpZ24lM0FsZWZ0JTNCJTIwcGFkZGluZy1sZWZ0JTNBOXB4JTNCJTIwYm9yZGVyLWJvdHRvbSUzQTFweCUyMHNvbGlkJTIwJTIzMDAwMDAwJTIwJTIxaW1wb3J0YW50JTNCJTIwYm9yZGVyLXRvcCUzQTFweCUyMHNvbGlkJTIwJTIzMDAwMDAwJTIwJTIxaW1wb3J0YW50JTNCJTIwYm9yZGVyLWxlZnQlM0ExcHglMjBzb2xpZCUyMCUyMzAwMDAwMCUyMCUyMWltcG9ydGFudCUzQiUyMGJvcmRlci1yaWdodCUzQTFweCUyMHNvbGlkJTIwJTIzMDAwMDAwJTIwJTIxaW1wb3J0YW50JTNCJTIwdGV4dC1kZWNvcmF0aW9uJTNBdW5kZXJsaW5lJTNCJTIwY29sb3IlM0ElMjMwNTYzQzElM0IlMjBmb250LWZhbWlseSUzQSUyN0NhbGlicmklMjclM0IlMjBmb250LXNpemUlM0ExMXB0JTNCJTIwYmFja2dyb3VuZC1jb2xvciUzQXdoaXRlJTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwdGQuc3R5bGU0JTIwJTdCJTIwdmVydGljYWwtYWxpZ24lM0FtaWRkbGUlM0IlMjB0ZXh0LWFsaWduJTNBbGVmdCUzQiUyMHBhZGRpbmctbGVmdCUzQTlweCUzQiUyMGJvcmRlci1ib3R0b20lM0ExcHglMjBzb2xpZCUyMCUyMzAwMDAwMCUyMCUyMWltcG9ydGFudCUzQiUyMGJvcmRlci10b3AlM0ExcHglMjBzb2xpZCUyMCUyMzAwMDAwMCUyMCUyMWltcG9ydGFudCUzQiUyMGJvcmRlci1sZWZ0JTNBMXB4JTIwc29saWQlMjAlMjMwMDAwMDAlMjAlMjFpbXBvcnRhbnQlM0IlMjBib3JkZXItcmlnaHQlM0ExcHglMjBzb2xpZCUyMCUyMzAwMDAwMCUyMCUyMWltcG9ydGFudCUzQiUyMGNvbG9yJTNBJTIzMDAwMDAwJTNCJTIwZm9udC1mYW1pbHklM0ElMjdDb25zb2xhcyUyNyUzQiUyMGZvbnQtc2l6ZSUzQTEwcHQlM0IlMjBiYWNrZ3JvdW5kLWNvbG9yJTNBd2hpdGUlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjB0aC5zdHlsZTQlMjAlN0IlMjB2ZXJ0aWNhbC1hbGlnbiUzQW1pZGRsZSUzQiUyMHRleHQtYWxpZ24lM0FsZWZ0JTNCJTIwcGFkZGluZy1sZWZ0JTNBOXB4JTNCJTIwYm9yZGVyLWJvdHRvbSUzQTFweCUyMHNvbGlkJTIwJTIzMDAwMDAwJTIwJTIxaW1wb3J0YW50JTNCJTIwYm9yZGVyLXRvcCUzQTFweCUyMHNvbGlkJTIwJTIzMDAwMDAwJTIwJTIxaW1wb3J0YW50JTNCJTIwYm9yZGVyLWxlZnQlM0ExcHglMjBzb2xpZCUyMCUyMzAwMDAwMCUyMCUyMWltcG9ydGFudCUzQiUyMGJvcmRlci1yaWdodCUzQTFweCUyMHNvbGlkJTIwJTIzMDAwMDAwJTIwJTIxaW1wb3J0YW50JTNCJTIwY29sb3IlM0ElMjMwMDAwMDAlM0IlMjBmb250LWZhbWlseSUzQSUyN0NvbnNvbGFzJTI3JTNCJTIwZm9udC1zaXplJTNBMTBwdCUzQiUyMGJhY2tncm91bmQtY29sb3IlM0F3aGl0ZSUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMHRhYmxlLnNoZWV0MCUyMGNvbC5jb2wwJTIwJTdCJTIwd2lkdGglM0E1MC4xNTU1NTQ5OHB0JTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwdGFibGUuc2hlZXQwJTIwY29sLmNvbDElMjAlN0IlMjB3aWR0aCUzQTE2Ni43MzMzMzE0MnB0JTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwdGFibGUuc2hlZXQwJTIwY29sLmNvbDIlMjAlN0IlMjB3aWR0aCUzQTEzMy41MjIyMjA2OXB0JTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwdGFibGUuc2hlZXQwJTIwdHIlMjAlN0IlMjBoZWlnaHQlM0ExNXB0JTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwdGFibGUuc2hlZXQwJTIwdHIucm93MCUyMCU3QiUyMGhlaWdodCUzQTIwLjI1cHQlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjB0YWJsZS5zaGVldDAlMjB0ci5yb3cxOCUyMCU3QiUyMGhlaWdodCUzQTMwcHQlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjB0YWJsZS5zaGVldDAlMjB0ci5yb3cxOSUyMCU3QiUyMGhlaWdodCUzQTMwcHQlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjB0YWJsZS5zaGVldDAlMjB0ci5yb3cyMCUyMCU3QiUyMGhlaWdodCUzQTMwcHQlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjB0YWJsZS5zaGVldDAlMjB0ci5yb3cyMSUyMCU3QiUyMGhlaWdodCUzQTMwcHQlMjAlN0QlMEElMjAlMjAlMjAlMjAlM0MlMkZzdHlsZSUzRSUwQSUyMCUyMCUzQyUyRmhlYWQlM0UlMEElMEElMjAlMjAlM0Nib2R5JTNFJTBBJTNDc3R5bGUlM0UlMEElNDBwYWdlJTIwJTdCJTIwbWFyZ2luLWxlZnQlM0ElMjAwLjdpbiUzQiUyMG1hcmdpbi1yaWdodCUzQSUyMDAuN2luJTNCJTIwbWFyZ2luLXRvcCUzQSUyMDAuNzVpbiUzQiUyMG1hcmdpbi1ib3R0b20lM0ElMjAwLjc1aW4lM0IlMjAlN0QlMEFib2R5JTIwJTdCJTIwbWFyZ2luLWxlZnQlM0ElMjAwLjdpbiUzQiUyMG1hcmdpbi1yaWdodCUzQSUyMDAuN2luJTNCJTIwbWFyZ2luLXRvcCUzQSUyMDAuNzVpbiUzQiUyMG1hcmdpbi1ib3R0b20lM0ElMjAwLjc1aW4lM0IlMjAlN0QlMEElM0MlMkZzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQ3RhYmxlJTIwYm9yZGVyJTNEJTIyMCUyMiUyMGNlbGxwYWRkaW5nJTNEJTIyMCUyMiUyMGNlbGxzcGFjaW5nJTNEJTIyMCUyMiUyMGlkJTNEJTIyc2hlZXQwJTIyJTIwY2xhc3MlM0QlMjJzaGVldDAlMjBncmlkbGluZXMlMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Njb2wlMjBjbGFzcyUzRCUyMmNvbDAlMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Njb2wlMjBjbGFzcyUzRCUyMmNvbDElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Njb2wlMjBjbGFzcyUzRCUyMmNvbDIlMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0Ym9keSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RyJTIwY2xhc3MlM0QlMjJyb3cwJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjAlMjBzdHlsZTIlMjBzJTIyJTNFTW9kZWwlM0MlMkZ0ZCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RkJTIwY2xhc3MlM0QlMjJjb2x1bW4xJTIwc3R5bGUyJTIwcyUyMiUzRUluc3RhbGxhdGlvbiUzQyUyRnRkJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjIlMjBzdHlsZTIlMjBzJTIyJTNFTW9kZWwlMjBJZHMlM0MlMkZ0ZCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnRyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdHIlMjBjbGFzcyUzRCUyMnJvdzElMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ZCUyMGNsYXNzJTNEJTIyY29sdW1uMCUyMHN0eWxlMyUyMHMlMjBzdHlsZTMlMjIlMjByb3dzcGFuJTNEJTIyNSUyMiUzRSUzQ2ElMjBocmVmJTNEJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRmRvY3MlMkZ0cmFuc2Zvcm1lcnMlMkZtb2RlbF9kb2MlMkZmbGFuLXQ1JTIyJTIwdGl0bGUlM0QlMjIlMjIlM0VmbGFuLXQ1JTNDJTJGYSUzRSUzQyUyRnRkJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjElMjBzdHlsZTQlMjBzJTIwc3R5bGU0JTIyJTIwcm93c3BhbiUzRCUyMjUlMjIlM0VwaXAlMjBpbnN0YWxsJTIwJTI2cXVvdCUzQm9wZW5sbG0lNUJmbGFuLXQ1JTVEJTI2cXVvdCUzQiUzQyUyRnRkJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjIlMjBzdHlsZTElMjBzJTIyJTNFJTNDYSUyMGhyZWYlM0QlMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGZ29vZ2xlJTJGZmxhbi10NS1zbWFsbCUyMiUyMHRpdGxlJTNEJTIyJTIyJTNFZ29vZ2xlJTJGZmxhbi10NS1zbWFsbCUzQyUyRmElM0UlM0MlMkZ0ZCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnRyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdHIlMjBjbGFzcyUzRCUyMnJvdzIlMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ZCUyMGNsYXNzJTNEJTIyY29sdW1uMiUyMHN0eWxlMSUyMHMlMjIlM0UlM0NhJTIwaHJlZiUzRCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZnb29nbGUlMkZmbGFuLXQ1LWJhc2UlMjIlMjB0aXRsZSUzRCUyMiUyMiUzRWdvb2dsZSUyRmZsYW4tdDUtYmFzZSUzQyUyRmElM0UlM0MlMkZ0ZCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnRyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdHIlMjBjbGFzcyUzRCUyMnJvdzMlMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ZCUyMGNsYXNzJTNEJTIyY29sdW1uMiUyMHN0eWxlMSUyMHMlMjIlM0UlM0NhJTIwaHJlZiUzRCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZnb29nbGUlMkZmbGFuLXQ1LWxhcmdlJTIyJTIwdGl0bGUlM0QlMjIlMjIlM0Vnb29nbGUlMkZmbGFuLXQ1LWxhcmdlJTNDJTJGYSUzRSUzQyUyRnRkJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGdHIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ciUyMGNsYXNzJTNEJTIycm93NCUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RkJTIwY2xhc3MlM0QlMjJjb2x1bW4yJTIwc3R5bGUxJTIwcyUyMiUzRSUzQ2ElMjBocmVmJTNEJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRmdvb2dsZSUyRmZsYW4tdDUteGwlMjIlMjB0aXRsZSUzRCUyMiUyMiUzRWdvb2dsZSUyRmZsYW4tdDUteGwlM0MlMkZhJTNFJTNDJTJGdGQlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZ0ciUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RyJTIwY2xhc3MlM0QlMjJyb3c1JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjIlMjBzdHlsZTElMjBzJTIyJTNFJTNDYSUyMGhyZWYlM0QlMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGZ29vZ2xlJTJGZmxhbi10NS14eGwlMjIlMjB0aXRsZSUzRCUyMiUyMiUzRWdvb2dsZSUyRmZsYW4tdDUteHhsJTNDJTJGYSUzRSUzQyUyRnRkJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGdHIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ciUyMGNsYXNzJTNEJTIycm93NiUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RkJTIwY2xhc3MlM0QlMjJjb2x1bW4wJTIwc3R5bGUzJTIwcyUyMHN0eWxlMyUyMiUyMHJvd3NwYW4lM0QlMjIzJTIyJTNFJTNDYSUyMGhyZWYlM0QlMjJodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZkYXRhYnJpY2tzbGFicyUyRmRvbGx5JTIyJTIwdGl0bGUlM0QlMjIlMjIlM0Vkb2xseS12MiUzQyUyRmElM0UlM0MlMkZ0ZCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RkJTIwY2xhc3MlM0QlMjJjb2x1bW4xJTIwc3R5bGU0JTIwcyUyMHN0eWxlNCUyMiUyMHJvd3NwYW4lM0QlMjIzJTIyJTNFcGlwJTIwaW5zdGFsbCUyMG9wZW5sbG0lM0MlMkZ0ZCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RkJTIwY2xhc3MlM0QlMjJjb2x1bW4yJTIwc3R5bGUxJTIwcyUyMiUzRSUzQ2ElMjBocmVmJTNEJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRmRhdGFicmlja3MlMkZkb2xseS12Mi0zYiUyMiUyMHRpdGxlJTNEJTIyJTIyJTNFZGF0YWJyaWNrcyUyRmRvbGx5LXYyLTNiJTNDJTJGYSUzRSUzQyUyRnRkJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGdHIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ciUyMGNsYXNzJTNEJTIycm93NyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RkJTIwY2xhc3MlM0QlMjJjb2x1bW4yJTIwc3R5bGUxJTIwcyUyMiUzRSUzQ2ElMjBocmVmJTNEJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRmRhdGFicmlja3MlMkZkb2xseS12Mi03YiUyMiUyMHRpdGxlJTNEJTIyJTIyJTNFZGF0YWJyaWNrcyUyRmRvbGx5LXYyLTdiJTNDJTJGYSUzRSUzQyUyRnRkJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGdHIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ciUyMGNsYXNzJTNEJTIycm93OCUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RkJTIwY2xhc3MlM0QlMjJjb2x1bW4yJTIwc3R5bGUxJTIwcyUyMiUzRSUzQ2ElMjBocmVmJTNEJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRmRhdGFicmlja3MlMkZkb2xseS12Mi0xMmIlMjIlMjB0aXRsZSUzRCUyMiUyMiUzRWRhdGFicmlja3MlMkZkb2xseS12Mi0xMmIlM0MlMkZhJTNFJTNDJTJGdGQlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZ0ciUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RyJTIwY2xhc3MlM0QlMjJyb3c5JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjAlMjBzdHlsZTMlMjBzJTIwc3R5bGUzJTIyJTIwcm93c3BhbiUzRCUyMjMlMjIlM0UlM0NhJTIwaHJlZiUzRCUyMmh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRlRIVURNJTJGQ2hhdEdMTS02QiUyMiUyMHRpdGxlJTNEJTIyJTIyJTNFY2hhdGdsbSUzQyUyRmElM0UlM0MlMkZ0ZCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RkJTIwY2xhc3MlM0QlMjJjb2x1bW4xJTIwc3R5bGU0JTIwcyUyMHN0eWxlNCUyMiUyMHJvd3NwYW4lM0QlMjIzJTIyJTNFcGlwJTIwaW5zdGFsbCUyMCUyNnF1b3QlM0JvcGVubGxtJTVCY2hhdGdsbSU1RCUyNnF1b3QlM0IlM0MlMkZ0ZCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RkJTIwY2xhc3MlM0QlMjJjb2x1bW4yJTIwc3R5bGUxJTIwcyUyMiUzRSUzQ2ElMjBocmVmJTNEJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRnRodWRtJTJGY2hhdGdsbS02YiUyMiUyMHRpdGxlJTNEJTIyJTIyJTNFdGh1ZG0lMkZjaGF0Z2xtLTZiJTNDJTJGYSUzRSUzQyUyRnRkJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGdHIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ciUyMGNsYXNzJTNEJTIycm93MTAlMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ZCUyMGNsYXNzJTNEJTIyY29sdW1uMiUyMHN0eWxlMSUyMHMlMjIlM0UlM0NhJTIwaHJlZiUzRCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZ0aHVkbSUyRmNoYXRnbG0tNmItaW50OCUyMiUyMHRpdGxlJTNEJTIyJTIyJTNFdGh1ZG0lMkZjaGF0Z2xtLTZiLWludDglM0MlMkZhJTNFJTNDJTJGdGQlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZ0ciUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RyJTIwY2xhc3MlM0QlMjJyb3cxMSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RkJTIwY2xhc3MlM0QlMjJjb2x1bW4yJTIwc3R5bGUxJTIwcyUyMiUzRSUzQ2ElMjBocmVmJTNEJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRnRodWRtJTJGY2hhdGdsbS02Yi1pbnQ0JTIyJTIwdGl0bGUlM0QlMjIlMjIlM0V0aHVkbSUyRmNoYXRnbG0tNmItaW50NCUzQyUyRmElM0UlM0MlMkZ0ZCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnRyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdHIlMjBjbGFzcyUzRCUyMnJvdzEyJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjAlMjBzdHlsZTMlMjBzJTIwc3R5bGUzJTIyJTIwcm93c3BhbiUzRCUyMjIlMjIlM0UlM0NhJTIwaHJlZiUzRCUyMmh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRmJpZ2NvZGUtcHJvamVjdCUyRnN0YXJjb2RlciUyMiUyMHRpdGxlJTNEJTIyJTIyJTNFc3RhcmNvZGVyJTNDJTJGYSUzRSUzQyUyRnRkJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjElMjBzdHlsZTQlMjBzJTIwc3R5bGU0JTIyJTIwcm93c3BhbiUzRCUyMjIlMjIlM0VwaXAlMjBpbnN0YWxsJTIwJTI2cXVvdCUzQm9wZW5sbG0lNUJzdGFyY29kZXIlNUQlMjZxdW90JTNCJTNDJTJGdGQlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ZCUyMGNsYXNzJTNEJTIyY29sdW1uMiUyMHN0eWxlMSUyMHMlMjIlM0UlM0NhJTIwaHJlZiUzRCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZiaWdjb2RlJTJGc3RhcmNvZGVyJTIyJTIwdGl0bGUlM0QlMjIlMjIlM0ViaWdjb2RlJTJGc3RhcmNvZGVyJTNDJTJGYSUzRSUzQyUyRnRkJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGdHIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ciUyMGNsYXNzJTNEJTIycm93MTMlMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ZCUyMGNsYXNzJTNEJTIyY29sdW1uMiUyMHN0eWxlMSUyMHMlMjIlM0UlM0NhJTIwaHJlZiUzRCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZiaWdjb2RlJTJGc3RhcmNvZGVyYmFzZSUyMiUyMHRpdGxlJTNEJTIyJTIyJTNFYmlnY29kZSUyRnN0YXJjb2RlcmJhc2UlM0MlMkZhJTNFJTNDJTJGdGQlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZ0ciUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RyJTIwY2xhc3MlM0QlMjJyb3cxNCUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RkJTIwY2xhc3MlM0QlMjJjb2x1bW4wJTIwc3R5bGUzJTIwcyUyMHN0eWxlMyUyMiUyMHJvd3NwYW4lM0QlMjI0JTIyJTNFJTNDYSUyMGhyZWYlM0QlMjJodHRwcyUzQSUyRiUyRmd1aWRhZHkuY29tJTJGZmFsY29uLWxsbSUyRiUyMiUyMHRpdGxlJTNEJTIyJTIyJTNFZmFsY29uJTNDJTJGYSUzRSUzQyUyRnRkJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjElMjBzdHlsZTQlMjBzJTIwc3R5bGU0JTIyJTIwcm93c3BhbiUzRCUyMjQlMjIlM0VwaXAlMjBpbnN0YWxsJTIwJTI2cXVvdCUzQm9wZW5sbG0lNUJmYWxjb24lNUQlMjZxdW90JTNCJTNDJTJGdGQlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ZCUyMGNsYXNzJTNEJTIyY29sdW1uMiUyMHN0eWxlMSUyMHMlMjIlM0UlM0NhJTIwaHJlZiUzRCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZ0aWl1YWUlMkZmYWxjb24tN2IlMjIlMjB0aXRsZSUzRCUyMiUyMiUzRXRpaXVhZSUyRmZhbGNvbi03YiUzQyUyRmElM0UlM0MlMkZ0ZCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnRyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdHIlMjBjbGFzcyUzRCUyMnJvdzE1JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjIlMjBzdHlsZTElMjBzJTIyJTNFJTNDYSUyMGhyZWYlM0QlMjJodHRwcyUzQSUyRiUyRmd1aWRhZHkuY29tJTJGZmFsY29uLTQwYiUyRiUyMiUyMHRpdGxlJTNEJTIyJTIyJTNFdGlpdWFlJTJGZmFsY29uLTQwYiUzQyUyRmElM0UlM0MlMkZ0ZCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnRyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdHIlMjBjbGFzcyUzRCUyMnJvdzE2JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjIlMjBzdHlsZTElMjBzJTIyJTNFJTNDYSUyMGhyZWYlM0QlMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGdGlpdWFlJTJGZmFsY29uLTdiLWluc3RydWN0JTIyJTIwdGl0bGUlM0QlMjIlMjIlM0V0aWl1YWUlMkZmYWxjb24tN2ItaW5zdHJ1Y3QlM0MlMkZhJTNFJTNDJTJGdGQlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZ0ciUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RyJTIwY2xhc3MlM0QlMjJyb3cxNyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RkJTIwY2xhc3MlM0QlMjJjb2x1bW4yJTIwc3R5bGUxJTIwcyUyMiUzRSUzQ2ElMjBocmVmJTNEJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRnRpaXVhZSUyRmZhbGNvbi00MGItaW5zdHJ1Y3QlMjIlMjB0aXRsZSUzRCUyMiUyMiUzRXRpaXVhZSUyRmZhbGNvbi00MGItaW5zdHJ1Y3QlM0MlMkZhJTNFJTNDJTJGdGQlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZ0ciUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RyJTIwY2xhc3MlM0QlMjJyb3cxOCUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RkJTIwY2xhc3MlM0QlMjJjb2x1bW4wJTIwc3R5bGUzJTIwcyUyMHN0eWxlMyUyMiUyMHJvd3NwYW4lM0QlMjI0JTIyJTNFJTNDYSUyMGhyZWYlM0QlMjJodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZTdGFiaWxpdHktQUklMkZTdGFibGVMTSUyMiUyMHRpdGxlJTNEJTIyJTIyJTNFc3RhYmxlbG0lM0MlMkZhJTNFJTNDJTJGdGQlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ZCUyMGNsYXNzJTNEJTIyY29sdW1uMSUyMHN0eWxlNCUyMHMlMjBzdHlsZTQlMjIlMjByb3dzcGFuJTNEJTIyNCUyMiUzRXBpcCUyMGluc3RhbGwlMjBvcGVubGxtJTNDJTJGdGQlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ZCUyMGNsYXNzJTNEJTIyY29sdW1uMiUyMHN0eWxlMSUyMHMlMjIlM0UlM0NhJTIwaHJlZiUzRCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZzdGFiaWxpdHlhaSUyRnN0YWJsZWxtLXR1bmVkLWFscGhhLTNiJTIyJTIwdGl0bGUlM0QlMjIlMjIlM0VzdGFiaWxpdHlhaSUyRnN0YWJsZWxtLXR1bmVkLWFscGhhLTNiJTNDJTJGYSUzRSUzQyUyRnRkJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGdHIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ciUyMGNsYXNzJTNEJTIycm93MTklMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ZCUyMGNsYXNzJTNEJTIyY29sdW1uMiUyMHN0eWxlMSUyMHMlMjIlM0UlM0NhJTIwaHJlZiUzRCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZzdGFiaWxpdHlhaSUyRnN0YWJsZWxtLXR1bmVkLWFscGhhLTdiJTIyJTIwdGl0bGUlM0QlMjIlMjIlM0VzdGFiaWxpdHlhaSUyRnN0YWJsZWxtLXR1bmVkLWFscGhhLTdiJTNDJTJGYSUzRSUzQyUyRnRkJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGdHIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ciUyMGNsYXNzJTNEJTIycm93MjAlMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0ZCUyMGNsYXNzJTNEJTIyY29sdW1uMiUyMHN0eWxlMSUyMHMlMjIlM0UlM0NhJTIwaHJlZiUzRCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZzdGFiaWxpdHlhaSUyRnN0YWJsZWxtLWJhc2UtYWxwaGEtM2IlMjIlMjB0aXRsZSUzRCUyMiUyMiUzRXN0YWJpbGl0eWFpJTJGc3RhYmxlbG0tYmFzZS1hbHBoYS0zYiUzQyUyRmElM0UlM0MlMkZ0ZCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnRyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdHIlMjBjbGFzcyUzRCUyMnJvdzIxJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjIlMjBzdHlsZTElMjBzJTIyJTNFJTNDYSUyMGhyZWYlM0QlMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGc3RhYmlsaXR5YWklMkZzdGFibGVsbS1iYXNlLWFscGhhLTdiJTIyJTIwdGl0bGUlM0QlMjIlMjIlM0VzdGFiaWxpdHlhaSUyRnN0YWJsZWxtLWJhc2UtYWxwaGEtN2IlM0MlMkZhJTNFJTNDJTJGdGQlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZ0ciUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RyJTIwY2xhc3MlM0QlMjJyb3cyMiUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3RkJTIwY2xhc3MlM0QlMjJjb2x1bW4wJTIwc3R5bGUzJTIwcyUyMHN0eWxlMyUyMiUyMHJvd3NwYW4lM0QlMjI2JTIyJTNFJTNDYSUyMGhyZWYlM0QlMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGZG9jcyUyRnRyYW5zZm9ybWVycyUyRm1vZGVsX2RvYyUyRm9wdCUyMiUyMHRpdGxlJTNEJTIyJTIyJTNFb3B0JTNDJTJGYSUzRSUzQyUyRnRkJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjElMjBzdHlsZTQlMjBzJTIwc3R5bGU0JTIyJTIwcm93c3BhbiUzRCUyMjYlMjIlM0VwaXAlMjBpbnN0YWxsJTIwb3BlbmxsbSUzQyUyRnRkJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjIlMjBzdHlsZTElMjBzJTIyJTNFJTNDYSUyMGhyZWYlM0QlMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGZmFjZWJvb2slMkZvcHQtMTI1bSUyMiUyMHRpdGxlJTNEJTIyJTIyJTNFZmFjZWJvb2slMkZvcHQtMTI1bSUzQyUyRmElM0UlM0MlMkZ0ZCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnRyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdHIlMjBjbGFzcyUzRCUyMnJvdzIzJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjIlMjBzdHlsZTElMjBzJTIyJTNFJTNDYSUyMGhyZWYlM0QlMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGZmFjZWJvb2slMkZvcHQtMzUwbSUyMiUyMHRpdGxlJTNEJTIyJTIyJTNFZmFjZWJvb2slMkZvcHQtMzUwbSUzQyUyRmElM0UlM0MlMkZ0ZCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnRyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdHIlMjBjbGFzcyUzRCUyMnJvdzI0JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjIlMjBzdHlsZTElMjBzJTIyJTNFJTNDYSUyMGhyZWYlM0QlMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGZmFjZWJvb2slMkZvcHQtMS4zYiUyMiUyMHRpdGxlJTNEJTIyJTIyJTNFZmFjZWJvb2slMkZvcHQtMS4zYiUzQyUyRmElM0UlM0MlMkZ0ZCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnRyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdHIlMjBjbGFzcyUzRCUyMnJvdzI1JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjIlMjBzdHlsZTElMjBzJTIyJTNFJTNDYSUyMGhyZWYlM0QlMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGZmFjZWJvb2slMkZvcHQtMi43YiUyMiUyMHRpdGxlJTNEJTIyJTIyJTNFZmFjZWJvb2slMkZvcHQtMi43YiUzQyUyRmElM0UlM0MlMkZ0ZCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnRyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdHIlMjBjbGFzcyUzRCUyMnJvdzI2JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjIlMjBzdHlsZTElMjBzJTIyJTNFJTNDYSUyMGhyZWYlM0QlMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGZmFjZWJvb2slMkZvcHQtNi43YiUyMiUyMHRpdGxlJTNEJTIyJTIyJTNFZmFjZWJvb2slMkZvcHQtNi43YiUzQyUyRmElM0UlM0MlMkZ0ZCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnRyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdHIlMjBjbGFzcyUzRCUyMnJvdzI3JTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdGQlMjBjbGFzcyUzRCUyMmNvbHVtbjIlMjBzdHlsZTElMjBzJTIyJTNFJTNDYSUyMGhyZWYlM0QlMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGZmFjZWJvb2slMkZvcHQtNjZiJTIyJTIwdGl0bGUlM0QlMjIlMjIlM0VmYWNlYm9vayUyRm9wdC02NmIlM0MlMkZhJTNFJTNDJTJGdGQlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZ0ciUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRnRib2R5JTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGdGFibGUlM0UlMEElMjAlMjAlM0MlMkZib2R5JTNFJTBBJTNDJTJGaHRtbCUzRQ==[/vc_raw_html][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]

⚙️ Integrations

OpenLLM is more than a single solution; it’s a modular component that can seamlessly connect with other advanced tools.. It currently offer integration with BentoML and LangChain.

BentoML

You can use a Runner to incorporate OpenLLM models into your BentoML service. The Runner has a generate function that accepts a prompt string and produces an output string accordingly. This enables you to easily integrate any OpenLLM models with your current ML pipeline.

import bentoml
import openllm

model = "opt"

llm_config = openllm.AutoConfig.for_model(model)
llm_runner = openllm.Runner(model, llm_config=llm_config)

svc = bentoml.Service(
    name=f"llm-opt-service", runners=[llm_runner]
)

@svc.api(input=Text(), output=Text())
async def prompt(input_text: str) -> str:
    answer = await llm_runner.generate(input_text)
    return answer

Hugging Face Agents

Hugging Face Agents can easily integrate with OpenLLM.

[/vc_column_text][vc_message message_box_color=”warning” icon_fontawesome=”fas fa-exclamation-triangle”]Warning: The Hugging Face Agent is under development and may change frequently. To use the most recent API for the Hugging Face Agent, please run OpenLLM with pip install -r nightly-requirements.generated.txt[/vc_message][vc_column_text]

import transformers

agent = transformers.HfAgent("http://localhost:3000/hf/agent")  # URL that runs the OpenLLM server

agent.run("Is the following `text` positive or negative?", text="I don't like how this models is generate inputs")

[/vc_column_text][vc_message]Agent integration is compatible only withstarcoder. The previous example used four T4s on an EC2 g4dn.12xlargeinstance.[/vc_message][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]

OpenLLM client allows you to interact with the agent that is running. You can use it to pose queries to the agent:

import openllm

client = openllm.client.HTTPClient("http://localhost:3000")

client.ask_agent(
    task="Is the following `text` positive or negative?",
    text="What are you thinking about?",
)

LangChain (⏳Coming Soon!)

Soon, LangChain will let you easily use OpenLLM models with this syntax:

from langchain.llms import OpenLLM
llm = OpenLLM.for_model(model_name='flan-t5')
llm("What is the difference between a duck and a goose?")

To access an existing OpenLLM server from a different location, enter its URL in the following format:

from langchain.llms import OpenLLM
llm = OpenLLM.for_model(server_url='http://localhost:8000', server_type='http')
llm("What is the difference between a duck and a goose?")

🚀 Deploying to Production

To deploy your LLMs to production:

  1. Building a Bento: OpenLLM lets you create a Bento for any model, such as dolly-v2, with the build command.:

    openllm build dolly-v2

    BentoML distributes your program as a Bento. A Bento contains your source code, models, files, artifacts, and dependencies.

  2. Containerize your Bento

    bentoml containerize <name:version>

    BentoML provides a flexible and robust framework for building and deploying ML services online. For more details, see the Deploying a Bento guide.

🍇 Telemetry

To improve the product and user experience, OpenLLM tracks usage data. We only send internal API calls from OpenLLM and protect your privacy by not including any sensitive information. We do not collect any user code, model data, or stack traces. See the code for usage tracking.

To disable usage tracking, use the --do-not-track option in the CLI:

openllm [command] --do-not-track

Or by tweaking the environment variable OPENLLM_DO_NOT_TRACK=True:

export OPENLLM_DO_NOT_TRACK=True

[/vc_column_text][vc_headings style=”theme5″ borderclr=”#000000″ title=”Project External Links” use_theme_fonts=”yes” titleclr=”#000000″ icon=”fas fa-external-link-square-alt” iconclr=”#000000″][/vc_headings][/vc_column][/vc_row][vc_row][vc_column width=”1/2″][mvc_advanced_button align=”center” btn_text=”Github” icon_size=”25″ use_theme_fonts=”yes” btn_icon=”fab fa-github” btn_url=”url:https%3A%2F%2Fgithub.com%2Fbentoml%2FOpenLLM|target:_blank” btn_clr=”#ffffff” btn_bg=”#0a0a0a” btn_radius=”50″][/vc_column][vc_column width=”1/2″][mvc_advanced_button align=”center” btn_text=”Discord” icon_size=”25″ use_theme_fonts=”yes” btn_url=”url:https%3A%2F%2Fl.bentoml.com%2Fjoin-openllm-discord|target:_blank” btn_clr=”#ffffff” btn_bg=”#7289da” btn_radius=”50″ btn_icon=”fas fa-bullhorn”][/vc_column][/vc_row]

Comments

comments


Like it? Share with your friends!

0

0 Comments

Your email address will not be published. Required fields are marked *

Belmechri

I am an IT engineer, content creator, and proud father with a passion for innovation and excellence. In both my personal and professional life, I strive for excellence and am committed to finding innovative solutions to complex problems.