跳至主要内容

5 个您可以用生成式 AI 模型完成的项目(含示例)

学习如何使用生成式 AI 模型,创建图像编辑器、在低资源环境中运行的类 ChatGPT 聊天机器人、贷款审批分类应用、自动化 PDF 交互工具,以及由 GPT 驱动的语音助手。
Abid Ali Awan
Abid Ali Awan

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续继续即表示您接受我们的 使用条款,我们的 隐私政策 ,并且您的数据存储在美国。

一个 AI 同时处理多项任务

在本文中,我们将探索五个生成式 AI 项目,帮助您构建并强化您的机器学习与数据科学作品集。通过这些项目,您将加深对前沿技术(如 Stable Diffusion、Segment Anything、LangChain、Alpaca-LoRA 等)的理解。

无论您是刚接触生成式 AI,还是已有一定经验,这些项目都能为您提供实用技能,助您在求职与面试中脱颖而出。

您可以通过阅读《什么是 GPT-4,它为何重要?》来了解 GPT 系列(包括 GPT-1、GPT-2、GPT-3 和 GPT-4)。您也可以在另一篇文章中查看更多AI 项目。

1. StableSAM:结合 Segment Anything 的 Stable Diffusion 补画

在该项目中,您将使用 Meta 的 segment-anything、Hugging Face 的 diffusers,以及 Gradio,创建一个可以更改背景、面部、衣物或任意所选区域的应用。它只需要图像、选区和提示词。

适用场景:

StableSAM 非常适合从事数字营销、设计与娱乐行业的创意人员。它允许用户精准编辑图像的特定部分,非常适合更换背景、变更服装或修改宣传素材中的对象。对于爱好者而言,它也是无需高级设计技能即可定制图像的绝佳工具。

您将学习的技能:

  • 使用 Stable Diffusion 实现图像补画流水线
  • 使用 Meta 的 Segment Anything Model(SAM)进行图像分割
  • 使用 Gradio 创建交互式 Web 应用
  • 使用 Hugging Face diffusers 进行模型部署

创建 Stable Diffusion 补画流水线

我们将使用 stabilityai/stable-diffusion-2-inpainting · Hugging Face 上可用的 diffuser 与模型权重创建 Stable Diffusion 补画流水线。随后,我们将其添加到 CUDA 以启用 GPU 加速。 

定义图像掩码与补画函数

图像掩码函数使用 SAM Predictor 创建。它接收图像、所选图像区域以及一个 is_backgroud 布尔值,以生成掩码图像与分割结果。 

之后,补画函数使用 Stable Diffusion 补画流水线来更改图像的选定部分。该流水线需要输入图像、掩码图像、分割图像、提示词与反向提示词。  

创建 Gradio 界面

您将创建一行,并添加三个图像模块。对于最小可用产品,您需要再添加一行并放置提交按钮。随后,您需要修改输入图像对象以选择像素、生成掩码与分割,并为提交按钮添加动作以运行补画函数。

Gradio 学习起来相当容易。您可以通过阅读 Gradio 文档掌握全部内容。 

StableSAM 的改进版本

StableSAM 的改进版本可在 Hugging Face 获取,其中包含使用 ControlNet 的自定义补画流水线。它采用 Runway ML Stable Diffusion Inpainting,而非 Stability AI。 

StableSAM 软件包

如您所见,最终版本的应用界面简洁,包含分割模块、清除按钮、背景选项与反向提示词。

StableSAM 演示

资源:

2. Alpaca-LoRA:用极少资源构建类 ChatGPT 聊天机器人 

Alpaca-LoRA 提供了使用单块 GPU 创建专用类 ChatGPT 聊天机器人的全部必要组件。在该项目中,我们将了解初始设置、训练、推理脚本,以及在 CPU 上运行推理的原生客户端。

适用场景:

本项目非常适合希望构建定制化对话式 AI 系统的人士。无论您是为小型企业创建客服机器人,还是构建个人助手,Alpaca-LoRA 都能以有限算力高效训练专用聊天机器人。该项目也非常适合在预算受限的情况下试验语言模型微调。

您将学习的技能:

  • 在单块 GPU 上使用 LoRA 微调语言模型
  • 设置并使用 Stanford Alpaca 数据集
  • 在低资源环境(如树莓派)中运行推理脚本
  • 部署基于 Gradio 的聊天机器人界面
  • 理解 LLaMA 等大型语言模型的训练与优化方式

本地环境搭建

  1. 克隆仓库:tloen/alpaca-lora
  2. 使用 pip install -r requirements.txt 安装依赖
  3. 若 bitsandbytes 无法正常工作,请从源码安装。 

训练

本部分我们将查看可在 LLaMA 模型上运行、基于清洗后的 Stanford Alpaca 模型进行微调的脚本。 

您可以查看仓库以调整超参数,从而获得更好的性能。

python finetune.py \
    --base_model 'decapoda-research/llama-7b-hf' \
    --data_path 'yahma/alpaca-cleaned' \
    --output_dir './lora-alpaca'

