【腾讯云HAI域探密】- AIGC应用助力企业降本增效之路

一、前言:

近年来,随着深度学习、大数据、人工智能、AI等技术领域的不断发展,机器学习是目前最火热的人工智能分支之一,是使用大量数据训练计算机程序,以实现智能决策、语音识别、图像处理等任务。

作者也是经过了以上几个阶段的软件开发历程,从Web时代编程、到云时代分布式编程,到如今的AI时代,传统编程是人类程序员手动编写代码来实现特定的功能,而机器学习是通过让计算机程序从数据中学习,自动地提取特征和规律来实现功能。

如何解决人工智能(机器学习)模型训练与推理、高性能计算等,往往是对于算法、算力和大数据都是实现大规模应用的必备条件。

GPU的广泛应用促进了AI技术的发展。通过GPU的高速计算能力,开发者可以更快地训练模型、测试算法,从而促进AI技术的迅速发展。GPU的出现和发展,也为AI领域的新算法、新模型的研发提供了更多的可能性。

最近腾讯云推出了一款“高性能应用服务HAI”,是一款面向 Al、科学计算的 GPU 应用服务产品,以应用为中心,匹配GPU云算力资源,AI 2.0时代 GPU 新品,预装LLM、AI作画、数据科学等高性能应用,实现即插即用,助力中小企业及开发者快速部署LLM、AI作画、数据科学等高性能应用。


二、即生瑜(腾讯云GPU云服务器)何生亮(高性能应用服务HAI):

平时接触的AI领域中,大多数搭载GPU云服务器的AI服务器可以覆盖更多的应用场景,尤其在人工智能领域的应用相当多。接下来,让我们先了解一下GPU云服务器的一些概念,只有知已知彼才能百战不殆,进行有效的比较优势与劣势,才能有针对性的选择权。

1. 腾讯云GPU服务器:

GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。

2. 腾讯云GPU云服务器的应用场景:

GPU计算型应用场景:

GPU渲染型应用场景:


三、高性能应用服务HAI介绍:

“高性能应用服务HAI”,它具有澎湃算力,即开即用,基于腾讯云GPU云服务器底层算力,提供开箱即用的高性能云服务。以应用为中心,匹配GPU云算力资源,助力中小企业及开发者快速部署LLM、AI作画、数据科学等高性能应用。

尤其值得一提的是针对开发者,使用可视化的webUI界面和“可视化IDE”的jupyterlab大大的降低了调试的复杂度、降低应用使用的门槛,甚至经过简单的培训,让非开发者(运维人员)也可以参与到使用中来。

1. 横向对比,青出于蓝:

在以往都是自己组合搭建大多数搭载GPU云服务器的AI服务器可以覆盖更多的应用场景,如图形渲染、深度学习、天体物理、化学分子计算、云计算和虚拟化、计算密集型行业等应用。

高性能应用服务HAI的产品的价值:
大幅降低GPU云服务器使用门槛,多角度优化产品使用体验,低门槛、开箱即用。

2. 多种高性能应用部署场景,轻松拿捏:

3. 腾讯云高性能应用服务 HAI动手实验:

本次活动是由腾讯云和CSDN联合推出的开发者技术实践活动。通过动手实验的形式,带您深入沉浸式体验腾讯云高性能应用服务 HAI 。

  • 第一个实验手册:如何利用HAI轻松拿捏AI作画
  • 第二个实验手册:未来对话:HAI创作个人专属的知识宇宙
  • 第三个实验手册:融合创新:HAI推动Pytorch2.0 AI框架新时代

活动提供的手册也是非常的详细,可以快速体验一下腾讯云高性能应用服务 HAI相关的AI产品,活动将覆盖多个应用场景,无论您是技术新手还是经验丰富的开发者,都可以从活动中汲取到技术上的精华。


四、Stable Diffusion介绍:

1. Stable Diffusion:

Stable Diffusion是一种基于扩散过程的图像生成模型,可以生成高质量、高分辨率的图像。它通过模拟扩散过程,将噪声图像逐渐转化为目标图像。这种模型具有较强的稳定性和可控性,可以生成具有多样化效果和良好视觉效果的图像。

Stable Diffusion 可以通过生成多样化、高质量的图像、修复损坏的图像、提高图像的分辨率和应用特定风格到图像上等方式,辅助视觉创意的实现。它为视觉艺术家、设计师等提供更多的创作工具和素材,促进视觉艺术领域的创新和发展。

2. 对比一下GPU服务器自行部署痛点:

打开腾讯云GPU服务器控制台进行购买实例。

2.1 安装基本软件:

sudo apt install wget git

