[关闭]
@zhongdao 2023-04-03T23:17:36.000000Z 字数 14801 阅读 591

chat-gpt

未分类


chat-gpt相关

image_1gsvu7if3s0c1nui1vbslq91f8rm.png-403.6kB

原理

ChatGPT为啥这么强:万字长文详解 by WolframAlpha之父 - 量子位的文章 - 知乎
https://zhuanlan.zhihu.com/p/606817644

chat-gpt的回答

训练一个接近 GPT-3 性能的模型需要大量的计算资源和时间。GPT-3 有 1750 亿个参数,目前个人难以在短时间内(数分钟或一天内)完成训练。然而,有一些开源项目可以帮助你训练较小的 GPT 模型,它们可能在个人硬件上训练时间较短。

Hugging Face Transformers: 这是一个非常流行的 NLP 库,提供了许多预训练模型,包括 GPT-2 和 GPT-3 的较小版本。Hugging Face 提供了详细的文档,包括如何在单机和多机环境下训练模型。你可以从这里查看官方文档:https://huggingface.co/transformers/training.html

Megatron: 这是一个由 NVIDIA 开发的大型语言模型训练库,旨在实现高效的多 GPU 训练。它支持 GPT 类型的模型。虽然它主要用于大型模型,但你可以使用较少的参数来训练较小的 GPT 模型。Megatron 的官方 GitHub 仓库(包括教程)可以在这里找到:https://github.com/NVIDIA/Megatron-LM

要训练一个能在数分钟或不超过一天内完成训练的 GPT 模型,你可能需要使用更小的模型(例如 GPT-2 的 DistilGPT2 或 GPT-2 small)和较小的数据集。请注意,这些模型的性能可能不会接近 GPT-3,但它们仍然可以在许多任务上表现得相当不错。在个人硬件上训练这些模型可能更加现实。

关于训练 GPT-2 模型的教程,Hugging Face 提供了一个详细的博客文章:https://huggingface.co/blog/how-to-train

此外,对于 GPT-3,由于其规模和训练成本,OpenAI 尚未完全开源。因此,目前无法在个人硬件上训练 GPT-3 级别的模型。

类gpt开源模型

由于 GPT(Generative Pre-trained Transformer)主要由 OpenAI 开发,并受到其知识产权保护,没有太多其他完全独立的 GPT 项目。然而,可以找到一些基于 GPT 的项目、类似 GPT 的项目,以及支持 GPT 模型的框架。以下是一些相关的开源项目:

Hugging Face Transformers(开源):一个非常流行的开源 NLP 库,提供了许多预训练模型,包括 GPT-2 和 GPT-3 的变体。支持多种语言。https://github.com/huggingface/transformers

OpenAI GPT-2(开源):OpenAI 发布的 GPT-2 模型,包括不同大小的变体。GPT-2 支持多种语言,但以英语为主。https://github.com/openai/gpt-2

OpenAI GPT-3(部分开源):GPT-3 模型未完全开源,但 OpenAI 提供了一个 API,允许用户通过 API 使用 GPT-3。支持多种语言。https://beta.openai.com/

Megatron(开源):NVIDIA 开发的用于训练大型语言模型的库,支持类似 GPT 的架构。虽然没有明确的预训练 GPT 模型,但可以用于训练自己的 GPT 类型模型。https://github.com/NVIDIA/Megatron-LM

EleutherAI GPT-Neo(开源):EleutherAI 开发的类似 GPT 的大型预训练模型,旨在模仿 GPT-3 的性能。支持多种语言。https://github.com/EleutherAI/gpt-neo

EleutherAI GPT-NeoX(开源):一个用于训练超大型模型的开源项目,灵感来自 GPT-3 和 Megatron。尚未发布预训练模型。https://github.com/EleutherAI/gpt-neox

OpenWebText2(开源):一个用于训练 GPT 类型模型的大型文本数据集,与 GPT-3 使用的 WebText 数据集类似。可以用于训练自己的 GPT 模型。https://github.com/EleutherAI/openwebtext2

