アラブ首長国連邦のTIIが開発したFalconMambaは無限長コンテキストをサポートするという。
まあMambaだから当然なんだけど、果たしてその「無限長」はどのくらい無限に近いのか?
noguchi-shojiさんがいち早く日本語で試していたが、日本語はどうやら全然ダメなようだ。
そこで英語で試してみる。
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("tiiuae/falcon-mamba-7b")
model = AutoModelForCausalLM.from_pretrained("tiiuae/falcon-mamba-7b", device_map="auto")
def q(text):
messages = [
{"role": "user", "content": text},
]
input_text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
input_ids = tokenizer(input_text, return_tensors="pt").input_ids.to("cuda")
outputs = model.generate(input_ids, max_new_tokens=30000)
print(tokenizer.decode(outputs[0]))
q("Write a 10000-word Japanese IT venture guid")
その結果はこうなった。
英語ででたものを日本語に翻訳
比較的短いね。まあコンテキストの長さを30000までで区切ってるからこんなもんといえばこんなもんなのかもしれないが
プログラミングガイドを書かせてみる。
q("Write a 100000-word programming guid for beginers")
結果
うーん
使いこなすのは難しいかもしれない
いろいろ使い方を考えたい
原文