AIで遊ぼうよ

AIで遊んでいます

ChatGPTの技術的背景:OpenAI社とは

こんにちは。今日は、最先端の技術ChatGPTの背後にある企業、OpenAIとChatGPTの技術的背景についてお話します。

 

OpenAIとは?

OpenAIは、アメリカのカリフォルニア州サンフランシスコに本社を置く人工知能(AI)の開発を行っている企業です。営利法人OpenAI LPとその親会社である非営利法人OpenAI Inc.から成り立っています。この企業の目標は、人類全体に利益をもたらす汎用人工知能(AGI)を普及・発展させること。

代表的なサービスとして対話型生成AIのChatGPTを2022年11月にリリースしました。

 

OpenAIの設立背景

OpenAIは、2015年12月11日にSamuel H. Altman(サム・アルトマン)、Ilya Sutskever(イリヤ・サツケヴァー)、Elon Reeve Musk(イーロン・マスク)らによって設立されました。設立当初から、10億米ドルの資金が提供され、その後もマイクロソフトからの出資を受けるなど、多くの支援を受けています。

 

ChatGPTの学習データ

学習方式:
ChatGPTは、OpenAIが開発したGPT (Generative Pre-trained Transformer) シリーズの一つです。このモデルは、大量のテキストデータを用いて事前学習され、その後、特定のタスクに合わせて微調整されます。事前学習の際には、モデルはテキストを予測するタスクを行い、この過程で言語の構造や意味を学習します。

 

学習データの期間:
ChatGPTの学習データは、インターネット上の多岐にわたるテキストから収集されています。具体的な期間についての詳細は公開されていませんが、最後のトレーニングデータは2022年1月までのものです。

 

ファクトチェック:
ChatGPTの学習データには、インターネット上のさまざまなテキストが含まれており、公開されている個人のブログやウェブサイトの情報も一部含まれている可能性があります。学習データには、ファクトチェックが行われているものも含まれていますが、全ての情報が正確であるとは限りません。ユーザーからの質問には学習データに基づいて回答を生成していますが、常に正確であるとは限らないので注意が必要です。

 

ChatGPTの得意なこと・不得意なこと

ChatGPTは、自然な文章を生成することが得意です。しかし、言語処理は「定量的アプローチ」であり、人間の言語能力とは根本的に異なります。そのため、完璧な答えを常に提供するわけではありません。

 

定量的アプローチ」と人間の言語能力の違いは以下のようなものがあげられます。それぞれのアプローチには、長所と短所があるので、適切な場面で適したものの利用が求められます。


感覚と直感:
人間の言語能力は、経験や感覚、直感に基づいています。一方、定量的アプローチは、数値やデータに基づく論理的な分析を重視します。

文化や背景の理解:
人間は、文化や背景知識を持って言語を解釈します。定量的アプローチでは、このような文化的・社会的背景を直接的に考慮することは難しいです。

感情やニュアンス:
人間は、言葉の背後にある感情やニュアンスを感じ取ることができます。定量的アプローチは、感情やニュアンスを数値化するのは難しく、その点で限界があります。

適応性:
人間は、新しい情報や状況に迅速に適応することができます。定量的アプローチは、新しいデータや情報が与えられない限り、そのような迅速な適応は難しいです。

創造性:
人間は、言語を用いて新しいアイディアや表現を生み出すことができます。定量的アプローチは、学習データに基づく生成や予測を行うため、人間のような創造性を持つことは難しいです。

 

 

今後の進化

OpenAIは、GPT-4のリリースを2023年3月14日に発表しました。このモデルは、テキストだけでなく、画像の入力にも対応しています。また、司法試験の模擬テストで人間の受験者と比べても上位10%程度のスコアを獲得するなど、その能力は日々進化しています。

その他、以下のようなアップデートがされてきています。

 

ChatGPTのカスタム指示機能:2023年7月20日
ユーザーがChatGPTの応答をよりカスタマイズできるようにするための機能です。この機能を使用すると、ユーザーは自分の好みや要件を指定し、ChatGPTがそれを考慮して応答を生成します。

 

