超强降本增效!DeepSeek-V3.2-Exp上线,首发DeepSeek-V3.2-Exp:开源大模型新标杆,长文本处理效率提升50%+,API成本大幅降低

收藏必备!DeepSeek-V3.2-Exp:开源大模型新标杆,长文本处理效率提升50%+,API成本大幅降低

DeepSeek-V3.2-Exp是基于V3.1-Terminus的改进版本,引入DeepSeek Sparse Attention(DSA)机制,实现长文本处理效率提升2-3倍,内存使用降低30-40%,API成本降低50%以上。模型在保持与前代相当性能的同时,显著降低了计算资源消耗。已在Hugging Face和ModelScope开源,适用于长文本处理、代码生成、逻辑推理等场景,为开发者提供更经济高效的AI解决方案。


目 录

前言

DeepSeek-V3.2是什么

DeepSeek-V3.2-Exp是DeepSeek-AI推出的一款实验性人工智能模型,凭借创新的DeepSeek Sparse Attention(DSA)机制,显著提升了长文本处理的效率。这一版本是在DeepSeek-V3.1-Terminus的基础上持续训练而成,主要通过在架构中引入DSA来实现细粒度稀疏注意力,借助闪电索引器(lightning indexer)高效筛选关键信息,从而在长文本训练与推理过程中显著降低计算负担。

在性能方面,DeepSeek-V3.2-Exp与其前代模型DeepSeek-V3.1-Terminus在多个公开评测集上几乎持平,展现了该模型在多领域任务中的稳定性与出色表现。此外,DeepSeek-V3.2-Exp已在Hugging Face和ModelScope平台开源,研究人员与开发者可以轻松进行探索与应用。值得注意的是,模型的API价格大幅下降,降低了开发者的使用成本,这为其在实际应用中的广泛部署提供了强有力的支持。

DeepSeek-V3.2的主要功能

随着人工智能技术的不断发展,如何提升模型效率、降低使用成本,已成为行业内的核心挑战。DeepSeek-AI推出的DeepSeek-V3.2-Exp正是为了解决这一难题。通过引入创新的DeepSeek Sparse Attention(DSA)机制,优化了长文本处理能力,并在多个方面进行全面提升。这一新版本不仅在性能上与前代模型保持一致,更在成本和应用拓展上作出了显著改进,成为开发者和研究人员的新选择。

  • 架构创新:在DeepSeek-V3.1-Terminus的基础上,DeepSeek-V3.2-Exp引入了DeepSeek Sparse Attention(DSA)机制,通过闪电索引器与细粒度标记选择技术,显著提升了效率,尤其在处理长文本时展现出极为优越的表现。
  • 性能优化:该模型在多个公开评测集上的表现与DeepSeek-V3.1-Terminus接近,但在长文本推理方面大幅降低了计算成本,从 O(L²) 优化至 O(Lk),显著提高了推理效率。
  • 开源共享:DeepSeek-V3.2-Exp已在Hugging Face和ModelScope平台开源,提供详细的实现文档和模型权重,方便研究人员和开发者进一步研究与应用。
  • 成本降低:随着API价格的大幅下降,开发者的使用成本得到有效降低,使得更多开发者能够以较低的投入接入和使用该模型,推动其在实际应用中的普及和部署。
  • 应用拓展:DeepSeek-V3.2-Exp已经在官方App、网页端和小程序中全面更新,支持多个平台,为用户提供了更高效且经济的AI服务体验。

DeepSeek-V3.2的应用场景

  • 长文本处理:特别适用于需要处理大量文本的场景,如长篇文档分析和长文本生成。其稀疏注意力机制能够显著提升处理长文本的效率。
  • 搜索与信息检索:可应用于搜索代理等场景,帮助用户迅速而准确地获取信息,提高搜索结果的相关性和准确性。
  • 代码生成与编程辅助:支持代码生成和编程辅助任务,如自动补全和代码优化,帮助开发者提高编程效率和代码质量。
  • 数学与逻辑推理:在解决数学问题和进行逻辑推理时表现优异,能够处理复杂的数学题目和推理链条。
  • 多语言处理:支持跨语言任务,如文本生成和翻译,满足不同语言环境下的需求,具有广泛的应用前景。
  • 智能代理与交互:作为智能代理的核心引擎,能够用于构建智能助手、聊天机器人等系统,提供自然语言交互体验。

蓝耘MaaS的V3.2-Exp

核心技术特性

  • 基础架构:本模型基于V3.1-Terminus架构构建,完整保留了其671B参数规模,确保了模型容量的基本盘与原有体系的高度一致。
  • 创新机制:在核心注意力机制上实现重要突破,首次引入细粒度稀疏注意力设计,有效克服了传统Transformer架构中全局注意力计算复杂度高的固有限制。
  • 效率提升:得益于稀疏注意力结构,模型在处理长文本输入时表现出显著优势,不仅大幅降低了计算资源的消耗,同时也有效控制了内存占用,为长序列任务提供了更可行的部署方案。
  • 质量保证:尽管在计算效率上取得明显进步,但经严格测试验证,模型在多种任务下的输出质量与原始V3.1-Terminus版本保持了几乎完全一致的水平。

性能表现

  1. 架构创新,降本增效
    DeepSeek-V3.2-Exp 引入了其核心创新—— DeepSeek Sparse AttentionDSA) 机制,通过细粒度的 token 级别稀疏化,对传统 Transformer 架构中的稠密注意力机制进行了革新。
    该模型采用 FP8 低精度格式进行训练与推理。这一系列技术革新带来了显著的效率提升:在处理长文本时,推理速度提升了 2-3 倍,内存使用降低了 30-40%,同时保持了与前代模型 V3.1-Terminus 几乎一致的输出质量。效率的提升也直接转化为成本优势,使得 API 调用成本得以降低超过 50%,实现了长文本处理性能与成本控制的双重突破
  2. 质量无损,性能稳定
    为确保评估的严谨性,DeepSeek 团队将 V3.2-Exp 与 V3.1-Terminus 的训练设置进行了严格对齐。在各领域的公开评测集上,DeepSeek-V3.2-Exp 的表现与 V3.1-Terminus 基本持平,部分任务(如数学和编程)甚至显示出小幅提升的潜力。这证明了稀疏注意力机制在提升效率的同时,并未牺牲模型的核心性能。