BERT(开源):虽然不是 GPT,但 BERT(Bidirectional Encoder Representations from Transformers)是另一种非常流行的预训练 NLP 模型,由 Google 开发。BERT 支持多种语言。https://github.com/google-research/bert

T2T(Tensor2Tensor,开源):Google 发布的一个深度学习框架,可以训练类似 GPT 的 Transformer 模型。支持多种语言。https://github.com/tensorflow/tensor2tensor

fairseq(开源):Facebook AI Research 开发的一个序列到序列学习框架,支持多种 NLP 和语音任务。虽然 fairseq 主要关注其他 Transformer 模型(例如 BART 和 RoBERTa),但它也可以用于训练和部署类似 GPT 的模型。支持多种语言。https://github.com/pytorch/fairseq

请注意,许多这些项目都提供了预训练的 GPT 模型或支持训练自己的 GPT 模型。同时,它们支持多种语言,包括英语、中文等。这些项目的文档和资源可以帮助您了解如何使用这些库训练和部署 GPT 模型以及如何根据您的需求定制这些模型。

Colossal-AI 呢?

Colossal-AI 是一个开源项目,用于训练和部署大型深度学习模型,如 GPT。该项目旨在简化分布式训练,充分利用现有的计算资源,提高训练速度和性能。以下是有关 Colossal-AI 的一些关键信息:

开源:是,Colossal-AI 是一个开源项目,您可以在其 GitHub 仓库中找到源代码和相关文档:https://github.com/Colossal-AI/colossalai

支持语言:Colossal-AI 作为一个深度学习框架,其本身不直接关注特定的预训练模型或语言。然而,它支持使用类似 GPT 的模型进行训练,这些模型可以用于处理多种语言。

Colossal-AI 的核心特点包括:

易用性:提供简单的 API 和配置文件,以简化模型训练和部署。

分布式训练:支持多种分布式训练策略,如数据并行、模型并行和管道并行,以提高大型模型的训练速度和效率。

模型优化:包括混合精度训练、梯度累积和学习率调度等优化技术,以提高训练性能。

高度可定制:支持自定义模型、数据集和训练策略,以满足不同应用场景的需求。

社区支持:Colossal-AI 作为一个开源项目,其开发者和用户社区可以提供问题解答和最佳实践分享。

总之,Colossal-AI 是一个用于训练和部署大型深度学习模型(如 GPT)的强大框架,提供了易用的 API 和高度可定制的选项。虽然它不直接关注特定的预训练模型或语言,但它支持使用类似 GPT 的模型进行训练,这些模型可以用于处理多种语言。

Colossal-AI 与 gpt-2, gpt-3比起来如何?和 Hugging Face Transformers、Megatron相比呢?

Colossal-AI 是一个深度学习框架,专注于简化分布式训练,尤其是大型模型。与 GPT-2、GPT-3、Hugging Face Transformers 和 Megatron 相比,Colossal-AI 在目标和功能上存在一定差异。

GPT-2 和 GPT-3:这两个项目分别是 OpenAI 开发的 GPT-2 和 GPT-3 模型。它们主要提供了预训练好的 GPT 模型,可用于各种 NLP 任务。与 Colossal-AI 不同,这两个项目的关注点在于提供预训练的 GPT 模型,而不是提供一个训练和部署深度学习模型的框架。

Hugging Face Transformers:这是一个非常流行的 NLP 库,提供了许多预训练的 Transformer 模型,包括 GPT-2 和 GPT-3。Hugging Face Transformers 的目标是简化各种 NLP 任务的实现,包括文本生成、分类、问答等。虽然它支持微调预训练模型,但它的关注点不在于大规模分布式训练。

Megatron:这是一个由 NVIDIA 开发的库,用于训练大型语言模型。Megatron 支持类似 GPT 的模型结构,但主要关注分布式训练和高性能计算。Megatron 和 Colossal-AI 的目标相似,都是为了简化大型模型的训练。然而,Megatron 更侧重于 NVIDIA 硬件和底层技术,而 Colossal-AI 试图为更广泛的硬件和应用提供支持。

