使用文心4.5开源大模型ERNIE-4.5-21B-A3B-Paddle 进行0成本驱动Auto-Coder

发布于:2025-07-07 ⋅ 阅读:(16) ⋅ 点赞:(0)

使用文心4.5开源大模型ERNIE-4.5-21B-A3B-Paddle 进行0成本驱动Auto-Coder

文心近几天开源了10个大模型,最简单的部署方法就是在星河社区直接一键部署。

使用fastdeploy在星河社区部署


进入部署页面:飞桨AI Studio星河社区-人工智能学习与实训社区
点击:新建部署-部署内部模型
在热门模型库里,选FastDeploy推理框架,然后选文心4.5模型即可。比如选21B这个模型。

具体参考:文心4.5开源模型部署实践-CSDN博客

部署完毕之后,点击“详情”,可以看到调用的模型名、url和token,保存好,一会儿到Auto-Coder里面设置。

安装和配置Auto-coder

安装和配置Auto-coder参考:把AI装进你的terminal终端:Auto-Coder终极编程助手体验-CSDN博客

注意,因为最大窗口数限制为32k,所以需要再Auto-Coder里面设置一下最大tokens拆分,参考值:

/conf context_prune_safe_zone_tokens:30720
# /conf index_filter_model_max_input_length:30720
/conf index_filter_model_max_input_length:24576
/conf conversation_prune_safe_zone_tokens:24576

开始生成项目

还是常规保留节目,让AI写个雷电小游戏。

你还别说,最后它还真写出来了。这证明文心21B模型已经基本符合了Auto-Coder驱动的要求,可以适配Auto-Coder。

结论

先上结论,文心开源大模型ERNIE-4.5-21B-A3B-Paddle相比gpt-4o和deepseek-v3要稍微逊色些,因为用那两个模型,一般只要两轮,就能执行。再调整下,基本上就能玩了。

用ERNIE-4.5-21B-A3B-Paddle这个模型,经过3-4轮的调整,也还是只能出现飞机和子弹,而且子弹还不跟着飞机跑。敌机也没有出现。

当然ERNIE-4.5-21B-A3B-Paddle这个模型只有21B参数量,跟gpt-4o和deepseek-v3的体量没法比。能写出一个可以执行的程序,就已经很不容易了!

能胜任Auto-Coder的驱动模型,也已经很不错了!

附文心开源大模型ERNIE-4.5-21B-A3B-Paddle写的雷电游戏:



import pygame
import sys

# Initialize pygame
pygame.init()

# Set up the game window
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("Thunderbolt Clone")

# Colors
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)

# Player ship
player_width = 50
player_height = 30
player_x = screen_width // 2 - player_width // 2
player_y = screen_height - player_height - 10
player_speed = 5

# Enemies
enemy_width = 40
enemy_height = 30
enemy_x = screen_width
enemy_y = 0  # Start enemies at the top of the screen
enemy_speed = 3

# Bullets
bullet_width = 5
bullet_height = 15
bullet_x = player_x + player_width // 2 - bullet_width // 2  # Position bullets relative to player
bullet_y = screen_height - bullet_height - 10
bullet_speed = 7

# Game loop
clock = pygame.time.Clock()
running = True

# Create enemy sprite group
enemies = pygame.sprite.Group()
enemy = pygame.sprite.Sprite()
enemy.image = pygame.Surface((enemy_width, enemy_height))
enemy.image.fill(RED)
enemy.rect = enemy.image.get_rect()
enemy.rect.x = enemy_x
enemy.rect.y = enemy_y
enemies.add(enemy)

# Create bullet sprite group
bullets = pygame.sprite.Group()

# Score
score = 0
font = pygame.font.Font(None, 36)

# Create player sprite
player = pygame.sprite.Sprite()
player.image = pygame.Surface((player_width, player_height))
player.image.fill(WHITE)
player.rect = player.image.get_rect()
player.rect.x = player_x
player.rect.y = player_y

while running:
    # Handle events
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_SPACE:
                # Create a new bullet
                bullet = pygame.sprite.Sprite()
                bullet.image = pygame.Surface((bullet_width, bullet_height))
                bullet.image.fill(WHITE)
                bullet.rect = bullet.image.get_rect()
                bullet.rect.x = bullet_x
                bullet.rect.y = bullet_y
                bullets.add(bullet)

    # Get keys pressed
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT] and player.rect.x > 0:
        player.rect.x -= player_speed
    if keys[pygame.K_RIGHT] and player.rect.x < screen_width - player_width:
        player.rect.x += player_speed

    # Move enemies (fall from top to bottom)
    enemy.rect.y += enemy_speed
    if enemy.rect.top > screen_height:
        enemy.rect.x = screen_width
        enemy.rect.y = 0

    # Move bullets (follow player)
    for bullet in bullets:
        bullet.rect.y -= bullet_speed
        if bullet.rect.bottom < 0:
            bullets.remove(bullet)

    # Collision detection
    hits = pygame.sprite.spritecollide(enemy, bullets, True)
    for hit in hits:
        score += 10
        enemy = pygame.sprite.Sprite()
        enemy.image = pygame.Surface((enemy_width, enemy_height))
        enemy.image.fill(RED)
        enemy.rect = enemy.image.get_rect()
        enemy.rect.x = enemy_x
        enemy.rect.y = enemy_y
        enemies.add(enemy)

    # Draw everything
    screen.fill(BLACK)
    screen.blit(player.image, (player.rect.x, player.rect.y))
    enemies.draw(screen)
    for bullet in bullets:
        screen.blit(bullet.image, (bullet.rect.x, bullet.rect.y))

    # Display score
    score_text = font.render(f"Score: {score}", True, WHITE)
    screen.blit(score_text, (10, 10))

    # Update the display
    pygame.display.flip()

    # Cap the frame rate
    clock.tick(60)

# Quit pygame
pygame.quit()
sys.exit()