开源生态与社区支持

  1. TileLang内核特点:高可读性,适合研究用途仓库:TileLang Examples用途:算法研究、教学演示。
  2. 高性能CUDA内核DeepGEMM:索引器logit内核(包含分页版本)FlashMLA:稀疏注意力专用内核性能:生产环境优化,支持大规模部署许可证与合规性。
组件名称技术定位核心特点典型应用场景
TileLang内核面向AI和高性能计算的领域专用语言(DSL)Python式语法,高可读性 分层设计接口,兼顾初学者与专家 开发效率高,能将FlashAttention代码从500+行降至80行算法研究、教学演示、算子原型验证
DeepGEMM支持FP8格式的高性能通用矩阵乘法库极简设计,核心逻辑约300行 完全JIT(即时编译),无需预编译 支持密集和混合专家(MoE) 两种模型布局为DeepSeek-V3/R1的训练与推理提供核心计算动力
FlashMLA针对多头线性注意力(MLA) 的高效解码内核针对可变长度序列优化 支持BF16精度和分页KV缓存 生产环境验证,支持大规模部署大规模语言模型的高性能推理,尤其适合长序列处理

V3.1-Terminus VS V3.2-Exp

DeepSeek-V3.1-Terminus:蓝耘API+CherryStudio实测国产最新开源模型,推理能力竟让我后背发凉V3.1前几天刚发布,就迎来了V3.2,现在我们将V3.1和V3.2进行一个比拼测评,平台都选择蓝耘MaaS平台,基于Cherry Studio平台进行PK。由于V3.1在前面的文章已经添加进了Cherry Studio平台,下面只展示V3.2添加了流程,不懂的可以看一下前面的文章

我们点击蓝耘平台进入。找到MaaS平台选择V3.2-Exp模型进行复制

进入Cherry Studio平台将模型名称粘贴进去即可

然后再回到蓝耘MaaS平台获取专属API

再次回到Cherry Studio平台验证API和模型名称是否正确

案例1:复杂逻辑与跨领域推理

提示词:

有个国王想将公主嫁给三个公子里面最聪明的一个。国王出了一个绝对公平的测试去分辨出谁是最聪明。
三个公子在一个房间里绕圈对坐着,国王向他们展示5顶帽子,两顶黑色,三顶白色。然后他们被蒙上眼,他们各人的头上都被盖上了一顶帽子,另外两顶帽子就放在另外一间房间中。
都戴好帽子并且摘下眼罩后,国王告䜣他们谁能够最快推论到自己头上帽子的颜色,他就能娶下公主。但如果估错了就会被处死。
现在你就是其中一个公子,你看到2顶白色的帽子在其他公子头上。而过了一些时间,你察觉到其他公子都未能推能或不敢於猜测。
假设你知道其他公子也是非常聪明及国王一定是公正无私,那么,你的帽子是白色还是黑色?

V3.1-Terminus

V3.2-Exp:



结论:V3.1-Terminus用了7步总结出来帽子为白色;V3.2-Exp却只用了6步总结出来帽子的颜色

案例2:代码生成与调试

提示词:

写一个功能完备的俄罗斯方块,使用前端技术

V3.1-Terminus:

<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>俄罗斯方块</title><style>*{margin: 0;padding: 0;box-sizing: border-box;}body{font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;background:linear-gradient(135deg, #1a1a2e, #16213e);color: #fff;min-height: 100vh;display: flex;flex-direction: column;align-items: center;padding: 20px;}h1{margin: 20px 0;text-align: center;font-size: 2.5rem;text-shadow: 0 2px 5px rgba(0,0,0,0.3);color: #e94560;}.game-container{display: flex;flex-wrap: wrap;justify-content: center;gap: 20px;max-width: 900px;width: 100%;}.game-board{position: relative;background-color: #0f3460;border-radius: 8px;box-shadow: 0 10px 30px rgba(0,0,0,0.4);overflow: hidden;}canvas{display: block;}.side-panel{background-color:rgba(15, 52, 96, 0.7);border-radius: 8px;padding: 20px;min-width: 200px;box-shadow: 0 5px 15px rgba(0,0,0,0.3);}.info-panel{margin-bottom: 20px;}.info-item{margin-bottom: 15px;}.info-label{font-size: 0.9rem;color: #a9b7c6;margin-bottom: 5px;}.info-value{font-size: 1.5rem;font-weight: bold;color: #e94560;}.next-piece{display: flex;flex-direction: column;align-items: center;margin-bottom: 20px;}#nextPieceCanvas{background-color:rgba(0, 0, 0, 0.2);border-radius: 5px;margin-top: 10px;}.controls{display: flex;flex-direction: column;gap: 10px;margin-top: 20px;}button{background: #e94560;color: white;border: none;padding: 12px 20px;border-radius: 5px;font-size: 1rem;cursor: pointer;transition: all 0.3s;font-weight: bold;}button:hover{background: #ff6b81;transform:translateY(-2px);}button:active{transform:translateY(0);}.game-over{position: absolute;top: 0;left: 0;width: 100%;height: 100%;background-color:rgba(0, 0, 0, 0.8);display: flex;flex-direction: column;justify-content: center;align-items: center;border-radius: 8px;z-index: 10;}.game-over h2{font-size: 2.5rem;color: #e94560;margin-bottom: 20px;}.hidden{display: none;}.instructions{max-width: 900px;margin-top: 30px;background-color:rgba(15, 52, 96, 0.7);border-radius: 8px;padding: 20px;box-shadow: 0 5px 15px rgba(0,0,0,0.3);}.instructions h3{color: #e94560;margin-bottom: 15px;}.instructions ul{list-style-type: none;padding-left: 0;}.instructions li{margin-bottom: 10px;padding-left: 20px;position: relative;}.instructions li:before{content:"•";color: #e94560;position: absolute;left: 0;}@media(max-width: 768px){.game-container{flex-direction: column;align-items: center;}.side-panel{width: 100%;max-width: 400px;}h1{font-size: 2rem;}}.key{display: inline-block;background:rgba(0,0,0,0.3);padding: 2px 8px;border-radius: 4px;font-family: monospace;margin: 0 3px;}</style></head><body><h1>俄罗斯方块</h1><divclass="game-container"><divclass="game-board"><canvasid="gameCanvas"width="300"height="600"></canvas><divid="gameOver"class="game-over hidden"><h2>游戏结束</h2><p>最终得分: <spanid="finalScore">0</span></p><buttonid="restartButton">重新开始</button></div></div><divclass="side-panel"><divclass="info-panel"><divclass="info-item"><divclass="info-label">分数</div><divid="score"class="info-value">0</div></div><divclass="info-item"><divclass="info-label">等级</div><divid="level"class="info-value">1</div></div><divclass="info-item"><divclass="info-label">已消除行数</div><divid="lines"class="info-value">0</div></div></div><divclass="next-piece"><divclass="info-label">下一个方块</div><canvasid="nextPieceCanvas"width="120"height="120"></canvas></div><divclass="controls"><buttonid="startButton">开始游戏</button><buttonid="pauseButton">暂停游戏</button></div></div></div><divclass="instructions"><h3>游戏操作说明</h3><ul><li>← → : 左右移动方块</li><li>↑ : 旋转方块</li><li>↓ : 加速下落</li><li>空格键 : 直接落到底部</li><li>P : 暂停/继续游戏</li></ul></div><script>// 游戏常量constCOLS=10;constROWS=20;constBLOCK_SIZE=30;constCOLORS=[null,'#FF0D72',// I'#0DC2FF',// J'#0DFF72',// L'#F538FF',// O'#FF8E0D',// S'#FFE138',// T'#3877FF'// Z];// 方块形状定义constSHAPES=[null,[[0,0,0,0],[1,1,1,1],[0,0,0,0],[0,0,0,0]],[[2,0,0],[2,2,2],[0,0,0]],[[0,0,3],[3,3,3],[0,0,0]],[[4,4],[4,4]],[[0,5,5],[5,5,0],[0,0,0]],[[0,6,0],[6,6,6],[0,0,0]],[[7,7,0],[0,7,7],[0,0,0]]];// 游戏状态let canvas, ctx, nextCanvas, nextCtx;let board =[];let currentPiece, nextPiece;let score =0;let level =1;let lines =0;let gameOver =false;let isPaused =false;let dropInterval =1000;// 初始下落速度(毫秒)let dropStart = Date.now();let animationId;// 初始化游戏functioninit(){
            canvas = document.getElementById('gameCanvas');
            ctx = canvas.getContext('2d');
            nextCanvas = document.getElementById('nextPieceCanvas');
            nextCtx = nextCanvas.getContext('2d');// 初始化游戏板createBoard();// 创建第一个方块
            currentPiece =createPiece();
            nextPiece =createPiece();// 绘制初始状态draw();// 添加事件监听
            document.addEventListener('keydown', handleKeyPress);
            document.getElementById('startButton').addEventListener('click', startGame);
            document.getElementById('pauseButton').addEventListener('click', togglePause);
            document.getElementById('restartButton').addEventListener('click', restartGame);}// 创建游戏板functioncreateBoard(){
            board = Array.from(Array(ROWS),()=>Array(COLS).fill(0));}// 创建随机方块functioncreatePiece(){const pieceType = Math.floor(Math.random()*7)+1;return{
                shape:SHAPES[pieceType],
                color:COLORS[pieceType],
                x: Math.floor(COLS/2)- Math.floor(SHAPES[pieceType][0].length /2),
                y:0};}// 绘制游戏functiondraw(){
            ctx.clearRect(0,0, canvas.width, canvas.height);// 绘制已固定的方块drawBoard();// 绘制当前下落的方块drawPiece(currentPiece);// 绘制下一个方块预览drawNextPiece();// 更新分数和等级显示
            document.getElementById('score').textContent = score;
            document.getElementById('level').textContent = level;
            document.getElementById('lines').textContent = lines;}// 绘制游戏板functiondrawBoard(){for(let y =0; y <ROWS; y++){for(let x =0; x <COLS; x++){if(board[y][x]){drawBlock(ctx, x, y,COLORS[board[y][x]]);}}}}// 绘制方块functiondrawPiece(piece){for(let y =0; y < piece.shape.length; y++){for(let x =0; x < piece.shape[y].length; x++){if(piece.shape[y][x]){drawBlock(ctx, piece.x + x, piece.y + y, piece.color);}}}}// 绘制单个方块functiondrawBlock(context, x, y, color){
            context.fillStyle = color;
            context.fillRect(x *BLOCK_SIZE, y *BLOCK_SIZE,BLOCK_SIZE,BLOCK_SIZE);
            
            context.strokeStyle ='rgba(255, 255, 255, 0.2)';
            context.strokeRect(x *BLOCK_SIZE, y *BLOCK_SIZE,BLOCK_SIZE,BLOCK_SIZE);// 添加3D效果
            context.fillStyle ='rgba(255, 255, 255, 0.2)';
            context.fillRect(x *BLOCK_SIZE, y *BLOCK_SIZE,BLOCK_SIZE,3);
            context.fillRect(x *BLOCK_SIZE, y *BLOCK_SIZE,3,BLOCK_SIZE);
            
            context.fillStyle ='rgba(0, 0, 0, 0.2)';
            context.fillRect(x *BLOCK_SIZE+BLOCK_SIZE-3, y *BLOCK_SIZE,3,BLOCK_SIZE);
            context.fillRect(x *BLOCK_SIZE, y *BLOCK_SIZE+BLOCK_SIZE-3,BLOCK_SIZE,3);}// 绘制下一个方块预览functiondrawNextPiece(){
            nextCtx.clearRect(0,0, nextCanvas.width, nextCanvas.height);// 居中显示下一个方块const offsetX =(nextCanvas.width /BLOCK_SIZE- nextPiece.shape[0].length)/2;const offsetY =(nextCanvas.height /BLOCK_SIZE- nextPiece.shape.length)/2;for(let y =0; y < nextPiece.shape.length; y++){for(let x =0; x < nextPiece.shape[y].length; x++){if(nextPiece.shape[y][x]){drawBlock(nextCtx, offsetX + x, offsetY + y, nextPiece.color);}}}}// 移动方块functionmovePiece(dx, dy){if(isPaused || gameOver)return;
            
            currentPiece.x += dx;
            currentPiece.y += dy;if(checkCollision()){
                currentPiece.x -= dx;
                currentPiece.y -= dy;// 如果是向下移动碰到碰撞,则固定方块if(dy >0){lockPiece();checkLines();
                    currentPiece = nextPiece;
                    nextPiece =createPiece();// 检查游戏是否结束if(checkCollision()){
                        gameOver =true;
                        document.getElementById('finalScore').textContent = score;
                        document.getElementById('gameOver').classList.remove('hidden');}}returnfalse;}draw();returntrue;}// 旋转方块functionrotatePiece(){if(isPaused || gameOver)return;const originalShape = currentPiece.shape;const rows = originalShape.length;const cols = originalShape[0].length;// 创建新的旋转后的形状const newShape = Array.from(Array(cols),()=>Array(rows).fill(0));for(let y =0; y < rows; y++){for(let x =0; x < cols; x++){
                    newShape[x][rows -1- y]= originalShape[y][x];}}const originalX = currentPiece.x;const originalY = currentPiece.y;// 调整位置使旋转后居中
            currentPiece.x += Math.floor((rows - cols)/2);
            currentPiece.y += Math.floor((cols - rows)/2);
            
            currentPiece.shape = newShape;// 如果旋转后发生碰撞,尝试左右移动避免碰撞if(checkCollision()){let offset =1;while(offset <=2){// 尝试向左移动
                    currentPiece.x = originalX - offset;if(!checkCollision()){draw();return;}// 尝试向右移动
                    currentPiece.x = originalX + offset;if(!checkCollision()){draw();return;}// 恢复原始位置
                    currentPiece.x = originalX;
                    offset++;}// 如果无法避免碰撞,恢复原始状态
                currentPiece.shape = originalShape;
                currentPiece.x = originalX;
                currentPiece.y = originalY;}draw();}// 检查碰撞functioncheckCollision(){for(let y =0; y < currentPiece.shape.length; y++){for(let x =0; x < currentPiece.shape[y].length; x++){if(currentPiece.shape[y][x]!==0){const newX = currentPiece.x + x;const newY = currentPiece.y + y;if(
                            newX <0|| 
                            newX >=COLS|| 
                            newY >=ROWS||(newY >=0&& board[newY][newX]!==0)){returntrue;}}}}returnfalse;}// 固定方块到游戏板functionlockPiece(){for(let y =0; y < currentPiece.shape.length; y++){for(let x =0; x < currentPiece.shape[y].length; x++){if(currentPiece.shape[y][x]!==0){const boardY = currentPiece.y + y;if(boardY >=0){// 确保不会在顶部之外固定方块
                            board[boardY][currentPiece.x + x]= currentPiece.shape[y][x];}}}}}// 检查并消除完整的行functioncheckLines(){let linesCleared =0;for(let y =ROWS-1; y >=0; y--){if(board[y].every(cell=> cell !==0)){// 移除该行
                    board.splice(y,1);// 在顶部添加新行
                    board.unshift(Array(COLS).fill(0));
                    linesCleared++;
                    y++;// 重新检查当前行(因为上面的行下移了)}}if(linesCleared >0){// 更新分数updateScore(linesCleared);
                lines += linesCleared;// 更新等级和下落速度
                level = Math.floor(lines /10)+1;
                dropInterval = Math.max(100,1000-(level -1)*100);}}// 更新分数functionupdateScore(linesCleared){const points =[0,40,100,300,1200];// 消除1,2,3,4行的分数
            score += points[linesCleared]* level;}// 快速下落(硬降)functionhardDrop(){if(isPaused || gameOver)return;while(movePiece(0,1)){// 继续下落直到碰撞}}// 处理键盘输入functionhandleKeyPress(event){if(gameOver)return;switch(event.keyCode){case37:// 左箭头movePiece(-1,0);break;case39:// 右箭头movePiece(1,0);break;case40:// 下箭头movePiece(0,1);break;case38:// 上箭头rotatePiece();break;case32:// 空格键hardDrop();break;case80:// P键togglePause();break;}}// 游戏主循环functiongameLoop(){if(isPaused || gameOver){
                animationId =requestAnimationFrame(gameLoop);return;}const now = Date.now();const delta = now - dropStart;if(delta > dropInterval){movePiece(0,1);
                dropStart = now;}draw();
            animationId =requestAnimationFrame(gameLoop);}// 开始游戏functionstartGame(){if(gameOver){restartGame();return;}if(!animationId){
                gameOver =false;
                isPaused =false;
                document.getElementById('gameOver').classList.add('hidden');gameLoop();}}// 暂停/继续游戏functiontogglePause(){if(gameOver)return;
            
            isPaused =!isPaused;
            document.getElementById('pauseButton').textContent = isPaused ?'继续游戏':'暂停游戏';if(!isPaused){
                dropStart = Date.now();gameLoop();}}// 重新开始游戏functionrestartGame(){// 取消动画帧if(animationId){cancelAnimationFrame(animationId);
                animationId =null;}// 重置游戏状态
            score =0;
            level =1;
            lines =0;
            gameOver =false;
            isPaused =false;
            dropInterval =1000;// 重置游戏板createBoard();// 创建新方块
            currentPiece =createPiece();
            nextPiece =createPiece();// 隐藏游戏结束界面
            document.getElementById('gameOver').classList.add('hidden');
            document.getElementById('pauseButton').textContent ='暂停游戏';// 重新绘制draw();// 开始游戏循环gameLoop();}// 页面加载完成后初始化游戏
        window.addEventListener('load', init);</script></body></html>

