早在 llama 3.1 多模态视觉模型开源时,我就测试过不少图片描述的效果,当时除了描述失准之外,对图片的大小还有不少限制。现在的多模态模型大部分对图片分辨率不做过多要求了,但是最新发布的 llama3.2-vision
模型测试下来仍然“无中生有”:
Ollama 认为“Set temperature to 0 for more deterministic output”。所以设置生成文本时的采样温度(temperature)参数为 0,以获得更加确定性的输出,我们测试一下实际效果。
测试图片
海边蓝天,沙滩和 1 棵树。
核心代码(提示词):
response = ollama.chat(
model='llama3.2-vision:11b',
messages=[{
'role': 'user',
'content': '这张图片描述了什么?详细说明图中的细节信息,请使用中文回答',
'images': ['beach.jpg']
}],
)
改温度之前 3 次
同一张图片重复三次:
# 第1次
这张图片展现了一座美丽的沙滩,背景是蓝天和碧蓝的大海。沙滩上的景色一片宁静。
在左边前方,矮小的椰子树被风吹得弯曲了。它下面有一条黑色的狗正在睡觉。
照片中最显眼的特征之一是大片的绿草和白色沙滩。天空里有几朵小云在飘荡,阳光从上方照射下来,使整个场景显得温暖而充满希望。
这张图片展现了一座清新的海滨景观,人们可以在这里放松身心,享受大自然的美丽。
# 第2次
这个照片显示了一座白沙海滩,有两棵椰子树在照片的右侧,背景是大海和天空。这个海滩似乎是一个热带地方,阳光充足,天气温暖。风景优美,适合度假。
# 第3次
这个图片所描绘的是一幅美丽的海滩风景,背景是一片广阔而宁静的海洋。在距离海洋不远处的沙滩上,有两棵高大而绿叶丰茂的椰子树。一个椰子树立在靠近前方的沙滩中央,而另一个则立在后方。它们都长得非常苗条,树干直径只有1-2米左右。它们的叶子是深绿色,长而细长。它们的叶片有着许多小裂纹,而且有些叶片似乎已经枯萎并掉落下来。这两棵椰子树都在沙滩中央的中间位置。
主要问题:
- 没有狗,说有狗;没有大片绿草说有;大片云,说成小片
- 只有一棵椰子树,它说 2 棵树(远处的应该不算)
- 还是说两棵树,树干直径都猜测有 1~2 米(but ,苗条?!)
改参数之后
温度这个参数很常见,据说会让输出更加准确。我们改为 0:
response = ollama.chat(
model='llama3.2-vision:11b',
messages=[{
'role': 'user',
'content': '这张图片描述了什么?详细说明图中的细节信息,请使用中文回答',
'images': ['beach.jpg']
}],
options={'temperature': 0}
)
再次测试:
# python test-photo-llama32-0.py
# round 1
这张图片显示了一片美丽的海滩,背景是蓝天和白云。海滩上有两棵大树,一棵在前面,另一棵在后面。树叶绿得像金子一样闪闪发光。树干粗壮,树根深深地扎在地上。树枝伸展开来,形成一个圆圈,好像一座小岛。树下有很多沙子,沙粒细腻,颜色白皙。沙滩的尽头是海水,水面平坦,波光潋滟。天空中飘浮着一些白云,像雪花一样洁净。整个场景充满了宁静和美丽。
# round 2
这张图片显示了一片美丽的海滩,背景是蓝天和白云。海滩上有两棵大树,一棵在前面,另一棵在后面。树叶绿得像翡翠一样,树干粗壮而坚实。树下有一些沙子,散落着一些树叶。树的周围还有很多植物和花朵。树上有许多鸟巢,里面住着一群小鸟。它们的羽毛是各种颜色的,有白色、黑色、灰色等。它们在树枝上飞来飞去,发出柔和的叫声。
海滩上有一些人,他们正在游泳或躺在沙子上晒太阳。他们的皮肤光滑而健康,看起来很享受这美丽的景色。有些人还在玩耍,像孩子一样嬉戏着。还有些人则在海滩边坐着,享受大自然的美丽。
Game over!幻想出了人和鸟类……
那么,似乎一点用也没有。