ChatGPT Enterpriseの導入:2023年8月28日
企業向けのChatGPTサービスが導入されました。これにより、ビジネスの現場での利用がより容易となりました。

 

ChatGPTの視覚・聴覚・発話機能:2023年9月25日
ChatGPTは、視覚、聴覚、そして発話の能力を持つようになりました。これにより、ユーザーとの対話がよりリッチで多様なものとなりました。

openai.com

 

おわり

OpenAIとChatGPTの技術の進化が今後も楽しみです。また新しい情報があったら記事にしたいと思います。

 

ChatGPTの始め方は以下の記事を参考にしてみてください。

ai-de-asobou.hatenadiary.jp

また、有料プランと無料プランの違いは以下の記事です。

ai-de-asobou.hatenadiary.jp

 

 

ChatGPTでデスクトップアプリを作る

ChatGPTでプログラミング:

ChatGPTにお願いすれば、プログラミングの知識が一切なくても簡単なデスクトップアプリケーションを作ることができます。

私はStable DiffusionでAI画像を作成しているのですが、大量に自動作成される画像の中には失敗や不要な画像も出来てしまいます。そんな画像について取捨選択をするために画像管理ソフトで管理しているのですが、とりあえずフォルダの画像を表示してみて不要なものを削除だけできれば良いので、そんなデスクトップアプリを作ってみます。

 

準備するもの:

ChatGPTはpythonでコードを書くのが得意です。
なので、書いてもらったコードを実行できるようにpythonの環境を構築しましょう。

構築自体は簡単なので、以下のサイト等を参考にpython環境を構築してください。

prog-8.com

 

また、コードの確認ができるようにVisual Studio Codeをインストールしましょう。

www.javadrive.jp

Visual Studio Codeの日本語化はこちら

www.javadrive.jp

 

作ってみる:

早速作ってみましょう。

今回は無料で使えるGPT-3.5でやってみます。

まず要件をChatGPTに伝えます。ここは具体的に要件を列挙すると良いです。今回は以下のように注文してみました。

 

フォルダ内の画像を表示する画像ビューワのPythonプログラムを作ってください。要件は以下のとおりです。
・指定したフォルダに格納されている画像を表示します。フォルダに画像がない場合はエラーとならないようにしてください。
・前後の画像への移動はキーボードの矢印キーでできるようにしてください。
・キーボードのデリートキーで表示している画像をゴミ箱に入れて、次の画像を自動で表示してください。
・表示する画像のサイズに合わせてウィンドウのサイズを自動調整してください。

 

すげー!ちゃかちゃかと書いてくれます。

 

早速、書いてくれたコードの右上にある「Copy code」をクリックしてコピー。Visual Studio Codeで新しいテキストファイルを表示してSelect a LanguageでPythonを選択。さっきコピーしたコードをペーストして右上の再生ボタンで実行しましょう。

するとエラーが出ちゃいました。ここは皆さんの環境によって出るエラーが異なると思います。

助けてChatGPT!

なるほど、今回ChatGPTが書いてくれたコードのモジュールをインストールしてなかったのが原因のようです。指定されたとおりにコマンドプロンプトを立ち上げてコマンドを実行しました。

インストールが無事されましたね。
そんでまた実行。

あらら、またエラーです。
また、ChatGPTに聞いてみます。

よくわからんけど修正コードを書いてくれたのでこれをコピペして実行!

おおー!動きました。シンプルな機能しかないので動作が軽く十分そうです。

そして、機能を追加したかったら修正をお願い。やっぱ要件を変更したかったらまた修正をお願い。嫌な顔せずいくらでもやってくれます。

そして出来たのが以下のコード。

import os
import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageTk
import keyboard

