Welcome to Mashykom WebSite



文章生成AI:大規模言語モデル

 チャットボット(ChatBot)という言葉がありました。「チャット」(Chat)と RobotのBot「ボット」という言葉が組み合わさった造語です。「チャットする」は、数人で雑談(chater)をすることです。この「ボット」は機械学習を利用して、言語と音声の自然言語処理を自動的に実行する人工知能のことです。チャットボットはテキストおよび音声を通じてユーザーとの言語会話を自動的に行うロボットのことです。OpenAI が提供している ChatGPT(Generative Pretrained Transfomer)は Transfomer という大規模言語処理アーキテクチャーを組み込んで構築されたAIのチャットボットです。したがって、ChatGPTの基本構造はTransformerを組み込んだ言語生成のAIチャットボットになります。

 OpenAIは2024年5月13日に、最新バージョンの AI モデル「GPT-4o」を発表しました。このモデルは、テキスト、音声、画像、映像をシームレスに扱い、自然なテンポでのリアルタイム音声会話が可能になりました。GPT-4oは視覚と音声の理解力が際立ち、多言語対応や複雑な対話の要素を理解できるようになりました。無料ユーザーも利用可能となっています。有料ユーザーはさらに制限が緩和され、企業向けプランも提供されます。また2024年7月17日にはGPT-4oの新モデルとなるGPT-4o miniも公開されました。

 OpenAI は元々は非営利組織で、Open というAIの設立ポリシーのもとで、2018年のGPT-1、2019年2月のGPT-2までは、GPTはオープンソースとして公開されてきました。しかし、マイクロソフトなどからの出資を受けて、2019年3月に営利組織のOpenAI LP が設立されてから、ポリシーが変わり、2020年9月22日にマイクロソフトはGPT-3の「独占的な利用」を発表しました。GPT-3からはソースが非公開になっており、ChatGPTではパラメータ数なども秘密になっています。CloseAI だという人達もいます。

 OpenAIでChatGPTの開発に従事していたメンバーによって設立されたAnthropic社が開発した Claude 2 という会話型生成AIも ChatGPT のライバルです。2023年7月11日にリリースされ、ChatGPTをしのぐ性能の良さと話題になっています。2024年9月現在、日本の携帯電話番号からも Claude 3.5 Sonnet が利用可能になりました。Claude 3.5 Sonnetの最大の利点は無料で利用できることと、ファイルの読み込みが可能なことです。Claude 3.5 もGPT-4などと同様、Transformerアーキテクチャに基づいた大規模な言語モデルを採用しています。 Anthropic の公式サイトにアクセスして、または、スマホでアプリをダウンロードすれば無料で利用できます。

 Meta は、2023 年 7 月 18 日に大規模言語モデル (LLM) の LLaMA 2 (Large Langauge Model Meta AI)を発表しました。Meta and Microsoft Introduce the Next Generation of Llamaを参照ください。LLaMA 2 は、オープンソースの自由な研究と商用利用を可能にする大規模言語モデル (LLM)の最新版です。このLlaMA 2 を利用したローカル LLM の新たな波が起こることが予想されます。LlaMA 2 のソースコードは META AI の公式サイトからダウンロード可能です。モデルのパラメータ・サイズは、70億(7B)、130億(13B)、700億(70B)個の3種類です。事前学習バージョンと会話型ファインチューニング・バージョンのモデルが含まれます。Llama 2-Chatと呼ぶファインチューニングされたLLMは、対話の利用に最適化され、オープンソースのチャットモデルの多くを上回ると言われ、OpenAIのGPT-3.5に匹敵する性能を持つとされます。Llama 2は、Windows上でのローカル動作への最適化も予定されており、AWSやHugging Faceなどで利用可能となっています。Meta社は2024年4月に、Llama 3 を、そして、8月に Llama 3.1 バージョンをリリースしています。

 パリを拠点とするスタートアップ企業 Mistral AI 社は、2023年9月27日、初のオープンソース大規模言語モデル(LLM)「Mistral 7B」をリリースした。73億のパラメータを持つこのモデルは、Meta 社の「Llama 2 13B」(Metaの新型モデルの中では小型の部類に入る)などを凌駕しており、このサイズとしては最も強力な言語モデルだと言われています。Google 傘下の DeepMind と Meta社で開発に従事していたエンジニアたちによって設立された Mistral AI 社は、一般に公開されているデータと顧客から提供されたデータのみを利用することで、企業のために AIを有用なものにすることを使命としています。この新しいMistral 7B は Apache 2.0 ライセンスの下でオープンソース化されており、誰でも(ローカルからクラウドまで)制限なく、商業ベースを含め、どこでも微調整して使用することができます。モデルの重み係数はHugging Faceのサイトからダウンロードします。GPUを持たないPCではインストールできませんが、24GBのGPU使用可能なホストを持っている場合は、Dockerを使用してMistral 7Bを実行できます。Mistral 7B の使用については、Mistral AI の公式ページを参照ください。

 2023年12月6日に、Googleは、テキスト、画像、オーディオを越えて機能する新しい大規模なマルチモーダルモデル(LMM)であるGeminiを発表しました。Geminiのテキスト機能は、同じ日にBARDに導入され、BARDからGeminiを利用することができるようになりました。BARD は Gemini に統合されました。Geminiではプロンプトに画像やコードなどを用いて学習できます。Gemini は、Google Gemini のサイトにアクセスすると利用可能です。

 近年、無料で利用できる日本語大規模言語モデルが多数開発されています。MIT や Apache-2.0 といったオープンソースライセンスが適用されています。利用可能な日本語大規模言語モデルのリストは、awesome-japanese-llm というサイトに紹介されています。

Last updated: 2024.10.15