V3.2-Exp:



这里消耗tokens的值太棒了

<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>俄罗斯方块</title><style>*{margin: 0;padding: 0;box-sizing: border-box;}body{font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;background:linear-gradient(135deg, #1a1a2e, #16213e);color: #fff;min-height: 100vh;display: flex;flex-direction: column;align-items: center;padding: 20px;}h1{margin: 20px 0;text-align: center;font-size: 2.5rem;text-shadow: 0 2px 5px rgba(0,0,0,0.3);color: #e94560;}.game-container{display: flex;flex-wrap: wrap;justify-content: center;gap: 30px;max-width: 900px;width: 100%;}.game-board{position: relative;background-color: #0f3460;border-radius: 8px;box-shadow: 0 10px 30px rgba(0,0,0,0.4);overflow: hidden;}canvas{display: block;}.side-panel{background-color:rgba(15, 52, 96, 0.7);border-radius: 8px;padding: 25px;min-width: 220px;box-shadow: 0 5px 15px rgba(0,0,0,0.3);}.info-panel{margin-bottom: 30px;}.info-item{margin-bottom: 20px;}.info-label{font-size: 0.9rem;color: #a9b7c6;margin-bottom: 8px;}.info-value{font-size: 1.8rem;font-weight: bold;color: #e94560;}.next-piece{display: flex;flex-direction: column;align-items: center;margin-bottom: 25px;}#nextPieceCanvas{background-color:rgba(0, 0, 0, 0.2);border-radius: 5px;margin-top: 12px;}.controls{display: flex;flex-direction: column;gap: 12px;margin-top: 25px;}button{background: #e94560;color: white;border: none;padding: 14px 20px;border-radius: 5px;font-size: 1rem;cursor: pointer;transition: all 0.3s;font-weight: bold;}button:hover{background: #ff6b81;transform:translateY(-2px);}button:active{transform:translateY(0);}.game-over{position: absolute;top: 0;left: 0;width: 100%;height: 100%;background-color:rgba(0, 0, 0, 0.85);display: flex;flex-direction: column;justify-content: center;align-items: center;border-radius: 8px;z-index: 10;}.game-over h2{font-size: 2.5rem;color: #e94560;margin-bottom: 25px;}.hidden{display: none;}.instructions{max-width: 900px;margin-top: 30px;background-color:rgba(15, 52, 96, 0.7);border-radius: 8px;padding: 25px;box-shadow: 0 5px 15px rgba(0,0,0,0.3);}.instructions h3{color: #e94560;margin-bottom: 15px;}.instructions ul{list-style-type: none;padding-left: 0;}.instructions li{margin-bottom: 12px;padding-left: 20px;position: relative;}.instructions li:before{content:"•";color: #e94560;position: absolute;left: 0;}@media(max-width: 768px){.game-container{flex-direction: column;align-items: center;}.side-panel{width: 100%;max-width: 400px;}h1{font-size: 2rem;}}.key{display: inline-block;background:rgba(0,0,0,0.3);padding: 4px 10px;border-radius: 4px;font-family: monospace;margin: 0 3px;}</style></head><body><h1>俄罗斯方块</h1><divclass="game-container"><divclass="game-board"><canvasid="gameCanvas"width="300"height="600"></canvas><divid="gameOver"class="game-over hidden"><h2>游戏结束</h2><pstyle="margin-bottom: 20px;font-size: 1.2rem;">最终得分: <spanid="finalScore">0</span></p><buttonid="restartButton">重新开始</button></div></div><divclass="side-panel"><divclass="info-panel"><divclass="info-item"><divclass="info-label">分数</div><divid="score"class="info-value">0</div></div><divclass="info-item"><divclass="info-label">等级</div><divid="level"class="info-value">1</div></div><divclass="info-item"><divclass="info-label">已消除行数</div><divid="lines"class="info-value">0</div></div></div><divclass="next-piece"><divclass="info-label">下一个方块</div><canvasid="nextPieceCanvas"width="120"height="120"></canvas></div><divclass="controls"><buttonid="startButton">开始游戏</button><buttonid="pauseButton">暂停游戏</button></div></div></div><divclass="instructions"><h3>游戏操作说明</h3><ul><li><spanclass="key">←</span><spanclass="key">→</span> : 左右移动方块</li><li><spanclass="key">↑</span> : 旋转方块</li><li><spanclass="key">↓</span> : 加速下落</li><li><spanclass="key">空格</span> : 直接落到底部</li><li><spanclass="key">P</span> : 暂停/继续游戏</li></ul></div><script>// 游戏常量constCOLS=10;constROWS=20;constBLOCK_SIZE=30;constCOLORS=[null,'#FF0D72',// I'#0DC2FF',// J'#0DFF72',// L'#F538FF',// O'#FF8E0D',// S'#FFE138',// T'#3877FF'// Z];// 方块形状定义constSHAPES=[null,[[0,0,0,0],[1,1,1,1],[0,0,0,0],[0,0,0,0]],[[2,0,0],[2,2,2],[0,0,0]],[[0,0,3],[3,3,3],[0,0,0]],[[4,4],[4,4]],[[0,5,5],[5,5,0],[0,0,0]],[[0,6,0],[6,6,6],[0,0,0]],[[7,7,0],[0,7,7],[0,0,0]]];// 游戏状态let canvas, ctx, nextCanvas, nextCtx;let board =[];let currentPiece, nextPiece;let score =0;let level =1;let lines =0;let gameOver =false;let isPaused =false;let dropInterval =1000;// 初始下落速度(毫秒)let dropStart = Date.now();let animationId;// 初始化游戏functioninit(){
            canvas = document.getElementById('gameCanvas');
            ctx = canvas.getContext('2d');
            nextCanvas = document.getElementById('nextPieceCanvas');
            nextCtx = nextCanvas.getContext('2d');// 初始化游戏板createBoard();// 创建第一个方块
            currentPiece =createPiece();
            nextPiece =createPiece();// 绘制初始状态draw();// 添加事件监听
            document.addEventListener('keydown', handleKeyPress);
            document.getElementById('startButton').addEventListener('click', startGame);
            document.getElementById('pauseButton').addEventListener('click', togglePause);
            document.getElementById('restartButton').addEventListener('click', restartGame);}// 创建游戏板functioncreateBoard(){
            board = Array.from(Array(ROWS),()=>Array(COLS).fill(0));}// 创建随机方块functioncreatePiece(){const pieceType = Math.floor(Math.random()*7)+1;return{
                shape:SHAPES[pieceType],
                color:COLORS[pieceType],
                x: Math.floor(COLS/2)- Math.floor(SHAPES[pieceType][0].length /2),
                y:0};}// 绘制游戏functiondraw(){
            ctx.clearRect(0,0, canvas.width, canvas.height);// 绘制背景网格drawGrid();// 绘制已固定的方块drawBoard();// 绘制当前下落的方块drawPiece(currentPiece);// 绘制下一个方块预览drawNextPiece();// 更新分数和等级显示
            document.getElementById('score').textContent = score;
            document.getElementById('level').textContent = level;
            document.getElementById('lines').textContent = lines;}// 绘制背景网格functiondrawGrid(){
            ctx.strokeStyle ='rgba(255, 255, 255, 0.1)';for(let x =0; x <=COLS; x++){
                ctx.beginPath();
                ctx.moveTo(x *BLOCK_SIZE,0);
                ctx.lineTo(x *BLOCK_SIZE, canvas.height);
                ctx.stroke();}for(let y =0; y <=ROWS; y++){
                ctx.beginPath();
                ctx.moveTo(0, y *BLOCK_SIZE);
                ctx.lineTo(canvas.width, y *BLOCK_SIZE);
                ctx.stroke();}}// 绘制游戏板functiondrawBoard(){for(let y =0; y <ROWS; y++){for(let x =0; x <COLS; x++){if(board[y][x]){drawBlock(ctx, x, y,COLORS[board[y][x]]);}}}}// 绘制方块functiondrawPiece(piece){for(let y =0; y < piece.shape.length; y++){for(let x =0; x < piece.shape[y].length; x++){if(piece.shape[y][x]){drawBlock(ctx, piece.x + x, piece.y + y, piece.color);}}}}// 绘制单个方块functiondrawBlock(context, x, y, color){
            context.fillStyle = color;
            context.fillRect(x *BLOCK_SIZE, y *BLOCK_SIZE,BLOCK_SIZE,BLOCK_SIZE);
            
            context.strokeStyle ='rgba(255, 255, 255, 0.2)';
            context.strokeRect(x *BLOCK_SIZE, y *BLOCK_SIZE,BLOCK_SIZE,BLOCK_SIZE);// 添加3D效果
            context.fillStyle ='rgba(255, 255, 255, 0.2)';
            context.fillRect(x *BLOCK_SIZE, y *BLOCK_SIZE,BLOCK_SIZE,3);
            context.fillRect(x *BLOCK_SIZE, y *BLOCK_SIZE,3,BLOCK_SIZE);
            
            context.fillStyle ='rgba(0, 0, 0, 0.2)';
            context.fillRect(x *BLOCK_SIZE+BLOCK_SIZE-3, y *BLOCK_SIZE,3,BLOCK_SIZE);
            context.fillRect(x *BLOCK_SIZE, y *BLOCK_SIZE+BLOCK_SIZE-3,BLOCK_SIZE,3);}// 绘制下一个方块预览functiondrawNextPiece(){
            nextCtx.clearRect(0,0, nextCanvas.width, nextCanvas.height);// 居中显示下一个方块const offsetX =(nextCanvas.width /BLOCK_SIZE- nextPiece.shape[0].length)/2;const offsetY =(nextCanvas.height /BLOCK_SIZE- nextPiece.shape.length)/2;for(let y =0; y < nextPiece.shape.length; y++){for(let x =0; x < nextPiece.shape[y].length; x++){if(nextPiece.shape[y][x]){
                        nextCtx.fillStyle = nextPiece.color;
                        nextCtx.fillRect((offsetX + x)*BLOCK_SIZE,(offsetY + y)*BLOCK_SIZE,BLOCK_SIZE,BLOCK_SIZE);
                        
                        nextCtx.strokeStyle ='rgba(255, 255, 255, 0.2)';
                        nextCtx.strokeRect((offsetX + x)*BLOCK_SIZE,(offsetY + y)*BLOCK_SIZE,BLOCK_SIZE,BLOCK_SIZE);}}}}// 移动方块functionmovePiece(dx, dy){if(isPaused || gameOver)return;
            
            currentPiece.x += dx;
            currentPiece.y += dy;if(checkCollision()){
                currentPiece.x -= dx;
                currentPiece.y -= dy;// 如果是向下移动碰到碰撞,则固定方块if(dy >0){lockPiece();checkLines();
                    currentPiece = nextPiece;
                    nextPiece =createPiece();// 检查游戏是否结束if(checkCollision()){
                        gameOver =true;
                        document.getElementById('finalScore').textContent = score;
                        document.getElementById('gameOver').classList.remove('hidden');}}returnfalse;}draw();returntrue;}// 旋转方块functionrotatePiece(){if(isPaused || gameOver)return;const originalShape = currentPiece.shape;const rows = originalShape.length;const cols = originalShape[0].length;// 创建新的旋转后的形状const newShape = Array.from(Array(cols),()=>Array(rows).fill(0));for(let y =0; y < rows; y++){for(let x =0; x < cols; x++){
                    newShape[x][rows -1- y]= originalShape[y][x];}const originalX = currentPiece.x;const originalY = currentPiece.y;// 调整位置使旋转后居中
            currentPiece.x += Math.floor((rows - cols)/2);
            currentPiece.y += Math.floor((cols - rows)/2);
            
            currentPiece.shape = newShape;// 如果旋转后发生碰撞,尝试左右移动避免碰撞if(checkCollision()){let offset =1;while(offset <=2){// 尝试向左移动
                    currentPiece.x = originalX - offset;if(!checkCollision()){draw();return;}// 尝试向右移动
                    currentPiece.x = originalX + offset;if(!checkCollision()){draw();return;}// 恢复原始位置
                    currentPiece.x = originalX;
                    offset++;}// 如果无法避免碰撞,恢复原始状态
                currentPiece.shape = originalShape;
                currentPiece.x = originalX;
                currentPiece.y = originalY;}draw();}// 检查碰撞functioncheckCollision(){for(let y =0; y < currentPiece.shape.length; y++){for(let x =0; x < currentPiece.shape[y].length; x++){if(currentPiece.shape[y][x]!==0){const newX = currentPiece.x + x;const newY = currentPiece.y + y;if(
                            newX <0|| 
                            newX >=COLS|| 
                            newY >=ROWS||(newY >=0&& board[newY][newX]!==0)){returntrue;}}}}returnfalse;}// 固定方块到游戏板functionlockPiece(){for(let y =0; y < currentPiece.shape.length; y++){for(let x =0; x < currentPiece.shape[y].length; x++){if(currentPiece.shape[y][x]!==0){const boardY = currentPiece.y + y;if(boardY >=0){
                            board[boardY][currentPiece.x + x]= currentPiece.shape[y][x];}}}}}// 检查并消除完整的行functioncheckLines(){let linesCleared =0;for(let y =ROWS-1; y >=0; y--){if(board[y].every(cell=> cell !==0)){// 移除该行
                    board.splice(y,1);// 在顶部添加新行
                    board.unshift(Array(COLS).fill(0));
                    linesCleared++;
                    y++;// 重新检查当前行(因为上面的行下移了)}}if(linesCleared >0){// 更新分数updateScore(linesCleared);
                lines += linesCleared;// 更新等级和下落速度
                level = Math.floor(lines /10)+1;
                dropInterval = Math.max(100,1000-(level -1)*100);}}// 更新分数functionupdateScore(linesCleared){const points =[0,40,100,300,1200];// 消除1,2,3,4行的分数
                score += points[linesCleared]* level;}}// 快速下落(硬降)functionhardDrop(){if(isPaused || gameOver)return;while(movePiece(0,1)){// 继续下落直到碰撞}}// 处理键盘输入functionhandleKeyPress(event){if(gameOver)return;switch(event.keyCode){case37:// 左箭头movePiece(-1,0);break;case39:// 右箭头movePiece(1,0);break;case40:// 下箭头movePiece(0,1);break;case38:// 上箭头rotatePiece();break;case32:// 空格键hardDrop();break;case80:// P键togglePause();break;}}// 游戏主循环functiongameLoop(){if(isPaused || gameOver){
                animationId =requestAnimationFrame(gameLoop);return;}const now = Date.now();const delta = now - dropStart;if(delta > dropInterval){movePiece(0,1);
                dropStart = now;}draw();
            animationId =requestAnimationFrame(gameLoop);}// 开始游戏functionstartGame(){if(gameOver){restartGame();return;}if(!animationId){
                gameOver =false;
                isPaused =false;
                document.getElementById('gameOver').classList.add('hidden');gameLoop();}}// 暂停/继续游戏functiontogglePause(){if(gameOver)return;
            
            isPaused =!isPaused;
            document.getElementById('pauseButton').textContent = isPaused ?'继续游戏':'暂停游戏';if(!isPaused){
                dropStart = Date.now();gameLoop();}}// 重新开始游戏functionrestartGame(){// 取消动画帧if(animationId){cancelAnimationFrame(animationId);
                animationId =null;}// 重置游戏状态
            score =0;
            level =1;
            lines =0;
            gameOver =false;
            isPaused =false;
            dropInterval =1000;// 重置游戏板createBoard();// 创建新方块
            currentPiece =createPiece();
            nextPiece =createPiece();// 隐藏游戏结束界面
            document.getElementById('gameOver').classList.add('hidden');
            document.getElementById('pauseButton').textContent ='暂停游戏';// 重新绘制draw();// 开始游戏循环gameLoop();}// 页面加载完成后初始化游戏
        window.addEventListener('load', init);</script></body></html>