class ImageViewer:
    def __init__(self, root):
        self.root = root
        self.root.title("Image Viewer")
        
        self.image_paths = []
        self.current_index = 0

        self.canvas = tk.Canvas(root)
        self.canvas.pack(fill=tk.BOTH, expand=True)
        
        # キーボードイベントを設定
        keyboard.add_hotkey('delete', self.delete_image)
        keyboard.add_hotkey('left', self.prev_image)
        keyboard.add_hotkey('right', self.next_image)

    def open_folder(self):
        folder_path = filedialog.askdirectory()
        if folder_path:
            self.image_paths = [os.path.join(folder_path, filename) for filename in os.listdir(folder_path) if filename.endswith(('.jpg', '.jpeg', '.png', '.gif', '.bmp'))]
            self.current_index = 0  # フォルダを切り替えた場合、最初の画像から再開する
            self.show_image()

    def show_image(self):
        if self.image_paths and 0 <= self.current_index < len(self.image_paths):
            image_path = self.image_paths[self.current_index]
            image = Image.open(image_path)

            # ウィンドウサイズを画像のサイズに合わせて変更
            self.root.geometry(f"{image.width}x{image.height}")
            
            # 画像をウィンドウサイズに合わせて表示
            photo = ImageTk.PhotoImage(image)
            if hasattr(self, 'canvas_image'):
                self.canvas.itemconfig(self.canvas_image, image=photo)
            else:
                self.canvas_image = self.canvas.create_image(0, 0, anchor=tk.NW, image=photo)
            self.canvas.image = photo

    def prev_image(self):
        if self.image_paths:
            self.current_index = (self.current_index - 1) % len(self.image_paths)
            self.show_image()

    def next_image(self):
        if self.image_paths:
            self.current_index = (self.current_index + 1) % len(self.image_paths)
            self.show_image()

    def delete_image(self):
        if self.image_paths:
            if 0 <= self.current_index < len(self.image_paths):
                image_path = self.image_paths[self.current_index]
                os.remove(image_path)
                self.image_paths.pop(self.current_index)
                if len(self.image_paths) == 0:
                    self.current_index = 0
                elif self.current_index >= len(self.image_paths):
                    self.current_index = len(self.image_paths) - 1
                self.show_image()

if __name__ == "__main__":
    root = tk.Tk()
    app = ImageViewer(root)
    
    menu_bar = tk.Menu(root)
    root.config(menu=menu_bar)
    file_menu = tk.Menu(menu_bar)
    menu_bar.add_cascade(label="File", menu=file_menu)
    file_menu.add_command(label="Open Folder", command=app.open_folder)
    
    root.mainloop()

 

動作確認を十分にしたわけではないですが、私の使用用途であれば何も問題ありませんでした。

これを名前をつけて保存。拡張子をpywにすればコマンドプロンプトを表示をなくせてデスクトップアプリ感でてきます。また、exeファイル化することでpython環境がなくても動作するようになります。方法は以下を参考に。

techplay.jp

こんな簡単にデスクトップアプリができちゃいました。めちゃくちゃいい時代になりましたね。

 

おわり:

今回は、ChatGPTでデスクトップアプリを作ってみました。
知識がある人が見たら鼻で笑いそうな作り方やクオリティだと思いますが、知識が全くない自分でもできるというのが凄いところですね。

この記事を参考に自分だけのニッチなデスクトップアプリを作ってみてください。

 

ChatGPTの始め方は以下の記事を参考にしてみてください。

ai-de-asobou.hatenadiary.jp

また、有料プランと無料プランの違いは以下の記事です。

ai-de-asobou.hatenadiary.jp

 

 

 

ChatGPTの有料プランと無料プランの違い: あなたにとって最適な選択は?

ChatGPTはOpenAIが提供する人工知能によるテキスト生成ツールで、多くのユーザーに支持されています。
ChatGPTには有料プランと無料プランがあるので、その違いを理解することは非常に重要です。
この記事では、ChatGPTの有料プランの特徴を詳しく解説しますので、課金をするかどうかの参考にしてください。

 

有料プランの金額:

ずばり月額20$です。できることから考えたらお手頃な価格ですが、今は円安がひどいので日本円で2,988円(2023年10月1日現在)くらい…円安やばい。

 

有料プランと無料プランの特徴:

