为什么 AI 是一个字一个字地输出?

因为我们也是一个字一个字地说话啊。

不说话只思考的时候,我们脑中也是一个字一个字地往外蹦不是?

大模型 AI 的算法就是模拟了这个过程。这个算法叫 transformer。

Ta 只做一件事:基于输入的字,生成下一个字。把这些字一起当做输入,再生成下一个字。如此往复,直到结束。

这里用「字」是为了好理解。严格说,生成的单位并不是「字」,也不是「词」,而是叫「token」。

往细节里说说,一个 token 可能是一个英文单词,也可能是半个,三分之一个。可能是一个中文词,或者一个汉字,也可能是半个汉字,甚至三分之一个汉字。到底是多少,取决于模型的设计者。

对使用者来说,只在计费时需要关心这个。为什么生成下一个 token 就有智能了?这也太简单了吧?

是的,生成的过程确实简单。难点都在模型训练。

在训练模型的过程,模型把 token 之间的关系保存在模型文件中。这个关系可以简化理解成就是各个 token 同时出现的概率。比如:

输入「感谢北京同仁」,那么大概率后面跟着「医院」。

输入「做为出版业的一员,感谢北京同仁」,则后面更可能跟着「的帮助」。

模型训练的过程就是从学习数据里统计出大量的概率,保存下来。生成过程就基于概率找可能性最高的下一个 token。

因为基于概率,所以用「猜」来形容 AI 的行为更合适。

当然,ta 不是瞎猜。只要训练数据有相关信息,模型规模又大到足够容纳相当多的相关信息,那么猜中的概率就会很大。

「熟读唐诗三百首,不会吟诗也会吟」,我们人类的思考,不也就是基于学过的知识、经验,来猜下一个字吗?

所以,咱们得把 AI 当人看。

在Java中实现一个人工智能玩井棋游戏通常涉及以下几个步骤: 1. **设计棋盘**:首先创建一个二维数组表示棋盘,每个元素代表棋盘的一个位置,可以初始化为空或标记为玩家1(X)或玩家2(O)。 ```java public class TicTacToeBoard { private char[][] board; // 构造函数,初始棋盘全为空 } ``` 2. **用户输入和验证**:设计函数让玩家输入他们的回合选择,并检查是否合法(不在已有标志的位置上)。 3. **AI算法**:使用如Minimax算法、Alpha-Beta剪枝等策略来模拟AI的思考过程。对于简单版本,可以选择随机落子;复杂一点的AI可以优先占据中央或对角线位置。 4. **游戏循环**:主循环中交替轮到玩家和AI执行操作,更新棋盘并检查胜负条件(比如有三个相同的标志连成一行、列或对角线)。 5. **结果判断和结束游戏**:当有一方赢得比赛或者棋盘填满而未分出胜负时,输出游戏结果。 6. **界面展示**:如果你希望有更好的用户体验,可以添加图形用户界面(GUI) 来显示棋盘状态和交互。 这里是一个简单的AI决策部分示例: ```java private int minimax(int depth, boolean isMaximizing) { if (checkWinningCondition()) return result; // 检查胜利条件 if (isFull()) return 0; // 平局 int bestScore = isMaximizing ? Integer.MIN_VALUE : Integer.MAX_VALUE; for (int row = 0; row < board.length; row++) { for (int col = 0; col < board[row].length; col++) { if (!board[row][col] == ' ') { continue; // 跳过已占用的位置 } board[row][col] = isMaximizing ? 'O' : 'X'; // AI落子 int score = minimax(depth + 1, !isMaximizing); // 递归调用,对手行动 board[row][col] = ' '; // 撤销AI的落子,回溯搜索 bestScore = isMaximizing ? Math.max(bestScore, score) : Math.min(bestScore, score); } } return bestScore; } // 启动游戏循环... ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值