Transformer の仕組みの原型


 従来、 自然言語処理 における Deep Learning アルゴリズムと言えば、 LSTM や GRU といった RNN (Recurrent Neural Network) でした。ところが、2017年6月、 "Attention Is All You Need" という強いタイトルの論文が Google から発表され、機械翻訳のスコアを既存の RNN モデル等から大きく引き上げます。論文”Attention Is All You Need”において、RNN や CNN を使わず Attention のみ使用したニューラル機械翻訳 Transformer が提案された。

 最初に Transformer アーキテクチャーを利用して話題になった自然言語処理モデルは、BERT(Bidirectional Encoder Representations from Transformers) と GPT2 です。BERTは、Transformerのアルゴリズムを活用した双方向的エンコード表現による言語処理のアプリで、2018年10月にGoogle AI Languageの研究者が論文で発表したものです。この論文において質疑応答(SQuAD)と自然言語推論(MNL1)、Microsoft Research Paraphrase Corpus (MRPC)などの様々な自然言語処理の幅広いタスクにおいて最先端の結果が公表されたことにより、言語処理の機械学習研究に大きな影響を与えました。

 いうまでもなく、BERTのカギとなる技術的イノベーションは、attentionモデルを採用したことでよく知られているTransformerの双方向的な訓練を適用したことにあります。BERTは、これ以前の自然言語処理モデルが熱心に試みていた文字列を左から右に見ていく、あるいは左から右への訓練とその逆のそれを組み合わせるのとは対照的です。論文で発表された結果は、双方向的に訓練された言語モデルが、単方向的に訓練された言語モデルに比べて文脈と文の流れから見た言語の意味をより深くつかめることを示している。文章分類、質問応答、固有表現抽出等の多様なタスクで公開当時の最高性能(SOTA: State of the Art)を達成しました。文章の分類や質問に対する応答が得意です。

 chatGPT、 Claude、 LLaMA、Mistral 7B、そして、Google Gemini は、この Transformer アーキテクチャーを基盤技術として利用しています。

 ところで、最新の GPT は何に得意なのでしょうか。対話応答、要約等の文章生成タスクが主に得意だと言われています。BERT と ChatGPT の相違について、chatGPT に聞いてみました。以下がその答えです。

 『BERT(Bidirectional Encoder Representations from Transformers)とGPT-3(Generative Pre-trained Transformer 3)は、両方ともTransformerモデルを基にした自然言語処理(NLP)モデルですが、いくつかの主要な相違点があります。

モデルのタスク:
BERT: BERTは、言語モデルとして事前学習され、文の埋め込み表現(文脈を考慮した単語の表現)を生成します。これは、事前学習の後に、さまざまなタスク(テキスト分類、文の類似度判定など)にファインチューニングすることができます。
GPT-3: GPT-3は、大規模なトランスフォーマモデルであり、大量のテキストデータを使用して事前学習されています。GPT-3は、生成モデルとして使用され、与えられたテキストの文脈に基づいて次の単語や文章を予測することができます。

文脈の処理:
BERT: BERTは、文脈を左から右と右から左の両方の方向で学習することで、単語の埋め込み表現を生成します。これにより、単語の前後の文脈を考慮した表現が得られます。
GPT-3: GPT-3は、前方向の文脈のみを考慮して生成された文を予測するため、文脈の処理はBERTとは異なります。

モデルのサイズとパラメータ数:
BERT: BERTは、比較的小さなモデルであり、数億から数十億のパラメータを持つことが一般的です。
GPT-3: GPT-3は非常に大規模なモデルであり、1兆のパラメータを持つことが特徴です。

転移学習の応用範囲:
BERT: BERTは、ファインチューニングを通じてさまざまなNLPタスクに適用できます。例えば、テキスト分類、文の類似度判定、固有表現認識などです。
GPT-3: GPT-3は、テキスト生成タスクに特化しており、文や文章の生成が主な応用範囲です。
これらはBERTとGPT-3の主な相違点ですが、それぞれのモデルは異なる目的と利用シナリオに特化しています。BERTはファインチューニングによる応用範囲の広さと精度の向上において強力ですが、GPT-3は大規模なテキスト生成タスクにおいて優れたパフォーマンスを発揮します。』

 ChatGPTの答えは、上で述べた特徴とも一致しています。なお、GPTとBERTの比較をした解説、"GPT-3 vs. BERT: Comparing the Two Most Popular Language Models"では以下のように説明されています。

 GPT-3 と BERT はどちらも、質問応答、要約、翻訳などのさまざまな NLP タスクで良好に機能することが示されていますが、その精度はタスクに応じて異なります。GPT-3 はトレーニング用のデータセットのサイズが大きいため、より多くのデータにアクセスできることが有益となる要約や翻訳などの特定のタスクでは、優れたパフォーマンスを発揮する傾向があります。一方、BERT は双方向の性質により、センチメント分析や NLU などの他のタスクでは、予測を行うときに左右のコンテキストの両方を考慮できるため、パフォーマンスが向上する傾向があります。

 BERTを日本語で使用する具体例については、BERTによる日本語処理のページを参照ください。

transformer.png
Transformer の構造

 関連記事の紹介

The illustrated Transformer
30分で完全理解するTransformerの世界

ChatGPT の利用


 日本語版 ChatGPT は、日本語専用の高度なAIです。「日本の文化、歴史、ビジネス、法律、および言語教育に関する深い知識を提供します。多様なアニメワイフキャラクターを通じてインタラクティブな体験を実現し、カスタマイズ可能な専門家支援と現代の日本に関する最新情報を提供することで、ユーザーの学習と情報収集を強化します。」と謳っています。 ChatGPT を利用するためには、OpenAI の公式サイトにある ChatGPT のページにアクセスします。アカウントを作成して、ログインします。Google などのアカウントでもログインできます。ChatGPT のページでプロンプトを入力して、チャットを始めます。

 例えば、「ROS 2のプログラムは書けますか?」と入力すると、以下のような返答があります。


--- response ---
「はい、ROS 2のプログラムを書くことは可能です。ROS 2は、Robot Operating System(ROS)の次世代バージョンであり、ロボットアプリケーション開発のためのフレームワークです。
ROS 2は、C++やPythonなどの一般的なプログラミング言語を使用して開発することができます。また、ROS 2では、ノード(Node)と呼ばれるプログラムの単位を使用して、ロボットシステム内の異なるコンポーネント間の通信やデータ共有を行います。
ROS 2のプログラムを開発するためには、ROS 2のインストールが必要です。また、ROS 2のドキュメントやチュートリアルを参照することで、基本的な概念やAPIの使い方を学ぶことができます。例えば、以下はROS 2のPythonで書かれた簡単なプログラムの例です。... 」
と続きます。

 ChatGTP に 「フィボナッチ数列を出力するコードを書いて下さい」 と言うメッセージを送りました。すると、以下のような返事がありました。

--- response ---
こちらは、フィボナッチ数列を出力するPythonのコードです。数列の最初のn項を出力します。

python
コードをコピーする
def fibonacci(n):
    fib_sequence = [0, 1]
    while len(fib_sequence) < n:
        fib_sequence.append(fib_sequence[-1] + fib_sequence[-2])
    return fib_sequence[:n]