结论:没有代码方面没有太大的区别,只能说是差不多;只是这消耗tokens确实牛,3.1消耗了20tokens,3.2直接封神

案例3:联网搜索与信息整合

提示词:

总结近期关于‘AI for Science’的三项重要突破,并列出其研究团队和论文来源。

V3.1-Terminus:


V3.2-Exp:



结论:与其说它们是两个独立的版本,不如说 V3.2-Exp 是在 V3.1-Terminus 奠定的稳健基础上,增强了探索能力的一次演进。FunSearch 的真正突破性,在于它成功地将这两者结合在了一起:它创建了一个系统,这个系统既能像可靠的生产线一样持续运作(Terminus的哲学),又能像富有创造力的科学家一样不断尝试新想法(Exp的哲学)。 正是这种结合,使得它能够在像帽集问题和装箱问题这样困难的领域中发现人类专家未曾发现的解。

总结

同样是解那道经典的帽子推理题,V3.2思考的步骤更短,直接抓住了关键。写俄罗斯方块代码时,两个模型都能完成任务,但V3.2明显更省资源。这就像找了个更熟练的工人,活干得一样好,但用时更短、用料更省。

这背后的门道在于,V3.2学会了一种“跳着读”的本事。处理长内容时,它不再需要逐字逐句反复计算,而是能快速锁定核心信息。这种效率提升直接反映在价格上,现在用同样的钱能调用更多次API。

