banner
hughie

hughie

热爱技术的小菜鸟, 记录一下所学所感

LocalAI-自主ホスティング、OpenAI API規格に互換性があり、多言語モデルをサポートしています。

前言#

​ 本文は LocalAI について簡単に紹介します。

​ LocalAI は自己ホスティングと実行をサポートし、OpenAI API 仕様に互換性があり、さまざまなモデルをサポートしています。

7-localai.png


正文#

一、LocalAI とは#

LocalAI はローカル AI API であり、自己ホスティングとモデルの実行をサポートし、OpenAI API 仕様に互換性があり、さまざまなモデルをサポートしています。

二、LocalAI の機能#

LocalAI には以下の主要な機能があります:

  • OpenAI の REST API 仕様に互換性があり、ローカル推論の OpenAI の代替手段として使用できます;
  • llama.cppgpt4allrwkv.cppggmlwhisper.cpp、およびbert.cppなど、複数のモデルシリーズをサポート;
  • 一度ロードすると、モデルをメモリに保持し、より高速な推論速度を実現;
  • プロンプトテンプレートをサポートし、より多くの入力オプションを提供;
  • C++ バインディングを使用して、より高速な推論速度を実現。

以下は公式プロジェクトが現在サポートしているモデルのリストです:

BackendCompatible modelsCompletion/Chat endpointAudio transcriptionEmbeddings supportToken stream supportGithubBindings
llamaVicuna, Alpaca, LLaMayesnoyes (正確ではないようです)yeshttps://github.com/ggerganov/llama.cpphttps://github.com/go-skynet/go-llama.cpp
gpt4all-llamaVicuna, Alpaca, LLaMayesnonoyeshttps://github.com/nomic-ai/gpt4allhttps://github.com/go-skynet/gpt4all
gpt4all-mptMPTyesnonoyeshttps://github.com/nomic-ai/gpt4allhttps://github.com/go-skynet/gpt4all
gpt4all-jGPT4ALL-Jyesnonoyeshttps://github.com/nomic-ai/gpt4allhttps://github.com/go-skynet/gpt4all
gpt2GPT/NeoX, Cerebrasyesnononohttps://github.com/ggerganov/ggmlhttps://github.com/go-skynet/go-gpt2.cpp
dollyDollyyesnononohttps://github.com/ggerganov/ggmlhttps://github.com/go-skynet/go-gpt2.cpp
redpajamaRedPajamayesnononohttps://github.com/ggerganov/ggmlhttps://github.com/go-skynet/go-gpt2.cpp
stableLMStableLM GPT/NeoXyesnononohttps://github.com/ggerganov/ggmlhttps://github.com/go-skynet/go-gpt2.cpp
replitReplityesnononohttps://github.com/ggerganov/ggmlhttps://github.com/go-skynet/go-gpt2.cpp
gptneoxGPT NeoXyesnononohttps://github.com/ggerganov/ggmlhttps://github.com/go-skynet/go-gpt2.cpp
starcoderStarcoderyesnononohttps://github.com/ggerganov/ggmlhttps://github.com/go-skynet/go-gpt2.cpp
bloomzBloomyesnononohttps://github.com/NouamaneTazi/bloomz.cpphttps://github.com/go-skynet/bloomz.cpp
rwkvRWKVyesnonoyeshttps://github.com/saharNooby/rwkv.cpphttps://github.com/donomii/go-rwkv.cpp
bert-embeddingsbertnonoyesnohttps://github.com/skeskinen/bert.cpphttps://github.com/go-skynet/go-bert.cpp
whisperwhispernoyesnonohttps://github.com/ggerganov/whisper.cpp

三、LocalAI のデプロイ#

docker-compose を使用して LocalAI を迅速に起動することができ、ローカルイメージを構築して LocalAI を使用することもできます。LocalAI の具体的な使用法については、Usageおよびexamplesの使用例を参照してください。

以下はサンプルコードです:

# LocalAIをクローン
git clone https://github.com/go-skynet/LocalAI

cd LocalAI

# (オプション)特定のLocalAIタグをチェックアウト
# git checkout -b build <TAG>

# gpt4all-jをmodels/にダウンロード
wget https://gpt4all.io/models/ggml-gpt4all-j.bin -O models/ggml-gpt4all-j

# 例からテンプレートを使用
cp -rf prompt-templates/ggml-gpt4all-j.tmpl models/

# (オプション).envファイルを編集して、コンテキストサイズやスレッドなどを設定
# vim .env

# docker-composeで開始
docker-compose up -d --build

# 現在、APIはlocalhost:8080でアクセス可能
curl http://localhost:8080/v1/models
# {"object":"list","data":[{"id":"ggml-gpt4all-j","object":"model"}]}

curl http://localhost:8080/v1/chat/completions -H "Content-Type: application/json" -d '{
     "model": "ggml-gpt4all-j",
     "messages": [{"role": "user", "content": "How are you?"}],
     "temperature": 0.9 
   }'

# {"model":"ggml-gpt4all-j","choices":[{"message":{"role":"assistant","content":"I'm doing well, thanks. How about you?"}}]}

四、まとめ#

LocalAI はローカルモデルを OpenAI API のインターフェース形式でデプロイでき、現在のさまざまな人気アプリケーションに簡単に統合でき、個人データを OpenAI や Microsoft などの他のクラウドモデルにアップロードすることを避けることができ、試してみたい人に適しています。

欠点は、ローカルハードウェアがこれらの言語モデルを実行するのに十分である必要があることです。


最後#

参考記事:

公式プロジェクト


声明#

この記事は個人の学習記録としてのみ使用されます。
この記事はhblogと同期しています。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。