# フィボナッチ数列の最初の10項を出力
n = 10
print(fibonacci(n))
このコードでは、nに表示したいフィボナッチ数列の項数を指定します。たとえば、n = 10の場合、最初の10項が表示されます。


 確かに、Python コードを書いてくれました。日本語でコードを書いてくれました。日本語の作成性能を見るために、「最近のフランス旅行について、文化体験や必見の観光スポットを紹介する魅力的な旅行ブログ記事を作成してください。」とプロンプトを入力しました。以下が結果です。


--- response ---

フランス旅行:忘れられない文化体験と必見の観光スポット
フランスと言えば、エッフェル塔やルーブル美術館のような象徴的な名所を思い浮かべる方が多いかもしれませんが、この国にはそれ以上に豊かな文化と体験が待っています。私は最近、フランスを訪れ、その魅力に圧倒されました。この記事では、私の旅で感じた「これぞフランス!」という文化体験や、ぜひ訪れてほしい観光スポットを紹介します。

パリで感じるアートと歴史の融合
まず、フランス旅行は多くの人にとってパリから始まることでしょう。エッフェル塔はもちろん見逃せませんが、パリで私が特に感動したのは、街全体が美術館のような雰囲気を持っていることです。パリを散策していると、歴史と現代が調和した街並みや、道端のアートが随所に溢れています。

ルーブル美術館とその周辺
ルーブル美術館では、ダ・ヴィンチの「モナリザ」やギリシャの「ミロのヴィーナス」など、世界的に有名な作品を見ることができます。しかし、私が印象的だったのは、建物そのものの壮大さと歴史的な空間です。内部の装飾や庭園も息をのむほど美しく、ただ美術品を眺めるだけでなく、建物自体が芸術品だと感じました。

美術館の後、セーヌ川沿いを散歩しながら、シテ島のノートルダム大聖堂まで足を運びました。この大聖堂は火災の修復中ですが、その荘厳さは依然として健在。夜にはライトアップされ、幻想的な雰囲気に包まれます。

美食の国での味覚の冒険
フランス旅行の楽しみの一つとして、やはり食文化は外せません。私が訪れたパリのレストランでは、洗練された料理が味わえる一方で、バゲットやクロワッサンといった日常のパン屋の味も素晴らしいです。特に、モンマルトル地区にある小さなベーカリーでは、焼きたてのクロワッサンが絶品でした。

ワインとチーズの本場
ワインとチーズもフランスならではの体験。特にブルゴーニュ地方やボルドー地方に行けば、ブドウ畑を見学したり、地元のワイナリーでワインの試飲が楽しめます。ワインと合わせて地元のチーズを味わうと、その組み合わせの妙に感動します。フランスの人々がワインを愛する理由がよくわかりました。

南仏でのリラックスした時間
パリを満喫した後は、フランスの南部、プロヴァンス地方へ向かいました。ここは全く違った魅力を持つエリアです。ラベンダー畑が広がる田園風景や、美しい中世の村々が点在しています。特に、エクス=アン=プロヴァンスやアルルは、アーティストのゴッホやセザンヌが愛した町としても有名です。

エクス=アン=プロヴァンス
エクス=アン=プロヴァンスは、日常から離れてのんびりと過ごすのにぴったりの場所です。カフェで一杯のコーヒーを飲みながら、石畳の街を歩いていると、時間がゆっくりと流れているように感じられます。また、ここでのマーケットは必見で、新鮮な野菜や地元の特産品がずらりと並びます。地元の人々とのふれあいも旅の楽しみの一つです。

フランスの伝統と現代を感じるリヨン
最後に、リヨンという都市もぜひ訪れてほしい場所です。リヨンは美食の都として知られ、古くからの伝統料理と現代的なフレンチ・ガストロノミーが融合しています。ここでは、地元のビストロ「ブション」で、リヨン名物のクネルやサラダ・リヨネーズといった伝統料理を堪能しました。

また、リヨンは古代ローマ時代からの歴史を持つ都市であり、ローマ劇場跡やリヨン旧市街の石造りの建物を訪れると、その歴史的な重みを感じます。美術館も充実しており、古典から現代アートまで幅広い作品が展示されています。

まとめ
フランスはただの観光地ではなく、文化、芸術、美食が融合した体験の宝庫です。パリの都会的な魅力から、プロヴァンスの自然の美しさまで、訪れる場所ごとに違った感動を与えてくれます。フランスに行くなら、ぜひ有名な観光スポットだけでなく、地元の人々とふれあいながら、その奥深い文化に触れてみてください。


 如何でしょうか。素晴らしい日本語の旅行ブログになっています。

 画像入力が可能になっているので、画像とテキストのプロンプトを入力しました。画像マークに以下の画像をアップロードして、「この画像にある場所はどこですか?」と入力しました。

 

--- response --- 

この画像はフランス南部にある「カルカソンヌ城塞(La Cité de Carcassonne)」です。中世の要塞都市として有名で、その壮大な城壁や塔が特徴的です。カルカソンヌはユネスコの世界遺産にも登録されており、フランスでも最も保存状態の良い城塞都市の一つです。この場所は、石造りの城壁が織りなす壮麗な風景と、中世の雰囲気を今に伝える観光名所として知られています。

 ヨーロッパの有名な観光地の風景にある建物などは同定ができるようです。次に、日本国内の風景写真を使用しました。以下の横浜のみなとみらいの画像で「 ここはどこでしょうか?」と聞いてみました。

 

--- response --- 

