File size: 1,390 Bytes
d40db99 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | """Context length set at load time (reshape): same answer on a short prompt, and a prompt longer than the
converted 1024 tokens works. usage: python test_context.py MODEL_DIR CONTEXT [DEVICE]"""
import sys
from onw.chat import ChatEngine
TEXT = ("東京は日本の首都であり、政治・経済・文化の中心地である。江戸時代には徳川幕府が置かれ、1868年の明治維新で東京と"
"改称された。現在は約1400万人が暮らす世界有数の大都市で、多くの企業や大学が集まっている。")
def run(e, q, n=60):
out = [d for d in e.stream_chat([{"role": "user", "content": q}], n)]
return "".join(x for x in out if isinstance(x, str)), out[-1]
def main():
e = ChatEngine(sys.argv[1], sys.argv[3] if len(sys.argv) > 3 else None, context=int(sys.argv[2]))
print("context:", e.max_context)
a, st = run(e, "日本の首都はどこですか?一文で。")
print("short:", repr(a))
long_q = "次の文章は何回同じ内容を繰り返していますか?最後に一言で要約してください。\n\n" + "\n".join(
f"{i + 1}. {TEXT}" for i in range(22))
e.checkpoint = None
b, st = run(e, long_q, 80)
print(f"long prompt {st['prompt_tokens']} tokens, prefill {st['prefill_ms']:.0f} ms, {st['decode_tok_s']:.1f} tok/s:", repr(b))
if __name__ == "__main__":
main()
|