与 GPT-2 和 GPT-3 相比,Colossal-AI 的目标是提供一个训练和部署深度学习模型的框架,而不是特定的预训练模型。与 Hugging Face Transformers 相比,Colossal-AI 更关注分布式训练和大型模型,而 Transformers 更关注预训练模型的应用。与 Megatron 相比,Colossal-AI 和 Megatron 的目标相似,但 Colossal-AI 旨在为更广泛的硬件和应用提供支持。

总之,Colossal-AI 是一个与其他 GPT 模型和库有不同关注点的框架。它主要关注简化分布式训练和大型模型的部署,而不是提供预训练的 GPT 模型或支持特定的 NLP 任务。根据您的需求和目标,您可能会发现 Colossal-AI 是一个有用的工具,特别是如果您需要在大规模硬件上训练和部署大型模型。

gpt-j 与 gpt 3相比呢

GPT-J 是 EleutherAI 开发的大型预训练 Transformer 模型。GPT-J 基于 GPT-3 的架构,但使用了不同的训练数据集,即 Jax-Tokens 数据集。Jax-Tokens 数据集包括了大量英文文本,如书籍、网页、科学文章等。以下是 GPT-J 和 GPT-3 的一些比较:

性能:GPT-J 在多个 NLP 基准测试中表现出色,甚至超过了 GPT-3。在 LAMBADA 语言建模任务和 SuperGLUE 基准测试中,GPT-J 的表现均优于 GPT-3。

训练数据:如前所述,GPT-J 使用 Jax-Tokens 数据集进行训练,而 GPT-3 使用 WebText 数据集。这两个数据集的来源和组成略有不同,可能影响模型的领域知识和性能表现。

开源程度:GPT-J 是一个完全开源的模型,EleutherAI 提供了预训练模型的权重文件和相关代码。与之相比,GPT-3 只提供了一个 API,而不是完全开源的模型。

社区支持:由于 EleutherAI 是一个开源研究组织,GPT-J 的开发和支持可能更接近研究社区,有更多关于模型性能优化和应用的讨论。而 GPT-3 的支持主要来自 OpenAI,可能更侧重于商业用途和 API 客户。

总之,GPT-J 和 GPT-3 在结构上非常相似,但 GPT-J 在一些 NLP 任务上的性能优于 GPT-3。此外,GPT-J 使用不同的训练数据,并且完全开源。根据您的需求和目标,您可能会发现 GPT-J 是一个有用的替代品,尤其是如果您需要一个完全开源的、性能优异的预训练模型。

港科大开源LMFlow

3090单卡5小时,每个人都能训练专属ChatGPT,港科大开源LMFlow
https://mp.weixin.qq.com/s/LCGQyNA6sHcdfIIARSNlww

专业对比

https://www.softkraft.co/gpt3-open-source-alternatives/

https://outsourceit.today/open-source-gpt-3-alternatives/

fine-tuning

GPT fine-tune实战: 训练我自己的 ChatGPT - Uranus的文章 - 知乎 https://zhuanlan.zhihu.com/p/616504594

如何为GPT/LLM模型添加额外知识? - Uranus的回答 - 知乎 https://www.zhihu.com/question/591935281/answer/2956166127

五万字综述!Prompt-Tuning:深度解读一种新的微调范式 - kaiyuan的文章 - 知乎
https://zhuanlan.zhihu.com/p/618871247

image_1gt3ots6jhb816br19vh101k1gnp3h.png-331.3kB

RLHF

image_1gt3ovidh19c21t1t51c1tgp1o5n3u.png-137.2kB

image_1gt3p0mkq1l331i2e17vh78n1tf24b.png-288.3kB

其他gpt代码模型与教程

超小 gpt 实现

https://zhuanlan.zhihu.com/p/609544962

GPT in 60 Lines of NumPy
https://jaykmody.com/blog/gpt-from-scratch/#basic-layers