この画像は、横浜の「みなとみらい」地区にある有名な観光スポットです。左側に見える白い建物は「横浜グランドインターコンチネンタルホテル」、右側の大きな観覧車は「コスモクロック21」です。この観覧車は、かつては世界最大の時計付き観覧車としても知られており、ランドマーク的な存在です。みなとみらいは、ショッピングや観光施設が充実しており、特に夜景が美しいことで有名です。


 「横浜グランドインターコンチネンタルホテル」と「コスモクロック21」を正確に捉えています。日本国内での有名な観光地の建物などは同定・検出できるようです。

 デフォルトの ChatGPT のバージョンは GTP 4o です。OpenAIは、最もコスト効率の高い小型モデル「GPT-4o mini」を発表しました。GPT-4 を上回る性能を持ちながら、GPT-3.5 Turbo よりも60%以上安価です。テキストとマルチモーダル機能をサポートし、将来的にはビデオやオーディオにも対応予定です。GPT-4o mini は GPT-4o の軽量モデルであるため、出力の品質は GPT-4o に劣ります。

 無料で GPT4o を利用することは可能ですが、回数制限が有ります。ChatGPT-4o は、有料プランであるChatGPT Plusに加入する事で自由な利用可能です。ChatGPT Plusにアップグレードするためには、サブスクリプションが必要です。

 ChatGPT Plusでは、コード入力も可能とする Code Interpreter プラグインが導入されています。より人間に近い処理能力が実現可能になっていると言える。「Code Interpreter は、ChatGPTの AI がコードを実行し、データを分析し、グラフを作成し、ファイルを編集し、そして数学的演算を実行します。 ChatGPT内のデータサイエンティストをいつでも自由に利用できるようになり、複雑なデータを認識し、実用的な洞察を得ることができる。Code Interpreter は、すべての ChatGPT Plus 加入者が利用でき、アカウント設定を通じて有効にすることができます。これはPython でコードを記述し、最大 100MB のサイズのファイルを操作できる強力なツールです。

 ChatGPT アプリを iPhone などのスマートフォンにインストールして利用することができます。iPhone の場合は、App Store にアクセスしてダウンロードします。あとは、ChatGPT アプリを起動して、ログインすれば、利用可能となります。ChatGPT のデスクトップアプリは、ChatGPTの公式サイトからインストール可能です。なお、OpenAI の API の利用は有料です。

 無料版の ChatGPT から DALL·E 3 を用いた画像作成ができるようになりました。画像作成の機能については、DALL·E のページをみて下さい。



Anthropic Claude 3.5 Sonnet の利用


 Claude 3.5 Sonnetとは、アンソロピックが2024年6月21日に発表したLLMの新モデルで、前バージョンのClaude 3 Opusと比較して、大幅な性能向上を実現しただけでなく、スピードが2~3倍、APIコストが5分の1に改善されたといわれます。OpenAIが最近リリースしたGPT-4oをも超える性能を示しており、大規模言語モデル(LLM)開発競争で、一歩リードしたとも言われます。Claude 3.5 Sonnetの料金プランには、無料プランと有料プランの2つがあります。無料プランの場合、利用回数に制限があります。一方、有料プランは月額20ドルで提供されています。また、Claude 3.5 SonnetのAPIは、入力トークンごとに3ドル、出力トークンごとに15ドルで提供されています。

 Anthropic Claude 3.5 Sonnet を使用してみましょう。公式サイトに行きます。アカウントを作成します。Google のアカウントを用いてでもログインできます。

 「フィボナッチ数列のn番目の数を取得するコードを書いてください」とプロンプトを書きました。以下のような返答となりました。


--- response ---

はい、フィボナッチ数列のn番目の数を取得するPythonコードを書きます。

```
python
def fibonacci(n):
    if n <= 0: 
        return "nは正の整数である必要があります" 
    elif n==1 or n==2: return 1 else: 
        a, b=1, 1 
        for _ in range(3, n + 1): 
            a, b=b, a + b
        return b 
# 使用例 
n=10 
result=fibonacci(n) 
print(f"フィボナッチ数列の{n}番目の数は: {result}") 

```
このコードは`fibonacci`関数を定義しています。この関数は以下のように動作します: 
1. まず、入力値`n`が0以下の場合はエラーメッセージを返します。 
2.`n`が1または2の場合は1を返します(フィボナッチ数列の最初の2項は1です)。 
3. それ以外の場合、ループを使用して`n`番目までのフィボナッチ数を計算します。 
使用例として、10番目のフィボナッチ数を計算しています。
このコードを実行すると、以下のような出力が得られます: 
``` フィボナッチ数列の10番目の数は: 55 
``` コードの説明や動作の詳細について、さらに詳しく知りたい点はありますか?


 実行可能なPython コードを教えてくれました。

 次に、「YOLO 8 を用いた物体検出のpythonコードを書いて下さい」とプロンプトに書き入れてみましょう。下のような返答がありました。


--- response ---

はい、YOLO v8を使用した物体検出のPythonコードを作成します。このコードは、画像に対して物体検出を行い、結果を表示します。

```python
import cv2
from ultralytics import YOLO

# YOLOv8モデルをロード
model = YOLO('yolov8n.pt') # または他のYOLOv8モデル

# 画像のパス
image_path = 'path/to/your/image.jpg'

# 画像を読み込む
image = cv2.imread(image_path)

# 物体検出を実行
results = model(image)

# 検出結果を画像に描画
for result in results:
    boxes = result.boxes.cpu().numpy()
        for box in boxes:
            x1, y1, x2, y2 = box.xyxy[0]
            conf = box.conf[0]
            cls = int(box.cls[0])

            cv2.rectangle(image, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 2)
            cv2.putText(image, f'{model.names[cls]} {conf:.2f}', (int(x1), int(y1) - 10),
            cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2)

# 結果を表示
cv2.imshow('Object Detection', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 結果を保存(オプション)
cv2.imwrite('output.jpg', image)
```

このコードは以下の手順で物体検出を行います:

1. 必要なライブラリ(OpenCVとultralytics)をインポートします。
2. YOLOv8モデルをロードします。
3. 画像を読み込みます。
4. モデルを使用して物体検出を実行します。
5. 検出結果を画像上に描画します。
6. 結果を表示し、必要に応じて保存します。

このコードを使用する前に、以下の準備が必要です:

1. 必要なライブラリをインストールします:
```
pip install ultralytics opencv-python
```

2. YOLOv8のモデルファイル(例:'yolov8n.pt')をダウンロードするか、カスタムモデルを用意します。

3. `image_path` 変数を、検出したい画像のパスに変更します。

コードを実行すると、指定した画像に対して物体検出が行われ、検出された物体にバウンディングボックスとラベルが描画された画像が表示されます。また、結果は'output.jpg'として保存されます(オプション)。

このコードをカスタマイズしたり、動画やWebカメラからのリアルタイム検出に拡張したりすることも可能です。何か質問や修正したい点があればお知らせください。


 「pip install ultralytics opencv-python 」を最初に実行して、このPythonコードを実行すると、エラーなしで物体検出が行われます。素晴らしい。

 日本語の作成性能を見るために、「最近のフランス旅行について、文化体験や必見の観光スポットを紹介する魅力的な旅行ブログ記事を作成してください。」とプロンプトを入力しました。以下が結果です。


