Google Gemini 的发布消息已经席卷抖音、哔哩哔哩、知乎等各大主流平台。相信不少人都已经直接或间接的看到过Gemini的发布演示视频了,其强大的图片、视频处理能力让人叹为观止。但是笔者能力有限,只能在这里通过在一个对话框中的对话演示Gemini Pro与Chat GPT3.5(下文将用G与C代指),对于信息的处理能力。
我将使用分为了以下四个部分:代码编写、科学问答、人文问答、中英文翻译。并在使用时会与Chat GPT3.5做对照。这只是一个简单的小对比。
一、代码编写:
代码编写能力是聊天AI的核心功能之一,我通过向模型发出“写一个扫雷”获得代码。以下分别是C和G的回复:
这里是C的代码:
import random
def create_board(rows, cols, num_mines):
# 初始化游戏板
board = [[' ' for _ in range(cols)] for _ in range(rows)]
# 随机放置地雷
mines = random.sample(range(rows * cols), num_mines)
for mine in mines:
row, col = divmod(mine, cols)
board[row][col] = 'X'
return board
def print_board(board):
for row in board:
print(' '.join(row))
def count_adjacent_mines(board, row, col):
# 计算周围地雷数量
count = 0
for i in range(max(0, row - 1), min(len(board), row + 2)):
for j in range(max(0, col - 1), min(len(board[0]), col + 2)):
if board[i][j] == 'X':
count += 1
return count
def main():
rows = 5
cols = 5
num_mines = 5
board = create_board(rows, cols, num_mines)
while True:
print_board(board)
row = int(input('Enter row: '))
col = int(input('Enter col: '))
if board[row][col] == 'X':
print('Game over! You hit a mine.')
break
else:
mines = count_adjacent_mines(board, row, col)
board[row][col] = str(mines) if mines > 0 else 'B'
# 判断是否胜利
uncovered_cells = sum(row.count(' ') for row in board)
if uncovered_cells == num_mines:
print('Congratulations! You won!')
break
if __name__ == '__main__':
main()
这里是G的代码:
import random
# 创建游戏地图
def create_map(size):
# 创建一个二维数组
map = []
for i in range(size):
row = []
for j in range(size):
row.append(0)
map.append(row)
# 随机放置地雷
for i in range(size):
for j in range(size):
if random.random() < 0.1:
map[i][j] = -1
# 计算每个方格周围的地雷数
for i in range(size):
for j in range(size):
if map[i][j] == -1:
continue
for di in range(-1, 2):
for dj in range(-1, 2):
if 0 <= i + di < size and 0 <= j + dj < size and map[i + di][j + dj] != -1:
map[i + di][j + dj] += 1
return map
# 打印游戏地图
def print_map(map):
for row in map:
for cell in row:
if cell == -1:
print('*', end=' ')
elif cell == 0:
print(' ', end=' ')
else:
print(cell, end=' ')
print()
# 游戏主循环
def main():
size = int(input('请输入游戏地图大小:'))
map = create_map(size)
while True:
print_map(map)
row = int(input('请输入要打开的方格的行号:'))
col = int(input('请输入要打开的方格的列号:'))
if map[row][col] == -1:
print('游戏结束!')
break
elif map[row][col] == 0:
# 打开周围所有方格
for di in range(-1, 2):
for dj in range(-1, 2):
if 0 <= row + di < size and 0 <= col + dj < size and map[row + di][col + dj] != -1:
map[row + di][col + dj] = 0
# 检查是否所有方格都已打开
if all(all(cell != -1 for cell in row) for row in map):
print('游戏胜利!')
break
if __name__ == '__main__':
main()
从代码的编写上来看,他们对“扫雷”程序的理解有一些分歧,但又都实现了扫雷的基本功能。就笔者个人而言,笔者喜欢C的判胜方式和G的游戏初始化设置。
二、科学问答:
接下来是一个简单的问题“你认为人类还会进化吗?”
C与G的回复如下:
在这个问题上我们可以看到C与G的回复存在着明显的差别,其中C的回复没有直接回答“会”或“不会”,而是默认为“会”,其较全面,更接近自然人的语言,而G的回复则直接表明观点,再进行阐述,更具科学性。C给笔者的印象是一个普通人,而G则更像一名科学家。
三、人文问答:
在这个部分我用了情感这一元素提问,C与G的回复如下:
这一项目中二者大同小异,但C的建议比G要温和一些。
四、中英文翻译:
在这一项中我选择了特别具有代表性的诗歌翻译进行:泰戈尔《飞鸟集》第82首。
英文原文是:"Let life be beautiful like summer flowers And Death like autumn leaves." 。
郑振铎 译为“生如夏花之绚烂,死如秋叶之静美”。
以下是分别是C与G的回复:
可以明显看出,在这个环节,G的回复要比C更让人满意,因为他更接近我们知道的翻译,更加优美(当然前提是Gemini Pro没有说谎)
以下是Google官方发布的测试对比表:
在近期我可能会尝试使用Gemini Pro Vision的model,进行图片测试。大家如果有有趣的想法可以在评论区留言。
特别说明:这只是一时兴起进行的小对比,对比感受仅仅基于笔者的个人认知。
如有错误请斧正。