Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

License

NotificationsYou must be signed in to change notification settings

Re-Align/URIAL

Repository files navigation

This is part of theRethinking Alignment (Re-Align) project by AI2 Mosaic.

📑 Paper: "The Unlocking Spell on Base LLMs: Rethinking Alignment via In-Context Learning" (ICLR 2024).

🛜 Website:https://allenai.github.io/re-align/.

🤗 Demo: BaseChat [https://huggingface.co/spaces/allenai/BaseChat_URIAL].

URIAL is a simple,tuning-free alignment method, URIAL (Untuned LLMs withRestyledIn-contextALignment). URIAL achieves effective alignment purely through in-context learning (ICL), requiring as few as threeconstant stylistic examples and a system prompt.It's a strong baseline method for LLM alignment and shows comparable performance to fine-tuning based alignment.Apart from that, URIAL can also be used to study the science of LLMs, helping to understand alignment in a more controlled and interpretable manner.

Installation

conda create -n urial python=3.10  conda activate urialpip install vllm# conda create -p /net/nfs/mosaic/yuchenl/envs/urial python=3.10# conda activate /net/nfs/mosaic/yuchenl/envs/urialpip install -r requirements.new.txt

URIAL Inference

An example script for running mistral (base) with urial prompts foralpaca_eval:

urial="inst_1k_v4"# urial prompt name -->  `urial_prompts/{urial}.txt`output_dir="result_dirs/alpaca_eval/vllm_urial=${urial}/"  CUDA_VISIBLE_DEVICES=0 python src/unified_infer.py \    --urial$urial \    --engine vllm \    --model_name"mistralai/Mistral-7b-v0.1" \    --tensor_parallel_size 1 \    --dtype bfloat16 \    --data_name"alpaca_eval" \    --top_p 1.0 --temperature 0.3 --repetition_penalty 1.1 \    --batch_size 16 --max_tokens 2048 \    --output_folder$output_dir/

For more details, please refer toURIAL/src/unified_infer.py. Note that you can use the same method to run inference with aligned LLMs (by not setting--urial) too and also for other datasets. You could customize your own data/models inURIAL/src/unified_utils.py.

URIAL: ICL with constant prompts

🖼️ Click here to see a figure for the illustration of URIAL and other tuning-free Alignment methods.

Versions

As discussedhere, a URIAL Prompt consists of K-shot stylistic in-context examples and a system prompt. The folderurial_prompts contains:

Suggested versions:

Previous versions (used for the experiments in the arXiv version).

Evaluation

AlpacaEval (fine-grained pairwise evaluation)

Show Tables

mistral-urial (#char=1105.7) VS Mistral-7B-Instruct-v0.1 (#char=1074.1) ⬇️

modelhelpfulnessfactualitydepthengagementclaritysafety
mistral-urial Win:31.9312.3042.6135.9022.361.12
mistral-urial Tie:38.8873.0419.6331.6860.6298.39
mistral-urial Lose:29.1914.6637.7632.4217.020.50

Llama-2-7b-urial (#char=1236.1) VS Llama-2-7b-chat-hf (#char=1455.7) ⬇️

modelhelpfulnessfactualitydepthengagementclaritysafety
Llama-2-7b-urial Win:42.1115.7848.3242.8634.531.61
Llama-2-7b-urial Tie:20.8766.5810.6824.1040.7595.90
Llama-2-7b-urial Lose:37.0217.6440.9933.0424.722.48

Llama-2-70b-urial (#char=1086.5) VS Llama-2-70b-chat-hf (#char=1524.0) ⬇️

modelhelpfulnessfactualitydepthengagementclaritysafety
Llama-2-70b-urial Win:35.289.4448.2036.0219.750.62
Llama-2-70b-urial Tie:42.2481.1215.5339.3868.5797.89
Llama-2-70b-urial Lose:22.489.4436.2724.6011.681.49

Scripts for URIAL/Aligned inference:run_scripts/alpaca_eval

Evaluation:

MT-Bench

URIAL-MT Bench Scores (base LLMs + same URIAL prompts)

How to run:run_scripts/mt-bench/README.md

modelTurn 1Turn 2Overall
openai/gpt-48.969.038.99
openai/gpt-3.5-turbo8.077.817.94
Base LLM + URIAL (3-shot ICL) ⬇️-------------------------
meta-llama/Llama-2-70b-hf7.616.617.11
mistralai/Mixtral-8x7B-v0.17.696.196.94
mistralai/Mistral-7b-v0.17.495.866.67
01-ai/Yi-34B7.196.166.67
google/gemma-7b6.975.046.00
microsoft/phi-2 (2.7B)7.044.665.85
meta-llama/Llama-2-13b-hf6.274.415.34
01-ai/Yi-6B5.963.994.97
meta-llama/Llama-2-7b-hf5.753.914.83
google/gemma-2b5.082.863.97
allenai/OLMo-7B3.952.863.41

Just-Eval

Please find more details about our evaluation here:https://github.com/Re-Align/just-eval.

show more (the below content is outdated; will be updated soon)

Installation of Just-Eval

pip install git+https://github.com/Re-Align/just-eval.gitexport OPENAI_API_KEY=<your secret key>

Reformatting output data

For example, if the output data isresult_dirs/urial/inst_1k/Mistral-7B-v0.1.json, then run the following command to reformat the output data toresult_dirs/urial/inst_1k/Mistral-7B-v0.1.to_eval.json.

python src/scripts/reformat.py result_dirs/urial/inst_1k/Mistral-7B-v0.1.json

Run Scoring

to_eval_file="result_dirs/urial/inst_1k/Mistral-7B-v0.1.to_eval.json"run_name="Mistral-URIAL"# GPT-4 for first five aspects on 0-800 examplesjust_eval \    --mode"score_multi" \    --model"gpt-4-0314" \    --start_idx 0 \    --end_idx 800 \    --first_file$to_eval_file \    --output_file"result_dirs/just-eval_results/${run_name}.score_multi.gpt-4.json"# GPT-3.5-turbo for the safety aspect on 800-1000 examplesjust_eval \        --mode"score_safety" \        --model"gpt-3.5-turbo-0613" \        --first_file$to_eval_file \        --start_idx 800 --end_idx 1000 \        --output_file"result_dirs/just-eval_results/${run_name}.score_safety.chatgpt.json"

Citation

@inproceedings{    Lin2024ReAlign,title={The Unlocking Spell on Base LLMs: Rethinking Alignment via In-Context Learning},author={Bill Yuchen Lin and Abhilasha Ravichander and Ximing Lu and Nouha Dziri and Melanie Sclar and Khyathi Chandu and Chandra Bhagavatula and Yejin Choi},booktitle={International Conference on Learning Representations},year={2024},url={https://arxiv.org/abs/2312.01552}}

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp