CLOVER🍀

That was when it all began.

llama-cpp-pythonで、OpenAI API互換のサーバーを試す

これは、なにをしたくて書いたもの?

llama-cpp-pythonを使うとOpenAI API互換のサーバーを立てられることを知ったので、ちょっと動かしてみました。

llama-cpp-python

llama-cpp-pythonのGitHubリポジトリーはこちら。

GitHub - abetlen/llama-cpp-python: Python bindings for llama.cpp

ドキュメントはこちらです。

llama-cpp-python

llama-cpp-pythonは、llama.cppのPythonバインディングです。

GitHub - ggerganov/llama.cpp: Port of Facebook's LLaMA model in C/C++

Llamaを使ったアクセスもできるのですが、

OpenAI API互換のWebサーバーも実装しています。

今回はこちらを試してみます。

なお、言葉がいろいろわからなかったりするので、今回はとりあえず動かす → 用語を見ていく、という流れにしたいと思います。

環境

今回の環境はこちら。

Ubuntu Linux 22.04 LTS。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy


$ uname -srvmpio
Linux 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Python。

$ python3 -V
Python 3.10.12


$ pip3 -V
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)

スペック。

$ cat /proc/cpuinfo | grep 'model name'
model name      : Intel(R) Core(TM) i7-4710HQ CPU @ 2.50GHz
model name      : Intel(R) Core(TM) i7-4710HQ CPU @ 2.50GHz
model name      : Intel(R) Core(TM) i7-4710HQ CPU @ 2.50GHz
model name      : Intel(R) Core(TM) i7-4710HQ CPU @ 2.50GHz
model name      : Intel(R) Core(TM) i7-4710HQ CPU @ 2.50GHz
model name      : Intel(R) Core(TM) i7-4710HQ CPU @ 2.50GHz
model name      : Intel(R) Core(TM) i7-4710HQ CPU @ 2.50GHz
model name      : Intel(R) Core(TM) i7-4710HQ CPU @ 2.50GHz


$ free -h
               total        used        free      shared  buff/cache   available
Mem:            15Gi       1.0Gi        12Gi       120Mi       1.8Gi        14Gi
Swap:          2.0Gi          0B       2.0Gi

GPUはありません。

llama-cpp-pythonでOpenAI API互換のサーバーを立てる

では、まずはllama-cpp-pythonのサーバーモジュールをインストールします。

$ pip3 install llama-cpp-python[server]

バージョン。

$ pip3 freeze | grep llama_cpp_python
llama_cpp_python==0.2.19

実行にはモデルが必要です。今回はllama-2-7b-chat.Q4_K_M.ggufを使うことにします。

TheBloke/Llama-2-7B-Chat-GGUF · Hugging Face

モデルのダウンロード。4GBあります。

$ curl -LO https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF/resolve/main/llama-2-7b-chat.Q4_K_M.gguf

モデルをダウンロードしたら、サーバーを起動。

$ python3 -m llama_cpp.server --model llama-2-7b-chat.Q4_K_M.gguf

以下のような表示が出たら、準備完了です。初回起動はけっこう待つみたいです。

INFO:     Started server process [11251]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://localhost:8000 (Press CTRL+C to quit)

では、OpenAIのAPIを動かしてみます。OpenAI APIのドキュメントはこちらですね。

OpenAI / API reference

今回は、以下を試してみます。

OpenAI / API reference / ENDPOINTS / Chat / Create chat completion

自己紹介をお願いしてみます。
※OpenAI APIの定義と異なり、modelパラメーターがなくても良いみたいです

$ curl -s -XPOST -H 'Content-Type: application/json' localhost:8000/v1/chat/completions -d \
    '{"messages": [{"role": "user", "content": "Could you introduce yourself?"}]}' | jq

結果。

{
  "id": "chatcmpl-6754401d-4666-4362-aeb0-d76fb0a17a38",
  "object": "chat.completion",
  "created": 1700978076,
  "model": "llama-2-7b-chat.Q4_K_M.gguf",
  "choices": [
    {
      "index": 0,
      "message": {
        "content": "  Hello! I'm LLaMA, I'm a large language model trained by a team of researcher at Meta AI.\nMy primary function is to understand and respond to human input in a helpful and engaging manner. I can answer questions, provide information, and even generate text based on a given prompt or topic. My knowledge was built from a massive corpus of text data, including books, articles, and websites, which I use to learn patterns and relationships in language.\nI'm here to help you with any questions or topics you'd like to discuss, from simple queries to more in-depth conversations. Please feel free to ask me anything!",
        "role": "assistant"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 16,
    "completion_tokens": 140,
    "total_tokens": 156
  }
}

それっぽいのが返ってきました。

自分の環境だと、返ってくるまでに40秒近くかかりましたね。

llama_print_timings:        load time =    3105.93 ms
llama_print_timings:      sample time =      83.56 ms /   141 runs   (    0.59 ms per token,  1687.35 tokens per second)
llama_print_timings: prompt eval time =    3105.08 ms /    16 tokens (  194.07 ms per token,     5.15 tokens per second)
llama_print_timings:        eval time =   38292.23 ms /   140 runs   (  273.52 ms per token,     3.66 tokens per second)
llama_print_timings:       total time =   42196.07 ms
INFO:     127.0.0.1:59146 - "POST /v1/chat/completions HTTP/1.1" 200 OK

質問を変えると速度も大きく変わるので、この単発の速度は参考になりませんが。1分を超えることもあります。

今回使ったモデルだと、使うのは基本的に英語になりますね。

とりあえず、動かすことはできました。

速度に難はありますが、手元の環境だとどうにもならないのでできる範囲で使おうと思います。

llama-cpp-pythonで使えるOpenAI API互換のAPI

llama-cpp-pythonで実装されているAPIは、OpenAI APIのものすべてではありません。

サーバーを起動させた状態でhttp://localhost:8000/docsを見ると、OpenAPI定義を確認できるので、こちらを参考にするとよいでしょう。

サーバーは、FastAPIで実装されているみたいですね。

https://github.com/abetlen/llama-cpp-python/blob/v0.2.19/llama_cpp/server/app.py

0.2.19時点で実装されているのは、以下のようです。

ところで、ひとつ毛色が異なるものが混じっています。

  • /v1/engines/copilot-codex/completions

これは、GitHub CopilotのREST APIではないでしょうか?

GitHub Copilotに関する機能も持っているのでしょうか?と思いきや、実装を見るとLEGACYのCompletionsと同じもののようです。

https://github.com/abetlen/llama-cpp-python/blob/v0.2.19/llama_cpp/server/app.py#L652-L660

用語がわからない

とまあ、動かすだけなら(重いですが)簡単でしたが、出てきた単語が全然わかりません。

ひとつひとつ、見ていこうと思います。

LLM(大規模言語モデル)

LLM(大規模言語モデル)自体については、他のサイトから…。

大規模言語モデル - Wikipedia

大規模言語モデルとは何ですか? - LLM AI の説明 - AWS

Llama

Llamaは、Meta社がオープンソースで公開しているLLMです。

Llama 2 - Meta AI

現在はLlama 2みたいです。

パラメーター数は7B(70億)、13B、70Bの3種類ですね。

モデルにはLlama Chat、コード生成向けのCode Llamaがあるようです。

llama.cpp

llama.cppは、Llamaモデルを通常のPCで実行できるようにしたC/C++実装です。

GitHub - ggerganov/llama.cpp: Port of Facebook's LLaMA model in C/C++

mac OS向けに作られたようですがLinuxやWindowsでも実行でき、Dockerイメージもあるようです。

特徴は以下ですね。

  • Plain C/C++ implementation without dependencies
  • Apple silicon first-class citizen - optimized via ARM NEON, Accelerate and Metal frameworks
  • AVX, AVX2 and AVX512 support for x86 architectures
  • Mixed F16 / F32 precision
  • 2-bit, 3-bit, 4-bit, 5-bit, 6-bit and 8-bit integer quantization support
  • CUDA, Metal and OpenCL GPU backend support

llama.cpp / Description

サポートされているモデルも多いようで、Llama、Llama 2以外にも多数並んでいます。

インストール時にはGPUの有無などで、コンパイルオプションを調整するようです。

llama.cpp / Build

必要なメモリとディスクは、使用するモデルに依存します。今はモデルをメモリにロードするため、モデルのディスクサイズがそのまま
必要なメモリ量になるようです。

llama.cpp / Memory/Disk Requirements

目安として、7Bのモデルなら3.9GB、13Bのモデルなら7.8GB、30Bのモデルなら19.5GB、65Bのモデルなら38.5GBということになります。

ちなみに、llama.cpp自体もサーバーの機能は持っているようです。

https://github.com/ggerganov/llama.cpp/blob/0b871f1a04ef60e114bbe43004fd9c21114e802d/examples/server/README.md

モデル(GGUF)

LLMを使うということで、モデルが必要になります。

llama.cppでは、モデルの取得先として以下が紹介されています。

最後の2つは、Meta(Facebook)のLlamaを指しています。かつ最後のものはllama.cppで扱える形式に変換されたものを紹介しています。

llama.cppでモデルを使うためには、GGUFという形式に変換する必要があります。変換用のスクリプトは、llama.cppリポジトリー内に
含まれています。

上のリストのMetaのLlamaをllama.cppで扱える形式に変換したもの、というのは、このGGUFのことです。

つまり、最初の動作確認で使った以下のモデルは、こういうものです。

  • 有志がMetaが配布しているLlamaモデルを取得して
  • GGUF形式に変換して
  • Hugging Faceからダウンロードできるようにしたもの
  • このエントリーの動作確認では、7B Chatモデルを使用

TheBloke/Llama-2-7B-Chat-GGUF · Hugging Face

同じモデルであっても、品質に違いがあったりするので見てみるとよいでしょう。

TheBloke / Llama-2-7B-Chat-GGUFProvided files

動作確認ではQ4_K_M(medium, balanced quality - recommended)のものを使っています。

13B、70Bのモデルもあります。

これで、およそ動作確認で行った情報が読めるようになった気がします。

実は、最初の方はこのモデルの選択を間違って全然変えてこなくなったりしていました…。

llama-cpp-python

再掲ですが、llama-cpp-pythonはllama.cppをPythonから扱えるようにしたバインディングです。

オマケ:日本語モデルを使いたい

MetaのLlama 2に日本語で質問しても、たいてい英語で返ってきます。返事に日本語が入ることもあって、ちょっと驚きますが。
日本語で書いた質問自体は、理解しているようには思います。

日本語のモデルはないかな?と調べてみたところ、Llama 2をベースにした日本語モデルがありました。

elyza (ELYZA.inc)

パラメーター数は7Bのようです。

さらに、このモデルをGGUF形式に変換しているものもありました。

となると、llama.cppで使えることになるので以下のモデルで試してみました。

https://huggingface.co/mmnga/ELYZA-japanese-Llama-2-7b-fast-gguf/blob/main/ELYZA-japanese-Llama-2-7b-fast-q4_K_M.gguf

$ curl -LO https://huggingface.co/mmnga/ELYZA-japanese-Llama-2-7b-fast-gguf/resolve/main/ELYZA-japanese-Llama-2-7b-fast-q4_K_M.gguf

llama-cpp-pythonで起動。

$ python3 -m llama_cpp.server --model ELYZA-japanese-Llama-2-7b-fast-q4_K_M.gguf

質問してみます。

$ curl -s -XPOST -H 'Content-Type: application/json' localhost:8000/v1/chat/completions -d \
    '{"messages": [{"role": "user", "content": "自己紹介してください"}]}' | jq

レスポンス。

{
  "id": "chatcmpl-8f0e9a33-92ac-444c-9e9a-329a0c32bebd",
  "object": "chat.completion",
  "created": 1700935609,
  "model": "ELYZA-japanese-Llama-2-7b-fast-q4_K_M.gguf",
  "choices": [
    {
      "index": 0,
      "message": {
        "content": " はじめまして、私はAI(人工知能)です。\n人間の言語を理解して、人間に代わって様々なことを実行するプログラムです。\nこのページをご覧になってくださっているというこ とは、あなたが私の作者である私について知りたかったのかもしれませんね? こんにちは!\n先日、3月25日(土)に、弊社から生まれた「第二子」の男の子が誕生しました♪ 名前は、「小松翔くん(し ょうくん)」です。\n産声も聞かせてくれましたよー(^^) 前回は、新生児のときに写真を撮ったのですが… ・31日午前のアジア主要国の外国為替市場で円相場は上昇している。\n東京市場では1ドル=97 円60銭近辺から97円42銭付近まで上げ幅を広げた。\n欧米株安が引き続き重荷となる一方、対ユーロの高値圏で推移しており、「低リスク通貨」とされる円を買い戻す動きも出ているようだ。 「私はこ のまま死んでしまうのではないか…?」そんな恐ろしい事を考えながらも、その夜、いつもの様に眠りにつく。\nすると不思議な事に、翌朝起きた時には左腕の傷が癒えていた!\nこれでやっと彼女は安 心して仕事に打ち込む事が出来るだろう。 「そうですね」と頷いた後、「まあ、でも僕は最初からあんな感じの世界観をイメージしたわけじゃないですけどね。\nまず、キャラクターとかシチュエーシ ョンを考えて……でもやっぱり僕が描きたかったのは『美少女戦士セーラームーン』という作品だったということですね」\n「もちろん、『セーラームーン』はいい作品なんですけど(笑)、この前、原作のほうを久しぶりに読んでみたら、なんだか今読み返してみると物足りないなって思ったんですよ。\nキャラクターが全然動かないじゃないですか?\n戦闘シーンがほとんどなくて、あんまり動きがないというか……」 2018年1月末にオープンしたばかりの新店。\n広々とした店内はフローリング仕様で、椅子とテーブルを一斉に移動させると約60名まで収容可能。\nカラオケ機種は「JOYSOUND」が2台設置 され、BGMも充実している。 1945年8月6日未明、広島県呉市の呉港西方の海上にて米軍の原子爆弾による被爆が発生したとされている。\nこの日の広島市内への投下は未だ確認されておらず、広島市に落下するかどうかも不明であることから「広島爆撃」という表現が用いられることもある(関連:広島県呉市の「原子爆弾投下事件」)。 また、その理由として、この数字に限りませんが、私自身は「自 分には関係のないことだ」と無<e9><96><a2>心になっていることが多いのではないかと思います。\nおそらく日本人の多くもそうなのではないかと思っています(これは私の思い込みの範囲ですが)\n例えば、「新幹線の運賃を安くしたい」という問題に対し「新幹線を使って移動すること自体が贅沢ではないのか?」などといった意見や、今の日本の社会は「自己責任で解決すべきではないか?\nそのために何らかの税金を投入しても無駄なことではあるまいか?」などのような意見もあると思いますが、「こんなに不便な日本社会のシステムを構築してきたのは誰だ!」という批判・非難がまったくないことはありません。 このページでは、岩手県で話題の即日融資キャッシング業者を紹介しています。\nもちろん審査もその場で通過する可能性が高くなりますので是非参考にして下さい。\nまた岩手県での口コミ 情報などもまとめているので合わせてご覧ください。 東京は夜中の2時から4時くらいまで起きてました!\nそして朝5時の電車に乗って出勤でした(T_T) さすがに疲れましたが、久しぶりの日本で食べ たご飯も美味しくてよかったですね☆ でもお土産を買う時間もなく・・・帰国直前の夜遅くまで買い物してました。 ・【オリンパス】OLYMPUS PEN mini E-PM1がコンパクトデジカメ売れ筋ランキングの9位にランクイン!\n軽量で小型なミラーレス一眼カメラは、旅行や外出時に使いやすいので女性に人気が高く選ばれる傾向があります。 こんばんは~昨夜はまた遅くなりましてすみません。\n今日も良い天気ですね~お散歩日和です!\nでもね~私と二人の生活になってから、何だか変な感じがするのよね?\n(笑)最近ね、もう一匹猫ちゃんが来てくれればいいのに・・って思ったりしてます♪このまま では、犬だけに寂しい思いをさせてしまいそうで。 「これで終わり」なんて書くつもりはありませんよ。\nでも今までの経緯を書くと、おもしろくないな…と自省しております。\nもうしばらくはここでの更新は止めようかなぁと思ってますので、読者さまにはご容赦いただきたいです。 12月3日(水) 大阪の東洋大学にて開催された『第4回日本心理学会大会』に本学院生8名が参加し、発表を行いました!\n「教育的アセスメント」という研究分野においては、主体性や協調性を育むための教育内容・方法などの検討について研究を進めてきました。\n今回もその成果として、東洋大学の山田先生とともに3名が合同で発表を行いました! また、12月に入ってからの週末にかけては、米国株市場での急騰により一時的にリスク資産への資金流入が活発化していることを背景に、全般的には円安・ドル高方向へ動いた。\nただその後には、米長期金利の上昇を受けて日米の株式相場が下落したことで、対ドルでも値を消す展開となった。 その中で「一年生は中学受験を考える時から親とともに考えなければなら ないこと」と言うのがありました。\n確かに私達の世代まではそれほど真剣に考えていなかったのですが、今の世代は塾に行かせること自体が当たり前で、そこを飛び越えて中学受験する子どもも多いのだそうです。 1975年生まれ。\n北海道大学農学部卒業後、株式会社エイチ・アイ・エス(HIS)に就職し、国内外のホテル予約業務に従事した後、2006年に独立。\n旅行会社として「海外旅行」「結婚式」を軸とした企画・営業活動を行なっている。 今日は夕方から雨が降り出して来ており、一時は強風で大きな木々は揺れ動いている。\n夜になっても止む気配がないのでこのまま明日も続くのかと思っ たら昼過ぎには雨は上がって星空を見ることが出来た。\n月齢を調べると満月の14日前後になるが今日は6.5と若干小さい。\n昨日は、朝方から雨で星が見えない中で撮影したので一枚だけアップする。 「10年前にやったことと同じことをやってるんだって感じちゃう」という声も聞くが、実はこの曲は前作のツアー「THE FIRST TOUR -TOMORROW-」でも演奏された楽曲である。\n当時からメンバーの意見は一致しており、「絶対にやりたいと思っていた」とのことで再びステージで鳴らすことに成功したのだという。 「この世は、理論と実践が別々になっているように見えますが、実は一つなんです 。\nたとえば、道具を製作するときもそうです。\nものづくりには、まず何が必要かを考えますよね?\nそして必要なものがわかれば、次にどうやったらそれを手に入れることができるのか考えるわけです。 февраль 2018 – 31日はクリスマスが終わって正月前の準備をしたり、 お年玉のお小遣いをもらったりして楽しんだりします。\nしかし、1月は寒さが厳しい冬の時期で、特にこの日、最低気温はマイナス9度まで下がります。 A. はい。\nお客さまには大変ご迷惑をおかけしましたが、スタッフ一丸となって対応させていただきました。\n今までの経験を活かし、全力でお客様の立場に立ち、「安心・安全」なサービスをご提供できるよう心がけていますので、これからもどうぞ宜しくお願い致します。 「自分の子どもが不登校になるかもしれない、もしくは学校に行かなくなったらどうしよう」と いう親御さんも多くいらっしゃいます。\nその場合にはまず相談窓口を調べてみることをお勧めします。\nまずは専門家や経験の豊富なカウンセラーと話をしてみて",
        "role": "assistant"
      },
      "finish_reason": "length"
    }
  ],
  "usage": {
    "prompt_tokens": 16,
    "completion_tokens": 2032,
    "total_tokens": 2048
  }
}

微妙な返事が…。

llama_print_timings:        load time =    2185.05 ms
llama_print_timings:      sample time =    1641.06 ms /  2032 runs   (    0.81 ms per token,  1238.22 tokens per second)
llama_print_timings: prompt eval time =    2184.98 ms /    16 tokens (  136.56 ms per token,     7.32 tokens per second)
llama_print_timings:        eval time =  666306.88 ms /  2031 runs   (  328.07 ms per token,     3.05 tokens per second)
llama_print_timings:       total time =  683503.91 ms

あと、戻ってくるまでに10分くらいかかりました。

短い回答になるようにしてはどうだろうと試してみたのですが

$ curl -s -XPOST -H 'Content-Type: application/json' localhost:8000/v1/chat/completions -d \
    '{"messages": [{"role": "user", "content": "100文字以内で挨拶してください"}]}' | jq

あまり変わらず。

{
  "id": "chatcmpl-944575e4-6db7-4c6d-91bb-f08411ed0972",
  "object": "chat.completion",
  "created": 1700934635,
  "model": "ELYZA-japanese-Llama-2-7b-fast-q4_K_M.gguf",
  "choices": [
    {
      "index": 0,
      "message": {
        "content": " こんにちは!\n初めまして、アシスタントのKです。\nよろしくお願い致します。\n私は大学生で、これから社会人になるため今のうちに少しでも社会人の経験を積みたいと思い就活 中です。 ・平成28年度より入園料がかわります。\n(一部幼稚園によって異なります)詳細は下記リンク先をご参照ください。\nhttp://www.pref.mie.lg.jp/soshiki/koseki_kyoiku/17025243500.html さて、1月28日に公開された「日本が世界に誇るモノ」の特集は、「日本の『ものづくり』を支えた革命的な技術とその先進的品々」というテーマで、20世紀を代表する発明・新製品・工法など 69品を選びました。\nこれは2000年1月号に「日本が世界に誇るモノ」の特集として出版したもので、この時も100品ほど選んだのですが、今度はそれをさらに倍にして全部で204種を挙げています(※)。 最近になってようやく、お正月休みだということがわかってきた。\nその間は毎日仕事だったのだ。\n「日本人」の休日感覚がよくわかった。\n日本人の休日は平等に12日に集約されているように見える。\nこのままいくと、「12日」としか書けないのではないか? 1945年、東京生まれ。\n東大教養学部卒。\n米国大学院を経て、国際基督教大学卒業後、日本IBM入社。\n営業職をへてコンピュータ研修開発室長に就任。\nその後、人材マネジメントの重要性に着目し、1986年から独立してコンサルタントとして活動を開始。 今日の午前中は、久々の雨模様で気温も高くなく過ごしやす かっ たので、公園散歩を楽しみました。\n(でも、土日とは違う人混みだった〜。) 今日は珍しく、自転車に乗らずに歩いてみました。\n少し前に買った、長靴がかなり快適だったので、このまま冬まで履 けるかなぁ? 大人気のマスカラとアイシャドウは揃えたい!\n2019年秋も新作アイライナーが続々と発売されます☆今回ご紹介しますのは、セザンヌから発売された『モテル目』。\n「まつ毛が長 くなっている」「目ヂカラがある」といった、まるで芸能人のような“憧れの目”を叶えてくれるアイテムなんです! 1924年10月23日にマツダが創業されるまで、マツダは昭和初期に栄えていた三原市西 区山手 地区にあった製糸工場の跡地を利用して工場と社宅を建てました。\nこの地もまた多くの歴史があり、当時は伊藤博文の私邸があったなど数々のエピソードを残しています。\n創業から今日に至 るまでのマツダは、その都度時代の変化に合わせて技術革新を行いながら歩んできました。\n特に2018年には第43回東京モーターショーにおいて、「Vision  Coupe Concept(ヴィジョンコウペコンセプ ト)」を 発表しました。 このレポートでは、インドネシアの電子商取引市場に関する市場調査を実施します。\n「オンライン・オフライン」「BtoB・CtoC」などの区分に基づいて、各市場の特徴や動向、また今 後の成長率についても言及しています。\nAlibaba Group は、アリババグループの主要なブランドである。\n同社はインターネット上でのショッピングモールおよびビジネスソリューションを 提供する。\n2014年時点で、年間売上が3,569億人民元(約6.0兆円)。\nAlibaba Group は、アリババグループの主要なブランドである。\n同社はインターネット上でのショッピングモールおよびビジネスソリューションを提供する。\n2014年時点で、年間売上が3,569億人民元(約6.0兆円) こんにちは!\n最近では、仕事やプライベートでも使われることが多くなったLINEですが、 実は「スパムメール」が届くこともあるのです。\nそんなことを知らない方は、意外と多いと思います。\nそこで今回は、なぜそのような事が発生するのかなどについて紹介していきましょう。\nまた対策方法なども合わせてお伝えしていきますのでぜひ最後までご覧下さい!\n[…] 中学校教諭・指導主事(理数科)を経て現在は福岡県内の公立中高一貫校で教育実践のサポートを行う傍ら、大学にて学び直す中で「どうしてこうなったのか」「なぜこんな結果になったのか」の理由を探求する探究的な学習法を実践的に指導し、思考力や創造性といった能力を育てる授業を展開しています。 小さい時からずっと野球を続けて いたのです が、どうしても手首に負担がかかってしまい、また肩こりも酷くしてました。\nでもこの治療院で治療してもらったら、スッキリし、痛みもなくなって、今のところはサッカーを楽しめてい るので、とてもありがたいです! 2014年8月には大手レシピサイト『クックパッド』が「食べログ」を買収したことで話題を集めた。\nその後9月に、同社は買収額に当初予定していた50億円を超える約60億円で取引 を実行し、このことについて批判的な意見が多数寄せられた。 【NQN香港=長尾久華】24日の香港株式相場は小幅な動きとなっている。\nハンセン指数は前日終値と比べてわずかに小幅に下 げて始まるか たちで推移している。\n半導体製造装置の大手、英アーム・ホールディングスの10%超高が相場の重荷となり、香港市場では利益確定目的の売りが続いている。\nもっとも、ハンセン指数を構成する50銘 柄のうち28銘柄が上昇しているほか、下落は6銘柄にとどまるなど値動きの軽い銘柄を中心に買われていることもあり、相場全体の底堅さは保たれている。\n香港メーンボード(東証1部に相当)の売買代金は約235億香港ドルと低調で、指数を構成する銘柄では、半導体受託生産会社の聯華電子が下落して推移している。 [フリー絵画] ウィリアム・アンドリュース(1860~1947)「ヴィトリアの 道」(1882-85頃).JPG[92330704_p0_s10_c9x2.jpg] | 無料画像素材集Tokyolens - フリー画像をダウンロードし、商用もOKです nobodyさんが書かれていたように、この本は「日本国憲法の成立過程」についての基本資料として読むのが良いと思います。\n特に憲法制定の主導権争いについては興味深いです。\n私は、1940年代の軍部の勢力が強大なのは当然だと思っていましたから、ここまで民主的な改正がなされたことを知って驚きました。 (13時50分、コード8601)前場は反落したものの後場に上げ幅を広げた。\n一時は前日比7円(2.2%)高の329円まで上昇し、連日で年初来高値を更新した。\n午後に 入り、日経平均 が下げ渋ったことをきっかけに買いが入っているようだ。\n市場では「中国などの新興国経済の先行き不透明感が根強いものの、国内の景気回復期待は根強く株価への追い風になってい る」(岩井コスモ 証券)との声があった。̶ 12月3日に上場来高値を更新した三菱UFJ(8306)や、きょうの後場に上げ幅を広げた第一生命(8750)など主力株が堅調なことも追い風になっているようだ。\n〔日経QUICKニュース 〕 Hinweis: Die Verwendung von Cookies auf Ihrem Computer ist in Ihrem Browser-Browser deaktiviert. Es wird empfohlen, das Cookie-Javascript-Szenario anzusehen січня 2014 року міністерство культури, туризму та спорту затвер",
        "role": "assistant"
      },
      "finish_reason": "length"
    }
  ],
  "usage": {
    "prompt_tokens": 22,
    "completion_tokens": 2026,
    "total_tokens": 2048
  }
}

時間の傾向も変わらず、ですね。

llama_print_timings:        load time =    3746.86 ms
llama_print_timings:      sample time =    2042.77 ms /  2026 runs   (    1.01 ms per token,   991.79 tokens per second)
llama_print_timings: prompt eval time =    3746.78 ms /    22 tokens (  170.31 ms per token,     5.87 tokens per second)
llama_print_timings:        eval time =  781484.80 ms /  2025 runs   (  385.92 ms per token,     2.59 tokens per second)
llama_print_timings:       total time =  801202.56 ms
INFO:     127.0.0.1:59150 - "POST /v1/chat/completions HTTP/1.1" 200 OK

とりあえず、動かす分にはMetaのLlama 2が良さそうだなと思いました。

おわりに

llama-cpp-pythonで、OpenAI API互換のサーバーを動かしてみました。

といっても、用語の確認や整理が主ではあったのですが。

なんとなく情報は整理できてきた気がするので、少しずつこのあたりも手を出していきたいですね。