Git Product home page Git Product logo

mcutools / doctor-dignity Goto Github PK

View Code? Open in Web Editor NEW

This project forked from llsourcell/doctor-dignity

0.0 0.0 0.0 13.59 MB

Doctor Dignity is an LLM that can pass the US Medical Licensing Exam. It works offline, it's cross-platform, & your health data stays private.

License: Apache License 2.0

Shell 0.22% C++ 5.77% Python 81.23% Objective-C 0.15% Java 0.11% Kotlin 2.52% Objective-C++ 0.40% Swift 4.31% CMake 0.37% Jupyter Notebook 4.92%

doctor-dignity's Introduction

Doctor Dignity

DISCLAIMER - Do not take any advice from Doctor Dignity seriously yet. This is a work in progress and taking any advice seriously could result in serious injury or even death.

Overview

Doctor Dignity is a Large Language Model that can pass the US Medical Licensing Exam. This is an open-source project with a mission to provide everyone their own private doctor. Doctor Dignity is a version of Meta's Llama2 7 billion parameter Large Language Model that was fine-tuned on a Medical Dialogue Dataset, then further improved using Reinforcement Learning & Constitutional AI. Since the model is only 3 Gigabytes in size, it fits on any local device, so there is no need to pay an API to use it. It's free, made for offline usage which preserves patient confidentiality, and it's available on iOS, Android, and Web. Pull requests for feature additions and improvements are encouraged.

Dependencies

  • Numpy (Use matrix math operations)
  • PyTorch (Build Deep Learning models)
  • Datasets (Access datasets from huggingface hub)
  • Huggingface_hub (access huggingface data & models)
  • Transformers (Access models from HuggingFace hub)
  • Trl (Transformer Reinforcement Learning. And fine-tuning.)
  • Bitsandbytes (makes models smaller, aka 'quantization')
  • Sentencepiece (Byte Pair Encoding scheme aka 'tokenization')
  • OpenAI (Create synthetic fine-tuning and reward model data)
  • TVM (Tensor Virtual Machine, converts onnx model to efficient cross-platform use)
  • Peft (Parameter Efficient Fine Tuning, use low rank adaption (LoRa) to fine-tune)
  • Onnx (Convert trained model to universal format)

Installation

Install all dependencies in one line using pip

pip install numpy torch datasets huggingface_hub transformers trl bitsandbytes sentencepiece openai tvm peft onnx

iOS QuickStart v2

  1. Clone this repository
git clone https://github.com/llSourcell/Doctor-Dignity
  1. Download the Weights
mkdir -p dist/prebuilt
git clone https://github.com/mlc-ai/binary-mlc-llm-libs.git dist/prebuilt/lib
cd dist/prebuilt
git lfs install
wget --no-check-certificate 'https://drive.google.com/file/d/1MLy8BDhuTTcXqagzLFMA07JDzqjQYUTB/view?pli=1'
cd ../..
  1. Build the Tensor Virtual Machine Runtime
git submodule update --init --recursive
pip install apache-tvm
cd ./ios
pip install --pre --force-reinstall mlc-ai-nightly mlc-chat-nightly -f https://mlc.ai/wheels 
./prepare_libs.sh

** Find the right version of MLC LLM for your system here 4. Add Weights to Xcode

cd ./ios
open ./prepare_params.sh # make sure builtin_list only contains "RedPajama-INCITE-Chat-3B-v1-q4f16_1"
./prepare_params.sh
  1. Open Xcode Project and run!

DIY Training

In order to train the model, you can run the training.ipynb notebook locally or remotely via a cloud service like Google Colab Pro. The training process requires a GPU, and if you don't have one then the most accessible option i found was using Google Colab Pro which costs $10/month. The total training time for Doctor Dignity including supervised fine-tuning of the initial LLama model on custom medical data, as well as further improving it via Reinforcement Learning from Constitional AI Feedback took 24 hours on a paid instance of Google Colab. If you're interested in learning more about how this process works, details are in the training.ipynb notebook.

Cloud Training

Open In Colab click here: https://colab.research.google.com/github/llSourcell/Doctor-Dignity/blob/main/llama2.ipynb

Local Training

git clone https://github.com/llSourcell/Doctor-Dignity.git
jupyter training.ipynb

Get jupyter here

There are 2 huggingface repos, one which is quantized for mobile and one that is not.

Old iOS app

Android app (TODO)

  • Step 1: Download the Android Machine Learning Compilation Chat Repository
  • Step 2: Follow the installation steps
  • Step 3: Tap "add model variant"
  • Step 4: Enter the URL for the latest Doctor Dignity model to download it: https://huggingface.co/llSourcell/doctorGPT_mini
  • Step 5: Tap 'Add Model' and start chatting locally! No internet needed.

Web (TODO)

As an experiment in Online Learning using actual human feedback, i want to deploy the model as a Flask API with a React front-end. In this case, anyone can chat with the model at this URL. After each query, a human can rate the model's response. This rating is then used to further improve the model's performance through reinforcement learning. to run the app, download flask and then you can run:

flask run

Then visit localhost:3000 to interact with it! You can also deploy to vercel

Credits

Meta, MedAlpaca, Apache, MLC Chat & OctoML

doctor-dignity's People

Contributors

masterjh5574 avatar yzh119 avatar tqchen avatar junrushao avatar sudeepag avatar kathryn-cat avatar spectrometerhbh avatar hzfengsy avatar charliefruan avatar llsourcell avatar cyx-6 avatar masahi avatar jinhongyii avatar davidpissarra avatar sbelcmu avatar eltociear avatar leiwang1999 avatar nverke avatar bowels avatar bbuf avatar vinx13 avatar twiceyuan avatar ubospica avatar sunggg avatar sing-li avatar fubge avatar l0phtg avatar jakelin avatar plateaukao avatar rojotek avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.