Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deal with _encode_pair() / Llama token 29871 / SPIECE_UNDERLINE better #1322

Draft
wants to merge 32 commits into
base: main
Choose a base branch
from
Draft
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
3824828
first stab at wrap_chat_template
daniel-furman Jan 7, 2024
a784417
first stab at wrap_chat_template, strip error fix
daniel-furman Jan 7, 2024
53c68db
first stab at wrap_chat_template, rfind continuation fix
daniel-furman Jan 7, 2024
3e27f9d
first stab at wrap_chat_template, formatting in function
daniel-furman Jan 7, 2024
87dff8b
first stab at wrap_chat_template, print statements in loglikelihood f…
daniel-furman Jan 7, 2024
5c4d9c7
first stab at wrap_chat_template, remove system for now
daniel-furman Jan 7, 2024
e689727
first stab at wrap_chat_template, remove special chars from continuation
daniel-furman Jan 10, 2024
337c084
first stab at wrap_chat_template, remove special chars tab indenting …
daniel-furman Jan 10, 2024
6c68fd1
Merge branch 'EleutherAI:main' into main
daniel-furman Jan 10, 2024
34b32f7
first stab at wrap_chat_template, various
daniel-furman Jan 10, 2024
59e3b17
first stab at wrap_chat_template, various
daniel-furman Jan 10, 2024
7191904
first stab at wrap_chat_template, arc conversation test
daniel-furman Jan 10, 2024
9949e4f
first stab at wrap_chat_template, arc conversation test
daniel-furman Jan 10, 2024
2d3c835
first stab at wrap_chat_template, remove arc experiment
daniel-furman Jan 10, 2024
49f43f9
first stab at wrap_chat_template, various
daniel-furman Jan 10, 2024
021232b
llama test
daniel-furman Jan 11, 2024
b6c75ed
llama test
daniel-furman Jan 11, 2024
047dde8
llama test
daniel-furman Jan 11, 2024
c38b9d2
llama test
daniel-furman Jan 11, 2024
1ea8470
llama test
daniel-furman Jan 11, 2024
2e27053
llama test
daniel-furman Jan 11, 2024
43dee06
llama test
daniel-furman Jan 13, 2024
39a11d0
llama test
daniel-furman Jan 13, 2024
bbcdffb
remove system
daniel-furman Jan 13, 2024
2b40017
Merge branch 'main' into add-chat-templating
haileyschoelkopf Jan 15, 2024
c47de8b
update Instance.args setter
haileyschoelkopf Jan 15, 2024
6ca8ab1
clean up wrap_chat_template + add TODOs
haileyschoelkopf Jan 15, 2024
b8bda47
Merge branch 'main' into add-chat-templating
haileyschoelkopf Jan 15, 2024
68c30aa
push most recent code
haileyschoelkopf Jan 16, 2024
d03c9fd
add the hack (works for Mistral/Llama, destroys performance for GPT2
haileyschoelkopf Jan 19, 2024
42d54f8
add the hack (works for Mistral/Llama, destroys performance for GPT2
haileyschoelkopf Jan 19, 2024
787c99e
Merge branch 'fix-len0-continuations' of https://github.com/EleutherA…
haileyschoelkopf Jan 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
push most recent code
  • Loading branch information
haileyschoelkopf committed Jan 16, 2024
commit 68c30aa7dad25761ad11da0a6f0f5843e67e29a0
27 changes: 19 additions & 8 deletions lm_eval/models/huggingface.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,10 @@ def __init__(
# PEFT and quantization options
peft: Optional[str] = None,
autogptq: Optional[Union[bool, str]] = False,
# Chat templating settings
use_chat_template: Optional[bool] = False,
# TODO: validate a template exists in tokenizer config, if this flag is true
system_prompt: Optional[str] = None,
**kwargs,
) -> None:
super().__init__()
Expand Down Expand Up @@ -241,6 +245,9 @@ def __init__(
else:
self.tokenizer.add_special_tokens({"pad_token": "<|pad|>"})

self.system_prompt = system_prompt
self.use_chat_template = use_chat_template

self._max_length = max_length

self.batch_schedule = 1
Expand Down Expand Up @@ -691,9 +698,11 @@ def wrap_chat_template(
context, continuation = req.args[0].strip(), req.args[1]
chat = []
if self.system_prompt is not None:
chat += {"role": "system", "content": "You are a helpful assistant."}
chat += [{"role": "system", "content": "You are a helpful assistant."}]

chat += ({"role": "user", "content": context},)
chat += [
{"role": "user", "content": context},
]
# TODO: expose settings for chat formatting:
# - whether some "trigger" / start of assistant response might be placed in assistant's generation for it
# - if few-shot, should the fewshots be placed in separate convo turns? provided in user's single turn?...
Expand Down Expand Up @@ -786,9 +795,10 @@ def _encode_pair(
return context_enc, continuation_enc

def loglikelihood(self, requests: List[Instance]) -> List[Tuple[float, bool]]:
print(f"First element before prompt formatting...\n{requests[0].args}")
requests = self.wrap_chat_template(requests)
print(f"First element after prompt formatting...\n{requests[0].args}")
if self.use_chat_template:
print(f"First element before prompt formatting...\n{requests[0].args}")
requests = self.wrap_chat_template(requests)
print(f"First element after prompt formatting...\n{requests[0].args}")

new_reqs = []
for context, continuation in [req.args for req in requests]:
Expand Down Expand Up @@ -1064,9 +1074,10 @@ def _collate(x):
return re_ord.get_original(res)

def generate_until(self, requests: List[Instance]) -> List[str]:
print(f"First element before prompt formatting...\n{requests[0].args}")
requests = self.tok_chat_template(requests)
print(f"First element after prompt formatting...\n{requests[0].args}")
if self.use_chat_template:
print(f"First element before prompt formatting...\n{requests[0].args}")
requests = self.tok_chat_template(requests)
print(f"First element after prompt formatting...\n{requests[0].args}")

res = []

Expand Down