--- response ---

承知しました。フランス旅行に関する魅力的な旅行ブログ記事を作成いたします。文化体験や人気の観光スポットを中心に、読者が興味を持ちそうな情報を盛り込んでいきます。

# 魅惑のフランス旅行:文化と観光の絶景を巡る

フランスは、その豊かな歴史、芸術、料理で世界中の旅行者を魅了し続けています。最近の旅で体験した文化的な見どころと必見の観光スポットをご紹介します。

## パリ:永遠の魅力

### エッフェル塔:鉄の貴婦人

パリと言えば、まず思い浮かぶのがエッフェル塔。夜のライトアップは特に美しく、シャンパンを片手に塔頂からの眺めを楽しむのがおすすめです。

### ルーヴル美術館:芸術の宝庫

モナ・リザやヴィーナスの像など、世界的に有名な作品の数々に圧倒されます。事前予約をして並ばずに入館できるのがポイントです。

## プロヴァンス:色彩豊かな南仏

### ラベンダー畑:紫の絨毯

6月から8月にかけて、プロヴァンスの丘陵地帯は一面のラベンダーで覆われます。香りと色彩に包まれる体験は忘れられません。

### エクス・アン・プロヴァンス:セザンヌの足跡を訪ねて

画家ポール・セザンヌのアトリエを訪れ、彼が愛した風景を自分の目で確かめることができます。

## ボルドー:ワイン愛好家の聖地

### サン・テミリオン:世界遺産の村とワイン

中世の面影を残す美しい村で、地下教会や鐘楼からの眺めは必見。もちろん、有名なワインの試飲も忘れずに。

### ラ・シテ・ドュ・ヴァン:ワインの歴史と文化を学ぶ

最新技術を駆使した体験型博物館で、フランスワインの奥深さを楽しく学べます。

## カルカソンヌ:中世の城塞都市

壮大な城壁に囲まれた旧市街は、まるで時間が止まったかのよう。夜のライトアップされた城壁は特に幻想的です。

## モン・サン・ミシェル:海に浮かぶ修道院

干潮時に歩いて渡れる砂州、そびえ立つ修道院など、その景観は息をのむほど美しいです。

## 文化体験のポイント

- 地元のマルシェ(市場)で新鮮な食材を買い、ピクニックを楽しむ
- カフェでゆっくりとコーヒーを飲みながら、パリジャンの日常を観察する
- ワイナリーツアーに参加し、ブドウ畑からワイン造りまでを学ぶ
- 地元のクッキング教室で、フランス料理の基本を学ぶ

## 旅のアドバイス

- 主要な観光地は事前予約がおすすめ。待ち時間を大幅に短縮できます。
- 公共交通機関は便利ですが、地方を巡るにはレンタカーも検討しましょう。
- 基本的なフランス語のフレーズを覚えておくと、より温かい対応が期待できます。
- 食事の時間は比較的遅めです。多くのレストランは19:30頃からオープンします。

フランスは何度訪れても新しい発見があります。芸術、歴史、美食を堪能しながら、自分だけの特別な思い出を作ってください。Bon voyage!

以上がフランス旅行についての魅力的なブログ記事です。文化体験や必見の観光スポットを中心に、読者が興味を持ちそうな情報を盛り込みました。この記事は、旅行の計画を立てている人や、フランスの文化に興味がある人にとって有用な情報源となるでしょう。
記事の構成や内容について、何か特定の部分を詳しく知りたいことや、追加したい情報がありましたらお知らせください。喜んで記事を調整したり、追加情報を提供したりします。


 ChatGPT の返答と比較して、何を感じますか。日本語文章の作成はどうでしょうか?

 Claude 3.5 sonnet はマルチモーダル・モデルなので、画像の入力が可能です。ChatGPT と同じ画像を用いて、画像と「この画像について教えて下さい」というテキストを入力しました。カルカソンヌの写真に対する返答は以下の通りでした。


--- response --- 

この画像は、フランスの中世の城塞都市カルカソンヌ(Carcassonne)を映しています。
カルカソンヌは、フランス南部のオード県に位置する歴史的な要塞都市で、その壮大な城壁と塔が特徴的です。画像には以下の要素が見られます:

丘の上に建つ巨大な中世の城塞(シテ・ド・カルカソンヌ)
複数の塔と城壁
城塞の下にある町の一部
前景に見える川と石造りの橋
周囲の緑豊かな風景

カルカソンヌは、その保存状態の良さと中世の建築様式により、ユネスコ世界遺産に登録されています。この場所は、その印象的な要塞と美しい周辺環境により、フランスの主要な観光地の一つとなっています。
曇り空の下で撮影されたこの写真は、カルカソンヌの荘厳さと歴史的な雰囲気を見事に捉えています。


 横浜のみなとみらいの写真に対する返答は以下の通りです。


--- response ---

この画像は横浜の有名な風景を映しています。具体的には以下の特徴的な建造物が見られます:

右側に大きな観覧車が見えます。これは「コスモクロック21」として知られる横浜みなとみらい地区のランドマークです。
左側には特徴的な形状の高層ビルが見えます。これは「インターコンチネンタルホテル横浜グランド・ベイブリッジ」で、帆の形をした独特のデザインが特徴です。
観覧車の手前には、カラフルなジェットコースターのような遊具が見えます。これはみなとみらい地区にある遊園地「よこはまコスモワールド」の一部です。

この場所は横浜市のみなとみらい21地区で、横浜を代表する観光スポットの一つです。都市開発によって生まれた新しい街区で、ショッピング、エンターテイメント、ビジネスなどの機能が集約されています。
青空の下でこれらのモダンな建造物が映し出されており、横浜の都市的な魅力と活気を感じさせる風景です。


 ヨーロッパや日本の風景写真における有名な建物などの物体検出の性能は、ChatGPT や Google Gemini と同等と見られます。画像に関する質問に対する返答は、 ChatGPT の返答と比較すると、やや詳しい説明となっています。