An unnecessarily tiny implementation of GPT-2 in NumPy.
https://github.com/jaymody/picoGPT

Karpathyt 简化 GPT 模型

小破本也能炼GPT!300行代码搞定,GitHub获6k星,来自特斯拉前AI总监 - 量子位的文章 - 知乎
https://zhuanlan.zhihu.com/p/600586039

前特斯拉 AI 高级总监、自动驾驶 Autopilot 负责人 Andrej Karpathy 发布了从零开始构建 GPT 模型的完整教程。

在长达近两小时的教学视频中,Karpathy 会教你根据 NLP 领域经典论文《Attention is All You Need》构建一个 transformer,再以此为基础完成一个类似 OpenAI 的 GPT-2 / GPT-3 的生成式预训练 GPT 模型。

该教学中提到的 GPT 模型是前几天 Andrej Karpathy 发布的 NanoGPT。它是对 minGPT 的重写,也是目前用于训练和微调中型尺度 GPT 最简单、最快的库。NanoGPT 代码设计目标是简单易读,其中 train.py 是一个约 300 行的代码;model.py 是一个约 300 行的 GPT 模型定义,它可以选择从 OpenAI 加载 GPT-2 权重。

目前该项目在 GitHub 上已经有超过 8000 的 Star 量:https://github.com/karpathy/nanoGPT

https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650866290&idx=3&sn=9f2101e4f3d246975f62f5d026cc3188&chksm=84e4c60cb3934f1a0fb7e5963f9dc8b1019ddb64126caddf1071fe5bcaaa6bb48f82c176cc2c&scene=21#wechat_redirect

系列基础教程
https://karpathy.ai/zero-to-hero.html

视频的 Google colab:
https://colab.research.google.com/drive/1JMLa53HDuA-i7ZBmqV7ZnA3c_fvtXnx-?usp=sharing

GitHub:
https://github.com/karpathy/ng-video-lecture

视频链接:
https://www.youtube.com/watch?v=kCc8FmEb1nY&list=PLAqhIrjkxbuWI23v9cThsA9GvCAUhRvKZ&index=7

仿照中文教程
https://bigeagle.me/2023/03/pico-gpt-1/
https://bigeagle.me/2023/03/pico-gpt-2/

图文并茂的讲解 transformer的讲解
https://theaisummer.com/transformer/

技术背景与概念说明

预训练模型和一般训练的关系

image_1gt034d42lu8122p134o3q60f9.png-217.8kB

预训练模型是经过在大量数据上进行无监督训练的神经网络。这个过程使模型能够学习到丰富的语言知识和语义结构。预训练模型通常作为迁移学习的基础,可以在后续的特定任务上进行微调。这种方法的优势在于,预训练模型已经学到了通用的特征表示,因此在微调时所需的标注数据较少,训练时间也相对较短。

而一般训练(从头训练)是指在特定任务上,从随机初始化的权重开始训练模型。这种方法可能需要大量的标注数据和计算资源,因为模型需要从头学习所有的特征表示。

使用 GPT-J 在特定领域进行微调:

是的,您可以使用 GPT-J 在特定领域进行微调。通过在预训练模型的基础上进行微调,您可以让模型适应特定任务的需求。微调 GPT-J 的步骤大致如下:

准备数据:收集特定领域的标注数据。这些数据应该与您的任务需求相符。

选择模型:从 EleutherAI 提供的 GPT-J 预训练模型中选择一个合适的版本。您可以根据计算资源和性能要求选择不同大小的模型。

微调:使用您的标注数据对预训练的 GPT-J 进行微调。这个过程中,模型会在预训练的基础上学习特定领域的知识和特征。

评估和优化:在验证集上评估微调后的模型性能。根据需要,您可以进一步调整模型参数或训练策略。

应用:将微调后的 GPT-J 模型部署到实际应用中,如文本生成、分类、问答等。

使用 GPT-J 或类似的预训练模型进行微调,可以帮助您在特定任务上实现更好的性能,同时节省计算资源和训练时间。

image_1gt040ptcec410dmr91vhqu3vm.png-222.9kB

word embedding

https://www.tensorflow.org/text/guide/word_embeddings?hl=en

transformer

https://theaisummer.com/transformer/

image_1gt062637dq7qnq1a8e1muv1q6113.png-275.7kB

loss

首先,我们把GPT模型看作是一位“预言家”,它的任务是预测接下来要出现的单词。损失函数就是用来衡量这位“预言家”的预测能力如何。损失越小,说明预测越准确;损失越大,预测越不准确。

假设我们给“预言家”一个句子:“今天天气很__”,接下来的单词可能有很多种选择,比如“好”、“热”、“冷”等。我们期望“预言家”能根据之前的语境预测出最有可能的单词。

为了评估“预言家”的预测能力,我们需要一个标准答案。假设在这个例子中,正确的答案是“好”。现在,“预言家”会给每个可能的单词分配一个概率值,比如“好”概率为0.

假设“预言家”给出的概率分布如下:

好:0.8
热:0.1
冷:0.1
这意味着“预言家”认为“好”是最有可能的单词,概率为80%。而“热”和“冷”的概率都是10%。

接下来,我们需要通过损失函数来衡量“预言家”的预测准确性。在GPT模型中,常用的损失函数是交叉熵损失(Cross-Entropy Loss)。交叉熵损失考虑了“预言家”对正确答案的预测概率。在这个例子中,正确答案是“好”,其概率为0.8。交叉熵损失越小,代表“预言家”的预测越接近正确答案。

为了计算交叉熵损失,我们需要先计算对数损失(Log Loss)。在这个例子中,对数损失是对正确答案“好”的概率(0.8)取对数,然后取相反数。计算过程如下:

对数损失 = -log(0.8)

这个结果就是我们的损失值。对数损失越小,说明“预言家”的预测越接近正确答案,模型性能越好。在训练GPT模型的过程中,我们希望通过不断调整模型的参数来降低损失值,从而提高预测准确性。

简而言之,GPT模型中的损失(loss)是衡量模型预测准确性的一个指标,它反映了模型预测的概率分布与实际答案的接近程度。训练GPT模型的目标就是最小化损失值,以提高模型的预测能力。

sampling / inference 抽样/推理

当我们使用GPT模型进行文本生成时,有两种主要的方法来选择下一个单词:采样(sampling)和推断(inference,又称贪婪解码,greedy decoding)。

采样(Sampling):
采样是一种随机的方法,它根据模型为每个可能的单词分配的概率来选择下一个单词。采样生成的文本通常更具创造性和多样性,但有时可能不太连贯。一个常见的采样方法是使用“temperature”参数来调整概率分布的形状,从而控制生成文本的多样性。较高的温度值会使生成的文本更多样,但可能更不稳定;较低的温度值会使文本更稳定,但可能较缺乏创意。
举个例子,假设我们有以下概率分布:

好:0.8
热:0.15
冷:0.05
采样时,我们会按照这个概率分布随机选择一个单词。这里有80%的概率选择“好”,15%的概率选择“热”,以及5%的概率选择“冷”。采样方法允许生成不同的输出,因为它会根据概率分布随机选择单词,而不是总是选择概率最高的那个。

推断(Inference)/贪婪解码(Greedy Decoding):
推断是一种确定性方法,即总是选择具有最高概率的单词作为下一个单词。这种方法生成的文本通常在语法和连贯性方面更加准确,但可能较为单一,缺乏多样性。
以刚才的例子为例,贪婪解码会直接选择概率最高的单词“好”作为下一个单词。这种方法不考虑其他可能的单词,因此输出结果较为确定。

总结一下,采样(sampling)和推断(inference)是GPT模型在生成文本时用于选择下一个单词的两种主要方法。

采样方法根据每个单词的概率随机选择下一个单词,这会导致生成的文本具有较高的创造性和多样性,但有时可能不太连贯。通过调整采样过程中的“temperature”参数,可以在多样性和连贯性之间取得平衡。

