【Claude 3.5 Sonnet】ついにOpus・GPT-4oよりも高性能なモデル現る!

Claude-3.5-Sonnet Opus GPT-4o 高性能 モデル

WEELメディア事業部LLMリサーチャーの中田です。

6月21日、Claude 3 Sonnetの進化版であるLLM「Claude 3.5 Sonnet」を、Anthropicが公開しました。

新機能の「Artifacts」が導入されたり、これまで以上にコード生成・画像認識の性能が上がったりなど、盛りだくさんの内容です!

Anthropic公式のXアカウントでの投稿のいいね数は、半日ですでに5000を超えており、世界中で物凄く注目されていることが分かります。

この記事ではClaude 3.5 Sonnetの使い方や、有効性の検証まで行います。本記事を熟読することで、Claude 3.5 Sonnetの凄さを理解し、Opusには戻れなくなるでしょう。

ぜひ、最後までご覧ください。

目次

Claude 3.5 Sonnetの概要

Claude 3.5 Sonnetは、Anthropicが開発した大規模言語モデル「Claude 3 Sonnet」の最新版です。Claude 3 Sonnetよりも格段にレベルアップしており、もはやOpusよりも凄いとのこと!

SonnetはClaude 3シリーズの中位モデルに位置づけられていますが、「Claude 3.5 Sonnet」に関しては、上位モデルのClaude 3 Opusを上回る性能を発揮し、OpenAIのGPT-4oやGoogleのGemini 1.5 Proなど他社の最新モデルと同等かそれ以上の能力を示しています。

Claude 3.5 Sonnetの特徴は、以下の通りです。

  • Claude 3 Opusと比べて2倍の速度で動作
  • Opusの5分の1の低コストで利用可能
  • コーディングや画像系テストでOpusを上回る高い性能
  • 画像からのテキスト抽出が可能
  • これまで以上に「人間らしい自然な文章」を生成可能に

特に、画像認識やコード生成の性能が格段にアップしており、これまでのLLMとは比べ物にならない、、、

Claude 3.5 Sonnetは、Anthropicの公式Webアプリやモバイルアプリ、API、AWS(Amazon Bedrock)、Google Cloud(Vertex AI)など様々な方法で利用可能です。今後は、Claude 3.5シリーズの他モデル(HaikuとOpus)のリリースや、様々なアプリとの統合などが予定されています!

新機能「Artifacts」が導入

また、Claude.aiのWebアプリでは、新機能「Artifacts」が導入され、Claudeに生成を依頼したコンテンツをリアルタイムで表示・編集できるようになりました。

本当に、AIとリアルタイムで会話しながらイラストを作っていますね、、、

他にも、フローチャートを作成したり、ハイクオリティな動的Webページを秒速で作ったりなどが可能に!Claude 3がこれまで以上に使いやすくなっております。

これは実務でも大活躍の予感です!

なお、Claude 3について詳しく知りたい方は、下記の記事を合わせてご確認ください。

Claude 3.5 Sonnetの料金

公式ページによると、アプリ版を利用すれば、無料ユーザーでもClaude 3.5 Sonnetを利用できるそうです。

参考:https://www.anthropic.com/pricing#claude-ai-plans

API利用料の方は、以下の通りです。

確かに、Claude 3.5 Sonnetのコスト($3)は、Opus($15)の5分の1に抑えられていますね。

Claude 3.5 Sonnetの使い方

Webアプリ版を利用する場合、Claude 3のWebアプリにアクセスするだけで利用できます。

Artifactsの設定方法は、以下の通りです。

ArtifactsおよびClaude 3.5 Sonnetの利用方法は、以下の通りです。

なお、Claude 3の中の最速モデル「Haiku」について詳しく知りたい方は、下記の記事を合わせてご確認ください。

Claude 3.5 Sonnetの新機能を試してみた

Claude 3.5 Sonnetの目玉機能である、以下の3つを試してみました。

  • 画像認識とテキスト抽出
  • 画像認識の深層学習モデルの構築
  • Artifacts

画像認識とテキスト抽出

まずは、試しに以下の名刺を画像として読み込ませ、名刺の形式に沿って文字起こしをさせようと思います。

使用するプロンプトは、以下の通りです。