LlaMA 3 の利用


 Meta は2024年4月に、大規模言語モデル(LLM)の最新版「Llama 3」をリリースしました。パラメーター数が80億と700億の2つのモデルで、モデルはオープンソースソフトウエアとして提供しました。様々なベンチマークで競合するLLMの性能を上回りました。例えば700億パラメーターモデル「Llama 3 70B model」は、GPT 3.5 、Google が提供するGemini 1.5 Proや Anthropic の Claude 3 Sonnet の性能を超える成績を発揮したとしています。

 最新バージョン(2024年10月15日現在)のLlama 3.2 は、日本語を含む多言語テキストのみの入力を可能とする 1B および 3B サイズのモデルと、テキストと画像の両方の入力を可能とする 11B および 90B サイズのモデルから構成されます。事前トレーニングおよび微調整された大規模言語モデル (LLM) のコレクションです。

 HuggingFace の website で提供されている LlaMA 3.2 バージョン を使用してみました。利用した webdemo は、 Llama-3.2-Vision-Freeです。Huggingface の Token Key を入手して実行します。「BERTとGPTの違いについて教えてください」と日本語で聞きました。以下が返答でした。


--- rresponse ---

BERT (Bidirectional Encoder Representations from Transformers) と GPT (Generative Pre-trained Transformer) は、両方ともトランスフォーマー (Transformer) アーキテクチャを使用した自然言語処理 (NLP) モデルですが、主な目的と特徴が異なります。

BERT (Bidirectional Encoder Representations from Transformers)

主な目的: テキスト内の単語の意味を表現すること
トレーニング方法: 既存のテキストデータを用いて、前向き (forward) と後向き (backward) の両方の方向性でトランスフォーマーを使用してトレーニング
能力: テキスト内の単語の意味をより正確に表現すること、文脈を考慮した単語の意味を推測すること
使用例: テキストの意味分析、文脈検索、質問応答システム
GPT (Generative Pre-trained Transformer)

主な目的: テキストを生成すること (例:文章生成、文書生成)
トレーニング方法: コーパスから生成するためのトレーニング
能力: テキストを生成すること、文脈を考慮したテキストを生成すること
使用例: 文章生成、文書生成、チャットボット
簡単に言えば、BERTはテキスト内の単語の意味を表現するのに、GPTはテキストを生成するのに使用されます。

また、BERTはトレーニングデータの方向性が両方向(前向きと後向き)であるのに対し、GPTはトレーニングデータの方向性が単一の方向(後向き)です。これにより、GPTは生成するテキストの内容がより良くなる傾向があります。


 日本語を含む多くの言語に対応しているので、日本語のプロンプトには日本語で返答します。

 ChatGTP と同様に、上記の Llama 3.2 モデルで、「フィボナッチ数列を出力するコードを書いてください」というメッセージを送ると、Pythonコードを書いてくれました。


--- response --- 

フィボナッチ数列は、前の2項の合計を次の項とする数列です。最初の2項は0と1です。ここはPythonでフィボナッチ数列を出力するコードを書きます。


def fib(n):
    fib_list = [0, 1]
    while len(fib_list) < n:
        fib_list.append(fib_list[-1] + fib_list[-2])
    return fib_list

n = int(input("フィボナッチ数列の項数を入力してください: "))
print(fib(n))
このコードは、フィボナッチ数列の項数を入力すると、指定された数の項を出力します。

または、フィボナッチ数列を生成するジェネレータを使う方法もあります。


def fib_gen():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

n = int(input("フィボナッチ数列の項数を入力してください: "))
fib_gen = fib_gen()
for _ in range(n):
    print(next(fib_gen))
このコードは、フィボナッチ数列の項数を入力すると、指定された数の項を出力します。ジェネレータを使うことで、メモリ使用量を削減できます。


 ChatGPT(GTP 3.5) などと同等の能力があることが確認できます。日本語の能力を見るために、以下の実験をしました。「最近のフランス旅行について、文化体験や必見の観光スポットを紹介する魅力的な旅行ブログ記事を作成してください。」と入力しました。


--- response --- 

最近のフランス旅行についての旅行ブログ記事を作成するには、以下の情報を含めることができます。

文化体験

パリのルーブル美術館: 世紀を越えた芸術作品を鑑賞することができます。
パリのモンテマルトルの聖堂: 中世のゴシック建築と美しい庭園を楽しむことができます。
ボルドーの美術館: ブランクムイスター、モナ・リザなどの名画を展示しています。

必見の観光スポット

エッフェル塔: パリを代表するランドマークです。
パリのモンパルナス: パリの最高峰で、パリの眺めが楽しめます。
リヨン: フランス料理の都で、美しい川と橋を楽しむことができます。
ニース: バルカン海岸で、美しい海岸線と温暖な気候を楽しむことができます。
ルーアン大聖堂: 世界遺産のゴシック建築で、美しいゴシック美術を楽しむことができます。

フランス料理

フランス料理は全世界で有名で、味わい深い料理が数多くあります。パリ、リヨン、ボルドーなどの地方料理も楽しめます。

フランス旅行のアドバイス

旅行の期間は春や秋が適しています。
Françaisを勉強し、フランス語を話すと、フランス人との交流がより楽しくなるでしょう。


 如何でしょうか。日本語の問題ではないですが、パリのモンテマルトルはモン・マルトルの間違いでしょう。ボルドー美術館の記述は間違いだと思われます。ニースはコートダジュールにあるので、イタリア西側の地中海に面しており、バルカン海岸ではありません。日本語文章の作成能力は ChatGPT に比較して劣ります。日本語でのファインチューニングが必要です。

 Llama 3.2 Vision models (11B/90B) はマルチモーダル・モデルなので、画像の入力が可能です。実際に、以下の画像と「この画像について教えて下さい」というテキストを入力しました。返答は以下の通りでした。


この画像は、オスエレファントが走っている様子を撮影した写真です。背景は砂地で、向かって右側に若いエレファントが通り過ぎています。写真の雰囲気から、自然環境にアダルツエレファントとその子が周遊している様子が伺えます。


 この説明は適切ですが、アダルツエレファントという言い方はしませんね。親の像という意味です。しかし、いわゆる風景写真など(横浜のみなとみらいのコスモクロックの写真)を入力したときは、「An error occurred: Error code: 400 - {"message": "Request entity too large", "type_": "invalid_request_error"}」と表示され、返答ができませんでした。

 すでに確認した通り、ChatGPT では、「みなとみらい」地区と同定されていました。また、Gemini で同じ写真を用いたときは、「横浜みなとみらい21地区にある大観覧車「コスモクロック21」を捉えています。」という返答がありました。したがって、 ChatGPT や Googel Gemini などに比べると、風景写真における有名な建物などの画像識別の性能は劣ります。

 Meta の大規模言語モデル Llama の最新版は Llama 3.2 です。Llama 3 のコードは、githubの Meta-Llama Models にあります。モデルの重み係数とトークナイザーをダウンロードするためには、Meta AI websiteにアクセスして、ライセンスの承認を得る必要があります。

 MacなどのPC(cpuのみ)でもLlama 3を使えるようにするLlama.cppというプロジェクトがあるので、これを利用してみましょう。 Llama.cppはLlamaをC/C++に移植したもので、MacなどのPC上で4bit量子化を使ってLlama モデルをローカルに実行できるようにしたものです。

 llama.cpp リポジトリをクローンしてローカルでビルドするには、次のコマンドを使用して、基本的なビルドを実行できます。