推断方法(贪婪解码)则总是选择具有最高概率的单词作为下一个单词,这使得生成的文本在语法和连贯性方面更加准确,但可能较为单一,缺乏多样性。

在实际应用中,可以根据所需的输出特征选择合适的方法。例如,如果需要生成更有创意和多样性的文本,采样方法可能更合适;而如果要求生成的文本具有较高的连贯性和准确性,推断方法可能更适用。

大模型

https://lifearchitect.ai/chatgpt/

image_1gt3n0iodv6k1tbcp9d2mr19vf1t.png-274.1kB

image_1gsvt2n5ggs510241huavk2pa09.png-580.5kB

image_1gt10jod8249gv311ih1rrq1bec1g.png-454kB

image_1gt3n7igp1keojs91n4o1dcu1g822a.png-523.2kB

image_1gt3ncc0d1861a0g1gop1v1g1u5p2n.png-515.2kB

https://mp.weixin.qq.com/s/7HRr55Md2Wl6EHQMGioumw

大语言模型调研汇总 - guilipa的文章 - 知乎
https://zhuanlan.zhihu.com/p/614766286

https://zhuanlan.zhihu.com/p/611403556 总结当下可用的大模型LLMs

META的LLaMA模型对中文支持不好(tokenizer只有700多中字),其他的开源大模型有对中文支持较好的吗?
bloom好一点,语料有16%是中文。
有个基于中文裁剪的389m参数小模型。
Bloom似乎也只有2048个token的输入吧?中文可能也只能输入1000字不到?

https://mp.weixin.qq.com/s/d98AfgZZtCfskLW3ZUoVwA 大规模神经对话系统研究前沿趋势分析报告 2022-12

A Survey of Large Language Models
https://arxiv.org/abs/2303.18223

基于Whisper的音频转录服务汇总 - 梁川的文章 - 知乎 https://zhuanlan.zhihu.com/p/618663665

总结开源可用的Instruct/Prompt Tuning数据 - 九号的文章 - 知乎
https://zhuanlan.zhihu.com/p/615277009

应用开源

ChatGPT科研神器:论文翻译润色一键搞定,还能帮你读代码 | GitHub热榜 - 量子位的文章 - 知乎
https://zhuanlan.zhihu.com/p/618697672

基于ChatGPT的翻译服务汇总 - 梁川的文章 - 知乎
https://zhuanlan.zhihu.com/p/614967145

基于垂直行业知识库和ChatGPT搭建行业问答机器人的技术架构 - 梁川的文章 - 知乎
https://zhuanlan.zhihu.com/p/613842066

Paul Graham GPT是一款基于人工智能的搜索和聊天工具,可用于搜索和阅读Paul Graham的所有文章。该应用使用OpenAI嵌入和Postgres数据库进行搜索和查找。此外,该应用使用GPT-3.5-turbo进行聊天功能,用户可根据其搜索结果提出问题并获得答案。该应用的代码和数据全面开源,使用者可以直接下载数据集进行使用。需要注意的是,使用该应用需要设置OpenAI API key和Supabase数据库等一系列环境变量。
https://github.com/mckaywrigley/paul-graham-gpt

数据集

ChatGPT detectors / 内容检测器 & Dataset
https://github.com/Hello-SimpleAI/chatgpt-comparison-detection

glue, super glue,

https://github.com/fighting41love/funNLP

https://github.com/lightaime/camel

image_1gt3oq2orj152mv1em48d3ebb34.png-128.8kB

evaluation

image_1gt3p2nfrrtmfq81vtb1taf13ll4o.png-477.6kB

开发环境

