AIのchatGPTを自分独自に作れるGPTsを制作しています

AIのchatGPTを自分独自に作れるGPTsを制作しています。

ご希望のGPTsの制作希望の方は、お問合せよりご連絡ください。

●下記が公開中のGPTsです。
まだまだストックがありまして、未公開の作品多数です。
ちょこちょこ公開していきます。ご期待ください。

●ご利用は上記の目次からリンク先へ飛んでください。

 

 

********************

幼稚園児向け 数の足し算

足し算を覚えたての人でもできるように、ひらがな対応です。

正解するとほめてくれます。

https://chat.openai.com/g/g-EtG9DOYbG-potupokun-you-zhi-yuan-er-shu-nozu-sisuan

********************

幼稚園児向け AI家庭教師 ポッポくん

AI家庭教師が幼稚園児向けの最適な問題を出してくれます。
ひらがな、漢字両対応。
詳しい解説もしてくれます。
幼稚園のお子さんを持つお母様方は、ぜひ使ってみてください。

https://chat.openai.com/g/g-fowLhvS7H-you-zhi-yuan-er-xiang-ke-aijia-ting-jiao-shi-potupokun

 

 

********************

電博堂 AI広告代理店

AIの広告代理店、電博堂がメンバーと議論して広告戦略を練っていきます。

ぜひ利用してみてください。

https://chat.openai.com/g/g-lDy4DN5kh-dian-bo-tang-aiguang-gao-dai-li-dian

 

********************

朝までチャットテレビ

あなたが与えたテーマを、専門家と有識者がそのテーマに沿って激しい討論バトルを展開します。
討論司会者は「田丸総二郎」と言うジャーナリストで、登壇者をズバッと仕切っていきます。

https://chat.openai.com/g/g-ee0E3oDuv-zhao-madetiyatutoterebi

********************

AI動物変身写真館

あたなのお好きな動物をご希望の職業へ変身させちゃいます。

https://chat.openai.com/g/g-mONPcmgDi-aidong-wu-bian-shen-xie-zhen-guan

********************

・Introducing Japanese Animation 海外版 日本のマンガを紹介します
海外の方向けに日本のアニメを紹介するGPTs

These GTPs are an introduction of Japanese animation to the international audience.

Example: Shonen magazine Sports
and so on, please enter.

リンク先はこちら↓
https://chat.openai.com/g/g-PqTZlaSSg-introducing-japanese-animation-hai-wai-ban-ri-ben-nomangawoshao-jie-simasu

 

*********************

・Kanjiya Positive Kanji and Like a lesson learned.
漢字屋 海外の方に日本の漢字と故事成語を紹介するGPTsです

以下、英語で表記します。

These GPTs offer positive Japanese kanji and lessons learned.
We encourage foreign visitors interested in Japanese Kanji to take advantage of this site.
リンク先はこちら↓

 

**********************

ゴルフ野性塾の坂田プロの口調で、経営や起業のお悩みに答えてくれるGPTsを作りました。

「経営野性塾 教えて坂田部塾長」

https://chat.openai.com/g/g-yMovbPKIo-jing-ying-ye-xing-shu-jiao-eteban-tian-bu-shi-jiang

⚫️インスタはリンクへ飛べないので、ツイッターで
#ゴルフ野性塾
で検索かけると出るかもです。
さすれば飛べます。

⚫️今のところ使えるのはchat GPTのPlusに課金しているユーザーのみです。

正直ちょっとパロディっぽいですが、質問にはGPT-4が真摯に答えてくれます。

ゴルフ野性塾ファンの方々には楽しんでもらえるかと。

ぜひご利用してみてください。

**********************

ゴルフ野性塾の坂田プロの口調で、スポーツのお悩みに答えてくれるGPTsを作りました。

「スポーツ野性塾 教えて坂田部塾長」

https://chat.openai.com/g/g-pS7iZ1wJh-supotuye-xing-shu-jiao-eteban-tian-bu-shi-jiang

⚫️インスタはリンクへ飛べないので、ツイッターで
#ゴルフ野性塾
で検索かけると出るかもです。
さすれば飛べます。

⚫️今のところ使えるのはchat GPTのPlusに課金しているユーザーのみです。

正直ちょっとパロディっぽいですが、質問にはGPT-4が真摯に答えてくれます。

ゴルフ野性塾ファンの方々には楽しんでもらえるかと。

ぜひご利用してみてください。

***********************

格闘技の勝敗を予想するGPT sを作りました。

「予想屋次郎 AI格闘技予想屋」

https://chat.openai.com/g/g-mW7uaxmcr-yu-xiang-wu-ci-lang-aige-dou-ji-yu-xiang-wu-ver0-6

なかなか面白いものができたので格闘技好きの皆さんと共有したいと思います。

現役対過去の選手もオッケーです。

使い方は
試合形式 選手2名を入力してください。

例)MMA マクレガー ボブサップ

試合形式と選手同士はスペースで開けてください。

AIが情報を収集して解析するので、回答が出るまで若干時間待ちです。

過去のあの選手と今のあの選手が対戦したら。

こないだボクシングの
マイクタイソンとモハメッドアリを予想してみました。

なーるほどです。

皆さんも、ぜひお試しください。

大規模言語モデルXwin-LMとGPT-4の回答を比較してみました

Xwin-LMとは

Xwin-LMとは、中国科学院と精華大学の研究者によって開発された大規模言語モデルで、MetaのLlama 2を基盤にしたものです。

公開された3種類のモデルの中で、700億パラメータのモデルは、AlpacaEvalの評価でGPT-4を超えて第1位を取得したようですね。

早速、google colabで実装してみました。
モデルは70Bのやつですので、700億パラメータのものです。

下記にプロンプトをいれてのテキスト生成をやってみました。
比較用にGPT-4のやつも載せておきます。

体感ですが、やはりGPT-4の方が、正確で速いイメージです。
ただこの辺はGPUの性能も影響しているので何とも言えないところですが。

google colab
A100
ハイメモリ
での体感です。

では下記が回答です。

Xwin-LMとGPT-4の回答を比較してみました。機械学習系

Xwin-LM
質問 ニューラルネットワークのバックプロパゲーションの仕組みを詳しく説明してください

回答
バックプロパゲーションは、ニューラルネットワークの学習アルゴリズムの一つで、誤った予測や不適切な出力を生成した場合に、誤差を最小化するために適切な重みを調整する方法です。

バックプロパゲーションでは、誤差の値に基づいて、隠れ層のノードと出力層のノードとの間の重みを調整します。これにより、モデルは誤差を減らし、より正確な予測や出力を生成できるようになります。

バックプロパゲーションの仕組みは以下の通りです。

1. 教師データ(正解のラベル)と実際の出力を比較し、誤差を計算します。

2. 誤差を使用して、隠れ層のノードと出力層のノードとの間の重みを調整します。誤差が大きい場合、重みは大きく調整されます。

3. 隠れ層のノードの活性化値を更新し、出力層のノードに適用します。これにより、誤差が最小化されるように出力が調整されます。

4. 隠れ層のノードと入力層のノードとの間の重み→

*****

GPT-4
質問 上記と同じ

回答
バックプロパゲーション(Backpropagation)は、ニューラルネットワークを訓練する際の主要なアルゴリズムの一つです。このアルゴリズムは、ネットワークの出力と目標出力との間の誤差を最小化するために、ネットワークの重みを調整します。

以下に、バックプロパゲーションの基本的なステップを詳しく説明します:

順伝播(Forward Propagation)
入力データをネットワークの入力層から出力層まで伝播させ、各ニューロンの出力を計算します。
この際、各層のニューロンの出力は、重み付きの入力の合計に活性化関数を適用することで得られます。

誤差の計算
ネットワークの出力層での出力と目標出力との差(誤差)を計算します。
この誤差は、損失関数(例:平均二乗誤差)を用いて計算されることが多いです。
誤差の逆伝播(Backward Propagation)

出力層から入力層に向かって、誤差を逆伝播させます。
各ニューロンの誤差に対する貢献度(誤差に対する偏微分)を計算します。これは、連鎖律を使用して計算されます。

