紙のオープンソースLLM実装:
RecurRentGpt:(任意の)長いテキストのインタラクティブ生成。
[紙] [arxiv] [huggingface] [offical]
トランスの固定サイズコンテキストにより、GPTモデルは任意の長いテキストを生成できません。この論文では、RNNの再発メカニズムの言語ベースのシミュレーションであるRecurrentGptを紹介します。 RecurRentGPTは、CHATGPTなどの大規模な言語モデル(LLM)に基づいて構築され、自然言語を使用してLSTMの長期的な短期メモリメカニズムをシミュレートします。各タイムステップで、RecurRentGPTはテキストの段落を生成し、それぞれハードドライブとプロンプトに保存されている言語ベースの長期タームメモリを更新します。この再発メカニズムにより、RecurrentGptは忘れずに任意の長さのテキストを生成できます。人間のユーザーは自然言語の記憶を簡単に観察して編集できるため、RecurrentGptは解釈可能であり、インタラクティブな生成の長いテキストを可能にします。 RecurrentGPTは、ローカル編集の提案を超えて、次世代のコンピューター支援ライティングシステムに向けた最初のステップです。 AIに生成されたコンテンツ(AIGC)の生産に加えて、消費者と直接相互作用するインタラクティブなフィクションとしてRecurrentGPTを使用する可能性も実証します。この生成モデルの使用は、「AI as contents」(AIAC)によると呼びます。これは、従来のAIGCの次の形式であると考えています。さらに、RecurrentGPTを使用して、作家とやり取りするのではなく、読者と直接対話するパーソナライズされたインタラクティブフィクションを作成する可能性を実証します。より広く、RecurentGptは、LLMSを促すための認知科学と深い学習における人気のあるモデルデザインからアイデアを借りることの有用性を示しています。
変圧器gpt模型无法生成任意长的文本。在本文中、我们介绍了recurrentgpt、一个基于语言的模拟rnns中的递归机制。rcurrentgpt 建立在大型语言模型(llm )之上、如chatgpt、并使用自然语言来模拟lstm中的长短时记忆机制。在每个时间段、recurrentgpt生成一段文字、并更新其基于语言的长短时记忆、并更新其基于语言的长短时记忆、recurrentgpt能够生成任意长度的文本而不被遗忘。由于人类用户可以很容易地观察和编辑自然语言记忆、分别存储在硬盘和提示器上。这种递归机制使、recurrentgptをrecurentgpt是可解释的、recurrentgptをrecurrentgpt、 「内容としてのai」(aiac)、我们认为这是传统aigc的下一个形式。我们进一步展示了使用recurrentgpt创造个性化互动小说的可能性、这种小说直接与读者互动、而不是与作者互动。更广泛地说、recurrentgpt证明了从认知科学和深度学习中流行的模型设计中借用思想来提示llm的效用。
pip install transformers@git+https://github.com/huggingface/transformers.git
pip install peft@git+https://github.com/huggingface/peft.git
pip install accelerate@git+https://github.com/huggingface/accelerate.git
pip install bitsandbytes==0.39.0
pip install -U flagai
pip install bminf
[Global_config.py]
lang_opt = "zh" # zh or en. make English or Chinese Novel
llm_model_opt = "openai" # default is openai, it also can be other open-source LLMs as below
最初にOpenAI APIキーを適用する必要があります。それから
export OPENAI_API_KEY = "your key"
Vicunaモデルをダウンロードします。モデル/vicuna_bin.pyで構成します
tokenizer = AutoTokenizer . from_pretrained ( model_name_or_path , trust_remote_code = True )
model_config = AutoConfig . from_pretrained ( model_name_or_path , trust_remote_code = True )
model = AutoModel . from_pretrained ( model_name_or_path , config = model_config , trust_remote_code = True ) tokenizer = AutoTokenizer . from_pretrained ( "baichuan-inc/baichuan-7B" , trust_remote_code = True )
model = AutoModelForCausalLM . from_pretrained ( "baichuan-inc/baichuan-7B" , device_map = "auto" , trust_remote_code = True ) loader = AutoLoader (
"lm" ,
model_dir = state_dict ,
model_name = model_name ,
use_cache = True ,
fp16 = True )
model = loader . get_model ()
tokenizer = loader . get_tokenizer ()
model . eval ()bminfを使用する場合は、以下のようにコードを追加します。
with torch . cuda . device ( 0 ):
model = bminf . wrapper ( model , quantization = False , memory_limit = 2 << 30 ) python gradio_server.py

このプロジェクトが開発までの時間を短縮するのに役立つ場合は、私に一杯のコーヒーを与えることができます:)
アリペイ(支付宝)

wechatpay(微信)

MIT©Kun