安装

  1. 我建议在 Ubuntu 上使用 Python 3.8 来运行 GPT API 和类似的模型。Python 3.8 在性能和功能方面有很好的平衡,同时维护了对许多库和工具的良好兼容性。Python 3.8 2021 10 月发布了最后一个功能版本,因此在可预见的未来仍将得到支持。
  2. 要在 Ubuntu 上安装 Python 3.8,请按照以下步骤操作:
  3. 首先,添加 deadsnakes PPA
  4. sudo add-apt-repository ppa:deadsnakes/ppa
  5. 更新软件包列表:
  6. sudo apt update
  7. 安装 Python 3.8
  8. sudo apt install python3.8
  9. 确认 Python 3.8 安装成功:
  10. python3.8 --version
  11. 接下来,安装与 Python 3.8 相关的 pip
  12. sudo apt install python3.8-venv python3.8-dev
  13. 现在,你可以使用 Python 3.8 创建虚拟环境并运行 GPT API 以及类似的模型:
  14. python3.8 -m venv venv
  15. source venv/bin/activate
  16. pip install --upgrade pip
  17. 在虚拟环境中,安装所需的库,例如 OpenAI TensorFlow PyTorch
  18. pip install openai tensorflow
  19. 然后,你可以在此环境中运行 GPT API 和类似的模型。

/root/venv/bin/python3.8 -m pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple/

/root/venv310/bin/python3.10 -m pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple/

mkdir -p ~/.config/pip/
touch ~/.config/pip/pip.conf
nano ~/.config/pip/pip.conf

[global]
index-url = https://mirrors.aliyun.com/pypi/simple/

  1. sudo apt install python3.10
  2. sudo apt install python3.10-venv python3.10-dev -y
  3. python3.10 -m venv venv310
  4. source venv310/bin/activate
  5. pip install --upgrade pip

虚拟环境运行

  1. 要进入虚拟环境,首先创建一个虚拟环境,然后激活它。创建虚拟环境的命令如下(使用 Python 3.8 作为示例,将 venv 替换为你想要的虚拟环境名称):
  2. python3.8 -m venv venv3.8
  3. 要激活虚拟环境,请运行以下命令:
  4. 对于 Linux macOS
  5. source venv3.8/bin/activate
  6. 对于 Windows
  7. venv\Scripts\activate
  8. 现在你已经进入了虚拟环境,可以安装所需的 API 和模型。在虚拟环境中安装的库和模型都将存在于虚拟环境的目录中,与系统全局安装的库分开。
  9. 要退出虚拟环境,只需运行以下命令:
  10. deactivate
  11. 这将使你返回到系统全局环境。
  12. 是的,你可以在同一台计算机上安装多个 Python 版本,并为每个版本创建单独的虚拟环境。这在管理不同项目和依赖项时非常有用,特别是当这些项目需要不同版本的 Python 或库时。
  13. 例如,如果你已经安装了 Python 3.8 Python 3.11,你可以分别为它们创建虚拟环境:
  14. python3.8 -m venv venv38
  15. python3.11 -m venv venv311
  16. 然后,你可以分别激活和使用这些虚拟环境,根据需要在它们之间切换。

pip install transformers
pip install datasets
pip install tensorflow

conda

  1. conda create --name py310 python=3.10
  2. conda activate py310
  3. conda install -c conda-forge jupyterlab
  4. conda install -c conda-forge ipywidgets
  5. conda install -c conda-forge openai
  1. # or in py code: openai.api_key = "xxxxx"
  2. export OPENAI_API_KEY=在这里写你获取到的ApiKey
  3. jupyter-lab .

conda deactivate p310

huging face use

huggingface-cli login

pip install datasets

https://pytorch.org/get-started/locally/

显卡: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB]
pip3 install torch torchvision torchaudio
普通显卡:

nanaGPT