推理

推理脚本从 Hugging Face 读取基础 LLaMA 模型并加载 LoRA 权重,以运行 Gradio 界面。 

python generate.py \
    --load_8bit \
    --base_model 'decapoda-research/llama-7b-hf' \
    --lora_weights 'tloen/alpaca-lora-7b'

您也可以使用 alpaca.cpp 在 CPU 或 4GB 内存的树莓派 4 上运行 alpaca 模型。此外,您可以使用 Alpaca-LoRA-Serve 创建如下面所示的 ChatGPT 风格界面。 

Alpaca-LoRA-Serve 截图

资源:

3. 使用 LangChain 与 ChatGPT 实现 PDF 交互自动化

利用 LangChain 的 PDF 加载器、OpenAI Embeddings 与 GPT-3.5,创建您自己的 ChatPDF 克隆。您将构建一个可以与书籍、法律文档与其他重要 PDF 文档进行对话的聊天机器人。

适用场景:

本项目适用于自动化以文档为中心的工作流程,例如分析研究论文、法律合同或财务报告。您可以构建一个回答 PDF 文档特定问题的聊天机器人,这对法律、学术或商业智能等需要处理大量文本的行业尤为有用。

您将学习的技能:

  • 使用 LangChain 的 PyPDFLoader 加载与处理 PDF 文档
  • 使用 OpenAIEmbeddings 创建嵌入并对文档数据进行向量化
  • 使用 Chroma 构建用于文档查询的向量数据库
  • 将 ChatGPT 与向量化数据集成以进行问答
  • 使用 Gradio 开发简易 PDF 聊天机器人界面

加载文档

我们将使用 LangChain 文档加载器来加载 PDF 并读取其内容。

from langchain.document_loaders import PyPDFLoader

pdf_path = "./paper.pdf"
loader = PyPDFLoader(pdf_path)
pages = loader.load_and_split()
print(pages[0].page_content)

创建嵌入与向量化

我们将使用 LangChain API 中的 OpenAIEmbeddings 类创建嵌入。随后,将这些嵌入传递给 Chroma 类,为 PDF 文档创建向量数据库。 

from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import Chroma

embeddings = OpenAIEmbeddings()
vectordb = Chroma.from_documents(pages, embedding=embeddings, persist_directory=".")

vectordb.persist()

查询 PDF

我们将使用 ChatVectorDBChain 类,通过生成的向量数据库与 ChatGPT 交互。 

from langchain.chains import ChatVectorDBChain
from langchain.llms import OpenAI

pdf_qa = ChatVectorDBChain.from_llm(
    OpenAI(temperature=0.9, model_name="gpt-3.5-turbo"),
    vectordb,
    return_source_documents=True,
)

query = "What is the VideoTaskformer?"
result = pdf_qa({"question": query, "chat_history": ""})
print("Answer:")
print(result["answer"])

下一步在视频教程中未提及。您可以使用 Gradio 框架创建一个 Web 应用,并与同事和朋友分享。 

YouTube 教程截图

资源:

4. Bing-GPT 语音助手

构建您的 AI 驱动个人助手,就像 J.A.R.V.I.S 一样。为此,您将需要 OpenAI API、文本转语音库、语音识别库与生成式 AI。

适用场景:

Bing-GPT 语音助手非常适合构建可语音控制的 AI 个人助手,能够处理设置提醒、回答问题或控制智能家居设备等任务。该项目还可拓展用于业务自动化、创建语音客服解决方案,或为残障人士构建无障碍 AI 工具。

您将学习的技能:

  • 使用 OpenAI 的 API 生成聊天机器人回复
  • 使用 Whisper 与 Polly 实现语音合成与识别
  • 设置唤醒词检测以实现语音交互
  • 使用 EdgeGPT 与 ChatGPT 构建混合式 AI 助手
  • 在 Python 中集成文本转语音与语音识别技术

加载必要库后,您需要提供 OpenAI API 密钥:

openai.api_key = "[paste your OpenAI API key here]"

唤醒词

创建唤醒词函数以激活 AI。在该示例中,开发者使用的是 “'bing” 或 “gpt”。

语音合成

语音合成功能提供文本转语音推理。您可以通过 boto3 访问 Polly(文本转语音),并使用 pydub 播放音频。

使用 Whisper 转写

语音识别由 openai/whisper 完成。您只需了解其 API 并将其添加到您的应用中即可。 

使用 EdgeGPT 的聊天机器人

最后,您将使用 acheong08/EdgeGPT 与 OpenAI API 创建聊天机器人。若用户使用唤醒词 “bing”,则使用 EdgeGPT 模型,否则使用 ChatGPT 模型。 

如果您在寻找更简洁的语音助手实现,请查看 OpenAI Whisper、ChatGPT、TTS 与 Gradio Web UI。 

YouTube 教程中的图像

资源:

5. 端到端数据科学项目