有料プランのGPT-4:

  • トークンのコスト:
    • 8K contextでは、$0.03 / 1K tokens (入力), $0.06 / 1K tokens (出力)。
    • 32K contextでは、$0.06 / 1K tokens (入力), $0.12 / 1K tokens (出力)。
  • 強み:
    • GPT-4は最新かつ高性能なモデルで、GPT-3.5よりも多くのトークンを処理でき、困難な問題を高い精度で解決できます。
    • 画像とグラフィックスの分析能力を持ち、特定のトーンやタスク指定機能も提供します。
  • 弱み:
    • 高コストで、応答速度が遅いことがあります。

無料プランのGPT-3.5 Turbo:

  • トークンのコスト:
    • 4K contextでは、$0.0015 / 1K tokens (入力), $0.002 / 1K tokens (出力)。
    • 16K contextでは、$0.003 / 1K tokens (入力), $0.004 / 1K tokens (出力)。
  • 強み:
    • 低コストで速度が速く、一般的なタスクとチャット固有のタスクを適切に処理できます。
  • 弱み:
    • GPT-4に比べて、困難な問題の解決能力や画像分析の能力は限られています。

モデルの性能だけを見たら、どっちが良いとかではなく得意不得意があるので有料プランでも無料プランでもあまり変わりません。

ただし、一応、レスポンス速度が速くなる、同一の質問に対する応答の制限が1から10に増加する、時間当たりのリクエスト制限が緩和される、生成される文字数制限が最大2,048文字から最大4,096文字に増加するといったメリットがあります。

 

でも有料プランと無料プランの大きな違いはずばり追加の機能が使えるという点が挙げられます。

 

有料プランで使える追加機能:

Advanced data analysis

Advanced data analysisとは、有料プランのみが利用できる機能です。以前は「Code Interpreter(コードインタープリター)」という名称で利用されていました。

画像やExcelファイルなどの外部データを読み込むことができ、自然言語Pythonのコードを生成・実行することが特徴です。


これを利用すると以下のようなことができます。
・画像やExcelなどの外部データの読み込み・編集
自然言語によるPythonコードの生成・実行
自然言語のみでのデータ分析
・PDFの翻訳や要約

これらを活用して、Pythonの「python-pptx」ライブラリを使用して、パワーポイント資料やデータのグラフ化をすぐにやってくれます。

 

プラグイン

有料プランではChatGPTの機能を拡張できる「プラグイン(Plugin)」というツールが多数用意されています。プラグインを使用することで、以下のようなことが可能になります。

・最新の情報へのアクセス: ChatGPTは、基本的には訓練データのカットオフ時点までの情報しか持っていませんが、プラグインを使用することで、リアルタイムの最新情報にアクセスすることができます。

サードパーティのサービスの利用: 例えば、外部のウェブサイトやデータベースにアクセスして情報を取得することが可能になります。

・特定のタスクの実行: 通常のChatGPTではできない特定の作業やタスクを実行することができます。

 

これらの機能が使えるのが有料プランの一番の特徴です。

X(Twitter)でよく見る画像を読み込んでなんたらというのはAdvanced data analysisを活用してますし、プラグインを使用すればWEB上から最新の情報を取得した上で色々答えてくれるようにもなります。

こういった機能に興味があれば有料プランを試してみてください。

 

支払いと更新に関する情報:

ChatGPTの引き落とし日は、契約した日から1ヶ月後になります。 引き落とし日を確認するには、Chat GPT にアクセスし、「My account」をより確認することが可能です。

また、更新の日付に関しては、申込みの翌月の同日に自動更新されます。月末締めとかではないのでそこは安心ですね。

 

おわり:

ChatGPTの各プランのモデルとできることを理解することで、ニーズに最適な選択をすることができると思います。それでは、ChatGPTの世界を存分に楽しんでください!

 

ChatGPTの始め方は以下の記事を参考にしてみてください。

ai-de-asobou.hatenadiary.jp

 

ChatGPTで楽々プログラム作成: プログラム知識ゼロから始める方法

プログラム作成って、ちょっと難しそうで時間もかかりそう…と感じること、ありますよね。でも、最新の技術のおかげで、プログラムの知識がなくても自分だけのプログラムを簡単に作成することができるんです。
その中でも、ChatGPTはプログラム作成を劇的に簡単にし、効率的にするツールとして注目されています。
この記事では、プログラムの知識がなくてもChatGPTを利用してプログラムを作成する方法についてわかりやすく解説…している動画やサイトを紹介します。

 

