Jupyter notebook的文本转代码功能
一个概念验证的Jupyter扩展,可将英语查询转换为相关的Python代码。
更多详细信息的博客文章:
数据分析变得简单:Jupyter notebook的文本转代码功能
演示视频:
Jupyter notebook的文本转代码功能
支持的操作系统:
- Ubuntu
- macOS
安装
注意:我们已将插件从mopp重命名为jupyter-text2code。在安装新的jupyter-text2code版本之前,请先卸载mopp。
pip uninstall mopp
仅CPU安装:
对于Mac和其他没有NVIDIA GPU的Ubuntu安装,我们需要在安装时显式设置环境变量。
export JUPYTER_TEXT2CODE_MODE="cpu"
GPU安装依赖:
sudo apt-get install libopenblas-dev libomp-dev
安装命令:
git clone https://github.com/deepklarity/jupyter-text2code.git
cd jupyter-text2code
pip install .
jupyter nbextension enable jupyter-text2code/main
卸载:
pip uninstall jupyter-text2code
使用说明:
- 通过运行以下命令启动Jupyter notebook服务器:
jupyter notebook
- 如果在Jupyter notebook中看不到
Nbextensions
选项卡,请运行以下命令:jupyter contrib nbextension install --user
- 您可以打开示例
notebooks/ctds.ipynb
笔记本进行测试 - 如果安装成功,那么首次使用时,将从
tensorflow_hub
下载Universal Sentence Encoder模型 - 点击菜单栏上出现的
Terminal
图标(以激活扩展) - 输入"help"查看仓库中当前支持的命令列表
- 观看演示视频了解一些示例
jupyter-text2code的Docker容器(旧版本)
我们已在Docker Hub上发布了预装所有依赖项的CPU和GPU镜像。
访问https://hub.docker.com/r/deepklarity/jupyter-text2code/ 下载镜像和使用说明。
CPU镜像大小:1.51 GB
GPU镜像大小:2.56 GB
模型训练:
该插件现在支持pandas命令+从awesome-notebooks中快速插入可用代码片段。通过这一更改,我们现在可以在Jupyter选项卡中获取大多数流行集成的代码片段。例如:
- 获取Twitter粉丝数
- 从Instagram获取故事统计数据
详细的训练步骤可在scripts README中找到,我们还评估了不同模型的性能,最终选择了SentenceTransformers的
paraphrase-MiniLM-L6-v2
添加更多意图的步骤:
- 在
ner_templates
中添加更多带有新intent_id的模板 - 生成训练数据。如果需要不同的生成技术或引入新实体,请修改
generate_training_data.py
- 训练意图索引
- 训练NER模型
- 修改
jupyter_text2code/jupyter_text2code_serverextension/__init__.py
,添加新意图的条件和实际代码 - 通过运行
pip install .
重新安装插件
待办事项:
- [] 添加Ollama支持以使用本地LLMs
- 发布Docker镜像
- 重构代码,使其更加模块化,删除重复代码等
- 添加对更多命令的支持
- 改进意图检测和NER
- 添加对Windows的支持
- 探索句子改写以生成更高质量的训练数据
- 收集真实世界的变量名、库名,而不是随机生成
- 尝试使用基于transformer的模型进行NER
- 有足够数据后,训练一个语言模型直接进行英语到代码的转换,就像GPT-3那样,而不是在管道中使用单独的阶段
- 创建一个调查以收集语言数据
- 添加语音转代码支持