重みの更新
計算された偏微分を使用して、各重みを更新します。
重みの更新には、学習率というハイパーパラメータが使用されます。学習率は、重みの更新の大きさを制御します。
重みの更新式は、以下のようになります:

Xwin-LMとGPT-4の回答を比較してみました。文学系

もういっちょやってみます。
お次は文学系で。

Xwin-LM

質問
村上春樹の作品の中で、彼のスタイルやテーマが最も顕著に表れているものは何ですか?その理由も合わせて説明してください。

回答
村上春樹の作品で最もスタイルやテーマが顕著に表れているものは、『羊の歴史』です。この小説は、独自の文体と鋭い観察眼を武器に、現代社会の問題を問い直す作品です。

その理由は以下の通りです。

1. 文体: 村上春樹は、独特の文体で知られています。『羊の歴史』でも、独特の文体で現代社会の問題を浮き彫りにしています。

2. 観察眼: 村上春樹は、現代社会の問題を鋭い観察眼で捉えています。『羊の歴史』では、個人の自由と社会的責任のバランス、異文化間の対話、そして暴力と戦争の悲劇など、現代社会が直面する複雑な問題を描きます。

3. テーマ: この小説では、個人の自己実現という村上春樹の代表的なテーマが繰り広げられます。主人公の青年は、羊の皮をかぶった姿で暮らすことで、社会的な拘束から解放され、自己実現に向けて成長していきます。

このように、『羊の歴史』は→

*****

GPT-4
質問 同じ質問

回答
村上春樹は多くの作品を手がけており、彼のスタイルやテーマは多岐にわたりますが、特に「ノルウェイの森」や「1Q84」などが彼の代表的なスタイルやテーマを色濃く反映していると言われています。

ノルウェイの森:
この作品は、村上春樹の初期の作品であり、彼のリアルでありながらも夢のような文体や、孤独や愛、死といったテーマが織り交ぜられています。

青春時代の混乱や葛藤、そして成熟への過程を通じて、人間の心の奥深さや複雑さを描き出しています。

1Q84:
この作品は、村上春樹の後期の作品であり、彼の特徴的なマジックリアリズムや複雑な物語性が顕著に表れています。
二つの異なる世界や時間の流れ、そしてそれらの間で繋がり合う人々の運命や愛を中心に、彼の独特の哲学や世界観が展開されています。

理由:
村上春樹の作品は、日常の中に潜む非日常や神秘性を巧みに描き出すことで知られています。彼の作品には、現実と夢、意識と無意識の境界が曖昧になるような独特の雰囲気やリズムがあります。

また、彼の作品には、孤独や愛、死、運命といった普遍的なテーマが織り込まれており、それらのテーマを通じて人間の心の奥深さや複雑さを探求しています。

これらの理由から、特に「ノルウェイの森」や「1Q84」は、村上春樹のスタイルやテーマが最も顕著に表れている作品と言えるでしょう。

大規模言語モデルXwin-LMとGPT-4の回答を比較してみましたのまとめ

Xwin-LMは、結構レベルが高いですね。
Llama2を元に開発しただけあって、精度は高いかもです。

あとはスピードですかね。

トータルの評価だとまだまだGPT-4の方が上でしょうか。
パラメータの数が圧倒的に違うので、仕方がないかもです。

ただLlama2はちょっと気になる存在ですね。
オープンソースだし、いろいろいじっても無料ですしね。

今後も期待です。

#Xwin-LM #gpt4と比較 #llm #大規模言語モデル

大規模言語モデル ELYZA-japanese-Llama-2-7b-instructを使ってみた

X 旧Twitterはこちら。
https://twitter.com/ison1232

************

大規模言語モデル ELYZA-japanese-Llama-2-7b-instructを使ってみた

東大 松尾研出身のAIベンチャー「ELYZA」が開発した
ELYZA-japanese-Llama-2-7b-instruct
をインストして使ってみました。

llama2をベースに日本語を事前学習させたモデルらしい。
商用利用可能なので、そこがいいですね。

instructって名前に付いているので、instruct tuningしてるやつですね。

instruct tyningとは、質問に指示を与えて、それについてのタスクの実行を答えさせるやつです。
通常の質問応答タスクと違って、汎用性があるというか、未知の解答にも答えられるようになるらしいです。

これからのファインチューニングの主流になるんですかね。

プロンプトと応答文をGPT-4に作ってもらう。

以下、質問と応答を載せます。
ちなみに、質問(プロンプト)はGPT-4に作ってもらったものです。
なんでもLLMの性能評価にいいらしいです。

応答に関しては比較のために、ELYZAとGPT-4の応答文を載せてみました。

まあ、パラメータ数が圧倒的に違いますから、GPT-4の方が優勢ですが、そこはねえ。
ELYZAはフリーで商用利用可ですから、それも魅力のひとつでしょう。

では、質問と応答をどうぞ。

プロンプト:時間とは何ですか?それはどのように私たちの生活や認識に影響を与えますか?

●時間とは何ですか?それはどのように私たちの生活や認識に影響を与えますか?

ELYZA応答
時間とは、ある事象が起こるまでの間隔のことを指します。たとえば、ある物体が光の速度で移動する際には、その物体の位置から観測者の位置へと時間的な流れとともに情報が伝わります。

また、時間は空間とともに万有引力の法則によって定められた、宇宙の普遍的な構造でもあります。

時間は私たちの生活や認識に大きな影響を与えています。例えば、時計は時間を測定することで私たちの生活を調整し、時間を予測することで計画を立てるのに役立ちます。また、時間は記憶の構造化や、過去と未来の概念を定義する上で重要な役割を果たしています。

GPT-4応答
時間は、出来事が発生する順序や間隔を測定するための抽象的な概念であり、物理的な宇宙の基本的な次元の一部としても理解されています。この概念は、人類の歴史を通じてさまざまな文化や哲学において探求されてきました。時間は、日常のスケジュールの計画から、科学的な実験の実施、歴史の研究に至るまで、あらゆる活動の中心に位置しています。

私たちの生活における時間の影響は計り知れないものがあります。それは私たちが行う一つ一つの活動、過去を回顧す

プロンプト:2150年の未来都市について、短い物語を書いてください

●2150年の未来都市について、短い物語を書いてください。

ELYZA応答
2150年の未来都市は、高層ビルが立ち並ぶ街並みとは裏腹に、豊かな自然が溢れていた。

その街の中心には、巨大なオブジェクトが存在した。それは、昔々人間が作ったという、廃墟の城だった。

その城の周りには、様々な動植物が生息していた。その中には、人間の手によって改良された動植物もいた。

その街に住む人々は、その城を訪れる人が増えることを望んでいた。

その頃、城の調査をしていた一団が、珍しい植物を発見した。それは、人間の言葉を理解し、話すことができる植物だった。

彼らは、その植物を連れて帰ろうとしたが、その植物はそれを拒んだ。

「私はここにいたい。」

彼らは、その植物の言葉を受け入れ、そのまま城に残った。

その植物は、城の住民と共に暮らし始めた。彼らは、彼女に名前をつけ、彼女も彼らのことを呼んだ。

彼女の名前は、エルフィーナ。彼女は、城の住民の間で、彼らの話し相手となり、彼らの悩み

GPT-4応答
2150年、未来都市エクセリオンは空に浮かぶ巨大な都市として知られていた。地球の地表は自然に戻り、植物や動物たちが豊かに生息している。エクセリオンは透明なドームに囲まれ、高度なエネルギーシステムにより持続可能な生活が保たれていた。

アイラはエクセリオンで生まれ育った17歳の少女。彼女は都市の外の世界に憧れ、ある日ドローンで地表を探索することに決めた。アイラが操作するドローンは、彼女の瞳に映る映像と連動しており、彼女の心の動きに応じて飛行する。

ドローンを飛ばし始めると、アイラは美しい緑の森や青い湖を発見。かつて人々が住んでいたであろう廃墟も見える。アイラは驚くほどの自然の美しさと、かつての人々の生活の痕跡に心を奪われた。