那么,为什么要选择蓝耘平台?

正是因为蓝耘MaaS平台提供了稳定、高性能的推理环境,才能让我们开发者第一时间、零门槛地体验到这种技术进步带来的直接好处:更快的响应速度和超过50%的成本下降。这意味着,在蓝耘上,我们可以用更少的预算,支撑起更大规模或更复杂的AI应用。选择蓝耘,就是选择了一个能够持续获得最新技术红利、并真正帮助我们降本增效的可靠伙伴。

子推理题,V3.2思考的步骤更短,直接抓住了关键。写俄罗斯方块代码时,两个模型都能完成任务,但V3.2明显更省资源。这就像找了个更熟练的工人,活干得一样好,但用时更短、用料更省。

这背后的门道在于,V3.2学会了一种“跳着读”的本事。处理长内容时,它不再需要逐字逐句反复计算,而是能快速锁定核心信息。这种效率提升直接反映在价格上,现在用同样的钱能调用更多次API。

那么,为什么要选择蓝耘平台?

正是因为蓝耘MaaS平台提供了稳定、高性能的推理环境,才能让我们开发者第一时间、零门槛地体验到这种技术进步带来的直接好处:更快的响应速度和超过50%的成本下降。这意味着,在蓝耘上,我们可以用更少的预算,支撑起更大规模或更复杂的AI应用。选择蓝耘,就是选择了一个能够持续获得最新技术红利、并真正帮助我们降本增效的可靠伙伴。

