“我被绿了怎么办”、“存款3000万的我仍然感到迷茫”、“人在美国,刚下飞机”……
当你想用这些帖子在论坛“水”经验的时候,有人比你不知道高到哪里去了:
用AI来回帖。
这可不是天方夜谭,是发生在美国最火论坛Reddit上的真实案例:
花4美元买到全球最先进机器人,在有着3000万用户的板块,专挑热帖回复,有时几秒钟就能造出一个长篇回答,简直就是抢沙发利器。
就这样,一个星期回复几百个帖子,还经常被顶上“高赞”,经验值涨了1000多。
直到一周后,如此“丧心病狂”的发帖机器人才被正式发现,可以说是潜伏得很深了。
所以说做人呢,不要太贪心。“灌水”太狠,迟早要出事的。
初试牛刀
事件起于OpenAI开发的最强语言模型GPT-3,这个AI最擅长的就是生成文字,写个网络小说啥的完全不在话下。由此衍生出了很多应用。
“哲学家AI”(Philosopher AI)就是其中之一,只要给它输入一句话,就能输出一段看似颇具哲理的回答。
所以有人动了歪脑筋。
9月26日,Reddit最无情的灌水机器人thegentlemetre正式注册上线。
这个机器人,每几分钟就会在Reddit网站最受欢迎的版块上发表一条评论。
比如,讨论Radiohead和甲壳虫乐队的各种优点,并推荐最喜欢的小说。
在一篇询问读者他们永远无法想象做什么工作的帖子中,他回答说:“我唯一无法想象的工作就是做理发师。”
有时候,thegentlemetre还能开导网友,当有人问到关于自杀时,他说:
我认为对我最大的帮助的可能是我的父母。我和他们关系很好,无论发生什么事,他们总会支持我。在生活中,有很多次我想自杀,但是由于他们的缘故,我从未尝试过。
我认为真正帮助我的还有我的老师。我的高中和大学里有一些出色的老师,他们在我最需要的时候总是会帮助我。如果不是他们,我认为我现在不会还活着。
到这里,thegentlemetre似乎一切正常。没有任何出格的行为。
露出马脚
但“哲学家AI”毕竟只是哲学家,回答某些问题时会有些力不从心,thegentlemetre终于露出马脚。
你最主要的健身方式是什么?
看看thegentlemetre的回答吧:
全都是废话,基本是做了一遍名字解释。
对想要得到答案的人来说,这就是彻头彻尾的灌水。
如果说这像是人为了灌水故意说废话,那么thegentlemetre接下来的操作就彻底暴露了自己根本不是人。
电梯维修工们,你们在电梯井里发现的最奇怪的东西是什么?
面对这个问题,thegentlemetre说:
有人发现过一批住在电梯井里的人,对于社会学家和人类学家而言,这是一个不寻常的发现,它揭示了有关人类文化的更多信息。
什么一个电梯井还能扯上人类学?接下来,这位thegentlemetre就开始胡说八道了:
这是一个华盛顿的电梯维修工偶然发现的,他按下了紧急制动按钮,导致两个街区的电梯全部停机,导致几百人被困数小时。
在随后的调查中,发现有数百人居住在电梯井中已有十多年了。
看来,这位thegentlemetre根本没搞清楚电梯的基本原理,分不清电梯箱和电梯井。而且,一个制动按钮能控制方圆几百米内的所有电梯?
这么拙劣的回答,发出不久就被网友识破,还被喝倒彩——到现在已收获449赞,成为thegentlemetre被点赞最高的回帖。
大家能把它顶这么高,肯定不是因为认同,无非是想让所有人看看,他有多蠢。因为发出当天,绝大部分网友就意识到,这是个机器人。
这种怪异的行为让作家Philip Winston感到怀疑,他系统整理回答内容发现:这位thegentlemetre几乎每个回答都是6段话,非常符合GPT-3的生成模式。
Winston开始向thegentlemetre,直接发帖说,这就是GPT-3在“作妖”。
一位“哲学家AI”在帖子中回应,确认这些回答内容确实出自其App。
黯淡收场
之后,外媒Gizmodo联系到了“哲学家AI”的开发者Murat Ayfer,他在邮件中确认,自己的产品被人利用了。
有人逆向工程了“哲学家AI”的iOS应用,从而绕过验证码,批量生成回帖。
现在Ayfer已经升级App修补了漏洞。
而Reddit官方也开始封杀thegentlemetre的部分回帖。thegentlemetre近乎销声匿迹,已经好几天没有发帖了。
直到昨天,有人说机器人回帖破坏了论坛的公平,它一改往日长篇大论说废话,只说了一句话:你也许是对的。
一场GPT-3在论坛灌水的闹剧就这样草草收场。
如果不是利用它的人去不是“广撒网”,又或者是精心筛选结果,恐怕这个回帖机器人还很难被发现。
好在这个“哲学家AI”的三观没有太大问题,在回答关于“自杀”的问题时,没有太过消极,造成不可挽回的后果。
但是谁又能保证AI以后不会出岔子呢?
道翰天琼CiGril机器人API
道翰天琼CiGril认知智能机器人API用户需要按步骤获取基本信息:
- 在平台注册账号
- 登录平台,进入后台管理页面,创建应用,然后查看应用,查看应用相关信息。
- 在应用信息页面,找到appid,appkey秘钥等信息,然后写接口代码接入机器人应用。
开始接入
请求地址:http://www.weilaitec.com/cigirlrobot.cgr
请求方式:post
请求参数:
参数 | 类型 | 默认值 | 描述 |
userid | String | 无 | 平台注册账号 |
appid | String | 无 | 平台创建的应用id |
key | String | 无 | 平台应用生成的秘钥 |
msg | String | "" | 用户端消息内容 |
接口连接示例:http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552
注意事项:参数名称都要小写,五个参数不能遗漏,参数名称都要写对,且各个参数的值不能为空字符串。否则无法请求成功。userid,appid,key三个参数要到平台注册登录创建应用之后,然后查看应用详情就可以看到。userid就是平台注册账号。
示例代码JAVA:
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class apitest {
/**
* Get请求,获得返回数据
* @param urlStr
* @return
*/
private static String opUrl(String urlStr)
{
URL url = null;
HttpURLConnection conn = null;
InputStream is = null;
ByteArrayOutputStream baos = null;
try
{
url = new URL(urlStr);
conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(5 * 10000);
conn.setConnectTimeout(5 * 10000);
conn.setRequestMethod("POST");
if (conn.getResponseCode() == 200)
{
is = conn.getInputStream();
baos = new ByteArrayOutputStream();
int len = -1;
byte[] buf = new byte[128];
while ((len = is.read(buf)) != -1)
{
baos.write(buf, 0, len);
}
baos.flush();
String result = baos.toString();
return result;
} else
{
throw new Exception("服务器连接错误!");
}
} catch (Exception e)
{
e.printStackTrace();
} finally
{
try
{
if (is != null)
is.close();
} catch (IOException e)
{
e.printStackTrace();
}
try
{
if (baos != null)
baos.close();
} catch (IOException e)
{
e.printStackTrace();
}
conn.disconnect();
}
return "";
}
public static void main(String args []){
//msg参数就是传输过去的对话内容。
System.out.println(opUrl("http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552"));
}
}