使用 Python库深入探索生成式 AI 世界:一种深入浅出的方法

生成式 AI 就像数字世界的魔杖,可以创造从迷人的诗歌到栩栩如生的图像等一切。但是,如果您想学习这个激动人心的领域,从哪里开始呢?进入 Python——一种拥有大量库和活跃社区的语言,是您旅程的完美起点。

在本指南中,我们将探索 Python 中一些最受欢迎的生成式 AI 工具,为您提供开启创意冒险的专业知识和代码片段。

1. 使用 Transformers 编织文字

想象一下拥有一个可以像大师级讲故事者一样讲述引人入胜的故事的工具。这就是 Transformers 库所提供的,它基于 PyTorch 的强大功能。它允许您与 GPT-2 等预先训练的语言模型进行交互,这些模型已经吞噬了大量的文本和代码来生成类似人类的连贯文本。以下是使用它制作创意文本的方法:

from transformers import GPT2Tokenizer, GPT2LMHeadModel

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

# 定义您的故事提示
prompt = “很久很久以前,在一个遥远的地方……”

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

# 对生成的文本进行解码
generated_text = tokenizer.decode(output[0], skip_special_tokens=True)

# 打印故事
print(prompt + generated_text)

首先从 Hugging Face 的模型中心加载 GPT-2 模型和标记器。您的故事提示将被编码为模型可以理解的格式。generate 函数接受这个编码的提示并讲述一个长达 100 个字的故事,使用波束搜索探索多种可能的延续。最后,生成的文本被解码为可读格式并与原始提示一起打印。

2. 使用扩散器绘制图片

扩散器(Diffusers)是另一个基于 PyTorch 的 库,它简化了使用图像扩散模型的实验。这些模型从随机噪声开始,并迭代地对其进行细化以匹配您提供的文本描述。以下是如何从文本提示创建图像:

from diffusers import StableDiffusionPipeline

# 定义图像提示
prompt = “雄伟的雄鹰翱翔在湛蓝的天空中”

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

# 生成图像
image = pipe(prompt=prompt, num_inference_steps=50)

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

首先定义一个描述所需图像的文本提示。加载稳定扩散管道并将提示传递给管道函数。num_inference_steps 参数控制模型细化图像的迭代次数 – 步骤越多,保真度越高。最后,将生成的图像保存为 PNG 文件。

2.1 使用 StyleGAN2 制作像素

StyleGAN2 是 NVIDIA 的一个项目,可帮助您创建具有出色风格控制的逼真图像。以下是使用方法:

# 安装 StyleGAN2 库(官方网站上的说明)
import stylegan2_pytorch as sg2

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

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

# 生成图像
generated_image = generator(latent_vector)

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

安装后(请查看官方网站上的说明),为面部加载预训练模型,如“ffhq”。 sample_latent 函数生成一个随机起点,生成器模型将其转换为图像。

3. 使用 Gradio 完成代码

虽然 Gradio 本身并不是一个生成式 AI 工具,但它是一种与这些模型交互并展示这些模型的强大方式。以下是如何创建一个简单的代码完成界面:

from transformers import AutoTokenizer, AutoModelForSequenceClassification

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

def complete_code(code):
"""完成提供的代码片段。"""
coded_input = tokenizer(code, return_tensors="pt")
output = model(**encoded_input)
return tokenizer.decode(output.logits.squeeze().argmax(-1), skip_special_tokens=True)

# 创建 Gradio 界面
interface = gradio.Interface(complete_code, input="text", output="text", title="Code Completion")

# 启动接口
interface.launch()

此设置使用 OpenAI 的预训练代码完成模型。complete_code 函数获取代码片段,对其进行编码,然后使用该模型预测最有可能的延续。预测被解码并返回。然后,Gradio 创建一个简单的界面,用户可以在其中输入代码并查看建议的完成。

总结
Python 生态系统提供了丰富的工具来探索和利用生成 AI 的力量。从 TensorFlow 和 PyTorch 等强大的库到 Diffusers 和 StyleGAN 等专业工具,开发人员可以使用各种工具包来处理各种生成任务。随着这个领域的不断发展,我们可以期待出现更强大、更用户友好的工具,使生成 AI 的访问变得民主化,以用于各种目的。

更多