在该项目中,我们将使用 ChatGPT 开发端到端的贷款审批分类应用。我们只需要访问 ChatGPT 界面,以及一台可运行代码的个人电脑。 

适用场景:

该项目面向希望借助 AI 构建完整机器学习流水线的准数据科学家。您将学习如何使用 ChatGPT 规划、执行并部署机器学习模型,是任何数据科学作品集的有力补充。可将该项目用于预测贷款审批、客户流失或欺诈检测等任务。

您将学习的技能:

  • 使用 ChatGPT 协助进行探索性数据分析(EDA)
  • 自动化特征工程与数据预处理任务
  • 在 ChatGPT 协助下构建并调优机器学习模型
  • 使用 Gradio 创建机器学习 Web 应用

项目规划

在规划阶段,我们将描述数据集与期望目标。有时答案并不完美,但您可以通过追加提示来微调回复。 

随后,我们将开始按照简要计划逐步实施。 

探索性数据分析(EDA) 

我们将请 ChatGPT 生成用于加载数据集并执行探索性数据分析的 Python 代码,包含多种可视化方法。您甚至可以让它解释结果。

特征工程

我们让 ChatGPT 编写特征工程代码,令人惊喜的是,它能基于现有特征创建两个新特征。这意味着 AI 已经相当理解该数据集。 

预处理与数据均衡

我们拥有一个类别不平衡的数据集,本部分将使用 ChatGPT 生成预处理与类别均衡的代码。 

模型选择

我们仅通过指定机器学习模型,请 ChatGPT 编写模型选择代码。运行代码后,我们将选取表现最佳的模型。 

超参数调优与模型评估

为提升性能,我们将请 ChatGPT 编写用于超参数调优与模型评估的 Python 代码,并保存表现最佳的模型。

使用 Gradio 创建 Web 应用

我们将请 ChatGPT 使用已保存的模型与预处理步骤编写 Gradio 应用代码。AI 理解了输入特征与输出结果,最终我们得到一个可正常运行的 Web 应用。 

在 Spaces 上部署 Web 应用

最后一步,我们请 ChatGPT 指导在 space 上部署 Web 应用。它给出了可在几分钟内完成部署的步骤。 

贷款审批分类应用

该项目还将传授编写高效提示词的技巧,这在各个领域都越来越重要。 

资源:

结语

这只是生成式 AI 模型未来发展的一个起点。开源社区正努力开发各种工具,帮助您构建任何类型的 AI。您甚至可以使用这些工具来创建 AGI(通用人工智能);请查看 Auto-GPT(面向创建完全自主的 GPT-4 的实验性开源项目)与 babyagi(AI 驱动的任务管理系统)。 

在本文中,我们涵盖了各水平读者都能理解且启动门槛较低的项目。它们都使用任何人都可使用的开源工具、模型、数据集与软件包。

如果您刚接触 ChatGPT,建议参加我们的 Introduction to ChatGPT 课程。或者,如果您已熟悉生成式 AI,您可以通过查阅内容全面的 数据科学版 ChatGPT 速查表来提升提示词编写能力,或查看以下资源:

常见问题

如果我刚接触机器学习和 AI,也能完成这些生成式 AI 项目吗?

当然可以!尽管部分项目涉及较为先进的工具与技术,但博文中的分步说明将引导您完成整个过程。入门并不需要成为专家,且 Gradio、Hugging Face、LangChain 等工具对初学者都非常友好。此外,这些项目将帮助您夯实 AI 基础,便于您在未来挑战更复杂的主题。

运行这些生成式 AI 项目是否必须具备高端 GPU?

不一定需要。例如 Alpaca-LoRA 这类项目就可以在单块 GPU 甚至 CPU 上运行,也就是说您无需高端设备。对于算力需求更高的项目,您可以使用 Google Colab、AWS 或 Hugging Face Spaces 等云服务,这些平台可免费或低成本提供 GPU 资源。

如何在求职中展示这些 AI 项目以脱颖而出?

这些项目非常适合放入您的作品集,凸显您使用前沿 AI 工具的能力。在添加到作品集时,请注意:

  • 提供项目的详细说明,描述您解决的问题、所用工具与最终成果。
  • 分享在线演示或 GitHub 仓库链接,方便潜在雇主实际查看您的工作。
  • 强调您遇到的独特挑战及解决方法,展示您的问题解决与批判性思维能力。
Abid Ali Awan

作者

Abid Ali Awan

作为一名持证的数据科学家,我热衷于利用前沿技术打造创新的机器学习应用。凭借在语音识别、数据分析与报告、MLOps、对话式人工智能以及自然语言处理方面的扎实背景,我不断打磨构建智能系统的能力,力求带来切实影响。除技术专长外,我也擅长沟通,能够将复杂概念提炼为清晰、简明的表述。因此,我成为数据科学领域备受关注的博主,与不断壮大的数据专业人士社区分享洞见与实践经验。目前,我专注于内容创作与编辑,借助大语言模型打造有力且吸引人的内容,帮助企业与个人更好地发挥数据价值。

主题