Show HN: Panza: A personal email assistant, trained and running on-device

https://github.com/IST-DASLab/PanzaMail

panza demo

Panza: A personal email assistant, trained and running on-device

What is Panza?

Panza is an automated email assistant customized to your writing style and past email history.
Its main features are as follows:

  • Panza produces a fine-tuned LLM that matches your writing style, pairing it with a Retrieval-Augmented Generation (RAG) component which helps it produce relevant emails.
  • Panza can be trained and run entirely locally. Currently, it requires a single GPU with 16-24 GiB of memory, but we also plan to release a CPU-only version. At no point in training or execution is your data shared with the entities that trained the original LLMs, with LLM distribution services such as Huggingface, or with us.
  • Training and execution are also quick - for a dataset on the order of 1000 emails, training Panza takes well under an hour, and generating a new email takes a few seconds at most.

panza logo

Prerequisites

  • Your emails, exported to mbox format (see tutorial below).
  • A computer, preferably with a NVIDIA GPU with at least 24 GiB of memory (alternatively, check out running in Google Colab).
  • A Hugging Face account to download the models (free of charge).
  • [Optional] A Weights & Biases account to log metrics during training (free of charge).
  • Basic Python and Unix knowledge, such as building environments and running python scripts.
  • No prior LLMs experience is needed.

How it works

📽️ Step 1: Data playback

For most email clients, it is possible to download a user's past emails in a machine-friendly .mbox format. For example, GMail allows you to do this via Google Takeout, whereas Thunderbird allows one to do this via various plugins.

One key part of Panza is a dataset-generation technique we call data playback: Given some of your past emails in .mbox format, we automatically create a training set for Panza by using a pretrained LLM to summarize the emails in instruction form; each email becomes a (synthetic instruction, real email) pair. Given a dataset consisting of all pairs, we use these pairs to "play back" your sent emails: the LLM receives only the instruction, and has to generate the "ground truth" email as a training target.

We find that this approach is very useful for the LLM to "learn" the user's writing style.

🏋️ Step 2: Local Fine-Tuning via Robust Adaptation (RoSA)

We then use parameter-efficient finetuning to train the LLM on this dataset, locally. We found that we get the best results with the RoSA method, which combines low-rank (LoRA) and sparse finetuning. If parameter efficiency is not a concern, that is, you have a more powerful GPU, then regular, full-rank/full-parameter finetuning can also be used. We find that a moderate amount of further training strikes the right balance between matching the writer's style without memorizing irrelevant details in past emails.

🦉 Step 3: Serving via RAG

Once we have a custom user model, Panza can be run locally together with a Retrieval-Augmented Generation (RAG) module. Specifically, this functionality stores past emails in a database and provides a few relevant emails as context for each new query. This allows Panza to better insert specific details, such as a writer's contact information or frequently used Zoom links.

The overall structure of Panza is as follows:

panza logo

Installation

Conda

  1. Make sure you have a version of conda installed.
  2. Run source prepare_env.sh. This script will create a conda environment named panza and install the required packages.

Docker

As an alternative to the conda option above, you can run the following commands to pull a docker image with all the dependencies installed.

docker pull istdaslab/panzamail

or alternatively, you can build the image yourself:

docker build . -f Dockerfile -t istdaslab/panzamail

Then run it with:

docker run -it --gpus all istdaslab/panzamail /bin/bash

In the docker you can activate the panza environment with:

micromamba activate panza

🚀 Getting started

To quickly get started with building your own personalized email assistant, follow the steps bellow:

Step 0: Download your sent emails

Expand for detailed download instructions.

We provide a description for doing this for GMail via Google Takeout.

  1. Go to https://takeout.google.com/.
  2. Click Deselect all.
  3. Find Mail section (search for the phrase Messages and attachments in your Gmail account in MBOX format).
  4. Select it.
  5. Click on All Mail data included and deselect everything except Sent.
  6. Scroll to the bottom of the page and click Next step.
  7. Click on Create export.
  8. Wait for download link to arrive in your inbox.
  9. Download Sent.mbox and place it in the data/ directory.

