{"id":13469208,"url":"https://github.com/imoneoi/openchat","last_synced_at":"2025-05-14T03:03:37.335Z","repository":{"id":177846197,"uuid":"645397533","full_name":"imoneoi/openchat","owner":"imoneoi","description":"OpenChat: Advancing Open-source Language Models with Imperfect Data","archived":false,"fork":false,"pushed_at":"2024-09-13T07:46:22.000Z","size":18647,"stargazers_count":5344,"open_issues_count":135,"forks_count":414,"subscribers_count":48,"default_branch":"master","last_synced_at":"2025-05-09T05:01:59.193Z","etag":null,"topics":["large-language-models","open-source","transformers"],"latest_commit_sha":null,"homepage":"https://openchat.team","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/imoneoi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-25T14:58:59.000Z","updated_at":"2025-05-07T20:08:20.000Z","dependencies_parsed_at":"2023-09-22T09:00:18.337Z","dependency_job_id":"f9d6aa74-a480-46c7-88cb-238b6ace2358","html_url":"https://github.com/imoneoi/openchat","commit_stats":null,"previous_names":["imoneoi/openchat"],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imoneoi%2Fopenchat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imoneoi%2Fopenchat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imoneoi%2Fopenchat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imoneoi%2Fopenchat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imoneoi","download_url":"https://codeload.github.com/imoneoi/openchat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254059474,"owners_count":22007767,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["large-language-models","open-source","transformers"],"created_at":"2024-07-31T15:01:29.198Z","updated_at":"2025-05-14T03:03:32.525Z","avatar_url":"https://github.com/imoneoi.png","language":"Python","funding_links":[],"categories":["Python","NLP","A01_文本生成_文本对话","HarmonyOS","Summary","Repos","Open Source Models","Projekte"],"sub_categories":["大语言对话模型及数据","Windows Manager","🦄 LLMs"],"readme":"# OpenChat: Advancing Open-source Language Models with Mixed-Quality Data\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/logo_new.png\" style=\"width: 65%\"\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://openchat.team\"\u003e💻Online Demo\u003c/a\u003e |\n  \u003ca href=\"https://huggingface.co/openchat\"\u003e🤗Huggingface\u003c/a\u003e |\n  \u003ca href=\"https://arxiv.org/pdf/2309.11235.pdf\"\u003e📃Paper\u003c/a\u003e |\n  \u003ca href=\"https://discord.gg/pQjnXvNKHY\"\u003e💭Discord\u003c/a\u003e \n\u003c/p\u003e\n\n- OpenChat is an innovative library of **open-source language models**, fine-tuned with [**C-RLFT**](https://arxiv.org/pdf/2309.11235.pdf) - a strategy inspired by offline reinforcement learning.\n- Our models learn from mixed-quality data without preference labels, delivering exceptional performance on par with `ChatGPT`, even with a `7B` model which can be run on a **consumer GPU (e.g. RTX 3090)**.\n- Despite our simple approach, we are committed to developing a high-performance, commercially viable, open-source large language model, and we continue to make significant strides toward this vision.\n\n[![DOI](https://zenodo.org/badge/645397533.svg)](https://zenodo.org/badge/latestdoi/645397533)\n\n# ✨ News\n\n - [2024/05/22] We released the Llama-3 based version [OpenChat 3.6 20240522](https://huggingface.co/openchat/openchat-3.6-8b-20240522), outperforming official Llama 3 8B Instruct and open-source finetunes/merges.\n\n- [2024/01/06] We released the second update, [OpenChat 3.5 0106](openchat/openchat-3.5-0106), further improved coding and overall performance 🏆.\n\n- [2023/12/10] We released the first update, [OpenChat 3.5 1210](openchat/openchat-3.5-1210), improved coding by 15 points 🚀.\n\n- [2023/11/01] We released the [OpenChat-3.5-7B](https://huggingface.co/openchat/openchat_3.5) model, surpassing ChatGPT on various benchmarks 🔥.\n\n- [2023/09/21] We released our paper [OpenChat: Advancing Open-source Language Models with Mixed-Quality Data](https://arxiv.org/pdf/2309.11235.pdf).\n  \n\u003cdetails\u003e\n  \u003csummary\u003eRead more\u003c/summary\u003e\n  \n- [2023/09/03] We released the [OpenChat V3.2 SUPER]([#models](https://huggingface.co/openchat/openchat_v3.2_super)) model.\n\n- [2023/08/04] We have launched an [Online Demo](https://openchat.team) featuring the latest version, OpenChat 3.2.\n\n- [2023/07/30] We are thrilled to introduce the [OpenChat V3 model series](#models), based on Llama 2, and now available for free for commercial use!\n\n- [2023/07/07] We released the [OpenChat V2 model series](#legacy-models).\n\n- [2023/07/01] We released the [OpenChat V1 model series](#legacy-models).\n\u003c/details\u003e\n\n# 🏷️ Benchmarks - OpenChat 3.6\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/imoneoi/openchat/master/assets/benchmarks-openchat-3.6-20240522.svg\" style=\"width: 95%;\"\u003e\n\u003c/div\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eReproducing benchmarks\u003c/summary\u003e\n\nNote: Please run the following commands at the base directory of this repository.\n\n```bash\npython -m ochat.evaluation.run_eval --condition \"GPT4 Correct\" --model openchat/openchat-3.6-8b-20240522 --eval_sets fs_cothub/mmlu fs_cothub/gsm8k fs_cothub/math\npython -m ochat.evaluation.run_eval --condition \"GPT4\" --model openchat/openchat-3.6-8b-20240522 --eval_sets zs/gpqa\n```\n\nHumanEval is run using the official [EvalPlus repository](https://github.com/evalplus/evalplus).\n\u003c/details\u003e\n\n# 🏷️ Benchmarks - OpenChat 3.5\n\n| Model                 | # Params | Average  | MT-Bench     | HumanEval       | BBH MC   | AGIEval  | TruthfulQA    | MMLU         | GSM8K        | BBH CoT     |\n|-----------------------|----------|----------|--------------|-----------------|----------|----------|---------------|--------------|--------------|-------------|\n| **OpenChat-3.5-0106** | **7B**   | **64.5** | 7.8          | **71.3**        | **51.5** | **49.1** | 61.0          | 65.8         | **77.4**     | 62.2        |\n| ChatGPT (March)*      | ???B     | 61.5     | **7.94**     | 48.1            | 47.6     | 47.1     | 57.7          | **67.3**     | 74.9         | **70.1**    |\n|                       |          |          |              |                 |          |          |               |              |              |             |\n| OpenHermes 2.5        | 7B       | 59.3     | 7.54         | 48.2            | 49.4     | 46.5     | 57.5          | 63.8         | 73.5         | 59.9        |\n| OpenOrca Mistral      | 7B       | 52.7     | 6.86         | 38.4            | 49.4     | 42.9     | 45.9          | 59.3         | 59.1         | 58.1        |\n| Zephyr-β^             | 7B       | 34.6     | 7.34         | 22.0            | 40.6     | 39.0     | 40.8          | 39.8         | 5.1          | 16.0        |\n| Mistral               | 7B       | -        | 6.84         | 30.5            | 39.0     | 38.0     | -             | 60.1         | 52.2         | -           |\n| Open-source SOTA**    | 13B-70B  | 61.4     | 7.71         | 73.2            | 49.7     | 41.7     | 62.3          | 63.7         | 82.3         | 41.4        |\n|                       |          |          | WizardLM 70B | WizardCoder 34B | Orca 13B | Orca 13B | Platypus2 70B | WizardLM 70B | MetaMath 70B | Flan-T5 11B |\n\n🔥 OpenChat-3.5-0106 (7B) now outperforms Grok-0 (33B) on **all 4 benchmarks** and Grok-1 (314B) on average and **3/4 benchmarks**.\n\n|                       | License     | # Param | Average  | MMLU   | HumanEval | MATH     | GSM8k    |\n|-----------------------|-------------|---------|----------|--------|-----------|----------|----------|\n| **OpenChat-3.5-0106** | Apache-2.0  | **7B**  | **61.0** | 65.8   | **71.3**  | **29.3** | **77.4** |\n| Grok-0                | Proprietary | 33B     | 44.5     | 65.7   | 39.7      | 15.7     | 56.8     |\n| Grok-1                | Proprietary | 314B    | 55.8     | **73** | 63.2      | 23.9     | 62.9     |\n\n\u003cdetails\u003e\n  \u003csummary\u003eEvaluation details\u003c/summary\u003e\n*: ChatGPT (March) results are from GPT-4 Technical Report, Chain-of-Thought Hub, and our evaluation.\n\n^: Zephyr-β often fails to follow few-shot CoT instructions, likely because it was aligned with only chat data but not trained on few-shot data.\n\n **: Mistral and Open-source SOTA results are taken from reported results in instruction-tuned model papers and official repositories.\n\nAll models are evaluated in chat mode (e.g. with the respective conversation template applied). All zero-shot benchmarks follow the same setting as in the AGIEval paper and Orca paper. CoT tasks use the same configuration as Chain-of-Thought Hub, HumanEval is evaluated with EvalPlus, and MT-bench is run using FastChat. To reproduce our results, follow the instructions below.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eReproducing benchmarks\u003c/summary\u003e\n\nReasoning and Coding:\n\nNote: Please run the following commands at the base directory of this repository.\n\n```bash\npython -m ochat.evaluation.run_eval --condition \"GPT4 Correct\" --model openchat/openchat-3.5-0106 --eval_sets coding fs_cothub/bbh fs_cothub/mmlu zs/agieval zs/bbh_mc_orca zs/truthfulqa_orca\npython ochat/evaluation/view_results.py\npython ochat/evaluation/convert_to_evalplus.py\n```\n\nThen all humaneval code samples are placed in `ochat/evaluation/evalplus_codegen`. Use the following command to evaluate an individual code sample named `samples.jsonl` using Docker as a sandbox.\n\n```bash\ndocker run -v $(pwd):/app ganler/evalplus:latest --dataset humaneval --samples samples.jsonl\n```\n\nMathematical Reasoning:\n\nNote: Please run the following commands at the base directory of this repository.\n\n```bash\npython -m ochat.evaluation.run_eval --condition \"Math Correct\" --model openchat/openchat-3.5-0106 --eval_sets fs_cothub/gsm8k zs/math\npython ochat/evaluation/view_results.py\n```\n\nMT-Bench:\n\nPlease first launch a local API server, then download FastChat and run the following commands.\n\nNote: Due to non-zero temperature and GPT-4 API changes over time, there might be variations in the results.\n\n```bash\ncd fastchat/llm_judge\npython gen_api_answer.py --model openchat-3.5-0106 --max-tokens 4096 --parallel 128 --openai-api-base http://localhost:18888/v1\npython gen_judgment.py --model-list openchat-3.5-0106 --parallel 8 --mode single\n```\n\n\u003c/details\u003e\n\n# ⬇️ Installation\n\u003e [!NOTE]\n\u003e Need [`pytorch`](https://pytorch.org/get-started/locally/#start-locally) and [CUDA](https://developer.nvidia.com/cuda-toolkit-archive) to run OpenChat\n\n## pip\n\n```bash\npip3 install ochat\n```\n\u003e [!IMPORTANT]\n\u003e If you are facing package compatibility issues with pip, try the conda method below or check [this issue](https://github.com/imoneoi/openchat/issues/41)\n\n## conda\n\n```bash\nconda create -y --name openchat python=3.11\nconda activate openchat\n\npip3 install ochat\n```\n\n## Windows (WSL 1.x, Ubuntu-22.04)\n\n```bash\nsudo apt update\nsudo apt install build-essential\n\nsudo apt install -y curl\ncurl -o miniconda.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh\nbash miniconda.sh\n\n# Restart WSL terminal if the following conda command does not work\n\nconda create -y --name openchat python=3.11\nconda activate openchat\n\npip3 install ochat\n```\n\n## From source\n\n\u003cdetails\u003e\n  \u003csummary\u003eClone this repo and install openchat from source in editable mode\u003c/summary\u003e\n\n```bash\ngit clone https://github.com/imoneoi/openchat\ncd openchat\n\npip3 install --upgrade pip  # enable PEP 660 support\npip3 install -e .  # Editable mode, you can make changes in this cloned repo\n```\n\u003c/details\u003e\n\n# 🚀 Deploying API server\n\n⚡ Our API server is ready for production use and compatible with the OpenAI API protocol. It is highly optimized with vLLM and can dynamically batch requests.\n\n📎 Note: For 20 series or older GPUs that do not support `bfloat16`, add `--dtype float16` to the server args.\n\n### List of currently supported models\n\n| MODEL_TYPE   | MODEL_REPO                                                                                    | License    |\n|--------------|-----------------------------------------------------------------------------------------------|------------|\n| openchat_3.6 | [openchat/openchat-3.6-8b-20240522](https://huggingface.co/openchat/openchat-3.6-8b-20240522) | Llama 3    |\n| openchat_3.5 | [openchat/openchat-3.5-0106](https://huggingface.co/openchat/openchat-3.5-0106)               | Apache 2.0 |\n\n### For a single GPU (e.g. RTX 3090, 4090)\n\n```bash\npython -m ochat.serving.openai_api_server --model MODEL_REPO\n```\n\n### For multiple GPUs (tensor parallel)\n\n```bash\n# N is the number of tensor parallel GPUs\npython -m ochat.serving.openai_api_server --model MODEL_REPO --engine-use-ray --worker-use-ray --tensor-parallel-size N\n```\n\nuse `-h` to see more settings\n```bash\npython -m ochat.serving.openai_api_server --model MODEL_REPO -h\n```\n\n\u003cdetails\u003e\n  \u003csummary\u003eDeploy as online service\u003c/summary\u003e\n\nIf you want to deploy the server as an online service, you can use `--api-keys sk-KEY1 sk-KEY2 ...` to specify allowed API keys and `--disable-log-requests --disable-log-stats --log-file openchat.log` for logging only to a file. For security purposes, we recommend using an [HTTPS gateway](https://fastapi.tiangolo.com/es/deployment/concepts/#security-https) in front of the server.\n\n\u003c/details\u003e\n\n## Request example\n\nOnce started, the server listens at `localhost:18888` for requests and is compatible with the [OpenAI ChatCompletion API specifications](https://platform.openai.com/docs/api-reference/chat). \n\n💡 **Default Mode (GPT4 Correct)**: Best for coding, chat and general tasks\n\n```bash\ncurl http://localhost:18888/v1/chat/completions \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"MODEL_TYPE\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"You are a large language model named OpenChat. Write a poem to describe yourself\"}]\n  }'\n```\n\n🧮 **Mathematical Reasoning Mode**: Tailored for solving math problems\n\n```bash\ncurl http://localhost:18888/v1/chat/completions \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"MODEL_TYPE\",\n    \"condition\": \"Math Correct\",\n    \"messages\": [{\"role\": \"user\", \"content\": \"10.3 − 7988.8133 = \"}]\n  }'\n```\n\n# \u003ca id=\"web-ui\"\u003e\u003c/a\u003e 🌐 Web UI - [OpenChat-UI](https://github.com/imoneoi/openchat-ui)\n\nAfter launching the API server, OpenChat provide user interface that easy to interact with. [Click here to check Web UI](https://github.com/imoneoi/openchat-ui)\n\n# 🤗 Inference with Transformers\n\n\u003e [!WARNING]\n\u003e It's recommended to use our optimized API server for deployment. Inferencing with Transformers will be slower.\n\n💡 **Default Mode (GPT4 Correct)**: Best for coding, chat and general tasks\n\n```\nGPT4 Correct User: Hello\u003c|end_of_turn|\u003eGPT4 Correct Assistant: Hi\u003c|end_of_turn|\u003eGPT4 Correct User: How are you today?\u003c|end_of_turn|\u003eGPT4 Correct Assistant:\n```\n\n🧮 **Mathematical Reasoning Mode**: Tailored for solving math problems\n\n```\nMath Correct User: 10.3 − 7988.8133=\u003c|end_of_turn|\u003eMath Correct Assistant:\n```\n\n⚠️ **Notice:** Remember to set `\u003c|end_of_turn|\u003e` as end of generation token.\n\nThe default (GPT4 Correct) template is also available as the integrated `tokenizer.chat_template`, which can be used instead of manually specifying the template.\n\n# \u003ca id=\"training\"\u003e\u003c/a\u003e 🛠️ Training\n\nThe OpenChat training system utilizes padding-free training and the [Multipack Sampler](https://github.com/imoneoi/multipack_sampler), achieving a **3~10x** speedup compared to the conventional padded training.\n\n## Choose a base model\n\nOpenChat supports Llama 3 and Mistral models. Please first choose a base model to fit your needs. Each base model has a corresponding weight repo, model type, and recommended batch size as listed below, they should be filled into `BASE_REPO`, `MODEL_TYPE`, and `BATCH_SIZE` in the following instructions.\n\n| Base Model | Size | Weights (with EOT token)                   | Model Type              | Recommended Batch Size per GPU (8xA100 80GB) |\n|------------|------|--------------------------------------------|-------------------------|----------------------------------------------|\n| Llama 3    | 8B   | `imone/Llama-3-8B-fixed-special-embedding` | `openchat_3.6`          | 40960                                        |\n| Mistral    | 7B   | `imone/Mistral_7B_with_EOT_token`          | `openchat_v3.2_mistral` | 77824                                        |\n\nNote: The OpenChat conversation template requires `\u003c|eot_id|\u003e, \u003c|start_header_id|\u003e, \u003c|end_header_id|\u003e` (Llama 3) `\u003c|end_of_turn|\u003e` (Mistral) special tokens. The base model specified must include these tokens with initialized embeddings. Our provided weights are the original base weights with this token added and embeddings initialized. If you want to add them manually, use the `init_special_embedding_llama3.py` or `mistral_add_tokens.py` in the `scripts` directory.\n\n## Installing DeepSpeed and Flash Attention\n\nFirst, ensure that the CUDA `nvcc` compiler is available in your environment. If it is not, install the CUDA toolkit that matches the version used by PyTorch.\n\nNext, install building dependencies:\n\n```bash\npip install packaging ninja\n```\n\nFinally, install the packages:\n\n```bash\npip install deepspeed flash-attn\n```\n\n### Preparing Your Data\n\nTo utilize the OpenChat trainer, prepare your SFT data into a JSON Lines format where each line corresponds to a `Conversation` object:\n\n```python\nclass Message(BaseModel):\n    role: str     # Must be \"user\" or \"assistant\"\n    content: str  # Message content\n    weight: Optional[float] = None  # Loss weight for this message. Typically 0 for user and 1 for assistant to supervise assistant's responses only\n\n\nclass Conversation(BaseModel):\n    items: List[Message]  # All messages within the conversation\n    condition: str = \"\"  # C-RLFT condition, can be any string or empty.\n    system: str = \"\"  # System message for this conversation\n```\n\nFor basic SFT, assign `weight` as `0` for human messages and `1` for assistant responses.\n\nSFT example:\n\n```json\n{\"items\":[{\"role\":\"user\",\"content\":\"Hello\",\"weight\":0.0},{\"role\":\"assistant\",\"content\":\"Hi\",\"weight\":1.0},{\"role\":\"user\",\"content\":\"How are you today?\",\"weight\":0.0},{\"role\":\"assistant\",\"content\":\"I'm fine.\",\"weight\":1.0}],\"system\":\"\"}\n{\"items\":[{\"role\":\"user\",\"content\":\"Who are you?\",\"weight\":0.0},{\"role\":\"assistant\",\"content\":\"I'm OpenChat.\",\"weight\":1.0}],\"system\":\"You are a helpful assistant named OpenChat.\"}\n```\n\nFor C-RLFT, `condition` should be set as the class the conversation belongs to (e.g. `GPT3` or `GPT4`). The `weight` is assigned as `0` for human messages and `w` for assistant responses, where `w` is the weight of the class (e.g. `0.1` for `GPT3` and `1` for `GPT4`, as found in our C-RLFT paper).\n\nC-RLFT example:\n\n```json\n{\"items\":[{\"role\":\"user\",\"content\":\"What is C-RLFT?\",\"weight\":0.0},{\"role\":\"assistant\",\"content\":\"C-RLFT is a method for improving open-source LLMs with mixed-quality data.\",\"weight\":1.0}],\"condition\":\"GPT4\",\"system\":\"\"}\n{\"items\":[{\"role\":\"user\",\"content\":\"What is C-RLFT?\",\"weight\":0.0},{\"role\":\"assistant\",\"content\":\"I don't know.\",\"weight\":0.1}],\"condition\":\"GPT3\",\"system\":\"\"}\n```\n\n### Pre-tokenizing the Dataset\n\nYou'll then need to pre-tokenize the dataset using the command (please specify a filename as `PRETOKENIZED_DATA_OUTPUT_PATH` to store the pretokenized dataset):\n\n```bash\npython -m ochat.data.generate_dataset --model-type MODEL_TYPE --model-path BASE_REPO --in-files data.jsonl --out-prefix PRETOKENIZED_DATA_OUTPUT_PATH\n```\n\n### Launching the OpenChat Trainer\n\nYou can now launch the OpenChat trainer using the command below.\n- 13B model requires eight `A/H100s` with 80GB VRAM\n- 7B model can be trained with four `A/H100s` with 80GB VRAM or eight `A/H100s` with 40GB VRAM.\n\nFor hyperparameters, we recommend first setting the batch size to the recommended batch size. If OOM occurs, try setting it to the exact maximum that VRAM can hold and as a multiple of `2048`.\nOther hyperparameters have been carefully selected as the default. Furthermore, the learning rate is automatically determined based on the [inverse square-root rule](https://arxiv.org/abs/2006.09092).\n\n\u003cdetails\u003e\n\n\u003csummary\u003eTraining Commands (click to expand)\u003c/summary\u003e\n\n```bash\nNUM_GPUS=8\n\ndeepspeed --num_gpus=$NUM_GPUS --module ochat.training_deepspeed.train \\\n          --model_path BASE_REPO \\\n          --data_prefix PRETOKENIZED_DATA_OUTPUT_PATH \\\n          --save_path PATH_TO_SAVE_MODEL \\\n          --batch_max_len BATCH_SIZE \\\n          --epochs 5 \\\n          --save_every 1 \\\n          --deepspeed \\\n          --deepspeed_config ochat/training_deepspeed/deepspeed_config.json\n```\n\n\u003c/details\u003e\n\nYou can find checkpoints of all epochs in `PATH_TO_SAVE_MODEL`. Then you may evaluate each epoch and choose the best one.\n\n# Limitations\n\n**Foundation Model Limitations**: Despite its advanced capabilities, OpenChat is still bound by the limitations inherent in its foundation models. These limitations may impact the model's performance in areas such as:\n\n - Complex reasoning\n - Mathematical and arithmetic tasks\n - Programming and coding challenges\n\n**Hallucination of Non-existent Information:** OpenChat may sometimes generate information that does not exist or is not accurate, also known as \"hallucination\". Users should be aware of this possibility and verify any critical information obtained the model.\n\n**Safety:** OpenChat may sometimes generate harmful, hate speech, biased responses, or answer unsafe questions. It's crucial to apply additional AI safety measures in use cases that require safe and moderated responses.\n\n# License\n\nCode is distributed under the **Apache License 2.0**.\n\n# Citation\n\n```\n@article{wang2023openchat,\n  title={OpenChat: Advancing Open-source Language Models with Mixed-Quality Data},\n  author={Wang, Guan and Cheng, Sijie and Zhan, Xianyuan and Li, Xiangang and Song, Sen and Liu, Yang},\n  journal={arXiv preprint arXiv:2309.11235},\n  year={2023}\n}\n```\n\n# 💌Contact\n\n**Project Lead:**\n- Guan Wang [imonenext at gmail dot com]\n- [Alpay Ariyak](https://github.com/alpayariyak) [aariyak at wpi dot edu]\n\n**Main Contributors:**\n- [Xianyuan Zhan](https://scholar.google.com.hk/citations?user=pDMnGloAAAAJ) (Tsinghua University)\n- Qiying Yu (Tsinghua University)\n- Changling Liu (GPT Desk Pte. Ltd.)\n- LDJ\n- AutoMeta (Alignment Lab AI)\n\n**Sponsors:**\n- [Sen Song](https://scholar.google.com/citations?user=cYgtRP4AAAAJ) (Tsinghua University)\n- [Yang Liu](https://nlp.csai.tsinghua.edu.cn/~ly/) (Tsinghua University)\n- [01.AI Company](https://www.lingyiwanwu.com/en)\n- [RunPod](https://www.runpod.io/)\n\n**Special Thanks:**\n - [Mistral](https://mistral.ai/)\n - [Chain-of-Thought Hub](https://github.com/FranxYao/chain-of-thought-hub)\n - [Llama 2](https://ai.meta.com/llama/)\n - [Self-Instruct](https://arxiv.org/abs/2212.10560)\n - [FastChat (Vicuna)](https://github.com/lm-sys/FastChat)\n - [Alpaca](https://github.com/tatsu-lab/stanford_alpaca.git)\n - [StarCoder](https://github.com/bigcode-project/starcoder)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimoneoi%2Fopenchat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimoneoi%2Fopenchat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimoneoi%2Fopenchat/lists"}