$git clone https://github.com/ggerganov/llama.cpp
$cd llama.cpp

(llama.cpp)$make


 上記のインストールでは、Metal はデフォルトで有効になっています。Metal を使用すると、計算は GPU 上で実行されます。この make を使ったビルドをすると、MacPC の場合には、Metal を使用することが条件になります。コンパイル時に Metal ビルドを無効にするには、GGML_NO_METAL=1 フラグまたは GGML_METAL=OFF cmake オプションを使用します。Metal を使用しないときは、以下のようにします。


(llama.cpp)$cmake -B build  -DGGML_METAL=OFF
(llama.cpp)$cmake --build build --config Release


 これで、cpu のみの MacPC で、Llama モデルの量子化モデルを用いた推論が実行可能になります。実行コード main は depricated なので、使用できません。metal ビルドを無効にしないと、実行に llama-cli コマンドを使用すると、MacPCがダウンします。cmake でコンパイルするときに、上記のように、metal を使用しないというオプションを実行する必要があります。

 Llama.cppで動作させるためには、METAが提供するLlamaのモデルを量子化する必要があります。現在(2024年9月)、llama.cpp では、ggml 量子化フォーマットは現在サポートされていません。gguf フォーマット形式の量子化モデルが必要です。Llama 3 に対応する gguf フォーマット形式のコードは Hugging Face のQuantFactoryにあります。Mistral の gguf 形式の量子化モデルも掲載されています。

 Llama 3 の gguf フォーマットの量子化されたモデルはこのHugging Faceのサイトから取得できます。Hugging Face のweb サイトにあるファイル群の中から選択して、例えば、標準的な「Meta-Llama-3-8B-Instruct.Q4_K_M.gguf」をダウンロードします。サイズは約4.8GBです。

ダウンロードしたモデル「Meta-Llama-3-8B-Instruct.Q4_K_M.gguf」を llama.cpp と同じディレクトリにある models に配置します。以下のコマンドを実行します。


$./build/bin/llama-cli -m ../models/Meta-Llama-3-8B-Instruct.Q4_K_M.gguf -p "I believe the meaning of life is" -n 128


 以下の結果が表示されます。


--- response ---

Log start
main: build = 3755 (822b6322)
main: built with Apple clang version 15.0.0 (clang-1500.3.9.4) for x86_64-apple-darwin23.6.0
llama_model_loader: loaded meta data with 27 key-value pairs and 291 tensors from
../models/Meta-Llama-3-8B-Instruct.Q4_K_M.gguf (version GGUF V3 (latest))
llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output.
llama_model_loader: - kv 0: general.architecture str = llama
llama_model_loader: - kv 1: general.type str = model
llama_model_loader: - kv 2: general.name str = Models
llama_model_loader: - kv 3: general.size_label str = 8.0B
llama_model_loader: - kv 4: general.license str = llama3

--

I believe the meaning of life is to find your passion and pursue it with all your heart. Whether it's a creative
pursuit, a career, or a hobby, the most important thing is to be doing something that brings you joy and fulfillment.

I also believe that the key to a happy and fulfilling life is to be true to yourself and live authentically. This means
being honest with yourself and others about who you are and what you want, and not trying to fit into someone else's
mold or expectations.

Ultimately, the meaning of life is a personal and subjective thing, and what brings meaning and purpose to one person's
life may be different for another. I believe
llama_perf_sampler_print: sampling time = 24.73 ms / 136 runs ( 0.18 ms per token, 5498.28 tokens per second)
llama_perf_context_print: load time = 3186.75 ms
llama_perf_context_print: prompt eval time = 1603.11 ms / 8 tokens ( 200.39 ms per token, 4.99 tokens per second)
llama_perf_context_print: eval time = 51880.52 ms / 127 runs ( 408.51 ms per token, 2.45 tokens per second)
llama_perf_context_print: total time = 53550.01 ms / 135 tokens
Log end


 プロンプトが "I believe the meaning of life is" となっているので、その続きの文章を書いてくれました。

 以上見てきたように、MetaーLlaMa のメリットは、LLM のソースコードをダウンロードし、目的に特化したトレーニングを行い、エッジ・デバイスや軽量な PC などでローカルな LLM を独自に構築して、運用できることです。続きは、このページにあります。


日本語大規模言語モデルの利用


 利用可能な日本語大規模言語モデルのリストは、awesome-japanese-llm というサイトに紹介されています。海外モデル(Llama 2 ,3 、 Mistral や GPTなど)に日本語で追加事前学習を行ったモデルの代表的なものは、Llama-3.1-70B-Japanese-Instruct-2407 Llama 3 Swallow llama-3-youko-70b-instructLlama-3-ELYZA-JP-70Bなどです。

 フルスクラッチで事前学習した日本語LLMモデルには、stockmark/stockmark-100b-instruct-v0.1 Tanuki-8x8B-dpo-v1.0 cyberagent/Llama-3.1-70B-Japanese-Instruct-2407などがあります。

 ここでは、無料でアクセス可能な webdemo を提供している日本語LLMを使用してみます。 最初に、 GENIAC 松尾研 LLM開発プロジェクトで開発されたLLMである weblab-GENIAC/Tanuki-8B-dpo-v1.0 を利用してみましょう。webdemo がHugging Face にありますので、それを利用します。Hugging Face のwebdemo ページに行きます。「Tanuki-8B-dpo-v1.0」のchatbot ページになります。「type a message」の欄にプロンプトを入力します。「フィボナッチ数列を出力するpythonコード書いてください」と入力しました。Temperature、Max new Tokuns などはデフォルトのままにました。「Submit」をクリックすると、以下のPython コードが表示されました。


--- response ---

def fibonacci_sequence(n):
    # 初期条件を設定
    fib_sequence = [0, 1]

    # フィボナッチ数列を生成
    for i in range(2, n):
        next_value = fib_sequence[-1] + fib_sequence[-2]
        fib_sequence.append(next_value)

    return fib_sequence