对我们开发者来说,在蓝耘平台上用V3.2,最实在的好处就是:花更少的钱,办同样的事,遇到长文章时处理速度还更快了。 这种既省钱又提效的升级,才是真正对我们有用的进步。

零基础如何高效学习大模型?

为了帮助大家打破壁垒,快速了解大模型核心技术原理,学习相关大模型技术。从原理出发真正入局大模型。在这里我和MoPaaS魔泊云联合梳理打造了系统大模型学习脉络,这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码免费领取🆓**⬇️⬇️⬇️

在这里插入图片描述

【大模型全套视频教程】

教程从当下的市场现状和趋势出发,分析各个岗位人才需求,带你充分了解自身情况,get 到适合自己的 AI 大模型入门学习路线。

从基础的 prompt 工程入手,逐步深入到 Agents,其中更是详细介绍了 LLM 最重要的编程框架 LangChain。最后把微调与预训练进行了对比介绍与分析。

同时课程详细介绍了AI大模型技能图谱知识树,规划属于你自己的大模型学习路线,并且专门提前收集了大家对大模型常见的疑问,集中解答所有疑惑!

在这里插入图片描述

深耕 AI 领域技术专家带你快速入门大模型

跟着行业技术专家免费学习的机会非常难得,相信跟着学习下来能够对大模型有更加深刻的认知和理解,也能真正利用起大模型,从而“弯道超车”,实现职业跃迁!