For Outlook accounts, we suggest doing this via a Thunderbird plugin for exporting a subset of your email as an MBOX format, such as this add-on.

At the end of this step you should have the downloaded emails placed inside data/Sent.mbox.

Step 1: Environment configuration

Panza is configured through a set of environment variables defined in scripts/config.sh and shared along all running scripts.

The LLM prompt is controlled by a set of prompt_preambles that give the model more insight about its role, the user and how to reuse existing emails for Retrieval-Augmented Generation (RAG). See more details in the prompting section.

⚠️ Before continuing, make sure you complete the following setup:

  • Modifiy the environment variable PANZA_EMAIL_ADDRESS inside scripts/config.sh with your own email address.
  • Modifiy prompt_preambles/user_preamble.txt with your own information. If you choose, this can even be empty.
  • Login to Hugging Face to be able to download pretrained models: huggingface-cli login.
  • [Optional] Login to Weights & Biases to log metrics during training: wandb login. Then, set PANZA_WANDB_DISABLED=False in scripts/config.sh.

You are now ready to move to scripts.

Step 2: Extract emails

  1. Run ./extract_emails.sh. This extracts your emails in text format to data/<username>_clean.jsonl which you can manually inspect.

  2. If you wish to eliminate any emails from the training set (e.g. containing certain personal information), you can simply remove the corresponding rows.

Step 3: Prepare dataset

  1. Simply run ./prepare_dataset.sh.

    This scripts takes care of all the prerequisites before training (expand for details).
    • Creates synthetic prompts for your emails as described in the data playback section. The results are stored in data/<username>_clean_summarized.jsonl and you can inspect the "summary" field.
    • Splits data into training and test subsets. See data/train.jsonl and data/test.jsonl.
    • Creates a vector database from the embeddings of the training emails which will later be used for Retrieval-Augmented Generation (RAG). See data/<username>.pkl and data/<username>.faiss.

Step 4: Train a LLM on your emails

We currently support LLaMA3-8B-Instruct and Mistral-Instruct-v0.2 LLMs as base models; the former is the default, but we obtained good results with either model.

  1. [Recommended] For parameter efficient fine-tuning, run ./train_rosa.sh.
    If a larger GPU is available and full-parameter fine-tuning is possible, run ./train_fft.sh.

  2. We have prepopulated the training scripts with parameter values that worked best for us. We recommend you try those first, but you can also experiment with different hyper-parameters by passing extra arguments to the training script, such as LR, LORA_LR, NUM_EPOCHS. All the trained models are saved in the checkpoints directory.

Examples:

./train_rosa.sh                                   # Will use the default parameters.
./train_rosa.sh LR=1e-6 LORA_LR=1e-6 NUM_EPOCHS=7 # Will override LR, LORA_LR, and NUM_EPOCHS.

Step 5: Launch Panza!

  1. Run ./run_panza_gui.sh MODEL=<path-to-your-trained-model> to serve the trained model in a friendly GUI.
    Alternatively, if you prefer using the CLI to interact with Panza, run ./run_panza_cli.sh instead.

You can experiment with the following arguments:

  • If MODEL is not specified, it will use a pretrained Meta-Llama-3-8B-Instruct model by default, although Panza also works with Mistral-7B-Instruct-v2. Try it out to compare the syle difference!
  • To disable RAG, run with PANZA_DISABLE_RAG_INFERENCE=1.

Example:

./run_panza_gui.sh \
  MODEL=/local/path/to/this/repo/checkpoints/models/panza-rosa_1e-6-seed42_7908 \
  PANZA_DISABLE_RAG_INFERENCE=0  # this is the default behaviour, so you can omit it

📧 Have fun with your new email writing assistant! 📧

☁️ Try out Panza in Google Colab

  • You can run Panza in a Google Colab instance Open In Colab.

🔬 Advanced usage

Privacy Statement