しかし、彼女が最も心を打たれたのは、森の中に住む原住民の部族だった。彼らはシンプルで豊かな生活を送っており、アイラは彼らと共に数日を過ご

プロンプト:日本の伝統的な「おもてなし」文化を説明してください

●日本の伝統的な「おもてなし」文化を説明してください。

ELYZA応答
日本の伝統的な「おもてなし」文化を説明します。

日本のおもてなしは、お客さまに心からの感謝と祝福の気持ちを伝えることを目的としています。日本のおもてなしは、精神的なものであり、物理的なものではありません。

日本のおもてなしの特徴は、心からの感謝と祝福の気持ちを伝えることを目的としている点です。日本のおもてなしは、お客さまに対して心からの感謝と祝福の気持ちを伝えるための行動です。

日本のおもてなしの例としては、茶道や華道、着付けなどが挙げられます。日本のおもてなしは、心からの感謝と祝福の気持ちを伝えることを目的としているため、心のこもった行動が重要となります。

GPT-4応答
日本の伝統的な「おもてなし」文化は、相手の立場や気持ちを尊重し、細やかな心配りと気配りを行うことを中心にした接客の精神を指します。以下、主な特徴や背景を簡潔に説明します。

相手を尊重する: おもてなしの根底には、相手を尊重し、その心地よさを第一に考えるという思いやりがあります。

先読みの心配り: 相手が何を必要としているのか、何を望んでいるのかを先読みし、それを提供すること。例えば、訪れた客が喉を潤したそうにしている時、言われる前に水やお茶を出すなど。

細やかな気配り: 例として、季節に合わせた食材を使った料理の提供や、部屋の温度

今度は英語で答えてもらいます。

プロンプト:日本の伝統的な「おもてなし」文化を英語で説明してください

●日本の伝統的な「おもてなし」文化を英語で説明してください。

ELYZA応答
日本の伝統的な「おもてなし」文化を英語で説明します。

日本のおもてなしは、お客さんを心から歓迎し、心からのおもてなしをすることです。日本人はおもてなしの精神に従って、お客さんに心からの笑顔と感謝の気持ちを伝えます。おもてなしの中心は、お客さんの要望に応えることと、心からの笑顔です。日本のおもてなしは、心からの笑顔と感謝の気持ちを伝えることで、お客さんに満足してもらい、幸せな気持ちにします。

筆者談 英語で答えてないですねえ。

GPT-4応答
Certainly, here’s an explanation of Japan’s traditional “Omotenashi” culture in English:

“Omotenashi” is a Japanese term that captures the essence of traditional Japanese hospitality. It’s a concept deeply rooted in the country’s cultural fabric and reflects a commitment to providing impeccable service and genuine kindness without expecting anything in return. Key aspects of “Omotenashi” include:

Selfless Hospitality: At its core, “Omotenashi” means to wholeheartedly take care of guests without expecting any compensation or favor in return. It’s an authentic gesture of kindness and respect.

Anticipatory Service: It emphasizes understanding the needs of the guest even before they articulate them. This

筆者談: GPT-4は英語でバッチリ答えてます。

プロンプト:量子コンピュータとは何ですか?それは古典的なコンピュータとどのように異なりますか?

●量子コンピュータとは何ですか?それは古典的なコンピュータとどのように異なりますか?

ELYZA応答
量子コンピュータは、量子力学の原理を利用したコンピュータのことです。現在のコンピュータは、ビットと呼ばれる最小単位の情報を取り扱いますが、量子コンピュータでは、量子ビットと呼ばれる最小単位の情報を取り扱います。量子ビットは、クロックという量子力学の概念を用いて情報を扱うことができるため、現在のコンピュータよりも高速に処理を行うことができます。また、量子コンピュータはクロックの量子効果を利用して、現在のコンピュータでは計算できない問題も解決することが期待されています。

GPT-4応答
量子コンピュータは、量子力学の原理を利用して情報を処理する新しいタイプのコンピュータです。古典的なコンピュータとの主な違いは、情報の表現と処理方法にあります。

情報の表現:

古典的なコンピュータ: ビットを使用して情報を表現します。ビットは0または1の状態を持つことができます。
量子コンピュータ: 量子ビット、通常「キュビット」と呼ばれるものを使用します。キュビットは0、1の状態だけでなく、その2つの状態の重ね合わせを同時に持つことができます。
並列処理能力:

量子コンピュータは量子重ね合わせの性質を利用して、多数の計算を同時に行う能力があります。これにより、一部の問題に対しては古典的なコンピュータよりもはるかに高速に計算を行うことが可能です。
エンタングルメント:

量子コンピュータは「量子もつれ」という現象も利用します。これは2つ以上のキュビットが相互に関連付けられ、一方のキュビットの状態が変わると、もう一方のキュビットの状態も即座に

***********ここまで

大規模言語モデル ELYZA-japanese-Llama-2-7b-instructを使ってみたのまとめ

以上、大規模言語モデル ELYZA-japanese-Llama-2-7b-instructを使ってみました。

応答に関しては、ELYZAは通常の文章でまとめていきます。

一方、GPT-4は箇条書きにして段落ごとにまとめて応答していきますね。
詳しく知りたい時は、さらにその段落を攻めていけばいいと。

ベースとなったモデルのllama2の評判がいいですから、ELYZAも結構やりますね。
もっと大きいパラメータのモデルも作っているようで、今後が楽しみです。

ChatGPTの前身、GPT2のファインチューニングを実行してみた

X 旧Twitterはこちら。
https://twitter.com/ison1232

************

chatGPTなどの大規模言語モデルのLLMが流行っていますが、今現在の最新モデルはGPT4。
これのいくつか前のモデルGPT2をファインチューニングしてみました。

大規模言語モデルなどに実行する、ファインチューニングとは何か

ちなみに、ファインチューニングとは何かをちょこっと解説。

まず大規模言語モデルってのは、事前学習といって、ネット上の大量のテキストデータを読み込んで学習しています。

chatGPTなんかは英語での学習量が多いので、英語は強いです。
一方、日本語はというと、多少学習しているとは言え、英語ほどは勉強していないので、若干弱い感はあります。

そんな大規模言語モデルですが、この事前学習で特定の言語を習得していきます。

言語を習得した大規模言語モデルですが、専門的な内容になると若干学習量が不足していたりします。
これは当然ですね。
専門的な内容はネットには無かったり、あってもあっさりとしたものしかアップされてない場合もあります。

で、例えばゴルフのことをchatGPTに聞きたいと。
試してみると、結構まともに答えますが、深堀りした内容になると違った答えが返ってきたりします。

そこでチャットGPTに足りない専門的な内容を学習させていくのが、ファインチューニングという方法です。

結果的に、chatGPTが法律の専門家になったり、医療のプロフェッショナルになったりできる訳です。

ちなみに「ファインチューニング」の用語をGPT4に聞いてみました。

****ここから

ファインチューニングは、既存の言語モデルを特定のタスクやドメインに適応させるプロセスです。

ファインチューニングは、元の言語モデルを大規模な汎用データセット(例:Wikipediaなど)で事前訓練した後に行われます。これにより、言語モデルは一般的な言語理解能力を獲得します。

しかし、特定のタスクやドメインにおいてより優れたパフォーマンスを発揮するためには、モデルをタスク固有のデータセットで追加のトレーニングを行う必要があります。これがファインチューニングの目的です。

具体的には、ファインチューニングでは、タスクに関連するデータセットを用いてモデルを再訓練します。タスクには様々なものがあります。例えば、テキスト生成、質問応答、文書分類などです。

ファインチューニングのプロセスでは、事前訓練済みモデルの一部またはすべてのパラメータを新しいデータセットで再訓練し、特定のタスクに特化させます。これにより、モデルはタスクに対してより精度の高い予測や生成ができるようになります。

ファインチューニングは、特定のタスクにおいて既存のモデルを最適化するための効果的な手法です。それによって、モデルは特定のドメインやアプリケーションに適応しやすくなり、より良い結果を得ることができます。

****ここまで

