explaingit

togethercomputer/openchatkit

8,989PythonAudience · researcherComplexity · 4/5Setup · hard

TLDR

OpenChatKit is a toolkit for running and fine-tuning open-source conversational AI models on your own hardware, including a 20-billion-parameter chat model and support for retrieval-augmented responses from custom documents.

Mindmap

mindmap
  root((OpenChatKit))
    What it does
      Run open chat models
      Fine-tune for custom use
    Included Models
      GPT-NeoXT 20B chat
      Pythia-Chat 7B
      Llama-2 long context
    Features
      Retrieval augmentation
      Custom training scripts
      Hugging Face export
    Requirements
      GPU hardware needed
      Conda environment
      Python ecosystem
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Run a large open-source chat model entirely on your own GPU hardware without paying for a commercial API.

USE CASE 2

Fine-tune one of the included language models on your own conversational dataset for a specialized assistant.

USE CASE 3

Build a chat assistant that retrieves answers from a custom document collection rather than relying on training data alone.

Tech stack

PythonPyTorchHugging FaceConda

Getting it running

Difficulty · hard Time to first run · 1day+

Requires one or more GPUs with substantial VRAM, no CPU fallback is mentioned and models are too large for consumer hardware.

License terms are not specified in the project explanation.

In plain English

OpenChatKit is a collection of tools and code for building and running open-source AI chat models. It was created by Together, a company focused on distributed AI, in collaboration with LAION and Ontocord.ai. The goal is to give developers and researchers a starting point for creating their own conversational AI systems, either for general chat or specialized applications. The repository includes code for three different language models. The largest is GPT-NeoXT-Chat-Base-20B, a 20-billion-parameter model trained specifically for conversation. There is also Pythia-Chat-Base-7B, a smaller 7-billion-parameter chat model, and support for fine-tuning Llama-2-7B-32K-beta, a model with an unusually long context window that lets it handle longer documents. All of these were trained on the OIG-43M dataset, a large collection of instructional text assembled through the collaboration. The README walks through how to get started with Pythia-Chat-Base-7B, which involves setting up a Python environment using Conda, downloading the model weights from Hugging Face, and then running a command-line chat interface. Once running, you type messages and the model responds, maintaining conversation history so it can refer back to earlier parts of the exchange. For people who want to train or fine-tune their own version of one of the models, the repository includes training scripts and step-by-step instructions. After training, a conversion script transforms the saved model weights into a format compatible with the Hugging Face ecosystem, which is a widely used standard for sharing and loading language models. An experimental feature allows the chat model to pull in up-to-date information from a custom document index during conversations, so the model's responses can include content from sources beyond its original training data. All of this requires substantial computing hardware, typically one or more GPUs. The project is open source.

Copy-paste prompts

Prompt 1
Help me set up the Pythia-Chat-Base-7B model from OpenChatKit on a Linux machine with a single A100 GPU using the provided Conda environment.
Prompt 2
Using OpenChatKit's training scripts, show me how to fine-tune Pythia-Chat-Base-7B on a custom Q&A dataset stored in JSONL format.
Prompt 3
Explain how OpenChatKit's retrieval plugin works and help me connect it to a local folder of PDF documents for augmented chat responses.
Prompt 4
Show me how to convert fine-tuned OpenChatKit model weights into Hugging Face format so I can upload them to the Hub and share them.
Prompt 5
Help me set up the GPT-NeoXT-Chat-Base-20B model with the command-line chat interface and maintain conversation history across turns.
Open on GitHub → Explain another repo

← togethercomputer on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.