--- library_name: peft base_model: unsloth/gemma-7b-bnb-4bit language: - ja - en tags: - translation - qlora - gemma - text-generation-inference - nlp --- # モデルカード(Model Card for Model ID) C3TR-AdapterはGoogleが発表したLLMであるgemma-7bの日英・英日翻訳性能を向上させるQLoRAです。 C3TR-Adapter is a QLoRA that improves the Japanese-English and English-Japanese translation performance of gemma-7b released by Google. ## モデル詳細(Model Details) C3TR-Adapterは翻訳ベンチマークで多言語翻訳モデルであるGoogleのMadlad400やmetaのSeamless m4t v2 large、[ALMA-Ja-V2](https://huggingface.co/webbigdata/ALMA-7B-Ja-V2) (私達の以前のモデル)よりも大幅に優れた日英・日英翻訳性能を持っています。 Benchmarks show significantly better English-Japanese and Japanese-English translation performance than Google's Madlad400, META's Seamless m4t v2 large, and [ALMA-Ja-V2](https://huggingface.co/webbigdata/ALMA-7B-Ja-V2) (our previous model). GoogleのウェブサービスColabを使うと無料でC3TR-Adapterを試す事が出来ます。 You can try C3TR-Adapter for free using Google's web service Colab. - [動作確認用の簡単なサンプル(A simple sample to check the operation)](https://colab.research.google.com/drive/1RrUZ3Yq_XDtU33hs5Stru2o-6rXmFikm#scrollTo=8QeXdYv3enkl) - [テキストファイルを一括で日英・英日翻訳するサンプル(Sample of batch translation of text files)](https://colab.research.google.com/drive/1eHtKxDCs4qxu-C7bzBsDppFQvZYt-v5y#scrollTo=9tCLTsfT_qgA) ### モデルの動かし方(How to use Model) 自分のパソコンで動かす場合は、約8.3GB以上のGPU RAMが必要です。 If you want to run it on your own local computer, you will need approximately 8.3 GB or more of GPU RAM. 必要なライブラリのインストール Installation of required libraries ``` # first install pytorch. check official documents. # https://pytorch.org/get-started/locally/#start-locally # example for linux user with CUDA 12.1. # pip3 install torch torchvision torchaudio # example for windows user with CUDA 12.1. # pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 pip install transformers==4.38.2 pip install peft==0.9.0 pip install bitsandbytes==0.42.0 ``` サンプルスクリプト ``` import torch import os import json from transformers import AutoModelForCausalLM, AutoTokenizer from peft import PeftModel model_id = "unsloth/gemma-7b-bnb-4bit" peft_model_id = "webbigdata/C3TR-Adapter" model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto") model = PeftModel.from_pretrained(model = model, model_id = peft_model_id) tokenizer = AutoTokenizer.from_pretrained(model_id) def trans(my_str): input_ids = tokenizer(my_str, return_tensors="pt", padding=True, max_length=1600, truncation=True).input_ids.cuda() # Translation generated_ids = model.generate(input_ids=input_ids, num_beams=1, max_new_tokens=800, use_cache=True, prompt_lookup_num_tokens=10 ) full_outputs = tokenizer.batch_decode(generated_ids, skip_special_tokens=True) return full_outputs[0].split("### Answer:\n")[-1].strip() ret = trans(""" ### Instructions: Translate Japanese to English. ### Input: 現地時間2月22日午後8時05分(日本時間2月23日午前8時05分)から約1時間半、G20外相会合出席のためリオデジャネイロを訪問中の上川陽子外務大臣は、「WPS+イノベ-ション in リオ」と題する意見交換会を主催したところ、概要は以下のとおりです。 続いて、エリカ・タキモト・リオデジャネイロ州議会議員、ジョイス・トリンダ-ジ・リオ市女性活躍推進局長、スザンナ・カ-ン・リオデジャネイロ連邦大学工学部長、柔道家>のシルヴァナ・ナガイ氏から、それぞれブラジルにおける現場での経験を踏まえつつ、貧困や環境問題、女性の社会進出等の社会課題について、女性の視点を共有しつつ、発言しました。 ### Answer: """) print(ret) ``` プロンプトフォーマットはalpacaです。 The prompt format is alpaca. Instructionsは"Translate Japanese to English."(日英翻訳)と"Translate English to Japanese."(英日翻訳)の2種類です。 There are two types of instructions: "Translate Japanese to English." and "Translate English to Japanese.". 実験的な試みとして、インフォーマルな場面を想定した翻訳を行う際にsubculture文脈指定ができるようになっています。 As an experiment, subculture context can be specified when translating for informal situations. eg: Translate English to Japanese within the context of subculture. ## 留意事項 Attention このアダプターをモデルとマージして保存すると性能が下がってしまう不具合が存在するため、**ベースモデル(gemma-7b-bnb-4bit)とアダプターをマージして保存しないでください** **Do not save this adapter merged with the base model(gemma-7b-bnb-4bit)**, as there exists a bug that reduces performance when saving this adapter merged with the model. どうしてもマージしたい場合は必ずPerplexityではなく、翻訳ベンチマークで性能を確認してから使うようにしてください If you must merge, be sure to use a translation benchmark to check performance, not Perplexity! ### 利用規約 Terms of Use 基本的にはgemmaと同じライセンスです Basically the same license as gemma. 加えて貴方に以下のお願いがあります。 Additionally, We have the following request to you. 私たちの以前のモデルであるALMA-7B-Ja-V2のダウンロード件数は15万件を超えているのですが、どんな人がどのような場面で使っているのか全く把握できていません。 Our previous model, ALMA-7B-Ja-V2, has over 150K downloads, but we have no idea who is using it and in what situations. そのため、使用した後は[Googleフォームに感想や今後期待する方向性、気が付いた誤訳の例などを記入](https://forms.gle/Ycr9nWumvGamiNma9)してください。 So, after you use it, please [fill out the Google form below with your impressions, future directions you expect us to take, and examples of mistranslations you have noticed](https://forms.gle/Ycr9nWumvGamiNma9). 個人情報やメールアドレスは収集しないので、気軽にご記入をお願いします We do not collect personal information or email address, so please feel free to fill out the form! どんなご意見でも感謝します! Any feedback would be appreciated! ### 謝辞 Acknowledgment Original Base Model google/gemma-7b https://huggingface.co/google/gemma-7b Base Model unsloth/gemma-7b-bnb-4bit https://huggingface.co/unsloth/gemma-7b-bnb-4bit QLoRA Adapter webbigdata/C3TR-Adapter https://huggingface.co/webbigdata/C3TR-Adapter This adapter was trained with Unsloth. https://github.com/unslothai/unsloth その他、[ALMA](https://arxiv.org/abs/2309.11674)をはじめ、コミュニティの皆さんからヒントを貰っています。ありがとう Other tips I have received from [ALMA](https://arxiv.org/abs/2309.11674) and others in the community. Thank you. - **Developed by:** [webbigdata](https://webbigdata.jp/)