おわかりでしょうか。
特定のタスクや専門的な内容を学習させたい時は、このファインチューニングが必要になるんです。

では実際にやってみましょう。

今回のファインチューニングをGPT2にした理由

今回はGPT2をファインチューニングしてみます。
ちなみに2023年7月現在、GPT3.5-turbo、GPT4はファインチューニングできません。
(年内中にはGPT3.5-turboもGTP4もできるようになる予定っぽいです)

ファインチューニングできるのはGPT2とGPT3とかになります。

GPT2は無料でできますが、GPT3はopenAIのAPI接続でやらないとなので、トークン数に応じて料金がかかります。

そこで今回は無料でできるGPT2を選択しました。

GPT2のファインチューニングの具体的な方法

結論から言うと、ちょっと前のモデルなので、結構エラーが出ます。
なのでググったり、GPTったりして解決していきます。

使うモデルはrinna社が出しているやつ。
これは事前学習に日本語でトレーニングされているのでよろしいかと。
こいつをファインチューニングしていきましょう。

Hugging Faceのrinnaモデル
https://huggingface.co/rinna/japanese-gpt2-medium

 

ファインチューニングはデータセットが非常に大事

まずは学習させるデータセットを作ります。
このデータセットを作るのは非常に大事な作業になります。

もしかしたら、大規模言語モデルのパラメータ数に匹敵するくらい大事かもです。
このデータセットの質次第で、ファインチューニング後の精度が随分変わってきます。

そんなこんなで、今回はゴルフの専門的な内容を作りたかったので、ゴルフのデータを制作します。

まずはデータセットの一部です。

****ここから

質問: ゴルフの歴史はいつ始まりましたか?
応答: ゴルフの起源は古代スコットランドにさかのぼります。15世紀頃からスコットランドでプレーされるようになり、その後世界中に広まりました。

質問: ゴルフをするために必要なクラブの種類は何ですか?
応答: ゴルフではドライバー、アイアン、ウェッジ、パターなど、さまざまなクラブが使用されます。それぞれのクラブには特定の用途や飛距離の特性があります。

質問: ゴルフで使われる最も長いクラブは何ですか?
応答: ゴルフで使われる最も長いクラブは「ドライバー」と呼ばれるクラブです。ドライバーはティーショットで使用され、飛距離を伸ばすために設計されています。

質問: ゴルフの試合で最も重要なスコアは何ですか?
応答: ゴルフの試合で最も重要なスコアは「トータルスコア」です。これはすべてのホールでのストローク数の合計を指します。

質問: ゴルフで使われる「パー」とは何ですか?
応答: ゴルフのホールは通常、パーと呼ばれる目標スコアが設定されています。パーはホールをプレーするために平均的なスコアを表し、ホールの難易度を示す目安となります。

****ここまで

全部で150の質問応答セットで、テキストのみのデータです。

開発はgoogle colabを使いますので、
このファイルを
/content/drive/MyDrive/保存したファイル名.txt
にアップしておきます。

※アップロード先は、各自の環境によります。
上記はgoogle driveを読み込んでいます。
各自で読み替えてください。

ちなみにGPT3だとjsonlファイルにするのですが、GPT2は通常のテキストを読み込めるらしいので、このデータを直接食わせてみます(食わせるとはお下品ですが、AI関連では俗語で結構使います)。

ファインチューニングの前後で推論を比較する

さてまずはファインチューニングの前に、GPT2にゴルフについて聞いてみましょう。

開発環境はgoogle colabを使います。
GPU
T4
ハイメモリ
あたりの設定です(設定は若干動かせると思います)。

推論のコードはこちら。

import文に使う pip installは各自で入れてください。


import torch
from transformers import T5Tokenizer, AutoModelForCausalLM

# テキストの準備
text = ‘ゴルフで使用される「パター」とは何ですか、’

# トークナイザーとモデルの準備
tokenizer = T5Tokenizer.from_pretrained(‘rinna/japanese-gpt2-medium’)
model = AutoModelForCausalLM.from_pretrained(‘rinna/japanese-gpt2-medium’)

# テキストを変換
input = tokenizer.encode(text, return_tensors=’pt’)

# 推論
model.eval()
with torch.no_grad():
output = model.generate(input, do_sample=True, max_length=100, num_return_sequences=1)
print(tokenizer.batch_decode(output))

早速質問してみます。

質問
ゴルフで使用される「パター」とは何ですか、

回答
そもそもシャフトとは、球を打ち上げたときに、その球がまっすぐな方向に転がるように設計された機械部品である。 ゴルフの場合はボールにラバーを張り付けてボールを飛ばす。 パッティングの場合は、球が上方向に転がるように作られているため、シャフトという器具は使われていない。 ゴルフボールは、ゴルフコースを作る上で非常に重要な道具である。 しかし、ゴルフプレー中、グリップで転がすボールを自分の体が横…。

ゴルフの専門的な学習をしていないので、イマイチな回答ですね。

 

ファインチューニングを実行する

ではファインチューニングをやっていきましょう。

コードはこちら。

#時間を計測
%%time
# ファインチューニングの実行
!python ./transformers/examples/language-modeling/run_clm.py \
–model_name_or_path=rinna/japanese-gpt2-medium \
–do_train \
–do_eval \
–_file=/content/drive/MyDrive/保存したファイル名.txt \
–num_train_epochs=100 \
–save_steps=5000 \
–save_total_limit=3 \
–per_device_train_batch_size=1 \
–per_device_eval_batch_size=1 \
–output_dir=output3/ \
–use_fast_tokenizer=False \
–logging_steps=50

エポック数100で学習させます。
(今回は簡略化して、trainのみで終わらせます)

トレーニング開始。

データセットの量がそれほど多くないので、10分位で終わりますね。

完成したモデルを読み込んで、ゴルフについて聞いてみましょう。

推論のコードはこちら。


import torch
from transformers import T5Tokenizer, AutoModelForCausalLM

# テキストの準備
text = ‘ゴルフで使用される「パター」とは何ですか、’

# トークナイザーとモデルの準備
tokenizer = T5Tokenizer.from_pretrained(‘rinna/japanese-gpt2-medium’)
model = AutoModelForCausalLM.from_pretrained(‘output3/’)

# テキストを変換
input = tokenizer.encode(text, return_tensors=’pt’)

# 推論
model.eval()
with torch.no_grad():
output = model.generate(input, do_sample=True, max_length=100, num_return_sequences=1)
print(tokenizer.batch_decode(output))

学習が終わったモデルを読み込んで、質問してみます。

質問
ゴルフで使用される「パター」とは何ですか

応答: ゴルフで使用される「パター」とは、グリーン上でボールを転がすためのクラブです。パターは短くて軽量であり、プレーヤーが正確なパットをするために使用されます。

どうでしょう。
いい感じに回答できてますね。

このようにファインチューニングをすると、chatGPTなどの大規模言語モデルはそれぞれの専門家として、ふるまえるようになるんですね。

ChatGPTの前身、GPT2のファインチューニングを実行してみたのまとめ

どうでしょう。
こんな感じでGPT2のファインチューニングの完成です。