https://github.com/karpathy/nanoGPT

  1. pip install torch
  2. pip install numpy
  3. pip install transformers
  4. pip install datasets
  5. pip install tiktoken
  6. pip install wandb
  7. pip install tqdm
  8. mkdir ai
  9. cd ai
  10. git clone https://github.com/karpathy/nanoGPT.git
  11. # or
  12. wget https://github.com/karpathy/nanoGPT/archive/refs/heads/master.zip -O nanoGPT.zip
  13. unzip nanoGPT.zip
  14. cd ~/ai/nanoGPT-master/data/shakespeare_char
  15. rm -f input.txt
  16. # wget https://raw.githubusercontent.com/karpathy/char-rnn/master/data/tinyshakespeare/input.txt
  17. wget https://raw.githubusercontent.com/karpathy/ng-video-lecture/master/input.txt
  1. # 将其从原始文本转换为一个大的整数流
  2. python data/shakespeare_char/prepare.py
  3. # 快速训练一个婴儿 GPT , 用gpu
  4. python train.py config/train_shakespeare_char.py
  5. # 用一般电脑cpu训练
  6. python train.py config/train_shakespeare_char.py --device=cpu --compile=False --eval_iters=20 --log_interval=1 --block_size=64 --batch_size=12 --n_layer=4 --n_head=4 --n_embd=128 --max_iters=2000 --lr_decay_iters=2000 --dropout=0.0
  7. # 一个上下文大小高达 256 个字符、384 个特征通道的 GPT,它是一个 6 层 Transformer,每层有 6 个头。在一个 A100 GPU 上,此训练运行大约需要 3 分钟,最佳验证损失为 1.4697。根据配置,模型检查点被写入 --out_dir 目录 out-shakespeare-char 。因此,一旦训练完成,我们就可以通过将采样脚本指向此目录来从最佳模型中采样
  8. python sample.py --out_dir=out-shakespeare-char

autoDL & chatglm

https://github.com/MingGuangShao/GPT-Models-Single-GPU

AutoDL上运行CHATGLM-6B(教程)
https://zhuanlan.zhihu.com/p/617176886

https://www.codewithgpu.com/i/MingGuangShao/GPT-Models-Single-GPU/ChatYuan-large-v2

https://github.com/clue-ai/ChatYuan

https://colab.research.google.com/drive/1ZcLIJuemiojigrfjbsDMBWrX7JqXZX6I?usp=sharing#scrollTo=McjkYNKnnQU3

综合应用模型

交互方式连接不同视觉模型的开源工具
https://github.com/visual-openllm/visual-openllm

chatpdf
https://github.com/l15y/wenda

Paul Graham GPT 是一个基于人工智能的搜索和聊天工具,专门为保罗·格雷厄姆的文章设计。它使用 OpenAI Embeddings 技术进行搜索,与 Supabase 提供支持,并使用 GPT-3.5-turbo 技术实现聊天功能。该工具提供一个搜索界面和一个聊天界面,让用户能够轻松找到与保罗·格雷厄姆的文章相关的信息。在使用该工具前,需要先创建一个 Supabase 数据库,并设置 OpenAI API 密钥,然后运行指定的脚本,即可开始搜索和聊天。
https://github.com/mckaywrigley/paul-graham-gpt

反向工程化的ChatGPT API,基于OpenAI开发,可扩展为聊天机器人等其他用途。支持Python3.9及以上版本。可通过安装revChatGPT来使用,同时也提供了基础示例以及高级开发者用法。
https://github.com/acheong08/ChatGPT

colab

已购买任一 Colab 付费方案的用户可使用付费 GPU。只需在菜单中依次选择运行时 > 更改运行时类型,升级笔记本的 GPU 设置,即可启用付费加速器。根据实际可用情况,选择付费 GPU 可能会授予您使用 V100 或 A100 Nvidia GPU 的权限。

免费版 Colab 会根据配额限制和实际可用情况,授予您使用 Nvidia T4 GPU 的权限。

只需执行以下单元格,即可随时查看分配给您的 GPU。如果以下代码单元格的运行结果是“Not connected to a GPU”(未连接到 GPU),您可以通过以下步骤更改运行时:在菜单中依次选择运行时 > 更改运行时类型,启用 GPU 加速器,然后重新执行该代码单元格。

https://colab.research.google.com/notebooks/pro.ipynb#scrollTo=QMMqmdiYMkvi

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注