生成式人工智能已成为创建新内容和创新内容的强大工具,从迷人的诗歌到逼真的图像。但是当您开始学习这个令人兴奋的领域时,您从哪里开始呢? Python 拥有强大的库和活跃的社区,是一个完美的起点。本文深入探讨了一些最流行的 Python用于生成人工智能的工具,为您提供知识和代码示例,以启动您的创意之旅。

1.使用 Transformer 生成文本

Transformers 库,构建于 之上PyTorch 提供了一种与预训练语言模型交互的便捷方式,例如 GPT-2。这些模型经过海量文本和代码数据集的训练,可以生成真实且连贯的文本延续。以下是使用 transformers 库生成创意文本的示例:

Python

 

从变压器导入 GPT2Tokenizer、GPT2LMHeadModel

# 加载预训练模型和分词器
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
模型 = GPT2LMHeadModel.from_pretrained("gpt2")

# 定义启动提示
提示=“从前,在一个很远很远的地方……”

# 对提示进行编码并生成文本
encoded_prompt = tokenizer.encode(提示,return_tensors =“pt”)
输出 = model.generate(encoded_prompt, max_length=100, num_beams=5)

# 解码生成的文本
generated_text = tokenizer.decode(输出[0],skip_special_tokens=True)

# 打印生成的文本
打印(提示+生成文本)

因此,它首先从 Hugging Face 模型中心加载预训练的 GPT-2 模型和分词器。然后,充当种子的提示被编码为模型可以理解的格式。 generate 函数采用此编码提示并生成最大长度为 100 且波束搜索为 5 的单词序列,探索不同的潜在延续。最后,生成的文本被解码回人类可读的格式并与原始提示一起打印。

2.使用漫射器生成图像

Diffusers 是另一个基于 PyTorch 构建的库,它简化了图像扩散模型的实验。这些模型从随机噪声开始,迭代地细化图像以匹配用户提供的文本描述。以下是使用 Diffusers 根据文本提示生成图像的示例:

Python

 

从扩散器导入 StableDiffusionPipeline

# 定义文本提示
提示=“雄伟的雄鹰在蔚蓝的天空中翱翔”

# 加载稳定扩散管道
管道 = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5")

# 生成图像
图像=管道(提示=提示,num_inference_steps=50)

# 保存生成的图像
image.images[0].save("eagle.png")

它定义了描述所需图像的文本提示。然后加载稳定扩散管道,并将prompt传递给pipe函数。 num_inference_steps 参数控制模型细化图像所需的迭代次数,步骤越多通常会导致更高的保真度。最后,将生成的图像保存为PNG文件。

2.1 图像生成:使用 StyleGAN2 用像素绘画

进入图像生成领域,NVIDIA 项目 StyleGAN2 使您能够通过对风格的出色控制来创建逼真的图像。以下是 StyleGAN2 的使用概览:

Python

 

# 安装StyleGAN2库(官网说明)
将 stylegan2_pytorch 导入为 sg2

# 加载预训练模型(例如 FFHQ)
生成器 = sg2.Generator(ckpt="ffhq.pkl")

# 定义一个随机潜在向量作为起点
潜在向量 = sg2.sample_latent(1)

# 生成图像
generated_image = 生成器(潜在向量)

# 使用 OpenCV 或 PIL 等库显示或保存生成的图像

 

安装后(详细说明请参阅官方网站),您加载一个预训练的模型,例如代表人脸的“ffhq”。 sample_latent 函数生成一个随机起点,generator 模型将其转换为图像。

3.使用 Gradio 完成代码

Gradio 不仅仅适用于生成式 AI,而且它可以成为与这些模型交互和展示这些模型的强大工具。下面是使用 Gradio 创建简单的代码补全界面的示例:

Python

 

从转换器导入 AutoTokenizer、AutoModelForSequenceClassification

# 加载预训练的代码完成模型
tokenizer = AutoTokenizer.from_pretrained("openai/code-davinci-003")
模型 = AutoModelForSequenceClassification.from_pretrained("openai/code-davinci-003")

def 完整代码(代码):
  """完成提供的代码片段。"""
  编码输入=分词器(代码,return_tensors =“pt”)
  输出=模型(**编码输入)
  返回 tokenizer.decode(output.logits.squeeze().argmax(-1),skip_special_tokens=True)

# 创建Gradio界面
接口= gradio.Interface(完整代码,输入=“文本”,输出=“文本”,标题=“代码完成”)

# 启动界面
接口.launch()

它利用 OpenAI 的预训练代码完成模型。 complete_code 函数将代码片段作为输入,对其进行编码,然后使用模型来预测最可能的延续。预测的延续被解码并返回。然后使用 Gradio 创建一个简单的界面,用户可以在其中输入代码并查看建议的完成情况。

总而言之,Python 生态系统提供了一套丰富的工具来探索和利用生成式 AI 的力量。从 TensorFlow 和 PyTorch 等成熟的库到 Diffusers 和 StyleGAN 等专业产品,开发人员可以使用多种工具包来处理各种生成任务。随着该领域的不断发展,我们可以期待更强大和用户友好的工具的出现,进一步使生成式人工智能的访问和应用更加民主化,以适应不同的目的

Comments are closed.