2.1 安装python 3.10.6:

# 安装依赖
sudo apt install wget git python3 python3-venv
# 删除默认的低版本
which python3
sudo rm /usr/bin/python
# 配置软链接
ls -lh /usr/bin | grep python
ln -s /usr/bin/python3 /usr/bin/python
# 若是GPU环境的用户需要安装与cuda版本对应的torch
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
# pip换源
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple
# 安装对应依赖

pip install -r requirements_versions.txt
# 建立虚拟环境
sudo apt-get install python3.5-venv
python3 -m venv_name
source venv_name/bin/activate

2.2 安装CUDA:

# 下载Cuda
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
# 安装cuda
sudo sh cuda_11.8.0_520.61.05_linux.run
# 配置环境变量
# 增加下面两行内容,并保存
vim ~/.bashrc
export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH
# 使配置文件生效
source ~/.bashrc

2.3 安装stable diffusion:

# 拉取stable diffusion 代码:
git clone GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI
# 安装stable diffusion:
cd stable-diffusion-webui/
# 启动
./webui.sh

以上是自行尝试购买腾讯云GPU服务器,自己手动搭建环境,并运行stable diffusion。大概花费了差不多一个下午的时间,而且这个还是自己以前尝鲜有过经验的前提下。

3. 对比HIA产品的提效:

通过完成官方提供的第一个动手实验,如何利用HAI轻松拿捏AI作画。我们大概只花了不到10分钟就可以从购买到使用stable diffusion开始作画,并且不到20分钟就能完成动手的实验(如下图),网上有太多的文章描述如何使用,这里就不去“鹦鹉学舌”重复赘述了。

可以看出以下的对比,“自己选购部署”与“高性能应用服务HAI”在以下7点存在业务痛点,“高性能应用服务HAI”大大的降低了使用的门槛、降低了学习的成本,让更多的企业、开发者能够加入到AI应用的行业中来。


五、“高性能应用服务HAI”的应用给公司业务提效方案可行性评估:

自从AIGC人工智能生成内容的来临,在过去的一段时间里,以Stable Diffusion 为代表的 AIGC 绘画迎来了爆发式增长,引发了一场生产力的革命。

1. Stable Diffusion AI绘画帮助设计师降本增效方案评估:

在传统的设计团队,通常的设计师的工作流程如下:

  • 运营提出商业意图与图形的要求
  • 设计在“千图网”找一些符合要求的参考图,或者自己手工画一些设计的初稿
  • 在与业务确认沟通风格和草图,再跟业务确认,是否符合业务的要求
  • 设计进行建模,并且针对一些细化的设计进行调整
  • 最终,设计定稿,交付设计图

在这个设计的阶段过程中,交付给业务团队的耗时点如下:

  • 设计师往往需要在“千图网”找大量的参考图,这个过程是比较费事也费劲的,一般需要半个工作日的倍数。
  • 如果遇到一些比较复杂的交互,设计师还需要自己手画设计草图,也是比较费时间的。

现在有了AIGC绘画的工具辅助后,可以极大地缩短找参考图及建模设计草图时间,同时也减少了与业务反复沟通确认的时间。使用Stable Diffusion生成设计参考图,可以快速与业务确认设计风格,绘制线稿草图后,再通过 Stable Diffusion 直接生成设计图,设计师再做细节优化,大大提升了整个设计流程的效率。甚至,简单的绘图可以直接交付由业务单位来完成。

2. Pytorch模型AI图像识别帮助业务单位降本增效方案评估:

PyTorch是Facebook人工智能研究院(FAIR)开发的一个开源机器学习库,它使用Python语言编写,支持动态计算图和分布式训练。

案例一:
在理赔的业务中,往往会遇到车辆的刮蹭、车辆恶意损坏、划痕等理赔案例时,往往需要参考大量的案例。
业务痛点:
①. 如果招的熟悉的业务人员,可能比较能快速的凭借处理的经验来解决实际的问题。
②. 如果新招人力、新的场景、新的客户可能会遇到处理不及时的问题。
改善措施:
①. 通过使用pytorch实现以图搜图可以快速的在案例池中找到匹配的案例。
②. 增加车辆赔付的参考依据与标准化,提高工作的效率,降低人员的成本。

案例二:
在理赔凭证审核环节,由于经常发生将申请材料与历史凭证中高度相似的理赔凭证,从而存在理赔欺骗的问题,有点类似常说的“骗保”。
业务痛点:
①. 人工刷选不精确、且耗时较长,效率低下。
改善措施:
①. 使用pytorch实现相同图片搜索技术,在出现异常时,将案例流转至人工复审流程。
②. 在提升理赔审核效率的同时,打击盗用冒用等欺诈行为,从而降低保理赔风险。