これでゴルフの専門家?の一丁上がりですね。
まあデータが少ないので、ゴルフ中級者入口程度の受け答えですが(笑。

データを増やして学習させれば、いい感じのゴルフ先生になってくれます。

あとはパラメータ数が段違いのGPT4が、早くファインチューニングできるように、openAIさんにお願いするのみです。

どれだけ優秀な先生になってくれるのか、今から楽しみです。

※こちらではチャットGPTなどの各GPTシリーズのファインチューニングも承ります。
ご希望の方、ご相談はお問い合わせからご連絡ください。

大規模言語モデル LLMのFalconがオープンソースで公開

X 旧Twitterはこちら。
https://twitter.com/ison1232

***********

大規模言語モデルのFalconを実装していく

Falconとか言う大規模言語モデル LLMがオープンソースで公開されたようなので、早速google colabで動かしてみました。

Hugging Faceのオープンソース大規模言語モデル同士でスコアを競う「Open LLM Leaderboard」というランキングで
「Falcon-40B」モデルが1位を獲得したとか。

Falcon公式サイト
https://falconllm.tii.ae/

上記画像はHugging faceのページ

各社が独自の大規模言語モデルのLLMを作り始めた

最近は大規模言語モデルが結構いろんな団体からリリースされてます。
OpenAIのChatGPTクラスの超パラメータのLLMとかだと、事前学習するだけでも結構なコストがかかるようです。

なので、資金力があるところしかLLMを開発できなそうですが、実は、学習に使うデータセットの質を上げれば、パラメータ数が小さくても、それなりのAIは開発できるようです。

ただ、どうなんですかね。
Scaling Laws理論によればパラメータを増やすほど、AIの能力が上がっていくって説があります。

要はAGI(汎用人工知能)のすごいやつ、超絶AIっていうのでしょうか、人間の人智の遥か上をいくスーパーAIを作るとなると、やはり数兆単位のパラメータは要るかもしれないですね。

しかし、日常で使う会話程度の生成AIであれば、数十億パラメータでも、学習次第で十分な結果が出ると。
そんなところでしょうか。

この超絶AIはいつか必ずどこかが作るでしょうね。
それによって、人類が解決できなかった、いろんな事(核、医療、創薬、難問など)が解ける時代が来るのでしょう。

そのためにも、超絶AIは必要でしょう。
しかし、どこかでブレーキをかける術も作っておかないと、AIの暴走なんかも起こらないとも言えない。
電源を止めれば大丈夫ってな意見もありますが、超絶AIは電源を止められない何かを作りだすかも知れません。
人類の数千倍とかの知能を持ったとしたら、我々の考えつかない何かを作り出す可能性はあります。

OpenAIのCEOサム・アルトマンが、AI開発には原子力のような規制機関が必要との見解を出しましたが、
最先端の技術者ほど、AIの真の力がわかっているのではないでしょうか。

google colabでFalconを実装していく

さて、日常の会話程度をうまくこなす生成AIでしたら、今回のFalconの小さい方のモデルで十分です。
早速、google colabで実装してみましょう。

ちなみに、ランタイムでGPU、タイプT4、ハイメモリで実行しています。

!pip install transformers accelerate einops
from transformers import AutoTokenizer, AutoModelForCausalLM
import transformers
import torch

model = “tiiuae/falcon-7b-instruct”

tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = transformers.pipeline(
“text-generation”,
model=model,
tokenizer=tokenizer,
torch_dtype=torch.bfloat16,
trust_remote_code=True,
device_map=”auto”,
)

prompt = “What will the future of generative AI look like?”

sequences = pipeline(
prompt,
max_length=200,
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
)
for seq in sequences:
print(f”Result: {seq[‘generated_text’]}”)

実装後の推論部分を見てみましょう。
英語でのやり取りですけど、結構ちゃんと答えてくれます。

問い:
What will the future of generative AI look like?
生成AIの未来はどうなるでしょうか?

結果:
The future of generative AI looks very bright, indeed. With the advent of more powerful hardware and algorithms, AI has become more intelligent and efficient than ever before.続く…。

ジェネレイティブAIの未来は、実に明るいものになりそうです。より強力なハードウェアとアルゴリズムの登場により、AIはかつてないほどインテリジェントで効率的になりました。アプリケーションの面でも、その可能性は無限に広がっています。私たちが想像する最もエキサイティングな開発には、次のようなものがあります。続く…。

*******

改変する場合は、prompt = “○○○○” の部分を変えればいろんな質問が試せます。
また、max_length=200の数値を大きくすれば、さらにたくさんの言葉が返ってきます。
いろいろ改変してみてください。

一度上記のコードが動けば、あとはプロンプトを変えて下記だけ実行した方が処理は早いです。

prompt = “Write a poem about generative AI”

sequences = pipeline(
prompt,
max_length=200,
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
)

for seq in sequences:
print(f”Result: {seq[‘generated_text’]}”)

●実装が面倒な方は、公式Falconでチャットボットが用意してあります。
下記からお試しください。

https://huggingface.co/spaces/HuggingFaceH4/falcon-chat

●有志の方が、下記のリンクからパラメータが小さい方の「Falcon-7B-Instruct」をgoogle colabでの実装公開しています。
興味のある方はぜひ。

https://colab.research.google.com/drive/1RAEkxDRRjWU6T8dV8grR1imrrHV4Idj2?usp=sharing#scrollTo=N6KzsIXEkAfP

 

各社の大規模言語モデルをいじってみての感想

大規模言語モデルの新しいのが出ると、つい試したくなりますね。
英語での学習モデルが多いのですが、日本語で学習したサイバーエージェントのモデルとかrinna社のモデルとかも出ているので、興味のある方は試してください。

パラメータが大きいに越したことはないですが、あまりに大きいと通常のPCとかでは動かせないですよね。
なので適度な大きさのモデルで実装できるのが楽しいですね。

まあ自分のPCで動かさなくても、ChatGPTのようにブラウザやアプリからアクセスして使うのも全然ありなんですが、開発者としてはコードを見ながら、一行づつ実行している様を見るのも楽しいんですよね。

「開発者あるある」なんではないでしょうか。

ぜひみなさんもお試しください。

日本語版の大規模言語モデルLLMを使ってみた。rinna社バージョン

X 旧Twitterはこちら。
https://twitter.com/ison1232

************

日本語版の大規模言語モデルが登場

ついに日本語で学習された大規模言語モデルが登場しましたね。
それも同じ日に、2つ同時です。

一つはサイバーエージェント社の日本語LLM。
もうひとつは rinna社の日本語LLM。

サイバーのやつはパラメータ数が68億。
rinna社のやつは36億。

まあ、億を超えてるわけで、すごいことなんですが、何と言ってもChatGPTが1750億。

GPT-4なんかは公開せずっていう(多分何兆レベル。scaling low理論の限界にチャレンジですかね。詳しくはscaling lowで検索)。

すごい数のパラメータがひしめきあってるので、30億でも「ふーん、そうなのね」で済んでしまう。

でもこれだけのパラメータ数で、しかも日本語を専用に学習させたモデルですから、期待は持てます。

ちなみに大規模言語モデルっていうのは、略称するとLLM(Large Language Model)と呼ばれています。

ChatGPTに大規模言語モデルLLMについて聞いてみた

意味をChatGPTに聞いてみましょう。

*****************ここから。原文ママ

大規模言語モデルは、近年の人工知能の進歩の中で重要な役割を果たしています。これらのモデルは、巨大なデータセットを学習し、自然言語の理解と生成を行うことができます。大規模言語モデルは、機械翻訳、文章生成、会話エージェント、情報検索、自動要約など、さまざまなタスクに利用されています。

大規模言語モデルの一例としては、GPT-3が挙げられます。GPT-3は、OpenAIが開発した最先端のモデルであり、数十億のパラメータを持っています。このモデルは、人間に近い文章を生成することができ、非常に優れた性能を持っています。

しかし、大規模言語モデルにはいくつかの制約も存在します。それらは、計算リソースの要求、データのプライバシーとセキュリティの問題、バイアスや偏見の反映などです。これらの制約に対処するためには、モデルの開発者や利用者が倫理的な観点を考慮し、適切なガイドラインや規制を策定する必要があります。

大規模言語モデルの進化は、今後ますます加速していくことが予想されます。より高度な自然言語処理能力を持つモデルが登場し、私たちの日常生活やビジネスの様々な側面に影響を与えるでしょう。しかし、その発展には慎重なアプローチが求められ、技術と倫理のバランスを取りながら進めていく必要があります。

************ここまで。原文ママ

だそうです。
GPT-3のパラメータ数は違ってますね。
1750億ですよね。

まあ、さておき。
早速、インストールして使ってみましょう。

rinna社の対話モデルをインストール

まずはrinna社から。

rinna社のやつはモデルが2つあって、汎用モデルと対話モデルがあります。
今回は対話に特化したやつの方が面白いかなと思ったので、対話モデルをいじってみましょう。

公開先はHugging face
機械学習のモデルがわんさかアップされているサイトです。

URLはこちら。
汎用GPT言語モデル
https://huggingface.co/rinna/japanese-gpt-neox-3.6b

対話GPT言語モデル
https://huggingface.co/rinna/japanese-gpt-neox-3.6b-instruction-sft

環境はgoogle colab proのスタンダード。

pro版で、GPUの設定を
A100
ハイメモリ
で、いってみます。

まずは下記のコマンドでインストールしていきます。

パッケージのインストール。
!pip install transformers sentencepiece

続いてこちら。

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

# トークナイザーとモデルの準備
tokenizer = AutoTokenizer.from_pretrained(
“rinna/japanese-gpt-neox-3.6b-instruction-sft”,
use_fast=False
)
model = AutoModelForCausalLM.from_pretrained(
“rinna/japanese-gpt-neox-3.6b-instruction-sft”
).to(“cuda”)

学習済みのモデルを落として、modelにセットする感じですね。

rinna社の対話モデルで推論してみた

で、推論してみます。

promptに質問文を入れるのですが、結構決まりがあるようで、詳細はHugging faceのサイトを読んでください。

簡単に説明すると、

prompt = “ユーザー: 首都の意味を答えてください。?システム: ”

このように、質問文の後に
システム: ”
を入れてとのこと。
最後は空白を入れるそうです。

では、これで推論のコードを記します。

# プロンプトの準備
prompt = “ユーザー: 首都の意味を答えてください。?システム: ”

# 推論
token_ids = tokenizer.encode(prompt, add_special_tokens=False, return_tensors=”pt”)
with torch.no_grad():
output_ids = model.generate(
token_ids.to(model.device),
do_sample=True,
max_new_tokens=300,
temperature=0.7,
pad_token_id=tokenizer.pad_token_id,
bos_token_id=tokenizer.bos_token_id,
eos_token_id=tokenizer.eos_token_id
)
output = tokenizer.decode(output_ids.tolist()[0][token_ids.size(1):])
output = output.replace(“”, “\n”)
print(output)

 

質問:
首都の意味を答えてください。

回答:
首都とは、国の首都であり、国の政府所在地であり、政府の所在地です。首都とは、国の中央政府や行政の中心であり、国の政治や文化の中心でもあります。

だそうです。
ん〜ん、てな感じもしないことはないですが、結構ちゃんとした答えが返ってきます。
やはり日本語で学習したやつは違いますね。

max_new_tokens=300 の値をいじると、返答の文字数を変動できます。
いろいろいじって遊んでみてください。

別に、サイバーのやつも使ってみましたが、両者ともどっこいどっこいといった所でしょうか。

ChatGPTにはまだまだ勝てない感じですが、こういった日本語LLMもどんどん開発していって、世界をリードしていってほしいものです。

大規模言語モデルLLMの日本語版の今後は?

そういえば先日、日本のスーパーコンピューターの「富岳」でしたっけ。これを使って日本語LLMを作るみたいな発表がありましたよね。

本気出してやれば、計算スピードはピカイチなんだから、結構早く目標を達成できるのではないでしょうか。
ただ、データセットをどうするとか、細かいパラメータの設定なんかは試行錯誤が必要なので、まだまだGAFAMには勝てないでしょう。

でもチャレンジすることに意味があるんですよね。
頑張ってください チーム「富岳」。
期待しています。

*******************

アスキーアートをプログラミング言語のPythonで作ってみた

アスキーアートって何

プログラミングとアートを融合させたい場合に、手っ取り早く表現できるのはこれ。
アスキーアートですね。
まずはご覧ください。

アスキーアートをChatGPTに聞いてみた

今となっては懐かしいアートですが、アスキーアートを知らない人もいると思うので、どんなものかと。
今時のChatGPTに聞いてみました。
以下、回答です。

**********ChatGPT曰く

アスキーアートとは、テキスト文字だけで描かれたアートのことを指します。文字の種類や大きさを調整することで、テキストの視覚的なレイアウトを作り出すことができます。

アスキーアートは、最初のパーソナルコンピュータが普及した1970年代に登場しました。
当時、コンピュータのグラフィック能力は限られており、画像を描くのにテキスト文字を使用することが一般的でした。

この技術は、コンピュータ画面上でプログラムが実行されている間、テキスト文字を使って遊び心のあるイラストを作ることができるという魅力的なアイデアを生み出しました。

アスキーアートは、様々な形式で表現されます。単純な絵文字から、詳細な3Dモデルまで、どんなものでも表現できます。

一部のアスキーアーティストは、手動でアートを作成することもありますが、多くの場合、画像変換ツールやオンラインアプリケーションを使用して、元の画像をテキストで置き換えます。

***********だそうです。

はい、わかりましたか?

アスキーアートをプログラミング言語Pythonで描いてみる

簡単に言うと、アスキーアートてのは、いわゆるテキストで絵やロゴを描いていくってやつです。

アートとしての面白さと、プログラミングの楽しさを感じられるのが、このアスキーアート。

特にプログラミングを始めてみたいけど、数字の羅列や計算とかは面倒だなーって人には、何か面白い結果が出るこのアスキーアートはおすすめです。

アスキーアートを作る

それでは、今回はアスキーアートを作るわけですが、以下のコードをgoogle colabへ貼り付けて、実行します。
ちなみに言語はPython3です。


from PIL import Image
from PIL import Image, ImageDraw

# アスキーアートに変換する画像ファイルのパス
IMAGE_PATH = “/content/○○○.jpg”

# アスキーアートに使用する文字列
ASCII_CHARS = [“@”, “#”, “S”, “%”, “?”, “*”, “+”, “;”, “:”, “,”, “.”]

# アスキーアートの横幅(文字数)
WIDTH = 80

# 画像を開く
image = Image.open(IMAGE_PATH)

# 画像をグレースケールに変換
image = image.convert(“L”)

# 画像のサイズを縮小
width, height = image.size

aspect_ratio = height / width
new_width = WIDTH
new_height = int(WIDTH * aspect_ratio * 0.46)
image = image.resize((new_width, new_height))

# 画像をアスキーアートに変換
pixels = image.getdata()
characters = “”.join([ASCII_CHARS[pixel // 25] for pixel in pixels])
art = “\n”.join([characters[i:(i + new_width)] for i in range(0, len(characters), new_width)])

# アスキーアートを表示
print(art)

# ファイルにアスキーアートを書き込む
with open(“/content/○○○.txt”, “w”) as f:
f.write(art)

# ファイルが保存されたことを確認
import os
if os.path.exists(“/content/○○○.txt”):
print(“アスキーアートをファイルに保存しました。”)
else:
print(“アスキーアートの保存に失敗しました。”)

 

設置した画像を元に、テキストファイルにアスキーアートを描いてくれるものです。

ところが、このテキストファイルに描くやつだと、大きさの関係で人間にはちょっとわかりづらいんですね。

そこで、テキストファイルを画像に変換するコードがこれです。

from PIL import Image
from PIL import Image, ImageDraw

# テキストファイルを開く
with open(‘/content/○○○.txt’, ‘r’) as f:
text = f.read()

# 画像サイズを指定する
width, height = 500, 600

# 画像オブジェクトを作成する
img = Image.new(‘RGB’, (width, height), color = (255, 255, 255))

# テキストを描画するためのオブジェクトを作成する
draw = ImageDraw.Draw(img)

# テキストを画像に描画する
textwidth, textheight = draw.textsize(text)
x = (width – textwidth) / 2
y = (height – textheight) / 2
draw.text((x, y), text, fill=(0, 0, 0))

# 画像を保存する
img.save(‘/content/○○○.jpg’)

 

このコードもgoogle colabへ貼り付けて実行してみましょう。

お次は上記の2つのコードを1個にまとめた方が使い勝手がよろしいかと思い、コードを合体させました。
それがこちら。

from PIL import Image
from PIL import Image, ImageDraw

# アスキーアートに変換する画像ファイルのパス
IMAGE_PATH = “/content/kei001.jpg”

# アスキーアートに使用する文字列
ASCII_CHARS = [“@”, “#”, “S”, “%”, “?”, “*”, “+”, “;”, “:”, “,”, “.”]

# アスキーアートの横幅(文字数)
WIDTH = 80

# 画像を開く
image = Image.open(IMAGE_PATH)

# 画像をグレースケールに変換
image = image.convert(“L”)

# 画像のサイズを縮小
width, height = image.size

aspect_ratio = height / width
new_width = WIDTH
new_height = int(WIDTH * aspect_ratio * 0.46)
image = image.resize((new_width, new_height))

# 画像をアスキーアートに変換
pixels = image.getdata()
characters = “”.join([ASCII_CHARS[pixel // 25] for pixel in pixels])
art = “\n”.join([characters[i:(i + new_width)] for i in range(0, len(characters), new_width)])

# アスキーアートを表示
print(art)

# ファイルにアスキーアートを書き込む
with open(“/content/○○○.txt”, “w”) as f:
f.write(art)

# ファイルが保存されたことを確認
import os
if os.path.exists(“/content/○○○.txt”):
print(“アスキーアートをファイルに保存しました。”)
else:
print(“アスキーアートの保存に失敗しました。”)

# テキストファイルを開く
with open(‘/content/○○○.txt’, ‘r’) as f:
text = f.read()

# 画像サイズを指定する
width, height = 500, 600

# 画像オブジェクトを作成する
img = Image.new(‘RGB’, (width, height), color = (255, 255, 255))

# テキストを描画するためのオブジェクトを作成する
draw = ImageDraw.Draw(img)

# テキストを画像に描画する
textwidth, textheight = draw.textsize(text)
x = (width – textwidth) / 2
y = (height – textheight) / 2
draw.text((x, y), text, fill=(0, 0, 0))

# 画像を保存する
img.save(‘/content/○○○.jpg’)

 

アスキーアートをプログラミング言語のPythonで作ってみたのまとめ

google colabで動作確認済みです。いろいろいじって遊んでみてください。
アスキーアートに使う文字を変えてみるとか、画像の大きさを変えてみるとか。
自分に合ったコードに改造してみてください。

改造して動かしていくと、どんどん腕が上がっていきます。
当然、わからないところやエラーが出たりしますが、そんな時はググったり、チャトッたり(別名GPTったり)なんかで解決していきましょう。

アート系が好きな人、ちょっと変わったプログラミングをしてみたいって方はぜひ!

*******************

ChatGPTを使って、自然言語処理をプログラミングしてみた

ChatGPTに自然言語処理について聞いてみる

昨今のChatGPTの勢いがすごいものがありますね。

確かに使ってみるとわかるのですが、結構質問に対しての優れた回答をしてくれます。
これだけすごいシステムですから、プログラミングをしている者からすると、中身を知りたくなりますよね。

そんなこんなで、GPTシリーズの初期の頃のバージョンであるGPT2の文書生成モデルはどんなものなのかをChatGPTに聞きながら実装してみました。
(ちなみにChatGPTの回答はファクトチェックしていません。なので、間違っている可能性もあります。そこをご了承のほど)

まずは、ChatGPTに以下のプロンプトを投げてみます。

「あなたはシステムエンジニアです。
GPT2のようなシステムを使って、自然言語処理を体感したいです。
環境はgoogle colab
言語はPython。
上記の仕様でPythonコードを書いてください。
一歩づつ考えて実行してください。」

ちなみに、最後の「一歩づつ考えて実行してください。」は、このプロンプトを投げると理数系の精度が上がるらしいプロンプトです。

英語だと
Let’s think step by step.

この一言で数学の計算問題が解けたとかどうとか。

なので、一応、上記の日本語版で付けてみました。

で、返ってきた答えがこれ。

ChatGPTが書いたプログラミングのコード

###### ChatGPTの回答ここから

「はい、理解しました。まずはGoogle ColabでGPT-2の自然言語処理を体験するために必要なライブラリをインストールする必要があります。

以下のコードをGoogle Colabのセルにコピー&ペーストして実行してください。

!pip install transformers

次に、GPT-2を使って文章生成を行うためのコードを以下に示します。

##### pythonコードここから

from transformers import pipeline, set_seed

# 乱数シードを設定
set_seed(42)

# パイプラインを定義
generator = pipeline('text-generation', model='gpt2')

# テキスト生成
text = generator("Hello, I'm ChatGPT and ", max_length=50, num_return_sequences=1)[0]['generated_text']
print(text)

##### pythonコードここまで

このコードをGoogle Colabにコピー&ペーストし、実行してください。すると、”Hello, I’m ChatGPT and “というテキストに続く50文字の文章が生成されます。

上記のコードでは、GPT-2を用いた文章生成を行うために、Transformersというライブラリを使用しています。まず、set_seed()を用いて乱数のシードを固定し、同じ条件下で実行した場合に同じ結果が得られるようにしています。次に、pipeline()を用いてtext-generationというパイプラインを定義しています。このパイプラインを使用すると、GPT-2による文章生成を行うことができます。

最後に、生成するテキストの初めとなる文字列と、最大の文字数、生成するテキストの数を指定し、文章を生成しています。生成された文章は、print()で出力しています。

以上が、Google ColabでGPT-2を使った自然言語処理の体験に必要なコードになります。ご参考にしてください。」

###### ChatGPTの回答ここまで

てか、短かっ。
もっと長々のコードが出力されると思いきや、ほんの数行です。

おまけにtransformersのライブラリを読み込んでの回答です。

Attention層を使ってゴニョゴニョではなく、端折っているところが何とも言えないのですが、シンプルイズベストということで、今回はこのコードを実行してみましょう。

「Hello, I’m ChatGPT and」以降の文章を生成してくれるみたいです。

google colabにコピペして実行する

上記コードをgoogle colabにコピペ。

で、実行します。

結果は見事に文書生成できています。

「Hello, I’m ChatGPT and irc.is. A friend of mine went on a vacation on a recent trip and I came across a list of people where they will send their information (such as how many hours they are, how they」

もちろん、文書の意味は大した回答にはなっていません。
ざっくりモデルですから仕方ないですね。

大ざっぱに自然言語処理の文書生成を知りたい方には、かえって数行のコードですから、わかりやすいかもです。

GPT-3もtransformersライブラリを使ってるのか?

ついでに聞いてみました。

「GPT3もtransformersライブラリを使っているのですか?」

ChatGPTの回答です。

「はい、GPT-3もTransformersライブラリを使用しています。Transformersライブラリは、自然言語処理に関するさまざまなタスクを実行するためのAPIを提供し、GPT-2やGPT-3などの事前学習済み言語モデルを含め、多くのニューラルネットワークモデルをサポートしています。」

とのことです。
(ファクトチェックしてないです。あしからず)

ChatGPTは勉強教材として最高のツール

さて、今回の内容で学べることは、ChatGPTはプログラミングの勉強教材としては結構使えるものだってことです。

書籍を読む時間のない方や、本格的な書籍ほどの知識は要らない、けど、ざっくりとした知見は欲しいって方には、ピンポイントで知りたいことを聞けるツールだってことです。

以前だとググって必要な情報を探したけど、結構時間がかかるんですよね。
ましてやコードが動かないってこともあるし。

ChatGPTの出力したコードはgoogle colabで動かすと大抵はOKですね。
もちろんエラーも出ますけど、その際はググったり、調べたりで修正していけばよろしいかと。

あと、ChatGPTがあるからって、全くの知識がない方がチャレンジしても難しいです。
とりあえず入門書や基本書みたいなのを2、3冊読んでから挑戦してみてください。
でないと、専門用語がわからないですよね。

さて、そんなこんなで、
お次はGBT-3から大規模言語モデルLLMの実装ですかね。
(google colabだけじゃGPU足りませーん)

プログラミングがさらに楽しくなりそうです。

 

ホームページ制作を無料で作れるか

ホームページ制作は無料で作れるのだろうか

さて、今回のタイトルは「ホームページ制作を無料で作れるか」ですが、答えはYESです。

ただし、制作費は無料でもホームページというのは、サーバー代と独自ドメイン(○○○.comなど)が月々数百円かかるので、こちらだけ負担してもらう形になります。

それと月々の管理料がかかる場合があります。
その金額はまちまち。また管理料の期間も半永久的なところもあれば、
1、2年で終わるものもあったりで、どこに頼むかで金額が変わってきます。

例えば管理料10000円で半永久的なんていったら、総額で数百万になってしまいます。
(サイトは20年はざらにもちますから、10000円✖️12✖️20で240万円です)

このへんはよくチェックしないと結果的にお高くなりますので、注意が必要です。

管理料はなるべく安い所。
なおかつ、管理料は期間限定で、「この期間が終わったら無料」のところを探すとお得ですね。

ウチでは、今のところ2つの超お得なコースを設置しています(2023年1月現在)。

超お得なホームページ制作無料コース

さて、ウチでは超お得なコースを2つ用意しています(デザインはお任せになります)。

ひとつめがこちら。

●無料でホームページを制作(1〜3ページ)
管理料は月々3800円のみ。
これを12ヶ月でお支払い頂いて終了となります。
以降は管理料は一切かかりません。これはお得ですね。

このコースは起業時などに初期投資をなるべくおさえたい方におすすめです。
私も経験ありますが、起業時はお金がかかりますよね。

なので、なるべくコストをかけたくない。
そんな方におすすめのコースです。

ホームページを自分で作るとすると

ちなみに、ホームページを自分で作ったりする人もいます。
ところが、素人の方が見よう見まねで作っても、SEO対策もできていないので、作って終わり。
誰も辿り着けないホームページの出来上がりになってしまいます。

するとサイトからの集客もなく、ネット上の会社案内ができただけという結果になります。

これは他でも書いているのですが、お金の派生しない趣味サイトはご自分で作られるのもいいと思います。

しかし、お金のやり取りが派生するビジネス系のサイトの場合は、業者に頼んで作ってもらった方が間違いありません。

きちんとしたホームページを作られた方が、後々のサイトからの売上で回収できますので、結果的にお得になるんです。

そこで、なるべく安く、しかもそれなりのホームページを作ってくれる所を探してみてください。
無ければ、ウチでも作れますので、ご依頼ください。

15000円でホームページ制作

●もうひとつのコースはこちら。
なんと15000円でホームページ制作(1〜2ページ)。
月々の管理料も無料。

こちらのコースはホームページがあればいいという方におすすめ。
とりあえずサマになったサイトがあればOKという方も多いでしょう。

そんな方におすすめします。

上記いずれのコースも簡易的ですがSEO対策済みのホームページですので、業種によっては上位表示も期待できます。

ホームページ制作が無料とはいえ

まあ、無料とは言っても、完全に0円で全てができるわけではありません。
上記で書いたように、サーバー代やドメイン代が月々数百円かかりますし、管理料もかかる場合があります。

制作費が無料、0円なんですね。

逆にその方が安心ですよね。
完全無料、0円で毎月も無料なんてサイトを構築できたら、逆にあやしい。
なにかあるんじゃないかって思いますから。

ホームページ制作を無料で作れるかのまとめ

ホームページ制作を無料で作れるかの答えはYESです。

ただし、サーバー代とドメイン代が月々数百円はかかります。
また、場合によっては管理料がかかる場合があります。

この管理料は業者によってまちまちですので、チェックしてみてください。

●ウチではホームページ制作無料のコースと15000円の2つのコースがありますので、よかったら利用してみてください(2023年1月現在)。

TVerがYouTubeに勝てない理由

久々の更新です。
コロナ禍で活動に制限がかかり、更新作業もままならなくなっていました。

ただ、もう少しで終わりが見えてきたように感じます。

かつての日本、世界、行き来自由。
普通に生活できる毎日。

もうちょいの辛抱ですね。

TVerがYouTubeに勝てない理由

TVerがYouTubeに勝てない理由、それは何でしょうか?

YouTubeはご存知の方も多いと思います。
一般人を中心に、最近では有名人、著名人も参入している動画配信サイトです。

一方、同じような動画配信サイトにTVerがあります。

こちらはテレビ番組を見逃したやつを数週間見れるサイトです。

あっ、この番組を録画したいなとかありますよね。
でも、たまたま外出中で録画できないとか、様々な理由でダメな時があります。
そんな時に役立つのがTVerです。

サイトに飛んで検索すれば、大抵の見逃した番組は掲載されてますね。
期間限定なので、お早めに見ないとですけど。

さて、そんなTVerですが、当方に限って言えば、TVerを見るか、YouTubeを見るかとなった時に、YouTubeに軍配が上がります。

理由は簡単。CMです。
TVerを見た方はわかると思いますが、結構CMで待たされることが多いんですよね。

YouTubeだと、大抵のCMはスキップできます。
たまにスキップできないCMが流れることもあるのですが、それでも約5秒位なもんです。
5秒のCMは見れますね。

ところがTVerだと、1〜2分ちょいはCMを流してきます。
これが長い。長すぎる。
しかも番組の開始早々に流してくるので、待つわ待つわ。

テレビのように、ちょい見せて途中で流すのではなく、いきなりCMを入れてきます。

動画を見る時ってのは、結構すきま時間に見ることが多いんですね。

テレビの前でたっぷり暇して見ようって訳ではないんです。

通勤の合間、お店での待ち時間、家事の合間など。
ちょっとした時間つぶしに見ることが多いと思います。

そこへ2分も待てますか?

興味のあるCMなら2分も短いでしょう。
しかし、興味のないCMを延々と2分前後も流された日には、相当見たい番組でない限り、TVerを消してYouTubeへと移ってしまいます。

まあ、番組側の気持ちもわかります。
無料で配信しているわけだから、CMくらい見てよと。
でないと有料になっちまうよと。

わかります。しかし、興味のない動画で、貴重なすきま時間をつぶしたくないんですね。
CMは必要だけど、見たくはないと。

最近では、テレビでもCMがうざいので、NHKを中心に見る位ですから。

CM短くできませんか

そこで提案なんですが、もっとCMを短くできませんかね。
できれば5秒以内。
この時間なら見れますよね。

あるいはYouTubeのように開始5秒でスキップできるとか。いろいろ方法はあると思います。

でユーザー側も、開始5秒のCMで興味をひけば、後で検索して本サイトを見たりの行動を取るでしょう。

あるいは、5秒でも脳裏には焼きつきますから、お店で「あっ、これCMで見たな」、「じゃあ買うか」ってな行動にもつながると思います。

少なくても2分のCM流して見ないよりは、5秒のCMを見てもらいましょうよと。
てのが、こちら側見る側の提案なんです。

TVerの番組の質感は高い

確かに、YouTubeと比べると、さすがにお金をかけているだけのことはあって、番組の質感は高いですよね。

まあ、個人的にはシンプルなYouTubeが結構好きで、無駄なテロップや、字幕がないところが、YouTubeの良さだと思ってます。

一方TVerの方は、テレビ番組で放映したやつですから、まあ字幕、テロップ、ワイプ(画面の中の小さい画面、よくタレントの顔をぬいているやつ)のオンパレードで、テレビで見る分にはいいのですが、スマホや小さいタブレットで見ると、逆にうざいなあと感じます。

テンションも高めですしね。
タレントさんは仕事取るために必死ですから、テンションもアゲアゲでのぞみますよね。

YouTubeの質感はあれはあれで大好き

一方、YouTubeはマイペースというか、伝えたいことが伝わればいいというバッグボーンがあるので、淡々と情報を伝えてくれます。
これがいいんだよなあ。
(少なくとも私が見ているビジネス系とかスポーツ系はそうです。子供さんが見るYouTubeはわかりません)

まとめ

さて、まとめましょう。

CMは無料配信なら流さないといけないのはわかっているけど、なるべく短くしてほしいと。
あるいはスキップできるバーションにして欲しいと。

妥協して、できれば10秒以内でお願いできませんか。TVerさん。
でないと、絶対にYouTubeには勝てませんぞよ。

PAGE TOP