![見出し画像](https://assets.st-note.com/production/uploads/images/167353639/rectangle_large_type_2_ad9d66641df25f6ce5b9c1b9be286db3.png?width=1200)
WSL2でoptillmを試してみる
「量子化やデバイス管理によるリソース最適化と高速応答を実現し、API経由で複数のLLMを柔軟に参照可能なプロキシフレームワーク」らしいoptillmを試してみます。
使用するPCはドスパラさんの「GALLERIA UL9C-R49」。スペックは
・CPU: Intel® Core™ i9-13900HX Processor
・Mem: 64 GB
・GPU: NVIDIA® GeForce RTX™ 4090 Laptop GPU(16GB)・GPU: NVIDIA® GeForce RTX™ 4090 (24GB)
・OS: Ubuntu22.04 on WSL2(Windows 11)
です。
1. 準備
ターミナルを3つ立ち上げておいてください。
プロキシサーバ
optillmの環境を構築します。
python3 -m venv optillm
cd $_
source bin/activate
#
pip install optillm
vllm側と被らないように、port 8001として起動します。
optillm --port 8001 --base_url http://localhost:8000
ローカルAPIサーバ
2つ目のターミナルに切り替えてください。
Optillm経由でローカルAPIサーバーにアクセスするため、vllmのOpenAI API互換サーバー機能を利用します。
python3 -m venv vllm
cd $_
source bin/activate
#
pip install vllm
モデル「meta-llama/Llama-3.2-1B-Instruct」をvllm serveで起動します。
vllm serve meta-llama/Llama-3.2-1B-Instruct
2. 試してみる
3つ目のターミナルに切り替えてください。
cd optillm
source bin/activate
pythonを起動して、optillmを通信先に指定します。
import os
from openai import OpenAI
OPENAI_KEY = "sk-no-key"
OPENAI_BASE_URL = "http://localhost:8001/v1"
client = OpenAI(api_key=OPENAI_KEY, base_url=OPENAI_BASE_URL)
model_id = "meta-llama/Llama-3.2-1B-Instruct"
messages=[
{
"role": "user",
"content": "What is Doraemon's favorite food?"
}
]
これを流し込んでおきます。
(1) MCTS + entropy_decoding
MCTSとEntropy Decodingの組み合わせは、探索空間を効率的に管理しながら、応答の多様性と一貫性を両立し、高品質な生成を実現する手法です。特に、複雑な文脈や創造的な応答が求められる場面で有用です。
こちらを流し込みます。
response = client.chat.completions.create(
model=model_id,
messages=messages,
temperature=0.2,
extra_body={
"optillm_approach": "mcts",
"decoding": "entropy_decoding"
# CoT specific params
"k": 10,
"aggregate_paths": True,
# OR Entropy specific params
"top_k": 27,
"min_p": 0.03,
}
)
print(response.choices[0].message.content)
Doraemon, the lovable robotic cat from the popular manga and anime series "Doraemon," has a passion for green tea. Throughout the series, Doraemon is often seen drinking green tea and appreciating its delicate taste and soothing properties.
人気の漫画・アニメシリーズ『ドラえもん』の愛らしいロボット猫ドラえもんは、緑茶が大好きです。シリーズを通じて、ドラえもんが緑茶を飲んだり、その繊細な味わいと癒しの特性を楽しんでいる様子がよく描かれています。
(2) MCTS + cot_decoding
MCTSとCoT Decodingの組み合わせは、複雑な論理的推論タスクにおいて、正確性と一貫性の高い応答を実現します。MCTSの探索効率とCoTの逐次的推論能力が組み合わさることで、長期的視点を考慮した高度な解答生成が可能となり、特に数学的推論や因果関係の解明が求められる場面で優れた効果を発揮します。
response = client.chat.completions.create(
model=model_id,
messages=messages,
temperature=0.2,
extra_body={
"optillm_approach": "mcts",
"decoding": "cot_decoding",
# CoT specific params
"k": 10,
"aggregate_paths": True,
# OR Entropy specific params
"top_k": 27,
"min_p": 0.03,
}
)
print(response.choices[0].message.content)
Doraemon is a beloved character known for his love of food. However, I do not have any information on a Doraemon's favorite food or when it may have appeared or been established since the original manga series, ADNolydi-update 1 one created in .
ドラえもんは食べ物好きとして知られる愛されているキャラクターです。しかし、ドラえもんの大好物やそれがいつ登場したのか、または確立されたのかについての情報は持っていません。原作漫画シリーズに関する情報も不明です。
(3) optillm経由ではなく直接叩く
portを8000に変更して実行します。
import os
from openai import OpenAI
OPENAI_KEY = "sk-no-key"
OPENAI_BASE_URL = "http://localhost:8000/v1"
client = OpenAI(api_key=OPENAI_KEY, base_url=OPENAI_BASE_URL)
model_id = "meta-llama/Llama-3.2-1B-Instruct"
messages=[
{
"role": "user",
"content": "What is Doraemon's favorite food?"
}
]
response = client.chat.completions.create(
model=model_id,
messages=messages,
temperature=0.2
)
print(response.choices[0].message.content)
Doraemon is a beloved character from Japanese manga and anime series. However, I couldn't find any specific information about Doraemon's favorite food. Doraemon is known for his adventures with his human friend Nobita Nobi and his robotic dog, Tadashi, but I couldn't find any information about his favorite food.
It's possible that you might be thinking of another character or a different context. If you have any more information or context, I'd be happy to try and help you further.
ドラえもんは日本の漫画やアニメシリーズから生まれた愛されているキャラクターです。しかし、ドラえもんの大好物についての具体的な情報は見つかりませんでした。ドラえもんは、人間の友達である野比のび太やロボット犬タダシとの冒険で知られていますが、彼の大好物に関する情報は見つかりませんでした。
もしかすると、別のキャラクターや異なる文脈について考えているのかもしれません。もしさらに情報や文脈があれば、もっと詳しくお手伝いさせていただきます。
うーん、「どら焼き」なのだが、1Bモデルには酷か・・・。