六、Stable Diffusion AI绘画实际案例参考:

1. AI图像处理:

在实际的工作场景中,经常会遇到商务部门需要做各种活动、手册、邀请活动等物料,一般没有特别说明的话,不会考虑很多场景,比如“易拉宝”、“海报”、“刊物设计印刷”等的场景中,图片在放大时,会在分辨率、清晰度要求更高场景中,会出现模糊、看不清的效果。

如上,需要运用在更大背景区域上,如果采用直接放大设计文件,一般会出现文件内的非矢量元素就会模糊,导致在分辨率、清晰度要求更高场景中,会出现模糊、看不清的效果,此时,可以借助Stable Diffusion放大修复并提升图片清晰度,节省重绘的人力成本。

下面来介绍一下Stable Diffusion几种AI的放大算法:后期处理、脚本UItimate SD插件方案,当然,还有其它很多的方案。做放大算法高清修复、高清放大的时候,对于一张图片的聚焦点在哪里。

1.1 后期处理方案:

序号 操作 描述
1 点击“Extras”选项卡 ①. 对应中文“后期处理”
2 上传需要高清放大的图片 ①. Single Image(单张图片)可以处理一张图片
②. Batch Process(批量处理)可以上传多张图片
③. Batch Process Directory(批量处理文件夹)可以选择一个需要批量处理图片的文件夹目录
3 在“Scale By(缩放倍数)”输入需要缩放的比例 ①. 可以根据自己的需求来设定这个值,来调整需要放大的倍数
4 Upscaler1表示放大的算法 ①. 推荐选择“R-ESRGAN 4x+”、“R-ESRGAN 4x+ Anime6B”这2个算法模型
5 点击“Generate”生成图片

1.2 “脚本插件”方案:

序号 操作 描述
1 点击“Extensions”选项卡 ①. 对应中文“扩展”,可以管理已安装的插件
2 点击“script”脚本
3 点击“Load form”加载扩展列表 ①. 可以看到这个扩展列表是加速过的清单列表
②. 这里会有一个加载loading的时间等待
③. 如果加载完成后,进入左下图片
4 在搜索区域搜索“Ultimate SD” ①. 这里可以搜索已安装过的,或者没有下载过的插件
②. 如果有符合条件的插件就会在下面进行显示,并且显示安装的状态
5 点击“Install”进行“Ultimate SD”插件的安装 ①. 安装完成后,进入右上图片
6 在“Extensions”选项卡中,查看是否安装成功 ①. 可以查看“Ultimate SD”插件是否安装成功
7 “Ultimate SD”插件安装的信息
8 切换到“Setting”设置选项卡中
9 点击“Reload UI”进行重新启动

1.3 小结:

2. 业务推广海报生成:

在设计前期,设计师刚接到需求,了解到画面内容元素,设计风格后,会在花瓣等网站找对应的参考图给业务方确认,此时,可能还要配合适当的草图来表现画面的构图、元素等。

但这样的参考图往往不能很好的传达设计师的设计想法,且找到合适图的耗时都会比较长,这时候如果通过 Stable Diffusion输入相关关键词就可生成灵感参考图。

以上图,节日海报以中秋主题为例,生成一些海报分享朋友圈。可以利用Stable Diffusion的能力,通过“咒语”直接生成一些精美的节日素材图片,然后再设计排版添加下文案等素材。

序号 操作 描述
1 点击“txt2img”选项卡 ①. 通过文字的描述生成图片
2 输入“Prompt” ①. 对所希望生成的图片的文本描述,一般使用英文描述可以获得更好的生成结果
3 输入“Negative prompt” ①. 描述的是用户希望生成的图片的特征
②. 而Negative prompt则是生成的图片中不希望含有的特征,如低质量图片等
4 调整“Sampling Steps” ①. 如果生成图片细节不满足要求,可适当增加采样步骤,但生成时间也会相应增加
②. 大部分采样器超过50步后意义就不大了
5 点击“Generate”生成图片

在通过PhotoShop添加相应的文案元素进行排版,得到一个氛围感满满的中秋节气的海报,为了降低设计师手动复制二唯码生成海报的痛点,如下使用Vue + Java开发了一套重绘二唯码参数的系统,用来减轻设计师的工作量,同时,也降低了出错的几率。

重绘携带二唯码海报相关java相关核心代码:

public static byte[] pressImage(ByteArrayInputStream input, FxPosterDTO poster,
									float alpha, Map<String, String> textMap) {
	ByteArrayOutputStream bos = new ByteArrayOutputStream();
	try {
		// 海报图片
		Image target = ImageIO.read(new URL(poster.getPosterUrl()));
		int wideth = target.getWidth(null);
		int height = target.getHeight(null);
		BufferedImage image = new BufferedImage(wideth, height, 1);
		Graphics2D g = image.createGraphics();
		g.drawImage(target, 0, 0, wideth, height, null);

		// 二维码图片
		Image src_other = ImageIO.read(input);
		int wideth_other = src_other.getWidth(null);
		int height_other = src_other.getHeight(null);
		int reX = (wideth - wideth_other) / 2;
		int reY = (height - height_other) / 2;
		g.setComposite(AlphaComposite.getInstance(10, alpha));
		g.drawImage(src_other, reX + poster.getQrCodeX(), reY + poster.getQrCodeY(), null);

		// 码LOGO替换
		if (HmbConstants.WECHAT_PROGRAM.equals(poster.getRemark1())) {
			int logoX = (wideth - 240) / 2;
			int logoY = (height - 240) / 2;
			Image logoIO = ImageIO.read(new URL(fxProject.getRemark1()));
			g.drawImage(logoIO, logoX + poster.getPointX() + LOGO_OFFSET,
					logoY + poster.getPointY() + LOGO_OFFSET, null);
		}

		// 海报文字
		PosterQrcodeReq obFirst = JSON.parseObject(poster.getRemark4(), PosterQrcodeReq.class);
		PosterQrcodeReq obSecond = JSON.parseObject(poster.getRemark5(), PosterQrcodeReq.class);
		String contentFirst = Tools.isBlank(obFirst.getContentFirst()) ? "" : obFirst.getContentFirst();
		String contentSecond = Tools.isBlank(obSecond.getContentSecond()) ? "" : obSecond.getContentSecond();
		Color color = Color.WHITE;
		if (HmbConstants.POSTER_WORD_COLOR_B.equals(obSecond.getContentColor())) {
			color = Color.BLACK;
		}
		if (!Tools.isBlank(textMap)) {
			g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
			String waterMarkContent = textMap.get("userName")
					.concat(contentFirst);
			g.setColor(color);
			g.setBackground(Color.WHITE);
			g.setFont(new Font("Microsoft YaHei", Font.BOLD, 24)); // 字体、字型、字号
			g.drawString(waterMarkContent, reX + obFirst.getXFirst(), reY + obFirst.getYFirst()); // 画文字
			g.drawString(contentSecond, reX + obSecond.getXSecond(), reY + obSecond.getYSecond()); // 画文字
		}
	} catch (Exception var14) {
		log.error(var14.getMessage(), var14);
	}
	return bos.toByteArray();
}

public static byte[] pressImage(InputStream input, float f, FxPosterDTO req , boolean isFont) throws Exception {
	ByteArrayOutputStream bos = new ByteArrayOutputStream();
	Thread.currentThread().getContextClassLoader().getResource("").getPath();
	Image target = ImageIO.read(new URL(req.getPosterUrl()));
	int wideth = target.getWidth(null);
	int height = target.getHeight(null);
	BufferedImage image = new BufferedImage(wideth, height, 1);
	Graphics2D g = image.createGraphics();
	g.drawImage(target, 0, 0, wideth, height, null);

	Image src_other = ImageIO.read(input);

	int qrWidth = req.getQrCodeSize() == 0  ? 200 : 200 * req.getQrCodeSize() / 100;
	BufferedImage bufferedImageBef = createResizedCopy(src_other, qrWidth, qrWidth);

	int wideth_other = bufferedImageBef.getWidth(null);
	int height_other = bufferedImageBef.getHeight(null);

	int reX = (wideth - wideth_other) / 2;
	int reY = (height - height_other) / 2;

	BufferedImage bufferedImage = setClip(bufferedImageBef,20);
	g.setComposite(AlphaComposite.getInstance(10, f));
	g.drawImage(bufferedImage,(wideth - 280) / 2 + req.getQrCodeX(), (height - 280) / 2 + req.getQrCodeY(),null);
	g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
	Color mycolor = POSTER_WORD_COLOR_B.equals(req.getFontColor()) ? Color.BLACK : Color.WHITE;
	g.setColor(mycolor);
	g.setBackground(Color.WHITE);
	if (!isFont){
		g.setFont(new Font("AR PL UMing CN:style=Light", Font.BOLD, 30));
		g.drawString(PbmCodeUtils.mask(req.getCreateName(),4,3), reX + req.getFontX(),
				reY + req.getFontY());
	}
	g.dispose();
	ImageIO.write(image, FORMAT_NAME, bos);

	return bos.toByteArray();
}