The goal of Panza is to give users full control of their data and models trained on it. As such, no part of Panza, including the Chrome/GMail plugin collects any information about its users, outside of the normal summary statistics collected by Github and Google (such as the number of stars/forks/downloads). If you choose to run any part of Panza on a hosted service, e.g., on Amazon Web Services or Google Colab, we take no responsibility for any data collection or data breaches that may occur. Additionally, running the Panza web client or the GUI interface (via Gradio) risks providing unauthorized access to the models. Please use at your own risk.

Authors

Panza was conceived by Nir Shavit and Dan Alistarh and built by the Distributed Algorithms and Systems group at IST Austria. The contributors are (in alphabetical order):

Dan Alistarh, Eugenia Iofinova, Eldar Kurtic, Ilya Markov, Armand Nicolicioiu, Mahdi Nikdan, Andrei Panferov, and Nir Shavit.

Contact: [email protected]

We thank our collaborators Michael Goin and Tony Wang at NeuralMagic and MIT for their helpful testing and feedback.

{
"by": "eldar_ciki",
"descendants": 5,
"id": 40241544,
"kids": [
40251491,
40256181,
40249091
],
"score": 49,
"text": "Tired of crafting well-polished emails and wish you had an assistant to take over the hard work while mimicking your writing style? Introducing Panza, a personalized LLM email assistant that runs entirely on your device! Choose between Llama-3 or Mistral, tailor it to your unique style, and let it write the emails for you. Take a look at our demo and give it a try on your emails at: <a href=\"https:&#x2F;&#x2F;github.com&#x2F;IST-DASLab&#x2F;PanzaMail\">https:&#x2F;&#x2F;github.com&#x2F;IST-DASLab&#x2F;PanzaMail</a><p>Some technical details about Panza:<p>- Panza is an automated email assistant customized to your writing style and past email history.<p>- Panza produces a fine-tuned LLM that matches your writing style, pairing it with a Retrieval-Augmented Generation (RAG) component which helps it produce relevant emails.<p>- Panza *can be trained and run entirely locally*. Currently, it requires a single GPU with 16-24 GiB of memory, but we also plan to release a CPU-only version.<p>- Training and execution are also quick - for a dataset on the order of 1000 emails, training Panza takes well under an hour, and generating a new email takes a few seconds at most.",
"time": 1714685264,
"title": "Show HN: Panza: A personal email assistant, trained and running on-device",
"type": "story",
"url": "https://github.com/IST-DASLab/PanzaMail"
}
{
"author": "IST-DASLab",
"date": null,
"description": "Contribute to IST-DASLab/PanzaMail development by creating an account on GitHub.",
"image": "https://opengraph.githubassets.com/fe10da7b9fca3c1199065ec4c95338817e1b97cfade244c9a5f273da13689b1a/IST-DASLab/PanzaMail",
"logo": "https://logo.clearbit.com/github.com",
"publisher": "GitHub",
"title": "GitHub - IST-DASLab/PanzaMail",
"url": "https://github.com/IST-DASLab/PanzaMail"
}
{
"url": "https://github.com/IST-DASLab/PanzaMail",
"title": "GitHub - IST-DASLab/PanzaMail",
"description": "Panza: A personal email assistant, trained and running on-device What is Panza? Panza is an automated email assistant customized to your writing style and past email history. Its main features are as...",
"links": [
"https://github.com/IST-DASLab/PanzaMail"
],
"image": "https://opengraph.githubassets.com/fe10da7b9fca3c1199065ec4c95338817e1b97cfade244c9a5f273da13689b1a/IST-DASLab/PanzaMail",
"content": "<div><article><p><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail/blob/main/panza_logo.png\"><img src=\"https://github.com/IST-DASLab/PanzaMail/raw/main/panza_logo.png\" alt=\"panza demo\" /></a>\n</p>\n<p></p><h2>Panza: A personal email assistant, trained and running on-device</h2><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#panza-a-personal-email-assistant-trained-and-running-on-device\"></a><p></p>\n<p></p><h2>What is Panza?</h2><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#what-is-panza\"></a><p></p>\n<p>Panza is an automated email assistant customized to your writing style and past email history. <br />\nIts main features are as follows:</p>\n<ul>\n<li>Panza produces a fine-tuned LLM that matches your writing style, pairing it with a Retrieval-Augmented Generation (RAG) component which helps it produce relevant emails.</li>\n<li>Panza <strong>can be trained and run entirely locally</strong>. Currently, it requires a single GPU with\n16-24 GiB of memory, but we also plan to release a CPU-only version. <strong>At no point in training or execution is your data shared with the entities that trained the original LLMs, with LLM distribution services such as Huggingface, or with us.</strong></li>\n<li>Training and execution are also quick - for a dataset on the order of 1000 emails, training Panza takes well under an hour, and generating a new email takes a few seconds at most.</li>\n</ul>\n<p><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail/blob/main/panza_demo.gif\"><img src=\"https://github.com/IST-DASLab/PanzaMail/raw/main/panza_demo.gif\" alt=\"panza logo\" /></a>\n</p>\n<p></p><h2>Prerequisites</h2><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#prerequisites\"></a><p></p>\n<ul>\n<li>Your emails, exported to <code>mbox</code> format (see tutorial below).</li>\n<li>A computer, preferably with a NVIDIA GPU with at least 24 GiB of memory (alternatively, check out <a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#cloud-try-out-panza-in-google-colab\">running in Google Colab</a>).</li>\n<li>A Hugging Face <a target=\"_blank\" href=\"https://huggingface.co/login\">account</a> to download the models (free of charge).</li>\n<li>[Optional] A Weights &amp; Biases <a target=\"_blank\" href=\"https://wandb.ai/login\">account</a> to log metrics during training (free of charge).</li>\n<li>Basic Python and Unix knowledge, such as building environments and running python scripts.</li>\n<li><em>No prior LLMs experience is needed</em>.</li>\n</ul>\n<p></p><h2>How it works</h2><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#how-it-works\"></a><p></p>\n<p></p><h3>📽️ Step 1: Data playback</h3><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#film_projector-step-1-data-playback\"></a><p></p>\n<p>For most email clients, it is possible to download a user's past emails in a machine-friendly .mbox format. For example, GMail allows you to do this via <a target=\"_blank\" href=\"https://takeout.google.com/\">Google Takeout</a>, whereas Thunderbird allows one to do this via various plugins.</p>\n<p>One key part of Panza is a dataset-generation technique we call <strong>data playback</strong>: Given some of your past emails in .mbox format, we automatically create a training set for Panza by using a pretrained LLM to summarize the emails in instruction form; each email becomes a <code>(synthetic instruction, real email)</code> pair.\nGiven a dataset consisting of all pairs, we use these pairs to \"play back\" your sent emails: the LLM receives only the instruction, and has to generate the \"ground truth\" email as a training target.</p>\n<p>We find that this approach is very useful for the LLM to \"learn\" the user's writing style.</p>\n<p></p><h3>🏋️ Step 2: Local Fine-Tuning via Robust Adaptation (RoSA)</h3><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#weight_lifting-step-2-local-fine-tuning-via-robust-adaptation-rosa\"></a><p></p>\n<p>We then use parameter-efficient finetuning to train the LLM on this dataset, locally. We found that we get the best results with the <a target=\"_blank\" href=\"https://arxiv.org/pdf/2401.04679.pdf\">RoSA method</a>, which combines low-rank (LoRA) and sparse finetuning. If parameter efficiency is not a concern, that is, you have a more powerful GPU, then regular, full-rank/full-parameter finetuning can also be used. We find that a moderate amount of further training strikes the right balance between matching the writer's style without memorizing irrelevant details in past emails.</p>\n<p></p><h3>🦉\tStep 3: Serving via RAG</h3><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#owlstep-3-serving-via-rag\"></a><p></p>\n<p>Once we have a custom user model, Panza can be run locally together with a Retrieval-Augmented Generation (RAG) module. Specifically, this functionality stores past emails in a database and provides a few relevant emails as context for each new query. This allows Panza to better insert specific details, such as a writer's contact information or frequently used Zoom links.</p>\n<p>The overall structure of Panza is as follows:</p>\n<p><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail/blob/main/panza_diagram.png\"><img src=\"https://github.com/IST-DASLab/PanzaMail/raw/main/panza_diagram.png\" alt=\"panza logo\" /></a>\n</p>\n<p></p><h2>Installation</h2><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#installation\"></a><p></p>\n<p></p><h3>Conda</h3><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#conda\"></a><p></p>\n<ol>\n<li>Make sure you have a version of <a target=\"_blank\" href=\"https://docs.anaconda.com/free/miniconda/miniconda-install/\">conda</a> installed.</li>\n<li>Run <code>source prepare_env.sh</code>. This script will create a conda environment named <code>panza</code> and install the required packages.</li>\n</ol>\n<p></p><h3>Docker</h3><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#docker\"></a><p></p>\n<p>As an alternative to the conda option above, you can run the following commands to pull a docker image with all the dependencies installed.</p>\n<div><pre><code>docker pull istdaslab/panzamail\n</code></pre></div>\n<p>or alternatively, you can build the image yourself:</p>\n<div><pre><code>docker build . -f Dockerfile -t istdaslab/panzamail\n</code></pre></div>\n<p>Then run it with:</p>\n<div><pre><code>docker run -it --gpus all istdaslab/panzamail /bin/bash\n</code></pre></div>\n<p>In the docker you can activate the <code>panza</code> environment with:</p>\n<div><pre><code>micromamba activate panza\n</code></pre></div>\n<p></p><h2>🚀 Getting started</h2><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#rocket-getting-started\"></a><p></p>\n<p>To quickly get started with building your own personalized email assistant, follow the steps bellow:</p>\n<p></p><h3>Step 0: Download your sent emails</h3><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#step-0-download-your-sent-emails\"></a><p></p>\n<details>\n <summary> Expand for detailed download instructions.</summary>\n<p>We provide a description for doing this for GMail via Google Takeout.</p>\n<ol>\n<li>Go to <a target=\"_blank\" href=\"https://takeout.google.com/\">https://takeout.google.com/</a>.</li>\n<li>Click <code>Deselect all</code>.</li>\n<li>Find <code>Mail</code> section (search for the phrase <code>Messages and attachments in your Gmail account in MBOX format</code>).</li>\n<li>Select it.</li>\n<li>Click on <code>All Mail data included</code> and deselect everything except <code>Sent</code>.</li>\n<li>Scroll to the bottom of the page and click <code>Next step</code>.</li>\n<li>Click on <code>Create export</code>.</li>\n<li>Wait for download link to arrive in your inbox.</li>\n<li>Download <code>Sent.mbox</code> and place it in the <code>data/</code> directory.</li>\n</ol>\n<p>For Outlook accounts, we suggest doing this via a Thunderbird plugin for exporting a subset of your email as an MBOX format, such as <a target=\"_blank\" href=\"https://addons.thunderbird.net/en-us/thunderbird/addon/importexporttools-ng/\">this add-on</a>.</p>\n</details>\n<p>At the end of this step you should have the downloaded emails placed inside <code>data/Sent.mbox</code>.</p>\n<p></p><h3>Step 1: Environment configuration</h3><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#step-1-environment-configuration\"></a><p></p>\n<p>Panza is configured through a set of environment variables defined in <code>scripts/config.sh</code> and shared along all running scripts.</p>\n<p>The LLM prompt is controlled by a set of <code>prompt_preambles</code> that give the model more insight about its role, the user and how to reuse existing emails for <em>Retrieval-Augmented Generation (RAG)</em>. See more details in the <a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail/blob/main/prompt_preambles/README.md\">prompting section</a>.</p>\n<p>⚠️ Before continuing, make sure you complete the following setup:</p>\n<ul>\n<li>Modifiy the environment variable <code>PANZA_EMAIL_ADDRESS</code> inside <code>scripts/config.sh</code> with your own email address.</li>\n<li>Modifiy <code>prompt_preambles/user_preamble.txt</code> with your own information. If you choose, this can even be empty.</li>\n<li>Login to Hugging Face to be able to download pretrained models: <code>huggingface-cli login</code>.</li>\n<li>[Optional] Login to Weights &amp; Biases to log metrics during training: <code>wandb login</code>. Then, set <code>PANZA_WANDB_DISABLED=False</code> in <code>scripts/config.sh</code>.</li>\n</ul>\n<p>You are now ready to move to <code>scripts</code>.</p>\n<p></p><h3>Step 2: Extract emails</h3><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#step-2-extract-emails\"></a><p></p>\n<ol>\n<li>\n<p>Run <code>./extract_emails.sh</code>. This extracts your emails in text format to <code>data/&lt;username&gt;_clean.jsonl</code> which you can manually inspect.</p>\n</li>\n<li>\n<p>If you wish to eliminate any emails from the training set (e.g. containing certain personal information), you can simply remove the corresponding rows.</p>\n</li>\n</ol>\n<p></p><h3>Step 3: Prepare dataset</h3><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#step-3-prepare-dataset\"></a><p></p>\n<ol>\n<li>\n<p>Simply run <code>./prepare_dataset.sh</code>.</p><details>\n <summary> This scripts takes care of all the prerequisites before training (expand for details). </summary>\n<ul>\n<li>Creates synthetic prompts for your emails as described in the <a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#film_projector-step-1-data-playback\">data playback</a> section. The results are stored in <code>data/&lt;username&gt;_clean_summarized.jsonl</code> and you can inspect the <code>\"summary\"</code> field.</li>\n<li>Splits data into training and test subsets. See <code>data/train.jsonl</code> and <code>data/test.jsonl</code>.</li>\n<li>Creates a vector database from the embeddings of the training emails which will later be used for <em>Retrieval-Augmented Generation (RAG)</em>. See <code>data/&lt;username&gt;.pkl</code> and <code>data/&lt;username&gt;.faiss</code>.</li>\n</ul>\n </details>\n</li>\n</ol>\n<p></p><h3>Step 4: Train a LLM on your emails</h3><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#step-4-train-a-llm-on-your-emails\"></a><p></p>\n<p>We currently support <code>LLaMA3-8B-Instruct</code> and <code>Mistral-Instruct-v0.2</code> LLMs as base models; the former is the default, but we obtained good results with either model.</p>\n<ol>\n<li>\n<p>[Recommended] For parameter efficient fine-tuning, run <code>./train_rosa.sh</code>.<br />\nIf a larger GPU is available and full-parameter fine-tuning is possible, run <code>./train_fft.sh</code>.</p>\n</li>\n<li>\n<p>We have prepopulated the training scripts with parameter values that worked best for us. We recommend you try those first, but you can also experiment with different hyper-parameters by passing extra arguments to the training script, such as <code>LR</code>, <code>LORA_LR</code>, <code>NUM_EPOCHS</code>. All the trained models are saved in the <code>checkpoints</code> directory.</p>\n</li>\n</ol>\n<p>Examples:</p>\n<div><pre>./train_rosa.sh <span><span>#</span> Will use the default parameters.</span>\n./train_rosa.sh LR=1e-6 LORA_LR=1e-6 NUM_EPOCHS=7 <span><span>#</span> Will override LR, LORA_LR, and NUM_EPOCHS.</span></pre></div>\n<p></p><h3>Step 5: Launch Panza!</h3><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#step-5-launch-panza\"></a><p></p>\n<ol>\n<li>Run <code>./run_panza_gui.sh MODEL=&lt;path-to-your-trained-model&gt;</code> to serve the trained model in a friendly GUI.<br />\nAlternatively, if you prefer using the CLI to interact with Panza, run <code>./run_panza_cli.sh</code> instead.</li>\n</ol>\n<p>You can experiment with the following arguments:</p>\n<ul>\n<li>If <code>MODEL</code> is not specified, it will use a pretrained <code>Meta-Llama-3-8B-Instruct</code> model by default, although Panza also works with <code>Mistral-7B-Instruct-v2</code>. Try it out to compare the syle difference!</li>\n<li>To disable RAG, run with <code>PANZA_DISABLE_RAG_INFERENCE=1</code>.</li>\n</ul>\n<p>Example:</p>\n<div><pre>./run_panza_gui.sh \\\n MODEL=/local/path/to/this/repo/checkpoints/models/panza-rosa_1e-6-seed42_7908 \\\n PANZA_DISABLE_RAG_INFERENCE=0 <span><span>#</span> this is the default behaviour, so you can omit it</span></pre></div>\n<p>📧 <strong>Have fun with your new email writing assistant!</strong> 📧</p>\n<p></p><h2>☁️ Try out Panza in Google Colab</h2><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#cloud-try-out-panza-in-google-colab\"></a><p></p>\n<ul>\n<li>You can run Panza in a Google Colab instance <a target=\"_blank\" href=\"https://colab.research.google.com/github/IST-DASLab/PanzaMail/blob/main/notebooks/panza_colab.ipynb\"><img src=\"https://camo.githubusercontent.com/96889048f8a9014fdeba2a891f97150c6aac6e723f5190236b10215a97ed41f3/68747470733a2f2f636f6c61622e72657365617263682e676f6f676c652e636f6d2f6173736574732f636f6c61622d62616467652e737667\" alt=\"Open In Colab\" /></a>.</li>\n</ul>\n<p></p><h2>🔬 Advanced usage</h2><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#microscope-advanced-usage\"></a><p></p>\n<ul>\n<li><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail/blob/main/scripts/README.md#data-guide\">Data Preparation Guide</a></li>\n<li><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail/blob/main/scripts/README.md#hyper-parameter-tuning-guide\">Hyper-Parameter Tuning Guide</a></li>\n<li><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail/blob/main/prompt_preambles/README.md\">Prompt Preambles Tutorial</a></li>\n</ul>\n<p></p><h2>Privacy Statement</h2><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#privacy-statement\"></a><p></p>\n<p>The goal of Panza is to give users full control of their data and models trained on it. As such, no part of Panza, including the Chrome/GMail plugin collects any information about its users, outside of the normal summary statistics collected by Github and Google (such as the number of stars/forks/downloads). If you choose to run any part of Panza on a hosted service, e.g., on Amazon Web Services or Google Colab, we take no responsibility for any data collection or data breaches that may occur. Additionally, running the Panza web client or the GUI interface (via Gradio) risks providing unauthorized access to the models. Please use at your own risk.</p>\n<p></p><h2>Authors</h2><a target=\"_blank\" href=\"https://github.com/IST-DASLab/PanzaMail#authors\"></a><p></p>\n<p>Panza was conceived by Nir Shavit and Dan Alistarh and built by the <a target=\"_blank\" href=\"https://ist.ac.at/en/research/alistarh-group/\">Distributed Algorithms and Systems group</a> at IST Austria. The contributors are (in alphabetical order):</p>\n<p>Dan Alistarh, Eugenia Iofinova, Eldar Kurtic, Ilya Markov, Armand Nicolicioiu, Mahdi Nikdan, Andrei Panferov, and Nir Shavit.</p>\n<p>Contact: <a target=\"_blank\" href=\"mailto:[email protected]\">[email protected]</a></p>\n<p>We thank our collaborators Michael Goin and Tony Wang at NeuralMagic and MIT for their helpful testing and feedback.</p>\n</article></div>",
"author": "",
"favicon": "https://github.githubassets.com/favicons/favicon.svg",
"source": "github.com",
"published": "",
"ttr": 294,
"type": "object"
}