プロンプトはこちら

この名刺をすべて文字起こしし、形式や文字の配置も合わせてコードブロックとして出力してください。

結果は、以下の通りです。

Claude 3 Opusで同様の検証をしてみると、以下のような結果になりました。

両者の比較です。

Opusと比べると、Claude 3 Sonnetの方が、アイコンまで再現してくれています!

また、どちらもモデルも「画像からのテキスト抽出」を高精度で行えているのが分かります。

画像認識の深層学習モデルの構築

次に、コード生成をさせてみます。CIFAR-10を用いて画像認識モデルを構築し、「どちらのLLMで構築したモデルの方が、精度が高いのか」を検証します。

使用したプロンプトは、以下の通りです。

プロンプトはこちら

Create a deep learning model of image recognition using the CIFAR-10 dataset, which is readily available in PyTorch. In doing so, please make the model as accurate as possible.

和訳:

PyTorchで簡単に利用できるCIFAR-10データセットを使用して、画像認識のディープラーニングモデルを作ってください。その際、できるだけ精度の高いモデルを作ってください。

結果は以下の通りです。

生成されたPythonコードはこちら
import torch
import torch.nn as nn
import torch.optim as optim
import torchvision
import torchvision.transforms as transforms
import matplotlib.pyplot as plt
import numpy as np

# Set random seed for reproducibility
torch.manual_seed(42)
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False

# Check if CUDA is available
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

# Define transforms
transform_train = transforms.Compose([
    transforms.RandomCrop(32, padding=4),
    transforms.RandomHorizontalFlip(),
    transforms.ToTensor(),
    transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),
])

transform_test = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010)),
])

# Load CIFAR-10 dataset
trainset = torchvision.datasets.CIFAR10(root='./data', train=True, download=True, transform=transform_train)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=128, shuffle=True, num_workers=2)

testset = torchvision.datasets.CIFAR10(root='./data', train=False, download=True, transform=transform_test)
testloader = torch.utils.data.DataLoader(testset, batch_size=100, shuffle=False, num_workers=2)

# Define the CNN architecture
class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(3, 64, 3, padding=1)
        self.conv2 = nn.Conv2d(64, 128, 3, padding=1)
        self.conv3 = nn.Conv2d(128, 256, 3, padding=1)
        self.conv4 = nn.Conv2d(256, 512, 3, padding=1)
        self.pool = nn.MaxPool2d(2, 2)
        self.fc1 = nn.Linear(512 * 2 * 2, 1024)
        self.fc2 = nn.Linear(1024, 512)
        self.fc3 = nn.Linear(512, 10)
        self.dropout = nn.Dropout(0.2)
        self.batchnorm1 = nn.BatchNorm2d(64)
        self.batchnorm2 = nn.BatchNorm2d(128)
        self.batchnorm3 = nn.BatchNorm2d(256)
        self.batchnorm4 = nn.BatchNorm2d(512)

    def forward(self, x):
        x = self.pool(torch.relu(self.batchnorm1(self.conv1(x))))
        x = self.pool(torch.relu(self.batchnorm2(self.conv2(x))))
        x = self.pool(torch.relu(self.batchnorm3(self.conv3(x))))
        x = self.pool(torch.relu(self.batchnorm4(self.conv4(x))))
        x = x.view(-1, 512 * 2 * 2)
        x = self.dropout(torch.relu(self.fc1(x)))
        x = self.dropout(torch.relu(self.fc2(x)))
        x = self.fc3(x)
        return x

# Initialize the model, loss function, and optimizer
net = Net().to(device)
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(net.parameters(), lr=0.001)
scheduler = optim.lr_scheduler.ReduceLROnPlateau(optimizer, 'min', patience=3, factor=0.1)