2.3 小结:

在导入Stable Diffusion后,再加上自己研发的系统对海报进行二次加工,可以达到海报批量快速产出的效果,加快了业务部分快速推广的作用,同时,也极大的减轻了设计师的工作量。

  • 借助Stable Diffusion图片生成能力可以快速的基本素材的生成
  • 借助PS软件专门用来进行图像处理的软件,通过它可以对图像修饰、对图形进行编辑,以及对图像的色彩处理,另外还有绘图和输出等功能,可以使图像产生特效,如果和其它工具或软件配合使用,还可以进行高质量的广告设计、美术创意和三维动画制作
  • 借助自己开发的图片二次开发功能,可以有效的将不同渠道、不同业务的分销码,重绘到海报中携带二唯码参数

希望借助AIGC领域的工具,打造一个全流程线上工具化,运营人员通过配置节日、风格、形象、动作等即可自动生成运营图。

3.1 以图生图 - 运营生成二唯码场景:

4. 总结:

“腾讯云高性能应用服务HAI”提供了Stable Diffusion快速部署及下载自定义模型功能,使用者不需要自己下载代码,不需要自己安装复杂的依赖,不需要了解Git、Python、Docker等技术,只需要在控制台图形界面点击几下鼠标就可以快速启动Stable Diffusion服务进行绘画,非技术同学也能轻松搞定。



有些同学可能是第一次接触GPU这个概念,接下来我就来普及一下GPU是什么?有什么样的一些特点?为什么在AI、深度训练和图像处理等领域大受欢迎呢?

九、什么是GPU?GPU与CPU有什么区别吗?GPU有哪些应用场景?

1. 什么是GPU?

GPU,全称为图形处理器,是一种专门设计用于处理计算机图形和图像的处理器。它可以加速计算机图形渲染和处理操作,提高计算机图形和图像的性能和质量。GPU相对于CPU而言,具有更多的处理单元和更高的并行处理能力,因此可以更快地处理大量的图形和图像数据。

GPU的主要功能包括图形渲染、图像处理、计算加速等。

  • 在游戏、动画、视觉效果等领域中,GPU是实现高质量图形和图像的必要组件。
  • 在科学计算、深度学习等领域中,GPU也可以作为计算加速器来使用,可以大幅提高计算速度和效率。

GPU的工作原理是通过多个处理单元并行处理图形、图像和计算任务来提高处理速度和效率。这些处理单元分布在不同的计算核心和计算单元中,可以同时处理多个任务。此外,GPU还使用了高速缓存、显存等技术来优化数据存储和访问,进一步提高了性能和速度。


2. CPU与GPU的不同特点:

3. 显卡是GPU吗?

通常所说的显卡(Graphics Card)指的是安装了 GPU 的设备。

上图所示,显卡除了包含 GPU 之外,还包括显存、供电模块、总线、风扇、显卡 BIOS、外围设备等部件。显卡通过将 CPU 传输的数据转换为图像信号,控制显示器输出图像。

可以看出,在一些需要大量图像处理或计算的应用场景中,GPU 可以比 CPU 更高效地完成任务。因此,现代的显卡也广泛应用于机器学习、深度学习、AI人工智能等领域的加速计算,甚至被用于科学计算、天文学、地质学、气象学、量子学等众多领域。

4. 不同的结构组成:

5. 白话文区别:

6. Nvidia 产品矩阵:


十、公司业务其它AI场景的未来展望:

在新的AIGC技术浪潮之中,“腾讯云高性能应用服务HAI”的实践方案过程中,在公司推广技术导入方案会面临着这样的问题:

  • 在的业务上应用“腾讯云高性能应用服务HAI”能获得什么?
  • 如何快速、平滑地从传统的体系基础上完成“腾讯云高性能应用服务HAI”切换?
  • 站在机器学习算法设计的角度,又会带来什么影响和改变?
  • 在众多的AIGC生态下,众多的技术路线和架构选型中,如何确定“腾讯云高性能应用服务HAI”是一条比较适合自身场景的路径?

以下是公司经过了初创期、爬坡期,在行业内快速的吸引客户,并且占有一定的业务量,后续在原有的业务基础上,提高市场的竞争力,以及对公司一些CostDown原则的实施,希望能通过更多的AIGC的工具链路,帮助企业实施AI的战略布局。

事实上,通过以上对Stable Diffusion和Pytorch的众多案例,可以看到在原有的人工传统作业方式,通过AIGC的工具体系,来加速业务的处理效率。


十一、总结:

你可能感兴趣的:(腾讯云,AIGC,云计算,服务器,运维)