# ユーザーから生成したいフィボナッチ数列の長さを入力
n = int(input("Enter the length of the Fibonacci sequence: "))

# フィボナッチ数列を生成
fib_sequence = fibonacci_sequence(n)

# 結果を出力
print("Fibonacci sequence up to", n, "elements:")
for num in fib_sequence:
    print(num, end=" ")


 上記のコードを Jupyter Notebook などで実行します。"Enter the length of the Fibonacci sequence: " と表示されますので、例えば、20 と入力すると、以下の結果が出ます。


Fibonacci sequence up to 20 elements:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181


 ということで、エラーが出ない正常なpythonコードを書いてくれました。

 次に、「z世代とは何ですか」とプロンプトに書きました。以下のような返答がありました。


--- response ---

「z世代」とは、主に2000年代初頭から2010年代にかけて生まれた世代を指します。この世代は、インターネットやデジタル技術の普及とともに成長し、その影響を強く受けて育ちました。具体的には、1990年代後半から2000年代初頭に生まれた人々が中心で、現在18歳から35歳くらいまでの年齢層が含まれます。
z世代は、デジタルネイティブとして生まれ育ち、スマートフォンやソーシャルメディア、ストリーミングサービス、クラウドコンピューティングなど、デジタル技術を日常的に利用しています。そのため、情報の取得やコミュニケーションの方法が従来とは大きく異なり、オンラインでの自己表現やコミュニティ形成が重視される傾向があります。また、環境意識や社会的公正に対する関心が高く、持続可能性や多様性に対する理解も深いとされています。
さらに、z世代は多様な文化や価値観を受け入れやすく、グローバルな視野を持つことが多いとされています。彼らは新しいテクノロジーやトレンドに対して敏感であり、イノベーションやクリエイティブな活動にも積極的です。このように、z世代は現代社会において重要な役割を果たしており、その特性や価値観がさまざまな分野で影響を与えています。


 さすがに、日本語の処理がスムーズだと思います。

 次に、Llama 3で日本語の追加学習をしたLLM、Llama-3-ELYZA-JP-70B を使用しましょう。この700億パラメータのモデルは、日本語の生成能力に関するベンチマーク評価 (ELYZA Tasks 100、Japanese MT-Bench) で「GPT-4」を上回る性能を達成したと言われます。無料で利用可能なデモが用意されているので、それを利用しましょう。 ELYZA LLM for JP のサイトに行きます。「AIアシスタントに依頼」の欄にプロンプトを記入します。

 少しむずかしい(?) Python コードをお願いしました。「Yolov8を用いてwbcamからの映像で物体検出をするpythonコードを書いて下さい。」とプロンプトに書き込みました。以下がその返答です。


--- response ---

以下は、Yolov8を用いてwebcamからの映像で物体検出をするpythonコードです。

import cv2
import numpy as np
import torch

# モデルの読み込み
model = torch.hub.load('ultralytics/yolov8', 'yolov8s', pretrained=True)

# カメラの読み込み
cap = cv2.VideoCapture(0)

while True:
    # フレームの読み込み
    ret, frame = cap.read()
    
    # 画像の前処理
    img = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
    results = model(img)

    # 検出結果の描画
    for i in results.xyxy[0].tolist():
        x1, y1, x2, y2, conf, cls = i
        cv2.rectangle(frame, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 2)
        cv2.putText(frame, f'{results.names[int(cls)]} {conf:.2f}', (int(x1), int(y1)-10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)

    # フレームの表示
    cv2.imshow('frame', frame)

    # 'q'キーで終了
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 後処理
cap.release()
cv2.destroyAllWindows()

このコードでは、Yolov8のsサイズのモデルを使用して、webcamから取得した映像をリアルタイムで物体検出しています。検出結果は、検出された物体のバウンディングボックスとクラス名、信頼度をフレームに描画しています。


 残念なことに、このコードを実行するとエラーが出ます。まず、モデルの読み込みのラインでエラーが出ます。yolov8 は torch.hub では読み込めません。
from ultralytics import YOLO
model = YOLO('yolov8n.pt')
とします。この後も、PyTorch の形式で処理を行っている「for i in results.xyxy[0].tolist():」で「xxyy[0]」という属性はありませんというエラーが出ます。

 このことは Llama 3 の学習データには、Yolov8 を利用することに関する詳しい知識が含まれていないことを示しています。

 最後に、文章作成のためのプロンプトを記入してみましょう。「プレゼン資料を作成するための要点を教えて下さい。」と書きました。以下がその返答です。


--- response ---

プレゼン資料を作成するための要点は以下の通りです。

1. 目的を明確化する: プレゼンの目的は何なのかを明確化することが大切です。目的が明確になっていないと、資料の作成に迷いが生じ、聞き手にも伝わりにくくなります。
2. 対象者を特定する: プレゼンの対象者は誰なのかを特定することが大切です。対象者が明確になっていないと、資料の内容やレベルがズレてしまい、聞き手が理解しにくくなります。
3. メッセージを絞る: プレゼンで伝えたいメッセージを絞ることが大切です。メッセージが多すぎると、聞き手が混乱してしまい、肝心な部分が伝わりにくくなります。
4. ストーリーを作る: プレゼンはストーリー形式で作ることが効果的です。ストーリー形式にすると、聞き手が理解しやすく、興味を引くことができます。
5. デザインを考える: プレゼン資料のデザインはシンプルかつわかりやすくすることが大切です。色使いやフォント、イラストやグラフの使用などを考慮して、聞き手が見やすく、理解しやすいデザインにしましょう。
6. 時間配分を考える: プレゼンの時間は限られています。時間配分を考えて、資料を作成することが大切です。重要な部分に時間を割き、聞き手が理解しやすいように進めましょう。
7. リハーサルする: プレゼンのリハーサルは必須です。リハーサルをして、資料の内容や時間配分、話し方などを確認し、聞き手が理解しやすいように調整しましょう。


 流石に、返答速度が早いです。内容もよく理解できる構成になっています。

 以上の例からも理解できるように、オープンソースの日本語大規模言語モデルが開発されていますので、ローカルなPCで便利で高性能な chatbot を構築できるようになってきました。ただ、Pythonなどの言語で、エラーの出ないプログラムを開発させることは簡単ではないようです。プロンプトを相当詳細に記述する必要があります。


このページの先頭に戻る

トップページに戻る