Python中用于AIGC的4种工具

生成式人工智能已成为创建新内容和创新内容的强大工具,从迷人的诗歌到逼真的图像。但是当您开始学习这个令人兴奋的领域时,您从哪里开始呢?Python 拥有强大的库和活跃的社区,是一个完美的起点。

本文深入研究了一些最流行的生成人工智能Python工具,为您提供知识和代码示例,以启动您的创意之旅。

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

from transformers import GPT2Tokenizer, GPT2LMHeadModel

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

# 定义启动提示
prompt =
"Once upon a time, in a land far, far away..."

# 为提示编码并生成文本
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 the generated text
print(prompt + generated_text)

  • 首先从Hugging Face模型中心加载预先训练好的 GPT-2 模型和标记器。
  • 然后,作为种子的提示会被编码成模型能理解的格式。
  • 生成函数会接收编码后的提示,并生成最大长度为 100、波束搜索为 5 的单词序列,以探索不同的潜在连续词。
  • 最后,生成的文本被解码为人类可读的格式,并与原始提示一起打印出来。

2.使用Diffuser生成图像
Diffusers 是另一个基于 PyTorch 的库,它简化了图像扩散模型的实验。这些模型从随机噪音开始,迭代完善图像,使其与用户提供的文本描述相匹配。下面是一个使用 Diffusers 根据文本提示生成图像的示例:

from diffusers import StableDiffusionPipeline

# 定义文本提示
prompt = "A majestic eagle soaring through a clear blue sky"

# Load the Stable Diffusion pipeline
pipe = StableDiffusionPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5")

# Generate the image
image = pipe(prompt=prompt, num_inference_steps=50)

# Save the generated image
image.images[0].save(
"eagle.png")

  • 定义了一个描述所需图像的文本提示。
  • 然后加载稳定扩散管道,并将提示传递给管道函数。
  • num_inference_steps(推理步数)参数控制模型完善图像的迭代次数,迭代步数越多,图像保真度越高。
  • 最后,生成的图像会保存为 PNG 文件。

2.1 图像生成:使用 StyleGAN2 绘制像素图像
作为英伟达公司的一个项目,StyleGAN2 可帮助您创建逼真的图像,并对图像风格进行出色的控制。下面让我们来了解一下如何使用 StyleGAN2:

# Install StyleGAN2 library (instructions on official website)
import stylegan2_pytorch as sg2

# Load a pre-trained model (e.g., FFHQ)
generator = sg2.Generator(ckpt="ffhq.pkl")

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

# Generate the image
generated_image = generator(latent_vector)

# Display or save the generated image using libraries like OpenCV or PIL

安装完成后(详细说明请参阅官方网站),你就可以加载一个像 "ffhq "这样的预训练模型来表示人脸。sample_latent 函数会随机生成一个起点,然后生成器模型会将其转换为图像。

3.使用 Gradio 完成代码
Gradio 并不是生成式人工智能的唯一工具,但它可以成为与这些模型交互和展示这些模型的强大工具。下面是一个使用 Gradio 创建简单代码完成界面的示例:

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):
 
"""Completes the provided code snippet."""
  encoded_input = tokenizer(code, return_tensors=
"pt")
  output = model(**encoded_input)
  return tokenizer.decode(output.logits.squeeze().argmax(-1), skip_special_tokens=True)

# Create the Gradio interface
interface = gradio.Interface(complete_code, inputs=
"text", outputs="text", title="Code Completion")

# Launch the interface
interface.launch()

  • 它利用了 OpenAI 预先训练好的代码完成模型。
  • complete_code 函数将代码片段作为输入,对其进行编码,
  • 然后使用模型预测最有可能的续码。预测出的续码会被解码并返回。
  • 然后,Gradio 被用来创建一个简单的界面,用户可以输入代码并查看建议的补全结果。

总之
Python 生态系统为探索和利用生成式人工智能的力量提供了丰富的工具。从 TensorFlow 和 PyTorch 这样的成熟库到 Diffusers 和 StyleGAN 这样的专业产品,开发人员可以使用多种工具包来处理各种生成任务。随着这一领域的不断发展,我们可以预见会有更多功能强大、用户友好的工具出现,从而使生成式人工智能的获取和应用更加民主化,以满足各种不同的目的。