# Training loop
def train_model(epochs):
    for epoch in range(epochs):
        net.train()
        running_loss = 0.0
        for i, data in enumerate(trainloader, 0):
            inputs, labels = data[0].to(device), data[1].to(device)
            optimizer.zero_grad()
            outputs = net(inputs)
            loss = criterion(outputs, labels)
            loss.backward()
            optimizer.step()
            running_loss += loss.item()
        
        # Evaluate on validation set (using test set as validation)
        net.eval()
        val_loss = 0.0
        correct = 0
        total = 0
        with torch.no_grad():
            for data in testloader:
                images, labels = data[0].to(device), data[1].to(device)
                outputs = net(images)
                loss = criterion(outputs, labels)
                val_loss += loss.item()
                _, predicted = torch.max(outputs.data, 1)
                total += labels.size(0)
                correct += (predicted == labels).sum().item()
        
        val_loss /= len(testloader)
        accuracy = 100 * correct / total
        
        print(f'Epoch {epoch + 1}, Training Loss: {running_loss / len(trainloader):.3f}, '
              f'Validation Loss: {val_loss:.3f}, Accuracy: {accuracy:.2f}%')
        
        scheduler.step(val_loss)

# Train the model
train_model(50)

# Evaluate the model
def evaluate_model():
    net.eval()
    correct = 0
    total = 0
    with torch.no_grad():
        for data in testloader:
            images, labels = data[0].to(device), data[1].to(device)
            outputs = net(images)
            _, predicted = torch.max(outputs.data, 1)
            total += labels.size(0)
            correct += (predicted == labels).sum().item()

    print(f'Accuracy on test images: {100 * correct / total:.2f}%')

evaluate_model()

コードをGoogle Colabで実行した際の、テストセットの結果は88.18%でした。ちなみに、まったく同様の処理をGPT-4にやらせてみたところ、61%の精度でしたので、かなり良い結果と言えるでしょう。

たった1行プロンプトを入力するだけで、Sonnetが全自動で全プログラムを書いてくれるので便利です。ついでに、かなり精度の高いAIモデルも自動で構築してくれるので、AI開発にも十分利用できそうです!

Artifacts

最後は、今回の目玉機能である「Artifacts」を使って、以下の3つを生成してみました。

  • TransformerのAttention機構の解説アニメーション
  • インベーダーゲーム
  • 株価表示ツール

TransformerのAttention機構の解説アニメーション

初心者でもTransformerのAttention機構をイメージできるように、解説アニメーションを作成させてみました。

ボタン1つで単語間の関係性も、視覚的に分かりやすくなっているので、たたき台としてはかなり良い感じです!

社内研修などでアニメーションを簡単に生成したい場合は、かなり有効なんじゃないでしょうか。

インベーダーゲーム

画面上の操作で遊べる「インベーダーゲーム」を作成させてみました。

当たり判定が少し厳しめですが、かなりリアルで、ゲームとして成り立っているのが凄い!笑

ゲーム作成にも十分使えそうですね。

株価表示ツール

最後に、銘柄を指定するだけで現在の株価を表示させてくれるUIを作成させてみました。

シンプルでありながら、かなり有用なツールが出来上がりました。

こちらの機能をよりリッチにするには、Claude 3.5 Sonnetと会話形式で追加指示を加えるだけ!様々な機能を、直感的に追加できます。

なお、Claude 3のプロンプトテクニックについて詳しく知りたい方は、下記の記事を合わせてご確認ください。

迷ったらOpusでなくClaude 3.5 Sonnetを使おう!

本記事では、Claude 3 Sonnetの進化版である「Claude 3.5 Sonnet」を解説しました。

これまで最強と言われてきた「Opus」や「GPT-4o」よりも、高性能なLLMということで、世界でも大注目の的となっています。

ちなみに、Xでは「GPT-4oよりもスゴイ」などの意見が目立っている模様、、、

また、今回の目玉機能とも言える「Artifacts」の使いやすさや性能の高さには、界隈でも大盛り上がりの様子です。

最後に

いかがだったでしょうか?

弊社では

・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
ハルシネーション対策AIツールの開発
自社専用のAIチャットボットの開発

などの開発実績がございます。

まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。

➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。

生成AIを社内で活用していきたい方へ

「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。

セミナー内容や料金については、ご相談ください。

また、弊社紹介資料もご用意しておりますので、併せてご確認ください。

投稿者

  • 中田

    データサイエンス専攻の大学院生。大学では、生成系AIの拡散モデルを用いた音楽生成について研究。 趣味は作曲、サッカー、コーヒー。

  • URLをコピーしました!
  • URLをコピーしました!
目次