查看原文
其他

笔记本运行私人ChatGPT?只要3步!

算法进阶 算法进阶 2023-09-10

一、相关项目汇总

简单罗列下ChatGPT的平替开源项目(更多信息可到https://github.com/nichtdax/awesome-totally-open-chatgpt),如下:

简单介绍下其中比较出名的项目,

ChatGLM

ChatGLM-6B 是一个开源的、支持中英双语问答的对话语言模型,并针对中文进行了优化。该模型基于 General Language Model (GLM) 架构,具有 62 亿参数。

和OpenAI烧了十几万张A100显卡相比,ChatGLM结合模型量化技术,用户可以在消费级的显卡上进行本地部署,INT4 量化级别下最低只需 6GB 显存!开源地址:https://github.com/THUDM/ChatGLM-6B

Alpaca

为了提高LLaMA 模型性能,来自斯坦福的研究者帮助其完成了指令微调的工作,基于 LLaMA 7B训练了一个 70 亿参数新模型--Alpaca。

实验结果表明,Alpaca 的很多行为都与 text-davinci-003 类似。也就是说,只有 7B 参数的轻量级模型 Alpaca 性能可媲美 GPT-3.5 这样的超大规模语言模型。

alpaca相关项目如下:

  • 项目地址:https://github.com/tatsu-lab/stanford_alpaca  算力需求:相对较高(8 个 80GB A100 上微调了 3 个小时)
  • 项目地址:https://github.com/tloen/alpaca-lora   使用 LoRA技术;算力需求:只需消费级显卡
  • 项目地址:https://github.com/LC1332/Chinese-alpaca-lora  中文语言模型;算力需求:只需消费级显卡

即便上述的模型效果已经很不错,但这些大模型项目对硬件要求并不(足够)低..,再者有些配置相当复杂。

几经周折,我找到了能在笔记本上面就能运行的GPT模型--GPT4ALL

二、GPT4ALL介绍及配置

GPT4All,也是一种基于 LLaMA-7B 语言模型(如下论文)。它基于从公开可用的数据源收集各种问题和提示的样本,然后将它们交给ChatGPT(更具体地说是GPT-3.5-Turbo)生成806,199个高质量提示生成对。接下来,编辑数据并删除低多样性回答,确保数据涵盖各种主题。以此训练数据,他们发现他们的模型比同类型的模型表现更好。

项目地址:https://github.com/nomic-ai/gpt4all

GPT4All,按照官网配置只要3步!1、下载gpt4all-lora-quantized.bin文件, 大小4GB ,地址:https://the-eye.eu/public/AI/models/nomic-ai/gpt4all/gpt4all-lora-quantized.bin

2、下载项目文件,地址:https://github.com/nomic-ai/gpt4all,将上面的文件放入chat文件夹。(如果网络速度不佳,可以weixin关注“算法进阶”, 后台回复“GPT”,直接获取完整gpt4all项目及模型文件。)

3、打开电脑终端,运行如下命令。切换到chat目录,运行程序聊天

如下,开始在windows上面运行gpt4all聊天,在小破笔记本上面运行还是不卡的,需要注意的是,模型不支持中文对话,中文的理解能力很有限,此外还是容易犯一些理解性的错误。

代码生成的功能,问了几次如何用python倒排字符串,可以发现有些小错误,但回答提出的方法还是比较全面的。

训练GPT4ALL模型

此外,还可以通过如下步骤重新训练模型,

Setup

Clone the repo

git clone --recurse-submodules https://github.com/nomic-ai/gpt4all.git

git submodule configure && git submodule update

配置环境

python -m pip install -r requirements.txt

cd transformers
pip install -e . 

cd ../peft
pip install -e .

Training

accelerate launch --dynamo_backend=inductor --num_processes=8 --num_machines=1 --machine_rank=0 --deepspeed_multinode_launcher standard --mixed_precision=bf16 --use_deepspeed --deepspeed_config_file=configs/deepspeed/ds_config.json train.py --config configs/train/finetune-7b.yaml

Generate

python generate.py --config configs/generate/generate.yaml --prompt "Write a script to reverse a string in Python"
- END -


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存