AIGC学习分享(一):初识AIGC


一、什么是AIGC?

AIGC(Artificial Intelligence Generated Content)是一种生成式的人工智能,通常是指一类人工智能模型,这些模型具有生成数据的能力。这些模型不仅能够对输入数据进行分类、回归等处理,还能够在学习后自主生成新的数据样本。

在不同的应用领域中,生成式人工智能模型被广泛应用。例如,在图像生成、文本生成、音乐生成等领域,这些模型不仅可以用于生成新的数据样本,还可以应用于数据增强、模拟环境以及创造性生成任务。

二、为什么要学习AIGC?

通过上面的介绍,我们可以简单地定义AIGC:它是一种利用复杂算法和模型生成内容的技术。在社会不断进步和科技不断发展下,传统的生产内容经历了PGC(专家生产内容)、UGC(用户生产内容)到现在的AIGC(AI生产内容),AIGC最近几年的出现显著提高了传统生产内容的质量。

对于程序员而言,学习AIGC有以下好处:

1. **拓展技能**:掌握最新的技术和框架,如深度学习框架。

2. **解决复杂问题**:利用AIGC技术解决那些传统编程难以应对的复杂问题,例如图像生成、自然语言生成和音乐生成等。这样的能力可以让程序员更有效地处理挑战性的项目。

3. **创新应用**:AIGC技术的应用领域广泛,包括艺术创作、自动化内容生成、智能对话系统等。掌握AIGC可以激发程序员的创造力,开发出新颖的应用。

4. **提升竞争力**:随着人工智能技术的发展,学习AIGC将使程序员在职场上更具竞争优势,能够参与更前沿的项目,并获得更多的机会。

通过学习AIGC,程序员可以获得新的技能和知识,提高自己的工作效率和创新能力。此外,还能开发出各种创新工具,如图像编辑工具、文本生成工具和自动化设计工具等。总的来说,学习AIGC对程序员来说是一个有益的投资,可以帮助他们掌握新技术,解决复杂问题,并提升职业竞争力。

三、如何简单使用AIGC?

以下是通过简单的爬虫实例来说明如何使用AIGC的步骤:

1. **提出你要的问题**:首先确定你想要生成的内容类型和所需数据。

2. **向大模型解释内容**:提供必要的背景信息,帮助大模型理解你的需求。例如,描述网站的具体结构、需要抓取的数据字段等。

3. **说明特征**:明确要提取哪些特征或属性进行处理。

4. **返回需求**:最后提出具体的请求和要求。

简单来说,AIGC的使用过程可以分为以下几个步骤:

1. 提出问题

2. 解释背景信息

3. 明确特征需求

4. 返回具体请求

例如,在爬虫领域,我们可能需要生成一个网页标题、描述以及图片。首先确定网页结构,然后向大模型提供背景信息,说明需要抓取的字段和所需的处理方法。最后提出具体的请求,如提取网页的标题和描述,并附上相应的图片。

通过以上步骤,我们可以利用AIGC技术轻松完成复杂的爬虫任务。

随即我们得到如下内容:

当然可以。以下是对原文的改写:

---

### 使用大模型生成数据

我们将向大模型提出一些内容描述或简单的需求,就能轻松地获取所需的数据信息。

### 传统编码方式爬取网页数据

如果你只是想知道如何使用AIGC(人工智能生成内容)的话,读到这里就结束了。我们继续看下面👇

试想一下,如果我们还是使用传统的编码方式去向一个网站爬取其数据时会发生什么呢??

请看以下传统代码实现方式:

```javascript

// 创建爬虫应用

const crawlApp = createCrawl() //

// crawlPage 用于爬取页面

crawlApp.crawlPage('https://movie.douban.com/chart').then(async (res) => {

const { page, browser } = res.data

await page.waitForSelector('#wrapper #content .article')

const filmHandleList = await page.$$('#wrapper #content .article table')

const pendingTask = []

for (const filmHandle of filmHandleList) {

const picturePending = filmHandle.$eval('td img', (img) => img.src)

const namePending = filmHandle.$eval(

'td:nth-child(2) a',

(el) => el.innerText.split(' / ')[0]

)

const infoPending = filmHandle.$eval(

'td:nth-child(2) .pl',

(el) => el.textContent

)

// 评分(score)

// const scorePending = filmHandle.$eval(

// 'td:nth-child(2) .star .rating_nums',

// (el) => el.textContent

// )

// 评论人数(commentsNumber)

const commentsNumberPending = filmHandle.$eval(

'td:nth-child(2) .star .pl',

(el) => el.textContent?.replace(/\(|\)/g, '')

)

pendingTask.push([

namePending,

picturePending,

infoPending,

// scorePending,

commentsNumberPending

])

}

const filmInfoResult = []

let i = 0

for (const item of pendingTask) {

Promise.all(item).then((res) => {

const filmInfo = [

'name',

'picture',

'info',

// 'score',

'commentsNumber'

].reduce((pre, key, i) => {

pre[key] = res[i]

return pre

}, {})

// 保存每个电影信息

filmInfoResult.push(filmInfo)

// 最后一次的处理

if (pendingTask.length === ++i) {

browser.close()

// 整理,根据数量决定是多还是单

const filmResult = {

element: filmInfoResult,

type: filmInfoResult.length > 1 ? 'multiple' : 'single'

}

console.log(filmResult)

}

})

}

})

```

---

### 结论

通过传统代码,我们也能实现如下的结果:

---

```javascript

{

"element": [

{

"name": "",

"picture": "",

"info": ""

},

...

],

"type": "multiple"

}

```

---

希望这能帮助你更好地理解AIGC的使用方法。

### AIGC与传统代码爬虫的对比

在获取页面数据时,传统编程语言如Python中进行网页抓取的方法通常涉及大量复杂的编码。为了遵守开发规则和保证程序的正常运行,开发者们必须花费大量的时间和精力去编写这些代码。这不仅耗时耗力,还大大降低了程序的生产效率,使得工程量大且易出错。

相比之下,使用AIGC(如使用LLM大模型)实现爬虫方法则显得简洁、快速且易于理解。传统的编程语言需要遵循开发规则,而这往往导致大量时间浪费在代码编写上,从而大大降低程序员的产出。而利用AIGC提供的API接口,则无需过多的编码技巧,只需通过简单描述需求即可。

### AIGC与传统爬虫的区别

AIGC的优势不仅仅体现在自然语言处理上,还可以通过调用OpenAI等服务的API接口来完成各种任务。这为从业人员提供了新的机遇和挑战,在艺术创作、广告营销及策划、代码开发等方面展现出独特的应用前景。这种跨模态学习方式使得个性化交互更为便捷,并且广泛应用于不同领域。

### 结论

随着AI技术的进步,AIGC正逐渐成为各行各业的新兴力量,它不仅带来了机遇也提出了新的挑战。面对这些变化,我们应该拥抱人工智能与AIGC,把握时代潮流和带来的发展机遇。只有这样,我们才能在未来社会中保持竞争力,迎接更多的可能性。