在这里插入图片描述

【精选AI大模型权威PDF书籍/教程】

精心筛选的经典与前沿并重的电子书和教程合集,包含《深度学习》等一百多本书籍和讲义精要等材料。绝对是深入理解理论、夯实基础的不二之选。

在这里插入图片描述

【AI 大模型面试题 】

除了 AI 入门课程,我还给大家准备了非常全面的**「AI 大模型面试题」,**包括字节、腾讯等一线大厂的 AI 岗面经分享、LLMs、Transformer、RAG 面试真题等,帮你在面试大模型工作中更快一步。

【大厂 AI 岗位面经分享(92份)】

图片

【AI 大模型面试真题(102 道)】

图片

【LLMs 面试真题(97 道)】

图片

【640套 AI 大模型行业研究报告】

在这里插入图片描述

【AI大模型完整版学习路线图(2025版)】

明确学习方向,2025年 AI 要学什么,这一张图就够了!

img

👇👇点击下方卡片链接免费领取全部内容👇👇

在这里插入图片描述

抓住AI浪潮,重塑职业未来!

科技行业正处于深刻变革之中。英特尔等巨头近期进行结构性调整,缩减部分传统岗位,同时AI相关技术岗位(尤其是大模型方向)需求激增,已成为不争的事实。具备相关技能的人才在就业市场上正变得炙手可热。

行业趋势洞察:

  • 转型加速: 传统IT岗位面临转型压力,拥抱AI技术成为关键。
  • 人才争夺战: 拥有3-5年经验、扎实AI技术功底真实项目经验的工程师,在头部大厂及明星AI企业中的薪资竞争力显著提升(部分核心岗位可达较高水平)。
  • 门槛提高: “具备AI项目实操经验”正迅速成为简历筛选的重要标准,预计未来1-2年将成为普遍门槛。

与其观望,不如行动!

面对变革,主动学习、提升技能才是应对之道。掌握AI大模型核心原理、主流应用技术与项目实战经验,是抓住时代机遇、实现职业跃迁的关键一步。

在这里插入图片描述

01 为什么分享这份学习资料?

当前,我国在AI大模型领域的高质量人才供给仍显不足,行业亟需更多有志于此的专业力量加入。

因此,我们决定将这份精心整理的AI大模型学习资料,无偿分享给每一位真心渴望进入这个领域、愿意投入学习的伙伴!

我们希望能为你的学习之路提供一份助力。如果在学习过程中遇到技术问题,也欢迎交流探讨,我们乐于分享所知。

*02 这份资料的价值在哪里?*

专业背书,系统构建:

  • 本资料由我与MoPaaS魔泊云的鲁为民博士共同整理。鲁博士拥有清华大学学士美国加州理工学院博士学位,在人工智能领域造诣深厚:

    • 在IEEE Transactions等顶级学术期刊及国际会议发表论文超过50篇
    • 拥有多项中美发明专利。
    • 荣获吴文俊人工智能科学技术奖(中国人工智能领域重要奖项)。
  • 目前,我有幸与鲁博士共同进行人工智能相关研究。

在这里插入图片描述

内容实用,循序渐进:

  • 资料体系化覆盖了从基础概念入门核心技术进阶的知识点。

  • 包含丰富的视频教程实战项目案例,强调动手实践能力。

  • 无论你是初探AI领域的新手,还是已有一定技术基础希望深入大模型的学习者,这份资料都能为你提供系统性的学习路径和宝贵的实践参考助力你提升技术能力,向大模型相关岗位转型发展

    在这里插入图片描述在这里插入图片描述在这里插入图片描述

抓住机遇,开启你的AI学习之旅!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值