Skip to main content

JupyterLab extension for CoML.

Project description

CoML

CoML (formerly MLCopilot) is an interactive coding assistant for data scientists and machine learning developers, empowered on large language models.

Highlight features:

  • Out-of-the-box interactive natural language programming interface for data mining and machine learning tasks.
  • Integration with Jupyter lab and Jupyter notebook.
  • Built-in large knowledge base of machine learning, enhancing the ability of solving complex tasks.

Installation

pip install mlcopilot

(We can't have the name coml on PyPI, so we use mlcopilot instead.)

CoML in Jupyter Lab

We recommend trying CoML in a Jupyter Lab environment. Before using CoML, please make sure that:

  1. You have exported OPENAI_API_KEY=sk-xxxx in your environment. Alternatively, you can also use a .env file.
  2. Use %load_ext coml in your notebook to active CoML extension.

Then we have provided several commands to assist your journey with interactive coding in Jupyter Lab.

  1. %coml <task> to prompt CoML to write a cell for your task.

  1. %comlfix to fix the cell just above the current cell. You can also use %comlfix <reason> to provide details for what's wrong.

  1. %comlinspire to inspire you with a cell describing what to do next.

Limitations:

  • Currently, CoML only supports Jupyter Lab and classical Jupyter notebook (nbclassic, and only on Linux platforms). We are still working on supports of newer Jupyter notebook, Jupyter-vscode and Google Colab.
  • CoML uses gpt-3.5-turbo-16k model in its implementation. There is no way to change the model for now. The cost of using this model is around $0.04 per request. Please be aware of this cost.

CoML Config Agent

CoML config agent is the implementation of MLCopilot, which can suggest a ML configuration within a specific task, for a specific task. Currently, it is an independent component residing in coml.configagent. In the future, we will integrate it into the CoML system.

(TODO: The demo needs an update.)

Extra preparation steps

Please follow the steps to use CoML config agent:

  1. Clone this repo: git clone REPO_URL; cd coml
  2. Put assets/coml.db in your home directory: cp assets/coml.db ~/.coml/coml.db
  3. Copy coml/.env.template to ~/.coml/.env and put your API keys in the file.

Command line utility

Currently, it can only be invoked independently. You can use the following command line:

coml-configagent --space <space> --task <task>

If you feel uncertain about what to put into <space> or <task>, see the demo above, or try the interactive usage below:

coml-configagent --interactive

API Usage

from coml.configagent.suggest import suggest

space = import_space("YOUR_SPACE_ID")
task_desc = "YOUR_TASK_DESCRIPTION_FOR_NEW_TASK"
suggest_configs, knowledge = suggest(space, task_desc)

Development

Development documentation stays here for now. It shall be moved to a separate document later.

Project structure

Important files and folders:

CoML
├── assets          # data, examples, demos
├── coml            # Python package
├── examples        # example scripts
├── install.json    # Jupyter lab extension installation file
├── package.json    # Jupyter lab extension package file
├── pyproject.toml  # Python package configuration
├── src             # Jupyter lab extension source code
├── test            # Python package tests
└── tsconfig.json   # Jupyter lab extension TypeScript configuration

Installation and uninstallation

You can use the following command for development installation:

pip install -e .[dev]

If you are to develop Jupyter lab extension, you will also need to install NodeJS and npm, and run the following command:

# Link your development version of the extension with JupyterLab
jupyter labextension develop . --overwrite
# Rebuild extension Typescript source after making changes
jlpm run build

To uninstall, you can run the following commands:

# Server extension must be manually disabled in develop mode
jupyter server extension disable coml

# Uninstall the Python package
pip uninstall mlcopilot

In development mode, you will also need to remove the symlink created by jupyter labextension develop command. To find its location, you can run jupyter labextension list to figure out where the labextensions folder is located. Then you can remove the symlink named coml within that folder.

Packaging

hatch build

Citation

If you find this work useful, please cite the paper as below:

@article{zhang2023mlcopilot,
    title={MLCopilot: Unleashing the Power of Large Language Models in Solving Machine Learning Tasks},
    author={Zhang, Lei and Zhang, Yuge and Ren, Kan and Li, Dongsheng and Yang, Yuqing},
    journal={arXiv preprint arXiv:2304.14979},
    year={2023}
}

License

The entire codebase is under MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mlcopilot-0.0.6.tar.gz (58.9 kB view details)

Uploaded Source

Built Distribution

mlcopilot-0.0.6-py3-none-any.whl (70.0 kB view details)

Uploaded Python 3

File details

Details for the file mlcopilot-0.0.6.tar.gz.

File metadata

  • Download URL: mlcopilot-0.0.6.tar.gz
  • Upload date:
  • Size: 58.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for mlcopilot-0.0.6.tar.gz
Algorithm Hash digest
SHA256 6c423115006d8fede183a375e380d388b624221e63a86a179c56f9571968e848
MD5 fcfbae7e0051ae81d5b6cb1258ea0545
BLAKE2b-256 cecae0d422e6f6a800767327fef0f85cf8556a7d56883ffba403abc0e3fd6e88

See more details on using hashes here.

File details

Details for the file mlcopilot-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: mlcopilot-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 70.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.13

File hashes

Hashes for mlcopilot-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 95e3455b736e47dacc1dddc90bbbb3371fb494a9c2ebc42e9340c8e0d1fc9d16
MD5 572baf58f10e5fc4efc4547fad3223d2
BLAKE2b-256 0c5c0f4d2f14fe26cec64d6d54893451fe11430a01e58548d2aefd9e6836dcdf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page