使って比較してみた感想を記事にします。70B」が公開されています。Llamaは、メタ社が開発したコード生成専用のLLMで、最高水準(SOTA:state-of-the-art)を達成しています。2モデルをベースに、500Bトークン(≒5000億単語)のプログラムに特化させた学習データを使っています。Llamaでできることは3つです。自然言語の命令(プロンプト)からプログラミングプログラム関連の質問に答える1.プログラムの補完は、「穴埋め」のようなものですね。Llamaが完成させてくれるイメージです。2.自然言語の命令(プロンプト)からプログラミングに関して。「フィボナッチ数列のプログラム書いて」と命令したら、それに沿ったプログラムを出力してくれます。3.プログラム関連の質問に答えるに関して。データ分析に利用するライブラリに迷っている場合、質問をしたら「Pandasのライブラリは使いましょう」と教えてくれるようなものです。モデルも3種類あります。パラメータサイズが異なるものが複数あるので合わせてご説明します。自然言語の命令(プロンプト)からプログラミングプログラム関連の質問に答えるプログラムの補完(ただし、34Bはその目的で学習されていない)さらに、学習時には、16kトークン(≒16,000単語)という比較的長いデータを利用しているんだとか。そのため、100kトークン(≒100,000単語)の入力に対しても高い精度で回答を出せるとのこと。実務で使うプログラムは行数が多いので、かなり実用的なモデルなのではないでしょうか。それでは、導入方法を見ていきましょう!なお、軽量化されたLiteLlamaついて詳しく知りたい方は、下記の記事を合わせてご確認ください。Llamaはオープンソースではありません。Llamaのライセンスを確認すると、Llama2に準拠しているようです。https://github.com/facebookresearch/llama/blob/main/LICENSE上記ライセンス文の中に下記のような文章があります。ライセンス権および再配布。ロイヤリティフリーの限定ライセンスを付与されます。コピー、派生作品の作成、およびLlama資料への変更を行う権利が含まれます。2のバージョンリリース日に、ライセンシーまたはライセンシーの関連会社によって提供される製品またはサービスの月間アクティブユーザーが、前カレンダー月に700百万を超える場合、あなたはMetaからライセンスを要求しなければなりません。Metaは、その単独の裁量により、あなたにそのような権利を付与することができます。Metaが明示的にそのような権利を付与しない限り、あなたは本契約の下でのいかなる権利も行使することができません。1.ライセンス権及び再配布の項目にて、「Metaが所有する権利の下で.....ロイヤリティーフリーの限定ライセンスを付与されます」とあります。Metaの権利下という範囲の中でなら限定ライセンスと言う形で使っていいよ、ということになります。2.追加の商業的条件にて、月間のアクティブユーザーが700百万、つまり7億を超えるとMetaとライセンス契約を結ばないといけない、とも記載されています。ややこしい感じですが、CodeLlamaは完全なオープンソースではなく、Meta社の権利下にあり場合によってはライセンス契約などを求められる可能性がある、ということをご理解ください。詳しくは上記URLよりご確認いただいた上でCodeLlamaを利用してください。Colabでの利用方法をご紹介します。AIのページをクリック。moment...右下のセレクトボックスで「codellma-34b-instruct」を選択します。anything...の部分)に指示を入力します。日本語で入力してもOKです。Colabでの利用方法GoogleColabでは下記のスペックで実践しました。Pro・GPU:V100・メモリ:ハイメモリまず、Gitから必要パッケージをダウンロードします。accelerate次にモデルとトークナイザーの準備を行います。device_map="auto",)最後に各種設定と実行する部分を書き加えて完成です。{seq['generated_text']}")「ここにプロンプトを入力します」の部分に指示したいプロンプトを入れてください。print(bubble_sort(arr))```「“`python」から「“`」までが出力されたプログラムです。設定の「max_length=200」を変更すれば出力される文字数を増やすことも可能です。Codeと比較実験をしてみました。Codeの基本情報は以下のとおりです。可また、実験に使った題材は、競技プログラミングの問題です。以下のような結果になりました。Llama、さすがですね!それでは詳細を確認していきましょう。問題1:フィボナッチ数列を計算する以下のような問題があります。この問題においては、与えられた整数Nに対し、フィボナッチ数列のN番目の数値を返すプログラムを作成します。ここでフィボナッチ数列とは、前の二つの数の和が次の数になる数列のことを指します。次のようなプロンプトをそれぞれに入力しました。Llama出力したプログラムは以下。print(fib(n))実際に実行してみた様子です。Code出力したプログラムは以下。int(input())print(fibonacci(n))実行してみた様子はこちらです。こちらも正しく動きました!問題2:割り切れるか判断する以下のような問題があります。この問題では、1からNまでの数を並び替えて、その要素の積を「prod」と、要素の和を「sum」とします。与えられた正の整数Nに対して、「prod」が「sum」で割り切れるかどうかを判断する問題です。入力はテストケース数と各テストケースのNの値で、出力は「YEAH」か「NAH」です。次のようなプロンプトをそれぞれに入力しました。Llama出力したプログラムは以下。print(check_divisibility(n))正しく動きました。問題にもあったように、入力から値を取得しています。割り切れるかチェックするcheck_divisibility()関数のアルゴリズムも正しいです。Code出力したプログラムは以下。print("NAH")失敗しました。問題の意図にあってなく、入力を受け付けてません。割り切れるかチェックするisDivisible()のアルゴリズムもおかしいです。問題3:入力された文字列からダブりを削除する以下のような問題があります。与えられた文字列(input関数を用いて)から重複する文字をすべて削除します。最終的な出力文字列には、各文字が1回だけ含まれます。文字列内の各文字の順序はそのままである必要があります。文字列を一度だけ走査できます。次のようなプロンプトをそれぞれに入力しました。Llama出力したプログラムは以下。print(remove_duplicates(string))正しく動きました。input関数を用いて、入力を受け取ってstring型で出力しています。ダブっている文字列を削除するアルゴリズムも要件通りになっています。Code出力したプログラムは以下。Testprint(remove_duplicates("geeksforgeeks"))失敗しました。Input関数で入力を受け取ってないですし、ダブりを消す関数でエラーを出しています。以上で、実際にやってみたパートは終了です。Llamaについてまとめてみました。Llamaは、Meta社が開発したコード生成LLMです。2というLLMをベースに、500Bトークン(≒5000億単語)のデータを学習。その結果、最高水準(SOTA:state-of-the-art)を達成しています。Llamaができることは3つ。自然言語の命令(プロンプト)からプログラミングプログラム関連の質問に答える長文の入力でも精度が出るように開発されているため、かなり実用的なモデルです。AIのページからアクセスして、プロンプトを入力しましょう。ColabでGitから必要パッケージをダウンロードして使用することが可能です。Code(同様のLLM)と比較してみました。Llamaが生成したプログラムはすべて動き、精度の高さを証明しました。Llamaを開発したMetaについて詳しく知りたい方は、下記の記事を合わせてご確認ください。・自社専用のAIチャットボットの開発などの開発実績がございます。「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。生成AIを社内で活用していきたい方へ「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。セミナー内容や料金については、ご相談ください。サービス紹介資料もご用意しておりますので、併せてご確認ください。フリーランスのWebライターとして活動。これまでさまざまなAIツールを使ってきた経験を基に、AI技術の最新情報や使用方法に関する記事を執筆。個人でもメディアを運営中。集計期間:1週間まだデータがありません。高いAIプロフェッショナル集団」を目指して私たちは、AIに関わるすべての人に向けて、透明性の高い適切な情報発信と開発を行います。「WEELは、一番地に足ついたAI情報を教えてくれる」と思っていただけるよう、透明性高い事業運営を行なって参ります。透明性の高い適切な情報発信と開発を行います。透明性高い事業運営を行なって参ります。