【Kimi k1.5】GPT-4oやClaude Sonnet 3.5に匹敵する最新AIモデル!概要や使い方を徹底解説!
- OpenAI-o1レベルの性能を持った中国のマルチモーダルAIモデル
- GPT-4oやClaude Sonnet 3.5に匹敵する性能を有する
- マルチモーダル対応でテキストと画像を同時に学習できる
DeepSeek-R1がリリースされた2025年1月20日、中国のAIスタートアップMoonshot AI社が「Kimi k1.5」を公開しました!
「Kimi k1.5」はOpenAI-o1レベルの性能を持ったマルチモーダルAIモデルです。
特に、短期CoT(Chain-of-Thought)と呼ばれる推論能力において、GPT-4oやClaude Sonnet 3.5を大きく上回る性能を持っているようです。
今回はそんな「Kimi k1.5」の特徴についてご説明します。
ぜひ最後までご覧ください!
Kimi k1.5 とは
「Kimi k1.5」はOpenAI-o1レベル性能を持つマルチモーダルAIモデルです。
基盤となる「Kimi Chat」の初期バージョンは2023年11月に中国でローンチされており、長文処理能力の高さで注目を集めていましたが、今回公開された「Kimi k1.5」 は、その機能強化版として位置付けられています。
特に、短期CoT(Chain-of-Thought)での推論能力が強化されており、「**AIME」や「MATH-500」、「LiveCodeBench」といったベンチマークで、GPT-4oやClaude Sonnet 3.5を大幅に上回る最大+550%もの性能向上を達成しています。
上記のベンチマークテストでは、「AIME」77.5、「MATH500」96.2、「Codeforces」94、「MathVista」74.9を記録しており、いずれもOpenAI-o1と同程度かそれ以上のスコアになっていますね。
Kimi k1.5 特徴
「Kimi k1.5」の主な特徴は以下の通りです。
- コンテキストスケーリング
- 強化学習(RL)のコンテキストウィンドウが128,000トークンまで拡張され、文脈が長くなるにつれて性能が向上し続けるそうです。コンテキストウィンドウが大きいほど、モデルはより長い文章や複雑なプロンプトを理解し、応答することができるため、長文脈処理能力が向上していることが分かりますね。
- 部分的なロールアウト
- 過去の対話の一部を再利用することで、新しい対話をゼロから生成し直す必要がなくなっています。
- 強化学習(RL)の改善
- オンラインミラー降下法を採用することで、ロバストな設計が実現されています。
- 効果的なサンプリング戦略、文章の長さに対するペナルティの最適化によって、ポリシーが最適化されています。
- フレームワークをシンプル化
- シンプルな設計が特徴で、長いコンテキストのスケーリングと改良されたポリシー最適化手法を組み合わせることで、LLMを活用した学習に適した簡易的な強化学習(RL)フレームワークを実現しています。
- コンテキストの長さを拡張できるため、学習されたCoT(Chain of Thought)には計画・内省・修正といった機能があります。また、コンテキストを長くするほど探索ステップ数が増えて、モンテカルロ木探索や価値関数、プロセス報酬モデルなどの複雑な技法に頼らなくても、高い性能を達成できるのが特徴です。
- マルチモーダル(※)
- テキストデータと画像データを同時に学習し、両方のモダリティを統合して推論をすることができます。
マルチモーダルAIについて詳しく知りたい方は、以下の記事も参考にしてみてください。
Kimi k1.5 使い方
それでは、実際に「Kimi k1.5」を使っていきましょう!
2025年1月24日時点では、以下の方法でWebUIから「Kimi k1.5」を利用することができます。
- Kimi公式サイト(https://kimi.moonshot.cn)にアクセスし、ページ右上の「ログイン」からアカウント登録/ログインします。
- 入力欄左下に、以下画像のようにグレースケールでモデルが表示されている方は、そこをクリック。表示されない方は、プロンプト入力欄に「/」を入力してEnterキーを押します。
筆者の環境では、スイッチは表示されなかったので、「/」を入力してEnterキーを押すと、以下の画像のように「ExplorerFeature in beta, 5 uses per day (5 remaining)」という表示が出ました。
2025年1月24日時点では、1日5回までの試用制限があるようです。(※アカウント認証等で回数増加することができるかもしれません。)
これでKimi k1.5を使える状態になりました。
ちなみに、2025年1月24日時点では、WebUI以外の方法は利用できないようですが、モバイルアプリ(アプリストアで「Kimi智能助手」と検索)や、API(公式GitHubページからテスト申請可能)も近日中に利用可能となるかもしれません。
また、現在は段階的リリース中のため、機能反映に時間差が生じる可能性もあります。
最新情報は、公式サイトやGitHubを参照するようにしましょう!
【検証】 Kimi k1.5 vs ChatGPT-4o
ここからは、Kimi k1.5とChatGPT-4oモデルの性能比較をしていきます。
コーディングタスク
Prompt
Think in English, Output in Japanese
2048ゲームをPythonで作ってください。
ChatGPT-4oモデルの回答はこちら
以下は、Pythonで2048ゲームを実装するコードです。これは、キーボード入力を使用してプレイできるシンプルなコマンドラインバージョンです。
import numpy as np
import random
import os
def initialize_game():
board = np.zeros((4, 4), dtype=int)
add_new_number(board)
add_new_number(board)
return board
def add_new_number(board):
empty_cells = [(r, c) for r in range(4) for c in range(4) if board[r][c] == 0]
if empty_cells:
r, c = random.choice(empty_cells)
board[r][c] = 2 if random.random() < 0.9 else 4
def compress(row):
new_row = [i for i in row if i != 0]
new_row += [0] * (4 - len(new_row))
return new_row
def merge(row):
for i in range(3):
if row[i] == row[i + 1] and row[i] != 0:
row[i] *= 2
row[i + 1] = 0
return row
def move_left(board):
new_board = np.zeros((4, 4), dtype=int)
for r in range(4):
new_row = compress(board[r])
new_row = merge(new_row)
new_row = compress(new_row)
new_board[r] = new_row
return new_board
def move_right(board):
return np.fliplr(move_left(np.fliplr(board)))
def move_up(board):
return np.rot90(move_left(np.rot90(board, -1)), 1)
def move_down(board):
return np.rot90(move_left(np.rot90(board, 1)), -1)
def print_board(board):
os.system('cls' if os.name == 'nt' else 'clear')
print(board)
def check_game_over(board):
for move in [move_left, move_right, move_up, move_down]:
if not np.array_equal(move(board), board):
return False
return True
def main():
board = initialize_game()
print_board(board)
while True:
move = input("W(上) A(左) S(下) D(右) Q(終了): ").lower()
if move == 'q':
print("ゲーム終了")
break
elif move == 'a':
board_new = move_left(board)
elif move == 'd':
board_new = move_right(board)
elif move == 'w':
board_new = move_up(board)
elif move == 's':
board_new = move_down(board)
else:
continue
if not np.array_equal(board, board_new):
board = board_new
add_new_number(board)
print_board(board)
if check_game_over(board):
print("ゲームオーバー!")
break
if __name__ == "__main__":
main()
Kimi k1.5の回答はこちら
以下是一个用Python实现的2048游戏代码
import tkinter as tk
from tkinter import messagebox
import random
GRID_SIZE = 4
TILE_SIZE = 100
PADDING = 10
BACKGROUND_COLOR = "#92877d"
TILE_COLORS = {
0: "#9e948a", 2: "#eee4da", 4: "#ede0c8",
8: "#f2b179", 16: "#f59563", 32: "#f67c5f",
64: "#f65e3b", 128: "#edcf72", 256: "#edcc61",
512: "#edc850", 1024: "#edc53f", 2048: "#edc22e",
}
class Game2048:
def __init__(self, master):
self.master = master
self.master.title("2048")
self.master.geometry(f"{GRID_SIZE * TILE_SIZE + PADDING * (GRID_SIZE + 1)}x{GRID_SIZE * TILE_SIZE + PADDING * (GRID_SIZE + 1)}")
self.master.resizable(False, False)
self.init_grid()
self.reset_game()
def init_grid(self):
self.canvas = tk.Canvas(self.master, bg=BACKGROUND_COLOR, bd=0, highlightthickness=0)
self.canvas.pack(fill=tk.BOTH, expand=True)
self.tiles = []
for i in range(GRID_SIZE):
row = []
for j in range(GRID_SIZE):
x1 = PADDING + j * (TILE_SIZE + PADDING)
y1 = PADDING + i * (TILE_SIZE + PADDING)
x2 = x1 + TILE_SIZE
y2 = y1 + TILE_SIZE
rect = self.canvas.create_rectangle(x1, y1, x2, y2, fill=TILE_COLORS[0], outline="")
text = self.canvas.create_text(x1 + TILE_SIZE // 2, y1 + TILE_SIZE // 2, text="", font=("Helvetica", 30), fill="#776e65")
row.append((rect, text))
self.tiles.append(row)
def reset_game(self):
self.grid = [[0] * GRID_SIZE for _ in range(GRID_SIZE)]
self.spawn_new_tile()
self.spawn_new_tile()
self.update_ui()
def spawn_new_tile(self):
empty_cells = [(i, j) for i in range(GRID_SIZE) for j in range(GRID_SIZE) if self.grid[i][j] == 0]
if empty_cells:
i, j = random.choice(empty_cells)
self.grid[i][j] = 2 if random.random() < 0.9 else 4
def update_ui(self):
for i in range(GRID_SIZE):
for j in range(GRID_SIZE):
value = self.grid[i][j]
rect, text = self.tiles[i][j]
self.canvas.itemconfig(rect, fill=TILE_COLORS.get(value, TILE_COLORS[2048]))
self.canvas.itemconfig(text, text=str(value) if value != 0 else "")
def compress(self, row):
new_row = [num for num in row if num != 0]
new_row += [0] * (GRID_SIZE - len(new_row))
return new_row
def merge(self, row):
for i in range(len(row) - 1):
if row[i] == row[i + 1] and row[i] != 0:
row[i] *= 2
row[i + 1] = 0
return row
def move_left(self, grid):
new_grid = []
for row in grid:
compressed_row = self.compress(row)
merged_row = self.merge(compressed_row)
new_grid.append(self.compress(merged_row))
return new_grid
def rotate_right(self, grid):
return [list(row) for row in zip(*grid[::-1])]
def rotate_left(self, grid):
return [list(row) for row in zip(*grid)][::-1]
def reverse_rows(self, grid):
return [row[::-1] for row in grid]
def is_game_over(self, grid):
for i in range(GRID_SIZE):
for j in range(GRID_SIZE):
if grid[i][j] == 0:
return False
if j + 1 < GRID_SIZE and grid[i][j] == grid[i][j + 1]:
return False
if i + 1 < GRID_SIZE and grid[i][j] == grid[i + 1][j]:
return False
return True
def key_press(self, event):
key = event.keysym
if key in ["Up", "Down", "Left", "Right"]:
if key == "Up":
self.grid = self.move_left(self.rotate_left(self.grid))
self.grid = self.rotate_right(self.grid)
elif key == "Down":
self.grid = self.move_left(self.rotate_right(self.grid))
self.grid = self.rotate_left(self.grid)
elif key == "Left":
self.grid = self.move_left(self.grid)
elif key == "Right":
self.grid = self.move_left(self.reverse_rows(self.grid))
self.grid = self.reverse_rows(self.grid)
self.spawn_new_tile()
self.update_ui()
if self.is_game_over(self.grid):
messagebox.showinfo("Game Over", "No more moves left!")
root = tk.Tk()
game = Game2048(root)
root.bind("<Key>", game.key_press)
root.mainloop()
数学タスク
Prompt
Think in English, Output in Japanese
直角三角形の脚の長さが3cmと4cmの場合、斜辺の長さを求めてください。
ChatGPT-4oモデルの回答はこちら
Kimi k1.5の回答はこちら
画像読み込みタスク
Prompt
Think in English, Output in Japanese
ChatGPT-4oモデルの回答はこちら
Kimi k1.5の回答はこちら
検証結果
コーディングタスクにおいては、ChatGPT-4oのほうが簡潔なコードに仕上がっており可読性も高いですが、処理の違いに起因するものかと思います。
ただ、数学タスク・画像読み込みタスクにおいては、ChatGPT-4o・Kimi k1.5ともに回答精度は同等に感じました。
まとめ
最後にKimi k1.5の特徴をまとめます。
- GPT-4oやClaude Sonnet 3.5を上回る性能
- コンテキストウィンドウが128,000まで拡張
- 過去の対話を再利用することで、新しい対話をゼロから生成し直す必要がない
- 強化学習の改善(オンラインミラー降下法、サンプリング戦略、ペナルティの最適化)
- 段階的リリース中のため、機能反映に時間差が生じる可能性あり
「DeepSeek-R1」に続いて「Kimi k1.5」と中国から続々とオープンソースのハイスペックモデルが公開されていますね。
今後の展開からも目が離せません!
最後に
いかがだったでしょうか?
Kimi k1.5の優れた推論能力と長文処理性能は、業務効率化や高度なデータ分析にも活用可能です。生成AIの導入を検討されている方は、ぜひ最適な活用方法を模索してみてください。
株式会社WEELは、自社・業務特化の効果が出るAIプロダクト開発が強みです!
開発実績として、
・新規事業室での「リサーチ」「分析」「事業計画検討」を70%自動化するAIエージェント
・社内お問い合わせの1次回答を自動化するRAG型のチャットボット
・過去事例や最新情報を加味して、10秒で記事のたたき台を作成できるAIプロダクト
・お客様からのメール対応の工数を80%削減したAIメール
・サーバーやAI PCを活用したオンプレでの生成AI活用
・生徒の感情や学習状況を踏まえ、勉強をアシストするAIアシスタント
などの開発実績がございます。
まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。
「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。
セミナー内容や料金については、ご相談ください。
また、サービス紹介資料もご用意しておりますので、併せてご確認ください。