ChatGPTでプログラム作成を効率化

ChatGPTは、自然言語処理の技術を利用してプログラム作成をサポートしてくれます。

www.youtube.com

この動画では、ChatGPTを使ってHello World!プログラム、足し算、FizzBuzz、じゃんけんゲームなどの基本的なプログラム作成を行っています。

 

知識ゼロでもゲーム作成

ChatGPTはプログラムの知識がなくてもゲームを作成することができるんです。

www.youtube.com

この動画では、ChatGPT-4を使ってスペースインベーダーのゲームを10分で作成する方法について解説されています。やばいね。

 

ノーコードでスクレイピング

Webスクレイピングは、データ収集のための重要な技術ですが、プログラムの知識がないと実行が難しいものと見なされています。

www.tinto-eco.com

でも、このブログではChatGPTを使ってプログラム知識なしでスクレイピングをする方法について解説されています。

 

まとめ

ChatGPTは、プログラムの知識がなくてもプログラム作成を行う強力なツールとなっています。これらのリソースを利用して、プログラム作成の基本を学び、独自のプロジェクトを開始できます。ChatGPTの進化により、プログラム作成はこれまで以上に身近に始められるようになりましたね。

 

ChatGPTの始め方は以下からどうぞ。

ai-de-asobou.hatenadiary.jp

ChatGPTの始め方:初心者さん向けにわかりやすく解説します!

1. イントロダクション

こんにちは! 人工知能の進歩で人とコンピュータの会話がどんどん進化してますよね? OpenAIのChatGPTは、この進歩の最前線にいるサービスの一つです。この記事では、ChatGPTの基本情報や特徴、そして始め方をわかりやすく紹介します。

2. ChatGPTって何?

ChatGPTは、OpenAIっていう会社が作った人工知能です。インターネット上にあるたくさんのテキストデータから学習して、人間みたいな文章を作り出すことができます。いろいろなテーマについて、人間みたいに考えて答えを出すことができるんです。皆さんも色々調べたものを整理してアウトプットしてますよね。ChatGPTがやってることも結局同じです。AIなので効率良く動いてくれるんですね。

 

3. ChatGPTで機能とできること

・多機能性:

ChatGPTは、ただの会話だけじゃなくて、オリジナルの文学作品の作成や、文章の翻訳、質問への回答など、いろいろなことができるんです。


・クリエイティブな提案:

詩を作ったり、物語を考えたりと、クリエイティブな作業も余裕です。

 

・業務効率化:

企画書や報告書の作成をサポートしてくれたり、簡単なプログラムならすぐに作ってくれます。これらを使って仕事の自動化をするのにも役立ちます。


4. お手軽にChatGPTを始める方法

①公式サイトへアクセス:
まず、ChatGPTの公式サイトにアクセス。

https://chat.openai.com


②サインアップ:
Sign Up」ボタンをクリック。


③メールアドレスとパスワードの入力:
メールアドレスとパスワードを入力し、他の情報も必要に応じて入力。


④確認メールのチェック:
登録したメールアドレスに確認メールが来るから、メール内のリンクをクリックしてアカウントを確認。


⑤プランの選択:
アカウントを確認したら、無料プランまたは有料プランを選べます。とりあえず無料でも十分活用できます。有料プランを選ぶ場合は、支払い情報を入力する画面になります。


⑥利用開始:
これで、ChatGPTを使い始める準備が整いました!とりあえず画面の指示に従って、遊んでみましょう。


5. 著作権・商用利用は?

ChatGPTの著作権は、公式によると利用者のものとのこと。商用利用については、2023年6月の時点で基本的にはOKですが、OpenAIの利用規約が変わることもあるので、最新の情報をチェックしてください。規約は以下のページです。

openai.com

6. まとめ

ChatGPTは、私たちとコンピュータとのコミュニケーションを新しいレベルに引き上げてくれるかもしれないですね。興味を持った方はぜひ一度試してみてください!

 

有料プランと無料プランの違いは以下の記事を参考にしてください。

ai-de-asobou.hatenadiary.jp